//region block: polyfills
if (typeof Math.imul === 'undefined') {
  Math.imul = function imul(a, b) {
    return (a & 4.29490176E9) * (b & 65535) + (a & 65535) * (b | 0) | 0;
  };
}
if (typeof ArrayBuffer.isView === 'undefined') {
  ArrayBuffer.isView = function (a) {
    return a != null && a.__proto__ != null && a.__proto__.__proto__ === Int8Array.prototype.__proto__;
  };
}
if (typeof Array.prototype.fill === 'undefined') {
  // Polyfill from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/fill#Polyfill
  Object.defineProperty(Array.prototype, 'fill', {value: function (value) {
    // Steps 1-2.
    if (this == null) {
      throw new TypeError('this is null or not defined');
    }
    var O = Object(this); // Steps 3-5.
    var len = O.length >>> 0; // Steps 6-7.
    var start = arguments[1];
    var relativeStart = start >> 0; // Step 8.
    var k = relativeStart < 0 ? Math.max(len + relativeStart, 0) : Math.min(relativeStart, len); // Steps 9-10.
    var end = arguments[2];
    var relativeEnd = end === undefined ? len : end >> 0; // Step 11.
    var finalValue = relativeEnd < 0 ? Math.max(len + relativeEnd, 0) : Math.min(relativeEnd, len); // Step 12.
    while (k < finalValue) {
      O[k] = value;
      k++;
    }
    ; // Step 13.
    return O;
  }});
}
[Int8Array, Int16Array, Uint16Array, Int32Array, Float32Array, Float64Array].forEach(function (TypedArray) {
  if (typeof TypedArray.prototype.fill === 'undefined') {
    Object.defineProperty(TypedArray.prototype, 'fill', {value: Array.prototype.fill});
  }
});
if (typeof Math.trunc === 'undefined') {
  Math.trunc = function (x) {
    if (isNaN(x)) {
      return NaN;
    }
    if (x > 0) {
      return Math.floor(x);
    }
    return Math.ceil(x);
  };
}
if (typeof Math.sinh === 'undefined') {
  var epsilon = 2.220446049250313E-16;
  var taylor_2_bound = Math.sqrt(epsilon);
  var taylor_n_bound = Math.sqrt(taylor_2_bound);
  Math.sinh = function (x) {
    if (Math.abs(x) < taylor_n_bound) {
      var result = x;
      if (Math.abs(x) > taylor_2_bound) {
        result += x * x * x / 6;
      }
      return result;
    } else {
      var y = Math.exp(x);
      var y1 = 1 / y;
      if (!isFinite(y))
        return Math.exp(x - Math.LN2);
      if (!isFinite(y1))
        return -Math.exp(-x - Math.LN2);
      return (y - y1) / 2;
    }
  };
}
if (typeof Math.expm1 === 'undefined') {
  var epsilon = 2.220446049250313E-16;
  var taylor_2_bound = Math.sqrt(epsilon);
  var taylor_n_bound = Math.sqrt(taylor_2_bound);
  Math.expm1 = function (x) {
    if (Math.abs(x) < taylor_n_bound) {
      var x2 = x * x;
      var x3 = x2 * x;
      var x4 = x3 * x; // approximation by taylor series in x at 0 up to order 4
      return x4 / 24 + x3 / 6 + x2 / 2 + x;
    }
    return Math.exp(x) - 1;
  };
}
if (typeof Math.asinh === 'undefined') {
  var epsilon = 2.220446049250313E-16;
  var taylor_2_bound = Math.sqrt(epsilon);
  var taylor_n_bound = Math.sqrt(taylor_2_bound);
  var upper_taylor_2_bound = 1 / taylor_2_bound;
  var upper_taylor_n_bound = 1 / taylor_n_bound;
  var asinh = function (x) {
    if (x >= +taylor_n_bound) {
      if (x > upper_taylor_n_bound) {
        if (x > upper_taylor_2_bound) {
          // approximation by laurent series in 1/x at 0+ order from -1 to 0
          return Math.log(x) + Math.LN2;
        } else {
          // approximation by laurent series in 1/x at 0+ order from -1 to 1
          return Math.log(x * 2 + 1 / (x * 2));
        }
      } else {
        return Math.log(x + Math.sqrt(x * x + 1));
      }
    } else if (x <= -taylor_n_bound) {
      return -asinh(-x);
    } else {
      // approximation by taylor series in x at 0 up to order 2
      var result = x;
      if (Math.abs(x) >= taylor_2_bound) {
        var x3 = x * x * x; // approximation by taylor series in x at 0 up to order 4
        result -= x3 / 6;
      }
      return result;
    }
  };
  Math.asinh = asinh;
}
if (typeof Math.log1p === 'undefined') {
  var epsilon = 2.220446049250313E-16;
  var taylor_2_bound = Math.sqrt(epsilon);
  var taylor_n_bound = Math.sqrt(taylor_2_bound);
  Math.log1p = function (x) {
    if (Math.abs(x) < taylor_n_bound) {
      var x2 = x * x;
      var x3 = x2 * x;
      var x4 = x3 * x; // approximation by taylor series in x at 0 up to order 4
      return -x4 / 4 + x3 / 3 - x2 / 2 + x;
    }
    return Math.log(x + 1);
  };
}
if (typeof Math.tanh === 'undefined') {
  var epsilon = 2.220446049250313E-16;
  var taylor_2_bound = Math.sqrt(epsilon);
  var taylor_n_bound = Math.sqrt(taylor_2_bound);
  Math.tanh = function (x) {
    if (Math.abs(x) < taylor_n_bound) {
      var result = x;
      if (Math.abs(x) > taylor_2_bound) {
        result -= x * x * x / 3;
      }
      return result;
    } else {
      var a = Math.exp(+x), b = Math.exp(-x);
      return a === Infinity ? 1 : b === Infinity ? -1 : (a - b) / (a + b);
    }
  };
}
if (typeof Math.cosh === 'undefined') {
  Math.cosh = function (x) {
    var y = Math.exp(x);
    var y1 = 1 / y;
    if (!isFinite(y) || !isFinite(y1))
      return Math.exp(Math.abs(x) - Math.LN2);
    return (y + y1) / 2;
  };
}
if (typeof Math.log10 === 'undefined') {
  Math.log10 = function (x) {
    return Math.log(x) * Math.LOG10E;
  };
}
if (typeof Math.clz32 === 'undefined') {
  Math.clz32 = function (log, LN2) {
    return function (x) {
      var asUint = x >>> 0;
      if (asUint === 0) {
        return 32;
      }
      return 31 - (log(asUint) / LN2 | 0) | 0; // the "| 0" acts like math.floor
    };
  }(Math.log, Math.LN2);
}
if (typeof Math.sign === 'undefined') {
  Math.sign = function (x) {
    x = +x; // convert to a number
    if (x === 0 || isNaN(x)) {
      return Number(x);
    }
    return x > 0 ? 1 : -1;
  };
}
if (typeof Math.log2 === 'undefined') {
  Math.log2 = function (x) {
    return Math.log(x) * Math.LOG2E;
  };
}
//endregion
import {
  jsx as jsx,
  jsxs as jsxs,
} from 'react/jsx-runtime';
import {
  useEffect as useEffect,
  Fragment as Fragment,
  useRef as useRef,
} from 'react';
import { createRoot as createRoot } from 'react-dom/client';
//region block: imports
var imul_0 = Math.imul;
var trunc = Math.trunc;
var isView = ArrayBuffer.isView;
var clz32 = Math.clz32;
var cosh = Math.cosh;
var asinh_0 = Math.asinh;
var sinh = Math.sinh;
var log10 = Math.log10;
var expm1 = Math.expm1;
var log1p = Math.log1p;
var log2 = Math.log2;
var sign = Math.sign;
var tanh = Math.tanh;
//endregion
//region block: pre-declaration
class CharSequence {}
class Comparable {}
class Error_0 extends Error {
  static gc() {
    var $this = createExternalThis(this, Error, [null]);
    setPropertiesToThrowableInstance($this);
    init_kotlin_Error($this);
    return $this;
  }
  static i(message) {
    var $this = createExternalThis(this, Error, [message]);
    setPropertiesToThrowableInstance($this, message);
    init_kotlin_Error($this);
    return $this;
  }
}
class IrLinkageError extends Error_0 {
  static g(message) {
    var $this = this.i(message);
    captureStack($this, $this.f_1);
    return $this;
  }
}
class Iterable {}
class asIterable$$inlined$Iterable$1 {
  constructor($this_asIterable) {
    this.v1_1 = $this_asIterable;
  }
  h1() {
    return this.v1_1.h1();
  }
}
class Exception extends Error {
  static jb() {
    var $this = createExternalThis(this, Error, [null]);
    setPropertiesToThrowableInstance($this);
    init_kotlin_Exception($this);
    return $this;
  }
  static kb(message) {
    var $this = createExternalThis(this, Error, [message]);
    setPropertiesToThrowableInstance($this, message);
    init_kotlin_Exception($this);
    return $this;
  }
  static mb(cause) {
    var $this = createExternalThis(this, Error, [null, setupCauseParameter(cause)]);
    setPropertiesToThrowableInstance($this, VOID, cause);
    init_kotlin_Exception($this);
    return $this;
  }
}
class RuntimeException extends Exception {
  static c2() {
    var $this = this.jb();
    init_kotlin_RuntimeException($this);
    return $this;
  }
  static o9(message) {
    var $this = this.kb(message);
    init_kotlin_RuntimeException($this);
    return $this;
  }
  static lb(cause) {
    var $this = this.mb(cause);
    init_kotlin_RuntimeException($this);
    return $this;
  }
}
class KotlinNothingValueException extends RuntimeException {
  static z1() {
    var $this = this.c2();
    init_kotlin_KotlinNothingValueException($this);
    return $this;
  }
}
class Companion {
  constructor() {
    Companion_instance = this;
    this.e2_1 = _Char___init__impl__6a9atx(0);
    this.f2_1 = _Char___init__impl__6a9atx(65535);
    this.g2_1 = _Char___init__impl__6a9atx(55296);
    this.h2_1 = _Char___init__impl__6a9atx(56319);
    this.i2_1 = _Char___init__impl__6a9atx(56320);
    this.j2_1 = _Char___init__impl__6a9atx(57343);
    this.k2_1 = _Char___init__impl__6a9atx(55296);
    this.l2_1 = _Char___init__impl__6a9atx(57343);
    this.m2_1 = 2;
    this.n2_1 = 16;
  }
}
class Char {
  constructor(value) {
    Companion_getInstance();
    this.d2_1 = value;
  }
  o2(other) {
    return Char__compareTo_impl_ypi4mb(this.d2_1, other);
  }
  d(other) {
    return Char__compareTo_impl_ypi4mb_0(this, other);
  }
  toString() {
    return toString(this.d2_1);
  }
  equals(other) {
    return Char__equals_impl_x6719k(this.d2_1, other);
  }
  hashCode() {
    return Char__hashCode_impl_otmys(this.d2_1);
  }
}
class Companion_0 {
  p2(array) {
    return createListFrom(array);
  }
}
class Collection {}
class KtList {}
function asJsReadonlyArrayView() {
  return createJsReadonlyArrayViewFrom(this);
}
class Companion_1 {
  x2(set) {
    return createSetFrom(set);
  }
}
class KtSet {}
function asJsReadonlySetView() {
  return createJsReadonlySetViewFrom(this);
}
class Entry {}
class KtMap {}
class MutableIterable {}
class MutableCollection {}
class Companion_2 {}
class Enum {
  constructor(name, ordinal) {
    this.f3_1 = name;
    this.g3_1 = ordinal;
  }
  h3() {
    return this.f3_1;
  }
  i3() {
    return this.g3_1;
  }
  j3(other) {
    return compareTo(this.g3_1, other.g3_1);
  }
  d(other) {
    return this.j3(other instanceof Enum ? other : THROW_CCE());
  }
  equals(other) {
    return this === other;
  }
  hashCode() {
    return identityHashCode(this);
  }
  toString() {
    return this.f3_1;
  }
}
class FunctionAdapter {}
class arrayIterator$1 {
  constructor($array) {
    this.m3_1 = $array;
    this.l3_1 = 0;
  }
  i1() {
    return !(this.l3_1 === this.m3_1.length);
  }
  j1() {
    var tmp;
    if (!(this.l3_1 === this.m3_1.length)) {
      var _unary__edvuaz = this.l3_1;
      this.l3_1 = _unary__edvuaz + 1 | 0;
      tmp = this.m3_1[_unary__edvuaz];
    } else {
      throw NoSuchElementException.g1('' + this.l3_1);
    }
    return tmp;
  }
}
class JsArrayView extends Array {}
class JsSetView extends Set {}
class Digit {
  constructor() {
    Digit_instance = this;
    var tmp = this;
    // Inline function 'kotlin.intArrayOf' call
    tmp.l4_1 = new Int32Array([48, 1632, 1776, 1984, 2406, 2534, 2662, 2790, 2918, 3046, 3174, 3302, 3430, 3558, 3664, 3792, 3872, 4160, 4240, 6112, 6160, 6470, 6608, 6784, 6800, 6992, 7088, 7232, 7248, 42528, 43216, 43264, 43472, 43504, 43600, 44016, 65296]);
  }
}
class Letter {
  constructor() {
    Letter_instance = this;
    var toBase64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
    var fromBase64 = new Int32Array(128);
    var inductionVariable = 0;
    var last = charSequenceLength(toBase64) - 1 | 0;
    if (inductionVariable <= last)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        // Inline function 'kotlin.code' call
        var this_0 = charCodeAt(toBase64, i);
        fromBase64[Char__toInt_impl_vasixd(this_0)] = i;
      }
       while (inductionVariable <= last);
    var rangeStartDiff = 'hCgBpCQGYHZH5BRpBPPPPPPRMP5BPPlCPP6BkEPPPPcPXPzBvBrB3BOiDoBHwD+E3DauCnFmBmB2D6E1BlBTiBmBlBP5BhBiBrBvBjBqBnBPRtBiCmCtBlB0BmB5BiB7BmBgEmChBZgCoEoGVpBSfRhBPqKQ2BwBYoFgB4CJuTiEvBuCuDrF5DgEgFlJ1DgFmBQtBsBRGsB+BPiBlD1EIjDPRPPPQPPPPPGQSQS/DxENVNU+B9zCwBwBPPCkDPNnBPqDYY1R8B7FkFgTgwGgwUwmBgKwBuBScmEP/BPPPPPPrBP8B7F1B/ErBqC6B7BiBmBfQsBUwCw/KwqIwLwETPcPjQgJxFgBlBsD';
    var diff = decodeVarLenBase64(rangeStartDiff, fromBase64, 222);
    var start = new Int32Array(diff.length);
    var inductionVariable_0 = 0;
    var last_0 = diff.length - 1 | 0;
    if (inductionVariable_0 <= last_0)
      do {
        var i_0 = inductionVariable_0;
        inductionVariable_0 = inductionVariable_0 + 1 | 0;
        if (i_0 === 0) {
          start[i_0] = diff[i_0];
        } else {
          start[i_0] = start[i_0 - 1 | 0] + diff[i_0] | 0;
        }
      }
       while (inductionVariable_0 <= last_0);
    this.m4_1 = start;
    var rangeLength = 'aaMBXHYH5BRpBPPPPPPRMP5BPPlCPPzBDOOPPcPXPzBvBjB3BOhDmBBpB7DoDYxB+EiBP1DoExBkBQhBekBPmBgBhBctBiBMWOOXhCsBpBkBUV3Ba4BkB0DlCgBXgBtD4FSdBfPhBPpKP0BvBXjEQ2CGsT8DhBtCqDpFvD1D3E0IrD2EkBJrBDOBsB+BPiBlB1EIjDPPPPPPPPPPPGPPMNLsBNPNPKCvBvBPPCkDPBmBPhDXXgD4B6FzEgDguG9vUtkB9JcuBSckEP/BPPPPPPBPf4FrBjEhBpC3B5BKaWPrBOwCk/KsCuLqDHPbPxPsFtEaaqDL';
    this.n4_1 = decodeVarLenBase64(rangeLength, fromBase64, 222);
    var rangeCategory = 'GFjgggUHGGFFZZZmzpz5qB6s6020B60ptltB6smt2sB60mz22B1+vv+8BZZ5s2850BW5q1ymtB506smzBF3q1q1qB1q1q1+Bgii4wDTm74g3KiggxqM60q1q1Bq1o1q1BF1qlrqrBZ2q5wprBGFZWWZGHFsjiooLowgmOowjkwCkgoiIk7ligGogiioBkwkiYkzj2oNoi+sbkwj04DghhkQ8wgiYkgoioDsgnkwC4gikQ//v+85BkwvoIsgoyI4yguI0whiwEowri4CoghsJowgqYowgm4DkwgsY/nwnzPowhmYkg6wI8yggZswikwHgxgmIoxgqYkwgk4DkxgmIkgoioBsgssoBgzgyI8g9gL8g9kI0wgwJoxgkoC0wgioFkw/wI0w53iF4gioYowjmgBHGq1qkgwBF1q1q8qBHwghuIwghyKk0goQkwgoQk3goQHGFHkyg0pBgxj6IoinkxDswno7Ikwhz9Bo0gioB8z48Rwli0xN0mpjoX8w78pDwltoqKHFGGwwgsIHFH3q1q16BFHWFZ1q10q1B2qlwq1B1q10q1B2q1yq1B6q1gq1Biq1qhxBir1qp1Bqt1q1qB1g1q1+B//3q16B///q1qBH/qlqq9Bholqq9B1i00a1q10qD1op1HkwmigEigiy6Cptogq1Bixo1kDq7/j00B2qgoBWGFm1lz50B6s5q1+BGWhggzhwBFFhgk4//Bo2jigE8wguI8wguI8wgugUog1qoB4qjmIwwi2KgkYHHH4lBgiFWkgIWoghssMmz5smrBZ3q1y50B5sm7gzBtz1smzB5smz50BqzqtmzB5sgzqzBF2/9//5BowgoIwmnkzPkwgk4C8ys65BkgoqI0wgy6FghquZo2giY0ghiIsgh24B4ghsQ8QF/v1q1OFs0O8iCHHF1qggz/B8wg6Iznv+//B08QgohsjK0QGFk7hsQ4gB';
    this.o4_1 = decodeVarLenBase64(rangeCategory, fromBase64, 222);
  }
}
class Comparator {}
class Unit {
  toString() {
    return 'kotlin.Unit';
  }
}
class AbstractCollection {
  static r4() {
    return createThis(this);
  }
  q2(element) {
    var tmp$ret$0;
    $l$block_0: {
      // Inline function 'kotlin.collections.any' call
      var tmp;
      if (isInterface(this, Collection)) {
        tmp = this.p1();
      } else {
        tmp = false;
      }
      if (tmp) {
        tmp$ret$0 = false;
        break $l$block_0;
      }
      var _iterator__ex2g4s = this.h1();
      while (_iterator__ex2g4s.i1()) {
        var element_0 = _iterator__ex2g4s.j1();
        if (equals(element_0, element)) {
          tmp$ret$0 = true;
          break $l$block_0;
        }
      }
      tmp$ret$0 = false;
    }
    return tmp$ret$0;
  }
  r2(elements) {
    var tmp$ret$0;
    $l$block_0: {
      // Inline function 'kotlin.collections.all' call
      var tmp;
      if (isInterface(elements, Collection)) {
        tmp = elements.p1();
      } else {
        tmp = false;
      }
      if (tmp) {
        tmp$ret$0 = true;
        break $l$block_0;
      }
      var _iterator__ex2g4s = elements.h1();
      while (_iterator__ex2g4s.i1()) {
        var element = _iterator__ex2g4s.j1();
        if (!this.q2(element)) {
          tmp$ret$0 = false;
          break $l$block_0;
        }
      }
      tmp$ret$0 = true;
    }
    return tmp$ret$0;
  }
  p1() {
    return this.k1() === 0;
  }
  toString() {
    return joinToString_1(this, ', ', '[', ']', VOID, VOID, AbstractCollection$toString$lambda(this));
  }
  toArray() {
    return collectionToArray(this);
  }
}
class AbstractMutableCollection extends AbstractCollection {
  static q4() {
    return this.r4();
  }
  e3(element) {
    this.s4();
    var iterator = this.h1();
    while (iterator.i1()) {
      if (equals(iterator.j1(), element)) {
        iterator.t4();
        return true;
      }
    }
    return false;
  }
  o1(elements) {
    this.s4();
    var modified = false;
    var _iterator__ex2g4s = elements.h1();
    while (_iterator__ex2g4s.i1()) {
      var element = _iterator__ex2g4s.j1();
      if (this.c1(element))
        modified = true;
    }
    return modified;
  }
  u4() {
    this.s4();
    var iterator = this.h1();
    while (iterator.i1()) {
      iterator.j1();
      iterator.t4();
    }
  }
  toJSON() {
    return this.toArray();
  }
  s4() {
  }
}
class IteratorImpl {
  constructor($outer, $box) {
    boxApply(this, $box);
    this.x4_1 = $outer;
    this.v4_1 = 0;
    this.w4_1 = -1;
  }
  i1() {
    return this.v4_1 < this.x4_1.k1();
  }
  j1() {
    if (!this.i1())
      throw NoSuchElementException.y4();
    var tmp = this;
    var _unary__edvuaz = this.v4_1;
    this.v4_1 = _unary__edvuaz + 1 | 0;
    tmp.w4_1 = _unary__edvuaz;
    return this.x4_1.l1(this.w4_1);
  }
  t4() {
    // Inline function 'kotlin.check' call
    if (!!(this.w4_1 === -1)) {
      var message = 'Call next() or previous() before removing element from the iterator.';
      throw IllegalStateException.w3(toString_1(message));
    }
    this.x4_1.a5(this.w4_1);
    this.v4_1 = this.w4_1;
    this.w4_1 = -1;
  }
}
class ListIteratorImpl extends IteratorImpl {
  constructor($outer, index, $box) {
    if ($box === VOID)
      $box = {};
    $box.e5_1 = $outer;
    super($outer, $box);
    Companion_instance_6.f5(index, this.e5_1.k1());
    this.v4_1 = index;
  }
  g5() {
    return this.v4_1 > 0;
  }
  h5() {
    return this.v4_1;
  }
  i5() {
    if (!this.g5())
      throw NoSuchElementException.y4();
    var tmp = this;
    this.v4_1 = this.v4_1 - 1 | 0;
    tmp.w4_1 = this.v4_1;
    return this.e5_1.l1(this.w4_1);
  }
}
class AbstractMutableList extends AbstractMutableCollection {
  static o5() {
    var $this = this.q4();
    $this.z4_1 = 0;
    return $this;
  }
  s5(_set____db54di) {
    this.z4_1 = _set____db54di;
  }
  t5() {
    return this.z4_1;
  }
  c1(element) {
    this.s4();
    this.p5(this.k1(), element);
    return true;
  }
  u4() {
    this.s4();
    this.r5(0, this.k1());
  }
  u5(elements) {
    this.s4();
    return removeAll(this, AbstractMutableList$removeAll$lambda(elements));
  }
  v5(elements) {
    this.s4();
    return removeAll(this, AbstractMutableList$retainAll$lambda(elements));
  }
  h1() {
    return new IteratorImpl(this);
  }
  q2(element) {
    return this.s2(element) >= 0;
  }
  s2(element) {
    var tmp$ret$1;
    $l$block: {
      // Inline function 'kotlin.collections.indexOfFirst' call
      var index = 0;
      var _iterator__ex2g4s = this.h1();
      while (_iterator__ex2g4s.i1()) {
        var item = _iterator__ex2g4s.j1();
        if (equals(item, element)) {
          tmp$ret$1 = index;
          break $l$block;
        }
        index = index + 1 | 0;
      }
      tmp$ret$1 = -1;
    }
    return tmp$ret$1;
  }
  t2(element) {
    var tmp$ret$1;
    $l$block: {
      // Inline function 'kotlin.collections.indexOfLast' call
      var iterator = this.v2(this.k1());
      while (iterator.g5()) {
        var it = iterator.i5();
        if (equals(it, element)) {
          tmp$ret$1 = iterator.h5();
          break $l$block;
        }
      }
      tmp$ret$1 = -1;
    }
    return tmp$ret$1;
  }
  u2() {
    return this.v2(0);
  }
  v2(index) {
    return new ListIteratorImpl(this, index);
  }
  w2(fromIndex, toIndex) {
    return SubList.n5(this, fromIndex, toIndex);
  }
  r5(fromIndex, toIndex) {
    var iterator = this.v2(fromIndex);
    // Inline function 'kotlin.repeat' call
    var times = toIndex - fromIndex | 0;
    var inductionVariable = 0;
    if (inductionVariable < times)
      do {
        var index = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        iterator.j1();
        iterator.t4();
      }
       while (inductionVariable < times);
  }
  equals(other) {
    if (other === this)
      return true;
    if (!(!(other == null) ? isInterface(other, KtList) : false))
      return false;
    return Companion_instance_6.w5(this, other);
  }
  hashCode() {
    return Companion_instance_6.x5(this);
  }
}
class RandomAccess {}
class SubList extends AbstractMutableList {
  static n5(list, fromIndex, toIndex) {
    var $this = this.o5();
    $this.k5_1 = list;
    $this.l5_1 = fromIndex;
    $this.m5_1 = 0;
    Companion_instance_6.k4($this.l5_1, toIndex, $this.k5_1.k1());
    $this.m5_1 = toIndex - $this.l5_1 | 0;
    return $this;
  }
  p5(index, element) {
    Companion_instance_6.f5(index, this.m5_1);
    this.k5_1.p5(this.l5_1 + index | 0, element);
    this.m5_1 = this.m5_1 + 1 | 0;
  }
  l1(index) {
    Companion_instance_6.q5(index, this.m5_1);
    return this.k5_1.l1(this.l5_1 + index | 0);
  }
  a5(index) {
    Companion_instance_6.q5(index, this.m5_1);
    var result = this.k5_1.a5(this.l5_1 + index | 0);
    this.m5_1 = this.m5_1 - 1 | 0;
    return result;
  }
  p4(index, element) {
    Companion_instance_6.q5(index, this.m5_1);
    return this.k5_1.p4(this.l5_1 + index | 0, element);
  }
  r5(fromIndex, toIndex) {
    this.k5_1.r5(this.l5_1 + fromIndex | 0, this.l5_1 + toIndex | 0);
    this.m5_1 = this.m5_1 - (toIndex - fromIndex | 0) | 0;
  }
  k1() {
    return this.m5_1;
  }
  s4() {
    return this.k5_1.s4();
  }
}
class AbstractMap {
  static f6() {
    var $this = createThis(this);
    $this.d6_1 = null;
    $this.e6_1 = null;
    return $this;
  }
  a3(key) {
    return !(implFindEntry(this, key) == null);
  }
  b3(value) {
    var tmp0 = this.d3();
    var tmp$ret$0;
    $l$block_0: {
      // Inline function 'kotlin.collections.any' call
      var tmp;
      if (isInterface(tmp0, Collection)) {
        tmp = tmp0.p1();
      } else {
        tmp = false;
      }
      if (tmp) {
        tmp$ret$0 = false;
        break $l$block_0;
      }
      var _iterator__ex2g4s = tmp0.h1();
      while (_iterator__ex2g4s.i1()) {
        var element = _iterator__ex2g4s.j1();
        if (equals(element.z2(), value)) {
          tmp$ret$0 = true;
          break $l$block_0;
        }
      }
      tmp$ret$0 = false;
    }
    return tmp$ret$0;
  }
  q6(entry) {
    if (!(!(entry == null) ? isInterface(entry, Entry) : false))
      return false;
    var key = entry.y2();
    var value = entry.z2();
    // Inline function 'kotlin.collections.get' call
    var ourValue = (isInterface(this, KtMap) ? this : THROW_CCE()).c3(key);
    if (!equals(value, ourValue)) {
      return false;
    }
    var tmp;
    if (ourValue == null) {
      // Inline function 'kotlin.collections.containsKey' call
      tmp = !(isInterface(this, KtMap) ? this : THROW_CCE()).a3(key);
    } else {
      tmp = false;
    }
    if (tmp) {
      return false;
    }
    return true;
  }
  equals(other) {
    if (other === this)
      return true;
    if (!(!(other == null) ? isInterface(other, KtMap) : false))
      return false;
    if (!(this.k1() === other.k1()))
      return false;
    var tmp0 = other.d3();
    var tmp$ret$0;
    $l$block_0: {
      // Inline function 'kotlin.collections.all' call
      var tmp;
      if (isInterface(tmp0, Collection)) {
        tmp = tmp0.p1();
      } else {
        tmp = false;
      }
      if (tmp) {
        tmp$ret$0 = true;
        break $l$block_0;
      }
      var _iterator__ex2g4s = tmp0.h1();
      while (_iterator__ex2g4s.i1()) {
        var element = _iterator__ex2g4s.j1();
        if (!this.q6(element)) {
          tmp$ret$0 = false;
          break $l$block_0;
        }
      }
      tmp$ret$0 = true;
    }
    return tmp$ret$0;
  }
  c3(key) {
    var tmp0_safe_receiver = implFindEntry(this, key);
    return tmp0_safe_receiver == null ? null : tmp0_safe_receiver.z2();
  }
  hashCode() {
    return hashCode(this.d3());
  }
  k1() {
    return this.d3().k1();
  }
  toString() {
    var tmp = this.d3();
    return joinToString_1(tmp, ', ', '{', '}', VOID, VOID, AbstractMap$toString$lambda(this));
  }
}
class AbstractMutableMap extends AbstractMap {
  static c6() {
    var $this = this.f6();
    $this.a6_1 = null;
    $this.b6_1 = null;
    return $this;
  }
  g6() {
    return HashMapKeysDefault.i6(this);
  }
  j6() {
    return HashMapValuesDefault.l6(this);
  }
  m6() {
    var tmp0_elvis_lhs = this.a6_1;
    var tmp;
    if (tmp0_elvis_lhs == null) {
      // Inline function 'kotlin.also' call
      var this_0 = this.g6();
      this.a6_1 = this_0;
      tmp = this_0;
    } else {
      tmp = tmp0_elvis_lhs;
    }
    return tmp;
  }
  n6() {
    var tmp0_elvis_lhs = this.b6_1;
    var tmp;
    if (tmp0_elvis_lhs == null) {
      // Inline function 'kotlin.also' call
      var this_0 = this.j6();
      this.b6_1 = this_0;
      tmp = this_0;
    } else {
      tmp = tmp0_elvis_lhs;
    }
    return tmp;
  }
  u4() {
    this.d3().u4();
  }
  p6(key) {
    this.s4();
    var iter = this.d3().h1();
    while (iter.i1()) {
      var entry = iter.j1();
      var k = entry.y2();
      if (equals(key, k)) {
        var value = entry.z2();
        iter.t4();
        return value;
      }
    }
    return null;
  }
  s4() {
  }
}
class AbstractMutableSet extends AbstractMutableCollection {
  static r6() {
    return this.q4();
  }
  equals(other) {
    if (other === this)
      return true;
    if (!(!(other == null) ? isInterface(other, KtSet) : false))
      return false;
    return Companion_instance_8.s6(this, other);
  }
  hashCode() {
    return Companion_instance_8.t6(this);
  }
}
class Companion_3 {
  constructor() {
    Companion_instance_3 = this;
    var tmp = this;
    // Inline function 'kotlin.also' call
    var this_0 = ArrayList.n1(0);
    this_0.r_1 = true;
    tmp.u6_1 = this_0;
  }
}
class ArrayList extends AbstractMutableList {
  static r3(array) {
    Companion_getInstance_3();
    var $this = this.o5();
    $this.q_1 = array;
    $this.r_1 = false;
    return $this;
  }
  static q1() {
    Companion_getInstance_3();
    // Inline function 'kotlin.emptyArray' call
    var tmp$ret$0 = [];
    return this.r3(tmp$ret$0);
  }
  static n1(initialCapacity) {
    Companion_getInstance_3();
    // Inline function 'kotlin.emptyArray' call
    var tmp$ret$0 = [];
    var $this = this.r3(tmp$ret$0);
    // Inline function 'kotlin.require' call
    if (!(initialCapacity >= 0)) {
      var message = 'Negative initial capacity: ' + initialCapacity;
      throw IllegalArgumentException.w(toString_1(message));
    }
    return $this;
  }
  static s(elements) {
    Companion_getInstance_3();
    // Inline function 'kotlin.collections.toTypedArray' call
    var tmp$ret$0 = copyToArray(elements);
    return this.r3(tmp$ret$0);
  }
  s3() {
    this.s4();
    this.r_1 = true;
    return this.k1() > 0 ? this : Companion_getInstance_3().u6_1;
  }
  v6() {
  }
  w6(minCapacity) {
  }
  k1() {
    return this.q_1.length;
  }
  l1(index) {
    var tmp = this.q_1[rangeCheck(this, index)];
    return (tmp == null ? true : !(tmp == null)) ? tmp : THROW_CCE();
  }
  p4(index, element) {
    this.s4();
    rangeCheck(this, index);
    // Inline function 'kotlin.apply' call
    var this_0 = this.q_1[index];
    this.q_1[index] = element;
    var tmp = this_0;
    return (tmp == null ? true : !(tmp == null)) ? tmp : THROW_CCE();
  }
  c1(element) {
    this.s4();
    // Inline function 'kotlin.js.asDynamic' call
    this.q_1.push(element);
    this.z4_1 = this.z4_1 + 1 | 0;
    return true;
  }
  p5(index, element) {
    this.s4();
    // Inline function 'kotlin.js.asDynamic' call
    this.q_1.splice(insertionRangeCheck(this, index), 0, element);
    this.z4_1 = this.z4_1 + 1 | 0;
  }
  o1(elements) {
    this.s4();
    if (elements.p1())
      return false;
    var offset = increaseLength(this, elements.k1());
    // Inline function 'kotlin.collections.forEachIndexed' call
    var index = 0;
    var _iterator__ex2g4s = elements.h1();
    while (_iterator__ex2g4s.i1()) {
      var item = _iterator__ex2g4s.j1();
      var _unary__edvuaz = index;
      index = _unary__edvuaz + 1 | 0;
      var index_0 = checkIndexOverflow(_unary__edvuaz);
      this.q_1[offset + index_0 | 0] = item;
    }
    this.z4_1 = this.z4_1 + 1 | 0;
    return true;
  }
  x6(index, elements) {
    this.s4();
    insertionRangeCheck(this, index);
    if (index === this.k1())
      return this.o1(elements);
    if (elements.p1())
      return false;
    // Inline function 'kotlin.js.asDynamic' call
    // Inline function 'kotlin.js.unsafeCast' call
    var tail = this.q_1.splice(index);
    this.o1(elements);
    var offset = increaseLength(this, tail.length);
    // Inline function 'kotlin.repeat' call
    var times = tail.length;
    var inductionVariable = 0;
    if (inductionVariable < times)
      do {
        var index_0 = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        this.q_1[offset + index_0 | 0] = tail[index_0];
      }
       while (inductionVariable < times);
    this.z4_1 = this.z4_1 + 1 | 0;
    return true;
  }
  a5(index) {
    this.s4();
    rangeCheck(this, index);
    this.z4_1 = this.z4_1 + 1 | 0;
    var tmp;
    if (index === get_lastIndex_0(this)) {
      // Inline function 'kotlin.js.asDynamic' call
      tmp = this.q_1.pop();
    } else {
      // Inline function 'kotlin.js.asDynamic' call
      tmp = this.q_1.splice(index, 1)[0];
    }
    return tmp;
  }
  e3(element) {
    this.s4();
    var inductionVariable = 0;
    var last = this.q_1.length - 1 | 0;
    if (inductionVariable <= last)
      do {
        var index = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        if (equals(this.q_1[index], element)) {
          // Inline function 'kotlin.js.asDynamic' call
          this.q_1.splice(index, 1);
          this.z4_1 = this.z4_1 + 1 | 0;
          return true;
        }
      }
       while (inductionVariable <= last);
    return false;
  }
  r5(fromIndex, toIndex) {
    this.s4();
    this.z4_1 = this.z4_1 + 1 | 0;
    // Inline function 'kotlin.js.asDynamic' call
    this.q_1.splice(fromIndex, toIndex - fromIndex | 0);
  }
  u4() {
    this.s4();
    var tmp = this;
    // Inline function 'kotlin.emptyArray' call
    tmp.q_1 = [];
    this.z4_1 = this.z4_1 + 1 | 0;
  }
  s2(element) {
    return indexOf(this.q_1, element);
  }
  t2(element) {
    return lastIndexOf(this.q_1, element);
  }
  toString() {
    return arrayToString(this.q_1);
  }
  y6(array) {
    if (array.length < this.k1()) {
      var tmp = this.z6();
      return isArray(tmp) ? tmp : THROW_CCE();
    }
    var tmp_0 = this.q_1;
    // Inline function 'kotlin.collections.copyInto' call
    var this_0 = isArray(tmp_0) ? tmp_0 : THROW_CCE();
    var endIndex = this_0.length;
    arrayCopy(this_0, array, 0, 0, endIndex);
    return terminateCollectionToArray(this.k1(), array);
  }
  z6() {
    return [].slice.call(this.q_1);
  }
  toArray() {
    return this.z6();
  }
  a7() {
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    return this.q_1;
  }
  s4() {
    if (this.r_1)
      throw UnsupportedOperationException.q3();
  }
}
class HashMap extends AbstractMutableMap {
  static h7(internalMap) {
    var $this = this.c6();
    init_kotlin_collections_HashMap($this);
    $this.f7_1 = internalMap;
    return $this;
  }
  static i7() {
    return this.h7(InternalHashMap.t7());
  }
  static u7(initialCapacity, loadFactor) {
    return this.h7(InternalHashMap.v7(initialCapacity, loadFactor));
  }
  static w7(initialCapacity) {
    return this.u7(initialCapacity, 1.0);
  }
  u4() {
    this.f7_1.u4();
  }
  a3(key) {
    return this.f7_1.x7(key);
  }
  b3(value) {
    return this.f7_1.b3(value);
  }
  g6() {
    return HashMapKeys.z7(this.f7_1);
  }
  j6() {
    return HashMapValues.b8(this.f7_1);
  }
  d3() {
    var tmp0_elvis_lhs = this.g7_1;
    var tmp;
    if (tmp0_elvis_lhs == null) {
      // Inline function 'kotlin.also' call
      var this_0 = HashMapEntrySet.d8(this.f7_1);
      this.g7_1 = this_0;
      tmp = this_0;
    } else {
      tmp = tmp0_elvis_lhs;
    }
    return tmp;
  }
  c3(key) {
    return this.f7_1.c3(key);
  }
  o6(key, value) {
    return this.f7_1.o6(key, value);
  }
  p6(key) {
    return this.f7_1.p6(key);
  }
  k1() {
    return this.f7_1.k1();
  }
}
class HashMapKeys extends AbstractMutableSet {
  static z7(backing) {
    var $this = this.r6();
    $this.y7_1 = backing;
    return $this;
  }
  k1() {
    return this.y7_1.k1();
  }
  p1() {
    return this.y7_1.k1() === 0;
  }
  q2(element) {
    return this.y7_1.x7(element);
  }
  u4() {
    return this.y7_1.u4();
  }
  c1(element) {
    throw UnsupportedOperationException.q3();
  }
  o1(elements) {
    throw UnsupportedOperationException.q3();
  }
  e3(element) {
    return this.y7_1.e8(element);
  }
  h1() {
    return this.y7_1.f8();
  }
  s4() {
    return this.y7_1.g8();
  }
}
class HashMapValues extends AbstractMutableCollection {
  static b8(backing) {
    var $this = this.q4();
    $this.a8_1 = backing;
    return $this;
  }
  k1() {
    return this.a8_1.k1();
  }
  p1() {
    return this.a8_1.k1() === 0;
  }
  h8(element) {
    return this.a8_1.b3(element);
  }
  q2(element) {
    if (!(element == null ? true : !(element == null)))
      return false;
    return this.h8((element == null ? true : !(element == null)) ? element : THROW_CCE());
  }
  i8(element) {
    throw UnsupportedOperationException.q3();
  }
  c1(element) {
    return this.i8((element == null ? true : !(element == null)) ? element : THROW_CCE());
  }
  j8(elements) {
    throw UnsupportedOperationException.q3();
  }
  o1(elements) {
    return this.j8(elements);
  }
  h1() {
    return this.a8_1.k8();
  }
  l8(element) {
    return this.a8_1.m8(element);
  }
  e3(element) {
    if (!(element == null ? true : !(element == null)))
      return false;
    return this.l8((element == null ? true : !(element == null)) ? element : THROW_CCE());
  }
  s4() {
    return this.a8_1.g8();
  }
}
class HashMapEntrySetBase extends AbstractMutableSet {
  static o8(backing) {
    var $this = this.r6();
    $this.n8_1 = backing;
    return $this;
  }
  k1() {
    return this.n8_1.k1();
  }
  p1() {
    return this.n8_1.k1() === 0;
  }
  q8(element) {
    return this.n8_1.t8(element);
  }
  q2(element) {
    if (!(!(element == null) ? isInterface(element, Entry) : false))
      return false;
    return this.q8((!(element == null) ? isInterface(element, Entry) : false) ? element : THROW_CCE());
  }
  u4() {
    return this.n8_1.u4();
  }
  r8(element) {
    throw UnsupportedOperationException.q3();
  }
  c1(element) {
    return this.r8((!(element == null) ? isInterface(element, Entry) : false) ? element : THROW_CCE());
  }
  o1(elements) {
    throw UnsupportedOperationException.q3();
  }
  s8(element) {
    return this.n8_1.u8(element);
  }
  e3(element) {
    if (!(!(element == null) ? isInterface(element, Entry) : false))
      return false;
    return this.s8((!(element == null) ? isInterface(element, Entry) : false) ? element : THROW_CCE());
  }
  r2(elements) {
    return this.n8_1.v8(elements);
  }
  s4() {
    return this.n8_1.g8();
  }
}
class HashMapEntrySet extends HashMapEntrySetBase {
  static d8(backing) {
    return this.o8(backing);
  }
  h1() {
    return this.n8_1.p8();
  }
}
class HashMapKeysDefault$iterator$1 {
  constructor($entryIterator) {
    this.w8_1 = $entryIterator;
  }
  i1() {
    return this.w8_1.i1();
  }
  j1() {
    return this.w8_1.j1().y2();
  }
  t4() {
    return this.w8_1.t4();
  }
}
class HashMapKeysDefault extends AbstractMutableSet {
  static i6(backingMap) {
    var $this = this.r6();
    $this.h6_1 = backingMap;
    return $this;
  }
  x8(element) {
    throw UnsupportedOperationException.y8('Add is not supported on keys');
  }
  c1(element) {
    return this.x8((element == null ? true : !(element == null)) ? element : THROW_CCE());
  }
  u4() {
    return this.h6_1.u4();
  }
  x7(element) {
    return this.h6_1.a3(element);
  }
  q2(element) {
    if (!(element == null ? true : !(element == null)))
      return false;
    return this.x7((element == null ? true : !(element == null)) ? element : THROW_CCE());
  }
  h1() {
    var entryIterator = this.h6_1.d3().h1();
    return new HashMapKeysDefault$iterator$1(entryIterator);
  }
  p6(element) {
    this.s4();
    if (this.h6_1.a3(element)) {
      this.h6_1.p6(element);
      return true;
    }
    return false;
  }
  e3(element) {
    if (!(element == null ? true : !(element == null)))
      return false;
    return this.p6((element == null ? true : !(element == null)) ? element : THROW_CCE());
  }
  k1() {
    return this.h6_1.k1();
  }
  s4() {
    return this.h6_1.s4();
  }
}
class HashMapValuesDefault$iterator$1 {
  constructor($entryIterator) {
    this.z8_1 = $entryIterator;
  }
  i1() {
    return this.z8_1.i1();
  }
  j1() {
    return this.z8_1.j1().z2();
  }
  t4() {
    return this.z8_1.t4();
  }
}
class HashMapValuesDefault extends AbstractMutableCollection {
  static l6(backingMap) {
    var $this = this.q4();
    $this.k6_1 = backingMap;
    return $this;
  }
  i8(element) {
    throw UnsupportedOperationException.y8('Add is not supported on values');
  }
  c1(element) {
    return this.i8((element == null ? true : !(element == null)) ? element : THROW_CCE());
  }
  h8(element) {
    return this.k6_1.b3(element);
  }
  q2(element) {
    if (!(element == null ? true : !(element == null)))
      return false;
    return this.h8((element == null ? true : !(element == null)) ? element : THROW_CCE());
  }
  h1() {
    var entryIterator = this.k6_1.d3().h1();
    return new HashMapValuesDefault$iterator$1(entryIterator);
  }
  k1() {
    return this.k6_1.k1();
  }
  s4() {
    return this.k6_1.s4();
  }
}
class HashSet extends AbstractMutableSet {
  static b9(map) {
    var $this = this.r6();
    init_kotlin_collections_HashSet($this);
    $this.a9_1 = map;
    return $this;
  }
  static c9() {
    return this.b9(InternalHashMap.t7());
  }
  static d9(elements) {
    var $this = this.b9(InternalHashMap.e9(elements.k1()));
    var _iterator__ex2g4s = elements.h1();
    while (_iterator__ex2g4s.i1()) {
      var element = _iterator__ex2g4s.j1();
      $this.a9_1.o6(element, true);
    }
    return $this;
  }
  static f9(initialCapacity, loadFactor) {
    return this.b9(InternalHashMap.v7(initialCapacity, loadFactor));
  }
  static g9(initialCapacity) {
    return this.f9(initialCapacity, 1.0);
  }
  c1(element) {
    return this.a9_1.o6(element, true) == null;
  }
  u4() {
    this.a9_1.u4();
  }
  q2(element) {
    return this.a9_1.x7(element);
  }
  p1() {
    return this.a9_1.k1() === 0;
  }
  h1() {
    return this.a9_1.f8();
  }
  e3(element) {
    return !(this.a9_1.p6(element) == null);
  }
  k1() {
    return this.a9_1.k1();
  }
}
class Companion_4 {
  constructor() {
    this.q9_1 = -1640531527;
    this.r9_1 = 8;
    this.s9_1 = 2;
    this.t9_1 = -1;
  }
}
class Itr {
  constructor(map) {
    this.u9_1 = map;
    this.v9_1 = 0;
    this.w9_1 = -1;
    this.x9_1 = this.u9_1.q7_1;
    this.y9();
  }
  y9() {
    while (this.v9_1 < this.u9_1.o7_1 && this.u9_1.l7_1[this.v9_1] < 0) {
      this.v9_1 = this.v9_1 + 1 | 0;
    }
  }
  i1() {
    return this.v9_1 < this.u9_1.o7_1;
  }
  t4() {
    this.z9();
    // Inline function 'kotlin.check' call
    if (!!(this.w9_1 === -1)) {
      var message = 'Call next() before removing element from the iterator.';
      throw IllegalStateException.w3(toString_1(message));
    }
    this.u9_1.g8();
    removeEntryAt(this.u9_1, this.w9_1);
    this.w9_1 = -1;
    this.x9_1 = this.u9_1.q7_1;
  }
  z9() {
    if (!(this.u9_1.q7_1 === this.x9_1))
      throw ConcurrentModificationException.aa();
  }
}
class KeysItr extends Itr {
  j1() {
    this.z9();
    if (this.v9_1 >= this.u9_1.o7_1)
      throw NoSuchElementException.y4();
    var tmp = this;
    var _unary__edvuaz = this.v9_1;
    this.v9_1 = _unary__edvuaz + 1 | 0;
    tmp.w9_1 = _unary__edvuaz;
    var result = this.u9_1.j7_1[this.w9_1];
    this.y9();
    return result;
  }
}
class ValuesItr extends Itr {
  j1() {
    this.z9();
    if (this.v9_1 >= this.u9_1.o7_1)
      throw NoSuchElementException.y4();
    var tmp = this;
    var _unary__edvuaz = this.v9_1;
    this.v9_1 = _unary__edvuaz + 1 | 0;
    tmp.w9_1 = _unary__edvuaz;
    var result = ensureNotNull(this.u9_1.k7_1)[this.w9_1];
    this.y9();
    return result;
  }
}
class EntriesItr extends Itr {
  j1() {
    this.z9();
    if (this.v9_1 >= this.u9_1.o7_1)
      throw NoSuchElementException.y4();
    var tmp = this;
    var _unary__edvuaz = this.v9_1;
    this.v9_1 = _unary__edvuaz + 1 | 0;
    tmp.w9_1 = _unary__edvuaz;
    var result = new EntryRef(this.u9_1, this.w9_1);
    this.y9();
    return result;
  }
  na() {
    if (this.v9_1 >= this.u9_1.o7_1)
      throw NoSuchElementException.y4();
    var tmp = this;
    var _unary__edvuaz = this.v9_1;
    this.v9_1 = _unary__edvuaz + 1 | 0;
    tmp.w9_1 = _unary__edvuaz;
    // Inline function 'kotlin.hashCode' call
    var tmp0_safe_receiver = this.u9_1.j7_1[this.w9_1];
    var tmp1_elvis_lhs = tmp0_safe_receiver == null ? null : hashCode(tmp0_safe_receiver);
    var tmp_0 = tmp1_elvis_lhs == null ? 0 : tmp1_elvis_lhs;
    // Inline function 'kotlin.hashCode' call
    var tmp0_safe_receiver_0 = ensureNotNull(this.u9_1.k7_1)[this.w9_1];
    var tmp1_elvis_lhs_0 = tmp0_safe_receiver_0 == null ? null : hashCode(tmp0_safe_receiver_0);
    var result = tmp_0 ^ (tmp1_elvis_lhs_0 == null ? 0 : tmp1_elvis_lhs_0);
    this.y9();
    return result;
  }
  oa(sb) {
    if (this.v9_1 >= this.u9_1.o7_1)
      throw NoSuchElementException.y4();
    var tmp = this;
    var _unary__edvuaz = this.v9_1;
    this.v9_1 = _unary__edvuaz + 1 | 0;
    tmp.w9_1 = _unary__edvuaz;
    var key = this.u9_1.j7_1[this.w9_1];
    if (equals(key, this.u9_1))
      sb.qa('(this Map)');
    else
      sb.pa(key);
    sb.ra(_Char___init__impl__6a9atx(61));
    var value = ensureNotNull(this.u9_1.k7_1)[this.w9_1];
    if (equals(value, this.u9_1))
      sb.qa('(this Map)');
    else
      sb.pa(value);
    this.y9();
  }
}
class EntryRef {
  constructor(map, index) {
    this.l9_1 = map;
    this.m9_1 = index;
    this.n9_1 = this.l9_1.q7_1;
  }
  y2() {
    checkForComodification(this);
    return this.l9_1.j7_1[this.m9_1];
  }
  z2() {
    checkForComodification(this);
    return ensureNotNull(this.l9_1.k7_1)[this.m9_1];
  }
  equals(other) {
    var tmp;
    var tmp_0;
    if (!(other == null) ? isInterface(other, Entry) : false) {
      tmp_0 = equals(other.y2(), this.y2());
    } else {
      tmp_0 = false;
    }
    if (tmp_0) {
      tmp = equals(other.z2(), this.z2());
    } else {
      tmp = false;
    }
    return tmp;
  }
  hashCode() {
    // Inline function 'kotlin.hashCode' call
    var tmp0_safe_receiver = this.y2();
    var tmp1_elvis_lhs = tmp0_safe_receiver == null ? null : hashCode(tmp0_safe_receiver);
    var tmp = tmp1_elvis_lhs == null ? 0 : tmp1_elvis_lhs;
    // Inline function 'kotlin.hashCode' call
    var tmp0_safe_receiver_0 = this.z2();
    var tmp1_elvis_lhs_0 = tmp0_safe_receiver_0 == null ? null : hashCode(tmp0_safe_receiver_0);
    return tmp ^ (tmp1_elvis_lhs_0 == null ? 0 : tmp1_elvis_lhs_0);
  }
  toString() {
    return toString_0(this.y2()) + '=' + toString_0(this.z2());
  }
}
class InternalMap {}
function containsAllEntries(m) {
  var tmp$ret$0;
  $l$block_0: {
    // Inline function 'kotlin.collections.all' call
    var tmp;
    if (isInterface(m, Collection)) {
      tmp = m.p1();
    } else {
      tmp = false;
    }
    if (tmp) {
      tmp$ret$0 = true;
      break $l$block_0;
    }
    var _iterator__ex2g4s = m.h1();
    while (_iterator__ex2g4s.i1()) {
      var element = _iterator__ex2g4s.j1();
      // Inline function 'kotlin.js.unsafeCast' call
      // Inline function 'kotlin.js.asDynamic' call
      var entry = element;
      var tmp_0;
      if (!(entry == null) ? isInterface(entry, Entry) : false) {
        tmp_0 = this.va(entry);
      } else {
        tmp_0 = false;
      }
      if (!tmp_0) {
        tmp$ret$0 = false;
        break $l$block_0;
      }
    }
    tmp$ret$0 = true;
  }
  return tmp$ret$0;
}
class InternalHashMap {
  static sa(keysArray, valuesArray, presenceArray, hashArray, maxProbeDistance, length) {
    var $this = createThis(this);
    $this.j7_1 = keysArray;
    $this.k7_1 = valuesArray;
    $this.l7_1 = presenceArray;
    $this.m7_1 = hashArray;
    $this.n7_1 = maxProbeDistance;
    $this.o7_1 = length;
    $this.p7_1 = computeShift(Companion_instance_4, _get_hashSize__tftcho($this));
    $this.q7_1 = 0;
    $this.r7_1 = 0;
    $this.s7_1 = false;
    return $this;
  }
  k1() {
    return this.r7_1;
  }
  static t7() {
    return this.e9(8);
  }
  static e9(initialCapacity) {
    return this.sa(arrayOfUninitializedElements(initialCapacity), null, new Int32Array(initialCapacity), new Int32Array(computeHashSize(Companion_instance_4, initialCapacity)), 2, 0);
  }
  static v7(initialCapacity, loadFactor) {
    var $this = this.e9(initialCapacity);
    // Inline function 'kotlin.require' call
    if (!(loadFactor > 0)) {
      var message = 'Non-positive load factor: ' + loadFactor;
      throw IllegalArgumentException.w(toString_1(message));
    }
    return $this;
  }
  ta() {
    this.g8();
    this.s7_1 = true;
  }
  b3(value) {
    return findValue(this, value) >= 0;
  }
  c3(key) {
    var index = findKey(this, key);
    if (index < 0)
      return null;
    return ensureNotNull(this.k7_1)[index];
  }
  x7(key) {
    return findKey(this, key) >= 0;
  }
  o6(key, value) {
    var index = addKey(this, key);
    var valuesArray = allocateValuesArray(this);
    if (index < 0) {
      var oldValue = valuesArray[(-index | 0) - 1 | 0];
      valuesArray[(-index | 0) - 1 | 0] = value;
      return oldValue;
    } else {
      valuesArray[index] = value;
      return null;
    }
  }
  p6(key) {
    this.g8();
    var index = findKey(this, key);
    if (index < 0)
      return null;
    var oldValue = ensureNotNull(this.k7_1)[index];
    removeEntryAt(this, index);
    return oldValue;
  }
  u4() {
    this.g8();
    var inductionVariable = 0;
    var last = this.o7_1 - 1 | 0;
    if (inductionVariable <= last)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        var hash = this.l7_1[i];
        if (hash >= 0) {
          this.m7_1[hash] = 0;
          this.l7_1[i] = -1;
        }
      }
       while (!(i === last));
    resetRange(this.j7_1, 0, this.o7_1);
    var tmp0_safe_receiver = this.k7_1;
    if (tmp0_safe_receiver == null)
      null;
    else {
      resetRange(tmp0_safe_receiver, 0, this.o7_1);
    }
    this.r7_1 = 0;
    this.o7_1 = 0;
    registerModification(this);
  }
  equals(other) {
    var tmp;
    if (other === this) {
      tmp = true;
    } else {
      var tmp_0;
      if (!(other == null) ? isInterface(other, KtMap) : false) {
        tmp_0 = contentEquals_1(this, other);
      } else {
        tmp_0 = false;
      }
      tmp = tmp_0;
    }
    return tmp;
  }
  hashCode() {
    var result = 0;
    var it = this.p8();
    while (it.i1()) {
      result = result + it.na() | 0;
    }
    return result;
  }
  toString() {
    var sb = StringBuilder.ua(2 + imul_0(this.r7_1, 3) | 0);
    sb.qa('{');
    var i = 0;
    var it = this.p8();
    while (it.i1()) {
      if (i > 0) {
        sb.qa(', ');
      }
      it.oa(sb);
      i = i + 1 | 0;
    }
    sb.qa('}');
    return sb.toString();
  }
  g8() {
    if (this.s7_1)
      throw UnsupportedOperationException.q3();
  }
  e8(key) {
    this.g8();
    var index = findKey(this, key);
    if (index < 0)
      return false;
    removeEntryAt(this, index);
    return true;
  }
  t8(entry) {
    var index = findKey(this, entry.y2());
    if (index < 0)
      return false;
    return equals(ensureNotNull(this.k7_1)[index], entry.z2());
  }
  va(entry) {
    return this.t8(isInterface(entry, Entry) ? entry : THROW_CCE());
  }
  u8(entry) {
    this.g8();
    var index = findKey(this, entry.y2());
    if (index < 0)
      return false;
    if (!equals(ensureNotNull(this.k7_1)[index], entry.z2()))
      return false;
    removeEntryAt(this, index);
    return true;
  }
  m8(value) {
    this.g8();
    var index = findValue(this, value);
    if (index < 0)
      return false;
    removeEntryAt(this, index);
    return true;
  }
  f8() {
    return new KeysItr(this);
  }
  k8() {
    return new ValuesItr(this);
  }
  p8() {
    return new EntriesItr(this);
  }
}
class EmptyHolder {
  constructor() {
    EmptyHolder_instance = this;
    var tmp = this;
    // Inline function 'kotlin.also' call
    var this_0 = InternalHashMap.e9(0);
    this_0.ta();
    tmp.wa_1 = LinkedHashSet.xa(this_0);
  }
}
class LinkedHashSet extends HashSet {
  static m1() {
    var $this = this.c9();
    init_kotlin_collections_LinkedHashSet($this);
    return $this;
  }
  static r1(elements) {
    var $this = this.d9(elements);
    init_kotlin_collections_LinkedHashSet($this);
    return $this;
  }
  static ya(initialCapacity, loadFactor) {
    var $this = this.f9(initialCapacity, loadFactor);
    init_kotlin_collections_LinkedHashSet($this);
    return $this;
  }
  static b1(initialCapacity) {
    return this.ya(initialCapacity, 1.0);
  }
  static xa(internalMap) {
    var $this = this.b9(internalMap);
    init_kotlin_collections_LinkedHashSet($this);
    return $this;
  }
  s3() {
    this.a9_1.ta();
    return this.k1() > 0 ? this : EmptyHolder_getInstance().wa_1;
  }
  s4() {
    return this.a9_1.g8();
  }
}
class BaseOutput {
  za() {
    this.ab('\n');
  }
  bb(message) {
    this.ab(message);
    this.za();
  }
}
class NodeJsOutput extends BaseOutput {
  constructor(outputStream) {
    super();
    this.cb_1 = outputStream;
  }
  ab(message) {
    // Inline function 'kotlin.io.String' call
    var tmp1_elvis_lhs = message == null ? null : toString_1(message);
    var messageString = tmp1_elvis_lhs == null ? 'null' : tmp1_elvis_lhs;
    this.cb_1.write(messageString);
  }
}
class BufferedOutput extends BaseOutput {
  constructor() {
    super();
    this.eb_1 = '';
  }
  ab(message) {
    var tmp = this;
    var tmp_0 = this.eb_1;
    // Inline function 'kotlin.io.String' call
    var tmp1_elvis_lhs = message == null ? null : toString_1(message);
    tmp.eb_1 = tmp_0 + (tmp1_elvis_lhs == null ? 'null' : tmp1_elvis_lhs);
  }
}
class BufferedOutputToConsoleLog extends BufferedOutput {
  ab(message) {
    // Inline function 'kotlin.io.String' call
    var tmp1_elvis_lhs = message == null ? null : toString_1(message);
    var s = tmp1_elvis_lhs == null ? 'null' : tmp1_elvis_lhs;
    // Inline function 'kotlin.text.nativeLastIndexOf' call
    // Inline function 'kotlin.js.asDynamic' call
    var i = s.lastIndexOf('\n', 0);
    if (i >= 0) {
      this.eb_1 = this.eb_1 + substring(s, 0, i);
      this.fb();
      s = substring_0(s, i + 1 | 0);
    }
    this.eb_1 = this.eb_1 + s;
  }
  fb() {
    console.log(this.eb_1);
    this.eb_1 = '';
  }
}
class UnsupportedOperationException extends RuntimeException {
  static q3() {
    var $this = this.c2();
    init_kotlin_UnsupportedOperationException($this);
    return $this;
  }
  static y8(message) {
    var $this = this.o9(message);
    init_kotlin_UnsupportedOperationException($this);
    return $this;
  }
}
class IllegalStateException extends RuntimeException {
  static gb() {
    var $this = this.c2();
    init_kotlin_IllegalStateException($this);
    return $this;
  }
  static w3(message) {
    var $this = this.o9(message);
    init_kotlin_IllegalStateException($this);
    return $this;
  }
}
class IllegalArgumentException extends RuntimeException {
  static hb() {
    var $this = this.c2();
    init_kotlin_IllegalArgumentException($this);
    return $this;
  }
  static w(message) {
    var $this = this.o9(message);
    init_kotlin_IllegalArgumentException($this);
    return $this;
  }
}
class NoSuchElementException extends RuntimeException {
  static y4() {
    var $this = this.c2();
    init_kotlin_NoSuchElementException($this);
    return $this;
  }
  static g1(message) {
    var $this = this.o9(message);
    init_kotlin_NoSuchElementException($this);
    return $this;
  }
}
class IndexOutOfBoundsException extends RuntimeException {
  static qb() {
    var $this = this.c2();
    init_kotlin_IndexOutOfBoundsException($this);
    return $this;
  }
  static rb(message) {
    var $this = this.o9(message);
    init_kotlin_IndexOutOfBoundsException($this);
    return $this;
  }
}
class ClassCastException extends RuntimeException {
  static i4() {
    var $this = this.c2();
    init_kotlin_ClassCastException($this);
    return $this;
  }
}
class NumberFormatException extends IllegalArgumentException {
  static wb() {
    var $this = this.hb();
    init_kotlin_NumberFormatException($this);
    return $this;
  }
  static xb(message) {
    var $this = this.w(message);
    init_kotlin_NumberFormatException($this);
    return $this;
  }
}
class ArithmeticException extends RuntimeException {
  static bc() {
    var $this = this.c2();
    init_kotlin_ArithmeticException($this);
    return $this;
  }
  static cc(message) {
    var $this = this.o9(message);
    init_kotlin_ArithmeticException($this);
    return $this;
  }
}
class AssertionError extends Error_0 {
  static fc() {
    var $this = this.gc();
    init_kotlin_AssertionError($this);
    return $this;
  }
  static hc(message) {
    var $this = this.i(message);
    init_kotlin_AssertionError($this);
    return $this;
  }
}
class ConcurrentModificationException extends RuntimeException {
  static aa() {
    var $this = this.c2();
    init_kotlin_ConcurrentModificationException($this);
    return $this;
  }
  static k9(message) {
    var $this = this.o9(message);
    init_kotlin_ConcurrentModificationException($this);
    return $this;
  }
}
class NullPointerException extends RuntimeException {
  static a4() {
    var $this = this.c2();
    init_kotlin_NullPointerException($this);
    return $this;
  }
  static ic(message) {
    var $this = this.o9(message);
    init_kotlin_NullPointerException($this);
    return $this;
  }
}
class UninitializedPropertyAccessException extends RuntimeException {
  static jc() {
    var $this = this.c2();
    init_kotlin_UninitializedPropertyAccessException($this);
    return $this;
  }
  static o(message) {
    var $this = this.o9(message);
    init_kotlin_UninitializedPropertyAccessException($this);
    return $this;
  }
}
class NoWhenBranchMatchedException extends RuntimeException {
  static e4() {
    var $this = this.c2();
    init_kotlin_NoWhenBranchMatchedException($this);
    return $this;
  }
}
class KClass {}
class KClassImpl {
  equals(other) {
    var tmp;
    if (other instanceof NothingKClassImpl) {
      tmp = false;
    } else {
      if (other instanceof KClassImpl) {
        tmp = equals(this.oc(), other.oc());
      } else {
        tmp = false;
      }
    }
    return tmp;
  }
  hashCode() {
    var tmp0_safe_receiver = this.kc();
    var tmp1_elvis_lhs = tmp0_safe_receiver == null ? null : getStringHashCode(tmp0_safe_receiver);
    return tmp1_elvis_lhs == null ? 0 : tmp1_elvis_lhs;
  }
  toString() {
    return 'class ' + this.kc();
  }
}
class PrimitiveKClassImpl extends KClassImpl {
  constructor(jClass, givenSimpleName, isInstanceFunction) {
    super();
    this.lc_1 = jClass;
    this.mc_1 = givenSimpleName;
    this.nc_1 = isInstanceFunction;
  }
  oc() {
    return this.lc_1;
  }
  equals(other) {
    if (!(other instanceof PrimitiveKClassImpl))
      return false;
    return super.equals(other) && this.mc_1 === other.mc_1;
  }
  kc() {
    return this.mc_1;
  }
}
class NothingKClassImpl extends KClassImpl {
  constructor() {
    NothingKClassImpl_instance = null;
    super();
    NothingKClassImpl_instance = this;
    this.pc_1 = 'Nothing';
  }
  kc() {
    return this.pc_1;
  }
  oc() {
    throw UnsupportedOperationException.y8("There's no native JS class for Nothing type");
  }
  equals(other) {
    return other === this;
  }
  hashCode() {
    return 0;
  }
}
class SimpleKClassImpl extends KClassImpl {
  constructor(jClass) {
    super();
    this.qc_1 = jClass;
    var tmp = this;
    // Inline function 'kotlin.js.asDynamic' call
    var tmp0_safe_receiver = this.qc_1.$metadata$;
    // Inline function 'kotlin.js.unsafeCast' call
    tmp.rc_1 = tmp0_safe_receiver == null ? null : tmp0_safe_receiver.simpleName;
  }
  oc() {
    return this.qc_1;
  }
  kc() {
    return this.rc_1;
  }
}
class KProperty1 {}
class KMutableProperty1 {}
class PrimitiveClasses {
  constructor() {
    PrimitiveClasses_instance = this;
    var tmp = this;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp_0 = Object;
    tmp.anyClass = new PrimitiveKClassImpl(tmp_0, 'Any', PrimitiveClasses$anyClass$lambda);
    var tmp_1 = this;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp_2 = Number;
    tmp_1.numberClass = new PrimitiveKClassImpl(tmp_2, 'Number', PrimitiveClasses$numberClass$lambda);
    this.nothingClass = NothingKClassImpl_getInstance();
    var tmp_3 = this;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp_4 = Boolean;
    tmp_3.booleanClass = new PrimitiveKClassImpl(tmp_4, 'Boolean', PrimitiveClasses$booleanClass$lambda);
    var tmp_5 = this;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp_6 = Number;
    tmp_5.byteClass = new PrimitiveKClassImpl(tmp_6, 'Byte', PrimitiveClasses$byteClass$lambda);
    var tmp_7 = this;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp_8 = Number;
    tmp_7.shortClass = new PrimitiveKClassImpl(tmp_8, 'Short', PrimitiveClasses$shortClass$lambda);
    var tmp_9 = this;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp_10 = Number;
    tmp_9.intClass = new PrimitiveKClassImpl(tmp_10, 'Int', PrimitiveClasses$intClass$lambda);
    var tmp_11 = this;
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var tmp_12 = typeof BigInt === 'undefined' ? VOID : BigInt;
    tmp_11.longClass = new PrimitiveKClassImpl(tmp_12, 'Long', PrimitiveClasses$longClass$lambda);
    var tmp_13 = this;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp_14 = Number;
    tmp_13.floatClass = new PrimitiveKClassImpl(tmp_14, 'Float', PrimitiveClasses$floatClass$lambda);
    var tmp_15 = this;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp_16 = Number;
    tmp_15.doubleClass = new PrimitiveKClassImpl(tmp_16, 'Double', PrimitiveClasses$doubleClass$lambda);
    var tmp_17 = this;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp_18 = Array;
    tmp_17.arrayClass = new PrimitiveKClassImpl(tmp_18, 'Array', PrimitiveClasses$arrayClass$lambda);
    var tmp_19 = this;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp_20 = String;
    tmp_19.stringClass = new PrimitiveKClassImpl(tmp_20, 'String', PrimitiveClasses$stringClass$lambda);
    var tmp_21 = this;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp_22 = Error;
    tmp_21.throwableClass = new PrimitiveKClassImpl(tmp_22, 'Throwable', PrimitiveClasses$throwableClass$lambda);
    var tmp_23 = this;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp_24 = Array;
    tmp_23.booleanArrayClass = new PrimitiveKClassImpl(tmp_24, 'BooleanArray', PrimitiveClasses$booleanArrayClass$lambda);
    var tmp_25 = this;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp_26 = Uint16Array;
    tmp_25.charArrayClass = new PrimitiveKClassImpl(tmp_26, 'CharArray', PrimitiveClasses$charArrayClass$lambda);
    var tmp_27 = this;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp_28 = Int8Array;
    tmp_27.byteArrayClass = new PrimitiveKClassImpl(tmp_28, 'ByteArray', PrimitiveClasses$byteArrayClass$lambda);
    var tmp_29 = this;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp_30 = Int16Array;
    tmp_29.shortArrayClass = new PrimitiveKClassImpl(tmp_30, 'ShortArray', PrimitiveClasses$shortArrayClass$lambda);
    var tmp_31 = this;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp_32 = Int32Array;
    tmp_31.intArrayClass = new PrimitiveKClassImpl(tmp_32, 'IntArray', PrimitiveClasses$intArrayClass$lambda);
    var tmp_33 = this;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp_34 = Float32Array;
    tmp_33.floatArrayClass = new PrimitiveKClassImpl(tmp_34, 'FloatArray', PrimitiveClasses$floatArrayClass$lambda);
    var tmp_35 = this;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp_36 = Float64Array;
    tmp_35.doubleArrayClass = new PrimitiveKClassImpl(tmp_36, 'DoubleArray', PrimitiveClasses$doubleArrayClass$lambda);
  }
  sc() {
    return this.anyClass;
  }
  tc() {
    return this.numberClass;
  }
  uc() {
    return this.nothingClass;
  }
  vc() {
    return this.booleanClass;
  }
  wc() {
    return this.byteClass;
  }
  xc() {
    return this.shortClass;
  }
  yc() {
    return this.intClass;
  }
  zc() {
    return this.longClass;
  }
  ad() {
    return this.floatClass;
  }
  bd() {
    return this.doubleClass;
  }
  cd() {
    return this.arrayClass;
  }
  dd() {
    return this.stringClass;
  }
  ed() {
    return this.throwableClass;
  }
  fd() {
    return this.booleanArrayClass;
  }
  gd() {
    return this.charArrayClass;
  }
  hd() {
    return this.byteArrayClass;
  }
  id() {
    return this.shortArrayClass;
  }
  jd() {
    return this.intArrayClass;
  }
  kd() {
    return this.floatArrayClass;
  }
  ld() {
    return this.doubleArrayClass;
  }
  functionClass(arity) {
    var tmp0_elvis_lhs = get_functionClasses()[arity];
    var tmp;
    if (tmp0_elvis_lhs == null) {
      // Inline function 'kotlin.run' call
      // Inline function 'kotlin.js.unsafeCast' call
      var tmp_0 = Function;
      var tmp_1 = 'Function' + arity;
      var result = new PrimitiveKClassImpl(tmp_0, tmp_1, PrimitiveClasses$functionClass$lambda(arity));
      // Inline function 'kotlin.js.asDynamic' call
      get_functionClasses()[arity] = result;
      tmp = result;
    } else {
      tmp = tmp0_elvis_lhs;
    }
    return tmp;
  }
}
class StringBuilder {
  static md(content) {
    var $this = createThis(this);
    $this.x_1 = content;
    return $this;
  }
  static ua(capacity) {
    return this.y();
  }
  static nd(content) {
    return this.md(toString_1(content));
  }
  static y() {
    return this.md('');
  }
  a() {
    // Inline function 'kotlin.js.asDynamic' call
    return this.x_1.length;
  }
  b(index) {
    // Inline function 'kotlin.text.getOrElse' call
    var this_0 = this.x_1;
    var tmp;
    if (0 <= index ? index <= (charSequenceLength(this_0) - 1 | 0) : false) {
      tmp = charSequenceGet(this_0, index);
    } else {
      throw IndexOutOfBoundsException.rb('index: ' + index + ', length: ' + this.a() + '}');
    }
    return tmp;
  }
  c(startIndex, endIndex) {
    return substring(this.x_1, startIndex, endIndex);
  }
  ra(value) {
    this.x_1 = this.x_1 + toString(value);
    return this;
  }
  z(value) {
    this.x_1 = this.x_1 + toString_0(value);
    return this;
  }
  pa(value) {
    this.x_1 = this.x_1 + toString_0(value);
    return this;
  }
  od(value) {
    this.x_1 = this.x_1 + value;
    return this;
  }
  pd(value) {
    return this.qa(value.toString());
  }
  qd(value) {
    return this.qa(value.toString());
  }
  qa(value) {
    var tmp = this;
    var tmp_0 = this.x_1;
    tmp.x_1 = tmp_0 + (value == null ? 'null' : value);
    return this;
  }
  rd(string, startIndex) {
    // Inline function 'kotlin.js.asDynamic' call
    return this.x_1.indexOf(string, startIndex);
  }
  sd(index, value) {
    Companion_instance_6.f5(index, this.a());
    this.x_1 = substring(this.x_1, 0, index) + toString(value) + substring_0(this.x_1, index);
    return this;
  }
  td(index, value) {
    Companion_instance_6.f5(index, this.a());
    this.x_1 = substring(this.x_1, 0, index) + toString_0(value) + substring_0(this.x_1, index);
    return this;
  }
  ud(index, value) {
    Companion_instance_6.f5(index, this.a());
    var toInsert = value == null ? 'null' : value;
    this.x_1 = substring(this.x_1, 0, index) + toInsert + substring_0(this.x_1, index);
    return this;
  }
  vd(startIndex) {
    Companion_instance_6.f5(startIndex, this.a());
    return substring_0(this.x_1, startIndex);
  }
  toString() {
    return this.x_1;
  }
  wd(index, value) {
    Companion_instance_6.q5(index, this.a());
    this.x_1 = substring(this.x_1, 0, index) + toString(value) + substring_0(this.x_1, index + 1 | 0);
  }
  xd(index) {
    Companion_instance_6.q5(index, this.a());
    this.x_1 = substring(this.x_1, 0, index) + substring_0(this.x_1, index + 1 | 0);
    return this;
  }
  yd(startIndex, endIndex) {
    checkReplaceRange(this, startIndex, endIndex, this.a());
    this.x_1 = substring(this.x_1, 0, startIndex) + substring_0(this.x_1, endIndex);
    return this;
  }
  zd(value, startIndex, endIndex) {
    var stringCsq = toString_1(value);
    Companion_instance_6.ae(startIndex, endIndex, stringCsq.length);
    this.x_1 = this.x_1 + substring(stringCsq, startIndex, endIndex);
    return this;
  }
}
class Companion_5 {
  constructor() {
    Companion_instance_5 = this;
    this.be_1 = new RegExp('[\\\\^$*+?.()|[\\]{}]', 'g');
    this.ce_1 = new RegExp('[\\\\$]', 'g');
    this.de_1 = new RegExp('\\$', 'g');
  }
  ee(literal) {
    // Inline function 'kotlin.text.nativeReplace' call
    var pattern = this.be_1;
    // Inline function 'kotlin.js.asDynamic' call
    return literal.replace(pattern, '\\$&');
  }
  fe(literal) {
    // Inline function 'kotlin.text.nativeReplace' call
    var pattern = this.de_1;
    // Inline function 'kotlin.js.asDynamic' call
    return literal.replace(pattern, '$$$$');
  }
}
class sam$kotlin_Comparator$0 {
  constructor(function_0) {
    this.ge_1 = function_0;
  }
  he(a, b) {
    return this.ge_1(a, b);
  }
  compare(a, b) {
    return this.he(a, b);
  }
  k3() {
    return this.ge_1;
  }
  equals(other) {
    var tmp;
    if (!(other == null) ? isInterface(other, Comparator) : false) {
      var tmp_0;
      if (!(other == null) ? isInterface(other, FunctionAdapter) : false) {
        tmp_0 = equals(this.k3(), other.k3());
      } else {
        tmp_0 = false;
      }
      tmp = tmp_0;
    } else {
      tmp = false;
    }
    return tmp;
  }
  hashCode() {
    return hashCode(this.k3());
  }
}
class ExceptionTraceBuilder {
  constructor() {
    this.ie_1 = StringBuilder.y();
    var tmp = this;
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    tmp.je_1 = [];
    this.ke_1 = '';
    this.le_1 = 0;
  }
  me(exception) {
    dumpFullTrace(this, exception, '', '');
    return this.ie_1.toString();
  }
}
class Companion_6 {
  constructor() {
    this.j4_1 = 2147483639;
  }
  q5(index, size) {
    if (index < 0 || index >= size) {
      throw IndexOutOfBoundsException.rb('index: ' + index + ', size: ' + size);
    }
  }
  f5(index, size) {
    if (index < 0 || index > size) {
      throw IndexOutOfBoundsException.rb('index: ' + index + ', size: ' + size);
    }
  }
  k4(fromIndex, toIndex, size) {
    if (fromIndex < 0 || toIndex > size) {
      throw IndexOutOfBoundsException.rb('fromIndex: ' + fromIndex + ', toIndex: ' + toIndex + ', size: ' + size);
    }
    if (fromIndex > toIndex) {
      throw IllegalArgumentException.w('fromIndex: ' + fromIndex + ' > toIndex: ' + toIndex);
    }
  }
  ae(startIndex, endIndex, size) {
    if (startIndex < 0 || endIndex > size) {
      throw IndexOutOfBoundsException.rb('startIndex: ' + startIndex + ', endIndex: ' + endIndex + ', size: ' + size);
    }
    if (startIndex > endIndex) {
      throw IllegalArgumentException.w('startIndex: ' + startIndex + ' > endIndex: ' + endIndex);
    }
  }
  p9(oldCapacity, minCapacity) {
    var newCapacity = oldCapacity + (oldCapacity >> 1) | 0;
    if ((newCapacity - minCapacity | 0) < 0)
      newCapacity = minCapacity;
    if ((newCapacity - 2147483639 | 0) > 0)
      newCapacity = minCapacity > 2147483639 ? 2147483647 : 2147483639;
    return newCapacity;
  }
  x5(c) {
    var hashCode_0 = 1;
    var _iterator__ex2g4s = c.h1();
    while (_iterator__ex2g4s.i1()) {
      var e = _iterator__ex2g4s.j1();
      var tmp = imul_0(31, hashCode_0);
      var tmp1_elvis_lhs = e == null ? null : hashCode(e);
      hashCode_0 = tmp + (tmp1_elvis_lhs == null ? 0 : tmp1_elvis_lhs) | 0;
    }
    return hashCode_0;
  }
  w5(c, other) {
    if (!(c.k1() === other.k1()))
      return false;
    var otherIterator = other.h1();
    var _iterator__ex2g4s = c.h1();
    while (_iterator__ex2g4s.i1()) {
      var elem = _iterator__ex2g4s.j1();
      var elemOther = otherIterator.j1();
      if (!equals(elem, elemOther)) {
        return false;
      }
    }
    return true;
  }
}
class Companion_7 {}
class Companion_8 {
  t6(c) {
    var hashCode_0 = 0;
    var _iterator__ex2g4s = c.h1();
    while (_iterator__ex2g4s.i1()) {
      var element = _iterator__ex2g4s.j1();
      var tmp = hashCode_0;
      var tmp1_elvis_lhs = element == null ? null : hashCode(element);
      hashCode_0 = tmp + (tmp1_elvis_lhs == null ? 0 : tmp1_elvis_lhs) | 0;
    }
    return hashCode_0;
  }
  s6(c, other) {
    if (!(c.k1() === other.k1()))
      return false;
    return c.r2(other);
  }
}
class EmptyList {
  constructor() {
    this.ne_1 = -7390468764508069838n;
  }
  equals(other) {
    var tmp;
    if (!(other == null) ? isInterface(other, KtList) : false) {
      tmp = other.p1();
    } else {
      tmp = false;
    }
    return tmp;
  }
  hashCode() {
    return 1;
  }
  toString() {
    return '[]';
  }
  k1() {
    return 0;
  }
  p1() {
    return true;
  }
  oe(element) {
    return false;
  }
  q2(element) {
    if (!false)
      return false;
    var tmp;
    if (false) {
      tmp = element;
    } else {
      tmp = THROW_CCE();
    }
    return this.oe(tmp);
  }
  pe(elements) {
    return elements.p1();
  }
  r2(elements) {
    return this.pe(elements);
  }
  l1(index) {
    throw IndexOutOfBoundsException.rb("Empty list doesn't contain element at index " + index + '.');
  }
  qe(element) {
    return -1;
  }
  s2(element) {
    if (!false)
      return -1;
    var tmp;
    if (false) {
      tmp = element;
    } else {
      tmp = THROW_CCE();
    }
    return this.qe(tmp);
  }
  re(element) {
    return -1;
  }
  t2(element) {
    if (!false)
      return -1;
    var tmp;
    if (false) {
      tmp = element;
    } else {
      tmp = THROW_CCE();
    }
    return this.re(tmp);
  }
  h1() {
    return EmptyIterator_instance;
  }
  u2() {
    return EmptyIterator_instance;
  }
  v2(index) {
    if (!(index === 0))
      throw IndexOutOfBoundsException.rb('Index: ' + index);
    return EmptyIterator_instance;
  }
  w2(fromIndex, toIndex) {
    if (fromIndex === 0 && toIndex === 0)
      return this;
    throw IndexOutOfBoundsException.rb('fromIndex: ' + fromIndex + ', toIndex: ' + toIndex);
  }
}
class EmptyIterator {
  i1() {
    return false;
  }
  g5() {
    return false;
  }
  h5() {
    return 0;
  }
  j1() {
    throw NoSuchElementException.y4();
  }
  i5() {
    throw NoSuchElementException.y4();
  }
}
class ArrayAsCollection {
  constructor(values, isVarargs) {
    this.se_1 = values;
    this.te_1 = isVarargs;
  }
  k1() {
    return this.se_1.length;
  }
  p1() {
    // Inline function 'kotlin.collections.isEmpty' call
    return this.se_1.length === 0;
  }
  ue(element) {
    return contains_0(this.se_1, element);
  }
  q2(element) {
    if (!(element == null ? true : !(element == null)))
      return false;
    return this.ue((element == null ? true : !(element == null)) ? element : THROW_CCE());
  }
  h1() {
    return arrayIterator(this.se_1);
  }
}
class IntIterator {
  j1() {
    return this.ve();
  }
}
class EmptySet {
  constructor() {
    this.we_1 = 3406603774387020532n;
  }
  equals(other) {
    var tmp;
    if (!(other == null) ? isInterface(other, KtSet) : false) {
      tmp = other.p1();
    } else {
      tmp = false;
    }
    return tmp;
  }
  hashCode() {
    return 0;
  }
  toString() {
    return '[]';
  }
  k1() {
    return 0;
  }
  p1() {
    return true;
  }
  oe(element) {
    return false;
  }
  q2(element) {
    if (!false)
      return false;
    var tmp;
    if (false) {
      tmp = element;
    } else {
      tmp = THROW_CCE();
    }
    return this.oe(tmp);
  }
  pe(elements) {
    return elements.p1();
  }
  r2(elements) {
    return this.pe(elements);
  }
  h1() {
    return EmptyIterator_instance;
  }
}
class NaturalOrderComparator {
  xe(a, b) {
    return compareTo(a, b);
  }
  compare(a, b) {
    var tmp = (!(a == null) ? isComparable(a) : false) ? a : THROW_CCE();
    return this.xe(tmp, (!(b == null) ? isComparable(b) : false) ? b : THROW_CCE());
  }
}
class Delegates {}
class ObservableProperty {
  constructor(initialValue, $box) {
    boxApply(this, $box);
    this.ye_1 = initialValue;
  }
  ze(property, oldValue, newValue) {
    return true;
  }
  af(property, oldValue, newValue) {
  }
  bf(thisRef, property) {
    return this.ye_1;
  }
  cf(thisRef, property) {
    return this.bf((thisRef == null ? true : !(thisRef == null)) ? thisRef : THROW_CCE(), property);
  }
  df(thisRef, property, value) {
    var oldValue = this.ye_1;
    if (!this.ze(property, oldValue, value)) {
      return Unit_instance;
    }
    this.ye_1 = value;
    this.af(property, oldValue, value);
  }
  ef(thisRef, property, value) {
    var tmp = (thisRef == null ? true : !(thisRef == null)) ? thisRef : THROW_CCE();
    return this.df(tmp, property, (value == null ? true : !(value == null)) ? value : THROW_CCE());
  }
  toString() {
    return 'ObservableProperty(value=' + toString_0(this.ye_1) + ')';
  }
}
class Random {
  static hf() {
    Default_getInstance();
    return createThis(this);
  }
  ve() {
    return this.if(32);
  }
  kf(array, fromIndex, toIndex) {
    // Inline function 'kotlin.require' call
    if (!((0 <= fromIndex ? fromIndex <= array.length : false) && (0 <= toIndex ? toIndex <= array.length : false))) {
      var message = 'fromIndex (' + fromIndex + ') or toIndex (' + toIndex + ') are out of range: 0..' + array.length + '.';
      throw IllegalArgumentException.w(toString_1(message));
    }
    // Inline function 'kotlin.require' call
    if (!(fromIndex <= toIndex)) {
      var message_0 = 'fromIndex (' + fromIndex + ') must be not greater than toIndex (' + toIndex + ').';
      throw IllegalArgumentException.w(toString_1(message_0));
    }
    var steps = (toIndex - fromIndex | 0) / 4 | 0;
    var position = fromIndex;
    // Inline function 'kotlin.repeat' call
    var inductionVariable = 0;
    if (inductionVariable < steps)
      do {
        var index = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        var v = this.ve();
        array[position] = toByte(v);
        array[position + 1 | 0] = toByte(v >>> 8 | 0);
        array[position + 2 | 0] = toByte(v >>> 16 | 0);
        array[position + 3 | 0] = toByte(v >>> 24 | 0);
        position = position + 4 | 0;
      }
       while (inductionVariable < steps);
    var remainder = toIndex - position | 0;
    var vr = this.if(imul_0(remainder, 8));
    var inductionVariable_0 = 0;
    if (inductionVariable_0 < remainder)
      do {
        var i = inductionVariable_0;
        inductionVariable_0 = inductionVariable_0 + 1 | 0;
        array[position + i | 0] = toByte(vr >>> imul_0(i, 8) | 0);
      }
       while (inductionVariable_0 < remainder);
    return array;
  }
  jf(array) {
    return this.kf(array, 0, array.length);
  }
}
class Default extends Random {
  static gf() {
    Default_instance = null;
    var $this = this.hf();
    Default_instance = $this;
    $this.ff_1 = defaultPlatformRandom();
    return $this;
  }
  if(bitCount) {
    return this.ff_1.if(bitCount);
  }
  ve() {
    return this.ff_1.ve();
  }
  jf(array) {
    return this.ff_1.jf(array);
  }
  kf(array, fromIndex, toIndex) {
    return this.ff_1.kf(array, fromIndex, toIndex);
  }
}
class Companion_9 {
  constructor() {
    this.sf_1 = 0n;
  }
}
class XorWowRandom extends Random {
  static tf(x, y, z, w, v, addend) {
    var $this = this.hf();
    $this.lf_1 = x;
    $this.mf_1 = y;
    $this.nf_1 = z;
    $this.of_1 = w;
    $this.pf_1 = v;
    $this.qf_1 = addend;
    checkInvariants($this);
    // Inline function 'kotlin.repeat' call
    var inductionVariable = 0;
    if (inductionVariable < 64)
      do {
        var index = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        $this.ve();
      }
       while (inductionVariable < 64);
    return $this;
  }
  static rf(seed1, seed2) {
    return this.tf(seed1, seed2, 0, 0, ~seed1, seed1 << 10 ^ (seed2 >>> 4 | 0));
  }
  ve() {
    var t = this.lf_1;
    t = t ^ (t >>> 2 | 0);
    this.lf_1 = this.mf_1;
    this.mf_1 = this.nf_1;
    this.nf_1 = this.of_1;
    var v0 = this.pf_1;
    this.of_1 = v0;
    t = t ^ t << 1 ^ v0 ^ v0 << 4;
    this.pf_1 = t;
    this.qf_1 = this.qf_1 + 362437 | 0;
    return t + this.qf_1 | 0;
  }
  if(bitCount) {
    return takeUpperBits(this.ve(), bitCount);
  }
}
class Companion_10 {
  constructor() {
    Companion_instance_10 = this;
    this.s1_1 = new IntRange(1, 0);
  }
}
class IntProgression {
  constructor(start, endInclusive, step) {
    if (step === 0)
      throw IllegalArgumentException.w('Step must be non-zero.');
    if (step === -2147483648)
      throw IllegalArgumentException.w('Step must be greater than Int.MIN_VALUE to avoid overflow on negation.');
    this.yf_1 = start;
    this.zf_1 = getProgressionLastElement(start, endInclusive, step);
    this.ag_1 = step;
  }
  h1() {
    return new IntProgressionIterator(this.yf_1, this.zf_1, this.ag_1);
  }
  p1() {
    return this.ag_1 > 0 ? this.yf_1 > this.zf_1 : this.yf_1 < this.zf_1;
  }
  equals(other) {
    var tmp;
    if (other instanceof IntProgression) {
      tmp = this.p1() && other.p1() || (this.yf_1 === other.yf_1 && this.zf_1 === other.zf_1 && this.ag_1 === other.ag_1);
    } else {
      tmp = false;
    }
    return tmp;
  }
  hashCode() {
    return this.p1() ? -1 : imul_0(31, imul_0(31, this.yf_1) + this.zf_1 | 0) + this.ag_1 | 0;
  }
  toString() {
    return this.ag_1 > 0 ? '' + this.yf_1 + '..' + this.zf_1 + ' step ' + this.ag_1 : '' + this.yf_1 + ' downTo ' + this.zf_1 + ' step ' + (-this.ag_1 | 0);
  }
}
class ClosedRange {}
function contains(value) {
  return compareTo(value, this.xf()) >= 0 && compareTo(value, this.bg()) <= 0;
}
function isEmpty() {
  return compareTo(this.xf(), this.bg()) > 0;
}
class IntRange extends IntProgression {
  constructor(start, endInclusive) {
    Companion_getInstance_10();
    super(start, endInclusive, 1);
  }
  xf() {
    return this.yf_1;
  }
  bg() {
    return this.zf_1;
  }
  cg(value) {
    return this.yf_1 <= value && value <= this.zf_1;
  }
  u1(value) {
    return this.cg(typeof value === 'number' ? value : THROW_CCE());
  }
  p1() {
    return this.yf_1 > this.zf_1;
  }
  equals(other) {
    var tmp;
    if (other instanceof IntRange) {
      tmp = this.p1() && other.p1() || (this.yf_1 === other.yf_1 && this.zf_1 === other.zf_1);
    } else {
      tmp = false;
    }
    return tmp;
  }
  hashCode() {
    return this.p1() ? -1 : imul_0(31, this.yf_1) + this.zf_1 | 0;
  }
  toString() {
    return '' + this.yf_1 + '..' + this.zf_1;
  }
}
class IntProgressionIterator extends IntIterator {
  constructor(first, last, step) {
    super();
    this.dg_1 = step;
    this.eg_1 = last;
    this.fg_1 = this.dg_1 > 0 ? first <= last : first >= last;
    this.gg_1 = this.fg_1 ? first : this.eg_1;
  }
  i1() {
    return this.fg_1;
  }
  ve() {
    var value = this.gg_1;
    if (value === this.eg_1) {
      if (!this.fg_1)
        throw NoSuchElementException.y4();
      this.fg_1 = false;
    } else {
      this.gg_1 = this.gg_1 + this.dg_1 | 0;
    }
    return value;
  }
}
class Companion_11 {
  t1(rangeStart, rangeEnd, step) {
    return new IntProgression(rangeStart, rangeEnd, step);
  }
}
class Companion_12 {
  constructor() {
    Companion_instance_12 = this;
    this.vg_1 = new BytesHexFormat(2147483647, 2147483647, '  ', '', '', '');
  }
}
class Builder {
  constructor() {
    this.wg_1 = Companion_getInstance_13().hh_1.ah_1;
    this.xg_1 = Companion_getInstance_13().hh_1.bh_1;
    this.yg_1 = Companion_getInstance_13().hh_1.ch_1;
    this.zg_1 = Companion_getInstance_13().hh_1.dh_1;
  }
  ih(value) {
    if (contains_3(value, _Char___init__impl__6a9atx(10)) || contains_3(value, _Char___init__impl__6a9atx(13)))
      throw IllegalArgumentException.w('LF and CR characters are prohibited in prefix, but was ' + value);
    this.wg_1 = value;
  }
  s3() {
    return new NumberHexFormat(this.wg_1, this.xg_1, this.yg_1, this.zg_1);
  }
}
class Companion_13 {
  constructor() {
    Companion_instance_13 = this;
    this.hh_1 = new NumberHexFormat('', '', false, 1);
  }
}
class BytesHexFormat {
  constructor(bytesPerLine, bytesPerGroup, groupSeparator, byteSeparator, bytePrefix, byteSuffix) {
    Companion_getInstance_12();
    this.mg_1 = bytesPerLine;
    this.ng_1 = bytesPerGroup;
    this.og_1 = groupSeparator;
    this.pg_1 = byteSeparator;
    this.qg_1 = bytePrefix;
    this.rg_1 = byteSuffix;
    this.sg_1 = (this.mg_1 === 2147483647 && this.ng_1 === 2147483647);
    var tmp = this;
    var tmp_0;
    var tmp_1;
    // Inline function 'kotlin.text.isEmpty' call
    var this_0 = this.qg_1;
    if (charSequenceLength(this_0) === 0) {
      // Inline function 'kotlin.text.isEmpty' call
      var this_1 = this.rg_1;
      tmp_1 = charSequenceLength(this_1) === 0;
    } else {
      tmp_1 = false;
    }
    if (tmp_1) {
      tmp_0 = this.pg_1.length <= 1;
    } else {
      tmp_0 = false;
    }
    tmp.tg_1 = tmp_0;
    this.ug_1 = isCaseSensitive(this.og_1) || isCaseSensitive(this.pg_1) || isCaseSensitive(this.qg_1) || isCaseSensitive(this.rg_1);
  }
  toString() {
    // Inline function 'kotlin.text.buildString' call
    // Inline function 'kotlin.apply' call
    var this_0 = StringBuilder.y();
    // Inline function 'kotlin.text.appendLine' call
    this_0.qa('BytesHexFormat(').ra(_Char___init__impl__6a9atx(10));
    // Inline function 'kotlin.text.appendLine' call
    this.jh(this_0, '    ').ra(_Char___init__impl__6a9atx(10));
    this_0.qa(')');
    return this_0.toString();
  }
  jh(sb, indent) {
    // Inline function 'kotlin.text.appendLine' call
    // Inline function 'kotlin.text.appendLine' call
    sb.qa(indent).qa('bytesPerLine = ').pd(this.mg_1).qa(',').ra(_Char___init__impl__6a9atx(10));
    // Inline function 'kotlin.text.appendLine' call
    // Inline function 'kotlin.text.appendLine' call
    sb.qa(indent).qa('bytesPerGroup = ').pd(this.ng_1).qa(',').ra(_Char___init__impl__6a9atx(10));
    // Inline function 'kotlin.text.appendLine' call
    // Inline function 'kotlin.text.appendLine' call
    sb.qa(indent).qa('groupSeparator = "').qa(this.og_1).qa('",').ra(_Char___init__impl__6a9atx(10));
    // Inline function 'kotlin.text.appendLine' call
    // Inline function 'kotlin.text.appendLine' call
    sb.qa(indent).qa('byteSeparator = "').qa(this.pg_1).qa('",').ra(_Char___init__impl__6a9atx(10));
    // Inline function 'kotlin.text.appendLine' call
    // Inline function 'kotlin.text.appendLine' call
    sb.qa(indent).qa('bytePrefix = "').qa(this.qg_1).qa('",').ra(_Char___init__impl__6a9atx(10));
    sb.qa(indent).qa('byteSuffix = "').qa(this.rg_1).qa('"');
    return sb;
  }
}
class NumberHexFormat {
  constructor(prefix, suffix, removeLeadingZeros, minLength) {
    Companion_getInstance_13();
    this.ah_1 = prefix;
    this.bh_1 = suffix;
    this.ch_1 = removeLeadingZeros;
    this.dh_1 = minLength;
    var tmp = this;
    var tmp_0;
    // Inline function 'kotlin.text.isEmpty' call
    var this_0 = this.ah_1;
    if (charSequenceLength(this_0) === 0) {
      // Inline function 'kotlin.text.isEmpty' call
      var this_1 = this.bh_1;
      tmp_0 = charSequenceLength(this_1) === 0;
    } else {
      tmp_0 = false;
    }
    tmp.eh_1 = tmp_0;
    this.fh_1 = (this.eh_1 && this.dh_1 === 1);
    this.gh_1 = isCaseSensitive(this.ah_1) || isCaseSensitive(this.bh_1);
  }
  toString() {
    // Inline function 'kotlin.text.buildString' call
    // Inline function 'kotlin.apply' call
    var this_0 = StringBuilder.y();
    // Inline function 'kotlin.text.appendLine' call
    this_0.qa('NumberHexFormat(').ra(_Char___init__impl__6a9atx(10));
    // Inline function 'kotlin.text.appendLine' call
    this.jh(this_0, '    ').ra(_Char___init__impl__6a9atx(10));
    this_0.qa(')');
    return this_0.toString();
  }
  jh(sb, indent) {
    // Inline function 'kotlin.text.appendLine' call
    // Inline function 'kotlin.text.appendLine' call
    sb.qa(indent).qa('prefix = "').qa(this.ah_1).qa('",').ra(_Char___init__impl__6a9atx(10));
    // Inline function 'kotlin.text.appendLine' call
    // Inline function 'kotlin.text.appendLine' call
    sb.qa(indent).qa('suffix = "').qa(this.bh_1).qa('",').ra(_Char___init__impl__6a9atx(10));
    var tmp0 = sb.qa(indent).qa('removeLeadingZeros = ').od(this.ch_1);
    // Inline function 'kotlin.text.appendLine' call
    var value = _Char___init__impl__6a9atx(44);
    // Inline function 'kotlin.text.appendLine' call
    tmp0.ra(value).ra(_Char___init__impl__6a9atx(10));
    sb.qa(indent).qa('minLength = ').pd(this.dh_1);
    return sb;
  }
}
class Builder_0 {
  constructor() {
    this.kh_1 = Companion_getInstance_14().hg_1.jg_1;
    this.lh_1 = null;
    this.mh_1 = null;
  }
  nh() {
    if (this.mh_1 == null) {
      this.mh_1 = new Builder();
    }
    return ensureNotNull(this.mh_1);
  }
  s3() {
    var tmp = this.kh_1;
    var tmp0_safe_receiver = this.lh_1;
    var tmp1_elvis_lhs = tmp0_safe_receiver == null ? null : tmp0_safe_receiver.s3();
    var tmp_0 = tmp1_elvis_lhs == null ? Companion_getInstance_12().vg_1 : tmp1_elvis_lhs;
    var tmp2_safe_receiver = this.mh_1;
    var tmp3_elvis_lhs = tmp2_safe_receiver == null ? null : tmp2_safe_receiver.s3();
    return new HexFormat(tmp, tmp_0, tmp3_elvis_lhs == null ? Companion_getInstance_13().hh_1 : tmp3_elvis_lhs);
  }
}
class Companion_14 {
  constructor() {
    Companion_instance_14 = this;
    this.hg_1 = new HexFormat(false, Companion_getInstance_12().vg_1, Companion_getInstance_13().hh_1);
    this.ig_1 = new HexFormat(true, Companion_getInstance_12().vg_1, Companion_getInstance_13().hh_1);
  }
}
class HexFormat {
  constructor(upperCase, bytes, number) {
    Companion_getInstance_14();
    this.jg_1 = upperCase;
    this.kg_1 = bytes;
    this.lg_1 = number;
  }
  toString() {
    // Inline function 'kotlin.text.buildString' call
    // Inline function 'kotlin.apply' call
    var this_0 = StringBuilder.y();
    // Inline function 'kotlin.text.appendLine' call
    this_0.qa('HexFormat(').ra(_Char___init__impl__6a9atx(10));
    // Inline function 'kotlin.text.appendLine' call
    // Inline function 'kotlin.text.appendLine' call
    this_0.qa('    upperCase = ').od(this.jg_1).qa(',').ra(_Char___init__impl__6a9atx(10));
    // Inline function 'kotlin.text.appendLine' call
    this_0.qa('    bytes = BytesHexFormat(').ra(_Char___init__impl__6a9atx(10));
    // Inline function 'kotlin.text.appendLine' call
    this.kg_1.jh(this_0, '        ').ra(_Char___init__impl__6a9atx(10));
    // Inline function 'kotlin.text.appendLine' call
    this_0.qa('    ),').ra(_Char___init__impl__6a9atx(10));
    // Inline function 'kotlin.text.appendLine' call
    this_0.qa('    number = NumberHexFormat(').ra(_Char___init__impl__6a9atx(10));
    // Inline function 'kotlin.text.appendLine' call
    this.lg_1.jh(this_0, '        ').ra(_Char___init__impl__6a9atx(10));
    // Inline function 'kotlin.text.appendLine' call
    this_0.qa('    )').ra(_Char___init__impl__6a9atx(10));
    this_0.qa(')');
    return this_0.toString();
  }
}
class State {
  constructor() {
    this.uh_1 = 0;
    this.vh_1 = 1;
    this.wh_1 = 2;
  }
}
class LinesIterator {
  constructor(string) {
    this.xh_1 = string;
    this.yh_1 = 0;
    this.zh_1 = 0;
    this.ai_1 = 0;
    this.bi_1 = 0;
  }
  i1() {
    if (!(this.yh_1 === 0)) {
      return this.yh_1 === 1;
    }
    if (this.bi_1 < 0) {
      this.yh_1 = 2;
      return false;
    }
    var _delimiterLength = -1;
    var _delimiterStartIndex = charSequenceLength(this.xh_1);
    var inductionVariable = this.zh_1;
    var last = charSequenceLength(this.xh_1);
    if (inductionVariable < last)
      $l$loop: do {
        var idx = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        var c = charSequenceGet(this.xh_1, idx);
        if (c === _Char___init__impl__6a9atx(10) || c === _Char___init__impl__6a9atx(13)) {
          _delimiterLength = c === _Char___init__impl__6a9atx(13) && (idx + 1 | 0) < charSequenceLength(this.xh_1) && charSequenceGet(this.xh_1, idx + 1 | 0) === _Char___init__impl__6a9atx(10) ? 2 : 1;
          _delimiterStartIndex = idx;
          break $l$loop;
        }
      }
       while (inductionVariable < last);
    this.yh_1 = 1;
    this.bi_1 = _delimiterLength;
    this.ai_1 = _delimiterStartIndex;
    return true;
  }
  j1() {
    if (!this.i1()) {
      throw NoSuchElementException.y4();
    }
    this.yh_1 = 0;
    var lastIndex = this.ai_1;
    var firstIndex = this.zh_1;
    this.zh_1 = this.ai_1 + this.bi_1 | 0;
    // Inline function 'kotlin.text.substring' call
    var this_0 = this.xh_1;
    return toString_1(charSequenceSubSequence(this_0, firstIndex, lastIndex));
  }
}
class DelimitedRangesSequence$iterator$1 {
  constructor(this$0) {
    this.hi_1 = this$0;
    this.ci_1 = -1;
    this.di_1 = coerceIn(this$0.ji_1, 0, charSequenceLength(this$0.ii_1));
    this.ei_1 = this.di_1;
    this.fi_1 = null;
    this.gi_1 = 0;
  }
  j1() {
    if (this.ci_1 === -1) {
      calcNext(this);
    }
    if (this.ci_1 === 0)
      throw NoSuchElementException.y4();
    var tmp = this.fi_1;
    var result = tmp instanceof IntRange ? tmp : THROW_CCE();
    this.fi_1 = null;
    this.ci_1 = -1;
    return result;
  }
  i1() {
    if (this.ci_1 === -1) {
      calcNext(this);
    }
    return this.ci_1 === 1;
  }
}
class DelimitedRangesSequence {
  constructor(input, startIndex, limit, getNextMatch) {
    this.ii_1 = input;
    this.ji_1 = startIndex;
    this.ki_1 = limit;
    this.li_1 = getNextMatch;
  }
  h1() {
    return new DelimitedRangesSequence$iterator$1(this);
  }
}
class lineSequence$$inlined$Sequence$1 {
  constructor($this_lineSequence) {
    this.oi_1 = $this_lineSequence;
  }
  h1() {
    return new LinesIterator(this.oi_1);
  }
}
class UnsafeLazyImpl {
  constructor(initializer) {
    this.pi_1 = initializer;
    this.qi_1 = UNINITIALIZED_VALUE_instance;
  }
  z2() {
    if (this.qi_1 === UNINITIALIZED_VALUE_instance) {
      this.qi_1 = ensureNotNull(this.pi_1)();
      this.pi_1 = null;
    }
    var tmp = this.qi_1;
    return (tmp == null ? true : !(tmp == null)) ? tmp : THROW_CCE();
  }
  ri() {
    return !(this.qi_1 === UNINITIALIZED_VALUE_instance);
  }
  toString() {
    return this.ri() ? toString_0(this.z2()) : 'Lazy value not initialized yet.';
  }
}
class UNINITIALIZED_VALUE {}
class NotImplementedError extends Error_0 {
  static ui(message) {
    message = message === VOID ? 'An operation is not implemented.' : message;
    var $this = this.i(message);
    captureStack($this, $this.ti_1);
    return $this;
  }
}
class Pair {
  constructor(first, second) {
    this.first = first;
    this.second = second;
  }
  vi() {
    return this.first;
  }
  wi() {
    return this.second;
  }
  toString() {
    return '(' + toString_0(this.first) + ', ' + toString_0(this.second) + ')';
  }
  mi() {
    return this.first;
  }
  ni() {
    return this.second;
  }
  xi(first, second) {
    return new Pair(first, second);
  }
  copy(first, second, $super) {
    first = first === VOID ? this.first : first;
    second = second === VOID ? this.second : second;
    return $super === VOID ? this.xi(first, second) : $super.xi.call(this, first, second);
  }
  hashCode() {
    var result = this.first == null ? 0 : hashCode(this.first);
    result = imul_0(result, 31) + (this.second == null ? 0 : hashCode(this.second)) | 0;
    return result;
  }
  equals(other) {
    if (this === other)
      return true;
    if (!(other instanceof Pair))
      return false;
    if (!equals(this.first, other.first))
      return false;
    if (!equals(this.second, other.second))
      return false;
    return true;
  }
}
class Companion_15 {
  constructor() {
    Companion_instance_15 = this;
    this.yi_1 = _ULong___init__impl__c78o9k(0n);
    this.zi_1 = _ULong___init__impl__c78o9k(-1n);
    this.aj_1 = 8;
    this.bj_1 = 64;
  }
}
class ULong {
  constructor(data) {
    Companion_getInstance_15();
    this.cj_1 = data;
  }
  dj(other) {
    return ULong__compareTo_impl_38i7tu(this.cj_1, other);
  }
  d(other) {
    return ULong__compareTo_impl_38i7tu_0(this, other);
  }
  toString() {
    return ULong__toString_impl_f9au7k(this.cj_1);
  }
  hashCode() {
    return ULong__hashCode_impl_6hv2lb(this.cj_1);
  }
  equals(other) {
    return ULong__equals_impl_o0gnyb(this.cj_1, other);
  }
}
class EnumMap {
  constructor(enums) {
    this.ej_1 = enums;
    this.fj_1 = booleanArray(this.ej_1.length);
    this.gj_1 = ArrayList.n1(this.ej_1.length);
    var inductionVariable = 0;
    var last = this.ej_1.length;
    if (inductionVariable < last)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        this.gj_1.p5(i, null);
      }
       while (inductionVariable < last);
  }
  n6() {
    return this.gj_1;
  }
  d3() {
    var reason = 'Not yet implemented';
    throw NotImplementedError.ui('An operation is not implemented: ' + reason);
  }
  m6() {
    return toMutableSet(this.m6());
  }
  k1() {
    return this.gj_1.k1();
  }
  hj(key) {
    return true;
  }
  a3(key) {
    if (!(key instanceof Enum))
      return false;
    return this.hj(key instanceof Enum ? key : THROW_CCE());
  }
  ij(key) {
    return this.gj_1.l1(key.g3_1);
  }
  c3(key) {
    if (!(key instanceof Enum))
      return null;
    return this.ij(key instanceof Enum ? key : THROW_CCE());
  }
  u4() {
    // Inline function 'kotlin.TODO' call
    var reason = 'Not yet implemented';
    throw NotImplementedError.ui('An operation is not implemented: ' + reason);
  }
  jj(key, value) {
    this.gj_1.p4(key.g3_1, value);
    return this.gj_1.l1(key.g3_1);
  }
  o6(key, value) {
    var tmp = key instanceof Enum ? key : THROW_CCE();
    return this.jj(tmp, (value == null ? true : !(value == null)) ? value : THROW_CCE());
  }
}
class ConcatenateIterator {
  constructor($outer) {
    this.lj_1 = $outer;
    this.kj_1 = this.mj();
  }
  i1() {
    return this.kj_1.i1();
  }
  j1() {
    var next = ensureNotNull(this.kj_1.j1());
    this.nj();
    return next;
  }
  mj() {
    return ensureNotNull(this.lj_1.oj_1).j1().h1();
  }
  nj() {
    $l$loop: while (!this.kj_1.i1() && ensureNotNull(this.lj_1.oj_1).i1()) {
      this.kj_1 = this.mj();
    }
    return this;
  }
}
class EmptyIterator_0 {
  i1() {
    return false;
  }
  j1() {
    throw IllegalStateException.gb();
  }
}
class ConcatenateIterable {
  constructor(iterables) {
    this.pj_1 = iterables;
    this.oj_1 = iterables.h1();
  }
  h1() {
    return !ensureNotNull(this.oj_1).i1() ? new EmptyIterator_0() : (new ConcatenateIterator(this)).nj();
  }
}
class Iterables {
  qj(original, condition) {
    // Inline function 'kotlin.collections.filter' call
    // Inline function 'kotlin.collections.filterTo' call
    var destination = ArrayList.q1();
    var _iterator__ex2g4s = original.h1();
    while (_iterator__ex2g4s.i1()) {
      var element = _iterator__ex2g4s.j1();
      if (condition.rj(element)) {
        destination.c1(element);
      }
    }
    return destination;
  }
  sj(iterables) {
    return this.tj(toList(iterables));
  }
  tj(iterables) {
    return new ConcatenateIterable(iterables);
  }
}
class SortedSet extends AbstractMutableSet {
  static wj(comparator, collection) {
    collection = collection === VOID ? emptyList() : collection;
    var $this = this.r6();
    $this.uj_1 = comparator;
    var tmp = $this;
    // Inline function 'kotlin.apply' call
    var this_0 = ArrayList.q1();
    this_0.o1(toSet_0(collection));
    sortWith_0(this_0, $this.uj_1);
    tmp.vj_1 = this_0;
    return $this;
  }
  k1() {
    return this.vj_1.k1();
  }
  c1(element) {
    var index = binarySearch(this.vj_1, element, this.uj_1);
    var tmp;
    if (index >= 0) {
      tmp = false;
    } else {
      this.vj_1.p5(abs_0(index) - 1 | 0, element);
      tmp = true;
    }
    return tmp;
  }
  h1() {
    return this.vj_1.h1();
  }
}
class UniversalComparator {
  xj(a, b) {
    var tmp;
    if (!(a == null) && !(b == null)) {
      var tmp_0;
      if (getKClassFromExpression(b).equals(getKClassFromExpression(a))) {
        var tmp_1;
        var tmp_2;
        if (typeof a === 'string') {
          tmp_2 = typeof b === 'string';
        } else {
          tmp_2 = false;
        }
        if (tmp_2) {
          tmp_1 = compareTo(a, b);
        } else {
          var tmp_3;
          if (isComparable(a)) {
            tmp_3 = isComparable(b);
          } else {
            tmp_3 = false;
          }
          if (tmp_3) {
            tmp_1 = compareTo(isComparable(a) ? a : THROW_CCE(), b);
          } else {
            tmp_1 = compareTo(toString_1(a), toString_1(b));
          }
        }
        tmp_0 = tmp_1;
      } else {
        var tmp_4;
        if (isNumber(b)) {
          tmp_4 = isNumber(a);
        } else {
          tmp_4 = false;
        }
        if (tmp_4) {
          var number1 = a;
          var number2 = b;
          if (numberToDouble(number1) < numberToDouble(number2))
            return -1;
          tmp_0 = numberToDouble(number1) > numberToDouble(number2) ? 1 : 0;
        } else {
          tmp_0 = compareTo(toString_1(a), toString_1(b));
        }
      }
      tmp = tmp_0;
    } else {
      var tmp_5;
      if (!(a == null)) {
        tmp_5 = 1;
      } else if (!(b == null)) {
        tmp_5 = -1;
      } else {
        tmp_5 = 0;
      }
      tmp = tmp_5;
    }
    return tmp;
  }
  compare(a, b) {
    var tmp = (a == null ? true : !(a == null)) ? a : THROW_CCE();
    return this.xj(tmp, (b == null ? true : !(b == null)) ? b : THROW_CCE());
  }
}
class WeakReference {
  constructor(referent) {
    this.yj_1 = referent;
  }
  zj() {
    return this.yj_1;
  }
}
class AbstractUICommand {
  static fk(titleProperty, enabledProperty, keystrokeProperty, mnemonicProperty, iconProperty, $box) {
    enabledProperty = enabledProperty === VOID ? new SimpleProperty(true) : enabledProperty;
    keystrokeProperty = keystrokeProperty === VOID ? null : keystrokeProperty;
    mnemonicProperty = mnemonicProperty === VOID ? null : mnemonicProperty;
    iconProperty = iconProperty === VOID ? null : iconProperty;
    var $this = createThis(this, $box);
    $this.ak_1 = titleProperty;
    $this.bk_1 = enabledProperty;
    $this.ck_1 = keystrokeProperty;
    $this.dk_1 = mnemonicProperty;
    $this.ek_1 = iconProperty;
    return $this;
  }
  static gk(title, $box) {
    return this.fk(new SimpleProperty(title), VOID, VOID, VOID, VOID, $box);
  }
  toString() {
    return ensureNotNull(ensureNotNull(this.ak_1).z2());
  }
}
class HtmlString {
  toString() {
    return ensureNotNull(this.hk_1);
  }
}
class WeakFilterListener {
  jk() {
    return this.ik_1.zj();
  }
}
class Companion_16 {
  constructor() {
    this.kk_1 = 6388032080849307737n;
  }
}
class AbstractFilter {
  constructor() {
    this.lk_1 = true;
    this.mk_1 = CollectionFactory_instance.nk();
  }
  ok(listener) {
    this.mk_1.c1(listener);
  }
  pk(listener) {
    if (listener instanceof WeakFilterListener) {
      var removed = this.mk_1.e3(listener);
    } else {
      var toRemove = null;
      var _iterator__ex2g4s = this.mk_1.h1();
      while (_iterator__ex2g4s.i1()) {
        var filterListener = _iterator__ex2g4s.j1();
        var comparable;
        var tmp;
        if (filterListener instanceof WeakFilterListener) {
          tmp = filterListener.jk();
        } else {
          tmp = filterListener;
        }
        comparable = tmp;
        if (equals(listener, comparable)) {
          toRemove = filterListener;
        }
      }
      if (!(toRemove == null)) {
        var removed_0 = this.mk_1.e3(toRemove);
      }
    }
  }
}
class AbstractMutableFilter extends AbstractFilter {
  constructor() {
    super();
    this.tk_1 = true;
  }
}
class SimpleFilter extends AbstractMutableFilter {
  constructor() {
    super();
    this.xk_1 = HashMap.i7();
  }
  qk(element) {
    return this.xk_1.a3(element);
  }
}
class CPFormat {}
class AbstractFormat {
  yk() {
    return null;
  }
}
class DecimalFormat {
  constructor(s, symbols) {
    symbols = symbols === VOID ? new DecimalFormatSymbols() : symbols;
    this.al_1 = symbols;
    this.bl_1 = 1.0;
    this.cl_1 = 0;
    this.dl_1 = false;
    this.el_1 = 0;
    this.fl_1 = 0;
    this.gl_1 = 0;
    this.hl_1 = 3;
    this.il_1 = 1;
    this.jl_1 = false;
  }
  kl(number) {
    var number_0 = number;
    if (isNaN_0(number_0)) {
      return this.al_1.ql_1;
    }
    var isNegative = number_0 < 0.0 || (number_0 === 0.0 && 1 / number_0 < 0.0);
    if (isNegative) {
      number_0 = -number_0;
    }
    var buf = StringBuilder.y();
    if (isInfinite(number_0)) {
      buf.qa(isNegative ? this.al_1.pl_1 : this.al_1.ol_1);
      buf.qa(this.al_1.nl_1);
      buf.qa(isNegative ? this.al_1.ll_1 : this.al_1.ml_1);
      return buf.toString();
    }
    number_0 = number_0 * this.bl_1;
    var scale = this.sl(buf, number_0);
    var preRound = ((buf.a() + scale | 0) + this.hl_1 | 0) + 3 | 0;
    if (preRound > 0 && preRound < buf.a() && buf.b(preRound) === _Char___init__impl__6a9atx(57)) {
      propagateCarry(this, buf, preRound - 1 | 0);
      scale = scale + (buf.a() - preRound | 0) | 0;
      buf.yd(preRound, preRound + buf.a() | 0);
    }
    this.tl(isNegative, buf, scale);
    return buf.toString();
  }
  sl(buf, val) {
    var startLen = buf.a();
    buf.qa(toPrecision(this, val, 20));
    var scale = 0;
    var expIdx = buf.rd('e', startLen);
    if (expIdx < 0) {
      expIdx = buf.rd('E', startLen);
    }
    if (expIdx >= 0) {
      var expDigits = expIdx + 1 | 0;
      if (expDigits < buf.a() && buf.b(expDigits) === _Char___init__impl__6a9atx(43)) {
        expDigits = expDigits + 1 | 0;
      }
      if (expDigits < buf.a()) {
        scale = toInt_0(buf.vd(expDigits));
      }
      buf.yd(expIdx, expIdx + buf.a() | 0);
    }
    var dot = buf.rd('.', startLen);
    if (dot >= 0) {
      buf.xd(dot);
      scale = scale - (buf.a() - dot | 0) | 0;
    }
    return scale;
  }
  tl(isNegative, digits, scale) {
    var decimalSeparator = this.al_1.rl_1;
    this.fl_1 = 0;
    this.el_1 = digits.a();
    this.cl_1 = this.el_1 + scale | 0;
    processLeadingZeros(this, digits);
    roundValue(this, digits);
    adjustFractionDigits(this, digits);
    addZeroAndDecimal(this, digits, decimalSeparator);
    digits.ud(0, isNegative ? this.al_1.pl_1 : this.al_1.ol_1);
    digits.qa(isNegative ? this.al_1.ll_1 : this.al_1.ml_1);
  }
}
class DecimalFormatSymbols {
  constructor() {
    this.ll_1 = '';
    this.ml_1 = '';
    this.nl_1 = 'Inf';
    this.ol_1 = '';
    this.pl_1 = '-';
    this.ql_1 = 'NaN';
    this.rl_1 = _Char___init__impl__6a9atx(46);
  }
}
class SwingFormat extends AbstractFormat {
  constructor(format, pre, post, rounding, factor) {
    super();
    this.ul_1 = pre;
    this.vl_1 = post;
    this.wl_1 = rounding;
    this.xl_1 = factor;
    this.yl_1 = format;
  }
  zl(value, htmlSupported) {
    var s;
    if (isNumber(value)) {
      var n = numberToDouble(value);
      if (!(this.wl_1 === 1.0)) {
        n = round(n / this.wl_1) * this.wl_1;
      }
      if (!(this.xl_1 === 1.0)) {
        n = n * this.xl_1;
      }
      s = this.yl_1.kl(n);
      if (!(this.ul_1 == null)) {
        s = this.ul_1 + s;
      }
      if (!(this.vl_1 == null)) {
        s = s + this.vl_1;
      }
    } else {
      s = null;
    }
    return s;
  }
  zk(value, htmlSupported) {
    return this.zl((value == null ? true : !(value == null)) ? value : THROW_CCE(), htmlSupported);
  }
}
class FormatFactoryCommon {}
function createDecimalFormat(fractionDigits) {
  return this.bm(fractionDigits, null, null, 1.0, 1.0);
}
function createDecimalFormat_0(fractionDigits, pre, post, rounding, factor) {
  var instance = new DecimalFormat('');
  instance.hl_1 = fractionDigits;
  return new SwingFormat(instance, pre, post, rounding, factor);
}
class Dimension {
  static em() {
    var $this = createThis(this);
    init_com_macrofocus_common_geom_Dimension($this);
    $this.cm_1 = 0;
    $this.dm_1 = 0;
    return $this;
  }
  static fm(width, height) {
    var $this = createThis(this);
    init_com_macrofocus_common_geom_Dimension($this);
    $this.cm_1 = width;
    $this.dm_1 = height;
    return $this;
  }
  gm() {
    return this.cm_1;
  }
  hm() {
    return this.dm_1;
  }
  toString() {
    return 'Dimension.Integer{width=' + this.gm() + ', height=' + this.hm() + toString(_Char___init__impl__6a9atx(125));
  }
}
class AbstractIndex {
  static im() {
    return createThis(this);
  }
}
class AbstractMutableInterval {
  static pm() {
    var $this = createThis(this);
    $this.om_1 = CollectionFactory_instance.nk();
    return $this;
  }
  sm(listener) {
    this.om_1.c1(listener);
  }
  addIntervalListener(listener) {
    return this.sm(listener);
  }
  tm(listener) {
    var weakListener = new WeakIntervalListener(this, listener);
    this.om_1.c1(weakListener);
  }
  addWeakIntervalListener(listener) {
    return this.tm(listener);
  }
  um(listener) {
    if (listener instanceof WeakIntervalListener) {
      var removed = this.om_1.e3(listener);
    } else {
      var toRemove = null;
      var _iterator__ex2g4s = this.om_1.h1();
      while (_iterator__ex2g4s.i1()) {
        var intervalListener = _iterator__ex2g4s.j1();
        var comparable;
        if (intervalListener instanceof WeakIntervalListener) {
          comparable = intervalListener.jk();
        } else {
          comparable = intervalListener;
        }
        if (equals(listener, comparable)) {
          toRemove = intervalListener;
        }
      }
      if (!(toRemove == null)) {
        var removed_0 = this.om_1.e3(toRemove);
      }
    }
  }
  removeIntervalListener(listener) {
    return this.um(listener);
  }
  vm() {
    this.om_1.u4();
  }
  removeIntervalListeners() {
    return this.vm();
  }
  wm(event) {
    var _iterator__ex2g4s = this.om_1.h1();
    while (_iterator__ex2g4s.i1()) {
      var listener = _iterator__ex2g4s.j1();
      listener.kn(event);
    }
  }
}
class AbstractBoundedInterval extends AbstractMutableInterval {
  static nm() {
    var $this = this.pm();
    $this.mm_1 = CollectionFactory_instance.nk();
    return $this;
  }
  qm(event) {
    var _iterator__ex2g4s = this.mm_1.h1();
    while (_iterator__ex2g4s.i1()) {
      var listener = _iterator__ex2g4s.j1();
      listener.rm(event);
    }
  }
}
class WeakIntervalListener {
  constructor($outer, listener) {
    this.jn_1 = $outer;
    this.in_1 = new WeakReference(listener);
  }
  kn(event) {
    var l = this.jk();
    if (!(l == null)) {
      l.kn(event);
    } else {
      this.jn_1.um(this);
    }
  }
  jk() {
    return this.in_1.zj();
  }
  toString() {
    var l = this.jk();
    var tmp;
    if (!(l == null)) {
      tmp = 'Weak[' + toString_1(l) + ']';
    } else {
      tmp = toString_1(getKClassFromExpression(this)) + '@' + hashCode(this);
    }
    return tmp;
  }
}
class BoundedIntervalEvent {
  constructor(oldMinimum, oldMaximum, oldMinimumExtent, oldMaximumExtent) {
    this.ln_1 = oldMinimum;
    this.mn_1 = oldMaximum;
    this.nn_1 = oldMinimumExtent;
    this.on_1 = oldMaximumExtent;
    this.pn_1 = 0.0;
    this.qn_1 = 0.0;
    this.rn_1 = 0.0;
    this.sn_1 = 0.0;
  }
  tn(newMinimum, newMaximum, newMinimumExtent, newMaximumExtent) {
    this.pn_1 = newMinimum;
    this.qn_1 = newMaximum;
    this.rn_1 = newMinimumExtent;
    this.sn_1 = newMaximumExtent;
  }
}
class ClosedInterval extends AbstractMutableInterval {
  static vn() {
    var $this = this.pm();
    delete $this.extent;
    delete $this.isInverted;
    delete $this.isDegenerate;
    return $this;
  }
  cn(value) {
    // Inline function 'kotlin.TODO' call
    var reason = 'Not yet implemented!';
    throw NotImplementedError.ui('An operation is not implemented: ' + reason);
  }
  dn() {
    return this.end - this.start;
  }
  wn(value) {
    return this.start <= value && this.end >= value;
  }
  contains(value) {
    return this.wn(value);
  }
  xn(start, end) {
    return this.wn(start) && this.wn(end);
  }
  containsStartEnd(start, end) {
    return this.xn(start, end);
  }
  yn(interval) {
    return this.wn(ensureNotNull(interval).start) && this.wn(interval.end);
  }
  containsInterval(interval) {
    return this.yn(interval);
  }
  zn(start, end) {
    return this.wn(start) || this.wn(end);
  }
  overlaps(start, end) {
    return this.zn(start, end);
  }
  ao(interval) {
    return this.wn(ensureNotNull(interval).start) || this.wn(interval.end);
  }
  overlapsInterval(interval) {
    return this.ao(interval);
  }
  fn() {
    return this.end < this.start;
  }
  en() {
    return this.dn() === 0.0;
  }
  get extent() {
    return this.dn();
  }
  set extent(value) {
    this.cn(value);
  }
  get isInverted() {
    return this.fn();
  }
  get isDegenerate() {
    return this.en();
  }
}
class IntervalEvent {
  constructor(oldStart, oldEnd, oldExtent) {
    this.bo_1 = oldStart;
    this.co_1 = oldEnd;
    this.do_1 = oldExtent;
    this.eo_1 = 0.0;
    this.fo_1 = 0.0;
    this.go_1 = 0.0;
  }
  ho(newStart, newEnd, newExtent) {
    this.eo_1 = newStart;
    this.fo_1 = newEnd;
    this.go_1 = newExtent;
  }
  toString() {
    return 'IntervalEvent{newStart=' + this.eo_1 + ', newEnd=' + this.fo_1 + ', newExtent=' + this.go_1 + ', oldStart=' + this.bo_1 + ', oldEnd=' + this.co_1 + ', oldExtent=' + this.do_1 + toString(_Char___init__impl__6a9atx(125));
  }
}
class PropertyClosedInterval extends ClosedInterval {
  static po(start, extent) {
    var $this = this.vn();
    $this.no_1 = new SimpleProperty(start);
    $this.oo_1 = new SimpleProperty($this.xm().z2() + extent);
    var tmp = $this.xm();
    tmp.zo(new PropertyClosedInterval$1($this, start, extent));
    var tmp_0 = $this.ym();
    tmp_0.zo(new PropertyClosedInterval$2(start, $this, extent));
    delete $this.startProperty;
    delete $this.endProperty;
    delete $this.start;
    delete $this.end;
    return $this;
  }
  xm() {
    return this.no_1;
  }
  ym() {
    return this.oo_1;
  }
  zm(value) {
    this.xm().ap(value);
  }
  xf() {
    return this.xm().z2();
  }
  an(value) {
    this.ym().ap(value);
  }
  bn() {
    return this.ym().z2();
  }
  cn(extent) {
    this.ym().ap(this.xf() + extent);
  }
  dn() {
    return super.dn();
  }
  qo(value, extent) {
    this.xm().ap(value);
    this.ym().ap(value + extent);
  }
  setValue(value, extent) {
    return this.qo(value, extent);
  }
  toString() {
    return 'PropertyClosedInterval{start=' + this.xf() + ', end=' + this.bn() + ', extent=' + this.dn() + toString(_Char___init__impl__6a9atx(125));
  }
  get startProperty() {
    return this.xm();
  }
  get endProperty() {
    return this.ym();
  }
  get start() {
    return this.xf();
  }
  set start(value) {
    this.zm(value);
  }
  get end() {
    return this.bn();
  }
  set end(value) {
    this.an(value);
  }
}
class OpenInterval extends PropertyClosedInterval {
  static lo(start, extent) {
    return this.po(start, extent);
  }
  wn(value) {
    return this.xf() <= value && this.bn() > value;
  }
  contains(value) {
    return this.wn(value);
  }
}
class PropertyListener {}
class PropertyClosedInterval$1 {
  constructor(this$0, $start, $extent) {
    this.ro_1 = this$0;
    this.so_1 = $start;
    this.to_1 = $extent;
  }
  uo(event) {
    var e = new IntervalEvent(event.oldValue, this.ro_1.bn(), this.ro_1.bn() - event.oldValue);
    e.ho(this.so_1, this.ro_1.bn(), this.to_1);
    this.ro_1.wm(e);
  }
  vo(event) {
    return this.uo(event);
  }
}
class PropertyClosedInterval$2 {
  constructor($start, this$0, $extent) {
    this.wo_1 = $start;
    this.xo_1 = this$0;
    this.yo_1 = $extent;
  }
  uo(event) {
    var e = new IntervalEvent(this.wo_1, event.oldValue, event.oldValue - this.wo_1);
    e.ho(this.wo_1, this.xo_1.bn(), this.yo_1);
    this.xo_1.wm(e);
  }
  vo(event) {
    return this.uo(event);
  }
}
class SimpleBoundedInterval$intervalListener$1 {
  constructor(this$0) {
    this.bp_1 = this$0;
  }
  kn(event) {
    this.bp_1.wm(event);
  }
}
class SimpleBoundedInterval extends AbstractBoundedInterval {
  static kp(interval, minimum, maximum) {
    var $this = this.nm();
    $this.ep_1 = interval;
    $this.fp_1 = minimum;
    $this.gp_1 = maximum;
    $this.hp_1 = 0.0;
    $this.ip_1 = 0.0;
    var tmp = $this;
    tmp.jp_1 = new SimpleBoundedInterval$intervalListener$1($this);
    $this.lp(0.0);
    $this.mp(maximum - minimum);
    $this.ep_1.addWeakIntervalListener($this.jp_1);
    delete $this.startProperty;
    delete $this.endProperty;
    delete $this.start;
    delete $this.start;
    delete $this.end;
    delete $this.end;
    delete $this.extent;
    delete $this.extent;
    delete $this.isDegenerate;
    delete $this.isDegenerate;
    delete $this.isInverted;
    delete $this.isInverted;
    return $this;
  }
  np(minimum) {
    if (!(this.fp_1 === minimum)) {
      var event = new BoundedIntervalEvent(this.fp_1, this.gp_1, this.hp_1, this.ip_1);
      this.fp_1 = minimum;
      this.mp(this.gp_1 - this.fp_1);
      event.tn(this.fp_1, this.gp_1, this.hp_1, this.ip_1);
      this.qm(event);
    }
  }
  gn() {
    return this.fp_1;
  }
  op(maximum) {
    if (!(this.gp_1 === maximum)) {
      var event = new BoundedIntervalEvent(this.fp_1, this.gp_1, this.hp_1, this.ip_1);
      this.gp_1 = maximum;
      this.mp(this.gp_1 - this.fp_1);
      event.tn(this.fp_1, this.gp_1, this.hp_1, this.ip_1);
      this.qm(event);
    }
  }
  hn() {
    return this.gp_1;
  }
  lp(minimumExtent) {
    if (!(this.hp_1 === minimumExtent)) {
      var event = new BoundedIntervalEvent(this.fp_1, this.gp_1, this.hp_1, this.ip_1);
      this.hp_1 = minimumExtent;
      event.tn(this.fp_1, this.gp_1, this.hp_1, this.ip_1);
      this.qm(event);
    }
  }
  mp(maximumExtent) {
    if (!(this.ip_1 === maximumExtent)) {
      var event = new BoundedIntervalEvent(this.fp_1, this.gp_1, this.hp_1, this.ip_1);
      this.ip_1 = maximumExtent;
      event.tn(this.fp_1, this.gp_1, this.hp_1, this.ip_1);
      this.qm(event);
    }
  }
  pp() {
    return this.ip_1;
  }
  static qp(start, extent, minimum, maximum) {
    minimum = minimum === VOID ? start : minimum;
    maximum = maximum === VOID ? start + extent : maximum;
    return this.kp(PropertyClosedInterval.po(start, extent), minimum, maximum);
  }
  qo(value, extent) {
    this.ep_1.setValue(value, extent);
  }
  setValue(value, extent) {
    return this.qo(value, extent);
  }
  xm() {
    return this.ep_1.startProperty;
  }
  ym() {
    return this.ep_1.endProperty;
  }
  zm(value) {
    this.ep_1.start = value;
  }
  xf() {
    return this.ep_1.start;
  }
  an(value) {
    this.ep_1.end = value;
  }
  bn() {
    return this.ep_1.end;
  }
  cn(value) {
    this.ep_1.extent = value;
  }
  dn() {
    return this.ep_1.extent;
  }
  wn(value) {
    return this.ep_1.contains(value);
  }
  contains(value) {
    return this.wn(value);
  }
  xn(start, end) {
    return this.ep_1.containsStartEnd(start, end);
  }
  containsStartEnd(start, end) {
    return this.xn(start, end);
  }
  yn(interval) {
    return ensureNotNull(interval).containsInterval(interval);
  }
  containsInterval(interval) {
    return this.yn(interval);
  }
  zn(start, end) {
    return this.ep_1.overlaps(start, end);
  }
  overlaps(start, end) {
    return this.zn(start, end);
  }
  ao(interval) {
    return ensureNotNull(interval).overlapsInterval(interval);
  }
  overlapsInterval(interval) {
    return this.ao(interval);
  }
  en() {
    return this.ep_1.isDegenerate;
  }
  fn() {
    return this.ep_1.isInverted;
  }
  rp(min, max) {
    if (!(this.fp_1 === min) || !(this.gp_1 === max)) {
      var event = new BoundedIntervalEvent(this.fp_1, this.gp_1, this.hp_1, this.ip_1);
      this.np(min);
      this.op(max);
      this.mp(max - min);
      event.tn(this.fp_1, this.gp_1, this.hp_1, this.ip_1);
      this.qm(event);
    }
  }
  toString() {
    return 'SimpleBoundedInterval{start=' + this.ep_1.start + ', end=' + this.ep_1.end + ', extent=' + this.ep_1.extent + ', minimum=' + this.fp_1 + ', maximum=' + this.gp_1 + ', minimumExtent=' + this.hp_1 + ', maximumExtent=' + this.ip_1 + toString(_Char___init__impl__6a9atx(125));
  }
  get startProperty() {
    return this.xm();
  }
  get endProperty() {
    return this.ym();
  }
  get start() {
    return this.xf();
  }
  set start(value) {
    this.zm(value);
  }
  get end() {
    return this.bn();
  }
  set end(value) {
    this.an(value);
  }
  get extent() {
    return this.dn();
  }
  set extent(value) {
    this.cn(value);
  }
  get isDegenerate() {
    return this.en();
  }
  get isInverted() {
    return this.fn();
  }
}
class Companion_17 {
  constructor() {
    Companion_instance_17 = this;
    this.ZERO = BigDecimals_getInstance().sp_1;
    this.ONE = BigDecimals_getInstance().tp_1;
    this.TWO = BigDecimals_getInstance().up_1;
    this.TEN = BigDecimals_getInstance().vp_1;
    this.ONE_TENTH = BigDecimals_getInstance().wp_1;
    this.ONE_HALF = BigDecimals_getInstance().xp_1;
    this.PI = BigDecimals_getInstance().yp_1;
    this.E = BigDecimals_getInstance().zp_1;
  }
  aq() {
    return this.ZERO;
  }
  bq() {
    return this.ONE;
  }
  cq() {
    return this.TWO;
  }
  dq() {
    return this.TEN;
  }
  eq() {
    return this.ONE_TENTH;
  }
  fq() {
    return this.ONE_HALF;
  }
  gq() {
    return this.PI;
  }
  hq() {
    return this.E;
  }
  ofScaledLong(unscaledVal, scale) {
    return bigDecimalOf(unscaledVal, scale);
  }
  ofScaledLongWithPrecision(unscaledVal, scale, prec) {
    return bigDecimalOf_0(unscaledVal, scale, prec);
  }
  ofInt(val) {
    return bigDecimalOf_1(val);
  }
  of(val) {
    return bigDecimalOf_2(val);
  }
  ofScaledBigIntegerWithPrecision(intVal, scale, prec) {
    return bigDecimalOf_3(intVal, scale, prec);
  }
  iq(val, ctx) {
    return bigDecimalOf_4(val, ctx);
  }
  ofDouble(val, ctx, $super) {
    ctx = ctx === VOID ? null : ctx;
    return $super === VOID ? this.iq(val, ctx) : $super.iq.call(this, val, ctx);
  }
  jq(val, ctx) {
    return bigDecimalOf_5(val, ctx);
  }
  ofFloat(val, ctx, $super) {
    ctx = ctx === VOID ? null : ctx;
    return $super === VOID ? this.jq(val, ctx) : $super.jq.call(this, val, ctx);
  }
  kq(val, ctx) {
    return bigDecimalOf_6(val, ctx);
  }
  parse(val, ctx, $super) {
    ctx = ctx === VOID ? null : ctx;
    return $super === VOID ? this.kq(val, ctx) : $super.kq.call(this, val, ctx);
  }
  lq(val, ctx) {
    return bigDecimalOf_7(val, ctx);
  }
  ofBigInteger(val, ctx, $super) {
    ctx = ctx === VOID ? null : ctx;
    return $super === VOID ? this.lq(val, ctx) : $super.lq.call(this, val, ctx);
  }
  ofIntWithContext(val, ctx) {
    return bigDecimalOf_8(val, ctx);
  }
  ofWithContext(val, ctx) {
    return bigDecimalOf_9(val, ctx);
  }
}
class BigDecimal {}
function sqrt(mc, $super) {
  mc = mc === VOID ? new MathContext() : mc;
  return $super === VOID ? this.rq(mc) : $super.rq.call(this, mc);
}
class Companion_18 {
  constructor() {
    Companion_instance_18 = this;
    this.ZERO = BigIntegers_getInstance().tq_1;
    this.ONE = BigIntegers_getInstance().uq_1;
    this.TWO = BigIntegers_getInstance().vq_1;
    this.NEGATIVE_ONE = BigIntegers_getInstance().xq_1;
    this.TEN = BigIntegers_getInstance().wq_1;
  }
  aq() {
    return this.ZERO;
  }
  bq() {
    return this.ONE;
  }
  cq() {
    return this.TWO;
  }
  yq() {
    return this.NEGATIVE_ONE;
  }
  dq() {
    return this.TEN;
  }
  probablePrime(bitLength, rnd) {
    return bigProbablePrimeInteger(bitLength, rnd);
  }
  ofLong(value) {
    return bigIntegerOf(value);
  }
  of(value) {
    return bigIntegerOf_0(value);
  }
  parse(value) {
    return bigIntegerOf_1(value);
  }
  parseWithRadix(value, radix) {
    return bigIntegerOf_2(value, radix);
  }
  ofIntArray(value) {
    return bigIntegerOf_3(value);
  }
  ofSlideIntArray(signum, magnitude, off, len) {
    return bigIntegerOf_4(signum, magnitude, off, len);
  }
}
class BigInteger {}
function rangeTo(endInclusive) {
  return new BigIntegerRange(this, endInclusive);
}
function rangeToInt(endInclusive) {
  return new BigIntegerRange(this, Companion_getInstance_18().of(endInclusive));
}
function rangeToLong(endInclusive) {
  return new BigIntegerRange(this, Companion_getInstance_18().ofLong(endInclusive));
}
function plusInt(other) {
  return this.plus(Companion_getInstance_18().of(other));
}
function plusLong(other) {
  return this.plus(Companion_getInstance_18().ofLong(other));
}
function minusInt(other) {
  return this.minus(Companion_getInstance_18().of(other));
}
function minusLong(other) {
  return this.minus(Companion_getInstance_18().ofLong(other));
}
function timesInt(other) {
  return this.times(Companion_getInstance_18().of(other));
}
function timesLong(other) {
  return this.times(Companion_getInstance_18().ofLong(other));
}
function divInt(other) {
  return this.div(Companion_getInstance_18().of(other));
}
function divLong(other) {
  return this.div(Companion_getInstance_18().ofLong(other));
}
function divideAndRemainderInt(other) {
  return this.divideAndRemainder(Companion_getInstance_18().of(other));
}
function divideAndRemainderLong(other) {
  return this.divideAndRemainder(Companion_getInstance_18().ofLong(other));
}
function reminderInt(other) {
  return this.reminder(Companion_getInstance_18().of(other));
}
function reminderLong(other) {
  return this.reminder(Companion_getInstance_18().ofLong(other));
}
function gcdInt(other) {
  return this.gcd(Companion_getInstance_18().of(other));
}
function gcdLong(other) {
  return this.gcd(Companion_getInstance_18().ofLong(other));
}
function remInt(modulus) {
  return this.rem(Companion_getInstance_18().of(modulus));
}
function remLong(modulus) {
  return this.rem(Companion_getInstance_18().ofLong(modulus));
}
function modInverseInt(modulus) {
  return this.modInverse(Companion_getInstance_18().of(modulus));
}
function modInverseLong(modulus) {
  return this.modInverse(Companion_getInstance_18().ofLong(modulus));
}
function andInt(other) {
  return this.and(Companion_getInstance_18().of(other));
}
function andLong(other) {
  return this.and(Companion_getInstance_18().ofLong(other));
}
function orInt(other) {
  return this.or(Companion_getInstance_18().of(other));
}
function orLong(other) {
  return this.or(Companion_getInstance_18().ofLong(other));
}
function xorInt(other) {
  return this.xor(Companion_getInstance_18().of(other));
}
function xorLong(other) {
  return this.xor(Companion_getInstance_18().ofLong(other));
}
function andNotInt(other) {
  return this.andNot(Companion_getInstance_18().of(other));
}
function andNotLong(other) {
  return this.andNot(Companion_getInstance_18().ofLong(other));
}
class BigIntegerRange$iterator$1 {
  constructor(this$0) {
    this.dr_1 = this$0;
    this.cr_1 = this$0.er_1;
  }
  i1() {
    return this.cr_1.br(this.dr_1.fr_1) <= 0;
  }
  j1() {
    var temp = this.cr_1;
    this.cr_1 = this.cr_1.plus(Companion_getInstance_18().ONE);
    return temp;
  }
}
class BigIntegerRange {
  constructor(start, endInclusive) {
    this.er_1 = start;
    this.fr_1 = endInclusive;
  }
  xf() {
    return this.er_1;
  }
  bg() {
    return this.fr_1;
  }
  h1() {
    return new BigIntegerRange$iterator$1(this);
  }
  mi() {
    return this.er_1;
  }
  ni() {
    return this.fr_1;
  }
  gr(start, endInclusive) {
    return new BigIntegerRange(start, endInclusive);
  }
  copy(start, endInclusive, $super) {
    start = start === VOID ? this.er_1 : start;
    endInclusive = endInclusive === VOID ? this.fr_1 : endInclusive;
    return $super === VOID ? this.gr(start, endInclusive) : $super.gr.call(this, start, endInclusive);
  }
  toString() {
    return 'BigIntegerRange(start=' + this.er_1.toString() + ', endInclusive=' + this.fr_1.toString() + ')';
  }
  hashCode() {
    var result = this.er_1.hashCode();
    result = imul_0(result, 31) + this.fr_1.hashCode() | 0;
    return result;
  }
  equals(other) {
    if (this === other)
      return true;
    if (!(other instanceof BigIntegerRange))
      return false;
    if (!this.er_1.equals(other.er_1))
      return false;
    if (!this.fr_1.equals(other.fr_1))
      return false;
    return true;
  }
}
class Companion_19 {
  constructor() {
    Companion_instance_19 = this;
    this.jr_1 = BitSieve.kr();
  }
}
class BitSieve {
  static kr() {
    Companion_getInstance_19();
    var $this = createThis(this);
    init_com_macrofocus_common_math_big_BitSieve($this);
    $this.ir_1 = 9600;
    $this.hr_1 = new BigInt64Array(unitIndex(Companion_getInstance_19(), $this.ir_1 - 1 | 0) + 1 | 0);
    set($this, 0);
    var nextIndex = 1;
    var nextPrime = 3;
    do {
      sieveSingle($this, $this.ir_1, nextIndex + nextPrime | 0, nextPrime);
      nextIndex = sieveSearch($this, $this.ir_1, nextIndex + 1 | 0);
      nextPrime = imul_0(2, nextIndex) + 1 | 0;
    }
     while (nextIndex > 0 && nextPrime < $this.ir_1);
    return $this;
  }
  static lr(base, searchLen) {
    Companion_getInstance_19();
    var $this = createThis(this);
    init_com_macrofocus_common_math_big_BitSieve($this);
    $this.hr_1 = new BigInt64Array(unitIndex(Companion_getInstance_19(), searchLen - 1 | 0) + 1 | 0);
    $this.ir_1 = searchLen;
    var start = 0;
    var step = sieveSearch(Companion_getInstance_19().jr_1, Companion_getInstance_19().jr_1.ir_1, start);
    var convertedStep = imul_0(step, 2) + 1 | 0;
    var b = MutableBigInteger.qr(base);
    var q = MutableBigInteger.rr();
    do {
      start = b.sr(convertedStep, q);
      start = convertedStep - start | 0;
      if ((start % 2 | 0) === 0) {
        start = start + convertedStep | 0;
      }
      sieveSingle($this, searchLen, (start - 1 | 0) / 2 | 0, convertedStep);
      step = sieveSearch(Companion_getInstance_19().jr_1, Companion_getInstance_19().jr_1.ir_1, step + 1 | 0);
      convertedStep = imul_0(step, 2) + 1 | 0;
    }
     while (step > 0);
    return $this;
  }
  tr(initValue, certainty, random) {
    var offset = 1;
    var inductionVariable = 0;
    var last = ensureNotNull(this.hr_1).length - 1 | 0;
    if (inductionVariable <= last)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        var nextLong = ~ensureNotNull(this.hr_1)[i];
        var inductionVariable_0 = 0;
        if (inductionVariable_0 <= 63)
          do {
            var j = inductionVariable_0;
            inductionVariable_0 = inductionVariable_0 + 1 | 0;
            if ((nextLong & 1n) === 1n) {
              var candidate = initValue.plus(Companion_getInstance_22().ofLong(fromInt_0(offset)));
              if (candidate.as(certainty, random)) {
                return candidate;
              }
            }
            nextLong = shiftRightUnsigned(nextLong, 1);
            offset = offset + 2 | 0;
          }
           while (inductionVariable_0 <= 63);
      }
       while (inductionVariable <= last);
    return null;
  }
}
class Companion_20 {
  constructor() {
    Companion_instance_20 = this;
    var tmp = this;
    // Inline function 'kotlin.charArrayOf' call
    tmp.bs_1 = charArrayOf([_Char___init__impl__6a9atx(48), _Char___init__impl__6a9atx(48), _Char___init__impl__6a9atx(48), _Char___init__impl__6a9atx(48), _Char___init__impl__6a9atx(48), _Char___init__impl__6a9atx(48), _Char___init__impl__6a9atx(48), _Char___init__impl__6a9atx(48), _Char___init__impl__6a9atx(48), _Char___init__impl__6a9atx(48), _Char___init__impl__6a9atx(49), _Char___init__impl__6a9atx(49), _Char___init__impl__6a9atx(49), _Char___init__impl__6a9atx(49), _Char___init__impl__6a9atx(49), _Char___init__impl__6a9atx(49), _Char___init__impl__6a9atx(49), _Char___init__impl__6a9atx(49), _Char___init__impl__6a9atx(49), _Char___init__impl__6a9atx(49), _Char___init__impl__6a9atx(50), _Char___init__impl__6a9atx(50), _Char___init__impl__6a9atx(50), _Char___init__impl__6a9atx(50), _Char___init__impl__6a9atx(50), _Char___init__impl__6a9atx(50), _Char___init__impl__6a9atx(50), _Char___init__impl__6a9atx(50), _Char___init__impl__6a9atx(50), _Char___init__impl__6a9atx(50), _Char___init__impl__6a9atx(51), _Char___init__impl__6a9atx(51), _Char___init__impl__6a9atx(51), _Char___init__impl__6a9atx(51), _Char___init__impl__6a9atx(51), _Char___init__impl__6a9atx(51), _Char___init__impl__6a9atx(51), _Char___init__impl__6a9atx(51), _Char___init__impl__6a9atx(51), _Char___init__impl__6a9atx(51), _Char___init__impl__6a9atx(52), _Char___init__impl__6a9atx(52), _Char___init__impl__6a9atx(52), _Char___init__impl__6a9atx(52), _Char___init__impl__6a9atx(52), _Char___init__impl__6a9atx(52), _Char___init__impl__6a9atx(52), _Char___init__impl__6a9atx(52), _Char___init__impl__6a9atx(52), _Char___init__impl__6a9atx(52), _Char___init__impl__6a9atx(53), _Char___init__impl__6a9atx(53), _Char___init__impl__6a9atx(53), _Char___init__impl__6a9atx(53), _Char___init__impl__6a9atx(53), _Char___init__impl__6a9atx(53), _Char___init__impl__6a9atx(53), _Char___init__impl__6a9atx(53), _Char___init__impl__6a9atx(53), _Char___init__impl__6a9atx(53), _Char___init__impl__6a9atx(54), _Char___init__impl__6a9atx(54), _Char___init__impl__6a9atx(54), _Char___init__impl__6a9atx(54), _Char___init__impl__6a9atx(54), _Char___init__impl__6a9atx(54), _Char___init__impl__6a9atx(54), _Char___init__impl__6a9atx(54), _Char___init__impl__6a9atx(54), _Char___init__impl__6a9atx(54), _Char___init__impl__6a9atx(55), _Char___init__impl__6a9atx(55), _Char___init__impl__6a9atx(55), _Char___init__impl__6a9atx(55), _Char___init__impl__6a9atx(55), _Char___init__impl__6a9atx(55), _Char___init__impl__6a9atx(55), _Char___init__impl__6a9atx(55), _Char___init__impl__6a9atx(55), _Char___init__impl__6a9atx(55), _Char___init__impl__6a9atx(56), _Char___init__impl__6a9atx(56), _Char___init__impl__6a9atx(56), _Char___init__impl__6a9atx(56), _Char___init__impl__6a9atx(56), _Char___init__impl__6a9atx(56), _Char___init__impl__6a9atx(56), _Char___init__impl__6a9atx(56), _Char___init__impl__6a9atx(56), _Char___init__impl__6a9atx(56), _Char___init__impl__6a9atx(57), _Char___init__impl__6a9atx(57), _Char___init__impl__6a9atx(57), _Char___init__impl__6a9atx(57), _Char___init__impl__6a9atx(57), _Char___init__impl__6a9atx(57), _Char___init__impl__6a9atx(57), _Char___init__impl__6a9atx(57), _Char___init__impl__6a9atx(57), _Char___init__impl__6a9atx(57)]);
    var tmp_0 = this;
    // Inline function 'kotlin.charArrayOf' call
    tmp_0.cs_1 = charArrayOf([_Char___init__impl__6a9atx(48), _Char___init__impl__6a9atx(49), _Char___init__impl__6a9atx(50), _Char___init__impl__6a9atx(51), _Char___init__impl__6a9atx(52), _Char___init__impl__6a9atx(53), _Char___init__impl__6a9atx(54), _Char___init__impl__6a9atx(55), _Char___init__impl__6a9atx(56), _Char___init__impl__6a9atx(57), _Char___init__impl__6a9atx(48), _Char___init__impl__6a9atx(49), _Char___init__impl__6a9atx(50), _Char___init__impl__6a9atx(51), _Char___init__impl__6a9atx(52), _Char___init__impl__6a9atx(53), _Char___init__impl__6a9atx(54), _Char___init__impl__6a9atx(55), _Char___init__impl__6a9atx(56), _Char___init__impl__6a9atx(57), _Char___init__impl__6a9atx(48), _Char___init__impl__6a9atx(49), _Char___init__impl__6a9atx(50), _Char___init__impl__6a9atx(51), _Char___init__impl__6a9atx(52), _Char___init__impl__6a9atx(53), _Char___init__impl__6a9atx(54), _Char___init__impl__6a9atx(55), _Char___init__impl__6a9atx(56), _Char___init__impl__6a9atx(57), _Char___init__impl__6a9atx(48), _Char___init__impl__6a9atx(49), _Char___init__impl__6a9atx(50), _Char___init__impl__6a9atx(51), _Char___init__impl__6a9atx(52), _Char___init__impl__6a9atx(53), _Char___init__impl__6a9atx(54), _Char___init__impl__6a9atx(55), _Char___init__impl__6a9atx(56), _Char___init__impl__6a9atx(57), _Char___init__impl__6a9atx(48), _Char___init__impl__6a9atx(49), _Char___init__impl__6a9atx(50), _Char___init__impl__6a9atx(51), _Char___init__impl__6a9atx(52), _Char___init__impl__6a9atx(53), _Char___init__impl__6a9atx(54), _Char___init__impl__6a9atx(55), _Char___init__impl__6a9atx(56), _Char___init__impl__6a9atx(57), _Char___init__impl__6a9atx(48), _Char___init__impl__6a9atx(49), _Char___init__impl__6a9atx(50), _Char___init__impl__6a9atx(51), _Char___init__impl__6a9atx(52), _Char___init__impl__6a9atx(53), _Char___init__impl__6a9atx(54), _Char___init__impl__6a9atx(55), _Char___init__impl__6a9atx(56), _Char___init__impl__6a9atx(57), _Char___init__impl__6a9atx(48), _Char___init__impl__6a9atx(49), _Char___init__impl__6a9atx(50), _Char___init__impl__6a9atx(51), _Char___init__impl__6a9atx(52), _Char___init__impl__6a9atx(53), _Char___init__impl__6a9atx(54), _Char___init__impl__6a9atx(55), _Char___init__impl__6a9atx(56), _Char___init__impl__6a9atx(57), _Char___init__impl__6a9atx(48), _Char___init__impl__6a9atx(49), _Char___init__impl__6a9atx(50), _Char___init__impl__6a9atx(51), _Char___init__impl__6a9atx(52), _Char___init__impl__6a9atx(53), _Char___init__impl__6a9atx(54), _Char___init__impl__6a9atx(55), _Char___init__impl__6a9atx(56), _Char___init__impl__6a9atx(57), _Char___init__impl__6a9atx(48), _Char___init__impl__6a9atx(49), _Char___init__impl__6a9atx(50), _Char___init__impl__6a9atx(51), _Char___init__impl__6a9atx(52), _Char___init__impl__6a9atx(53), _Char___init__impl__6a9atx(54), _Char___init__impl__6a9atx(55), _Char___init__impl__6a9atx(56), _Char___init__impl__6a9atx(57), _Char___init__impl__6a9atx(48), _Char___init__impl__6a9atx(49), _Char___init__impl__6a9atx(50), _Char___init__impl__6a9atx(51), _Char___init__impl__6a9atx(52), _Char___init__impl__6a9atx(53), _Char___init__impl__6a9atx(54), _Char___init__impl__6a9atx(55), _Char___init__impl__6a9atx(56), _Char___init__impl__6a9atx(57)]);
  }
}
class LongOverflow {
  constructor() {
    LongOverflow_instance = this;
    this.xu_1 = Companion_getInstance_22().ofLong(-9223372036854775808n);
    this.yu_1 = Companion_getInstance_22().ofLong(9223372036854775807n);
  }
  zu(num) {
    var intVal = inflated(num);
    if (intVal.br(this.xu_1) < 0 || intVal.br(this.yu_1) > 0) {
      throw ArithmeticException.cc('Overflow');
    }
  }
}
class StringBuilderHelper {
  constructor(sb, compactCharArray) {
    Companion_getInstance_20();
    sb = sb === VOID ? StringBuilder.y() : sb;
    compactCharArray = compactCharArray === VOID ? charArray(19) : compactCharArray;
    this.av_1 = sb;
    this.bv_1 = compactCharArray;
  }
  cv() {
    removeRange(this.av_1, 0, this.av_1.a());
    return this.av_1;
  }
  dv(intCompact) {
    var intCompact_0 = intCompact;
    // Inline function 'kotlin.require' call
    // Inline function 'kotlin.require' call
    if (!(intCompact_0 >= 0n)) {
      var message = 'Failed requirement.';
      throw IllegalArgumentException.w(toString_1(message));
    }
    var q;
    var r;
    var charPos = this.bv_1.length;
    while (intCompact_0 > 2147483647n) {
      // Inline function 'kotlin.Long.div' call
      var this_0 = intCompact_0;
      q = divide(this_0, fromInt_0(100));
      var tmp = intCompact_0;
      // Inline function 'kotlin.Long.times' call
      var tmp$ret$4 = multiply_0(q, fromInt_0(100));
      r = convertToInt(subtract_0(tmp, tmp$ret$4));
      intCompact_0 = q;
      charPos = charPos - 1 | 0;
      this.bv_1[charPos] = Companion_getInstance_20().cs_1[r];
      charPos = charPos - 1 | 0;
      this.bv_1[charPos] = Companion_getInstance_20().bs_1[r];
    }
    var q2;
    var i2 = convertToInt(intCompact_0);
    while (i2 >= 100) {
      q2 = i2 / 100 | 0;
      r = i2 - imul_0(q2, 100) | 0;
      i2 = q2;
      charPos = charPos - 1 | 0;
      this.bv_1[charPos] = Companion_getInstance_20().cs_1[r];
      charPos = charPos - 1 | 0;
      this.bv_1[charPos] = Companion_getInstance_20().bs_1[r];
    }
    charPos = charPos - 1 | 0;
    this.bv_1[charPos] = Companion_getInstance_20().cs_1[i2];
    if (i2 >= 10) {
      charPos = charPos - 1 | 0;
      this.bv_1[charPos] = Companion_getInstance_20().bs_1[i2];
    }
    return charPos;
  }
}
class Companion_21 {
  constructor() {
    Companion_instance_21 = this;
    this.ft_1 = -9223372036854775808n;
    this.gt_1 = Companion_getInstance_22().ofLong(-9223372036854775808n);
    this.ht_1 = 18;
    var tmp = this;
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    tmp.it_1 = [CommonBigDecimal.eu(Companion_getInstance_22().ZERO, 0n, 0, 1), CommonBigDecimal.eu(Companion_getInstance_22().ONE, 1n, 0, 1), CommonBigDecimal.eu(Companion_getInstance_22().TWO, 2n, 0, 1), CommonBigDecimal.eu(Companion_getInstance_22().of(3), 3n, 0, 1), CommonBigDecimal.eu(Companion_getInstance_22().of(4), 4n, 0, 1), CommonBigDecimal.eu(Companion_getInstance_22().of(5), 5n, 0, 1), CommonBigDecimal.eu(Companion_getInstance_22().of(6), 6n, 0, 1), CommonBigDecimal.eu(Companion_getInstance_22().of(7), 7n, 0, 1), CommonBigDecimal.eu(Companion_getInstance_22().of(8), 8n, 0, 1), CommonBigDecimal.eu(Companion_getInstance_22().of(9), 9n, 0, 1), CommonBigDecimal.eu(Companion_getInstance_22().TEN, 10n, 0, 2)];
    var tmp_0 = this;
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    tmp_0.jt_1 = [this.it_1[0], CommonBigDecimal.eu(Companion_getInstance_22().ZERO, 0n, 1, 1), CommonBigDecimal.eu(Companion_getInstance_22().ZERO, 0n, 2, 1), CommonBigDecimal.eu(Companion_getInstance_22().ZERO, 0n, 3, 1), CommonBigDecimal.eu(Companion_getInstance_22().ZERO, 0n, 4, 1), CommonBigDecimal.eu(Companion_getInstance_22().ZERO, 0n, 5, 1), CommonBigDecimal.eu(Companion_getInstance_22().ZERO, 0n, 6, 1), CommonBigDecimal.eu(Companion_getInstance_22().ZERO, 0n, 7, 1), CommonBigDecimal.eu(Companion_getInstance_22().ZERO, 0n, 8, 1), CommonBigDecimal.eu(Companion_getInstance_22().ZERO, 0n, 9, 1), CommonBigDecimal.eu(Companion_getInstance_22().ZERO, 0n, 10, 1), CommonBigDecimal.eu(Companion_getInstance_22().ZERO, 0n, 11, 1), CommonBigDecimal.eu(Companion_getInstance_22().ZERO, 0n, 12, 1), CommonBigDecimal.eu(Companion_getInstance_22().ZERO, 0n, 13, 1), CommonBigDecimal.eu(Companion_getInstance_22().ZERO, 0n, 14, 1), CommonBigDecimal.eu(Companion_getInstance_22().ZERO, 0n, 15, 1)];
    this.kt_1 = 4611686018427387903n;
    this.lt_1 = -4611686018427387904n;
    this.ZERO = this.it_1[0];
    this.ONE = this.it_1[1];
    this.TWO = this.it_1[2];
    this.TEN = this.it_1[10];
    this.ONE_TENTH = this.ofScaledLong(1n, 1);
    this.ONE_HALF = this.ofScaledLong(5n, 1);
    this.PI = this.parse('3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930381964428810975665933446128475648233786783165271201909145648');
    this.E = this.parse('2.718281828459045235360287471352662497757247093699959574966967627724076630353547594571382178525166427427466391932003059921817413596629043572900334295260595630738132328627943490763233829880753195251019011573834187930702154089149934884167509244761460668082264');
    var tmp_1 = this;
    // Inline function 'kotlin.doubleArrayOf' call
    tmp_1.mt_1 = new Float64Array([1.0, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, 1.0E7, 1.0E8, 1.0E9, 1.0E10, 1.0E11, 1.0E12, 1.0E13, 1.0E14, 1.0E15, 1.0E16, 1.0E17, 1.0E18, 1.0E19, 1.0E20, 1.0E21, 1.0E22]);
    var tmp_2 = this;
    // Inline function 'kotlin.floatArrayOf' call
    tmp_2.nt_1 = new Float32Array([1.0, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, 1.0E7, 1.0E8, 1.0E9, 1.0E10]);
    var tmp_3 = this;
    // Inline function 'kotlin.longArrayOf' call
    tmp_3.ot_1 = new BigInt64Array([1n, 10n, 100n, 1000n, 10000n, 100000n, 1000000n, 10000000n, 100000000n, 1000000000n, 10000000000n, 100000000000n, 1000000000000n, 10000000000000n, 100000000000000n, 1000000000000000n, 10000000000000000n, 100000000000000000n, 1000000000000000000n]);
    var tmp_4 = this;
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    tmp_4.pt_1 = [Companion_getInstance_22().ONE, Companion_getInstance_22().of(10), Companion_getInstance_22().of(100), Companion_getInstance_22().of(1000), Companion_getInstance_22().of(10000), Companion_getInstance_22().of(100000), Companion_getInstance_22().of(1000000), Companion_getInstance_22().of(10000000), Companion_getInstance_22().of(100000000), Companion_getInstance_22().of(1000000000), Companion_getInstance_22().ofLong(10000000000n), Companion_getInstance_22().ofLong(100000000000n), Companion_getInstance_22().ofLong(1000000000000n), Companion_getInstance_22().ofLong(10000000000000n), Companion_getInstance_22().ofLong(100000000000000n), Companion_getInstance_22().ofLong(1000000000000000n), Companion_getInstance_22().ofLong(10000000000000000n), Companion_getInstance_22().ofLong(100000000000000000n), Companion_getInstance_22().ofLong(1000000000000000000n)];
    this.qt_1 = this.pt_1.length;
    this.rt_1 = imul_0(16, this.qt_1);
    var tmp_5 = this;
    // Inline function 'kotlin.longArrayOf' call
    tmp_5.st_1 = new BigInt64Array([9223372036854775807n, 922337203685477580n, 92233720368547758n, 9223372036854775n, 922337203685477n, 92233720368547n, 9223372036854n, 922337203685n, 92233720368n, 9223372036n, 922337203n, 92233720n, 9223372n, 922337n, 92233n, 9223n, 922n, 92n, 9n]);
    this.tt_1 = 4294967296n;
    var tmp_6 = this;
    // Inline function 'kotlin.longArrayOf' call
    var tmp_7 = new BigInt64Array([0n, -8446744073709551616n]);
    // Inline function 'kotlin.longArrayOf' call
    var tmp_8 = new BigInt64Array([5n, 7766279631452241920n]);
    // Inline function 'kotlin.longArrayOf' call
    var tmp_9 = new BigInt64Array([54n, 3875820019684212736n]);
    // Inline function 'kotlin.longArrayOf' call
    var tmp_10 = new BigInt64Array([542n, 1864712049423024128n]);
    // Inline function 'kotlin.longArrayOf' call
    var tmp_11 = new BigInt64Array([5421n, 200376420520689664n]);
    // Inline function 'kotlin.longArrayOf' call
    var tmp_12 = new BigInt64Array([54210n, 2003764205206896640n]);
    // Inline function 'kotlin.longArrayOf' call
    var tmp_13 = new BigInt64Array([542101n, 1590897978359414784n]);
    // Inline function 'kotlin.longArrayOf' call
    var tmp_14 = new BigInt64Array([5421010n, -2537764290115403776n]);
    // Inline function 'kotlin.longArrayOf' call
    var tmp_15 = new BigInt64Array([54210108n, -6930898827444486144n]);
    // Inline function 'kotlin.longArrayOf' call
    var tmp_16 = new BigInt64Array([542101086n, 4477988020393345024n]);
    // Inline function 'kotlin.longArrayOf' call
    var tmp_17 = new BigInt64Array([5421010862n, 7886392056514347008n]);
    // Inline function 'kotlin.longArrayOf' call
    var tmp_18 = new BigInt64Array([54210108624n, 5076944270305263616n]);
    // Inline function 'kotlin.longArrayOf' call
    var tmp_19 = new BigInt64Array([542101086242n, -4570789518076018688n]);
    // Inline function 'kotlin.longArrayOf' call
    var tmp_20 = new BigInt64Array([5421010862427n, -8814407033341083648n]);
    // Inline function 'kotlin.longArrayOf' call
    var tmp_21 = new BigInt64Array([54210108624275n, 4089650035136921600n]);
    // Inline function 'kotlin.longArrayOf' call
    var tmp_22 = new BigInt64Array([542101086242752n, 4003012203950112768n]);
    // Inline function 'kotlin.longArrayOf' call
    var tmp_23 = new BigInt64Array([5421010862427522n, 3136633892082024448n]);
    // Inline function 'kotlin.longArrayOf' call
    var tmp_24 = new BigInt64Array([54210108624275221n, -5527149226598858752n]);
    // Inline function 'kotlin.longArrayOf' call
    var tmp_25 = new BigInt64Array([542101086242752217n, 68739955140067328n]);
    // Inline function 'kotlin.longArrayOf' call
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    tmp_6.ut_1 = [tmp_7, tmp_8, tmp_9, tmp_10, tmp_11, tmp_12, tmp_13, tmp_14, tmp_15, tmp_16, tmp_17, tmp_18, tmp_19, tmp_20, tmp_21, tmp_22, tmp_23, tmp_24, tmp_25, new BigInt64Array([5421010862427522170n, 687399551400673280n])];
  }
  aq() {
    return this.ZERO;
  }
  bq() {
    return this.ONE;
  }
  cq() {
    return this.TWO;
  }
  dq() {
    return this.TEN;
  }
  eq() {
    return this.ONE_TENTH;
  }
  fq() {
    return this.ONE_HALF;
  }
  gq() {
    return this.PI;
  }
  hq() {
    return this.E;
  }
  ofScaledLong(unscaledVal, scale) {
    if (scale === 0) {
      return this.of(unscaledVal);
    } else if (unscaledVal === 0n) {
      return this.wu(scale);
    }
    var tmp;
    if (unscaledVal === -9223372036854775808n) {
      tmp = this.gt_1;
    } else {
      tmp = null;
    }
    return CommonBigDecimal.eu(tmp, unscaledVal, scale, 0);
  }
  ofScaledLongWithPrecision(unscaledVal, scale, prec) {
    var tmp;
    if (scale === 0 && unscaledVal >= 0n && unscaledVal < fromInt_0(this.it_1.length)) {
      tmp = this.it_1[convertToInt(unscaledVal)];
    } else if (unscaledVal === 0n) {
      tmp = this.wu(scale);
    } else {
      tmp = CommonBigDecimal.eu(unscaledVal === -9223372036854775808n ? this.gt_1 : null, unscaledVal, scale, prec);
    }
    return tmp;
  }
  ofInt(val) {
    return this.of(fromInt_0(val));
  }
  of(val) {
    var tmp;
    if (val >= 0n && val < fromInt_0(this.it_1.length)) {
      tmp = this.it_1[convertToInt(val)];
    } else {
      var tmp_0;
      if (!(val === -9223372036854775808n)) {
        tmp_0 = CommonBigDecimal.eu((null == null ? true : null instanceof CommonBigInteger) ? null : THROW_CCE(), val, 0, 0);
      } else {
        tmp_0 = CommonBigDecimal.eu(this.gt_1, val, 0, 0);
      }
      tmp = tmp_0;
    }
    return tmp;
  }
  ofScaledBigIntegerWithPrecision(intVal, scale, prec) {
    var val = compactValFor(this, intVal);
    if (val === 0n) {
      return this.wu(scale);
    } else if (scale === 0 && val >= 0n && val < fromInt_0(this.it_1.length)) {
      return this.it_1[convertToInt(val)];
    }
    return CommonBigDecimal.eu(intVal, val, scale, prec);
  }
  wu(scale) {
    var tmp;
    if (scale >= 0 && scale < this.jt_1.length) {
      tmp = this.jt_1[scale];
    } else {
      tmp = CommonBigDecimal.eu(Companion_getInstance_22().ZERO, 0n, scale, 1);
    }
    return tmp;
  }
  ofDouble(val, ctx) {
    return CommonBigDecimal.ev(val, ctx);
  }
  ofFloat(val, ctx) {
    return this.ofDouble(val, ctx);
  }
  kq(val, ctx) {
    var tmp;
    if (ctx === null) {
      tmp = CommonBigDecimal.gv(val);
    } else {
      tmp = CommonBigDecimal.fv(val, ctx);
    }
    return tmp;
  }
  parse(val, ctx, $super) {
    ctx = ctx === VOID ? null : ctx;
    return $super === VOID ? this.kq(val, ctx) : $super.kq.call(this, val, ctx);
  }
  hv(val, ctx) {
    var tmp;
    if (ctx === null) {
      tmp = CommonBigDecimal.jv(val);
    } else {
      tmp = CommonBigDecimal.iv(val, ctx);
    }
    return tmp;
  }
  ofBigInteger(val, ctx, $super) {
    ctx = ctx === VOID ? null : ctx;
    return $super === VOID ? this.hv(val, ctx) : $super.hv.call(this, val, ctx);
  }
  ofIntWithContext(val, ctx) {
    return CommonBigDecimal.kv(fromInt_0(val), ctx);
  }
  ofWithContext(val, ctx) {
    return CommonBigDecimal.kv(val, ctx);
  }
  du(x) {
    var x_0 = x;
    // Inline function 'kotlin.require' call
    // Inline function 'kotlin.require' call
    if (!!(x_0 === -9223372036854775808n)) {
      var message = 'Failed requirement.';
      throw IllegalArgumentException.w(toString_1(message));
    }
    if (x_0 < 0n) {
      x_0 = negate_0(x_0);
    }
    if (x_0 < 10n) {
      return 1;
    }
    var r = imul_0((64 - numberOfLeadingZeros_0(x_0) | 0) + 1 | 0, 1233) >>> 12 | 0;
    var tab = this.ot_1;
    return r >= tab.length || x_0 < tab[r] ? r : r + 1 | 0;
  }
  vu(n, sign, scale) {
    if (n < this.ot_1.length) {
      return this.ofScaledLong(multiply_0(numberToLong(sign), this.ot_1[n]), scale);
    } else {
      var unscaledVal = bigTenToThe(this, n);
      if (sign === -1) {
        unscaledVal = unscaledVal.unaryMinus();
      }
      return CommonBigDecimal.eu(unscaledVal, -9223372036854775808n, scale, n + 1 | 0);
    }
  }
}
class CommonBigDecimal {
  static eu(intVal, val, scale, prec) {
    Companion_getInstance_21();
    var $this = createThis(this);
    init_com_macrofocus_common_math_big_CommonBigDecimal($this);
    $this.wt_1 = scale;
    $this.xt_1 = prec;
    $this.zt_1 = val;
    $this.vt_1 = intVal;
    return $this;
  }
  static lv(in_0, offset, len, mc) {
    Companion_getInstance_21();
    offset = offset === VOID ? 0 : offset;
    len = len === VOID ? in_0.length : len;
    mc = mc === VOID ? Companion_getInstance_23().UNLIMITED : mc;
    var $this = createThis(this);
    init_com_macrofocus_common_math_big_CommonBigDecimal($this);
    var offset_0 = offset;
    var len_0 = len;
    if ((offset_0 + len_0 | 0) > in_0.length || offset_0 < 0) {
      throw NumberFormatException.xb('Bad offset or len arguments for char[] input.');
    }
    var prec = 0;
    var scl = 0;
    var rs = 0n;
    var rb = null;
    try {
      var isneg = false;
      if (in_0[offset_0] === _Char___init__impl__6a9atx(45)) {
        isneg = true;
        offset_0 = offset_0 + 1 | 0;
        len_0 = len_0 - 1 | 0;
      } else if (in_0[offset_0] === _Char___init__impl__6a9atx(43)) {
        offset_0 = offset_0 + 1 | 0;
        len_0 = len_0 - 1 | 0;
      }
      var dot = false;
      var exp = 0n;
      var c;
      var isCompact = len_0 <= 18;
      var idx = 0;
      if (isCompact) {
        $l$loop: while (len_0 > 0) {
          c = in_0[offset_0];
          if (c === _Char___init__impl__6a9atx(48)) {
            if (prec === 0) {
              prec = 1;
            } else if (!(rs === 0n)) {
              // Inline function 'kotlin.Long.times' call
              var this_0 = rs;
              rs = multiply_0(this_0, fromInt_0(10));
              prec = prec + 1 | 0;
            }
            if (dot) {
              scl = scl + 1 | 0;
            }
          } else if (_Char___init__impl__6a9atx(49) <= c ? c <= _Char___init__impl__6a9atx(57) : false) {
            var digit = Char__minus_impl_a2frrh(c, _Char___init__impl__6a9atx(48));
            if (!(prec === 1) || !(rs === 0n)) {
              prec = prec + 1 | 0;
            }
            // Inline function 'kotlin.Long.times' call
            var this_1 = rs;
            // Inline function 'kotlin.Long.plus' call
            var this_2 = multiply_0(this_1, fromInt_0(10));
            rs = add_0(this_2, fromInt_0(digit));
            if (dot) {
              scl = scl + 1 | 0;
            }
          } else if (c === _Char___init__impl__6a9atx(46)) {
            if (dot) {
              throw NumberFormatException.xb('Character array contains more than one decimal point.');
            }
            dot = true;
          } else if (isDigit(c)) {
            var digit_0 = toDigit(c, 10);
            if (digit_0 === 0) {
              if (prec === 0) {
                prec = 1;
              } else if (!(rs === 0n)) {
                // Inline function 'kotlin.Long.times' call
                var this_3 = rs;
                rs = multiply_0(this_3, fromInt_0(10));
                prec = prec + 1 | 0;
              }
            } else {
              if (!(prec === 1) || !(rs === 0n)) {
                prec = prec + 1 | 0;
              }
              // Inline function 'kotlin.Long.times' call
              var this_4 = rs;
              // Inline function 'kotlin.Long.plus' call
              var this_5 = multiply_0(this_4, fromInt_0(10));
              rs = add_0(this_5, fromInt_0(digit_0));
            }
            if (dot) {
              scl = scl + 1 | 0;
            }
          } else if (c === _Char___init__impl__6a9atx(101) || c === _Char___init__impl__6a9atx(69)) {
            exp = parseExp(Companion_getInstance_21(), in_0, offset_0, len_0);
            if (!(fromInt_0(convertToInt(exp)) === exp)) {
              throw NumberFormatException.xb('Exponent overflow.');
            }
            break $l$loop;
          } else {
            throw NumberFormatException.xb('Character ' + toString(c) + ' is neither a decimal digit number, decimal point, nor' + ' "e" notation exponential mark.');
          }
          offset_0 = offset_0 + 1 | 0;
          len_0 = len_0 - 1 | 0;
        }
        if (prec === 0) {
          throw NumberFormatException.xb('No digits found.');
        }
        if (!(exp === 0n)) {
          scl = adjustScale($this, scl, exp);
        }
        rs = isneg ? negate_0(rs) : rs;
        var mcp = mc.precision;
        var drop = prec - mcp | 0;
        if (mcp > 0 && drop > 0) {
          while (drop > 0) {
            var tmp = Companion_getInstance_21();
            var tmp0 = fromInt_0(scl);
            // Inline function 'kotlin.Long.minus' call
            var other = drop;
            var tmp$ret$6 = subtract_0(tmp0, fromInt_0(other));
            scl = checkScaleNonZero(tmp, tmp$ret$6);
            rs = divideAndRound_0(Companion_getInstance_21(), rs, Companion_getInstance_21().ot_1[drop], mc.roundingMode.value);
            prec = Companion_getInstance_21().du(rs);
            drop = prec - mcp | 0;
          }
        }
      } else {
        var coeff = charArray(len_0);
        $l$loop_1: while (len_0 > 0) {
          c = in_0[offset_0];
          if ((_Char___init__impl__6a9atx(48) <= c ? c <= _Char___init__impl__6a9atx(57) : false) || isDigit(c)) {
            if (c === _Char___init__impl__6a9atx(48) || toDigit(c, 10) === 0) {
              if (prec === 0) {
                coeff[idx] = c;
                prec = 1;
              } else if (!(idx === 0)) {
                var _unary__edvuaz = idx;
                idx = _unary__edvuaz + 1 | 0;
                coeff[_unary__edvuaz] = c;
                prec = prec + 1 | 0;
              }
            } else {
              if (!(prec === 1) || !(idx === 0)) {
                prec = prec + 1 | 0;
              }
              var _unary__edvuaz_0 = idx;
              idx = _unary__edvuaz_0 + 1 | 0;
              coeff[_unary__edvuaz_0] = c;
            }
            if (dot) {
              scl = scl + 1 | 0;
            }
            offset_0 = offset_0 + 1 | 0;
            len_0 = len_0 - 1 | 0;
            continue $l$loop_1;
          }
          if (c === _Char___init__impl__6a9atx(46)) {
            if (dot) {
              throw NumberFormatException.xb('Character array contains more than one decimal point.');
            }
            dot = true;
            offset_0 = offset_0 + 1 | 0;
            len_0 = len_0 - 1 | 0;
            continue $l$loop_1;
          }
          if (!(c === _Char___init__impl__6a9atx(101)) && !(c === _Char___init__impl__6a9atx(69))) {
            throw NumberFormatException.xb('Character array is missing "e" notation exponential mark.');
          }
          exp = parseExp(Companion_getInstance_21(), in_0, offset_0, len_0);
          if (!(fromInt_0(convertToInt(exp)) === exp)) {
            throw NumberFormatException.xb('Exponent overflow.');
          }
          break $l$loop_1;
        }
        if (prec === 0) {
          throw NumberFormatException.xb('No digits found.');
        }
        if (!(exp === 0n)) {
          scl = adjustScale($this, scl, exp);
        }
        rb = CommonBigInteger.mv(coeff, isneg ? -1 : 1, prec);
        rs = compactValFor(Companion_getInstance_21(), rb);
        var mcp_0 = mc.precision;
        if (1 <= mcp_0 ? mcp_0 < prec : false) {
          if (rs === -9223372036854775808n) {
            var drop_0 = prec - mcp_0 | 0;
            $l$loop_2: while (drop_0 > 0) {
              var tmp_0 = Companion_getInstance_21();
              var tmp0_0 = fromInt_0(scl);
              // Inline function 'kotlin.Long.minus' call
              var other_0 = drop_0;
              var tmp$ret$7 = subtract_0(tmp0_0, fromInt_0(other_0));
              scl = checkScaleNonZero(tmp_0, tmp$ret$7);
              rb = divideAndRoundByTenPow(Companion_getInstance_21(), ensureNotNull(rb), drop_0, mc.roundingMode.value);
              rs = compactValFor(Companion_getInstance_21(), rb);
              if (!(rs === -9223372036854775808n)) {
                prec = Companion_getInstance_21().du(rs);
                break $l$loop_2;
              }
              prec = bigDigitLength(Companion_getInstance_21(), rb);
              drop_0 = prec - mcp_0 | 0;
            }
          }
          if (!(rs === -9223372036854775808n)) {
            var drop_1 = prec - mcp_0 | 0;
            while (drop_1 > 0) {
              var tmp_1 = Companion_getInstance_21();
              var tmp0_1 = fromInt_0(scl);
              // Inline function 'kotlin.Long.minus' call
              var other_1 = drop_1;
              var tmp$ret$8 = subtract_0(tmp0_1, fromInt_0(other_1));
              scl = checkScaleNonZero(tmp_1, tmp$ret$8);
              rs = divideAndRound_0(Companion_getInstance_21(), rs, Companion_getInstance_21().ot_1[drop_1], mc.roundingMode.value);
              prec = Companion_getInstance_21().du(rs);
              drop_1 = prec - mcp_0 | 0;
            }
            rb = null;
          }
        }
      }
    } catch ($p) {
      if ($p instanceof IndexOutOfBoundsException) {
        var e = $p;
        var nfe = NumberFormatException.wb();
        throw nfe;
      } else {
        if ($p instanceof RuntimeException) {
          var e_0 = $p;
          var nfe_0 = NumberFormatException.wb();
          throw nfe_0;
        } else {
          throw $p;
        }
      }
    }
    $this.wt_1 = scl;
    $this.xt_1 = prec;
    $this.zt_1 = rs;
    $this.vt_1 = rb;
    return $this;
  }
  static gv(val) {
    Companion_getInstance_21();
    return this.lv(toCharArray_0(val), 0, val.length);
  }
  static fv(val, mc) {
    Companion_getInstance_21();
    return this.lv(toCharArray_0(val), 0, val.length, mc);
  }
  static ev(val, mc) {
    Companion_getInstance_21();
    mc = mc === VOID ? Companion_getInstance_23().UNLIMITED : mc;
    var $this = createThis(this);
    init_com_macrofocus_common_math_big_CommonBigDecimal($this);
    if (isInfinite(val) || isInfinite(val)) {
      throw NumberFormatException.xb('Infinite or NaN');
    }
    var valBits = toBits(val);
    var sign = shiftRight(valBits, 63) === 0n ? 1 : -1;
    var exponent = convertToInt(shiftRight(valBits, 52) & 2047n);
    var tmp;
    if (exponent === 0) {
      // Inline function 'kotlin.Long.minus' call
      var this_0 = 4503599627370496n;
      var tmp$ret$0 = subtract_0(this_0, fromInt_0(1));
      tmp = shiftLeft(valBits & tmp$ret$0, 1);
    } else {
      // Inline function 'kotlin.Long.minus' call
      var this_1 = 4503599627370496n;
      tmp = valBits & subtract_0(this_1, fromInt_0(1)) | 4503599627370496n;
    }
    var significand = tmp;
    exponent = exponent - 1075 | 0;
    if (significand === 0n) {
      $this.vt_1 = Companion_getInstance_22().ZERO;
      $this.wt_1 = 0;
      $this.zt_1 = 0n;
      $this.xt_1 = 1;
      return $this;
    }
    while ((significand & 1n) === 0n) {
      significand = shiftRight(significand, 1);
      exponent = exponent + 1 | 0;
    }
    var scl = 0;
    var rb;
    var compactVal = multiply_0(numberToLong(sign), significand);
    if (exponent === 0) {
      rb = compactVal === -9223372036854775808n ? Companion_getInstance_21().gt_1 : null;
    } else {
      if (exponent < 0) {
        rb = Companion_getInstance_22().of(5).pow(-exponent | 0).uu(compactVal);
        scl = -exponent | 0;
      } else {
        rb = Companion_getInstance_22().TWO.pow(exponent).uu(compactVal);
      }
      compactVal = compactValFor(Companion_getInstance_21(), rb);
    }
    var prec = 0;
    var mcp = mc.precision;
    if (mcp > 0) {
      var mode = mc.roundingMode.value;
      var drop;
      if (compactVal === -9223372036854775808n) {
        prec = bigDigitLength(Companion_getInstance_21(), ensureNotNull(rb));
        drop = prec - mcp | 0;
        $l$loop: while (drop > 0) {
          var tmp_0 = Companion_getInstance_21();
          var tmp0 = fromInt_0(scl);
          // Inline function 'kotlin.Long.minus' call
          var other = drop;
          var tmp$ret$2 = subtract_0(tmp0, fromInt_0(other));
          scl = checkScaleNonZero(tmp_0, tmp$ret$2);
          rb = divideAndRoundByTenPow(Companion_getInstance_21(), ensureNotNull(rb), drop, mode);
          compactVal = compactValFor(Companion_getInstance_21(), rb);
          if (!(compactVal === -9223372036854775808n)) {
            break $l$loop;
          }
          prec = bigDigitLength(Companion_getInstance_21(), rb);
          drop = prec - mcp | 0;
        }
      }
      if (!(compactVal === -9223372036854775808n)) {
        prec = Companion_getInstance_21().du(compactVal);
        drop = prec - mcp | 0;
        while (drop > 0) {
          var tmp_1 = Companion_getInstance_21();
          var tmp0_0 = fromInt_0(scl);
          // Inline function 'kotlin.Long.minus' call
          var other_0 = drop;
          var tmp$ret$3 = subtract_0(tmp0_0, fromInt_0(other_0));
          scl = checkScaleNonZero(tmp_1, tmp$ret$3);
          compactVal = divideAndRound_0(Companion_getInstance_21(), compactVal, Companion_getInstance_21().ot_1[drop], mc.roundingMode.value);
          prec = Companion_getInstance_21().du(compactVal);
          drop = prec - mcp | 0;
        }
        rb = null;
      }
    }
    $this.vt_1 = rb;
    $this.zt_1 = compactVal;
    $this.wt_1 = scl;
    $this.xt_1 = prec;
    return $this;
  }
  static jv(val) {
    Companion_getInstance_21();
    var $this = createThis(this);
    init_com_macrofocus_common_math_big_CommonBigDecimal($this);
    $this.wt_1 = 0;
    $this.vt_1 = val;
    $this.zt_1 = compactValFor(Companion_getInstance_21(), val);
    return $this;
  }
  static iv(val, mc) {
    Companion_getInstance_21();
    return this.nv(val, 0, mc);
  }
  static tu(unscaledVal, scale) {
    Companion_getInstance_21();
    var $this = createThis(this);
    init_com_macrofocus_common_math_big_CommonBigDecimal($this);
    $this.vt_1 = unscaledVal;
    $this.zt_1 = compactValFor(Companion_getInstance_21(), unscaledVal);
    $this.wt_1 = scale;
    return $this;
  }
  static nv(unscaledVal, scale, mc) {
    Companion_getInstance_21();
    var $this = createThis(this);
    init_com_macrofocus_common_math_big_CommonBigDecimal($this);
    var unscaledVal_0 = unscaledVal;
    var scale_0 = scale;
    var compactVal = compactValFor(Companion_getInstance_21(), ensureNotNull(unscaledVal_0));
    var mcp = mc.precision;
    var prec = 0;
    if (mcp > 0) {
      var mode = mc.roundingMode.value;
      if (compactVal === -9223372036854775808n) {
        prec = bigDigitLength(Companion_getInstance_21(), unscaledVal_0);
        var drop = prec - mcp | 0;
        $l$loop: while (drop > 0) {
          var tmp = Companion_getInstance_21();
          var tmp0 = fromInt_0(scale_0);
          // Inline function 'kotlin.Long.minus' call
          var other = drop;
          var tmp$ret$0 = subtract_0(tmp0, fromInt_0(other));
          scale_0 = checkScaleNonZero(tmp, tmp$ret$0);
          unscaledVal_0 = divideAndRoundByTenPow(Companion_getInstance_21(), ensureNotNull(unscaledVal_0), drop, mode);
          compactVal = compactValFor(Companion_getInstance_21(), unscaledVal_0);
          if (!(compactVal === -9223372036854775808n)) {
            break $l$loop;
          }
          prec = bigDigitLength(Companion_getInstance_21(), unscaledVal_0);
          drop = prec - mcp | 0;
        }
      }
      if (!(compactVal === -9223372036854775808n)) {
        prec = Companion_getInstance_21().du(compactVal);
        var drop_0 = prec - mcp | 0;
        while (drop_0 > 0) {
          var tmp_0 = Companion_getInstance_21();
          var tmp0_0 = fromInt_0(scale_0);
          // Inline function 'kotlin.Long.minus' call
          var other_0 = drop_0;
          var tmp$ret$1 = subtract_0(tmp0_0, fromInt_0(other_0));
          scale_0 = checkScaleNonZero(tmp_0, tmp$ret$1);
          compactVal = divideAndRound_0(Companion_getInstance_21(), compactVal, Companion_getInstance_21().ot_1[drop_0], mode);
          prec = Companion_getInstance_21().du(compactVal);
          drop_0 = prec - mcp | 0;
        }
        unscaledVal_0 = null;
      }
    }
    $this.vt_1 = unscaledVal_0;
    $this.zt_1 = compactVal;
    $this.wt_1 = scale_0;
    $this.xt_1 = prec;
    return $this;
  }
  static kv(val, mc) {
    Companion_getInstance_21();
    var $this = createThis(this);
    init_com_macrofocus_common_math_big_CommonBigDecimal($this);
    var val_0 = val;
    var mcp = mc.precision;
    var mode = mc.roundingMode.value;
    var prec = 0;
    var scl = 0;
    var rb = val_0 === -9223372036854775808n ? Companion_getInstance_21().gt_1 : null;
    if (mcp > 0) {
      if (val_0 === -9223372036854775808n) {
        prec = 19;
        var drop = prec - mcp | 0;
        $l$loop: while (drop > 0) {
          var tmp = Companion_getInstance_21();
          var tmp0 = fromInt_0(scl);
          // Inline function 'kotlin.Long.minus' call
          var other = drop;
          var tmp$ret$0 = subtract_0(tmp0, fromInt_0(other));
          scl = checkScaleNonZero(tmp, tmp$ret$0);
          rb = divideAndRoundByTenPow(Companion_getInstance_21(), ensureNotNull(rb), drop, mode);
          val_0 = compactValFor(Companion_getInstance_21(), rb);
          if (!(val_0 === -9223372036854775808n)) {
            break $l$loop;
          }
          prec = bigDigitLength(Companion_getInstance_21(), rb);
          drop = prec - mcp | 0;
        }
      }
      if (!(val_0 === -9223372036854775808n)) {
        prec = Companion_getInstance_21().du(val_0);
        var drop_0 = prec - mcp | 0;
        while (drop_0 > 0) {
          var tmp_0 = Companion_getInstance_21();
          var tmp0_0 = fromInt_0(scl);
          // Inline function 'kotlin.Long.minus' call
          var other_0 = drop_0;
          var tmp$ret$1 = subtract_0(tmp0_0, fromInt_0(other_0));
          scl = checkScaleNonZero(tmp_0, tmp$ret$1);
          val_0 = divideAndRound_0(Companion_getInstance_21(), val_0, Companion_getInstance_21().ot_1[drop_0], mc.roundingMode.value);
          prec = Companion_getInstance_21().du(val_0);
          drop_0 = prec - mcp | 0;
        }
        rb = null;
      }
    }
    $this.vt_1 = rb;
    $this.zt_1 = val_0;
    $this.wt_1 = scl;
    $this.xt_1 = prec;
    return $this;
  }
  plus(augend) {
    // Inline function 'com.macrofocus.common.math.big.castTo' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var augend_0 = ensureNotNull(augend);
    var tmp;
    if (!(this.zt_1 === -9223372036854775808n)) {
      var tmp_0;
      if (!(augend_0.zt_1 === -9223372036854775808n)) {
        tmp_0 = sum_1(Companion_getInstance_21(), this.zt_1, this.wt_1, augend_0.zt_1, augend_0.wt_1);
      } else {
        tmp_0 = sum_2(Companion_getInstance_21(), this.zt_1, this.wt_1, ensureNotNull(augend_0.vt_1), augend_0.wt_1);
      }
      tmp = tmp_0;
    } else {
      var tmp_1;
      if (!(augend_0.zt_1 === -9223372036854775808n)) {
        tmp_1 = sum_2(Companion_getInstance_21(), augend_0.zt_1, augend_0.wt_1, ensureNotNull(this.vt_1), this.wt_1);
      } else {
        tmp_1 = sum_3(Companion_getInstance_21(), this.vt_1, this.wt_1, augend_0.vt_1, augend_0.wt_1);
      }
      tmp = tmp_1;
    }
    return tmp;
  }
  plusWithContext(augend, mc) {
    // Inline function 'com.macrofocus.common.math.big.castTo' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var augend_0 = ensureNotNull(augend);
    if (mc.precision === 0) {
      return this.plus(augend_0);
    }
    var lhs = this;
    // Inline function 'kotlin.run' call
    var lhsIsZero = lhs.signum === 0;
    var augendIsZero = augend_0.signum === 0;
    if (lhsIsZero || augendIsZero) {
      var tmp0 = lhs.scale;
      // Inline function 'kotlin.math.max' call
      var b = augend_0.scale;
      var preferredScale = Math.max(tmp0, b);
      var result = lhsIsZero ? doRound(Companion_getInstance_21(), augend_0, mc) : doRound(Companion_getInstance_21(), lhs, mc);
      if (lhsIsZero && augendIsZero) {
        return Companion_getInstance_21().wu(preferredScale);
      }
      if (ensureNotNull(result).scale === preferredScale) {
        return result;
      } else if (result.scale > preferredScale) {
        return stripZerosToMatchScale(Companion_getInstance_21(), result.vt_1, result.zt_1, result.wt_1, preferredScale);
      } else {
        var precisionDiff = mc.precision - result.precision | 0;
        var scaleDiff = preferredScale - result.scale | 0;
        var tmp;
        if (precisionDiff >= scaleDiff) {
          tmp = result.setScale(preferredScale);
        } else {
          tmp = result.setScale(result.scale + precisionDiff | 0);
        }
        return tmp;
      }
    }
    var tmp0_0 = fromInt_0(lhs.wt_1);
    // Inline function 'kotlin.Long.minus' call
    var other = augend_0.wt_1;
    var padding = subtract_0(tmp0_0, fromInt_0(other));
    if (!(padding === 0n)) {
      var arg = preAlign(this, lhs, augend_0, padding, mc);
      matchScale(Companion_getInstance_21(), arg);
      lhs = arg[0];
      augend_0 = arg[1];
    }
    return doRound_1(Companion_getInstance_21(), inflated(lhs).plus(inflated(augend_0)), lhs.wt_1, mc);
  }
  minus(subtrahend) {
    // Inline function 'com.macrofocus.common.math.big.castTo' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var subtrahend_0 = subtrahend;
    var tmp;
    if (!(this.zt_1 === -9223372036854775808n)) {
      var tmp_0;
      if (!(subtrahend_0.zt_1 === -9223372036854775808n)) {
        tmp_0 = sum_1(Companion_getInstance_21(), this.zt_1, this.wt_1, negate_0(subtrahend_0.zt_1), subtrahend_0.wt_1);
      } else {
        tmp_0 = sum_2(Companion_getInstance_21(), this.zt_1, this.wt_1, ensureNotNull(subtrahend_0.vt_1).unaryMinus(), subtrahend_0.wt_1);
      }
      tmp = tmp_0;
    } else {
      var tmp_1;
      if (!(subtrahend_0.zt_1 === -9223372036854775808n)) {
        tmp_1 = sum_2(Companion_getInstance_21(), negate_0(subtrahend_0.zt_1), subtrahend_0.wt_1, ensureNotNull(this.vt_1), this.wt_1);
      } else {
        tmp_1 = sum_3(Companion_getInstance_21(), this.vt_1, this.wt_1, ensureNotNull(subtrahend_0.vt_1).unaryMinus(), subtrahend_0.wt_1);
      }
      tmp = tmp_1;
    }
    return tmp;
  }
  minusWithContext(subtrahend, mc) {
    // Inline function 'com.macrofocus.common.math.big.castTo' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var subtrahend_0 = subtrahend;
    return mc.precision === 0 ? this.minus(subtrahend_0) : this.plusWithContext(subtrahend_0.unaryMinus(), mc);
  }
  times(multiplicand) {
    // Inline function 'com.macrofocus.common.math.big.castTo' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var multiplicand_0 = ensureNotNull(multiplicand);
    var tmp0 = fromInt_0(this.wt_1);
    // Inline function 'kotlin.Long.plus' call
    var other = multiplicand_0.wt_1;
    var tmp$ret$3 = add_0(tmp0, fromInt_0(other));
    var productScale = checkScale_1(this, tmp$ret$3);
    var tmp;
    if (!(this.zt_1 === -9223372036854775808n)) {
      var tmp_0;
      if (!(multiplicand_0.zt_1 === -9223372036854775808n)) {
        tmp_0 = multiply_2(Companion_getInstance_21(), this.zt_1, multiplicand_0.zt_1, productScale);
      } else {
        tmp_0 = multiply_3(Companion_getInstance_21(), this.zt_1, multiplicand_0.vt_1, productScale);
      }
      tmp = tmp_0;
    } else {
      var tmp_1;
      if (!(multiplicand_0.zt_1 === -9223372036854775808n)) {
        tmp_1 = multiply_3(Companion_getInstance_21(), multiplicand_0.zt_1, this.vt_1, productScale);
      } else {
        tmp_1 = multiply_4(Companion_getInstance_21(), ensureNotNull(this.vt_1), multiplicand_0.vt_1, productScale);
      }
      tmp = tmp_1;
    }
    return tmp;
  }
  timesWithContext(multiplicand, mc) {
    // Inline function 'com.macrofocus.common.math.big.castTo' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var multiplicand_0 = multiplicand;
    if (mc.precision === 0) {
      return this.times(multiplicand_0);
    }
    var tmp0 = fromInt_0(this.wt_1);
    // Inline function 'kotlin.Long.plus' call
    var other = multiplicand_0.wt_1;
    var tmp$ret$3 = add_0(tmp0, fromInt_0(other));
    var productScale = checkScale_1(this, tmp$ret$3);
    var tmp;
    if (!(this.zt_1 === -9223372036854775808n)) {
      var tmp_0;
      if (!(multiplicand_0.zt_1 === -9223372036854775808n)) {
        tmp_0 = multiplyAndRound(Companion_getInstance_21(), this.zt_1, multiplicand_0.zt_1, productScale, mc);
      } else {
        tmp_0 = multiplyAndRound_0(Companion_getInstance_21(), this.zt_1, multiplicand_0.vt_1, productScale, mc);
      }
      tmp = tmp_0;
    } else {
      var tmp_1;
      if (!(multiplicand_0.zt_1 === -9223372036854775808n)) {
        tmp_1 = multiplyAndRound_0(Companion_getInstance_21(), multiplicand_0.zt_1, this.vt_1, productScale, mc);
      } else {
        tmp_1 = multiplyAndRound_1(Companion_getInstance_21(), ensureNotNull(this.vt_1), multiplicand_0.vt_1, productScale, mc);
      }
      tmp = tmp_1;
    }
    return tmp;
  }
  div(divisor) {
    // Inline function 'com.macrofocus.common.math.big.castTo' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var divisor_0 = divisor;
    if (divisor_0.signum === 0) {
      if (this.signum === 0) {
        throw ArithmeticException.cc('Division undefined');
      }
      throw ArithmeticException.cc('Division by zero');
    }
    var tmp = Companion_getInstance_21();
    var tmp0 = fromInt_0(this.wt_1);
    // Inline function 'kotlin.Long.minus' call
    var other = divisor_0.wt_1;
    var tmp$ret$3 = subtract_0(tmp0, fromInt_0(other));
    var preferredScale = saturateLong(tmp, tmp$ret$3);
    if (this.signum === 0) {
      return Companion_getInstance_21().wu(preferredScale);
    } else {
      var tmp_0 = this.precision;
      // Inline function 'kotlin.math.ceil' call
      var x = 10.0 * divisor_0.precision / 3.0;
      var tmp$ret$4 = Math.ceil(x);
      var tmp0_0 = add_0(numberToLong(tmp_0), numberToLong(tmp$ret$4));
      // Inline function 'kotlin.math.min' call
      var b = 2147483647n;
      var tmp$ret$5 = tmp0_0 <= b ? tmp0_0 : b;
      var mc = new MathContext(convertToInt(tmp$ret$5), RoundingMode_UNNECESSARY_getInstance());
      var quotient;
      try {
        quotient = this.divWithContext(divisor_0, mc);
      } catch ($p) {
        if ($p instanceof ArithmeticException) {
          var e = $p;
          throw ArithmeticException.cc('Non-terminating decimal expansion; no exact representable decimal result.');
        } else {
          throw $p;
        }
      }
      var quotientScale = ensureNotNull(quotient).scale;
      var tmp_1;
      if (preferredScale > quotientScale) {
        tmp_1 = quotient.setScaleInt(preferredScale, RoundingMode_UNNECESSARY_getInstance().value);
      } else {
        tmp_1 = quotient;
      }
      return tmp_1;
    }
  }
  divWithContext(divisor, mc) {
    // Inline function 'com.macrofocus.common.math.big.castTo' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var divisor_0 = divisor;
    var mcp = mc.precision;
    if (mcp === 0) {
      return this.div(divisor_0);
    }
    var dividend = this;
    var tmp0 = fromInt_0(dividend.wt_1);
    // Inline function 'kotlin.Long.minus' call
    var other = divisor_0.wt_1;
    var preferredScale = subtract_0(tmp0, fromInt_0(other));
    if (divisor_0.signum === 0) {
      if (dividend.signum === 0) {
        throw ArithmeticException.cc('Division undefined');
      }
      throw ArithmeticException.cc('Division by zero');
    }
    if (dividend.signum === 0) {
      return Companion_getInstance_21().wu(saturateLong(Companion_getInstance_21(), preferredScale));
    }
    var xscale = dividend.precision;
    var yscale = divisor_0.precision;
    var tmp;
    if (!(dividend.zt_1 === -9223372036854775808n)) {
      var tmp_0;
      if (!(divisor_0.zt_1 === -9223372036854775808n)) {
        tmp_0 = divide_0(Companion_getInstance_21(), dividend.zt_1, xscale, divisor_0.zt_1, yscale, preferredScale, mc);
      } else {
        tmp_0 = divide_2(Companion_getInstance_21(), dividend.zt_1, xscale, divisor_0.vt_1, yscale, preferredScale, mc);
      }
      tmp = tmp_0;
    } else {
      var tmp_1;
      if (!(divisor_0.zt_1 === -9223372036854775808n)) {
        tmp_1 = divide_1(Companion_getInstance_21(), dividend.vt_1, xscale, divisor_0.zt_1, yscale, preferredScale, mc);
      } else {
        tmp_1 = divide_3(Companion_getInstance_21(), dividend.vt_1, xscale, divisor_0.vt_1, yscale, preferredScale, mc);
      }
      tmp = tmp_1;
    }
    return tmp;
  }
  divideToIntegralValue(divisor) {
    // Inline function 'com.macrofocus.common.math.big.castTo' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var divisor_0 = divisor;
    var tmp = Companion_getInstance_21();
    var tmp0 = fromInt_0(this.wt_1);
    // Inline function 'kotlin.Long.minus' call
    var other = divisor_0.wt_1;
    var tmp$ret$3 = subtract_0(tmp0, fromInt_0(other));
    var preferredScale = saturateLong(tmp, tmp$ret$3);
    if (compareMagnitude(this, divisor_0) < 0) {
      return Companion_getInstance_21().wu(preferredScale);
    }
    if (this.signum === 0 && !(divisor_0.signum === 0)) {
      return this.setScaleInt(preferredScale, RoundingMode_UNNECESSARY_getInstance().value);
    }
    var tmp_0 = fromInt_0(this.precision);
    // Inline function 'kotlin.math.ceil' call
    var x = 10.0 * divisor_0.precision / 3.0;
    var tmp$ret$4 = Math.ceil(x);
    var tmp_1 = add_0(tmp_0, numberToLong(tmp$ret$4));
    var tmp0_0 = fromInt_0(this.scale);
    // Inline function 'kotlin.Long.minus' call
    var other_0 = divisor_0.scale;
    var tmp$ret$5 = subtract_0(tmp0_0, fromInt_0(other_0));
    // Inline function 'kotlin.Long.plus' call
    var this_0 = add_0(tmp_1, abs_1(tmp$ret$5));
    var tmp0_1 = add_0(this_0, fromInt_0(2));
    // Inline function 'kotlin.math.min' call
    var b = 2147483647n;
    var tmp$ret$7 = tmp0_1 <= b ? tmp0_1 : b;
    var maxDigits = convertToInt(tmp$ret$7);
    var quotient = this.divWithContext(divisor_0, new MathContext(maxDigits, RoundingMode_DOWN_getInstance()));
    if (ensureNotNull(quotient).wt_1 > 0) {
      quotient = quotient.setScaleRounding(0, RoundingMode_DOWN_getInstance());
      quotient = stripZerosToMatchScale(Companion_getInstance_21(), quotient.vt_1, quotient.zt_1, quotient.wt_1, preferredScale);
    }
    if (quotient.wt_1 < preferredScale) {
      quotient = quotient.setScaleInt(preferredScale, RoundingMode_UNNECESSARY_getInstance().value);
    }
    return quotient;
  }
  divideToIntegralValueWithContext(divisor, mc) {
    // Inline function 'com.macrofocus.common.math.big.castTo' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var divisor_0 = divisor;
    if (mc.precision === 0 || compareMagnitude(this, divisor_0) < 0) {
      return this.divideToIntegralValue(divisor_0);
    }
    var tmp = Companion_getInstance_21();
    var tmp0 = fromInt_0(this.wt_1);
    // Inline function 'kotlin.Long.minus' call
    var other = divisor_0.wt_1;
    var tmp$ret$3 = subtract_0(tmp0, fromInt_0(other));
    var preferredScale = saturateLong(tmp, tmp$ret$3);
    var result = this.divWithContext(divisor_0, new MathContext(mc.precision, RoundingMode_DOWN_getInstance()));
    if (ensureNotNull(result).scale < 0) {
      var product = result.times(divisor_0);
      if (compareMagnitude(this.minus(product), divisor_0) >= 0) {
        throw ArithmeticException.cc('Division impossible');
      }
    } else if (result.scale > 0) {
      result = result.setScaleRounding(0, RoundingMode_DOWN_getInstance());
    }
    var precisionDiff;
    if (preferredScale > result.scale) {
      precisionDiff = mc.precision - result.precision | 0;
      if (precisionDiff > 0) {
        var tmp_0 = result;
        var tmp_1 = result.scale;
        // Inline function 'kotlin.math.min' call
        var b = preferredScale - result.wt_1 | 0;
        var tmp$ret$4 = Math.min(precisionDiff, b);
        return tmp_0.setScale(tmp_1 + tmp$ret$4 | 0);
      }
    }
    return stripZerosToMatchScale(Companion_getInstance_21(), result.vt_1, result.zt_1, result.wt_1, preferredScale);
  }
  rem(divisor) {
    var divrem = this.divideAndRemainder(divisor);
    return divrem.second;
  }
  remWithContext(divisor, mc) {
    var divrem = this.divideAndRemainderWithContext(divisor, mc);
    return divrem.second;
  }
  divideAndRemainder(divisor) {
    var temp = this.divideToIntegralValue(divisor);
    return new Pair(temp, temp.times(divisor));
  }
  divideAndRemainderWithContext(divisor, mc) {
    // Inline function 'com.macrofocus.common.math.big.castTo' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var divisor_0 = divisor;
    if (mc.precision === 0) {
      return this.divideAndRemainder(divisor_0);
    }
    var lhs = this;
    var temp = lhs.divideToIntegralValueWithContext(divisor_0, mc);
    return new Pair(temp, lhs.minus(temp.times(divisor_0)));
  }
  rq(mc) {
    var signum = this.signum;
    if (signum === 1) {
      var preferredScale = this.scale / 2 | 0;
      var zeroWithFinalPreferredScale = Companion_getInstance_21().ofScaledLong(0n, preferredScale);
      var stripped = this.stripTrailingZeros();
      var strippedScale = stripped.scale;
      if (_get_isPowerOfTen__mg2oyo(stripped) && (strippedScale % 2 | 0) === 0) {
        var result = Companion_getInstance_21().ofScaledLong(1n, strippedScale / 2 | 0);
        if (!(result.scale === preferredScale)) {
          result = result.plusWithContext(zeroWithFinalPreferredScale, mc);
        }
        return result;
      }
      var scale = (stripped.scale - stripped.precision | 0) + 1 | 0;
      var tmp;
      if ((scale % 2 | 0) === 0) {
        tmp = scale;
      } else {
        tmp = scale - 1 | 0;
      }
      var scaleAdjust = tmp;
      var working = stripped.scaleByPowerOfTen(scaleAdjust);
      // Inline function 'kotlin.require' call
      // Inline function 'kotlin.require' call
      if (!(Companion_getInstance_21().ONE_TENTH.sq(working) <= 0 && working.sq(Companion_getInstance_21().TEN) < 0)) {
        var message = 'Failed requirement.';
        throw IllegalArgumentException.w(toString_1(message));
      }
      // Inline function 'kotlin.math.sqrt' call
      var x = working.toDouble();
      var tmp$ret$3 = Math.sqrt(x);
      var guess = CommonBigDecimal.ev(tmp$ret$3);
      var guessPrecision = 15;
      var originalPrecision = mc.precision;
      var targetPrecision;
      if (originalPrecision === 0) {
        targetPrecision = (stripped.precision / 2 | 0) + 1 | 0;
      } else {
        targetPrecision = originalPrecision;
      }
      var approx = guess;
      var workingPrecision = working.precision;
      do {
        var tmp0 = guessPrecision;
        // Inline function 'kotlin.math.max' call
        var b = targetPrecision + 2 | 0;
        // Inline function 'kotlin.math.max' call
        var a = Math.max(tmp0, b);
        var tmpPrecision = Math.max(a, workingPrecision);
        var mcTmp = new MathContext(tmpPrecision, RoundingMode_HALF_EVEN_getInstance());
        approx = Companion_getInstance_21().ONE_HALF.times(approx.plusWithContext(working.divWithContext(approx, mcTmp), mcTmp));
        guessPrecision = imul_0(guessPrecision, 2);
      }
       while (guessPrecision < (targetPrecision + 2 | 0));
      var result_0;
      var targetRm = mc.roundingMode;
      if (targetRm === RoundingMode_UNNECESSARY_getInstance() || originalPrecision === 0) {
        var tmpRm = targetRm === RoundingMode_UNNECESSARY_getInstance() ? RoundingMode_DOWN_getInstance() : targetRm;
        var mcTmp_0 = new MathContext(targetPrecision, tmpRm);
        result_0 = approx.scaleByPowerOfTen((-scaleAdjust | 0) / 2 | 0).round(mcTmp_0);
        if (!(this.minus(ensureNotNull(result_0).times(result_0)).sq(Companion_getInstance_21().ZERO) === 0)) {
          throw ArithmeticException.cc('Computed square root not exact.');
        }
      } else {
        result_0 = approx.scaleByPowerOfTen((-scaleAdjust | 0) / 2 | 0).round(mc);
      }
      if (!(ensureNotNull(result_0).scale === preferredScale)) {
        result_0 = result_0.stripTrailingZeros().plusWithContext(zeroWithFinalPreferredScale, new MathContext(originalPrecision, RoundingMode_UNNECESSARY_getInstance()));
      }
      // Inline function 'kotlin.require' call
      // Inline function 'kotlin.require' call
      if (!squareRootResultAssertions(this, result_0, mc)) {
        var message_0 = 'Failed requirement.';
        throw IllegalArgumentException.w(toString_1(message_0));
      }
      return result_0;
    } else {
      switch (signum) {
        case -1:
          throw ArithmeticException.cc('Attempted square root of negative CommonBigDecimal');
        case 0:
          return Companion_getInstance_21().ofScaledLong(0n, this.scale / 2 | 0);
        default:
          throw AssertionError.hc('Bad value from _signum');
      }
    }
  }
  pow(n) {
    if (n < 0 || n > 999999999) {
      throw ArithmeticException.cc('Invalid operation');
    }
    // Inline function 'kotlin.Long.times' call
    var this_0 = fromInt_0(this.wt_1);
    var tmp$ret$0 = multiply_0(this_0, fromInt_0(n));
    var newScale = checkScale_1(this, tmp$ret$0);
    return CommonBigDecimal.tu(inflated(this).pow(n), newScale);
  }
  powWithContext(n, mc) {
    if (mc.precision === 0) {
      return this.pow(n);
    }
    if (n < -999999999 || n > 999999999) {
      throw ArithmeticException.cc('Invalid operation');
    }
    if (n === 0) {
      return Companion_getInstance_21().ONE;
    }
    var lhs = this;
    var workmc = mc;
    var mag = abs_0(n);
    if (mc.precision > 0) {
      var elength = Companion_getInstance_21().du(fromInt_0(mag));
      if (elength > mc.precision) {
        throw ArithmeticException.cc('Invalid operation');
      }
      workmc = new MathContext((mc.precision + elength | 0) + 1 | 0, mc.roundingMode);
    }
    var acc = Companion_getInstance_21().ONE;
    var seenbit = false;
    var i = 1;
    $l$loop: while (true) {
      mag = mag + mag | 0;
      if (mag < 0) {
        seenbit = true;
        acc = acc.timesWithContext(lhs, workmc);
      }
      if (i === 31) {
        break $l$loop;
      }
      if (seenbit) {
        acc = acc.timesWithContext(acc, workmc);
      }
      i = i + 1 | 0;
    }
    if (n < 0) {
      acc = ensureNotNull(Companion_getInstance_21().ONE.divWithContext(acc, workmc));
    }
    return doRound(Companion_getInstance_21(), acc, mc);
  }
  mq() {
    return this.signum < 0 ? this.unaryMinus() : this;
  }
  absoluteValueWithContext(mc) {
    return this.signum < 0 ? this.unaryMinusWithContext(mc) : this.unaryPlusWithContext(mc);
  }
  unaryMinus() {
    var tmp;
    if (this.zt_1 === -9223372036854775808n) {
      tmp = CommonBigDecimal.eu(ensureNotNull(this.vt_1).unaryMinus(), -9223372036854775808n, this.wt_1, this.xt_1);
    } else {
      tmp = Companion_getInstance_21().ofScaledLongWithPrecision(negate_0(this.zt_1), this.wt_1, this.xt_1);
    }
    return tmp;
  }
  unaryMinusWithContext(mc) {
    return this.unaryMinus().unaryPlusWithContext(mc);
  }
  unaryPlus() {
    return this;
  }
  unaryPlusWithContext(mc) {
    return mc.precision === 0 ? this : doRound(Companion_getInstance_21(), this, mc);
  }
  nq() {
    var tmp;
    if (!(this.zt_1 === -9223372036854775808n)) {
      tmp = get_sign(this.zt_1);
    } else {
      tmp = ensureNotNull(this.vt_1).signum;
    }
    return tmp;
  }
  oq() {
    return this.wt_1;
  }
  pq() {
    var result = this.xt_1;
    if (result === 0) {
      var s = this.zt_1;
      if (!(s === -9223372036854775808n)) {
        result = Companion_getInstance_21().du(s);
      } else {
        result = bigDigitLength(Companion_getInstance_21(), ensureNotNull(this.vt_1));
      }
      this.xt_1 = result;
    }
    return result;
  }
  qq() {
    return inflated(this);
  }
  round(mc) {
    return this.unaryPlusWithContext(mc);
  }
  setScaleRounding(newScale, roundingMode) {
    return this.setScaleInt(newScale, roundingMode.value);
  }
  setScaleInt(newScale, roundingMode) {
    if (roundingMode < RoundingMode_UP_getInstance().value || roundingMode > RoundingMode_UNNECESSARY_getInstance().value) {
      throw IllegalArgumentException.w('Invalid rounding mode');
    }
    var oldScale = this.wt_1;
    if (newScale === oldScale) {
      return this;
    }
    if (this.signum === 0) {
      return Companion_getInstance_21().wu(newScale);
    }
    if (!(this.zt_1 === -9223372036854775808n)) {
      var rs = this.zt_1;
      if (newScale > oldScale) {
        // Inline function 'kotlin.Long.minus' call
        var this_0 = fromInt_0(newScale);
        var tmp$ret$0 = subtract_0(this_0, fromInt_0(oldScale));
        var raise = checkScale_1(this, tmp$ret$0);
        rs = longMultiplyPowerTen(Companion_getInstance_21(), rs, raise);
        if (!(rs === -9223372036854775808n)) {
          return Companion_getInstance_21().ofScaledLong(rs, newScale);
        }
        var rb = bigMultiplyPowerTen_1(this, raise);
        return CommonBigDecimal.eu(rb, -9223372036854775808n, newScale, this.xt_1 > 0 ? this.xt_1 + raise | 0 : 0);
      } else {
        // Inline function 'kotlin.Long.minus' call
        var this_1 = fromInt_0(oldScale);
        var tmp$ret$1 = subtract_0(this_1, fromInt_0(newScale));
        var drop = checkScale_1(this, tmp$ret$1);
        var tmp;
        if (drop < Companion_getInstance_21().ot_1.length) {
          tmp = divideAndRound(Companion_getInstance_21(), rs, Companion_getInstance_21().ot_1[drop], newScale, roundingMode, newScale);
        } else {
          tmp = divideAndRound_4(Companion_getInstance_21(), inflated(this), bigTenToThe(Companion_getInstance_21(), drop), newScale, roundingMode, newScale);
        }
        return tmp;
      }
    } else {
      if (newScale > oldScale) {
        // Inline function 'kotlin.Long.minus' call
        var this_2 = fromInt_0(newScale);
        var tmp$ret$2 = subtract_0(this_2, fromInt_0(oldScale));
        var raise_0 = checkScale_1(this, tmp$ret$2);
        var rb_0 = bigMultiplyPowerTen_0(Companion_getInstance_21(), this.vt_1, raise_0);
        return CommonBigDecimal.eu(ensureNotNull(rb_0), -9223372036854775808n, newScale, this.xt_1 > 0 ? this.xt_1 + raise_0 | 0 : 0);
      } else {
        // Inline function 'kotlin.Long.minus' call
        var this_3 = fromInt_0(oldScale);
        var tmp$ret$3 = subtract_0(this_3, fromInt_0(newScale));
        var drop_0 = checkScale_1(this, tmp$ret$3);
        var tmp_0;
        if (drop_0 < Companion_getInstance_21().ot_1.length) {
          tmp_0 = divideAndRound_2(Companion_getInstance_21(), ensureNotNull(this.vt_1), Companion_getInstance_21().ot_1[drop_0], newScale, roundingMode, newScale);
        } else {
          tmp_0 = divideAndRound_4(Companion_getInstance_21(), ensureNotNull(this.vt_1), bigTenToThe(Companion_getInstance_21(), drop_0), newScale, roundingMode, newScale);
        }
        return tmp_0;
      }
    }
  }
  setScale(newScale) {
    return this.setScaleInt(newScale, RoundingMode_UNNECESSARY_getInstance().value);
  }
  movePointLeft(n) {
    // Inline function 'kotlin.Long.plus' call
    var this_0 = fromInt_0(this.wt_1);
    var tmp$ret$0 = add_0(this_0, fromInt_0(n));
    var newScale = checkScale_1(this, tmp$ret$0);
    var num = CommonBigDecimal.eu(ensureNotNull(this.vt_1), this.zt_1, newScale, 0);
    return num.wt_1 < 0 ? num.setScaleInt(0, RoundingMode_UNNECESSARY_getInstance().value) : num;
  }
  movePointRight(n) {
    // Inline function 'kotlin.Long.minus' call
    var this_0 = fromInt_0(this.wt_1);
    var tmp$ret$0 = subtract_0(this_0, fromInt_0(n));
    var newScale = checkScale_1(this, tmp$ret$0);
    var num = CommonBigDecimal.eu(ensureNotNull(this.vt_1), this.zt_1, newScale, 0);
    return num.wt_1 < 0 ? num.setScaleInt(0, RoundingMode_UNNECESSARY_getInstance().value) : num;
  }
  scaleByPowerOfTen(n) {
    // Inline function 'kotlin.Long.minus' call
    var this_0 = fromInt_0(this.wt_1);
    var tmp$ret$0 = subtract_0(this_0, fromInt_0(n));
    return CommonBigDecimal.eu(this.vt_1, this.zt_1, checkScale_1(this, tmp$ret$0), this.xt_1);
  }
  stripTrailingZeros() {
    var tmp;
    if (this.zt_1 === 0n || (!(this.vt_1 == null) && this.vt_1.signum === 0)) {
      tmp = Companion_getInstance_21().ZERO;
    } else if (!(this.zt_1 === -9223372036854775808n)) {
      tmp = createAndStripZerosToMatchScale_0(Companion_getInstance_21(), this.zt_1, this.wt_1, -9223372036854775808n);
    } else {
      tmp = createAndStripZerosToMatchScale(Companion_getInstance_21(), ensureNotNull(this.vt_1), this.wt_1, -9223372036854775808n);
    }
    return tmp;
  }
  sq(other) {
    // Inline function 'com.macrofocus.common.math.big.castTo' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var other_0 = other;
    if (this.wt_1 === other_0.wt_1) {
      var xs = this.zt_1;
      var ys = other_0.zt_1;
      if (!(xs === -9223372036854775808n) && !(ys === -9223372036854775808n)) {
        var tmp;
        if (!(xs === ys)) {
          var tmp_0;
          if (xs > ys) {
            tmp_0 = 1;
          } else {
            tmp_0 = -1;
          }
          tmp = tmp_0;
        } else {
          tmp = 0;
        }
        return tmp;
      }
    }
    var xsign = this.signum;
    var ysign = other_0.signum;
    if (!(xsign === ysign)) {
      return xsign > ysign ? 1 : -1;
    }
    if (xsign === 0) {
      return 0;
    }
    var cmp = compareMagnitude(this, other_0);
    return xsign > 0 ? cmp : -cmp | 0;
  }
  d(other) {
    return this.sq((!(other == null) ? isInterface(other, BigDecimal) : false) ? other : THROW_CCE());
  }
  equals(other) {
    if (!(other instanceof CommonBigDecimal)) {
      return false;
    }
    var xDec = other;
    if (other === this) {
      return true;
    }
    if (!(this.wt_1 === xDec.wt_1)) {
      return false;
    }
    var s = this.zt_1;
    var xs = xDec.zt_1;
    if (!(s === -9223372036854775808n)) {
      if (xs === -9223372036854775808n) {
        xs = compactValFor(Companion_getInstance_21(), ensureNotNull(xDec.vt_1));
      }
      return xs === s;
    } else if (!(xs === -9223372036854775808n)) {
      return xs === compactValFor(Companion_getInstance_21(), ensureNotNull(this.vt_1));
    }
    return inflated(this).equals(inflated(xDec));
  }
  min(val) {
    return this.sq(val) <= 0 ? this : val;
  }
  max(val) {
    return this.sq(val) >= 0 ? this : val;
  }
  hashCode() {
    var tmp;
    if (!(this.zt_1 === -9223372036854775808n)) {
      var val2 = this.zt_1 < 0n ? negate_0(this.zt_1) : this.zt_1;
      var temp = convertToInt(add_0(numberToLong(imul_0(convertToInt(shiftRightUnsigned(val2, 32)), 31)), val2 & 4294967295n));
      tmp = imul_0(31, this.zt_1 < 0n ? -temp | 0 : temp) + this.wt_1 | 0;
    } else {
      tmp = imul_0(31, ensureNotNull(this.vt_1).hashCode()) + this.wt_1 | 0;
    }
    return tmp;
  }
  toString() {
    var sc = this.yt_1;
    if (sc == null) {
      sc = layoutChars(this, true);
      this.yt_1 = sc;
    }
    return sc;
  }
  toEngineeringString() {
    return layoutChars(this, false);
  }
  toPlainString() {
    if (this.wt_1 === 0) {
      var tmp;
      if (!(this.zt_1 === -9223372036854775808n)) {
        tmp = this.zt_1.toString();
      } else {
        tmp = ensureNotNull(this.vt_1).toString();
      }
      return tmp;
    }
    if (this.wt_1 < 0) {
      if (this.signum === 0) {
        return '0';
      }
      var trailingZeros = checkScaleNonZero(Companion_getInstance_21(), negate_0(fromInt_0(this.wt_1)));
      var buf;
      if (!(this.zt_1 === -9223372036854775808n)) {
        buf = StringBuilder.ua(20 + trailingZeros | 0);
        buf.qd(this.zt_1);
      } else {
        var str = ensureNotNull(this.vt_1).toString();
        buf = StringBuilder.ua(str.length + trailingZeros | 0);
        buf.qa(str);
      }
      var inductionVariable = 0;
      if (inductionVariable < trailingZeros)
        do {
          var i = inductionVariable;
          inductionVariable = inductionVariable + 1 | 0;
          buf.ra(_Char___init__impl__6a9atx(48));
        }
         while (inductionVariable < trailingZeros);
      return buf.toString();
    }
    var str_0;
    if (!(this.zt_1 === -9223372036854775808n)) {
      // Inline function 'kotlin.math.absoluteValue' call
      var this_0 = this.zt_1;
      str_0 = abs_1(this_0).toString();
    } else {
      str_0 = ensureNotNull(this.vt_1).absoluteValue.toString();
    }
    return getValueString(this, this.signum, str_0, this.wt_1);
  }
  toBigInteger() {
    return inflated(this.setScaleInt(0, RoundingMode_DOWN_getInstance().value));
  }
  toBigIntegerExact() {
    return inflated(this.setScaleInt(0, RoundingMode_UNNECESSARY_getInstance().value));
  }
  toLong() {
    var tmp;
    if (!(this.zt_1 === -9223372036854775808n) && this.wt_1 === 0) {
      tmp = this.zt_1;
    } else {
      tmp = this.toBigInteger().toLong();
    }
    return tmp;
  }
  toLongExact() {
    if (!(this.zt_1 === -9223372036854775808n) && this.wt_1 === 0) {
      return this.zt_1;
    }
    if ((this.precision - this.wt_1 | 0) > 19) {
      throw ArithmeticException.cc('Overflow');
    }
    if (this.signum === 0) {
      return 0n;
    }
    if ((this.precision - this.wt_1 | 0) <= 0) {
      throw ArithmeticException.cc('Rounding necessary');
    }
    var num = this.setScaleInt(0, RoundingMode_UNNECESSARY_getInstance().value);
    if (num.precision >= 19) {
      LongOverflow_getInstance().zu(num);
    }
    return inflated(num).toLong();
  }
  toInt() {
    var tmp;
    if (!(this.zt_1 === -9223372036854775808n) && this.wt_1 === 0) {
      tmp = convertToInt(this.zt_1);
    } else {
      tmp = this.toBigInteger().toInt();
    }
    return tmp;
  }
  toByte() {
    return toByte(this.toInt());
  }
  toChar() {
    return numberToChar(this.toInt());
  }
  toShort() {
    return toShort(this.toInt());
  }
  toIntExact() {
    var num = this.toLongExact();
    if (!(fromInt_0(convertToInt(num)) === num)) {
      throw ArithmeticException.cc('Overflow');
    }
    return convertToInt(num);
  }
  toShortExact() {
    var num = this.toLongExact();
    if (!(fromInt_0(convertToShort(num)) === num)) {
      throw ArithmeticException.cc('Overflow');
    }
    return convertToShort(num);
  }
  toByteExact() {
    var num = this.toLongExact();
    if (!(fromInt_0(convertToByte(num)) === num)) {
      throw ArithmeticException.cc('Overflow');
    }
    return convertToByte(num);
  }
  toFloat() {
    if (!(this.zt_1 === -9223372036854775808n)) {
      if (this.wt_1 === 0) {
        return toNumber_0(this.zt_1);
      } else {
        if (abs_1(this.zt_1) < 4194304n) {
          if (this.wt_1 > 0 && this.wt_1 < Companion_getInstance_21().nt_1.length) {
            return toNumber_0(this.zt_1) / Companion_getInstance_21().nt_1[this.wt_1];
          } else if (this.wt_1 < 0 && this.wt_1 > (-Companion_getInstance_21().nt_1.length | 0)) {
            return toNumber_0(this.zt_1) * Companion_getInstance_21().nt_1[-this.wt_1 | 0];
          }
        }
      }
    }
    // Inline function 'kotlin.text.toFloat' call
    var this_0 = this.toString();
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    return toDouble(this_0);
  }
  toDouble() {
    if (!(this.zt_1 === -9223372036854775808n)) {
      if (this.wt_1 === 0) {
        return toNumber_0(this.zt_1);
      } else {
        if (abs_1(this.zt_1) < 4503599627370496n) {
          if (this.wt_1 > 0 && this.wt_1 < Companion_getInstance_21().mt_1.length) {
            return toNumber_0(this.zt_1) / Companion_getInstance_21().mt_1[this.wt_1];
          } else if (this.wt_1 < 0 && this.wt_1 > (-Companion_getInstance_21().mt_1.length | 0)) {
            return toNumber_0(this.zt_1) * Companion_getInstance_21().mt_1[-this.wt_1 | 0];
          }
        }
      }
    }
    return toDouble(this.toString());
  }
  ulp() {
    return Companion_getInstance_21().ofScaledLongWithPrecision(1n, this.scale, 1);
  }
  get absoluteValue() {
    return this.mq();
  }
  get signum() {
    return this.nq();
  }
  get scale() {
    return this.oq();
  }
  get precision() {
    return this.pq();
  }
  get unscaledValue() {
    return this.qq();
  }
}
class Companion_22 {
  constructor() {
    Companion_instance_22 = this;
    this.ds_1 = 4294967295n;
    this.es_1 = 67108864;
    this.fs_1 = 500000000;
    this.gs_1 = 80;
    this.hs_1 = 240;
    this.is_1 = 128;
    this.js_1 = 216;
    this.ks_1 = 80;
    this.ls_1 = 40;
    this.ms_1 = 20;
    this.ns_1 = 20;
    this.os_1 = 512;
    var tmp = this;
    // Inline function 'kotlin.longArrayOf' call
    tmp.ps_1 = new BigInt64Array([0n, 0n, 1024n, 1624n, 2048n, 2378n, 2648n, 2875n, 3072n, 3247n, 3402n, 3543n, 3672n, 3790n, 3899n, 4001n, 4096n, 4186n, 4271n, 4350n, 4426n, 4498n, 4567n, 4633n, 4696n, 4756n, 4814n, 4870n, 4923n, 4975n, 5025n, 5074n, 5120n, 5166n, 5210n, 5253n, 5295n]);
    this.qs_1 = 95;
    this.rs_1 = 100;
    var tmp_0 = this;
    // Inline function 'kotlin.Long.times' call
    // Inline function 'kotlin.Long.times' call
    var this_0 = multiply_0(3n, fromInt_0(5));
    // Inline function 'kotlin.Long.times' call
    var this_1 = multiply_0(this_0, fromInt_0(7));
    // Inline function 'kotlin.Long.times' call
    var this_2 = multiply_0(this_1, fromInt_0(11));
    // Inline function 'kotlin.Long.times' call
    var this_3 = multiply_0(this_2, fromInt_0(13));
    // Inline function 'kotlin.Long.times' call
    var this_4 = multiply_0(this_3, fromInt_0(17));
    // Inline function 'kotlin.Long.times' call
    var this_5 = multiply_0(this_4, fromInt_0(19));
    // Inline function 'kotlin.Long.times' call
    var this_6 = multiply_0(this_5, fromInt_0(23));
    // Inline function 'kotlin.Long.times' call
    var this_7 = multiply_0(this_6, fromInt_0(29));
    // Inline function 'kotlin.Long.times' call
    var this_8 = multiply_0(this_7, fromInt_0(31));
    // Inline function 'kotlin.Long.times' call
    var this_9 = multiply_0(this_8, fromInt_0(37));
    var tmp$ret$11 = multiply_0(this_9, fromInt_0(41));
    tmp_0.ss_1 = this.ofLong(tmp$ret$11);
    this.ts_1 = 16;
    var tmp_1 = this;
    // Inline function 'kotlin.arrayOfNulls' call
    var size = this.ts_1 + 1 | 0;
    tmp_1.us_1 = Array(size);
    var tmp_2 = this;
    // Inline function 'kotlin.arrayOfNulls' call
    var size_0 = this.ts_1 + 1 | 0;
    tmp_2.vs_1 = Array(size_0);
    var tmp_3 = this;
    // Inline function 'kotlin.arrayOfNulls' call
    tmp_3.ws_1 = Array(0);
    var tmp_4 = this;
    // Inline function 'kotlin.math.ln' call
    tmp_4.ys_1 = Math.log(2.0);
    var inductionVariable = 1;
    var last = this.ts_1;
    if (inductionVariable <= last)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        var magnitude = new Int32Array(1);
        magnitude[0] = i;
        this.us_1[i] = CommonBigInteger.ov(magnitude, 1);
        this.vs_1[i] = CommonBigInteger.ov(magnitude, -1);
      }
       while (!(i === last));
    var tmp_5 = this;
    // Inline function 'kotlin.arrayOfNulls' call
    tmp_5.ws_1 = Array(37);
    this.xs_1 = new Float64Array(37);
    var inductionVariable_0 = 2;
    if (inductionVariable_0 <= 36)
      do {
        var i_0 = inductionVariable_0;
        inductionVariable_0 = inductionVariable_0 + 1 | 0;
        var tmp_6 = this.ws_1;
        // Inline function 'kotlin.arrayOf' call
        // Inline function 'kotlin.js.unsafeCast' call
        // Inline function 'kotlin.js.asDynamic' call
        tmp_6[i_0] = [this.ofLong(fromInt_0(i_0))];
        // Inline function 'kotlin.math.ln' call
        var tmp$ret$20 = Math.log(i_0);
        this.xs_1[i_0] = tmp$ret$20;
      }
       while (inductionVariable_0 <= 36);
    this.ZERO = CommonBigInteger.ov(new Int32Array(0), 0);
    this.ONE = this.of(1);
    this.TWO = this.of(2);
    this.NEGATIVE_ONE = this.of(-1);
    this.TEN = this.of(10);
    var tmp_7 = this;
    // Inline function 'kotlin.intArrayOf' call
    tmp_7.zs_1 = new Int32Array([7, 25, 81, 241, 673, 1793, 2147483647]);
    var tmp_8 = this;
    // Inline function 'kotlin.arrayOfNulls' call
    tmp_8.at_1 = Array(64);
    this.at_1[63] = '000000000000000000000000000000000000000000000000000000000000000';
    var inductionVariable_1 = 0;
    if (inductionVariable_1 <= 62)
      do {
        var i_1 = inductionVariable_1;
        inductionVariable_1 = inductionVariable_1 + 1 | 0;
        this.at_1[i_1] = substring(ensureNotNull(this.at_1[63]), 0, i_1);
      }
       while (inductionVariable_1 <= 62);
    var tmp_9 = this;
    // Inline function 'kotlin.intArrayOf' call
    tmp_9.bt_1 = new Int32Array([0, 0, 62, 39, 31, 27, 24, 22, 20, 19, 18, 18, 17, 17, 16, 16, 15, 15, 15, 14, 14, 14, 14, 13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 12, 12, 12, 12]);
    var tmp_10 = this;
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    tmp_10.ct_1 = [null, null, this.ofLong(4611686018427387904n), this.ofLong(4052555153018976267n), this.ofLong(4611686018427387904n), this.ofLong(7450580596923828125n), this.ofLong(4738381338321616896n), this.ofLong(3909821048582988049n), this.ofLong(1152921504606846976n), this.ofLong(1350851717672992089n), this.ofLong(1000000000000000000n), this.ofLong(5559917313492231481n), this.ofLong(2218611106740436992n), this.ofLong(8650415919381337933n), this.ofLong(2177953337809371136n), this.ofLong(6568408355712890625n), this.ofLong(1152921504606846976n), this.ofLong(2862423051509815793n), this.ofLong(6746640616477458432n), this.ofLong(799006685782884121n), this.ofLong(1638400000000000000n), this.ofLong(3243919932521508681n), this.ofLong(6221821273427820544n), this.ofLong(504036361936467383n), this.ofLong(876488338465357824n), this.ofLong(1490116119384765625n), this.ofLong(2481152873203736576n), this.ofLong(4052555153018976267n), this.ofLong(6502111422497947648n), this.ofLong(353814783205469041n), this.ofLong(531441000000000000n), this.ofLong(787662783788549761n), this.ofLong(1152921504606846976n), this.ofLong(1667889514952984961n), this.ofLong(2386420683693101056n), this.ofLong(3379220508056640625n), this.ofLong(4738381338321616896n)];
    var tmp_11 = this;
    // Inline function 'kotlin.intArrayOf' call
    tmp_11.dt_1 = new Int32Array([0, 0, 30, 19, 15, 13, 11, 11, 10, 9, 9, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5]);
    var tmp_12 = this;
    // Inline function 'kotlin.intArrayOf' call
    tmp_12.et_1 = new Int32Array([0, 0, 1073741824, 1162261467, 1073741824, 1220703125, 362797056, 1977326743, 1073741824, 387420489, 1000000000, 214358881, 429981696, 815730721, 1475789056, 170859375, 268435456, 410338673, 612220032, 893871739, 1280000000, 1801088541, 113379904, 148035889, 191102976, 244140625, 308915776, 387420489, 481890304, 594823321, 729000000, 887503681, 1073741824, 1291467969, 1544804416, 1838265625, 60466176]);
  }
  probablePrime(bitLength, rnd) {
    if (bitLength < 2) {
      throw ArithmeticException.cc('bitLength < 2');
    }
    var tmp;
    if (bitLength < 95) {
      tmp = smallPrime(this, bitLength, 100, rnd);
    } else {
      tmp = largePrime(this, bitLength, 100, rnd);
    }
    return tmp;
  }
  ofLong(other) {
    if (other === 0n) {
      return this.ZERO;
    }
    // Inline function 'kotlin.ranges.contains' call
    var this_0 = numberRangeToNumber(1, this.ts_1);
    if (contains_1(isInterface(this_0, ClosedRange) ? this_0 : THROW_CCE(), other)) {
      var tmp0_elvis_lhs = this.us_1[convertToInt(other)];
      var tmp;
      if (tmp0_elvis_lhs == null) {
        throw IllegalStateException.gb();
      } else {
        tmp = tmp0_elvis_lhs;
      }
      return tmp;
    } else {
      if (other < 0n && other >= fromInt_0(-this.ts_1 | 0)) {
        var tmp1_elvis_lhs = this.vs_1[convertToInt(negate_0(other))];
        var tmp_0;
        if (tmp1_elvis_lhs == null) {
          throw IllegalStateException.gb();
        } else {
          tmp_0 = tmp1_elvis_lhs;
        }
        return tmp_0;
      }
    }
    return CommonBigInteger.yv(other);
  }
  of(value) {
    return this.ofLong(fromInt_0(value));
  }
  parse(value) {
    var radixed = getRadix(value);
    return CommonBigInteger.zv(radixed.second, radixed.first);
  }
  parseWithRadix(value, radix) {
    return CommonBigInteger.zv(value, radix);
  }
  ofIntArray(other) {
    return other[0] > 0 ? CommonBigInteger.ov(other, 1) : CommonBigInteger.aw(other);
  }
  aq() {
    return this.ZERO;
  }
  bq() {
    return this.ONE;
  }
  cq() {
    return this.TWO;
  }
  yq() {
    return this.NEGATIVE_ONE;
  }
  dq() {
    return this.TEN;
  }
  qv(n) {
    return 32 - numberOfLeadingZeros(n) | 0;
  }
}
class CommonBigInteger {
  static aw(other) {
    Companion_getInstance_22();
    var $this = createThis(this);
    init_com_macrofocus_common_math_big_CommonBigInteger($this);
    // Inline function 'kotlin.collections.isEmpty' call
    if (other.length === 0) {
      throw NumberFormatException.xb('Zero length BigInteger');
    }
    if (other[0] < 0) {
      $this.vr_1 = makePositive(Companion_getInstance_22(), other);
      $this.ur_1 = -1;
    } else {
      $this.vr_1 = trustedStripLeadingZeroInts(Companion_getInstance_22(), other);
      var tmp = $this;
      var tmp_0;
      // Inline function 'kotlin.collections.isEmpty' call
      if ($this.vr_1.length === 0) {
        tmp_0 = 0;
      } else {
        tmp_0 = 1;
      }
      tmp.ur_1 = tmp_0;
    }
    if ($this.vr_1.length >= 67108864) {
      checkRange($this);
    }
    return $this;
  }
  static bw(signum, magnitude, off, len) {
    Companion_getInstance_22();
    off = off === VOID ? 0 : off;
    len = len === VOID ? magnitude.length : len;
    var $this = createThis(this);
    init_com_macrofocus_common_math_big_CommonBigInteger($this);
    if (signum < -1 || signum > 1) {
      throw NumberFormatException.xb('Invalid _signum value');
    } else if (off < 0 || len < 0 || (len > 0 && (off >= magnitude.length || len > (magnitude.length - off | 0)))) {
      throw IndexOutOfBoundsException.qb();
    }
    $this.vr_1 = stripLeadingZeroBytes(Companion_getInstance_22(), magnitude, off, len);
    // Inline function 'kotlin.collections.isEmpty' call
    if ($this.vr_1.length === 0) {
      $this.ur_1 = 0;
    } else {
      if (signum === 0) {
        throw NumberFormatException.xb('_signum-magnitude mismatch');
      }
      $this.ur_1 = signum;
    }
    if ($this.vr_1.length >= 67108864) {
      checkRange($this);
    }
    return $this;
  }
  static xv(signum, magnitude) {
    Companion_getInstance_22();
    var $this = createThis(this);
    init_com_macrofocus_common_math_big_CommonBigInteger($this);
    $this.vr_1 = stripLeadingZeroInts(Companion_getInstance_22(), magnitude);
    if (signum < -1 || signum > 1) {
      throw NumberFormatException.xb('Invalid _signum value');
    }
    // Inline function 'kotlin.collections.isEmpty' call
    if ($this.vr_1.length === 0) {
      $this.ur_1 = 0;
    } else {
      if (signum === 0) {
        throw NumberFormatException.xb('_signum-magnitude mismatch');
      }
      $this.ur_1 = signum;
    }
    if ($this.vr_1.length >= 67108864) {
      checkRange($this);
    }
    return $this;
  }
  static zv(other, radix) {
    Companion_getInstance_22();
    radix = radix === VOID ? 10 : radix;
    var $this = createThis(this);
    init_com_macrofocus_common_math_big_CommonBigInteger($this);
    var cursor = 0;
    var numDigits;
    var len = other.length;
    if (radix < 2 || radix > 36) {
      throw NumberFormatException.xb('Radix out of range');
    }
    if (len === 0) {
      throw NumberFormatException.xb('Zero length BigInteger');
    }
    var sign = 1;
    var index1 = lastIndexOf_0(other, _Char___init__impl__6a9atx(45));
    var index2 = lastIndexOf_0(other, _Char___init__impl__6a9atx(43));
    if (index1 >= 0) {
      if (!(index1 === 0) || index2 >= 0) {
        throw NumberFormatException.xb('Illegal embedded sign character');
      }
      sign = -1;
      cursor = 1;
    } else if (index2 >= 0) {
      if (!(index2 === 0)) {
        throw NumberFormatException.xb('Illegal embedded sign character');
      }
      cursor = 1;
    }
    if (cursor === len) {
      throw NumberFormatException.xb('Zero length BigInteger');
    }
    while (cursor < len && toDigit(charCodeAt(other, cursor), radix) === 0) {
      cursor = cursor + 1 | 0;
    }
    if (cursor === len) {
      $this.ur_1 = 0;
      $this.vr_1 = Companion_getInstance_22().ZERO.vr_1;
      return $this;
    }
    numDigits = len - cursor | 0;
    $this.ur_1 = sign;
    // Inline function 'kotlin.Long.plus' call
    var this_0 = shiftRightUnsigned(multiply_0(numberToLong(numDigits), Companion_getInstance_22().ps_1[radix]), 10);
    var numBits = add_0(this_0, fromInt_0(1));
    // Inline function 'kotlin.Long.plus' call
    if (add_0(numBits, fromInt_0(31)) >= 4294967296n) {
      reportOverflow(Companion_getInstance_22());
    }
    // Inline function 'kotlin.Long.plus' call
    var tmp$ret$2 = add_0(numBits, fromInt_0(31));
    var numWords = convertToInt(tmp$ret$2) >>> 5 | 0;
    var magnitude = new Int32Array(numWords);
    var firstGroupLen = numDigits % Companion_getInstance_22().dt_1[radix] | 0;
    if (firstGroupLen === 0) {
      firstGroupLen = Companion_getInstance_22().dt_1[radix];
    }
    var group = substring(other, cursor, cursor + firstGroupLen | 0);
    cursor = cursor + firstGroupLen | 0;
    magnitude[numWords - 1 | 0] = toInt(group, radix);
    if (magnitude[numWords - 1 | 0] < 0) {
      throw NumberFormatException.xb('Illegal digit');
    }
    var superRadix = Companion_getInstance_22().et_1[radix];
    var groupVal = 0;
    while (cursor < len) {
      group = substring(other, cursor, cursor + Companion_getInstance_22().dt_1[radix] | 0);
      cursor = cursor + Companion_getInstance_22().dt_1[radix] | 0;
      groupVal = toInt(group, radix);
      if (groupVal < 0) {
        throw NumberFormatException.xb('Illegal digit');
      }
      destructiveMulAdd(Companion_getInstance_22(), magnitude, superRadix, groupVal);
    }
    $this.vr_1 = trustedStripLeadingZeroInts(Companion_getInstance_22(), magnitude);
    if ($this.vr_1.length >= 67108864) {
      checkRange($this);
    }
    return $this;
  }
  static mv(other, sign, len) {
    Companion_getInstance_22();
    var $this = createThis(this);
    init_com_macrofocus_common_math_big_CommonBigInteger($this);
    var cursor = 0;
    var numDigits;
    while (cursor < len && toDigit(other[cursor], 10) === 0) {
      cursor = cursor + 1 | 0;
    }
    if (cursor === len) {
      $this.ur_1 = 0;
      $this.vr_1 = Companion_getInstance_22().ZERO.vr_1;
      return $this;
    }
    numDigits = len - cursor | 0;
    $this.ur_1 = sign;
    var numWords;
    if (len < 10) {
      numWords = 1;
    } else {
      // Inline function 'kotlin.Long.plus' call
      var this_0 = shiftRightUnsigned(multiply_0(numberToLong(numDigits), Companion_getInstance_22().ps_1[10]), 10);
      var numBits = add_0(this_0, fromInt_0(1));
      // Inline function 'kotlin.Long.plus' call
      if (add_0(numBits, fromInt_0(31)) >= 4294967296n) {
        reportOverflow(Companion_getInstance_22());
      }
      // Inline function 'kotlin.Long.plus' call
      var tmp$ret$2 = add_0(numBits, fromInt_0(31));
      numWords = convertToInt(tmp$ret$2) >>> 5 | 0;
    }
    var magnitude = new Int32Array(numWords);
    var firstGroupLen = numDigits % Companion_getInstance_22().dt_1[10] | 0;
    if (firstGroupLen === 0) {
      firstGroupLen = Companion_getInstance_22().dt_1[10];
    }
    magnitude[numWords - 1 | 0] = parseInt($this, other, cursor, cursor + firstGroupLen | 0);
    cursor = cursor + firstGroupLen | 0;
    while (cursor < len) {
      var groupVal = parseInt($this, other, cursor, cursor + Companion_getInstance_22().dt_1[10] | 0);
      cursor = cursor + Companion_getInstance_22().dt_1[10] | 0;
      destructiveMulAdd(Companion_getInstance_22(), magnitude, Companion_getInstance_22().et_1[10], groupVal);
    }
    $this.vr_1 = trustedStripLeadingZeroInts(Companion_getInstance_22(), magnitude);
    if ($this.vr_1.length >= 67108864) {
      checkRange($this);
    }
    return $this;
  }
  static pv(numBits, rnd) {
    Companion_getInstance_22();
    return this.bw(1, randomBits(Companion_getInstance_22(), numBits, rnd));
  }
  nextProbablePrime() {
    if (this.ur_1 < 0) {
      throw ArithmeticException.cc('start < 0: ' + this.toString());
    }
    if (this.ur_1 === 0 || this.equals(Companion_getInstance_22().ONE)) {
      return Companion_getInstance_22().TWO;
    }
    var result = this.plus(Companion_getInstance_22().ONE);
    if (result.bitLength < 95) {
      if (!result.testBit(0)) {
        result = result.plus(Companion_getInstance_22().ONE);
      }
      $l$loop: while (true) {
        if (result.bitLength > 6) {
          var r = result.reminder(Companion_getInstance_22().ss_1).toLong();
          var tmp;
          var tmp_0;
          var tmp_1;
          var tmp_2;
          var tmp_3;
          var tmp_4;
          var tmp_5;
          var tmp_6;
          var tmp_7;
          var tmp_8;
          var tmp_9;
          // Inline function 'kotlin.Long.rem' call
          if (modulo(r, fromInt_0(3)) === 0n) {
            tmp_9 = true;
          } else {
            // Inline function 'kotlin.Long.rem' call
            tmp_9 = modulo(r, fromInt_0(5)) === 0n;
          }
          if (tmp_9) {
            tmp_8 = true;
          } else {
            // Inline function 'kotlin.Long.rem' call
            tmp_8 = modulo(r, fromInt_0(7)) === 0n;
          }
          if (tmp_8) {
            tmp_7 = true;
          } else {
            // Inline function 'kotlin.Long.rem' call
            tmp_7 = modulo(r, fromInt_0(11)) === 0n;
          }
          if (tmp_7) {
            tmp_6 = true;
          } else {
            // Inline function 'kotlin.Long.rem' call
            tmp_6 = modulo(r, fromInt_0(13)) === 0n;
          }
          if (tmp_6) {
            tmp_5 = true;
          } else {
            // Inline function 'kotlin.Long.rem' call
            tmp_5 = modulo(r, fromInt_0(17)) === 0n;
          }
          if (tmp_5) {
            tmp_4 = true;
          } else {
            // Inline function 'kotlin.Long.rem' call
            tmp_4 = modulo(r, fromInt_0(19)) === 0n;
          }
          if (tmp_4) {
            tmp_3 = true;
          } else {
            // Inline function 'kotlin.Long.rem' call
            tmp_3 = modulo(r, fromInt_0(23)) === 0n;
          }
          if (tmp_3) {
            tmp_2 = true;
          } else {
            // Inline function 'kotlin.Long.rem' call
            tmp_2 = modulo(r, fromInt_0(29)) === 0n;
          }
          if (tmp_2) {
            tmp_1 = true;
          } else {
            // Inline function 'kotlin.Long.rem' call
            tmp_1 = modulo(r, fromInt_0(31)) === 0n;
          }
          if (tmp_1) {
            tmp_0 = true;
          } else {
            // Inline function 'kotlin.Long.rem' call
            tmp_0 = modulo(r, fromInt_0(37)) === 0n;
          }
          if (tmp_0) {
            tmp = true;
          } else {
            // Inline function 'kotlin.Long.rem' call
            tmp = modulo(r, fromInt_0(41)) === 0n;
          }
          if (tmp) {
            result = result.plus(Companion_getInstance_22().TWO);
            continue $l$loop;
          }
        }
        if (result.bitLength < 4) {
          return result;
        }
        if (result.as(100, null)) {
          return result;
        }
        result = result.plus(Companion_getInstance_22().TWO);
      }
    }
    if (result.testBit(0)) {
      result = result.minus(Companion_getInstance_22().ONE);
    }
    var searchLen = getPrimeSearchLen(Companion_getInstance_22(), result.bitLength);
    while (true) {
      var searchSieve = BitSieve.lr(result, searchLen);
      var tmp_10 = result;
      ensureNotNull(null);
      var candidate = searchSieve.tr(tmp_10, 100, throwKotlinNothingValueException());
      if (!(candidate == null)) {
        return candidate;
      }
      result = result.plus(Companion_getInstance_22().ofLong(fromInt_0(imul_0(2, searchLen))));
    }
  }
  as(certainty, random) {
    var rounds = 0;
    // Inline function 'kotlin.math.max' call
    var b = 2147483646;
    var n = (Math.max(certainty, b) + 1 | 0) / 2 | 0;
    var sizeInBits = this.bitLength;
    if (sizeInBits < 100) {
      rounds = 50;
      rounds = n < rounds ? n : rounds;
      return passesMillerRabin(this, rounds, random);
    }
    if (sizeInBits < 256) {
      rounds = 27;
    } else if (sizeInBits < 512) {
      rounds = 15;
    } else if (sizeInBits < 768) {
      rounds = 8;
    } else if (sizeInBits < 1024) {
      rounds = 4;
    } else {
      rounds = 2;
    }
    rounds = n < rounds ? n : rounds;
    return passesMillerRabin(this, rounds, random) && passesLucasLehmer(this);
  }
  static ov(magnitude, signum) {
    Companion_getInstance_22();
    var $this = createThis(this);
    init_com_macrofocus_common_math_big_CommonBigInteger($this);
    var tmp = $this;
    var tmp_0;
    // Inline function 'kotlin.collections.isEmpty' call
    if (magnitude.length === 0) {
      tmp_0 = 0;
    } else {
      tmp_0 = signum;
    }
    tmp.ur_1 = tmp_0;
    $this.vr_1 = magnitude;
    if ($this.vr_1.length >= 67108864) {
      checkRange($this);
    }
    return $this;
  }
  static yv(other) {
    Companion_getInstance_22();
    var $this = createThis(this);
    init_com_macrofocus_common_math_big_CommonBigInteger($this);
    var other_0 = other;
    if (other_0 < 0n) {
      other_0 = negate_0(other_0);
      $this.ur_1 = -1;
    } else {
      $this.ur_1 = 1;
    }
    var highWord = convertToInt(shiftRightUnsigned(other_0, 32));
    if (highWord === 0) {
      $this.vr_1 = new Int32Array(1);
      $this.vr_1[0] = convertToInt(other_0);
    } else {
      $this.vr_1 = new Int32Array(2);
      $this.vr_1[0] = highWord;
      $this.vr_1[1] = convertToInt(other_0);
    }
    return $this;
  }
  plus(other) {
    // Inline function 'com.macrofocus.common.math.big.castTo' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var other_0 = other;
    if (other_0.signum === 0) {
      return this;
    }
    if (this.ur_1 === 0) {
      return other_0;
    }
    if (other_0.ur_1 === this.ur_1) {
      return CommonBigInteger.ov(sum_5(Companion_getInstance_22(), this.vr_1, other_0.vr_1), this.ur_1);
    }
    var cmp = this.cu(other_0);
    if (cmp === 0) {
      return Companion_getInstance_22().ZERO;
    }
    var tmp;
    if (cmp > 0) {
      tmp = subtract_3(Companion_getInstance_22(), this.vr_1, other_0.vr_1);
    } else {
      tmp = subtract_3(Companion_getInstance_22(), other_0.vr_1, this.vr_1);
    }
    var resultMag = tmp;
    resultMag = trustedStripLeadingZeroInts(Companion_getInstance_22(), resultMag);
    return CommonBigInteger.ov(resultMag, cmp === this.ur_1 ? 1 : -1);
  }
  su(other) {
    if (other === 0n) {
      return this;
    }
    if (this.ur_1 === 0) {
      return Companion_getInstance_22().ofLong(other);
    }
    if (get_sign(other) === this.ur_1) {
      var tmp = Companion_getInstance_22();
      // Inline function 'kotlin.math.absoluteValue' call
      var tmp$ret$0 = abs_1(other);
      return CommonBigInteger.ov(sum_4(tmp, this.vr_1, tmp$ret$0), this.ur_1);
    }
    var cmp = compareMagnitude_0(this, other);
    if (cmp === 0) {
      return Companion_getInstance_22().ZERO;
    }
    var tmp_0;
    if (cmp > 0) {
      var tmp_1 = Companion_getInstance_22();
      // Inline function 'kotlin.math.absoluteValue' call
      var tmp$ret$1 = abs_1(other);
      tmp_0 = subtract_2(tmp_1, this.vr_1, tmp$ret$1);
    } else {
      var tmp_2 = Companion_getInstance_22();
      // Inline function 'kotlin.math.absoluteValue' call
      var tmp$ret$2 = abs_1(other);
      tmp_0 = subtract_1(tmp_2, tmp$ret$2, this.vr_1);
    }
    var resultMag = tmp_0;
    resultMag = trustedStripLeadingZeroInts(Companion_getInstance_22(), resultMag);
    return CommonBigInteger.ov(resultMag, cmp === this.ur_1 ? 1 : -1);
  }
  minus(other) {
    // Inline function 'com.macrofocus.common.math.big.castTo' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var other_0 = other;
    if (other_0.ur_1 === 0) {
      return this;
    }
    if (this.ur_1 === 0) {
      return other_0.unaryMinus();
    }
    if (!(other_0.ur_1 === this.ur_1)) {
      return CommonBigInteger.ov(sum_5(Companion_getInstance_22(), this.vr_1, other_0.vr_1), this.ur_1);
    }
    var cmp = this.cu(other_0);
    if (cmp === 0) {
      return Companion_getInstance_22().ZERO;
    }
    var tmp;
    if (cmp > 0) {
      tmp = subtract_3(Companion_getInstance_22(), this.vr_1, other_0.vr_1);
    } else {
      tmp = subtract_3(Companion_getInstance_22(), other_0.vr_1, this.vr_1);
    }
    var resultMag = tmp;
    resultMag = trustedStripLeadingZeroInts(Companion_getInstance_22(), resultMag);
    return CommonBigInteger.ov(resultMag, cmp === this.ur_1 ? 1 : -1);
  }
  times(other) {
    // Inline function 'com.macrofocus.common.math.big.castTo' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var other_0 = other;
    if (other_0.ur_1 === 0 || this.ur_1 === 0) {
      return Companion_getInstance_22().ZERO;
    }
    var xlen = this.vr_1.length;
    if (other_0 === this && xlen > 20) {
      return square(this);
    }
    var ylen = other_0.vr_1.length;
    if (xlen < 80 || ylen < 80) {
      var resultSign = this.ur_1 === other_0.ur_1 ? 1 : -1;
      if (other_0.vr_1.length === 1) {
        return multiplyByInt(Companion_getInstance_22(), this.vr_1, other_0.vr_1[0], resultSign);
      }
      if (this.vr_1.length === 1) {
        return multiplyByInt(Companion_getInstance_22(), other_0.vr_1, this.vr_1[0], resultSign);
      }
      var result = multiplyToLen(Companion_getInstance_22(), this.vr_1, xlen, other_0.vr_1, ylen, null);
      result = trustedStripLeadingZeroInts(Companion_getInstance_22(), result);
      return CommonBigInteger.ov(result, resultSign);
    } else {
      var tmp;
      if (xlen < 240 && ylen < 240) {
        tmp = multiplyKaratsuba(Companion_getInstance_22(), this, other_0);
      } else {
        tmp = multiplyToomCook3(Companion_getInstance_22(), this, other_0);
      }
      return tmp;
    }
  }
  uu(other) {
    var v = other;
    if (v === 0n || this.ur_1 === 0) {
      return Companion_getInstance_22().ZERO;
    }
    if (v === -9223372036854775808n) {
      return this.times(Companion_getInstance_22().ofLong(v));
    }
    var rsign = v > 0n ? this.ur_1 : -this.ur_1 | 0;
    if (v < 0n) {
      v = negate_0(v);
    }
    var dh = shiftRightUnsigned(v, 32);
    var dl = v & 4294967295n;
    var xlen = this.vr_1.length;
    var value = this.vr_1;
    var rmag = dh === 0n ? new Int32Array(xlen + 1 | 0) : new Int32Array(xlen + 2 | 0);
    var carry = 0n;
    var rstart = rmag.length - 1 | 0;
    var inductionVariable = xlen - 1 | 0;
    if (0 <= inductionVariable)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + -1 | 0;
        var product = add_0(multiply_0(fromInt_0(value[i]) & 4294967295n, dl), carry);
        var tmp = rmag;
        var _unary__edvuaz = rstart;
        rstart = _unary__edvuaz - 1 | 0;
        tmp[_unary__edvuaz] = convertToInt(product);
        carry = shiftRightUnsigned(product, 32);
      }
       while (0 <= inductionVariable);
    rmag[rstart] = convertToInt(carry);
    if (!(dh === 0n)) {
      carry = 0n;
      rstart = rmag.length - 2 | 0;
      var inductionVariable_0 = xlen - 1 | 0;
      if (0 <= inductionVariable_0)
        do {
          var i_0 = inductionVariable_0;
          inductionVariable_0 = inductionVariable_0 + -1 | 0;
          var product_0 = add_0(add_0(multiply_0(fromInt_0(value[i_0]) & 4294967295n, dh), fromInt_0(rmag[rstart]) & 4294967295n), carry);
          var tmp_0 = rmag;
          var _unary__edvuaz_0 = rstart;
          rstart = _unary__edvuaz_0 - 1 | 0;
          tmp_0[_unary__edvuaz_0] = convertToInt(product_0);
          carry = shiftRightUnsigned(product_0, 32);
        }
         while (0 <= inductionVariable_0);
      rmag[0] = convertToInt(carry);
    }
    if (carry === 0n) {
      rmag = copyOfRange_0(rmag, 1, rmag.length);
    }
    return CommonBigInteger.ov(rmag, rsign);
  }
  div(other) {
    // Inline function 'com.macrofocus.common.math.big.castTo' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var other_0 = other;
    var magSizeBelowThreshold = this.vr_1.length < 80;
    var magSizeDiffIsOffset = (this.vr_1.length - other_0.vr_1.length | 0) < 40;
    var tmp;
    if (magSizeBelowThreshold || magSizeDiffIsOffset) {
      tmp = divideKnuth(this, other_0);
    } else {
      tmp = divideBurnikelZiegler(this, other_0);
    }
    return tmp;
  }
  divideAndRemainder(other) {
    // Inline function 'com.macrofocus.common.math.big.castTo' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var other_0 = other;
    var magSizeBelowThreshold = this.vr_1.length < 80;
    var magSizeDiffIsOffset = (this.vr_1.length - other_0.vr_1.length | 0) < 40;
    var tmp;
    if (magSizeBelowThreshold || magSizeDiffIsOffset) {
      tmp = divideAndRemainderKnuth(this, other_0);
    } else {
      tmp = divideAndRemainderBurnikelZiegler(this, other_0);
    }
    return tmp;
  }
  reminder(other) {
    // Inline function 'com.macrofocus.common.math.big.castTo' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var other_0 = other;
    var magSizeBelowThreshold = this.vr_1.length < 80;
    var magSizeDiffIsOffset = (this.vr_1.length - other_0.vr_1.length | 0) < 40;
    var tmp;
    if (magSizeBelowThreshold || magSizeDiffIsOffset) {
      tmp = remainderKnuth(this, other_0);
    } else {
      tmp = remainderBurnikelZiegler(this, other_0);
    }
    return tmp;
  }
  pow(exponent) {
    if (exponent < 0) {
      throw ArithmeticException.cc('Negative exponent');
    }
    if (this.ur_1 === 0) {
      return exponent === 0 ? Companion_getInstance_22().ONE : this;
    }
    var partToSquare = this.absoluteValue;
    var powersOfTwo = _get_lowestSetBit__xjmtq(partToSquare);
    // Inline function 'kotlin.Long.times' call
    var this_0 = fromInt_0(powersOfTwo);
    var bitsToShift = multiply_0(this_0, fromInt_0(exponent));
    if (bitsToShift > 2147483647n) {
      reportOverflow(Companion_getInstance_22());
    }
    var remainingBits;
    if (powersOfTwo > 0) {
      partToSquare = partToSquare.shr(powersOfTwo);
      remainingBits = partToSquare.bitLength;
      if (remainingBits === 1) {
        var tmp;
        if (this.ur_1 < 0 && (exponent & 1) === 1) {
          tmp = Companion_getInstance_22().NEGATIVE_ONE.shl(imul_0(powersOfTwo, exponent));
        } else {
          tmp = Companion_getInstance_22().ONE.shl(imul_0(powersOfTwo, exponent));
        }
        return tmp;
      }
    } else {
      remainingBits = partToSquare.bitLength;
      if (remainingBits === 1) {
        var tmp_0;
        if (this.ur_1 < 0 && (exponent & 1) === 1) {
          tmp_0 = Companion_getInstance_22().NEGATIVE_ONE;
        } else {
          tmp_0 = Companion_getInstance_22().ONE;
        }
        return tmp_0;
      }
    }
    // Inline function 'kotlin.Long.times' call
    var this_1 = fromInt_0(remainingBits);
    var scaleFactor = multiply_0(this_1, fromInt_0(exponent));
    if (partToSquare.vr_1.length === 1 && scaleFactor <= 62n) {
      var newSign = this.ur_1 < 0 && (exponent & 1) === 1 ? -1 : 1;
      var result = 1n;
      var baseToPow2 = fromInt_0(partToSquare.vr_1[0]) & 4294967295n;
      var workingExponent = exponent;
      while (!(workingExponent === 0)) {
        if ((workingExponent & 1) === 1) {
          result = multiply_0(result, baseToPow2);
        }
        workingExponent = workingExponent >>> 1 | 0;
        if (!(workingExponent === 0)) {
          baseToPow2 = multiply_0(baseToPow2, baseToPow2);
        }
      }
      var tmp_1;
      if (powersOfTwo > 0) {
        var tmp_2;
        if (add_0(bitsToShift, scaleFactor) <= 62n) {
          var tmp_3 = Companion_getInstance_22();
          // Inline function 'kotlin.Long.times' call
          var this_2 = shiftLeft(result, convertToInt(bitsToShift));
          var tmp$ret$2 = multiply_0(this_2, fromInt_0(newSign));
          tmp_2 = tmp_3.ofLong(tmp$ret$2);
        } else {
          var tmp_4 = Companion_getInstance_22();
          // Inline function 'kotlin.Long.times' call
          var this_3 = result;
          var tmp$ret$3 = multiply_0(this_3, fromInt_0(newSign));
          tmp_2 = tmp_4.ofLong(tmp$ret$3).shl(convertToInt(bitsToShift));
        }
        tmp_1 = tmp_2;
      } else {
        var tmp_5 = Companion_getInstance_22();
        // Inline function 'kotlin.Long.times' call
        var this_4 = result;
        var tmp$ret$4 = multiply_0(this_4, fromInt_0(newSign));
        tmp_1 = tmp_5.ofLong(tmp$ret$4);
      }
      return tmp_1;
    } else {
      var answer = Companion_getInstance_22().ONE;
      var workingExponent_0 = exponent;
      while (!(workingExponent_0 === 0)) {
        if ((workingExponent_0 & 1) === 1) {
          answer = answer.times(partToSquare);
        }
        workingExponent_0 = workingExponent_0 >>> 1 | 0;
        if (!(workingExponent_0 === 0)) {
          partToSquare = square(partToSquare);
        }
      }
      if (powersOfTwo > 0) {
        answer = answer.shl(imul_0(powersOfTwo, exponent));
      }
      var tmp_6;
      if (this.ur_1 < 0 && (exponent & 1) === 1) {
        tmp_6 = answer.unaryMinus();
      } else {
        tmp_6 = answer;
      }
      return tmp_6;
    }
  }
  sqrt() {
    if (this.ur_1 < 0) {
      throw ArithmeticException.cc('Negative BigInteger');
    }
    return MutableBigInteger.fu(this.vr_1).cw().dw();
  }
  sqrtAndRemainder() {
    var s = this.sqrt();
    var r = this.minus(square(s));
    // Inline function 'kotlin.require' call
    // Inline function 'kotlin.require' call
    if (!(r.br(Companion_getInstance_22().ZERO) >= 0)) {
      var message = 'Failed requirement.';
      throw IllegalArgumentException.w(toString_1(message));
    }
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    return [s, r];
  }
  gcd(other) {
    // Inline function 'com.macrofocus.common.math.big.castTo' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var other_0 = other;
    if (other_0.ur_1 === 0) {
      return this.absoluteValue;
    } else if (this.ur_1 === 0) {
      return other_0.absoluteValue;
    }
    var a = MutableBigInteger.qr(this);
    var b = MutableBigInteger.qr(other_0);
    var result = a.ew(b);
    return result.lu(1);
  }
  mq() {
    return this.ur_1 >= 0 ? this : this.unaryMinus();
  }
  unaryMinus() {
    return CommonBigInteger.ov(this.vr_1, -this.ur_1 | 0);
  }
  unaryPlus() {
    return this;
  }
  nq() {
    return this.ur_1;
  }
  rem(modulus) {
    // Inline function 'com.macrofocus.common.math.big.castTo' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var other = modulus;
    if (other.ur_1 <= 0) {
      throw ArithmeticException.cc('BigInteger: modulus not positive');
    }
    var result = this.reminder(other);
    return result.ur_1 >= 0 ? result : result.plus(other);
  }
  modPow(exponent, modulus) {
    // Inline function 'com.macrofocus.common.math.big.castTo' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var exponent_0 = exponent;
    // Inline function 'com.macrofocus.common.math.big.castTo' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var modulus_0 = modulus;
    if (modulus_0.ur_1 <= 0) {
      throw ArithmeticException.cc('BigInteger: modulus not positive');
    }
    if (exponent_0.ur_1 === 0) {
      return modulus_0.equals(Companion_getInstance_22().ONE) ? Companion_getInstance_22().ZERO : Companion_getInstance_22().ONE;
    }
    if (this.equals(Companion_getInstance_22().ONE)) {
      return modulus_0.equals(Companion_getInstance_22().ONE) ? Companion_getInstance_22().ZERO : Companion_getInstance_22().ONE;
    }
    if (this.equals(Companion_getInstance_22().ZERO) && exponent_0.ur_1 >= 0) {
      return Companion_getInstance_22().ZERO;
    }
    if (this.equals(Companion_getInstance_22().vs_1[1]) && !exponent_0.testBit(0)) {
      return modulus_0.equals(Companion_getInstance_22().ONE) ? Companion_getInstance_22().ZERO : Companion_getInstance_22().ONE;
    }
    var invertResult = exponent_0.ur_1 < 0;
    if (invertResult) {
      exponent_0 = exponent_0.unaryMinus();
    }
    var tmp;
    if (this.ur_1 < 0 || this.br(modulus_0) >= 0) {
      tmp = this.rem(modulus_0);
    } else {
      tmp = this;
    }
    var base = tmp;
    var result;
    if (modulus_0.testBit(0)) {
      result = oddModPow(base, exponent_0, modulus_0);
    } else {
      var p = _get_lowestSetBit__xjmtq(modulus_0);
      var m1 = modulus_0.shr(p);
      var m2 = Companion_getInstance_22().ONE.shl(p);
      var tmp_0;
      if (this.ur_1 < 0 || this.br(m1) >= 0) {
        tmp_0 = this.rem(m1);
      } else {
        tmp_0 = this;
      }
      var base2 = tmp_0;
      var tmp_1;
      if (m1.equals(Companion_getInstance_22().ONE)) {
        tmp_1 = Companion_getInstance_22().ZERO;
      } else {
        tmp_1 = oddModPow(base2, exponent_0, m1);
      }
      var a1 = tmp_1;
      var a2 = modPow2(base, exponent_0, p);
      var y1 = m2.modInverse(m1);
      var y2 = m1.modInverse(m2);
      if (modulus_0.vr_1.length < 33554432) {
        result = a1.times(m2).times(y1).plus(a2.times(m1).times(y2)).rem(modulus_0);
      } else {
        var t1 = MutableBigInteger.rr();
        MutableBigInteger.qr(a1.times(m2)).fw(MutableBigInteger.qr(y1), t1);
        var t2 = MutableBigInteger.rr();
        MutableBigInteger.qr(a2.times(m1)).fw(MutableBigInteger.qr(y2), t2);
        t1.ku(t2);
        var q = MutableBigInteger.rr();
        result = ensureNotNull(t1.pu(MutableBigInteger.qr(modulus_0), q)).dw();
      }
    }
    return invertResult ? result.modInverse(modulus_0) : result;
  }
  modInverse(modulus) {
    // Inline function 'com.macrofocus.common.math.big.castTo' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var modulus_0 = modulus;
    if (!(modulus_0.ur_1 === 1)) {
      throw ArithmeticException.cc('BigInteger: modulus not positive');
    }
    if (modulus_0.equals(Companion_getInstance_22().ONE)) {
      return Companion_getInstance_22().ZERO;
    }
    var modVal = this;
    if (this.ur_1 < 0 || this.cu(modulus_0) >= 0) {
      modVal = this.rem(modulus_0);
    }
    if (modVal.equals(Companion_getInstance_22().ONE)) {
      return Companion_getInstance_22().ONE;
    }
    var a = MutableBigInteger.qr(modVal);
    var b = MutableBigInteger.qr(modulus_0);
    var result = a.gw(b);
    return ensureNotNull(result).lu(1);
  }
  shl(n) {
    if (this.ur_1 === 0) {
      return Companion_getInstance_22().ZERO;
    }
    var tmp;
    if (n > 0) {
      tmp = CommonBigInteger.ov(shl(Companion_getInstance_22(), this.vr_1, n), this.ur_1);
    } else if (n === 0) {
      tmp = this;
    } else {
      tmp = shiftRightImpl(this, -n | 0);
    }
    return tmp;
  }
  shr(n) {
    if (this.ur_1 === 0) {
      return Companion_getInstance_22().ZERO;
    }
    var tmp;
    if (n > 0) {
      tmp = shiftRightImpl(this, n);
    } else if (n === 0) {
      tmp = this;
    } else {
      tmp = CommonBigInteger.ov(shl(Companion_getInstance_22(), this.vr_1, -n | 0), this.ur_1);
    }
    return tmp;
  }
  and(other) {
    // Inline function 'com.macrofocus.common.math.big.castTo' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var other_0 = other;
    var tmp0 = _get_intLength__55caik(this);
    // Inline function 'kotlin.math.max' call
    var b = _get_intLength__55caik(other_0);
    var tmp$ret$3 = Math.max(tmp0, b);
    var result = new Int32Array(tmp$ret$3);
    var inductionVariable = 0;
    var last = result.length - 1 | 0;
    if (inductionVariable <= last)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        result[i] = getInt(this, (result.length - i | 0) - 1 | 0) & getInt(other_0, (result.length - i | 0) - 1 | 0);
      }
       while (inductionVariable <= last);
    return Companion_getInstance_22().ofIntArray(result);
  }
  or(other) {
    // Inline function 'com.macrofocus.common.math.big.castTo' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var other_0 = other;
    var tmp0 = _get_intLength__55caik(this);
    // Inline function 'kotlin.math.max' call
    var b = _get_intLength__55caik(other_0);
    var tmp$ret$3 = Math.max(tmp0, b);
    var result = new Int32Array(tmp$ret$3);
    var inductionVariable = 0;
    var last = result.length - 1 | 0;
    if (inductionVariable <= last)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        result[i] = getInt(this, (result.length - i | 0) - 1 | 0) | getInt(other_0, (result.length - i | 0) - 1 | 0);
      }
       while (inductionVariable <= last);
    return Companion_getInstance_22().ofIntArray(result);
  }
  xor(other) {
    // Inline function 'com.macrofocus.common.math.big.castTo' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var other_0 = other;
    var tmp0 = _get_intLength__55caik(this);
    // Inline function 'kotlin.math.max' call
    var b = _get_intLength__55caik(other_0);
    var tmp$ret$3 = Math.max(tmp0, b);
    var result = new Int32Array(tmp$ret$3);
    var inductionVariable = 0;
    var last = result.length - 1 | 0;
    if (inductionVariable <= last)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        result[i] = getInt(this, (result.length - i | 0) - 1 | 0) ^ getInt(other_0, (result.length - i | 0) - 1 | 0);
      }
       while (inductionVariable <= last);
    return Companion_getInstance_22().ofIntArray(result);
  }
  not() {
    var result = new Int32Array(_get_intLength__55caik(this));
    var inductionVariable = 0;
    var last = result.length - 1 | 0;
    if (inductionVariable <= last)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        result[i] = ~getInt(this, (result.length - i | 0) - 1 | 0);
      }
       while (inductionVariable <= last);
    return Companion_getInstance_22().ofIntArray(result);
  }
  andNot(other) {
    // Inline function 'com.macrofocus.common.math.big.castTo' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var other_0 = other;
    var tmp0 = _get_intLength__55caik(this);
    // Inline function 'kotlin.math.max' call
    var b = _get_intLength__55caik(other_0);
    var tmp$ret$3 = Math.max(tmp0, b);
    var result = new Int32Array(tmp$ret$3);
    var inductionVariable = 0;
    var last = result.length - 1 | 0;
    if (inductionVariable <= last)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        result[i] = getInt(this, (result.length - i | 0) - 1 | 0) & ~getInt(other_0, (result.length - i | 0) - 1 | 0);
      }
       while (inductionVariable <= last);
    return Companion_getInstance_22().ofIntArray(result);
  }
  testBit(n) {
    if (n < 0) {
      throw ArithmeticException.cc('Negative bit address');
    }
    return !((getInt(this, n >>> 5 | 0) & 1 << (n & 31)) === 0);
  }
  get(n) {
    return this.testBit(n);
  }
  set(n, b) {
    return b ? this.setBit(n) : this.clearBit(n);
  }
  setBit(n) {
    if (n < 0) {
      throw ArithmeticException.cc('Negative bit address');
    }
    var intNum = n >>> 5 | 0;
    var tmp0 = _get_intLength__55caik(this);
    // Inline function 'kotlin.math.max' call
    var b = intNum + 2 | 0;
    var tmp$ret$0 = Math.max(tmp0, b);
    var result = new Int32Array(tmp$ret$0);
    var inductionVariable = 0;
    var last = result.length - 1 | 0;
    if (inductionVariable <= last)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        result[(result.length - i | 0) - 1 | 0] = getInt(this, i);
      }
       while (inductionVariable <= last);
    result[(result.length - intNum | 0) - 1 | 0] = result[(result.length - intNum | 0) - 1 | 0] | 1 << (n & 31);
    return Companion_getInstance_22().ofIntArray(result);
  }
  clearBit(n) {
    if (n < 0) {
      throw ArithmeticException.cc('Negative bit address');
    }
    var intNum = n >>> 5 | 0;
    var tmp0 = _get_intLength__55caik(this);
    // Inline function 'kotlin.math.max' call
    var b = ((n + 1 | 0) >>> 5 | 0) + 1 | 0;
    var tmp$ret$0 = Math.max(tmp0, b);
    var result = new Int32Array(tmp$ret$0);
    var inductionVariable = 0;
    var last = result.length - 1 | 0;
    if (inductionVariable <= last)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        result[(result.length - i | 0) - 1 | 0] = getInt(this, i);
      }
       while (inductionVariable <= last);
    result[(result.length - intNum | 0) - 1 | 0] = result[(result.length - intNum | 0) - 1 | 0] & ~(1 << (n & 31));
    return Companion_getInstance_22().ofIntArray(result);
  }
  flipBit(n) {
    if (n < 0) {
      throw ArithmeticException.cc('Negative bit address');
    }
    var intNum = n >>> 5 | 0;
    var tmp0 = _get_intLength__55caik(this);
    // Inline function 'kotlin.math.max' call
    var b = intNum + 2 | 0;
    var tmp$ret$0 = Math.max(tmp0, b);
    var result = new Int32Array(tmp$ret$0);
    var inductionVariable = 0;
    var last = result.length - 1 | 0;
    if (inductionVariable <= last)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        result[(result.length - i | 0) - 1 | 0] = getInt(this, i);
      }
       while (inductionVariable <= last);
    result[(result.length - intNum | 0) - 1 | 0] = result[(result.length - intNum | 0) - 1 | 0] ^ 1 << (n & 31);
    return Companion_getInstance_22().ofIntArray(result);
  }
  zq() {
    var n = this.xr_1 - 1 | 0;
    if (n === -1) {
      var m = this.vr_1;
      var len = m.length;
      if (len === 0) {
        n = 0;
      } else {
        var magBitLength = ((len - 1 | 0) << 5) + Companion_getInstance_22().qv(this.vr_1[0]) | 0;
        if (this.ur_1 < 0) {
          var pow2 = bitCount(this.vr_1[0]) === 1;
          var i = 1;
          while (i < len && pow2) {
            pow2 = this.vr_1[i] === 0;
            i = i + 1 | 0;
          }
          n = pow2 ? magBitLength - 1 | 0 : magBitLength;
        } else {
          n = magBitLength;
        }
      }
      this.xr_1 = n + 1 | 0;
    }
    return n;
  }
  ar() {
    var bc = this.wr_1 - 1 | 0;
    if (bc === -1) {
      bc = 0;
      var inductionVariable = 0;
      var last = this.vr_1.length - 1 | 0;
      if (inductionVariable <= last)
        do {
          var i = inductionVariable;
          inductionVariable = inductionVariable + 1 | 0;
          bc = bc + bitCount(this.vr_1[i]) | 0;
        }
         while (inductionVariable <= last);
      if (this.ur_1 < 0) {
        var magTrailingZeroCount = 0;
        var j;
        j = this.vr_1.length - 1 | 0;
        while (this.vr_1[j] === 0) {
          magTrailingZeroCount = magTrailingZeroCount + 32 | 0;
          j = j - 1 | 0;
        }
        magTrailingZeroCount = magTrailingZeroCount + numberOfTrailingZeros(this.vr_1[j]) | 0;
        bc = bc + (magTrailingZeroCount - 1 | 0) | 0;
      }
      this.wr_1 = bc + 1 | 0;
    }
    return bc;
  }
  isProbablePrime(certainty) {
    if (certainty <= 0) {
      return true;
    }
    var w = this.absoluteValue;
    if (w.equals(Companion_getInstance_22().TWO)) {
      return true;
    }
    return !w.testBit(0) || w.equals(Companion_getInstance_22().ONE) ? false : w.as(certainty, null);
  }
  br(other) {
    // Inline function 'com.macrofocus.common.math.big.castTo' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var other_0 = other;
    if (this.ur_1 === other_0.ur_1) {
      switch (this.ur_1) {
        case 1:
          return this.cu(other_0);
        case -1:
          return other_0.cu(this);
        default:
          return 0;
      }
    }
    return this.ur_1 > other_0.ur_1 ? 1 : -1;
  }
  d(other) {
    return this.br((!(other == null) ? isInterface(other, BigInteger) : false) ? other : THROW_CCE());
  }
  cu(other) {
    var m1 = this.vr_1;
    var len1 = m1.length;
    var m2 = other.vr_1;
    var len2 = m2.length;
    if (len1 < len2) {
      return -1;
    }
    if (len1 > len2) {
      return 1;
    }
    var inductionVariable = 0;
    if (inductionVariable < len1)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        var a = m1[i];
        var b = m2[i];
        if (!(a === b)) {
          return (fromInt_0(a) & 4294967295n) < (fromInt_0(b) & 4294967295n) ? -1 : 1;
        }
      }
       while (inductionVariable < len1);
    return 0;
  }
  equals(other) {
    if (other === this) {
      return true;
    }
    if (!(other instanceof CommonBigInteger)) {
      return false;
    }
    var xInt = other instanceof CommonBigInteger ? other : THROW_CCE();
    if (!(ensureNotNull(xInt).ur_1 === this.ur_1)) {
      return false;
    }
    var m = this.vr_1;
    var len = m.length;
    var xm = xInt.vr_1;
    if (!(len === xm.length)) {
      return false;
    }
    var inductionVariable = 0;
    if (inductionVariable < len)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        if (!(xm[i] === m[i])) {
          return false;
        }
      }
       while (inductionVariable < len);
    return true;
  }
  min(other) {
    return this.br(other) < 0 ? this : other;
  }
  max(other) {
    return this.br(other) > 0 ? this : other;
  }
  hashCode() {
    var hashCode = 0;
    var inductionVariable = 0;
    var last = this.vr_1.length - 1 | 0;
    if (inductionVariable <= last)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        hashCode = imul_0(31, hashCode) + convertToInt(fromInt_0(this.vr_1[i]) & 4294967295n) | 0;
      }
       while (inductionVariable <= last);
    return imul_0(hashCode, this.ur_1);
  }
  toStringWithRadix(radix) {
    var radix_0 = radix;
    if (this.ur_1 === 0) {
      return '0';
    }
    if (radix_0 < 2 || radix_0 > 36) {
      radix_0 = 10;
    }
    if (this.vr_1.length <= 20) {
      return smallToString(this, radix_0);
    }
    var sb = StringBuilder.y();
    if (this.ur_1 < 0) {
      toString_7(Companion_getInstance_22(), this.unaryMinus(), sb, radix_0, 0);
      sb = insertChar(sb, 0, _Char___init__impl__6a9atx(45));
    } else {
      toString_7(Companion_getInstance_22(), this, sb, radix_0, 0);
    }
    return sb.toString();
  }
  toString() {
    return this.toStringWithRadix(10);
  }
  toByteArray() {
    var byteLen = (this.bitLength / 8 | 0) + 1 | 0;
    var byteArray = new Int8Array(byteLen);
    var i = byteLen - 1 | 0;
    var bytesCopied = 4;
    var nextInt = 0;
    var intIndex = 0;
    while (i >= 0) {
      if (bytesCopied === 4) {
        var _unary__edvuaz = intIndex;
        intIndex = _unary__edvuaz + 1 | 0;
        nextInt = getInt(this, _unary__edvuaz);
        bytesCopied = 1;
      } else {
        nextInt = nextInt >>> 8 | 0;
        bytesCopied = bytesCopied + 1 | 0;
      }
      byteArray[i] = toByte(nextInt);
      i = i - 1 | 0;
    }
    return byteArray;
  }
  toInt() {
    var result = 0;
    result = getInt(this, 0);
    return result;
  }
  toLong() {
    var result = 0n;
    var inductionVariable = 1;
    if (0 <= inductionVariable)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + -1 | 0;
        result = add_0(shiftLeft(result, 32), fromInt_0(getInt(this, i)) & 4294967295n);
      }
       while (0 <= inductionVariable);
    return result;
  }
  toByte() {
    return toByte(this.toInt());
  }
  toChar() {
    return numberToChar(this.toInt());
  }
  toShort() {
    return toShort(this.toInt());
  }
  toFloat() {
    return this.toInt();
  }
  toDouble() {
    return toNumber_0(this.toLong());
  }
  toLongExact() {
    var tmp;
    if (this.vr_1.length <= 2 && this.bitLength <= 63) {
      tmp = this.toLong();
    } else {
      throw ArithmeticException.cc('BigInteger out of long range');
    }
    return tmp;
  }
  toIntExact() {
    var tmp;
    if (this.vr_1.length <= 1 && this.bitLength <= 31) {
      tmp = this.toInt();
    } else {
      throw ArithmeticException.cc('BigInteger out of int range');
    }
    return tmp;
  }
  toShortExact() {
    if (this.vr_1.length <= 1 && this.bitLength <= 31) {
      var value = this.toInt();
      if (value >= -32768 && value <= 32767) {
        return this.toShort();
      }
    }
    throw ArithmeticException.cc('BigInteger out of short range');
  }
  toByteExact() {
    if (this.vr_1.length <= 1 && this.bitLength <= 31) {
      var value = this.toInt();
      if (value >= -128 && value <= 127) {
        return this.toByte();
      }
    }
    throw ArithmeticException.cc('BigInteger out of byte range');
  }
  get absoluteValue() {
    return this.mq();
  }
  get signum() {
    return this.nq();
  }
  get bitLength() {
    return this.zq();
  }
  get bitCount() {
    return this.ar();
  }
}
class Companion_23 {
  constructor() {
    Companion_instance_23 = this;
    this.UNLIMITED = new MathContext(0, RoundingMode_HALF_UP_getInstance());
    this.DECIMAL32 = new MathContext(7, RoundingMode_HALF_EVEN_getInstance());
    this.DECIMAL64 = new MathContext(16, RoundingMode_HALF_EVEN_getInstance());
    this.DECIMAL128 = new MathContext(34, RoundingMode_HALF_EVEN_getInstance());
  }
  hw() {
    return this.UNLIMITED;
  }
  iw() {
    return this.DECIMAL32;
  }
  jw() {
    return this.DECIMAL64;
  }
  kw() {
    return this.DECIMAL128;
  }
}
class MathContext {
  constructor(precision, roundingMode) {
    Companion_getInstance_23();
    precision = precision === VOID ? 9 : precision;
    roundingMode = roundingMode === VOID ? RoundingMode_HALF_UP_getInstance() : roundingMode;
    this.precision = precision;
    this.roundingMode = roundingMode;
    // Inline function 'kotlin.require' call
    // Inline function 'kotlin.require' call
    if (!(this.precision >= 0)) {
      var message = 'Failed requirement.';
      throw IllegalArgumentException.w(toString_1(message));
    }
  }
  pq() {
    return this.precision;
  }
  lw() {
    return this.roundingMode;
  }
  mi() {
    return this.precision;
  }
  ni() {
    return this.roundingMode;
  }
  mw(precision, roundingMode) {
    return new MathContext(precision, roundingMode);
  }
  copy(precision, roundingMode, $super) {
    precision = precision === VOID ? this.precision : precision;
    roundingMode = roundingMode === VOID ? this.roundingMode : roundingMode;
    return $super === VOID ? this.mw(precision, roundingMode) : $super.mw.call(this, precision, roundingMode);
  }
  toString() {
    return 'MathContext(precision=' + this.precision + ', roundingMode=' + this.roundingMode.toString() + ')';
  }
  hashCode() {
    var result = this.precision;
    result = imul_0(result, 31) + this.roundingMode.hashCode() | 0;
    return result;
  }
  equals(other) {
    if (this === other)
      return true;
    if (!(other instanceof MathContext))
      return false;
    if (!(this.precision === other.precision))
      return false;
    if (!this.roundingMode.equals(other.roundingMode))
      return false;
    return true;
  }
}
class Companion_24 {
  constructor() {
    Companion_instance_24 = this;
    this.hu_1 = MutableBigInteger.jx(1);
    this.iu_1 = 6;
    this.ju_1 = 3;
  }
  uw(n, d) {
    var dLong = fromInt_0(d) & 4294967295n;
    var r;
    var q;
    if (dLong === 1n) {
      q = fromInt_0(convertToInt(n));
      r = 0n;
      return shiftLeft(r, 32) | q & 4294967295n;
    }
    q = divide(shiftRightUnsigned(n, 1), shiftRightUnsigned(dLong, 1));
    r = subtract_0(n, multiply_0(q, dLong));
    while (r < 0n) {
      r = add_0(r, dLong);
      var _unary__edvuaz = q;
      q = subtract_0(_unary__edvuaz, get_ONE());
    }
    while (r >= dLong) {
      r = subtract_0(r, dLong);
      var _unary__edvuaz_0 = q;
      q = add_0(_unary__edvuaz_0, get_ONE());
    }
    return shiftLeft(r, 32) | q & 4294967295n;
  }
  ww(a, b) {
    var a_0 = a;
    var b_0 = b;
    if (b_0 === 0) {
      return a_0;
    }
    if (a_0 === 0) {
      return b_0;
    }
    var aZeros = numberOfTrailingZeros(a_0);
    var bZeros = numberOfTrailingZeros(b_0);
    a_0 = a_0 >>> aZeros | 0;
    b_0 = b_0 >>> bZeros | 0;
    var t = aZeros < bZeros ? aZeros : bZeros;
    while (!(a_0 === b_0)) {
      if ((a_0 + -2147483648 | 0) > (b_0 + -2147483648 | 0)) {
        a_0 = a_0 - b_0 | 0;
        a_0 = a_0 >>> numberOfTrailingZeros(a_0) | 0;
      } else {
        b_0 = b_0 - a_0 | 0;
        b_0 = b_0 >>> numberOfTrailingZeros(b_0) | 0;
      }
    }
    return a_0 << t;
  }
  kx(val) {
    var t = val;
    t = imul_0(t, 2 - imul_0(val, t) | 0);
    t = imul_0(t, 2 - imul_0(val, t) | 0);
    t = imul_0(t, 2 - imul_0(val, t) | 0);
    t = imul_0(t, 2 - imul_0(val, t) | 0);
    return t;
  }
  uv(val) {
    var t = val;
    t = multiply_0(t, subtract_0(numberToLong(2), multiply_0(val, t)));
    t = multiply_0(t, subtract_0(numberToLong(2), multiply_0(val, t)));
    t = multiply_0(t, subtract_0(numberToLong(2), multiply_0(val, t)));
    t = multiply_0(t, subtract_0(numberToLong(2), multiply_0(val, t)));
    t = multiply_0(t, subtract_0(numberToLong(2), multiply_0(val, t)));
    // Inline function 'kotlin.require' call
    // Inline function 'kotlin.require' call
    if (!(multiply_0(t, val) === 1n)) {
      var message = 'Failed requirement.';
      throw IllegalArgumentException.w(toString_1(message));
    }
    return t;
  }
  lx(mod, k) {
    return this.ix(MutableBigInteger.jx(1), MutableBigInteger.ow(mod), k);
  }
  ix(c, p, k) {
    var temp = MutableBigInteger.rr();
    var r = -this.kx(p.mr_1[(p.pr_1 + p.nr_1 | 0) - 1 | 0]) | 0;
    var i = 0;
    var numWords = k >> 5;
    while (i < numWords) {
      var v = imul_0(r, c.mr_1[(c.pr_1 + c.nr_1 | 0) - 1 | 0]);
      p.mx(v, temp);
      c.ku(temp);
      c.nr_1 = c.nr_1 - 1 | 0;
      i = i + 1 | 0;
    }
    var numBits = k & 31;
    if (!(numBits === 0)) {
      var v_0 = imul_0(r, c.mr_1[(c.pr_1 + c.nr_1 | 0) - 1 | 0]);
      v_0 = v_0 & ((1 << numBits) - 1 | 0);
      p.mx(v_0, temp);
      c.ku(temp);
      c.vw(numBits);
    }
    while (c.nw(p) >= 0) {
      c.sw(p);
    }
    return c;
  }
}
class MutableBigInteger {
  ex() {
    return this.nr_1 === 1 && this.mr_1[this.pr_1] === 1;
  }
  qu() {
    return this.nr_1 === 0;
  }
  dx() {
    return this.nr_1 === 0 || (this.mr_1[(this.pr_1 + this.nr_1 | 0) - 1 | 0] & 1) === 0;
  }
  ou() {
    return this.qu() ? false : (this.mr_1[(this.pr_1 + this.nr_1 | 0) - 1 | 0] & 1) === 1;
  }
  static rr() {
    Companion_getInstance_24();
    var $this = createThis(this);
    init_com_macrofocus_common_math_big_MutableBigInteger($this);
    $this.mr_1 = new Int32Array(1);
    $this.nr_1 = 0;
    return $this;
  }
  static jx(val) {
    Companion_getInstance_24();
    var $this = createThis(this);
    init_com_macrofocus_common_math_big_MutableBigInteger($this);
    $this.mr_1 = new Int32Array(1);
    $this.nr_1 = 1;
    $this.mr_1[0] = val;
    return $this;
  }
  static fu(val) {
    Companion_getInstance_24();
    var $this = createThis(this);
    init_com_macrofocus_common_math_big_MutableBigInteger($this);
    $this.mr_1 = val;
    $this.nr_1 = val.length;
    return $this;
  }
  static qr(b) {
    Companion_getInstance_24();
    var $this = createThis(this);
    init_com_macrofocus_common_math_big_MutableBigInteger($this);
    $this.nr_1 = b.vr_1.length;
    $this.mr_1 = copyOf(b.vr_1, $this.nr_1);
    return $this;
  }
  static ow(val) {
    Companion_getInstance_24();
    var $this = createThis(this);
    init_com_macrofocus_common_math_big_MutableBigInteger($this);
    $this.nr_1 = val.nr_1;
    $this.mr_1 = copyOfRange_0(val.mr_1, val.pr_1, val.pr_1 + $this.nr_1 | 0);
    return $this;
  }
  lu(sign) {
    var tmp;
    if (this.nr_1 === 0 || sign === 0) {
      tmp = Companion_getInstance_22().ZERO;
    } else {
      tmp = CommonBigInteger.ov(_get_magnitudeArray__ns4ohu(this), sign);
    }
    return tmp;
  }
  dw() {
    this.vv();
    return this.lu(this.qu() ? 0 : 1);
  }
  mu(sign, scale) {
    if (this.nr_1 === 0 || sign === 0) {
      return Companion_getInstance_21().wu(scale);
    }
    var mag = _get_magnitudeArray__ns4ohu(this);
    var len = mag.length;
    var d = mag[0];
    if (len > 2 || (d < 0 && len === 2)) {
      return CommonBigDecimal.eu(CommonBigInteger.ov(mag, sign), -9223372036854775808n, scale, 0);
    }
    var tmp;
    if (len === 2) {
      tmp = fromInt_0(mag[1]) & 4294967295n | shiftLeft(fromInt_0(d) & 4294967295n, 32);
    } else {
      tmp = fromInt_0(d) & 4294967295n;
    }
    var v = tmp;
    return Companion_getInstance_21().ofScaledLong(sign === -1 ? negate_0(v) : v, scale);
  }
  nu(sign) {
    if (this.nr_1 === 0 || sign === 0) {
      return 0n;
    }
    var mag = _get_magnitudeArray__ns4ohu(this);
    var len = mag.length;
    var d = mag[0];
    if (len > 2 || (d < 0 && len === 2)) {
      return -9223372036854775808n;
    }
    var tmp;
    if (len === 2) {
      tmp = fromInt_0(mag[1]) & 4294967295n | shiftLeft(fromInt_0(d) & 4294967295n, 32);
    } else {
      tmp = fromInt_0(d) & 4294967295n;
    }
    var v = tmp;
    return sign === -1 ? negate_0(v) : v;
  }
  u4() {
    this.nr_1 = 0;
    this.pr_1 = this.nr_1;
    var index = 0;
    var n = this.mr_1.length;
    while (index < n) {
      this.mr_1[index] = 0;
      index = index + 1 | 0;
    }
  }
  nx() {
    this.nr_1 = 0;
    this.pr_1 = this.nr_1;
  }
  nw(b) {
    var blen = b.nr_1;
    if (this.nr_1 < blen) {
      return -1;
    }
    if (this.nr_1 > blen) {
      return 1;
    }
    var bval = b.mr_1;
    var i = this.pr_1;
    var j = b.pr_1;
    while (i < (this.nr_1 + this.pr_1 | 0)) {
      var b1 = this.mr_1[i] + -2147483648 | 0;
      var b2 = bval[j] + -2147483648 | 0;
      if (b1 < b2) {
        return -1;
      }
      if (b1 > b2) {
        return 1;
      }
      i = i + 1 | 0;
      j = j + 1 | 0;
    }
    return 0;
  }
  ru(b) {
    var blen = b.nr_1;
    var len = this.nr_1;
    if (len <= 0) {
      return blen <= 0 ? 0 : -1;
    }
    if (len > blen) {
      return 1;
    }
    if (len < (blen - 1 | 0)) {
      return -1;
    }
    var bval = b.mr_1;
    var bstart = 0;
    var carry = 0;
    if (!(len === blen)) {
      if (bval[bstart] === 1) {
        bstart = bstart + 1 | 0;
        carry = -2147483648;
      } else {
        return -1;
      }
    }
    var val = this.mr_1;
    var i = this.pr_1;
    var j = bstart;
    while (i < (len + this.pr_1 | 0)) {
      var _unary__edvuaz = j;
      j = _unary__edvuaz + 1 | 0;
      var bv = bval[_unary__edvuaz];
      var tmp0 = fromInt_0(bv >>> 1 | 0);
      // Inline function 'kotlin.Long.plus' call
      var other = carry;
      var hb = add_0(tmp0, fromInt_0(other)) & 4294967295n;
      var _unary__edvuaz_0 = i;
      i = _unary__edvuaz_0 + 1 | 0;
      var v = fromInt_0(val[_unary__edvuaz_0]) & 4294967295n;
      if (!(v === hb)) {
        return v < hb ? -1 : 1;
      }
      carry = (bv & 1) << 31;
    }
    return carry === 0 ? 0 : -1;
  }
  vv() {
    if (this.nr_1 === 0) {
      this.pr_1 = 0;
      return Unit_instance;
    }
    var index = this.pr_1;
    if (!(this.mr_1[index] === 0)) {
      return Unit_instance;
    }
    var indexBound = index + this.nr_1 | 0;
    do {
      index = index + 1 | 0;
    }
     while (index < indexBound && this.mr_1[index] === 0);
    var numZeros = index - this.pr_1 | 0;
    this.nr_1 = this.nr_1 - numZeros | 0;
    this.pr_1 = this.nr_1 === 0 ? 0 : this.pr_1 + numZeros | 0;
  }
  wv() {
    var result = new Int32Array(this.nr_1);
    var inductionVariable = 0;
    var last = this.nr_1;
    if (inductionVariable < last)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        result[i] = this.mr_1[this.pr_1 + i | 0];
      }
       while (inductionVariable < last);
    return result;
  }
  ox(val, length) {
    this.mr_1 = val;
    this.nr_1 = length;
    this.pr_1 = 0;
  }
  px(src) {
    var len = src.nr_1;
    if (this.mr_1.length < len) {
      this.mr_1 = new Int32Array(len);
    }
    arrayCopy_0(src.mr_1, src.pr_1, this.mr_1, 0, len);
    this.nr_1 = len;
    this.pr_1 = 0;
  }
  toString() {
    var b = this.lu(1);
    return b.toString();
  }
  pw(n) {
    if ((n / 32 | 0) >= this.nr_1) {
      this.nx();
    } else {
      this.vw(n);
    }
  }
  vw(n) {
    if (this.nr_1 === 0) {
      return Unit_instance;
    }
    var nInts = n >>> 5 | 0;
    var nBits = n & 31;
    this.nr_1 = this.nr_1 - nInts | 0;
    if (nBits === 0) {
      return Unit_instance;
    }
    var bitsInHighWord = Companion_getInstance_22().qv(this.mr_1[this.pr_1]);
    if (nBits >= bitsInHighWord) {
      primitiveLeftShift_0(this, 32 - nBits | 0);
      this.nr_1 = this.nr_1 - 1 | 0;
    } else {
      primitiveRightShift_0(this, nBits);
    }
  }
  qx(n) {
    if (n > 0) {
      this.rw(n);
    }
  }
  rw(n) {
    if (this.nr_1 === 0) {
      return Unit_instance;
    }
    var nInts = n >>> 5 | 0;
    var nBits = n & 31;
    var bitsInHighWord = Companion_getInstance_22().qv(this.mr_1[this.pr_1]);
    if (n <= (32 - bitsInHighWord | 0)) {
      primitiveLeftShift_0(this, nBits);
      return Unit_instance;
    }
    var newLen = (this.nr_1 + nInts | 0) + 1 | 0;
    if (nBits <= (32 - bitsInHighWord | 0)) {
      newLen = newLen - 1 | 0;
    }
    if (this.mr_1.length < newLen) {
      var result = new Int32Array(newLen);
      var inductionVariable = 0;
      var last = this.nr_1;
      if (inductionVariable < last)
        do {
          var i = inductionVariable;
          inductionVariable = inductionVariable + 1 | 0;
          result[i] = this.mr_1[this.pr_1 + i | 0];
        }
         while (inductionVariable < last);
      this.ox(result, newLen);
    } else if ((this.mr_1.length - this.pr_1 | 0) >= newLen) {
      var inductionVariable_0 = 0;
      var last_0 = newLen - this.nr_1 | 0;
      if (inductionVariable_0 < last_0)
        do {
          var i_0 = inductionVariable_0;
          inductionVariable_0 = inductionVariable_0 + 1 | 0;
          this.mr_1[(this.pr_1 + this.nr_1 | 0) + i_0 | 0] = 0;
        }
         while (inductionVariable_0 < last_0);
    } else {
      var inductionVariable_1 = 0;
      var last_1 = this.nr_1;
      if (inductionVariable_1 < last_1)
        do {
          var i_1 = inductionVariable_1;
          inductionVariable_1 = inductionVariable_1 + 1 | 0;
          this.mr_1[i_1] = this.mr_1[this.pr_1 + i_1 | 0];
        }
         while (inductionVariable_1 < last_1);
      var inductionVariable_2 = this.nr_1;
      var last_2 = newLen;
      if (inductionVariable_2 < last_2)
        do {
          var i_2 = inductionVariable_2;
          inductionVariable_2 = inductionVariable_2 + 1 | 0;
          this.mr_1[i_2] = 0;
        }
         while (inductionVariable_2 < last_2);
      this.pr_1 = 0;
    }
    this.nr_1 = newLen;
    if (nBits === 0) {
      return Unit_instance;
    }
    if (nBits <= (32 - bitsInHighWord | 0)) {
      primitiveLeftShift_0(this, nBits);
    } else {
      primitiveRightShift_0(this, 32 - nBits | 0);
    }
  }
  ku(addend) {
    var x = this.nr_1;
    var y = addend.nr_1;
    var resultLen = this.nr_1 > addend.nr_1 ? this.nr_1 : addend.nr_1;
    var result = this.mr_1.length < resultLen ? new Int32Array(resultLen) : this.mr_1;
    var rstart = result.length - 1 | 0;
    var sum;
    var carry = 0n;
    while (x > 0 && y > 0) {
      x = x - 1 | 0;
      y = y - 1 | 0;
      sum = add_0(add_0(fromInt_0(this.mr_1[x + this.pr_1 | 0]) & 4294967295n, fromInt_0(addend.mr_1[y + addend.pr_1 | 0]) & 4294967295n), carry);
      var tmp = result;
      var _unary__edvuaz = rstart;
      rstart = _unary__edvuaz - 1 | 0;
      tmp[_unary__edvuaz] = convertToInt(sum);
      carry = shiftRightUnsigned(sum, 32);
    }
    while (x > 0) {
      x = x - 1 | 0;
      if (carry === 0n && equals(result, this.mr_1) && rstart === (x + this.pr_1 | 0)) {
        return Unit_instance;
      }
      sum = add_0(fromInt_0(this.mr_1[x + this.pr_1 | 0]) & 4294967295n, carry);
      var tmp_0 = result;
      var _unary__edvuaz_0 = rstart;
      rstart = _unary__edvuaz_0 - 1 | 0;
      tmp_0[_unary__edvuaz_0] = convertToInt(sum);
      carry = shiftRightUnsigned(sum, 32);
    }
    while (y > 0) {
      y = y - 1 | 0;
      sum = add_0(fromInt_0(addend.mr_1[y + addend.pr_1 | 0]) & 4294967295n, carry);
      var tmp_1 = result;
      var _unary__edvuaz_1 = rstart;
      rstart = _unary__edvuaz_1 - 1 | 0;
      tmp_1[_unary__edvuaz_1] = convertToInt(sum);
      carry = shiftRightUnsigned(sum, 32);
    }
    if (carry > 0n) {
      resultLen = resultLen + 1 | 0;
      if (result.length < resultLen) {
        var temp = new Int32Array(resultLen);
        arrayCopy_0(result, 0, temp, 1, result.length);
        temp[0] = 1;
        result = temp;
      } else {
        var tmp_2 = result;
        var _unary__edvuaz_2 = rstart;
        rstart = _unary__edvuaz_2 - 1 | 0;
        tmp_2[_unary__edvuaz_2] = 1;
      }
    }
    this.mr_1 = result;
    this.nr_1 = resultLen;
    this.pr_1 = result.length - resultLen | 0;
  }
  rx(addend, n) {
    if (addend.qu()) {
      return Unit_instance;
    }
    var x = this.nr_1;
    var y = addend.nr_1 + n | 0;
    var resultLen = this.nr_1 > y ? this.nr_1 : y;
    var result = this.mr_1.length < resultLen ? new Int32Array(resultLen) : this.mr_1;
    var rstart = result.length - 1 | 0;
    var sum;
    var carry = 0n;
    while (x > 0 && y > 0) {
      x = x - 1 | 0;
      y = y - 1 | 0;
      var bval = (y + addend.pr_1 | 0) < addend.mr_1.length ? addend.mr_1[y + addend.pr_1 | 0] : 0;
      sum = add_0(add_0(fromInt_0(this.mr_1[x + this.pr_1 | 0]) & 4294967295n, fromInt_0(bval) & 4294967295n), carry);
      var tmp = result;
      var _unary__edvuaz = rstart;
      rstart = _unary__edvuaz - 1 | 0;
      tmp[_unary__edvuaz] = convertToInt(sum);
      carry = shiftRightUnsigned(sum, 32);
    }
    while (x > 0) {
      x = x - 1 | 0;
      if (carry === 0n && equals(result, this.mr_1) && rstart === (x + this.pr_1 | 0)) {
        return Unit_instance;
      }
      sum = add_0(fromInt_0(this.mr_1[x + this.pr_1 | 0]) & 4294967295n, carry);
      var tmp_0 = result;
      var _unary__edvuaz_0 = rstart;
      rstart = _unary__edvuaz_0 - 1 | 0;
      tmp_0[_unary__edvuaz_0] = convertToInt(sum);
      carry = shiftRightUnsigned(sum, 32);
    }
    while (y > 0) {
      y = y - 1 | 0;
      var bval_0 = (y + addend.pr_1 | 0) < addend.mr_1.length ? addend.mr_1[y + addend.pr_1 | 0] : 0;
      sum = add_0(fromInt_0(bval_0) & 4294967295n, carry);
      var tmp_1 = result;
      var _unary__edvuaz_1 = rstart;
      rstart = _unary__edvuaz_1 - 1 | 0;
      tmp_1[_unary__edvuaz_1] = convertToInt(sum);
      carry = shiftRightUnsigned(sum, 32);
    }
    if (carry > 0n) {
      resultLen = resultLen + 1 | 0;
      if (result.length < resultLen) {
        var temp = new Int32Array(resultLen);
        arrayCopy_0(result, 0, temp, 1, result.length);
        temp[0] = 1;
        result = temp;
      } else {
        var tmp_2 = result;
        var _unary__edvuaz_2 = rstart;
        rstart = _unary__edvuaz_2 - 1 | 0;
        tmp_2[_unary__edvuaz_2] = 1;
      }
    }
    this.mr_1 = result;
    this.nr_1 = resultLen;
    this.pr_1 = result.length - resultLen | 0;
  }
  qw(addend, n) {
    if (ensureNotNull(addend).qu()) {
      return Unit_instance;
    }
    var x = this.nr_1;
    var y = addend.nr_1 + n | 0;
    var resultLen = this.nr_1 > y ? this.nr_1 : y;
    var result;
    if (this.mr_1.length < resultLen) {
      result = new Int32Array(resultLen);
    } else {
      result = this.mr_1;
      fill_0(this.mr_1, this.pr_1 + this.nr_1 | 0, this.mr_1.length, 0);
    }
    var rstart = result.length - 1 | 0;
    arrayCopy_0(this.mr_1, this.pr_1, result, (rstart + 1 | 0) - x | 0, x);
    y = y - x | 0;
    rstart = rstart - x | 0;
    var tmp0 = y;
    // Inline function 'kotlin.math.min' call
    var b = addend.mr_1.length - addend.pr_1 | 0;
    var len = Math.min(tmp0, b);
    arrayCopy_0(addend.mr_1, addend.pr_1, result, (rstart + 1 | 0) - y | 0, len);
    var inductionVariable = ((rstart + 1 | 0) - y | 0) + len | 0;
    var last = rstart + 1 | 0;
    if (inductionVariable < last)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        result[i] = 0;
      }
       while (inductionVariable < last);
    this.mr_1 = result;
    this.nr_1 = resultLen;
    this.pr_1 = result.length - resultLen | 0;
  }
  tw(addend, n) {
    var a = MutableBigInteger.ow(addend);
    if ((a.pr_1 + a.nr_1 | 0) >= n) {
      a.pr_1 = (a.pr_1 + a.nr_1 | 0) - n | 0;
      a.nr_1 = n;
    }
    a.vv();
    this.ku(a);
  }
  sw(b) {
    var b_0 = b;
    var a = this;
    var result = this.mr_1;
    var sign = a.nw(b_0);
    if (sign === 0) {
      this.nx();
      return 0;
    }
    if (sign < 0) {
      var tmp = a;
      a = b_0;
      b_0 = tmp;
    }
    var resultLen = a.nr_1;
    if (result.length < resultLen) {
      result = new Int32Array(resultLen);
    }
    var diff = 0n;
    var x = a.nr_1;
    var y = b_0.nr_1;
    var rstart = result.length - 1 | 0;
    while (y > 0) {
      x = x - 1 | 0;
      y = y - 1 | 0;
      diff = subtract_0(subtract_0(fromInt_0(a.mr_1[x + a.pr_1 | 0]) & 4294967295n, fromInt_0(b_0.mr_1[y + b_0.pr_1 | 0]) & 4294967295n), fromInt_0(convertToInt(negate_0(shiftRight(diff, 32)))));
      var tmp_0 = result;
      var _unary__edvuaz = rstart;
      rstart = _unary__edvuaz - 1 | 0;
      tmp_0[_unary__edvuaz] = convertToInt(diff);
    }
    while (x > 0) {
      x = x - 1 | 0;
      var tmp0 = fromInt_0(a.mr_1[x + a.pr_1 | 0]) & 4294967295n;
      // Inline function 'kotlin.Long.minus' call
      var other = convertToInt(negate_0(shiftRight(diff, 32)));
      diff = subtract_0(tmp0, fromInt_0(other));
      var tmp_1 = result;
      var _unary__edvuaz_0 = rstart;
      rstart = _unary__edvuaz_0 - 1 | 0;
      tmp_1[_unary__edvuaz_0] = convertToInt(diff);
    }
    this.mr_1 = result;
    this.nr_1 = resultLen;
    this.pr_1 = this.mr_1.length - resultLen | 0;
    this.vv();
    return sign;
  }
  fw(y, z) {
    var xLen = this.nr_1;
    var yLen = y.nr_1;
    var newLen = xLen + yLen | 0;
    if (z.mr_1.length < newLen) {
      z.mr_1 = new Int32Array(newLen);
    }
    z.pr_1 = 0;
    z.nr_1 = newLen;
    var carry = 0n;
    // Inline function 'kotlin.run' call
    var j = yLen - 1 | 0;
    var k = (yLen + xLen | 0) - 1 | 0;
    while (j >= 0) {
      var product = add_0(multiply_0(fromInt_0(y.mr_1[j + y.pr_1 | 0]) & 4294967295n, fromInt_0(this.mr_1[(xLen - 1 | 0) + this.pr_1 | 0]) & 4294967295n), carry);
      z.mr_1[k] = convertToInt(product);
      carry = shiftRightUnsigned(product, 32);
      j = j - 1 | 0;
      k = k - 1 | 0;
    }
    z.mr_1[xLen - 1 | 0] = convertToInt(carry);
    var inductionVariable = xLen - 2 | 0;
    if (0 <= inductionVariable)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + -1 | 0;
        carry = 0n;
        var j_0 = yLen - 1 | 0;
        var k_0 = yLen + i | 0;
        while (j_0 >= 0) {
          var product_0 = add_0(add_0(multiply_0(fromInt_0(y.mr_1[j_0 + y.pr_1 | 0]) & 4294967295n, fromInt_0(this.mr_1[i + this.pr_1 | 0]) & 4294967295n), fromInt_0(z.mr_1[k_0]) & 4294967295n), carry);
          z.mr_1[k_0] = convertToInt(product_0);
          carry = shiftRightUnsigned(product_0, 32);
          j_0 = j_0 - 1 | 0;
          k_0 = k_0 - 1 | 0;
        }
        z.mr_1[i] = convertToInt(carry);
      }
       while (0 <= inductionVariable);
    z.vv();
  }
  mx(y, z) {
    if (y === 1) {
      z.px(this);
      return Unit_instance;
    }
    if (y === 0) {
      z.u4();
      return Unit_instance;
    }
    var ylong = fromInt_0(y) & 4294967295n;
    var tmp;
    if (z.mr_1.length < (this.nr_1 + 1 | 0)) {
      tmp = new Int32Array(this.nr_1 + 1 | 0);
    } else {
      tmp = z.mr_1;
    }
    var zval = tmp;
    var carry = 0n;
    var inductionVariable = this.nr_1 - 1 | 0;
    if (0 <= inductionVariable)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + -1 | 0;
        var product = add_0(multiply_0(ylong, fromInt_0(this.mr_1[i + this.pr_1 | 0]) & 4294967295n), carry);
        zval[i + 1 | 0] = convertToInt(product);
        carry = shiftRightUnsigned(product, 32);
      }
       while (0 <= inductionVariable);
    if (carry === 0n) {
      z.pr_1 = 1;
      z.nr_1 = this.nr_1;
    } else {
      z.pr_1 = 0;
      z.nr_1 = this.nr_1 + 1 | 0;
      zval[0] = convertToInt(carry);
    }
    z.mr_1 = zval;
  }
  sr(divisor, quotient) {
    var divisorLong = fromInt_0(divisor) & 4294967295n;
    if (this.nr_1 === 1) {
      var dividendValue = fromInt_0(this.mr_1[this.pr_1]) & 4294967295n;
      var q = convertToInt(divide(dividendValue, divisorLong));
      var r = convertToInt(subtract_0(dividendValue, multiply_0(numberToLong(q), divisorLong)));
      quotient.mr_1[0] = q;
      quotient.nr_1 = q === 0 ? 0 : 1;
      quotient.pr_1 = 0;
      return r;
    }
    if (quotient.mr_1.length < this.nr_1) {
      quotient.mr_1 = new Int32Array(this.nr_1);
    }
    quotient.pr_1 = 0;
    quotient.nr_1 = this.nr_1;
    var shift = numberOfLeadingZeros(divisor);
    var rem = this.mr_1[this.pr_1];
    var remLong = fromInt_0(rem) & 4294967295n;
    if (remLong < divisorLong) {
      quotient.mr_1[0] = 0;
    } else {
      quotient.mr_1[0] = convertToInt(divide(remLong, divisorLong));
      rem = convertToInt(subtract_0(remLong, multiply_0(numberToLong(quotient.mr_1[0]), divisorLong)));
      remLong = fromInt_0(rem) & 4294967295n;
    }
    var xlen = this.nr_1;
    $l$loop: while (true) {
      xlen = xlen - 1 | 0;
      if (!(xlen > 0)) {
        break $l$loop;
      }
      var dividendEstimate = shiftLeft(remLong, 32) | fromInt_0(this.mr_1[(this.pr_1 + this.nr_1 | 0) - xlen | 0]) & 4294967295n;
      var q_0;
      if (dividendEstimate >= 0n) {
        q_0 = convertToInt(divide(dividendEstimate, divisorLong));
        rem = convertToInt(subtract_0(dividendEstimate, multiply_0(numberToLong(q_0), divisorLong)));
      } else {
        var tmp = Companion_getInstance_24().uw(dividendEstimate, divisor);
        q_0 = convertToInt(tmp & 4294967295n);
        rem = convertToInt(shiftRightUnsigned(tmp, 32));
      }
      quotient.mr_1[this.nr_1 - xlen | 0] = q_0;
      remLong = fromInt_0(rem) & 4294967295n;
    }
    quotient.vv();
    var tmp_0;
    if (shift > 0) {
      tmp_0 = rem % divisor | 0;
    } else {
      tmp_0 = rem;
    }
    return tmp_0;
  }
  sx(b, quotient, needRemainder) {
    var bLenBelowThreshold = b.nr_1 < 80;
    var lenDiffIsZieglerOffset = (this.nr_1 - b.nr_1 | 0) < 40;
    var tmp;
    if (bLenBelowThreshold || lenDiffIsZieglerOffset) {
      tmp = this.rv(b, quotient, needRemainder);
    } else {
      tmp = this.tv(b, quotient);
    }
    return tmp;
  }
  pu(b, quotient, needRemainder, $super) {
    needRemainder = needRemainder === VOID ? true : needRemainder;
    return $super === VOID ? this.sx(b, quotient, needRemainder) : $super.sx.call(this, b, quotient, needRemainder);
  }
  rv(b, quotient, needRemainder) {
    var b_0 = b;
    if (b_0.nr_1 === 0) {
      throw ArithmeticException.cc('BigInteger div by zero');
    }
    if (this.nr_1 === 0) {
      quotient.pr_1 = 0;
      quotient.nr_1 = quotient.pr_1;
      return needRemainder ? MutableBigInteger.rr() : null;
    }
    var cmp = this.nw(b_0);
    if (cmp < 0) {
      quotient.pr_1 = 0;
      quotient.nr_1 = quotient.pr_1;
      return needRemainder ? MutableBigInteger.ow(this) : null;
    }
    if (cmp === 0) {
      quotient.nr_1 = 1;
      quotient.mr_1[0] = quotient.nr_1;
      quotient.pr_1 = 0;
      return needRemainder ? MutableBigInteger.rr() : null;
    }
    quotient.u4();
    if (b_0.nr_1 === 1) {
      var r = this.sr(b_0.mr_1[b_0.pr_1], quotient);
      var tmp;
      if (needRemainder) {
        tmp = r === 0 ? MutableBigInteger.rr() : MutableBigInteger.jx(r);
      } else {
        tmp = null;
      }
      return tmp;
    }
    if (this.nr_1 >= Companion_getInstance_24().iu_1) {
      var tmp0 = _get_lowestSetBit__xjmtq_0(this);
      // Inline function 'kotlin.math.min' call
      var b_1 = _get_lowestSetBit__xjmtq_0(b_0);
      var trailingZeroBits = Math.min(tmp0, b_1);
      if (trailingZeroBits >= imul_0(Companion_getInstance_24().ju_1, 32)) {
        var a = MutableBigInteger.ow(this);
        b_0 = MutableBigInteger.ow(b_0);
        a.vw(trailingZeroBits);
        b_0.vw(trailingZeroBits);
        var r_0 = a.sv(b_0, quotient);
        ensureNotNull(r_0).rw(trailingZeroBits);
        return r_0;
      }
    }
    return divideMagnitude(this, b_0, quotient, needRemainder);
  }
  sv(b, quotient, needRemainder, $super) {
    needRemainder = needRemainder === VOID ? true : needRemainder;
    return $super === VOID ? this.rv(b, quotient, needRemainder) : $super.rv.call(this, b, quotient, needRemainder);
  }
  tv(b, quotient) {
    var r = this.nr_1;
    var s = b.nr_1;
    quotient.nr_1 = 0;
    quotient.pr_1 = quotient.nr_1;
    if (r < s) {
      return this;
    } else {
      var m = 1 << (32 - numberOfLeadingZeros(s / 80 | 0) | 0);
      var j = ((s + m | 0) - 1 | 0) / m | 0;
      var n = imul_0(j, m);
      // Inline function 'kotlin.Long.times' call
      var n32 = multiply_0(32n, fromInt_0(n));
      // Inline function 'kotlin.math.max' call
      var b_0 = subtract_0(n32, b.tx());
      var tmp$ret$1 = 0n >= b_0 ? 0n : b_0;
      var sigma = convertToInt(tmp$ret$1);
      var bShifted = MutableBigInteger.ow(b);
      bShifted.qx(sigma);
      var aShifted = MutableBigInteger.ow(this);
      aShifted.qx(sigma);
      var t = convertToInt(divide(add_0(aShifted.tx(), n32), n32));
      if (t < 2) {
        t = 2;
      }
      var a1 = getBlock(aShifted, t - 1 | 0, t, n);
      var z = getBlock(aShifted, t - 2 | 0, t, n);
      z.qw(a1, n);
      var qi = MutableBigInteger.rr();
      var ri;
      var inductionVariable = t - 2 | 0;
      if (1 <= inductionVariable)
        do {
          var i = inductionVariable;
          inductionVariable = inductionVariable + -1 | 0;
          ri = divide2n1n(z, bShifted, qi);
          z = getBlock(aShifted, i - 1 | 0, t, n);
          z.qw(ri, n);
          quotient.rx(qi, imul_0(i, n));
        }
         while (1 <= inductionVariable);
      ri = divide2n1n(z, bShifted, qi);
      quotient.ku(qi);
      ensureNotNull(ri).vw(sigma);
      return ri;
    }
  }
  tx() {
    var tmp;
    if (this.nr_1 === 0) {
      tmp = 0n;
    } else {
      var tmp0 = multiply_0(numberToLong(this.nr_1), 32n);
      // Inline function 'kotlin.Long.minus' call
      var other = numberOfLeadingZeros(this.mr_1[this.pr_1]);
      tmp = subtract_0(tmp0, fromInt_0(other));
    }
    return tmp;
  }
  gu(v, quotient) {
    var v_0 = v;
    if (v_0 === 0n) {
      throw ArithmeticException.cc('BigInteger div by zero');
    }
    if (this.nr_1 === 0) {
      quotient.pr_1 = 0;
      quotient.nr_1 = quotient.pr_1;
      return 0n;
    }
    if (v_0 < 0n) {
      v_0 = negate_0(v_0);
    }
    var d = convertToInt(shiftRightUnsigned(v_0, 32));
    quotient.u4();
    var tmp;
    if (d === 0) {
      tmp = fromInt_0(this.sr(convertToInt(v_0), quotient)) & 4294967295n;
    } else {
      tmp = toLong(divideLongMagnitude(this, v_0, quotient));
    }
    return tmp;
  }
  cw() {
    if (this.qu()) {
      return MutableBigInteger.jx(0);
    } else if (this.mr_1.length === 1 && (fromInt_0(this.mr_1[0]) & 4294967295n) < 4n) {
      return Companion_getInstance_24().hu_1;
    }
    if (this.tx() <= 63n) {
      var v = CommonBigInteger.ov(this.mr_1, 1).toLongExact();
      // Inline function 'kotlin.math.sqrt' call
      var x = toNumber_0(v);
      // Inline function 'kotlin.math.floor' call
      var x_0 = Math.sqrt(x);
      var tmp$ret$1 = Math.floor(x_0);
      var xk = numberToLong(tmp$ret$1);
      do {
        // Inline function 'kotlin.Long.div' call
        var this_0 = add_0(xk, divide(v, xk));
        var xk1 = divide(this_0, fromInt_0(2));
        if (xk1 >= xk) {
          // Inline function 'kotlin.intArrayOf' call
          var tmp$ret$3 = new Int32Array([convertToInt(shiftRightUnsigned(xk, 32)), convertToInt(xk & 4294967295n)]);
          return MutableBigInteger.fu(tmp$ret$3);
        }
        xk = xk1;
      }
       while (true);
    } else {
      var bitLength = convertToInt(this.tx());
      if (!(fromInt_0(bitLength) === this.tx())) {
        throw ArithmeticException.cc('bitLength() integer overflow');
      }
      var shift = bitLength - 63 | 0;
      if ((shift % 2 | 0) === 1) {
        shift = shift + 1 | 0;
      }
      var xk_0 = MutableBigInteger.ow(this);
      xk_0.vw(shift);
      xk_0.vv();
      var d = CommonBigInteger.ov(xk_0.mr_1, 1).toDouble();
      var tmp = Companion_getInstance_22();
      // Inline function 'kotlin.math.sqrt' call
      // Inline function 'kotlin.math.ceil' call
      var x_1 = Math.sqrt(d);
      var tmp$ret$5 = Math.ceil(x_1);
      var bi = tmp.ofLong(numberToLong(tmp$ret$5));
      xk_0 = MutableBigInteger.fu(bi.vr_1);
      xk_0.rw(shift / 2 | 0);
      var xk1_0 = MutableBigInteger.rr();
      do {
        this.sx(xk_0, xk1_0, false);
        xk1_0.ku(xk_0);
        xk1_0.vw(1);
        if (xk1_0.nw(xk_0) >= 0) {
          return xk_0;
        }
        xk_0.px(xk1_0);
        xk1_0.nx();
      }
       while (true);
    }
  }
  ew(b) {
    var b_0 = b;
    var a = this;
    var q = MutableBigInteger.rr();
    while (!(ensureNotNull(b_0).nr_1 === 0)) {
      if (abs_0(a.nr_1 - b_0.nr_1 | 0) < 2) {
        return binaryGCD(a, b_0);
      }
      var r = a.pu(b_0, q);
      a = b_0;
      b_0 = r;
    }
    return a;
  }
  gw(p) {
    if (p.ou()) {
      return modInverse(this, p);
    }
    if (this.dx()) {
      throw ArithmeticException.cc('BigInteger not invertible.');
    }
    var powersOf2 = _get_lowestSetBit__xjmtq_0(p);
    var oddMod = MutableBigInteger.ow(p);
    oddMod.vw(powersOf2);
    if (oddMod.ex()) {
      return this.ux(powersOf2);
    }
    var oddPart = modInverse(this, oddMod);
    var evenPart = this.ux(powersOf2);
    var y1 = Companion_getInstance_24().lx(oddMod, powersOf2);
    var y2 = oddMod.ux(powersOf2);
    var temp1 = MutableBigInteger.rr();
    var temp2 = MutableBigInteger.rr();
    var result = MutableBigInteger.rr();
    oddPart.rw(powersOf2);
    oddPart.fw(y1, result);
    evenPart.fw(oddMod, temp1);
    temp1.fw(y2, temp2);
    result.ku(temp2);
    return result.pu(p, temp1);
  }
  ux(k) {
    if (this.dx()) {
      throw ArithmeticException.cc('Non-invertible. (GCD != 1)');
    }
    if (k > 64) {
      return this.vx(k);
    }
    var t = Companion_getInstance_24().kx(this.mr_1[(this.pr_1 + this.nr_1 | 0) - 1 | 0]);
    if (k < 33) {
      t = k === 32 ? t : t & ((1 << k) - 1 | 0);
      return MutableBigInteger.jx(t);
    }
    var pLong = fromInt_0(this.mr_1[(this.pr_1 + this.nr_1 | 0) - 1 | 0]) & 4294967295n;
    if (this.nr_1 > 1) {
      pLong = pLong | shiftLeft(fromInt_0(this.mr_1[(this.pr_1 + this.nr_1 | 0) - 2 | 0]), 32);
    }
    var tLong = fromInt_0(t) & 4294967295n;
    tLong = multiply_0(tLong, subtract_0(numberToLong(2), multiply_0(pLong, tLong)));
    var tmp;
    if (k === 64) {
      tmp = tLong;
    } else {
      var tmp_0 = tLong;
      // Inline function 'kotlin.Long.minus' call
      var this_0 = shiftLeft(1n, k);
      tmp = tmp_0 & subtract_0(this_0, fromInt_0(1));
    }
    tLong = tmp;
    var result = MutableBigInteger.fu(new Int32Array(2));
    result.mr_1[0] = convertToInt(shiftRightUnsigned(tLong, 32));
    result.mr_1[1] = convertToInt(tLong);
    result.nr_1 = 2;
    result.vv();
    return result;
  }
  vx(k) {
    var b = MutableBigInteger.jx(1);
    ensureNotNull(b).rw(k);
    var mod = MutableBigInteger.ow(b);
    var a = MutableBigInteger.ow(this);
    var q = MutableBigInteger.rr();
    var r = b.pu(a, q);
    var swapper = b;
    b = r;
    r = swapper;
    var t1 = MutableBigInteger.ow(q);
    var t0 = MutableBigInteger.jx(1);
    var temp = MutableBigInteger.rr();
    while (!ensureNotNull(b).ex()) {
      r = a.pu(b, q);
      if (ensureNotNull(r).nr_1 === 0) {
        throw ArithmeticException.cc('BigInteger not invertible.');
      }
      swapper = r;
      a = swapper;
      if (q.nr_1 === 1) {
        t1.mx(q.mr_1[q.pr_1], temp);
      } else {
        q.fw(t1, temp);
      }
      swapper = q;
      q = temp;
      temp = swapper;
      t0.ku(q);
      if (a.ex()) {
        return t0;
      }
      r = b.pu(a, q);
      if (ensureNotNull(r).nr_1 === 0) {
        throw ArithmeticException.cc('BigInteger not invertible.');
      }
      swapper = b;
      b = r;
      if (q.nr_1 === 1) {
        t0.mx(q.mr_1[q.pr_1], temp);
      } else {
        q.fw(t0, temp);
      }
      swapper = q;
      q = temp;
      temp = swapper;
      t1.ku(q);
    }
    mod.sw(t1);
    return mod;
  }
}
class Companion_25 {
  valueOfInt(rm) {
    return values()[rm];
  }
}
class RoundingMode extends Enum {
  constructor(name, ordinal, value) {
    super(name, ordinal);
    this.value = value;
  }
  z2() {
    return this.value;
  }
  get name() {
    return this.h3();
  }
  get ordinal() {
    return this.i3();
  }
}
class SignedMutableBigInteger extends MutableBigInteger {
  static cx() {
    var $this = this.rr();
    init_com_macrofocus_common_math_big_SignedMutableBigInteger($this);
    return $this;
  }
  static bx(val) {
    var $this = this.jx(val);
    init_com_macrofocus_common_math_big_SignedMutableBigInteger($this);
    return $this;
  }
  fx(addend) {
    if (this.ax_1 === addend.ax_1) {
      this.ku(addend);
    } else {
      this.ax_1 = imul_0(this.ax_1, this.sw(addend));
    }
  }
  hx(addend) {
    if (this.ax_1 === 1) {
      this.ku(addend);
    } else {
      this.ax_1 = imul_0(this.ax_1, this.sw(addend));
    }
  }
  gx(addend) {
    if (this.ax_1 === addend.ax_1) {
      this.ax_1 = imul_0(this.ax_1, this.sw(addend));
    } else {
      this.ku(addend);
    }
  }
  toString() {
    return this.lu(this.ax_1).toString();
  }
}
class AbstractProperty {
  constructor($box) {
    boxApply(this, $box);
    var tmp = this;
    tmp.wx_1 = lazy(AbstractProperty$listernersDelegate$lambda);
    this.xx_1 = this.wx_1;
  }
  zo(listener) {
    _get_listeners__760gzy(this).c1(listener);
  }
  yx(listener) {
    var weakListener = new WeakPropertyListener(this, listener);
    this.zo(weakListener);
  }
  zx(listener) {
    _get_listeners__760gzy(this).e3(listener);
  }
  ay(event) {
    if (this.wx_1.ri()) {
      var _iterator__ex2g4s = _get_listeners__760gzy(this).h1();
      while (_iterator__ex2g4s.i1()) {
        var listener = _iterator__ex2g4s.j1();
        listener.vo(event);
      }
    }
  }
}
class MutableProperty {}
function getValue(thisRef, property) {
  return this.z2();
}
function setValue(thisRef, property, value) {
  this.ap(value);
}
class AbstractMutableProperty extends AbstractProperty {}
class WeakPropertiesListener {
  constructor($outer, listener) {
    this.dy_1 = $outer;
    this.cy_1 = new WeakReference(listener);
  }
  ey(name, event) {
    var l = this.jk();
    if (!(l == null)) {
      l.ey(name, event);
    } else {
      this.dy_1.gy(this);
    }
  }
  jk() {
    return this.cy_1.zj();
  }
  toString() {
    var l = this.jk();
    var tmp;
    if (!(l == null)) {
      tmp = 'Weak[' + toString_1(l) + ']';
    } else {
      tmp = toString_0(l);
    }
    return tmp;
  }
}
class AbstractProperties {
  constructor() {
    this.fy_1 = CollectionFactory_instance.nk();
  }
  hy(listener) {
    this.fy_1.c1(listener);
  }
  iy(listener) {
    var weakListener = new WeakPropertiesListener(this, listener);
    this.fy_1.c1(weakListener);
  }
  gy(listener) {
    if (listener instanceof WeakPropertiesListener) {
      var removed = this.fy_1.e3(listener);
    } else {
      var toRemove = null;
      var _iterator__ex2g4s = this.fy_1.h1();
      while (_iterator__ex2g4s.i1()) {
        var propertiesListener = _iterator__ex2g4s.j1();
        var comparable;
        if (propertiesListener instanceof WeakPropertiesListener) {
          comparable = propertiesListener.jk();
        } else {
          comparable = propertiesListener;
        }
        if (equals(listener, comparable)) {
          toRemove = propertiesListener;
        }
      }
      if (!(toRemove == null)) {
        var removed_0 = this.fy_1.e3(toRemove);
      }
    }
    this.fy_1.e3(listener);
  }
  jy(name, event) {
    var _iterator__ex2g4s = this.fy_1.h1();
    while (_iterator__ex2g4s.i1()) {
      var listener = _iterator__ex2g4s.j1();
      listener.ey(name, event);
    }
  }
}
class WeakPropertyListener {
  constructor($outer, listener) {
    this.my_1 = $outer;
    this.ly_1 = new WeakReference(listener);
  }
  vo(event) {
    var l = _get_reference__19y5ba(this);
    if (!(l == null)) {
      l.vo(event);
    } else {
      this.my_1.zx(isInterface(this, PropertyListener) ? this : THROW_CCE());
    }
  }
  toString() {
    var l = _get_reference__19y5ba(this);
    var tmp;
    if (!(l == null)) {
      tmp = 'Weak[' + toString_1(l) + ']';
    } else {
      tmp = toString_0(l);
    }
    return tmp;
  }
}
class EnumProperties$ExposedProperty$listener$1 {
  constructor(this$0) {
    this.ny_1 = this$0;
  }
  vo(event) {
    this.ny_1.ay(event);
  }
}
class NamedPropertyListener {
  constructor($outer, name) {
    this.py_1 = $outer;
    this.oy_1 = name;
  }
  qy(event) {
    this.py_1.jy(this.oy_1, event);
  }
  vo(event) {
    return this.qy(event);
  }
}
class ExposedProperty extends AbstractMutableProperty {
  constructor($outer, secret, $box) {
    if ($box === VOID)
      $box = {};
    $box.vy_1 = $outer;
    super($box);
    var tmp = this;
    tmp.uy_1 = new EnumProperties$ExposedProperty$listener$1(this);
    this.ty_1 = secret;
    this.ty_1.zo(this.uy_1);
  }
  ap(value) {
    this.ty_1.ap(value);
  }
  z2() {
    return this.ty_1.z2();
  }
}
class EnumProperties extends AbstractProperties {
  constructor(enums) {
    super();
    this.xy_1 = new EnumMap(enums);
    this.yy_1 = new EnumMap(enums);
  }
  h1() {
    return this.xy_1.m6().h1();
  }
  zy(name, value) {
    var property = Companion_instance_27.newInstance(value);
    return this.az(name, property);
  }
  bz(name, value) {
    var tmp = name instanceof Enum ? name : THROW_CCE();
    return this.zy(tmp, (value == null ? true : !(value == null)) ? value : THROW_CCE());
  }
  az(name, property) {
    var exposedProperty = new ExposedProperty(this, isInterface(property, MutableProperty) ? property : THROW_CCE());
    // Inline function 'kotlin.collections.set' call
    this.xy_1.o6(name, exposedProperty);
    var listener = new NamedPropertyListener(this, name);
    exposedProperty.zo(listener);
    // Inline function 'kotlin.collections.set' call
    this.yy_1.o6(name, listener);
    return isInterface(exposedProperty, MutableProperty) ? exposedProperty : THROW_CCE();
  }
  cz(name, property) {
    return this.az(name instanceof Enum ? name : THROW_CCE(), property);
  }
  dz(name) {
    return ensureNotNull(this.xy_1.ij(name)).z2();
  }
  ky(name) {
    return this.dz(name instanceof Enum ? name : THROW_CCE());
  }
  ez(name) {
    return ensureNotNull(this.xy_1.ij(name));
  }
  fz(name) {
    return this.ez(name instanceof Enum ? name : THROW_CCE());
  }
}
class KReadWriteProperty {
  constructor(property) {
    this.gz_1 = property;
  }
  bf(thisRef, property) {
    return this.gz_1.z2();
  }
  cf(thisRef, property) {
    return this.bf((thisRef == null ? true : !(thisRef == null)) ? thisRef : THROW_CCE(), property);
  }
  by(thisRef, property, value) {
    this.gz_1.ap(value);
  }
  ef(thisRef, property, value) {
    var tmp = (thisRef == null ? true : !(thisRef == null)) ? thisRef : THROW_CCE();
    return this.by(tmp, property, (value == null ? true : !(value == null)) ? value : THROW_CCE());
  }
}
class Companion_26 {
  constructor() {
    this.hz_1 = 'overrideDefaults';
  }
}
class OverrideProperties$registerPropertyListener$1 {
  constructor(this$0, $name) {
    this.iz_1 = this$0;
    this.jz_1 = $name;
  }
  qy(event) {
    this.iz_1.jy(this.jz_1, new PropertyEvent(event.oldValue, event.newValue));
  }
  vo(event) {
    return this.qy(event);
  }
}
class OverrideProperties extends AbstractProperties {
  constructor(defaults, overrideDefaults) {
    super();
    this.lz_1 = defaults;
    this.mz_1 = overrideDefaults;
    this.nz_1 = HashMap.i7();
    this.oz_1 = HashMap.i7();
  }
  h1() {
    return this.lz_1.h1();
  }
  bz(name, value) {
    throw UnsupportedOperationException.q3();
  }
  cz(name, property) {
    throw UnsupportedOperationException.q3();
  }
  ky(name) {
    return this.mz_1.z2() && this.nz_1.a3(name) ? ensureNotNull(this.nz_1.c3(name)).z2() : this.lz_1.ky(name);
  }
  fz(name) {
    var tmp;
    if (this.nz_1.a3(name)) {
      tmp = ensureNotNull(this.nz_1.c3(name));
    } else {
      var property = this.vz(name, this.mz_1, this.lz_1.fz(name));
      this.wz(name, property);
      // Inline function 'kotlin.collections.set' call
      this.nz_1.o6(name, property);
      tmp = property;
    }
    return tmp;
  }
  wz(name, property) {
    property.zo(new OverrideProperties$registerPropertyListener$1(this, name));
  }
  vz(name, overrideDefaults, defaultProperty) {
    return new OverrideProperty(overrideDefaults, defaultProperty);
  }
  nx() {
    var _iterator__ex2g4s = this.nz_1.n6().h1();
    while (_iterator__ex2g4s.i1()) {
      var property = _iterator__ex2g4s.j1();
      if (property instanceof OverrideProperty) {
        ensureNotNull(property instanceof OverrideProperty ? property : THROW_CCE()).nx();
      }
    }
  }
}
class OverrideProperty$overridePropertyListener$1 {
  constructor($overrideDefaults, this$0) {
    this.xz_1 = $overrideDefaults;
    this.yz_1 = this$0;
  }
  vo(event) {
    if (this.xz_1.z2()) {
      this.yz_1.ay(new PropertyEvent(event.oldValue, event.newValue));
    }
  }
}
class OverrideProperty$1 {
  constructor($defaultProperty, this$0) {
    this.zz_1 = $defaultProperty;
    this.a10_1 = this$0;
  }
  b10(event) {
    var defaultValue = this.zz_1.z2();
    var overrideValue = !(this.a10_1.tz_1 == null) ? ensureNotNull(this.a10_1.tz_1).z2() : defaultValue;
    if (!(defaultValue === overrideValue)) {
      if (event.newValue) {
        this.a10_1.ay(new PropertyEvent(defaultValue, overrideValue));
      } else {
        this.a10_1.ay(new PropertyEvent(overrideValue, defaultValue));
      }
    }
  }
  vo(event) {
    return this.b10(event);
  }
}
class OverrideProperty$2 {
  constructor($overrideDefaults, this$0) {
    this.c10_1 = $overrideDefaults;
    this.d10_1 = this$0;
  }
  vo(event) {
    if (!this.c10_1.z2()) {
      this.d10_1.ay(new PropertyEvent(event.oldValue, event.newValue));
    }
  }
}
class OverrideProperty extends AbstractMutableProperty {
  constructor(overrideDefaults, defaultProperty) {
    super();
    this.rz_1 = overrideDefaults;
    this.sz_1 = defaultProperty;
    this.tz_1 = null;
    var tmp = this;
    tmp.uz_1 = new OverrideProperty$overridePropertyListener$1(overrideDefaults, this);
    overrideDefaults.zo(new OverrideProperty$1(defaultProperty, this));
    defaultProperty.zo(new OverrideProperty$2(overrideDefaults, this));
  }
  e10() {
    return this.sz_1;
  }
  f10() {
    if (this.tz_1 == null) {
      this.tz_1 = this.g10();
    }
    return this.tz_1;
  }
  g10() {
    var overrideProperty = Companion_instance_27.newInstance(this.e10().z2());
    return this.h10(overrideProperty);
  }
  h10(overrideProperty) {
    overrideProperty.zo(this.uz_1);
    return overrideProperty;
  }
  i10(overrideProperty) {
    overrideProperty.zx(this.uz_1);
  }
  ap(value) {
    if (this.rz_1.z2()) {
      ensureNotNull(this.f10()).ap(value);
    } else {
      this.e10().ap(value);
    }
  }
  z2() {
    var tmp;
    if (this.rz_1.z2() && !(this.tz_1 == null)) {
      tmp = ensureNotNull(this.tz_1).z2();
    } else {
      tmp = this.e10().z2();
    }
    return tmp;
  }
  j10() {
    var tmp;
    if (this.rz_1.z2() && !(this.tz_1 == null)) {
      tmp = ensureNotNull(this.tz_1).z2();
    } else {
      tmp = null;
    }
    return tmp;
  }
  nx() {
    if (this.rz_1.z2() && !(this.tz_1 == null)) {
      var oldValue = ensureNotNull(this.tz_1).z2();
      var newValue = this.e10().z2();
      this.i10(ensureNotNull(this.tz_1));
      this.tz_1 = null;
      if (!(oldValue === newValue)) {
        this.ay(new PropertyEvent(oldValue, newValue));
      }
    }
    this.tz_1 = null;
  }
}
class PropertyDelegates$mutable$1 extends KReadWriteProperty {}
class PropertyDelegates {
  k10(property) {
    return new PropertyDelegates$mutable$1(property);
  }
}
class PropertyEvent {
  constructor(oldValue, newValue) {
    this.oldValue = oldValue;
    this.newValue = newValue;
  }
  l10() {
    return this.oldValue;
  }
  m10() {
    return this.newValue;
  }
  toString() {
    return 'PropertyEvent{oldValue=' + this.oldValue + ', newValue=' + this.newValue + toString(_Char___init__impl__6a9atx(125));
  }
  mi() {
    return this.oldValue;
  }
  ni() {
    return this.newValue;
  }
  n10(oldValue, newValue) {
    return new PropertyEvent(oldValue, newValue);
  }
  copy(oldValue, newValue, $super) {
    oldValue = oldValue === VOID ? this.oldValue : oldValue;
    newValue = newValue === VOID ? this.newValue : newValue;
    return $super === VOID ? this.n10(oldValue, newValue) : $super.n10.call(this, oldValue, newValue);
  }
  hashCode() {
    var result = this.oldValue == null ? 0 : hashCode(this.oldValue);
    result = imul_0(result, 31) + (this.newValue == null ? 0 : hashCode(this.newValue)) | 0;
    return result;
  }
  equals(other) {
    if (this === other)
      return true;
    if (!(other instanceof PropertyEvent))
      return false;
    if (!equals(this.oldValue, other.oldValue))
      return false;
    if (!equals(this.newValue, other.newValue))
      return false;
    return true;
  }
}
class SimpleProperties$ExposedProperty$listener$1 {
  constructor(this$0) {
    this.o10_1 = this$0;
  }
  vo(event) {
    this.o10_1.ay(event);
  }
}
class NamedPropertyListener_0 {
  constructor($outer, name) {
    this.q10_1 = $outer;
    this.p10_1 = name;
  }
  qy(event) {
    this.q10_1.jy(this.p10_1, event);
  }
  vo(event) {
    return this.qy(event);
  }
}
class ExposedProperty_0 extends AbstractMutableProperty {
  constructor($outer, secret, $box) {
    if ($box === VOID)
      $box = {};
    $box.v10_1 = $outer;
    super($box);
    var tmp = this;
    tmp.u10_1 = new SimpleProperties$ExposedProperty$listener$1(this);
    this.t10_1 = secret;
    this.t10_1.zo(this.u10_1);
  }
  ap(value) {
    this.t10_1.ap(value);
  }
  z2() {
    return this.t10_1.z2();
  }
}
class SimpleProperties extends AbstractProperties {
  constructor() {
    super();
    this.x10_1 = HashMap.i7();
    this.y10_1 = HashMap.i7();
  }
  h1() {
    return this.x10_1.m6().h1();
  }
  z10(name, value) {
    var property = Companion_instance_27.newInstance(value);
    return this.a11(name, property);
  }
  bz(name, value) {
    var tmp = (name == null ? true : typeof name === 'string') ? name : THROW_CCE();
    return this.z10(tmp, (value == null ? true : !(value == null)) ? value : THROW_CCE());
  }
  a11(name, property) {
    var exposedProperty = new ExposedProperty_0(this, isInterface(property, MutableProperty) ? property : THROW_CCE());
    // Inline function 'kotlin.collections.set' call
    this.x10_1.o6(name, exposedProperty);
    var listener = new NamedPropertyListener_0(this, name);
    exposedProperty.zo(listener);
    // Inline function 'kotlin.collections.set' call
    this.y10_1.o6(name, listener);
    return isInterface(exposedProperty, MutableProperty) ? exposedProperty : THROW_CCE();
  }
  cz(name, property) {
    return this.a11((name == null ? true : typeof name === 'string') ? name : THROW_CCE(), property);
  }
  b11(name) {
    return ensureNotNull(this.x10_1.c3(name)).z2();
  }
  ky(name) {
    return this.b11((name == null ? true : typeof name === 'string') ? name : THROW_CCE());
  }
  c11(name) {
    return ensureNotNull(this.x10_1.c3(name));
  }
  fz(name) {
    return this.c11((name == null ? true : typeof name === 'string') ? name : THROW_CCE());
  }
}
class Companion_27 {
  newInstance(value) {
    return new SimpleProperty(value);
  }
}
class SimpleProperty$value$$inlined$observable$1 extends ObservableProperty {
  constructor($initialValue, this$0, $box) {
    if ($box === VOID)
      $box = {};
    $box.e11_1 = this$0;
    super($initialValue, $box);
  }
  f11(property, oldValue, newValue) {
    if (!equals(oldValue, newValue)) {
      this.e11_1.ay(new PropertyEvent(oldValue, newValue));
    }
    return Unit_instance;
  }
  af(property, oldValue, newValue) {
    var tmp = (oldValue == null ? true : !(oldValue == null)) ? oldValue : THROW_CCE();
    return this.f11(property, tmp, (newValue == null ? true : !(newValue == null)) ? newValue : THROW_CCE());
  }
}
class SimpleProperty extends AbstractMutableProperty {
  constructor(value) {
    super();
    var tmp = this;
    // Inline function 'kotlin.properties.Delegates.observable' call
    tmp.i11_1 = new SimpleProperty$value$$inlined$observable$1(value, this);
  }
  ap(_set____db54di) {
    var tmp = KMutableProperty1;
    var tmp_0 = SimpleProperty$_get_value_$ref_rqcknm_0();
    return this.i11_1.ef(this, getPropertyCallableRef('value', 1, tmp, tmp_0, SimpleProperty$_set_value_$ref_1khvqy_0()), _set____db54di);
  }
  z2() {
    var tmp = KMutableProperty1;
    var tmp_0 = SimpleProperty$_get_value_$ref_rqcknm();
    return this.i11_1.cf(this, getPropertyCallableRef('value', 1, tmp, tmp_0, SimpleProperty$_set_value_$ref_1khvqy()));
  }
  toString() {
    return 'SimpleProperty{value=' + this.z2() + toString(_Char___init__impl__6a9atx(125));
  }
}
class StartEnd extends Enum {}
class BoundedIntervalProperty$1 {
  constructor(this$0) {
    this.j11_1 = this$0;
  }
  kn(event) {
    switch (this.j11_1.n11_1.g3_1) {
      case 0:
        this.j11_1.ay(new PropertyEvent(event.bo_1, event.eo_1));
        break;
      case 1:
        this.j11_1.ay(new PropertyEvent(ensureNotNull(event).co_1, event.fo_1));
        break;
      default:
        noWhenBranchMatchedException();
        break;
    }
  }
}
class BoundedIntervalProperty extends AbstractMutableProperty {
  constructor(interval, startEnd) {
    super();
    this.m11_1 = interval;
    this.n11_1 = startEnd;
    this.m11_1.addIntervalListener(new BoundedIntervalProperty$1(this));
  }
  o11(value) {
    switch (this.n11_1.g3_1) {
      case 0:
        this.m11_1.start = ensureNotNull(value);
        break;
      case 1:
        this.m11_1.end = ensureNotNull(value);
        break;
      default:
        noWhenBranchMatchedException();
        break;
    }
  }
  ap(_set____db54di) {
    return this.o11((_set____db54di == null ? true : typeof _set____db54di === 'number') ? _set____db54di : THROW_CCE());
  }
  z2() {
    var tmp;
    switch (this.n11_1.g3_1) {
      case 0:
        tmp = this.m11_1.start;
        break;
      case 1:
        tmp = this.m11_1.end;
        break;
      default:
        noWhenBranchMatchedException();
        break;
    }
    return tmp;
  }
}
class NumericTransform extends Enum {
  constructor(name, ordinal, shortName, transform, inverse, dtransform, dinverse, domain) {
    super(name, ordinal);
    this.p12_1 = shortName;
    this.q12_1 = transform;
    this.r12_1 = inverse;
    this.s12_1 = dtransform;
    this.t12_1 = dinverse;
    this.u12_1 = domain;
  }
}
class Probit {
  constructor() {
    this.p11_1 = 0.02425;
    this.q11_1 = 0.97575;
    this.r11_1 = -39.69683028665376;
    this.s11_1 = 220.9460984245205;
    this.t11_1 = -275.9285104469687;
    this.u11_1 = 138.357751867269;
    this.v11_1 = -30.66479806614716;
    this.w11_1 = 2.506628277459239;
    this.x11_1 = -54.47609879822406;
    this.y11_1 = 161.5858368580409;
    this.z11_1 = -155.6989798598866;
    this.a12_1 = 66.80131188771972;
    this.b12_1 = -13.28068155288572;
    this.c12_1 = -0.007784894002430293;
    this.d12_1 = -0.3223964580411365;
    this.e12_1 = -2.400758277161838;
    this.f12_1 = -2.549732539343734;
    this.g12_1 = 4.374664141464968;
    this.h12_1 = 2.938163982698783;
    this.i12_1 = 0.007784695709041462;
    this.j12_1 = 0.3224671290700398;
    this.k12_1 = 2.445134137142996;
    this.l12_1 = 3.754408661907416;
  }
  m12(d) {
    if (d <= 0 || d >= 1) {
      return (d - 0.5) / 0.0;
    } else if (d < 0.02425) {
      // Inline function 'kotlin.math.ln' call
      // Inline function 'kotlin.math.sqrt' call
      var x = -2 * Math.log(d);
      var q = Math.sqrt(x);
      return (((((-0.007784894002430293 * q + -0.3223964580411365) * q + -2.400758277161838) * q + -2.549732539343734) * q + 4.374664141464968) * q + 2.938163982698783) / ((((0.007784695709041462 * q + 0.3224671290700398) * q + 2.445134137142996) * q + 3.754408661907416) * q + 1);
    } else if (0.97575 < d) {
      // Inline function 'kotlin.math.ln' call
      var x_0 = 1 - d;
      // Inline function 'kotlin.math.sqrt' call
      var x_1 = -2 * Math.log(x_0);
      var q_0 = Math.sqrt(x_1);
      return -(((((-0.007784894002430293 * q_0 + -0.3223964580411365) * q_0 + -2.400758277161838) * q_0 + -2.549732539343734) * q_0 + 4.374664141464968) * q_0 + 2.938163982698783) / ((((0.007784695709041462 * q_0 + 0.3224671290700398) * q_0 + 2.445134137142996) * q_0 + 3.754408661907416) * q_0 + 1);
    } else {
      var q_1 = d - 0.5;
      var r = q_1 * q_1;
      return (((((-39.69683028665376 * r + 220.9460984245205) * r + -275.9285104469687) * r + 138.357751867269) * r + -30.66479806614716) * r + 2.506628277459239) * q_1 / (((((-54.47609879822406 * r + 161.5858368580409) * r + -155.6989798598866) * r + 66.80131188771972) * r + -13.28068155288572) * r + 1);
    }
  }
}
class AbstractSelection {
  static a13() {
    var $this = createThis(this);
    $this.y12_1 = true;
    $this.z12_1 = CollectionFactory_instance.nk();
    return $this;
  }
  b13() {
    return this.y12_1;
  }
  c13(listener) {
    this.z12_1.c1(listener);
  }
  d13(listener) {
    if (listener instanceof WeakSelectionListener) {
      var removed = this.z12_1.e3(listener);
    } else {
      var toRemove = null;
      var _iterator__ex2g4s = this.z12_1.h1();
      while (_iterator__ex2g4s.i1()) {
        var selectionListener = _iterator__ex2g4s.j1();
        var comparable;
        if (selectionListener instanceof WeakSelectionListener) {
          comparable = selectionListener.jk();
        } else {
          comparable = selectionListener;
        }
        if (equals(listener, comparable)) {
          toRemove = selectionListener;
        }
      }
      if (!(toRemove == null)) {
        var removed_0 = this.z12_1.e3(toRemove);
      }
    }
  }
  e13(event) {
    var _iterator__ex2g4s = this.z12_1.h1();
    while (_iterator__ex2g4s.i1()) {
      var listener = _iterator__ex2g4s.j1();
      listener.b14(event);
    }
  }
}
class AbstractMutableSelection extends AbstractSelection {
  static x12() {
    return this.a13();
  }
  b13() {
    return super.b13();
  }
}
class WeakSingleSelectionListener {
  p13() {
    return this.o13_1.zj();
  }
}
class AbstractMutableSingleSelection extends AbstractMutableSelection {
  static t13() {
    var $this = this.x12();
    $this.s13_1 = CollectionFactory_instance.nk();
    return $this;
  }
  u13(listener) {
    this.s13_1.c1(listener);
  }
  v13(listener) {
    if (listener instanceof WeakSingleSelectionListener) {
      var removed = this.s13_1.e3(listener);
    } else {
      var toRemove = null;
      var _iterator__ex2g4s = this.s13_1.h1();
      while (_iterator__ex2g4s.i1()) {
        var selectionListener = _iterator__ex2g4s.j1();
        var comparable;
        var tmp;
        if (selectionListener instanceof WeakSingleSelectionListener) {
          tmp = selectionListener.p13();
        } else {
          tmp = selectionListener;
        }
        comparable = tmp;
        if (equals(listener, comparable)) {
          toRemove = selectionListener;
        }
      }
      if (!(toRemove == null)) {
        var removed_0 = this.s13_1.e3(toRemove);
      }
    }
  }
  w13(event) {
    var _iterator__ex2g4s = this.s13_1.h1();
    while (_iterator__ex2g4s.i1()) {
      var listener = _iterator__ex2g4s.j1();
      listener.x13(event);
    }
    super.e13(event);
  }
}
class WeakSelectionListener {
  jk() {
    return this.a14_1.zj();
  }
}
class AbstractSelectionEvent {}
class PropertySelection$1 {
  constructor(this$0, $self) {
    this.c14_1 = this$0;
    this.d14_1 = $self;
  }
  e14(event) {
    this.c14_1.e13(new SimpleSelectionEvent(this.d14_1, union(toSet_0(event.newValue), toSet_0(event.oldValue))));
  }
  vo(event) {
    return this.e14(event);
  }
}
class PropertySelection extends AbstractMutableSelection {
  static i14(property) {
    var $this = this.x12();
    $this.h14_1 = property;
    var self_0 = $this;
    $this.h14_1.zo(new PropertySelection$1($this, self_0));
    return $this;
  }
  i13() {
    var tmp;
    if (this.b13() && this.f13()) {
      this.h14_1.ap(emptyList());
      tmp = true;
    } else {
      tmp = false;
    }
    return tmp;
  }
  f13() {
    var tmp;
    // Inline function 'kotlin.collections.isNotEmpty' call
    if (!this.h14_1.z2().p1()) {
      tmp = this.b13();
    } else {
      tmp = false;
    }
    return tmp;
  }
  g13(element) {
    return equals(this.h14_1.z2(), element);
  }
  j13(element) {
    if (!this.h14_1.z2().q2(element)) {
      this.h14_1.ap(plus(this.h14_1.z2(), element));
    }
  }
  k13(element, selected) {
    if (this.b13()) {
      if (selected) {
        if (!this.h14_1.z2().q2(element)) {
          this.h14_1.ap(plus(this.h14_1.z2(), element));
        }
      } else {
        if (this.h14_1.z2().q2(element)) {
          this.h14_1.ap(minus(this.h14_1.z2(), element));
        }
      }
    }
  }
  l13(element, selected) {
    throw UnsupportedOperationException.q3();
  }
  m13(elements) {
    throw UnsupportedOperationException.q3();
  }
  n13(elements) {
    throw UnsupportedOperationException.q3();
  }
  h13() {
    return this.f13() ? 1 : 0;
  }
  h1() {
    return this.h14_1.z2().h1();
  }
}
class PropertySingleSelection$iterator$1 {
  constructor(this$0) {
    this.k14_1 = this$0;
    this.j14_1 = this$0.f13();
  }
  i1() {
    return !this.j14_1;
  }
  j1() {
    this.j14_1 = true;
    return ensureNotNull(this.k14_1.z13());
  }
}
class PropertySingleSelection$1 {
  constructor(this$0, $self) {
    this.p14_1 = this$0;
    this.q14_1 = $self;
  }
  r14(event) {
    this.p14_1.w13(new SingleSelectionEvent(this.q14_1, !(event.oldValue == null), !(event.newValue == null), event.oldValue, event.newValue));
  }
  vo(event) {
    return this.r14(event);
  }
}
class PropertySingleSelection extends AbstractMutableSingleSelection {
  static s14(property) {
    var $this = this.t13();
    $this.o14_1 = property;
    var self_0 = $this;
    $this.o14_1.zo(new PropertySingleSelection$1($this, self_0));
    return $this;
  }
  i13() {
    var tmp;
    if (this.b13() && this.f13()) {
      this.t14(null);
      tmp = true;
    } else {
      tmp = false;
    }
    return tmp;
  }
  f13() {
    return !(this.z13() == null) && this.b13();
  }
  g13(element) {
    return equals(this.o14_1.z2(), element);
  }
  j13(element) {
    this.y13(element);
  }
  k13(element, selected) {
    if (this.b13()) {
      if (selected) {
        this.y13(element);
      } else {
        if (this.g13(element)) {
          this.i13();
        }
      }
    }
  }
  l13(element, selected) {
    throw UnsupportedOperationException.q3();
  }
  m13(elements) {
    throw UnsupportedOperationException.q3();
  }
  n13(elements) {
    throw UnsupportedOperationException.q3();
  }
  y13(element) {
    this.t14(element);
  }
  z13() {
    return this.o14_1.z2();
  }
  t14(element) {
    if (this.b13()) {
      if (!(this.z13() === element)) {
        var previousSelected = this.z13();
        var previousActive = !(previousSelected == null);
        this.o14_1.ap(ensureNotNull(element));
        this.w13(new SingleSelectionEvent(this, previousActive, !(element == null), previousSelected, element));
      }
    }
  }
  h13() {
    return this.f13() ? 1 : 0;
  }
  h1() {
    return new PropertySingleSelection$iterator$1(this);
  }
}
class SimpleSelection extends AbstractMutableSelection {
  static x14() {
    var $this = this.x12();
    $this.w14_1 = CollectionFactory_instance.y14();
    return $this;
  }
  i13() {
    var tmp;
    if (this.b13() && this.f13()) {
      var changes = HashSet.c9();
      changes.o1(this.w14_1);
      this.w14_1.u4();
      this.e13(new SimpleSelectionEvent(this, changes));
      tmp = true;
    } else {
      tmp = false;
    }
    return tmp;
  }
  f13() {
    return !this.w14_1.p1() && this.b13();
  }
  g13(element) {
    return !(element == null) && this.w14_1.q2(element);
  }
  j13(e) {
    if (this.b13()) {
      if (!(e == null)) {
        var changes = HashSet.c9();
        var _iterator__ex2g4s = this.w14_1.h1();
        while (_iterator__ex2g4s.i1()) {
          var element = _iterator__ex2g4s.j1();
          changes.c1(element);
        }
        if (!this.g13(e)) {
          changes.c1(e);
          this.w14_1.c1(e);
        } else {
          changes.e3(e);
        }
        if (changes.k1() > 0) {
          this.w14_1.u4();
          this.w14_1.c1(e);
          this.e13(new SimpleSelectionEvent(this, changes));
        }
      } else {
        this.i13();
      }
    }
  }
  k13(element, selected) {
    if (this.b13() && !(element == null)) {
      if (selected) {
        if (!this.g13(element)) {
          var changes = HashSet.c9();
          changes.c1(element);
          this.w14_1.c1(element);
          this.e13(new SimpleSelectionEvent(this, changes));
        }
      } else {
        if (this.g13(element)) {
          var changes_0 = HashSet.c9();
          changes_0.c1(element);
          this.w14_1.e3(element);
          this.e13(new SimpleSelectionEvent(this, changes_0));
        }
      }
    }
  }
  l13(elements, selected) {
    if (this.b13() && !(elements == null)) {
      if (selected) {
        var changes = HashSet.c9();
        var _iterator__ex2g4s = elements.h1();
        while (_iterator__ex2g4s.i1()) {
          var element = _iterator__ex2g4s.j1();
          if (!this.g13(element)) {
            changes.c1(element);
            this.w14_1.c1(element);
          }
        }
        if (changes.k1() > 0) {
          this.e13(new SimpleSelectionEvent(this, changes));
          return true;
        }
      } else {
        var changes_0 = HashSet.c9();
        var _iterator__ex2g4s_0 = elements.h1();
        while (_iterator__ex2g4s_0.i1()) {
          var element_0 = _iterator__ex2g4s_0.j1();
          if (this.g13(element_0)) {
            changes_0.c1(element_0);
            this.w14_1.e3(element_0);
          }
        }
        if (changes_0.k1() > 0) {
          this.e13(new SimpleSelectionEvent(this, changes_0));
          return true;
        }
      }
    }
    return false;
  }
  m13(elements) {
    if (this.b13() && !(elements == null)) {
      var changes = HashSet.c9();
      var _iterator__ex2g4s = this.w14_1.h1();
      while (_iterator__ex2g4s.i1()) {
        var element = _iterator__ex2g4s.j1();
        changes.c1(element);
      }
      var inductionVariable = 0;
      var last = elements.length;
      while (inductionVariable < last) {
        var element_0 = elements[inductionVariable];
        inductionVariable = inductionVariable + 1 | 0;
        if (!this.g13(element_0)) {
          changes.c1(element_0);
          this.w14_1.c1(element_0);
        } else {
          changes.e3(element_0);
        }
      }
      if (changes.k1() > 0) {
        this.w14_1.u4();
        addAll(this.w14_1, elements);
        this.e13(new SimpleSelectionEvent(this, changes));
      }
    }
  }
  n13(elements) {
    if (this.b13()) {
      if (!(elements == null)) {
        var changes = HashSet.c9();
        var _iterator__ex2g4s = this.w14_1.h1();
        while (_iterator__ex2g4s.i1()) {
          var element = _iterator__ex2g4s.j1();
          changes.c1(element);
        }
        var _iterator__ex2g4s_0 = elements.h1();
        while (_iterator__ex2g4s_0.i1()) {
          var element_0 = _iterator__ex2g4s_0.j1();
          if (!this.g13(element_0)) {
            changes.c1(element_0);
            this.w14_1.c1(element_0);
          } else {
            changes.e3(element_0);
          }
        }
        if (changes.k1() > 0) {
          this.w14_1.u4();
          var _iterator__ex2g4s_1 = elements.h1();
          while (_iterator__ex2g4s_1.i1()) {
            var element_1 = _iterator__ex2g4s_1.j1();
            this.w14_1.c1(element_1);
          }
          this.e13(new SimpleSelectionEvent(this, changes));
        }
      } else {
        if (!this.w14_1.p1()) {
          var changes_0 = HashSet.c9();
          var _iterator__ex2g4s_2 = this.w14_1.h1();
          while (_iterator__ex2g4s_2.i1()) {
            var element_2 = _iterator__ex2g4s_2.j1();
            changes_0.c1(element_2);
          }
          this.w14_1.u4();
          this.e13(new SimpleSelectionEvent(this, changes_0));
        }
      }
    }
  }
  h13() {
    return this.w14_1.k1();
  }
  h1() {
    return this.w14_1.h1();
  }
  toString() {
    var selected = '';
    var first = true;
    var _iterator__ex2g4s = this.w14_1.h1();
    while (_iterator__ex2g4s.i1()) {
      var s = _iterator__ex2g4s.j1();
      if (!first) {
        selected = selected + ',';
      } else {
        first = false;
      }
      selected = selected + toString_0(s);
    }
    return 'SimpleSelection{selected=' + selected + toString(_Char___init__impl__6a9atx(125));
  }
}
class SimpleSelectionEvent extends AbstractSelectionEvent {
  constructor(model, changes) {
    super();
    this.z14_1 = model;
    this.a15_1 = changes;
  }
  toString() {
    var s = 'SimpleSelectionEvent{model=' + toString_1(this.z14_1) + ', changes=';
    var _iterator__ex2g4s = this.a15_1.h1();
    while (_iterator__ex2g4s.i1()) {
      var change = _iterator__ex2g4s.j1();
      s = s + (toString_0(change) + '(' + this.z14_1.g13(change) + '),');
    }
    s = s + toString(_Char___init__impl__6a9atx(125));
    return s;
  }
  hashCode() {
    var result = hashCode(this.z14_1);
    result = imul_0(result, 31) + hashCode(this.a15_1) | 0;
    return result;
  }
  equals(other) {
    if (this === other)
      return true;
    if (!(other instanceof SimpleSelectionEvent))
      return false;
    if (!equals(this.z14_1, other.z14_1))
      return false;
    if (!equals(this.a15_1, other.a15_1))
      return false;
    return true;
  }
}
class SimpleSingleSelection$iterator$1 {
  constructor(this$0) {
    this.c15_1 = this$0;
    this.b15_1 = !this$0.f13();
  }
  i1() {
    return !this.b15_1;
  }
  j1() {
    this.b15_1 = true;
    var s = this.c15_1.g15_1;
    if (!(s == null)) {
      return s;
    } else {
      throw IllegalStateException.gb();
    }
  }
}
class SimpleSingleSelection extends AbstractMutableSingleSelection {
  y13(element) {
    if (this.b13()) {
      if (!(this.g15_1 === element)) {
        if (this.g15_1 == null || !equals(this.g15_1, element)) {
          var previousSelected = this.g15_1;
          var previousActive = !(this.g15_1 == null);
          this.g15_1 = element;
          this.w13(new SingleSelectionEvent(this, previousActive, !(element == null), previousSelected, element));
        }
      }
    }
  }
  z13() {
    return this.g15_1;
  }
  static h15() {
    var $this = this.t13();
    init_com_macrofocus_common_selection_SimpleSingleSelection($this);
    $this.y13(null);
    return $this;
  }
  static i15(selected) {
    var $this = this.t13();
    init_com_macrofocus_common_selection_SimpleSingleSelection($this);
    $this.y13(selected);
    return $this;
  }
  i13() {
    var tmp;
    if (this.b13() && this.f13()) {
      this.y13(null);
      tmp = true;
    } else {
      tmp = false;
    }
    return tmp;
  }
  f13() {
    return !(this.g15_1 == null) && this.b13();
  }
  g13(element) {
    return !(this.g15_1 == null) && equals(this.g15_1, element);
  }
  k13(element, selected) {
    if (this.b13()) {
      if (selected) {
        this.y13(element);
      } else {
        if (this.g13(element)) {
          this.i13();
        }
      }
    }
  }
  l13(element, selected) {
    throw UnsupportedOperationException.q3();
  }
  m13(elements) {
    throw UnsupportedOperationException.q3();
  }
  n13(elements) {
    throw UnsupportedOperationException.q3();
  }
  j13(element) {
    this.y13(element);
  }
  h13() {
    return this.f13() ? 1 : 0;
  }
  h1() {
    return new SimpleSingleSelection$iterator$1(this);
  }
  toString() {
    return 'SimpleSingleSelection{selected=' + this.g15_1 + toString(_Char___init__impl__6a9atx(125));
  }
}
class SingleSelectionEvent extends AbstractSelectionEvent {
  constructor(model, previousActive, currentActive, previousSelection, currentSelection) {
    super();
    this.o15_1 = null;
    this.j15_1 = model;
    this.k15_1 = previousActive;
    this.l15_1 = currentActive;
    this.m15_1 = previousSelection;
    this.n15_1 = currentSelection;
  }
}
class AbstractCPTimer {
  constructor() {
    this.p15_1 = ArrayList.q1();
  }
  q15(listener) {
    this.p15_1.c1(listener);
  }
}
class AbstractMutableOneDScreenTransform {
  static t15() {
    var $this = createThis(this);
    $this.s15_1 = CollectionFactory_instance.nk();
    return $this;
  }
  u15(event) {
    var _iterator__ex2g4s = this.s15_1.h1();
    while (_iterator__ex2g4s.i1()) {
      var listener = _iterator__ex2g4s.j1();
      listener.v15(event);
    }
  }
}
class RangesScreenTransformCoordinator$xRangeListener$1 {
  constructor(this$0, $xRange, $yRange) {
    this.g16_1 = this$0;
    this.h16_1 = $xRange;
    this.i16_1 = $yRange;
  }
  kn(event) {
    if (!this.g16_1.l16_1) {
      this.g16_1.l16_1 = true;
      if (!(event.go_1 === event.do_1)) {
        var xRangeRatio = this.h16_1.extent / this.h16_1.pp();
        var yDiff = this.i16_1.extent - this.i16_1.pp() * xRangeRatio;
        adjustValues(this.g16_1, this.i16_1, yDiff);
      }
      this.g16_1.l16_1 = false;
    }
  }
}
class RangesScreenTransformCoordinator$yRangeListener$1 {
  constructor(this$0, $yRange, $xRange) {
    this.o16_1 = this$0;
    this.p16_1 = $yRange;
    this.q16_1 = $xRange;
  }
  kn(event) {
    if (!this.o16_1.l16_1) {
      this.o16_1.l16_1 = true;
      if (!(event.go_1 === event.do_1)) {
        var yRangeRatio = this.p16_1.extent / this.p16_1.pp();
        var xDiff = this.q16_1.extent - this.q16_1.pp() * yRangeRatio;
        adjustValues(this.o16_1, this.q16_1, xDiff);
      }
      this.o16_1.l16_1 = false;
    }
  }
}
class RangesScreenTransformCoordinator {
  constructor(xRange, yRange) {
    this.l16_1 = false;
    var tmp = this;
    tmp.m16_1 = new RangesScreenTransformCoordinator$xRangeListener$1(this, xRange, yRange);
    var tmp_0 = this;
    tmp_0.n16_1 = new RangesScreenTransformCoordinator$yRangeListener$1(this, yRange, xRange);
    this.j16_1 = xRange;
    this.k16_1 = yRange;
    xRange.addIntervalListener(this.m16_1);
    yRange.addIntervalListener(this.n16_1);
  }
}
class ScreenTransformEvent {}
class SimpleOneDScreenTransform$intervalListener$1 {
  constructor(this$0) {
    this.r16_1 = this$0;
  }
  kn(event) {
    this.r16_1.u15(new ScreenTransformEvent());
  }
}
class SimpleOneDScreenTransform extends AbstractMutableOneDScreenTransform {
  static z16(world, screenSize) {
    var $this = this.t15();
    $this.t16_1 = world;
    $this.u16_1 = 0;
    $this.v16_1 = 0;
    $this.w16_1 = false;
    $this.x16_1 = false;
    var tmp = $this;
    tmp.y16_1 = new SimpleOneDScreenTransform$intervalListener$1($this);
    $this.t16_1.addWeakIntervalListener($this.y16_1);
    $this.w15(screenSize);
    return $this;
  }
  y15(screenMargins) {
    if (!(this.u16_1 === screenMargins)) {
      this.u16_1 = screenMargins;
      this.u15(new ScreenTransformEvent());
    }
  }
  w15(screenSize) {
    if (!(this.v16_1 === screenSize)) {
      this.v16_1 = screenSize;
      this.u15(new ScreenTransformEvent());
    }
  }
  x15() {
    return this.v16_1;
  }
  f16() {
    return this.x16_1;
  }
  static a17(world, screenSize, invertDeviceCoordinates, invertWorldCoordinates) {
    var $this = this.z16(world, screenSize);
    $this.w16_1 = invertDeviceCoordinates;
    $this.x16_1 = invertWorldCoordinates;
    return $this;
  }
  z15(screen) {
    var normalized;
    normalized = (screen - (this.u16_1 / 2 | 0) | 0) / (this.v16_1 - this.u16_1 | 0);
    if (this.w16_1)
      normalized = 1.0 - normalized;
    if (this.x16_1) {
      normalized = 1.0 - normalized;
    }
    normalized = normalized * this.e16() + this.d16();
    return normalized;
  }
  a16(world) {
    return numberToInt(this.b16(world));
  }
  b16(world) {
    var tmp;
    if (!!(this.x16_1 ^ this.w16_1)) {
      tmp = (this.b17() - world) * (this.v16_1 - this.u16_1 | 0) / this.e16() + this.u16_1 / 2.0;
    } else {
      tmp = (world - this.d16()) * (this.v16_1 - this.u16_1 | 0) / this.e16() + this.u16_1 / 2.0;
    }
    return tmp;
  }
  c16() {
    return this.t16_1;
  }
  d16() {
    var tmp;
    if (this.x16_1) {
      tmp = this.t16_1.gn() + (this.t16_1.hn() - (this.t16_1.start + this.t16_1.extent));
    } else {
      tmp = this.t16_1.start;
    }
    return tmp;
  }
  b17() {
    var tmp;
    if (this.x16_1) {
      tmp = this.t16_1.gn() + (this.t16_1.hn() - this.t16_1.start);
    } else {
      tmp = this.t16_1.start + this.t16_1.extent;
    }
    return tmp;
  }
  e16() {
    return this.t16_1.extent;
  }
  toString() {
    return 'SimpleOneDScreenTransform{world=' + this.t16_1 + ', screenMargins=' + this.u16_1 + ', screenSize=' + this.v16_1 + ', invertDeviceCoordinates=' + this.w16_1 + ', invertWorldCoordinates=' + this.x16_1 + toString(_Char___init__impl__6a9atx(125));
  }
}
class Quantity {}
class CollectionFactory {
  nk() {
    return ArrayList.q1();
  }
  c17() {
    return HashMap.i7();
  }
  y14() {
    return LinkedHashSet.m1();
  }
}
class JsArrayList extends ArrayList {
  constructor(elements) {
    return new.target.g17(elements);
  }
  static g17(elements) {
    return this.s(toList(elements));
  }
}
class SoftReference {
  constructor(referent) {
    this.h17_1 = referent;
  }
  zj() {
    return this.h17_1;
  }
}
class CallableFuture {
  constructor(task) {
    this.i17_1 = false;
    this.j17_1 = null;
    this.k17_1 = null;
    try {
      this.j17_1 = task.l17();
      this.i17_1 = true;
    } catch ($p) {
      if ($p instanceof Exception) {
        var e = $p;
        this.k17_1 = e;
      } else {
        throw $p;
      }
    }
  }
  m17() {
    return this.i17_1;
  }
  n17(mayInterruptIfRunning) {
    return false;
  }
  o17() {
    return false;
  }
  zj() {
    if (!(this.k17_1 == null)) {
      throw RuntimeException.lb(this.k17_1);
    } else {
      return this.j17_1;
    }
  }
}
class ExecutorService {
  p17(task) {
    var future = new CallableFuture(ensureNotNull(task));
    return future;
  }
}
class Companion_28 {
  q17() {
    return new Runtime();
  }
}
class Runtime {
  r17() {
    return 1;
  }
}
class Companion_29 {
  constructor() {
    Companion_instance_29 = this;
    this.s17_1 = new CPHelper();
  }
}
class CPHelper {
  constructor() {
    Companion_getInstance_29();
    var tmp = this;
    tmp.t17_1 = lazy(CPHelper$visualizationExecutorService$delegate$lambda(this));
    this.u17_1 = false;
  }
  v17(name, corePoolSize, maximumPoolSize) {
    return new ExecutorService();
  }
  w17(name, delay, postponing) {
    return new GWTTimer(name, delay, postponing);
  }
  x17(name, delay, postponing, timerListener) {
    var timer = this.w17(name, delay, postponing);
    timer.q15(timerListener);
    return timer;
  }
  y17(millis) {
  }
  z17(a, b) {
    return a.equals(b);
  }
  a18(cl) {
    return !(cl == null) && (this.z17(PrimitiveClasses_getInstance().tc(), cl) || cl.equals(PrimitiveClasses_getInstance().bd()) || cl.equals(PrimitiveClasses_getInstance().yc()) || cl.equals(PrimitiveClasses_getInstance().ad()) || cl.equals(PrimitiveClasses_getInstance().xc()) || cl.equals(PrimitiveClasses_getInstance().zc()));
  }
  b18(cl) {
    return false;
  }
  c18(cl) {
    return false;
  }
  d18(cl) {
    return PrimitiveClasses_getInstance().cd().equals(cl);
  }
  e18() {
    return numberToLong(Date.now());
  }
}
class Timer {
  constructor($box) {
    boxApply(this, $box);
    this.k18_1 = false;
    this.l18_1 = null;
  }
  m18() {
    return !(this.l18_1 == null);
  }
  n18() {
    if (!this.m18()) {
      return Unit_instance;
    }
    if (this.k18_1) {
      window.clearInterval(ensureNotNull(this.l18_1));
    } else {
      window.clearTimeout(ensureNotNull(this.l18_1));
    }
    this.l18_1 = null;
  }
  o18(delayMillis) {
    // Inline function 'kotlin.require' call
    if (!(delayMillis >= 0)) {
      var message = 'must be non-negative';
      throw IllegalArgumentException.w(toString_1(message));
    }
    if (this.m18()) {
      this.n18();
    }
    this.k18_1 = false;
    this.l18_1 = window.setTimeout(createTimeoutCallback(this, this), delayMillis);
  }
  p18() {
    if (!this.k18_1) {
      this.l18_1 = null;
    }
    this.i18();
  }
}
class GWTTimer$1 extends Timer {
  constructor(this$0, $box) {
    if ($box === VOID)
      $box = {};
    $box.h18_1 = this$0;
    super($box);
  }
  i18() {
    var _iterator__ex2g4s = this.h18_1.p15_1.h1();
    while (_iterator__ex2g4s.i1()) {
      var listener = _iterator__ex2g4s.j1();
      listener.j18();
    }
  }
}
class GWTTimer extends AbstractCPTimer {
  constructor(name, delay, postponing) {
    super();
    this.r18_1 = name;
    this.s18_1 = delay;
    this.t18_1 = postponing;
    var tmp = this;
    tmp.u18_1 = new GWTTimer$1(this);
  }
  r15() {
    if (this.t18_1 || !this.u18_1.m18()) {
      this.u18_1.o18(this.s18_1);
    }
  }
}
class Companion_30 {
  constructor() {
    Companion_instance_30 = this;
    this.v18_1 = new FormatFactory();
  }
}
class FormatFactory$createDecimalFormat$1 {
  w18(value) {
    return toString_0(value);
  }
  zl(value, htmlSupported) {
    if (!htmlSupported) {
      return this.w18(value);
    } else {
      return toString_0(value);
    }
  }
  zk(value, htmlSupported) {
    return this.zl((value == null ? true : !(value == null)) ? value : THROW_CCE(), htmlSupported);
  }
  yk() {
    var reason = 'Not yet implemented';
    throw NotImplementedError.ui('An operation is not implemented: ' + reason);
  }
}
class FormatFactory {
  constructor() {
    Companion_getInstance_30();
  }
  x18() {
    return new FormatFactory$createDecimalFormat$1();
  }
  y18(pattern) {
    // Inline function 'kotlin.TODO' call
    var reason = 'Not yet implemented';
    throw NotImplementedError.ui('An operation is not implemented: ' + reason);
  }
  z18(pattern) {
    return ensureNotNull(this.am(0));
  }
}
class BigDecimals {
  constructor() {
    BigDecimals_instance = this;
    this.sp_1 = Companion_getInstance_21().ZERO;
    this.tp_1 = Companion_getInstance_21().ONE;
    this.up_1 = Companion_getInstance_21().TWO;
    this.vp_1 = Companion_getInstance_21().TEN;
    this.wp_1 = Companion_getInstance_21().ONE_TENTH;
    this.xp_1 = Companion_getInstance_21().ONE_HALF;
    this.yp_1 = Companion_getInstance_21().PI;
    this.zp_1 = Companion_getInstance_21().E;
  }
}
class BigIntegers {
  constructor() {
    BigIntegers_instance = this;
    this.tq_1 = Companion_getInstance_22().ZERO;
    this.uq_1 = Companion_getInstance_22().ONE;
    this.vq_1 = Companion_getInstance_22().TWO;
    this.wq_1 = Companion_getInstance_22().TEN;
    this.xq_1 = Companion_getInstance_22().NEGATIVE_ONE;
  }
}
class Timing {
  constructor() {
    this.a19_1 = 0.0;
    this.b19_1 = 0.0;
    this.c19_1 = 0n;
    this.d19_1 = 0n;
    this.e19_1 = 0;
  }
  f19() {
    return this.c19_1;
  }
  g19() {
    var tmp0 = this.d19_1;
    // Inline function 'kotlin.Long.div' call
    var other = this.e19_1;
    return divide(tmp0, fromInt_0(other));
  }
  h19() {
    if (this.f19() > 0n) {
      return convertToInt(divide(1000n, this.f19()));
    } else {
      return 1000;
    }
  }
  i19() {
    this.a19_1 = Date.now();
  }
  j19() {
    this.b19_1 = Date.now();
    this.c19_1 = numberToLong(this.b19_1 - this.a19_1);
    this.d19_1 = add_0(this.d19_1, this.c19_1);
    this.e19_1 = this.e19_1 + 1 | 0;
  }
  toString() {
    return 'Timing(lastDuration=' + this.f19().toString() + ', fps=' + this.h19() + ', averageDuration=' + this.g19().toString() + ')';
  }
}
class ReactHTML {}
class IColor {}
function toHTMLColor() {
  var alpha;
  var red = toString_6(this.k19(), 16);
  var blu = toString_6(this.m19(), 16);
  var gre = toString_6(this.l19(), 16);
  var tmp = this.n19();
  // Inline function 'kotlin.UInt.toUByte' call
  var this_0 = _UInt___init__impl__l7qpdl(255);
  // Inline function 'kotlin.toUByte' call
  var this_1 = _UInt___get_data__impl__f0vqqw(this_0);
  if (tmp === _UByte___init__impl__g9hnc4(toByte(this_1))) {
    alpha = '';
  } else {
    alpha = toString_6(this.n19(), 16);
    alpha = alpha.length === 1 ? '0' + alpha : alpha;
  }
  red = red.length === 1 ? '0' + red : red;
  blu = blu.length === 1 ? '0' + blu : blu;
  gre = gre.length === 1 ? '0' + gre : gre;
  return '#' + alpha + red + gre + blu;
}
function toJavaScriptColor() {
  var tmp;
  var tmp_0 = this.n19();
  // Inline function 'kotlin.UInt.toUByte' call
  var this_0 = _UInt___init__impl__l7qpdl(255);
  // Inline function 'kotlin.toUByte' call
  var this_1 = _UInt___get_data__impl__f0vqqw(this_0);
  if (tmp_0 === _UByte___init__impl__g9hnc4(toByte(this_1))) {
    tmp = this.o19();
  } else {
    var tmp_1 = 'rgba(' + UByte__toString_impl_v72jg(this.k19()) + ',' + UByte__toString_impl_v72jg(this.l19()) + ',' + UByte__toString_impl_v72jg(this.m19()) + ',';
    // Inline function 'kotlin.UByte.toFloat' call
    // Inline function 'kotlin.UByte.toInt' call
    var this_2 = this.n19();
    // Inline function 'kotlin.uintToFloat' call
    var value = _UByte___get_data__impl__jof9qr(this_2) & 255;
    tmp = tmp_1 + (uintToDouble(value) / 255.0).toString() + ')';
  }
  return tmp;
}
class PropertyType extends Enum {}
class WeakColorMapListener {
  constructor(listener) {
    this.q19_1 = new WeakReference(listener);
  }
  r19(event) {
    var l = this.jk();
    if (!(l == null)) {
      l.r19(event);
    } else {
      event.w19().removeColorMapListener(this);
    }
  }
  jk() {
    return this.q19_1.zj();
  }
}
class Companion_31 {
  constructor() {
    this.x19_1 = 'inverval';
    this.y19_1 = 'palette';
    this.z19_1 = 'matching';
    this.a1a_1 = 'assignments';
    this.b1a_1 = 'missingValuesColor';
    this.c1a_1 = 'underflowColor';
    this.d1a_1 = 'overflowColor';
    this.e1a_1 = 'inverted';
    this.f1a_1 = 'numberOfSteps';
    this.g1a_1 = 'brightness';
    this.h1a_1 = 'saturation';
    this.i1a_1 = 'alpha';
  }
}
class AbstractColorMap {
  static k1a() {
    var $this = createThis(this);
    $this.j1a_1 = CollectionFactory_instance.nk();
    return $this;
  }
  l1a(listener) {
    this.j1a_1.c1(listener);
  }
  addColorMapListener(listener) {
    return this.l1a(listener);
  }
  m1a(listener) {
    this.j1a_1.c1(new WeakColorMapListener(listener));
  }
  addWeakColorMapListener(listener) {
    return this.m1a(listener);
  }
  n1a(listener) {
    if (listener instanceof WeakColorMapListener) {
      var removed = this.j1a_1.e3(listener);
    } else {
      var toRemove = null;
      var _iterator__ex2g4s = this.j1a_1.h1();
      while (_iterator__ex2g4s.i1()) {
        var ColormapListener = _iterator__ex2g4s.j1();
        var comparable;
        var tmp;
        if (ColormapListener instanceof WeakColorMapListener) {
          tmp = ColormapListener.jk();
        } else {
          tmp = ColormapListener;
        }
        comparable = tmp;
        if (equals(listener, comparable)) {
          toRemove = ColormapListener;
        }
      }
      if (!(toRemove == null)) {
        var removed_0 = this.j1a_1.e3(toRemove);
      }
    }
  }
  removeColorMapListener(listener) {
    return this.n1a(listener);
  }
  o1a(event) {
    var _iterator__ex2g4s = this.j1a_1.h1();
    while (_iterator__ex2g4s.i1()) {
      var listener = _iterator__ex2g4s.j1();
      listener.r19(event);
    }
  }
}
class Assignments extends Enum {}
class ColorMapEvent {
  constructor(colorMap, propertyName, oldValue, newValue) {
    this.s19_1 = colorMap;
    this.t19_1 = propertyName;
    this.v19_1 = oldValue;
    this.u19_1 = newValue;
  }
  w19() {
    return this.s19_1;
  }
}
class Companion_32 {
  constructor() {
    Companion_instance_32 = this;
    this.b1b_1 = new ColorMapFactory();
  }
}
class ColorMapFactory {
  constructor(paletteFactory) {
    Companion_getInstance_32();
    paletteFactory = paletteFactory === VOID ? Companion_getInstance_55().instance : paletteFactory;
    this.c1b_1 = Companion_getInstance_56().e1b_1;
    this.d1b_1 = paletteFactory;
  }
  f1b(min, max) {
    return this.g1b(min, max, this.d1b_1.createDefaultSequentialPalette());
  }
  h1b(min, max) {
    return this.g1b(min, max, this.d1b_1.createDefaultDivergingPalette());
  }
  i1b(values) {
    return this.j1b(values, true, this.d1b_1.createDefaultQualititativePalette());
  }
  g1b(min, max, palette) {
    return SimpleColorMap.intervalConstructor(PropertyClosedInterval.po(min, max - min), palette);
  }
  j1b(values, cyclic, palette) {
    return SimpleColorMap.values(values, cyclic, palette);
  }
  k1b(mininum, maximum) {
    var tmp;
    if (!(mininum == null) && !(maximum == null)) {
      var tmp_0;
      if (numberToDouble(mininum) < 0 && numberToDouble(maximum) > 0) {
        var diffMin = 0 - numberToDouble(mininum);
        var diffMax = numberToDouble(maximum);
        // Inline function 'kotlin.math.max' call
        var maxDiff = Math.max(diffMin, diffMax);
        tmp_0 = this.h1b(0 - maxDiff, maxDiff);
      } else {
        tmp_0 = this.f1b(numberToDouble(mininum), numberToDouble(maximum));
      }
      tmp = tmp_0;
    } else {
      tmp = this.f1b(0.0, 0.0);
    }
    return tmp;
  }
  l1b(mininum, maximum) {
    var tmp;
    if (!(mininum == null) && !(maximum == null)) {
      var tmp_0;
      if (numberToDouble(mininum) < 0 && numberToDouble(maximum) > 0) {
        var diffMin = 0 - numberToDouble(mininum);
        var diffMax = numberToDouble(maximum);
        // Inline function 'kotlin.math.max' call
        var maxDiff = Math.max(diffMin, diffMax);
        var min = 0 - maxDiff;
        var minF = (min - numberToDouble(mininum)) / (numberToDouble(maximum) - numberToDouble(mininum));
        var maxF = (maxDiff - numberToDouble(mininum)) / (numberToDouble(maximum) - numberToDouble(mininum));
        var meanF = (maxF + minF) / 2.0;
        tmp_0 = this.g1b(numberToDouble(mininum), numberToDouble(maximum), CustomPalette.a1c([new Entry_0(minF, colorOf_1(255, 0, 0)), new Entry_0(meanF, this.c1b_1.r1b()), new Entry_0(maxF, colorOf_1(0, 128, 0))]));
      } else {
        tmp_0 = this.g1b(numberToDouble(mininum), numberToDouble(maximum), CustomPalette.a1c([new Entry_0(0.0, colorOf_1(255, 0, 0)), new Entry_0(0.5, this.c1b_1.r1b()), new Entry_0(1.0, colorOf_1(0, 128, 0))]));
      }
      tmp = tmp_0;
    } else {
      tmp = this.g1b(0.0, 0.0, CustomPalette.a1c([new Entry_0(0.0, this.c1b_1.r1b())]));
    }
    return tmp;
  }
}
class Matching extends Enum {}
class SetStoreMutableProperty$1 {
  constructor($store) {
    this.b1c_1 = $store;
  }
  b10(event) {
    if (!event.newValue) {
      this.b1c_1.ap(null);
    }
  }
  vo(event) {
    return this.b10(event);
  }
}
class SetStoreMutableProperty$2 {
  constructor(this$0) {
    this.c1c_1 = this$0;
  }
  d1c(event) {
    this.c1c_1.ay(new PropertyEvent(null, this.c1c_1.z2()));
  }
  vo(event) {
    return this.d1c(event);
  }
}
class SetStoreMutableProperty$3 {
  constructor(this$0) {
    this.k1c_1 = this$0;
  }
  l1c(event) {
    this.k1c_1.ay(new PropertyEvent(event.oldValue, this.k1c_1.z2()));
  }
  vo(event) {
    return this.l1c(event);
  }
}
class SetStoreMutableProperty extends AbstractMutableProperty {
  constructor(set, store, palette, fraction) {
    super();
    this.g1c_1 = set;
    this.h1c_1 = store;
    this.i1c_1 = palette;
    this.j1c_1 = fraction;
    this.g1c_1.zo(new SetStoreMutableProperty$1(store));
    palette.zo(new SetStoreMutableProperty$2(this));
    store.zo(new SetStoreMutableProperty$3(this));
  }
  m1c(value) {
    if (!(value == null)) {
      this.g1c_1.ap(true);
    }
    this.h1c_1.ap(value);
  }
  ap(_set____db54di) {
    return this.m1c((_set____db54di == null ? true : _set____db54di instanceof CPColor) ? _set____db54di : THROW_CCE());
  }
  z2() {
    var tmp;
    if (!(this.h1c_1.z2() == null)) {
      tmp = this.h1c_1.z2();
    } else {
      tmp = !(this.i1c_1.z2() == null) ? ensureNotNull(this.i1c_1.z2()).n1c(this.j1c_1) : null;
    }
    return tmp;
  }
}
class SimpleColorMap$intervalListener$1 {
  constructor(this$0) {
    this.x1d_1 = this$0;
  }
  kn(event) {
    this.x1d_1.o1a(new ColorMapEvent(this.x1d_1, 'inverval', null, null));
  }
}
class SimpleColorMap$paletteListener$1 {
  constructor(this$0) {
    this.y1d_1 = this$0;
  }
  z1d(event) {
    this.y1d_1.o1a(new ColorMapEvent(this.y1d_1, 'palette', null, null));
  }
}
class SimpleColorMap$1 {
  constructor(this$0) {
    this.a1e_1 = this$0;
  }
  d1c(event) {
    if (!(event.oldValue == null)) {
      ensureNotNull(event.oldValue).b1e(this.a1e_1.q1d_1);
    }
    if (!(event.newValue == null)) {
      ensureNotNull(event.newValue).c1e(this.a1e_1.q1d_1);
    }
    this.a1e_1.o1a(new ColorMapEvent(this.a1e_1, 'palette', event.oldValue, event.newValue));
  }
  vo(event) {
    return this.d1c(event);
  }
}
class SimpleColorMap$2 {
  constructor(this$0) {
    this.d1e_1 = this$0;
  }
  b10(event) {
    this.d1e_1.o1a(new ColorMapEvent(this.d1e_1, 'inverted', event.oldValue, event.newValue));
  }
  vo(event) {
    return this.b10(event);
  }
}
class SimpleColorMap$3 {
  constructor(this$0) {
    this.e1e_1 = this$0;
  }
  f1e(event) {
    this.e1e_1.o1a(new ColorMapEvent(this.e1e_1, 'brightness', event.oldValue, event.newValue));
  }
  vo(event) {
    return this.f1e(event);
  }
}
class SimpleColorMap$4 {
  constructor(this$0) {
    this.g1e_1 = this$0;
  }
  f1e(event) {
    this.g1e_1.o1a(new ColorMapEvent(this.g1e_1, 'saturation', event.oldValue, event.newValue));
  }
  vo(event) {
    return this.f1e(event);
  }
}
class SimpleColorMap$5 {
  constructor(this$0) {
    this.h1e_1 = this$0;
  }
  l1c(event) {
    this.h1e_1.o1a(new ColorMapEvent(this.h1e_1, 'overflowColor', event.oldValue, event.newValue));
  }
  vo(event) {
    return this.l1c(event);
  }
}
class SimpleColorMap$6 {
  constructor(this$0) {
    this.i1e_1 = this$0;
  }
  l1c(event) {
    this.i1e_1.o1a(new ColorMapEvent(this.i1e_1, 'underflowColor', event.oldValue, event.newValue));
  }
  vo(event) {
    return this.l1c(event);
  }
}
class SimpleColorMap$7 {
  constructor(this$0) {
    this.j1e_1 = this$0;
  }
  l1c(event) {
    this.j1e_1.o1a(new ColorMapEvent(this.j1e_1, 'missingValuesColor', event.oldValue, event.newValue));
  }
  vo(event) {
    return this.l1c(event);
  }
}
class SimpleColorMap$8 {
  constructor(this$0) {
    this.k1e_1 = this$0;
  }
  b10(event) {
    this.k1e_1.o1a(new ColorMapEvent(this.k1e_1, 'numberOfSteps', event.oldValue, event.newValue));
  }
  vo(event) {
    return this.b10(event);
  }
}
class SimpleColorMap$9 {
  constructor(this$0) {
    this.l1e_1 = this$0;
  }
  f1e(event) {
    this.l1e_1.o1a(new ColorMapEvent(this.l1e_1, 'numberOfSteps', event.oldValue, event.newValue));
  }
  vo(event) {
    return this.f1e(event);
  }
}
class SimpleColorMap extends AbstractColorMap {
  static m1e() {
    var $this = this.k1a();
    $this.p1c_1 = new EnumProperties(values_0());
    $this.q1c_1 = null;
    $this.r1c_1 = $this.p1c_1.bz(PropertyType_Palette_getInstance(), null);
    $this.s1c_1 = PropertyDelegates_instance.k10($this.r1c_1);
    $this.u1c_1 = Matching_EXACT_getInstance();
    $this.v1c_1 = Assignments_STATIC_getInstance();
    $this.w1c_1 = $this.p1c_1.bz(PropertyType_MissingValuesColor_getInstance(), null);
    $this.x1c_1 = PropertyDelegates_instance.k10($this.w1c_1);
    $this.y1c_1 = new SimpleProperty(false);
    $this.z1c_1 = new SimpleProperty(null);
    $this.a1d_1 = $this.p1c_1.cz(PropertyType_UnderflowColor_getInstance(), new SetStoreMutableProperty($this.y1c_1, $this.z1c_1, $this.r1c_1, 0.0));
    $this.b1d_1 = new SimpleProperty(false);
    $this.c1d_1 = new SimpleProperty(null);
    $this.d1d_1 = $this.p1c_1.cz(PropertyType_OverflowColor_getInstance(), new SetStoreMutableProperty($this.b1d_1, $this.c1d_1, $this.r1c_1, 1.0));
    $this.e1d_1 = $this.p1c_1.bz(PropertyType_Inverted_getInstance(), false);
    $this.f1d_1 = PropertyDelegates_instance.k10($this.e1d_1);
    $this.g1d_1 = new SimpleProperty(false);
    $this.h1d_1 = $this.p1c_1.bz(PropertyType_NumberOfSteps_getInstance(), 3);
    $this.i1d_1 = PropertyDelegates_instance.k10($this.h1d_1);
    $this.j1d_1 = $this.p1c_1.bz(PropertyType_Brightness_getInstance(), 0);
    $this.k1d_1 = PropertyDelegates_instance.k10($this.j1d_1);
    $this.l1d_1 = $this.p1c_1.bz(PropertyType_Saturation_getInstance(), 0);
    $this.m1d_1 = PropertyDelegates_instance.k10($this.l1d_1);
    $this.n1d_1 = 1.0;
    $this.o1d_1 = Companion_getInstance_56().e1b_1;
    var tmp = $this;
    tmp.p1d_1 = new SimpleColorMap$intervalListener$1($this);
    var tmp_0 = $this;
    tmp_0.q1d_1 = new SimpleColorMap$paletteListener$1($this);
    $this.p1c_1.bz(PropertyType_Inverval_getInstance(), null);
    $this.p1c_1.bz(PropertyType_Matching_getInstance(), Matching_EXACT_getInstance());
    $this.p1c_1.bz(PropertyType_Assignments_getInstance(), Assignments_STATIC_getInstance());
    var tmp_1 = $this.r1c_1;
    tmp_1.zo(new SimpleColorMap$1($this));
    var tmp_2 = $this.e1d_1;
    tmp_2.zo(new SimpleColorMap$2($this));
    var tmp_3 = $this.j1d_1;
    tmp_3.zo(new SimpleColorMap$3($this));
    var tmp_4 = $this.l1d_1;
    tmp_4.zo(new SimpleColorMap$4($this));
    $this.d1d_1.zo(new SimpleColorMap$5($this));
    $this.a1d_1.zo(new SimpleColorMap$6($this));
    $this.w1c_1.zo(new SimpleColorMap$7($this));
    var tmp_5 = $this.g1d_1;
    tmp_5.zo(new SimpleColorMap$8($this));
    var tmp_6 = $this.h1d_1;
    tmp_6.zo(new SimpleColorMap$9($this));
    $this.w1c_1.ap($this.o1d_1.n1e());
    $this.t1c_1 = HashMap.i7();
    delete $this.interval;
    delete $this.interval;
    delete $this.paletteProperty;
    delete $this.palette;
    delete $this.palette;
    delete $this.nullColorProperty;
    delete $this.nullColor;
    delete $this.nullColor;
    delete $this.underColorSetProperty;
    delete $this.underColorStoreProperty;
    delete $this.underColorProperty;
    delete $this.overColorSetProperty;
    delete $this.overColorStoreProperty;
    delete $this.overColorProperty;
    delete $this.isInvertedProperty;
    delete $this.isInverted;
    delete $this.isInverted;
    delete $this.colorCountSetProperty;
    delete $this.colorCountProperty;
    delete $this.colorCount;
    delete $this.colorCount;
    delete $this.brightnessProperty;
    delete $this.brightness;
    delete $this.brightness;
    delete $this.saturationProperty;
    delete $this.saturation;
    delete $this.saturation;
    delete $this.alpha;
    delete $this.alpha;
    delete $this.underflowColor;
    delete $this.underflowColor;
    delete $this.overflowColor;
    delete $this.overflowColor;
    delete $this.isOverflowColorSet;
    delete $this.isOverflowColorSet;
    delete $this.isUnderflowColorSet;
    delete $this.isUnderflowColorSet;
    delete $this.assignedValues;
    delete $this.assignedValues;
    return $this;
  }
  o1e(interval) {
    if (!(this.q1c_1 === interval)) {
      var old = this.q1c_1;
      if (!(this.q1c_1 == null)) {
        ensureNotNull(this.q1c_1).removeIntervalListener(this.p1d_1);
      }
      this.q1c_1 = interval;
      if (!(this.q1c_1 == null)) {
        ensureNotNull(this.q1c_1).addIntervalListener(this.p1d_1);
      }
      this.o1a(new ColorMapEvent(this, 'inverval', old, interval));
    }
  }
  t1a() {
    return this.q1c_1;
  }
  p1e(_set____db54di) {
    this.r1c_1 = _set____db54di;
  }
  q1e() {
    return this.r1c_1;
  }
  r1d(_set____db54di) {
    var tmp = KMutableProperty1;
    var tmp_0 = SimpleColorMap$_get_palette_$ref_89wju4_0();
    return this.s1c_1.ef(this, getPropertyCallableRef('palette', 1, tmp, tmp_0, SimpleColorMap$_set_palette_$ref_m0hmhs_0()), _set____db54di);
  }
  u1a() {
    var tmp = KMutableProperty1;
    var tmp_0 = SimpleColorMap$_get_palette_$ref_89wju4();
    return this.s1c_1.cf(this, getPropertyCallableRef('palette', 1, tmp, tmp_0, SimpleColorMap$_set_palette_$ref_m0hmhs()));
  }
  r1e() {
    return this.w1c_1;
  }
  s1d(_set____db54di) {
    var tmp = KMutableProperty1;
    var tmp_0 = SimpleColorMap$_get_nullColor_$ref_k2v4t1_0();
    return this.x1c_1.ef(this, getPropertyCallableRef('nullColor', 1, tmp, tmp_0, SimpleColorMap$_set_nullColor_$ref_4v3map_0()), _set____db54di);
  }
  v1a() {
    var tmp = KMutableProperty1;
    var tmp_0 = SimpleColorMap$_get_nullColor_$ref_k2v4t1();
    return this.x1c_1.cf(this, getPropertyCallableRef('nullColor', 1, tmp, tmp_0, SimpleColorMap$_set_nullColor_$ref_4v3map()));
  }
  s1e(_set____db54di) {
    this.y1c_1 = _set____db54di;
  }
  t1e() {
    return this.y1c_1;
  }
  u1e(_set____db54di) {
    this.z1c_1 = _set____db54di;
  }
  v1e() {
    return this.z1c_1;
  }
  w1e() {
    return this.a1d_1;
  }
  x1e(_set____db54di) {
    this.b1d_1 = _set____db54di;
  }
  y1e() {
    return this.b1d_1;
  }
  z1e(_set____db54di) {
    this.c1d_1 = _set____db54di;
  }
  a1f() {
    return this.c1d_1;
  }
  b1f() {
    return this.d1d_1;
  }
  c1f(_set____db54di) {
    this.e1d_1 = _set____db54di;
  }
  d1f() {
    return this.e1d_1;
  }
  t1d(_set____db54di) {
    var tmp = KMutableProperty1;
    var tmp_0 = SimpleColorMap$_get_isInverted_$ref_pusu9g_0();
    return this.f1d_1.ef(this, getPropertyCallableRef('isInverted', 1, tmp, tmp_0, SimpleColorMap$_set_isInverted_$ref_bpe80_0()), _set____db54di);
  }
  fn() {
    var tmp = KMutableProperty1;
    var tmp_0 = SimpleColorMap$_get_isInverted_$ref_pusu9g();
    return this.f1d_1.cf(this, getPropertyCallableRef('isInverted', 1, tmp, tmp_0, SimpleColorMap$_set_isInverted_$ref_bpe80()));
  }
  e1f(_set____db54di) {
    this.g1d_1 = _set____db54di;
  }
  f1f() {
    return this.g1d_1;
  }
  g1f(_set____db54di) {
    this.h1d_1 = _set____db54di;
  }
  h1f() {
    return this.h1d_1;
  }
  u1d(_set____db54di) {
    var tmp = KMutableProperty1;
    var tmp_0 = SimpleColorMap$_get_colorCount_$ref_ggnfaf_0();
    return this.i1d_1.ef(this, getPropertyCallableRef('colorCount', 1, tmp, tmp_0, SimpleColorMap$_set_colorCount_$ref_92g0r1_0()), _set____db54di);
  }
  a1b() {
    var tmp = KMutableProperty1;
    var tmp_0 = SimpleColorMap$_get_colorCount_$ref_ggnfaf();
    return this.i1d_1.cf(this, getPropertyCallableRef('colorCount', 1, tmp, tmp_0, SimpleColorMap$_set_colorCount_$ref_92g0r1()));
  }
  i1f(_set____db54di) {
    this.j1d_1 = _set____db54di;
  }
  j1f() {
    return this.j1d_1;
  }
  v1d(_set____db54di) {
    var tmp = KMutableProperty1;
    var tmp_0 = SimpleColorMap$_get_brightness_$ref_rmha3m_0();
    return this.k1d_1.ef(this, getPropertyCallableRef('brightness', 1, tmp, tmp_0, SimpleColorMap$_set_brightness_$ref_23du26_0()), _set____db54di);
  }
  q1a() {
    var tmp = KMutableProperty1;
    var tmp_0 = SimpleColorMap$_get_brightness_$ref_rmha3m();
    return this.k1d_1.cf(this, getPropertyCallableRef('brightness', 1, tmp, tmp_0, SimpleColorMap$_set_brightness_$ref_23du26()));
  }
  k1f(_set____db54di) {
    this.l1d_1 = _set____db54di;
  }
  l1f() {
    return this.l1d_1;
  }
  w1d(_set____db54di) {
    var tmp = KMutableProperty1;
    var tmp_0 = SimpleColorMap$_get_saturation_$ref_3jmflr_0();
    return this.m1d_1.ef(this, getPropertyCallableRef('saturation', 1, tmp, tmp_0, SimpleColorMap$_set_saturation_$ref_t2pvn7_0()), _set____db54di);
  }
  r1a() {
    var tmp = KMutableProperty1;
    var tmp_0 = SimpleColorMap$_get_saturation_$ref_3jmflr();
    return this.m1d_1.cf(this, getPropertyCallableRef('saturation', 1, tmp, tmp_0, SimpleColorMap$_set_saturation_$ref_t2pvn7()));
  }
  m1f(alpha) {
    if (!(this.n1d_1 === alpha)) {
      var old = this.n1d_1;
      this.n1d_1 = alpha;
      this.o1a(new ColorMapEvent(this, 'alpha', old, alpha));
    }
  }
  s1a() {
    return this.n1d_1;
  }
  static intervalConstructor(interval, palette) {
    var $this = this.m1e();
    $this.o1e(interval);
    $this.r1d(palette);
    return $this;
  }
  static values(values, cyclic, palette) {
    var $this = this.m1e();
    $this.r1d(palette);
    if (values == null)
      null;
    else {
      // Inline function 'kotlin.let' call
      $this.n1f(values, cyclic);
    }
    return $this;
  }
  o1f(value) {
    var color;
    if (!(value == null)) {
      if (value instanceof CPColor) {
        return value;
      } else {
        var tmp;
        if (isComparable(value)) {
          tmp = this.t1c_1.a3(value);
        } else {
          tmp = false;
        }
        if (tmp) {
          color = this.t1c_1.c3(value);
        } else {
          var tmp_0;
          if (isNumber(value)) {
            tmp_0 = !(this.q1c_1 == null);
          } else {
            tmp_0 = false;
          }
          if (tmp_0) {
            var v = numberToDouble(value);
            var fraction;
            var tmp_1;
            if (!ensureNotNull(this.q1c_1).isDegenerate) {
              tmp_1 = (v - ensureNotNull(this.q1c_1).start) / ensureNotNull(this.q1c_1).extent;
            } else {
              tmp_1 = 0.5;
            }
            fraction = tmp_1;
            if (this.fn()) {
              fraction = 1.0 - fraction;
            }
            if (fraction < this.r1f()) {
              return this.x1a();
            } else if (fraction > this.q1f()) {
              return this.w1a();
            } else {
              var colorCount = this.g1d_1.z2() ? this.a1b() : 0;
              if (colorCount > 0) {
                var tmp_2;
                if (colorCount > 1) {
                  tmp_2 = numberToInt(fraction * colorCount) / (colorCount - 1 | 0);
                } else {
                  tmp_2 = 0.5;
                }
                fraction = tmp_2;
              }
              color = ensureNotNull(this.r1c_1.z2()).n1c(fraction);
            }
          } else {
            if (isArray(value)) {
              var str = arrayToString_0(this, value);
              var tmp_3;
              if (this.t1c_1.a3(str)) {
                tmp_3 = this.t1c_1.c3(str);
              } else {
                tmp_3 = this.v1a();
              }
              color = tmp_3;
            } else {
              var tmp_4;
              if (this.v1c_1 === Assignments_DYNAMIC_getInstance()) {
                var c = ensureNotNull(this.r1c_1.z2()).p1f(this.t1c_1.k1() % ensureNotNull(this.r1c_1.z2()).a1b() | 0);
                this.t1c_1.o6(value, c);
                tmp_4 = c;
              } else {
                tmp_4 = this.v1a();
              }
              color = tmp_4;
            }
          }
        }
      }
    } else {
      color = this.v1a();
    }
    if (!(color == null) && (!(this.j1d_1.z2() === 0) || !(this.l1d_1.z2() === 0))) {
      color = brightenAndSaturate(color, this.j1d_1.z2() / 300.0, this.l1d_1.z2() / 300.0);
    }
    if (!(color == null) && !(this.n1d_1 === 1.0)) {
      color = alpha(color, this.n1d_1);
    }
    return color;
  }
  getColor(value) {
    return this.o1f(value);
  }
  r1f() {
    var tmp = this.r1c_1.z2();
    if (tmp instanceof InterpolatedPalette) {
      var tmp_0 = this.r1c_1.z2();
      var tmp_1 = (tmp_0 instanceof InterpolatedPalette ? tmp_0 : THROW_CCE()).getEntries();
      var entries = tmp_1 instanceof SortedSet ? tmp_1 : THROW_CCE();
      if (!entries.p1()) {
        return first(entries).fraction;
      }
    } else {
      var tmp_2 = this.r1c_1.z2();
      if (tmp_2 instanceof CustomPalette) {
        var tmp_3 = this.u1a();
        var tmp_4 = (tmp_3 instanceof CustomPalette ? tmp_3 : THROW_CCE()).s1f();
        var entries_0 = tmp_4 instanceof SortedSet ? tmp_4 : THROW_CCE();
        if (!entries_0.p1()) {
          return first(entries_0).t1f_1;
        }
      }
    }
    return 0.0;
  }
  q1f() {
    var tmp = this.r1c_1.z2();
    if (tmp instanceof InterpolatedPalette) {
      var tmp_0 = this.r1c_1.z2();
      var tmp_1 = (tmp_0 instanceof InterpolatedPalette ? tmp_0 : THROW_CCE()).getEntries();
      var entries = tmp_1 instanceof SortedSet ? tmp_1 : THROW_CCE();
      if (!entries.p1()) {
        return last(entries).fraction;
      }
    } else {
      var tmp_2 = this.r1c_1.z2();
      if (tmp_2 instanceof CustomPalette) {
        var tmp_3 = this.u1a();
        var tmp_4 = (tmp_3 instanceof CustomPalette ? tmp_3 : THROW_CCE()).s1f();
        var entries_0 = tmp_4 instanceof SortedSet ? tmp_4 : THROW_CCE();
        if (!entries_0.p1()) {
          return last(entries_0).t1f_1;
        }
      }
    }
    return 1.0;
  }
  w1f(matching) {
    if (!(this.u1c_1 === matching)) {
      var old = this.u1c_1;
      this.u1c_1 = ensureNotNull(matching);
      this.o1a(new ColorMapEvent(this, 'matching', old, matching));
    }
  }
  setMatching(matching) {
    return this.w1f(matching);
  }
  x1f(assignments) {
    if (!(this.v1c_1 === assignments)) {
      var old = this.v1c_1;
      this.v1c_1 = ensureNotNull(assignments);
      this.o1a(new ColorMapEvent(this, 'assignments', old, assignments));
    }
  }
  setAssignments(assignments) {
    return this.x1f(assignments);
  }
  x1a() {
    return ensureNotNull(this.a1d_1.z2());
  }
  y1f(underColor) {
    if (!equals(this.x1a(), underColor) && (this.x1a() == null || !equals(this.x1a(), underColor))) {
      this.a1d_1.ap(ensureNotNull(underColor));
    }
  }
  setUnderColor(underColor) {
    return this.y1f(underColor);
  }
  w1a() {
    return ensureNotNull(this.c1d_1.z2());
  }
  z1f(overColor) {
    if (!equals(this.w1a(), overColor) && (this.w1a() == null || !equals(this.w1a(), overColor))) {
      this.c1d_1.ap(overColor);
    }
  }
  setOverColor(overColor) {
    return this.z1f(overColor);
  }
  y1a() {
    return this.b1d_1.z2();
  }
  z1a() {
    return this.y1c_1.z2();
  }
  n1f(values, cyclic) {
    this.t1c_1.u4();
    var i = 0;
    var _iterator__ex2g4s = values.h1();
    while (_iterator__ex2g4s.i1()) {
      var value = _iterator__ex2g4s.j1();
      var color;
      var tmp;
      if (!cyclic) {
        tmp = ensureNotNull(this.r1c_1.z2()).n1c(i / values.k1());
      } else {
        tmp = ensureNotNull(this.r1c_1.z2()).p1f(i % ensureNotNull(this.r1c_1.z2()).a1b() | 0);
      }
      color = tmp;
      var v;
      var tmp_0;
      if (!(value == null) ? isArray(value) : false) {
        tmp_0 = arrayToString_0(this, value);
      } else {
        tmp_0 = value;
      }
      v = tmp_0;
      this.t1c_1.o6(v, ensureNotNull(color));
      i = i + 1 | 0;
    }
    this.o1a(new ColorMapEvent(this, 'assignments', null, null));
  }
  assignColorsSet(values, normalized) {
    return this.n1f(values, normalized);
  }
  a1g(values) {
    this.t1c_1.u4();
    var i = 0;
    var inductionVariable = 0;
    var last = values.length;
    while (inductionVariable < last) {
      var value = values[inductionVariable];
      inductionVariable = inductionVariable + 1 | 0;
      if (!this.t1c_1.a3(value)) {
        this.t1c_1.o6(value, ensureNotNull(this.r1c_1.z2()).p1f(i % ensureNotNull(this.r1c_1.z2()).a1b() | 0));
        i = i + 1 | 0;
      }
    }
    this.o1a(new ColorMapEvent(this, 'assignments', null, null));
  }
  assignColors() {
    var values = [].slice.call(arguments, 0);
    return this.a1g(values);
  }
  b1g(values) {
    this.t1c_1.u4();
    var i = 0;
    var _iterator__ex2g4s = values.h1();
    while (_iterator__ex2g4s.i1()) {
      var value = _iterator__ex2g4s.j1();
      if (!this.t1c_1.a3(value)) {
        this.t1c_1.o6(value, ensureNotNull(this.r1c_1.z2()).p1f(i % ensureNotNull(this.r1c_1.z2()).a1b() | 0));
        i = i + 1 | 0;
      }
    }
    this.o1a(new ColorMapEvent(this, 'assignments', null, null));
  }
  assignColorsIterable(values) {
    return this.b1g(values);
  }
  c1g(value, color) {
    this.t1c_1.o6(value, ensureNotNull(color));
    this.o1a(new ColorMapEvent(this, 'assignments', null, null));
  }
  setColor(value, color) {
    return this.c1g(value, color);
  }
  d1g() {
    this.t1c_1.u4();
    this.o1a(new ColorMapEvent(this, 'assignments', null, null));
  }
  clearAssignedColor() {
    return this.d1g();
  }
  p1a() {
    return this.t1c_1.m6();
  }
  e1g() {
    var set = SortedSet.wj(new UniversalComparator());
    set.o1(this.t1c_1.m6());
    this.n1f(set, true);
  }
  resetAssignedValues() {
    return this.e1g();
  }
  f1g(property, value) {
    switch (property) {
      case 'inverval':
        this.o1e((!(value == null) ? !(value == null) : false) ? value : THROW_CCE());
        break;
      case 'palette':
        this.r1d((!(value == null) ? isInterface(value, MutablePalette) : false) ? value : THROW_CCE());
        break;
      case 'matching':
        this.w1f(value instanceof Matching ? value : THROW_CCE());
        break;
      case 'assignments':
        this.x1f(value instanceof Assignments ? value : THROW_CCE());
        break;
      case 'missingValuesColor':
        this.s1d(value instanceof CPColor ? value : THROW_CCE());
        break;
      case 'underflowColor':
        this.y1f(value instanceof CPColor ? value : THROW_CCE());
        break;
      case 'overflowColor':
        this.z1f(value instanceof CPColor ? value : THROW_CCE());
        break;
      case 'inverted':
        this.t1d((!(value == null) ? typeof value === 'boolean' : false) ? value : THROW_CCE());
        break;
      case 'numberOfSteps':
        this.u1d((!(value == null) ? typeof value === 'number' : false) ? value : THROW_CCE());
        break;
      case 'brightness':
        this.v1d((!(value == null) ? typeof value === 'number' : false) ? value : THROW_CCE());
        break;
      case 'saturation':
        this.w1d((!(value == null) ? typeof value === 'number' : false) ? value : THROW_CCE());
        break;
      case 'alpha':
        this.m1f((!(value == null) ? typeof value === 'number' : false) ? value : THROW_CCE());
        break;
      default:
        println('Unknonw property ' + property);
        break;
    }
  }
  setProperty(property, value) {
    return this.f1g(property, value);
  }
  toString() {
    return 'SimpleColorMap{interval=' + this.q1c_1 + ', palette=' + this.u1a() + ', nullColor=' + this.v1a() + ', underColor=' + this.a1d_1 + toString(_Char___init__impl__6a9atx(125));
  }
  get interval() {
    return this.t1a();
  }
  set interval(value) {
    this.o1e(value);
  }
  get paletteProperty() {
    return this.q1e();
  }
  set paletteProperty(value) {
    this.p1e(value);
  }
  get palette() {
    return this.u1a();
  }
  set palette(value) {
    this.r1d(value);
  }
  get nullColorProperty() {
    return this.r1e();
  }
  get nullColor() {
    return this.v1a();
  }
  set nullColor(value) {
    this.s1d(value);
  }
  get underColorSetProperty() {
    return this.t1e();
  }
  set underColorSetProperty(value) {
    this.s1e(value);
  }
  get underColorStoreProperty() {
    return this.v1e();
  }
  set underColorStoreProperty(value) {
    this.u1e(value);
  }
  get underColorProperty() {
    return this.w1e();
  }
  get overColorSetProperty() {
    return this.y1e();
  }
  set overColorSetProperty(value) {
    this.x1e(value);
  }
  get overColorStoreProperty() {
    return this.a1f();
  }
  set overColorStoreProperty(value) {
    this.z1e(value);
  }
  get overColorProperty() {
    return this.b1f();
  }
  get isInvertedProperty() {
    return this.d1f();
  }
  set isInvertedProperty(value) {
    this.c1f(value);
  }
  get isInverted() {
    return this.fn();
  }
  set isInverted(value) {
    this.t1d(value);
  }
  get colorCountSetProperty() {
    return this.f1f();
  }
  set colorCountSetProperty(value) {
    this.e1f(value);
  }
  get colorCountProperty() {
    return this.h1f();
  }
  set colorCountProperty(value) {
    this.g1f(value);
  }
  get colorCount() {
    return this.a1b();
  }
  set colorCount(value) {
    this.u1d(value);
  }
  get brightnessProperty() {
    return this.j1f();
  }
  set brightnessProperty(value) {
    this.i1f(value);
  }
  get brightness() {
    return this.q1a();
  }
  set brightness(value) {
    this.v1d(value);
  }
  get saturationProperty() {
    return this.l1f();
  }
  set saturationProperty(value) {
    this.k1f(value);
  }
  get saturation() {
    return this.r1a();
  }
  set saturation(value) {
    this.w1d(value);
  }
  get alpha() {
    return this.s1a();
  }
  set alpha(value) {
    this.m1f(value);
  }
  get underflowColor() {
    return this.x1a();
  }
  get overflowColor() {
    return this.w1a();
  }
  get isOverflowColorSet() {
    return this.y1a();
  }
  get isUnderflowColorSet() {
    return this.z1a();
  }
  get assignedValues() {
    return this.p1a();
  }
}
class MutableColorMapOverrideProperty extends OverrideProperty {
  g10() {
    var overrideProperty = new MutableColorMapProperty(this.e10().z2());
    return this.h10(overrideProperty);
  }
}
class MutableColorMapProperty$colorMapListener$1 {
  constructor(this$0, $colorMap) {
    this.m1g_1 = this$0;
    this.n1g_1 = $colorMap;
  }
  r19(event) {
    this.m1g_1.ay(new PropertyEvent(null, this.n1g_1));
  }
}
class MutableColorMapProperty extends AbstractMutableProperty {
  constructor(colorMap) {
    super();
    this.q1g_1 = null;
    var tmp = this;
    tmp.r1g_1 = new MutableColorMapProperty$colorMapListener$1(this, colorMap);
    this.s1g(colorMap);
  }
  s1g(value) {
    if (!(this.q1g_1 == null)) {
      ensureNotNull(this.q1g_1).removeColorMapListener(this.r1g_1);
    }
    var old = this.q1g_1;
    this.q1g_1 = value;
    if (!(this.q1g_1 == null)) {
      ensureNotNull(this.q1g_1).addColorMapListener(this.r1g_1);
    }
    this.ay(new PropertyEvent(old, this.q1g_1));
  }
  ap(_set____db54di) {
    return this.s1g((_set____db54di == null ? true : !(_set____db54di == null)) ? _set____db54di : THROW_CCE());
  }
  z2() {
    return this.q1g_1;
  }
}
class InteractiveComponentListeners {
  constructor() {
    this.t1g_1 = ArrayList.q1();
    this.u1g_1 = ArrayList.q1();
    this.v1g_1 = ArrayList.q1();
    this.w1g_1 = ArrayList.q1();
    this.x1g_1 = ArrayList.q1();
  }
  y1g(l) {
    this.t1g_1.c1(l);
  }
  z1g(l) {
    this.u1g_1.c1(l);
  }
}
class Posture extends Enum {}
class Weight extends Enum {}
class Companion_33 {
  constructor() {
    this.a1h_1 = 1;
    this.b1h_1 = 2;
    this.c1h_1 = 4;
    this.d1h_1 = 8;
  }
}
class Shape {}
function get_bounds() {
  var b = this.i1h();
  var width = b.gm();
  var height = b.hm();
  if (width < 0 || height < 0) {
    return Rectangle.empty();
  }
  var x = b.g1h();
  var y = b.h1h();
  // Inline function 'kotlin.math.floor' call
  var x1 = Math.floor(x);
  // Inline function 'kotlin.math.floor' call
  var y1 = Math.floor(y);
  // Inline function 'kotlin.math.ceil' call
  var x_0 = x + width;
  var x2 = Math.ceil(x_0);
  // Inline function 'kotlin.math.ceil' call
  var x_1 = y + height;
  var y2 = Math.ceil(x_1);
  return Rectangle.from(numberToInt(x1), numberToInt(y1), numberToInt(x2 - x1), numberToInt(y2 - y1));
}
function getPathIterator$default(at, $super) {
  at = at === VOID ? null : at;
  return $super === VOID ? this.o1h(at) : $super.o1h.call(this, at);
}
class Rectangle2D {}
class AbstractRectangle2D {
  static e1h() {
    return createThis(this);
  }
  f1h() {
    var width = this.gm();
    var height = this.hm();
    if (width < 0 || height < 0) {
      return Rectangle.empty();
    }
    var x = this.g1h();
    var y = this.h1h();
    // Inline function 'kotlin.math.floor' call
    var x1 = Math.floor(x);
    // Inline function 'kotlin.math.floor' call
    var y1 = Math.floor(y);
    // Inline function 'kotlin.math.ceil' call
    var x_0 = x + width;
    var x2 = Math.ceil(x_0);
    // Inline function 'kotlin.math.ceil' call
    var x_1 = y + height;
    var y2 = Math.ceil(x_1);
    return Rectangle.from(numberToInt(x1), numberToInt(y1), numberToInt(x2 - x1), numberToInt(y2 - y1));
  }
  i1h() {
    return this;
  }
  j1h(point) {
    var x = point.g1h();
    var y = point.h1h();
    var x0 = this.g1h();
    var y0 = this.h1h();
    return x >= x0 && y >= y0 && x < x0 + this.gm() && y < y0 + this.hm();
  }
  k1h() {
    return this.g1h() + this.gm() / 2.0;
  }
  l1h(rect) {
    var x = rect.g1h();
    var y = rect.h1h();
    var w = rect.gm();
    var h = rect.hm();
    if (w <= 0 || h <= 0) {
      return false;
    }
    var x0 = this.g1h();
    var y0 = this.h1h();
    return x + w > x0 && y + h > y0 && x < x0 + this.gm() && y < y0 + this.hm();
  }
  m1h() {
    return this.h1h() + this.hm() / 2.0;
  }
  n1h() {
    return this.o1h(null);
  }
  p1h() {
    return this.g1h();
  }
  o1h(at) {
    return new RectIterator(this, at);
  }
  r1h() {
    return this.h1h();
  }
  s1h() {
    return this.g1h() + this.gm();
  }
  t1h() {
    return this.h1h() + this.hm();
  }
  u1h(r) {
    var tmp0 = this.p1h();
    // Inline function 'kotlin.math.max' call
    var b = r.p1h();
    var x1 = Math.max(tmp0, b);
    var tmp0_0 = this.r1h();
    // Inline function 'kotlin.math.max' call
    var b_0 = r.r1h();
    var y1 = Math.max(tmp0_0, b_0);
    var tmp0_1 = this.s1h();
    // Inline function 'kotlin.math.min' call
    var b_1 = r.s1h();
    var x2 = Math.min(tmp0_1, b_1);
    var tmp0_2 = this.t1h();
    // Inline function 'kotlin.math.min' call
    var b_2 = r.t1h();
    var y2 = Math.min(tmp0_2, b_2);
    return Double_3.z1h(x1, y1, x2 - x1, y2 - y1);
  }
  a1i(x1, y1, x2, y2) {
    var x1_0 = x1;
    var y1_0 = y1;
    var out2;
    // Inline function 'kotlin.also' call
    var this_0 = this.b1i(x2, y2);
    out2 = this_0;
    if (this_0 === 0) {
      return true;
    }
    var out1;
    $l$loop: while (true) {
      // Inline function 'kotlin.also' call
      var this_1 = this.b1i(x1_0, y1_0);
      out1 = this_1;
      if (!!(this_1 === 0)) {
        break $l$loop;
      }
      if (!((out1 & out2) === 0)) {
        return false;
      }
      if (!((out1 & 5) === 0)) {
        var x = this.g1h();
        if (!((out1 & 4) === 0)) {
          x = x + this.gm();
        }
        y1_0 = y1_0 + (x - x1_0) * (y2 - y1_0) / (x2 - x1_0);
        x1_0 = x;
      } else {
        var y = this.h1h();
        if (!((out1 & 8) === 0)) {
          y = y + this.hm();
        }
        x1_0 = x1_0 + (y - y1_0) * (x2 - x1_0) / (y2 - y1_0);
        y1_0 = y;
      }
    }
    return true;
  }
  b1i(x, y) {
    var out = 0;
    if (this.gm() <= 0) {
      out = out | 5;
    } else if (x < this.g1h()) {
      out = out | 1;
    } else if (x > this.g1h() + this.gm()) {
      out = out | 4;
    }
    if (this.hm() <= 0) {
      out = out | 10;
    } else if (y < this.h1h()) {
      out = out | 2;
    } else if (y > this.h1h() + this.hm()) {
      out = out | 8;
    }
    return out;
  }
}
class Companion_34 {
  constructor() {
    Companion_instance_34 = this;
    this.o1i_1 = 0;
    this.p1i_1 = 1;
    this.q1i_1 = 2;
    this.r1i_1 = 4;
    this.s1i_1 = 6;
    this.t1i_1 = 64;
    this.u1i_1 = 8;
    this.v1i_1 = 16;
    this.w1i_1 = 24;
    this.x1i_1 = 32;
    this.y1i_1 = 0;
    this.z1i_1 = 1;
    this.a1j_1 = 2;
    this.b1j_1 = 4;
    this.c1j_1 = -1;
    this.d1j_1 = 3;
    this.e1j_1 = 0;
    this.f1j_1 = 8;
    this.g1j_1 = 16;
    this.h1j_1 = 32;
    var tmp = this;
    // Inline function 'kotlin.intArrayOf' call
    tmp.i1j_1 = new Int32Array([4, 5, 4, 5, 2, 3, 6, 7]);
  }
}
class AffineTransform {
  static j1j() {
    Companion_getInstance_34();
    var $this = createThis(this);
    init_org_mkui_geom_AffineTransform($this);
    $this.j1i_1 = 1.0;
    $this.g1i_1 = $this.j1i_1;
    return $this;
  }
  static k1j(Tx) {
    Companion_getInstance_34();
    var $this = createThis(this);
    init_org_mkui_geom_AffineTransform($this);
    $this.g1i_1 = Tx.g1i_1;
    $this.h1i_1 = Tx.h1i_1;
    $this.i1i_1 = Tx.i1i_1;
    $this.j1i_1 = Tx.j1i_1;
    $this.k1i_1 = Tx.k1i_1;
    $this.l1i_1 = Tx.l1i_1;
    $this.m1i_1 = Tx.m1i_1;
    $this.n1i_1 = Tx.n1i_1;
    return $this;
  }
  l1j() {
    if (this.i1i_1 === 0.0 && this.h1i_1 === 0.0) {
      if (this.g1i_1 === 1.0 && this.j1i_1 === 1.0) {
        if (this.k1i_1 === 0.0 && this.l1i_1 === 0.0) {
          this.m1i_1 = 0;
          this.n1i_1 = 0;
        } else {
          this.m1i_1 = 1;
          this.n1i_1 = 1;
        }
      } else {
        if (this.k1i_1 === 0.0 && this.l1i_1 === 0.0) {
          this.m1i_1 = 2;
          this.n1i_1 = -1;
        } else {
          this.m1i_1 = 3;
          this.n1i_1 = -1;
        }
      }
    } else {
      if (this.g1i_1 === 0.0 && this.j1i_1 === 0.0) {
        if (this.k1i_1 === 0.0 && this.l1i_1 === 0.0) {
          this.m1i_1 = 4;
          this.n1i_1 = -1;
        } else {
          this.m1i_1 = 5;
          this.n1i_1 = -1;
        }
      } else {
        if (this.k1i_1 === 0.0 && this.l1i_1 === 0.0) {
          this.m1i_1 = 6;
          this.n1i_1 = -1;
        } else {
          this.m1i_1 = 7;
          this.n1i_1 = -1;
        }
      }
    }
  }
  static m1j(m00, m10, m01, m11, m02, m12) {
    Companion_getInstance_34();
    var $this = createThis(this);
    init_org_mkui_geom_AffineTransform($this);
    $this.g1i_1 = m00;
    $this.h1i_1 = m10;
    $this.i1i_1 = m01;
    $this.j1i_1 = m11;
    $this.k1i_1 = m02;
    $this.l1i_1 = m12;
    $this.l1j();
    return $this;
  }
  n1j(sx, sy) {
    this.g1i_1 = sx;
    this.h1i_1 = 0.0;
    this.i1i_1 = 0.0;
    this.j1i_1 = sy;
    this.k1i_1 = 0.0;
    this.l1i_1 = 0.0;
    if (!(sx === 1.0) || !(sy === 1.0)) {
      this.m1i_1 = 2;
      this.n1i_1 = -1;
    } else {
      this.m1i_1 = 0;
      this.n1i_1 = 0;
    }
  }
  o1j(tx, ty) {
    switch (this.m1i_1) {
      case 7:
        this.k1i_1 = tx * this.g1i_1 + ty * this.i1i_1 + this.k1i_1;
        this.l1i_1 = tx * this.h1i_1 + ty * this.j1i_1 + this.l1i_1;
        if (this.k1i_1 === 0.0 && this.l1i_1 === 0.0) {
          this.m1i_1 = 6;
          if (!(this.n1i_1 === -1)) {
            this.n1i_1 = this.n1i_1 - 1 | 0;
          }
        }

        return Unit_instance;
      case 6:
        this.k1i_1 = tx * this.g1i_1 + ty * this.i1i_1;
        this.l1i_1 = tx * this.h1i_1 + ty * this.j1i_1;
        if (!(this.k1i_1 === 0.0) || !(this.l1i_1 === 0.0)) {
          this.m1i_1 = 7;
          this.n1i_1 = this.n1i_1 | 1;
        }

        return Unit_instance;
      case 5:
        this.k1i_1 = ty * this.i1i_1 + this.k1i_1;
        this.l1i_1 = tx * this.h1i_1 + this.l1i_1;
        if (this.k1i_1 === 0.0 && this.l1i_1 === 0.0) {
          this.m1i_1 = 4;
          if (!(this.n1i_1 === -1)) {
            this.n1i_1 = this.n1i_1 - 1 | 0;
          }
        }

        return Unit_instance;
      case 4:
        this.k1i_1 = ty * this.i1i_1;
        this.l1i_1 = tx * this.h1i_1;
        if (!(this.k1i_1 === 0.0) || !(this.l1i_1 === 0.0)) {
          this.m1i_1 = 5;
          this.n1i_1 = this.n1i_1 | 1;
        }

        return Unit_instance;
      case 3:
        this.k1i_1 = tx * this.g1i_1 + this.k1i_1;
        this.l1i_1 = ty * this.j1i_1 + this.l1i_1;
        if (this.k1i_1 === 0.0 && this.l1i_1 === 0.0) {
          this.m1i_1 = 2;
          if (!(this.n1i_1 === -1)) {
            this.n1i_1 = this.n1i_1 - 1 | 0;
          }
        }

        return Unit_instance;
      case 2:
        this.k1i_1 = tx * this.g1i_1;
        this.l1i_1 = ty * this.j1i_1;
        if (!(this.k1i_1 === 0.0) || !(this.l1i_1 === 0.0)) {
          this.m1i_1 = 3;
          this.n1i_1 = this.n1i_1 | 1;
        }

        return Unit_instance;
      case 1:
        this.k1i_1 = tx + this.k1i_1;
        this.l1i_1 = ty + this.l1i_1;
        if (this.k1i_1 === 0.0 && this.l1i_1 === 0.0) {
          this.m1i_1 = 0;
          this.n1i_1 = 0;
        }

        return Unit_instance;
      case 0:
        this.k1i_1 = tx;
        this.l1i_1 = ty;
        if (!(tx === 0.0) || !(ty === 0.0)) {
          this.m1i_1 = 1;
          this.n1i_1 = 1;
        }

        return Unit_instance;
      default:
        stateError(this);
        return Unit_instance;
    }
  }
  p1j(theta) {
    // Inline function 'kotlin.math.sin' call
    var sin = Math.sin(theta);
    if (sin === 1.0) {
      rotate90(this);
    } else if (sin === -1.0) {
      rotate270(this);
    } else {
      // Inline function 'kotlin.math.cos' call
      var cos = Math.cos(theta);
      if (cos === -1.0) {
        rotate180(this);
      } else if (!(cos === 1.0)) {
        var M0 = this.g1i_1;
        var M1 = this.i1i_1;
        this.g1i_1 = cos * M0 + sin * M1;
        this.i1i_1 = -sin * M0 + cos * M1;
        M0 = this.h1i_1;
        M1 = this.j1i_1;
        this.h1i_1 = cos * M0 + sin * M1;
        this.j1i_1 = -sin * M0 + cos * M1;
        this.l1j();
      }
    }
  }
  q1j() {
    this.j1i_1 = 1.0;
    this.g1i_1 = this.j1i_1;
    this.l1i_1 = 0.0;
    this.k1i_1 = this.l1i_1;
    this.i1i_1 = this.k1i_1;
    this.h1i_1 = this.i1i_1;
    this.m1i_1 = 0;
    this.n1i_1 = 0;
  }
  r1j(Tx) {
    var M0;
    var T01;
    var T10;
    var mystate = this.m1i_1;
    var txstate = Tx.m1i_1;
    switch (txstate << 3 | mystate) {
      case 0:
      case 1:
      case 2:
      case 3:
      case 4:
      case 5:
      case 6:
      case 7:
        return Unit_instance;
      case 56:
        this.i1i_1 = Tx.i1i_1;
        this.h1i_1 = Tx.h1i_1;
        this.g1i_1 = Tx.g1i_1;
        this.j1i_1 = Tx.j1i_1;
        this.k1i_1 = Tx.k1i_1;
        this.l1i_1 = Tx.l1i_1;
        this.m1i_1 = txstate;
        this.n1i_1 = Tx.n1i_1;
        return Unit_instance;
      case 24:
        this.g1i_1 = Tx.g1i_1;
        this.j1i_1 = Tx.j1i_1;
        this.k1i_1 = Tx.k1i_1;
        this.l1i_1 = Tx.l1i_1;
        this.m1i_1 = txstate;
        this.n1i_1 = Tx.n1i_1;
        return Unit_instance;
      case 8:
        this.k1i_1 = Tx.k1i_1;
        this.l1i_1 = Tx.l1i_1;
        this.m1i_1 = txstate;
        this.n1i_1 = Tx.n1i_1;
        return Unit_instance;
      case 48:
        this.i1i_1 = Tx.i1i_1;
        this.h1i_1 = Tx.h1i_1;
        this.g1i_1 = Tx.g1i_1;
        this.j1i_1 = Tx.j1i_1;
        this.m1i_1 = txstate;
        this.n1i_1 = Tx.n1i_1;
        return Unit_instance;
      case 16:
        this.g1i_1 = Tx.g1i_1;
        this.j1i_1 = Tx.j1i_1;
        this.m1i_1 = txstate;
        this.n1i_1 = Tx.n1i_1;
        return Unit_instance;
      case 40:
        this.k1i_1 = Tx.k1i_1;
        this.l1i_1 = Tx.l1i_1;
        this.i1i_1 = Tx.i1i_1;
        this.h1i_1 = Tx.h1i_1;
        // Inline function 'kotlin.run' call

        this.j1i_1 = 0.0;
        this.g1i_1 = this.j1i_1;
        this.m1i_1 = txstate;
        this.n1i_1 = Tx.n1i_1;
        return Unit_instance;
      case 32:
        this.i1i_1 = Tx.i1i_1;
        this.h1i_1 = Tx.h1i_1;
        // Inline function 'kotlin.run' call

        this.j1i_1 = 0.0;
        this.g1i_1 = this.j1i_1;
        this.m1i_1 = txstate;
        this.n1i_1 = Tx.n1i_1;
        return Unit_instance;
      case 15:
      case 14:
      case 13:
      case 12:
      case 11:
      case 10:
      case 9:
        this.o1j(Tx.k1i_1, Tx.l1i_1);
        return Unit_instance;
      case 23:
      case 22:
      case 21:
      case 20:
      case 19:
      case 18:
      case 17:
        this.s1j(Tx.g1i_1, Tx.j1i_1);
        return Unit_instance;
      case 39:
      case 38:
        T01 = Tx.i1i_1;
        T10 = Tx.h1i_1;
        M0 = this.g1i_1;
        this.g1i_1 = this.i1i_1 * T10;
        this.i1i_1 = M0 * T01;
        M0 = this.h1i_1;
        this.h1i_1 = this.j1i_1 * T10;
        this.j1i_1 = M0 * T01;
        this.n1i_1 = -1;
        return Unit_instance;
      case 37:
      case 36:
        this.g1i_1 = this.i1i_1 * Tx.h1i_1;
        this.i1i_1 = 0.0;
        this.j1i_1 = this.h1i_1 * Tx.i1i_1;
        this.h1i_1 = 0.0;
        this.m1i_1 = mystate ^ 6;
        this.n1i_1 = -1;
        return Unit_instance;
      case 35:
      case 34:
        this.i1i_1 = this.g1i_1 * Tx.i1i_1;
        this.g1i_1 = 0.0;
        this.h1i_1 = this.j1i_1 * Tx.h1i_1;
        this.j1i_1 = 0.0;
        this.m1i_1 = mystate ^ 6;
        this.n1i_1 = -1;
        return Unit_instance;
      case 33:
        this.g1i_1 = 0.0;
        this.i1i_1 = Tx.i1i_1;
        this.h1i_1 = Tx.h1i_1;
        this.j1i_1 = 0.0;
        this.m1i_1 = 5;
        this.n1i_1 = -1;
        return Unit_instance;
    }
    var T00 = Tx.g1i_1;
    T01 = Tx.i1i_1;
    var T02 = Tx.k1i_1;
    T10 = Tx.h1i_1;
    var T11 = Tx.j1i_1;
    var T12 = Tx.l1i_1;
    var M1;
    switch (mystate) {
      case 6:
        this.m1i_1 = mystate | txstate;
        M0 = this.g1i_1;
        M1 = this.i1i_1;
        this.g1i_1 = T00 * M0 + T10 * M1;
        this.i1i_1 = T01 * M0 + T11 * M1;
        this.k1i_1 = this.k1i_1 + (T02 * M0 + T12 * M1);
        M0 = this.h1i_1;
        M1 = this.j1i_1;
        this.h1i_1 = T00 * M0 + T10 * M1;
        this.j1i_1 = T01 * M0 + T11 * M1;
        this.l1i_1 = this.l1i_1 + (T02 * M0 + T12 * M1);
        this.n1i_1 = -1;
        return Unit_instance;
      case 7:
        M0 = this.g1i_1;
        M1 = this.i1i_1;
        this.g1i_1 = T00 * M0 + T10 * M1;
        this.i1i_1 = T01 * M0 + T11 * M1;
        this.k1i_1 = this.k1i_1 + (T02 * M0 + T12 * M1);
        M0 = this.h1i_1;
        M1 = this.j1i_1;
        this.h1i_1 = T00 * M0 + T10 * M1;
        this.j1i_1 = T01 * M0 + T11 * M1;
        this.l1i_1 = this.l1i_1 + (T02 * M0 + T12 * M1);
        this.n1i_1 = -1;
        return Unit_instance;
      case 5:
      case 4:
        M0 = this.i1i_1;
        this.g1i_1 = T10 * M0;
        this.i1i_1 = T11 * M0;
        this.k1i_1 = this.k1i_1 + T12 * M0;
        M0 = this.h1i_1;
        this.h1i_1 = T00 * M0;
        this.j1i_1 = T01 * M0;
        this.l1i_1 = this.l1i_1 + T02 * M0;
        break;
      case 3:
      case 2:
        M0 = this.g1i_1;
        this.g1i_1 = T00 * M0;
        this.i1i_1 = T01 * M0;
        this.k1i_1 = this.k1i_1 + T02 * M0;
        M0 = this.j1i_1;
        this.h1i_1 = T10 * M0;
        this.j1i_1 = T11 * M0;
        this.l1i_1 = this.l1i_1 + T12 * M0;
        break;
      case 1:
        this.g1i_1 = T00;
        this.i1i_1 = T01;
        this.k1i_1 = this.k1i_1 + T02;
        this.h1i_1 = T10;
        this.j1i_1 = T11;
        this.l1i_1 = this.l1i_1 + T12;
        this.m1i_1 = txstate | 1;
        this.n1i_1 = -1;
        return Unit_instance;
      default:
        stateError(this);
        this.m1i_1 = mystate | txstate;
        M0 = this.g1i_1;
        M1 = this.i1i_1;
        this.g1i_1 = T00 * M0 + T10 * M1;
        this.i1i_1 = T01 * M0 + T11 * M1;
        this.k1i_1 = this.k1i_1 + (T02 * M0 + T12 * M1);
        M0 = this.h1i_1;
        M1 = this.j1i_1;
        this.h1i_1 = T00 * M0 + T10 * M1;
        this.j1i_1 = T01 * M0 + T11 * M1;
        this.l1i_1 = this.l1i_1 + (T02 * M0 + T12 * M1);
        this.n1i_1 = -1;
        return Unit_instance;
    }
    this.l1j();
  }
  s1j(sx, sy) {
    var state = this.m1i_1;
    switch (state) {
      case 7:
      case 6:
        this.g1i_1 = this.g1i_1 * sx;
        this.j1i_1 = this.j1i_1 * sy;
        this.i1i_1 = this.i1i_1 * sy;
        this.h1i_1 = this.h1i_1 * sx;
        if (this.i1i_1 === 0.0 && this.h1i_1 === 0.0) {
          state = state & 1;
          if (this.g1i_1 === 1.0 && this.j1i_1 === 1.0) {
            this.n1i_1 = state === 0 ? 0 : 1;
          } else {
            state = state | 2;
            this.n1i_1 = -1;
          }
          this.m1i_1 = state;
        }

        return Unit_instance;
      case 5:
      case 4:
        this.i1i_1 = this.i1i_1 * sy;
        this.h1i_1 = this.h1i_1 * sx;
        if (this.i1i_1 === 0.0 && this.h1i_1 === 0.0) {
          state = state & 1;
          if (this.g1i_1 === 1.0 && this.j1i_1 === 1.0) {
            this.n1i_1 = state === 0 ? 0 : 1;
          } else {
            state = state | 2;
            this.n1i_1 = -1;
          }
          this.m1i_1 = state;
        }

        return Unit_instance;
      case 3:
      case 2:
        this.g1i_1 = this.g1i_1 * sx;
        this.j1i_1 = this.j1i_1 * sy;
        if (this.g1i_1 === 1.0 && this.j1i_1 === 1.0) {
          var tmp = this;
          // Inline function 'kotlin.let' call
          state = state & 1;
          tmp.m1i_1 = state;
          this.n1i_1 = state === 0 ? 0 : 1;
        } else {
          this.n1i_1 = -1;
        }

        return Unit_instance;
      case 1:
      case 0:
        this.g1i_1 = sx;
        this.j1i_1 = sy;
        if (!(sx === 1.0) || !(sy === 1.0)) {
          this.m1i_1 = state | 2;
          this.n1i_1 = -1;
        }

        return Unit_instance;
      default:
        stateError(this);
        this.g1i_1 = this.g1i_1 * sx;
        this.j1i_1 = this.j1i_1 * sy;
        this.i1i_1 = this.i1i_1 * sy;
        this.h1i_1 = this.h1i_1 * sx;
        if (this.i1i_1 === 0.0 && this.h1i_1 === 0.0) {
          state = state & 1;
          if (this.g1i_1 === 1.0 && this.j1i_1 === 1.0) {
            this.n1i_1 = state === 0 ? 0 : 1;
          } else {
            state = state | 2;
            this.n1i_1 = -1;
          }
          this.m1i_1 = state;
        }

        return Unit_instance;
    }
  }
  t1j(ptSrc, ptDst) {
    var ptDst_0 = ptDst;
    if (ptDst_0 == null) {
      var tmp;
      if (ptSrc instanceof Double_2) {
        tmp = Double_2.z1j();
      } else {
        tmp = Float.w1j();
      }
      ptDst_0 = tmp;
    }
    var x = ptSrc.g1h();
    var y = ptSrc.h1h();
    var tmp_0;
    switch (this.m1i_1) {
      case 7:
        ptDst_0.a1k(x * this.g1i_1 + y * this.i1i_1 + this.k1i_1, x * this.h1i_1 + y * this.j1i_1 + this.l1i_1);
        tmp_0 = ptDst_0;
        break;
      case 6:
        ptDst_0.a1k(x * this.g1i_1 + y * this.i1i_1, x * this.h1i_1 + y * this.j1i_1);
        tmp_0 = ptDst_0;
        break;
      case 5:
        ptDst_0.a1k(y * this.i1i_1 + this.k1i_1, x * this.h1i_1 + this.l1i_1);
        tmp_0 = ptDst_0;
        break;
      case 4:
        ptDst_0.a1k(y * this.i1i_1, x * this.h1i_1);
        tmp_0 = ptDst_0;
        break;
      case 3:
        ptDst_0.a1k(x * this.g1i_1 + this.k1i_1, y * this.j1i_1 + this.l1i_1);
        tmp_0 = ptDst_0;
        break;
      case 2:
        ptDst_0.a1k(x * this.g1i_1, y * this.j1i_1);
        tmp_0 = ptDst_0;
        break;
      case 1:
        ptDst_0.a1k(x + this.k1i_1, y + this.l1i_1);
        tmp_0 = ptDst_0;
        break;
      case 0:
        ptDst_0.a1k(x, y);
        tmp_0 = ptDst_0;
        break;
      default:
        stateError(this);
        tmp_0 = null;
        break;
    }
    return tmp_0;
  }
  b1k(srcPts, srcOff, dstPts, dstOff, numPts) {
    var srcOff_0 = srcOff;
    var dstOff_0 = dstOff;
    var numPts_0 = numPts;
    if (equals(dstPts, srcPts) && dstOff_0 > srcOff_0 && dstOff_0 < (srcOff_0 + imul_0(numPts_0, 2) | 0)) {
      arraycopy_0(srcPts, srcOff_0, dstPts, dstOff_0, imul_0(numPts_0, 2));
      srcOff_0 = dstOff_0;
    }
    var M12;
    var M11;
    var M10;
    var M02;
    var M01;
    var M00;
    switch (this.m1i_1) {
      case 7:
        M00 = this.g1i_1;
        M01 = this.i1i_1;
        M02 = this.k1i_1;
        M10 = this.h1i_1;
        M11 = this.j1i_1;
        M12 = this.l1i_1;
        $l$loop: while (true) {
          numPts_0 = numPts_0 - 1 | 0;
          if (!(numPts_0 >= 0)) {
            break $l$loop;
          }
          var _unary__edvuaz = srcOff_0;
          srcOff_0 = _unary__edvuaz + 1 | 0;
          var x = srcPts[_unary__edvuaz];
          var _unary__edvuaz_0 = srcOff_0;
          srcOff_0 = _unary__edvuaz_0 + 1 | 0;
          var y = srcPts[_unary__edvuaz_0];
          var _unary__edvuaz_1 = dstOff_0;
          dstOff_0 = _unary__edvuaz_1 + 1 | 0;
          dstPts[_unary__edvuaz_1] = M00 * x + M01 * y + M02;
          var _unary__edvuaz_2 = dstOff_0;
          dstOff_0 = _unary__edvuaz_2 + 1 | 0;
          dstPts[_unary__edvuaz_2] = M10 * x + M11 * y + M12;
        }

        return Unit_instance;
      case 6:
        M00 = this.g1i_1;
        M01 = this.i1i_1;
        M10 = this.h1i_1;
        M11 = this.j1i_1;
        $l$loop_0: while (true) {
          numPts_0 = numPts_0 - 1 | 0;
          if (!(numPts_0 >= 0)) {
            break $l$loop_0;
          }
          var _unary__edvuaz_3 = srcOff_0;
          srcOff_0 = _unary__edvuaz_3 + 1 | 0;
          var x_0 = srcPts[_unary__edvuaz_3];
          var _unary__edvuaz_4 = srcOff_0;
          srcOff_0 = _unary__edvuaz_4 + 1 | 0;
          var y_0 = srcPts[_unary__edvuaz_4];
          var _unary__edvuaz_5 = dstOff_0;
          dstOff_0 = _unary__edvuaz_5 + 1 | 0;
          dstPts[_unary__edvuaz_5] = M00 * x_0 + M01 * y_0;
          var _unary__edvuaz_6 = dstOff_0;
          dstOff_0 = _unary__edvuaz_6 + 1 | 0;
          dstPts[_unary__edvuaz_6] = M10 * x_0 + M11 * y_0;
        }

        return Unit_instance;
      case 5:
        M01 = this.i1i_1;
        M02 = this.k1i_1;
        M10 = this.h1i_1;
        M12 = this.l1i_1;
        $l$loop_1: while (true) {
          numPts_0 = numPts_0 - 1 | 0;
          if (!(numPts_0 >= 0)) {
            break $l$loop_1;
          }
          var _unary__edvuaz_7 = srcOff_0;
          srcOff_0 = _unary__edvuaz_7 + 1 | 0;
          var x_1 = srcPts[_unary__edvuaz_7];
          var _unary__edvuaz_8 = dstOff_0;
          dstOff_0 = _unary__edvuaz_8 + 1 | 0;
          var _unary__edvuaz_9 = srcOff_0;
          srcOff_0 = _unary__edvuaz_9 + 1 | 0;
          dstPts[_unary__edvuaz_8] = M01 * srcPts[_unary__edvuaz_9] + M02;
          var _unary__edvuaz_10 = dstOff_0;
          dstOff_0 = _unary__edvuaz_10 + 1 | 0;
          dstPts[_unary__edvuaz_10] = M10 * x_1 + M12;
        }

        return Unit_instance;
      case 4:
        M01 = this.i1i_1;
        M10 = this.h1i_1;
        $l$loop_2: while (true) {
          numPts_0 = numPts_0 - 1 | 0;
          if (!(numPts_0 >= 0)) {
            break $l$loop_2;
          }
          var _unary__edvuaz_11 = srcOff_0;
          srcOff_0 = _unary__edvuaz_11 + 1 | 0;
          var x_2 = srcPts[_unary__edvuaz_11];
          var _unary__edvuaz_12 = dstOff_0;
          dstOff_0 = _unary__edvuaz_12 + 1 | 0;
          var _unary__edvuaz_13 = srcOff_0;
          srcOff_0 = _unary__edvuaz_13 + 1 | 0;
          dstPts[_unary__edvuaz_12] = M01 * srcPts[_unary__edvuaz_13];
          var _unary__edvuaz_14 = dstOff_0;
          dstOff_0 = _unary__edvuaz_14 + 1 | 0;
          dstPts[_unary__edvuaz_14] = M10 * x_2;
        }

        return Unit_instance;
      case 3:
        M00 = this.g1i_1;
        M02 = this.k1i_1;
        M11 = this.j1i_1;
        M12 = this.l1i_1;
        $l$loop_3: while (true) {
          numPts_0 = numPts_0 - 1 | 0;
          if (!(numPts_0 >= 0)) {
            break $l$loop_3;
          }
          var _unary__edvuaz_15 = dstOff_0;
          dstOff_0 = _unary__edvuaz_15 + 1 | 0;
          var _unary__edvuaz_16 = srcOff_0;
          srcOff_0 = _unary__edvuaz_16 + 1 | 0;
          dstPts[_unary__edvuaz_15] = M00 * srcPts[_unary__edvuaz_16] + M02;
          var _unary__edvuaz_17 = dstOff_0;
          dstOff_0 = _unary__edvuaz_17 + 1 | 0;
          var _unary__edvuaz_18 = srcOff_0;
          srcOff_0 = _unary__edvuaz_18 + 1 | 0;
          dstPts[_unary__edvuaz_17] = M11 * srcPts[_unary__edvuaz_18] + M12;
        }

        return Unit_instance;
      case 2:
        M00 = this.g1i_1;
        M11 = this.j1i_1;
        $l$loop_4: while (true) {
          numPts_0 = numPts_0 - 1 | 0;
          if (!(numPts_0 >= 0)) {
            break $l$loop_4;
          }
          var _unary__edvuaz_19 = dstOff_0;
          dstOff_0 = _unary__edvuaz_19 + 1 | 0;
          var _unary__edvuaz_20 = srcOff_0;
          srcOff_0 = _unary__edvuaz_20 + 1 | 0;
          dstPts[_unary__edvuaz_19] = M00 * srcPts[_unary__edvuaz_20];
          var _unary__edvuaz_21 = dstOff_0;
          dstOff_0 = _unary__edvuaz_21 + 1 | 0;
          var _unary__edvuaz_22 = srcOff_0;
          srcOff_0 = _unary__edvuaz_22 + 1 | 0;
          dstPts[_unary__edvuaz_21] = M11 * srcPts[_unary__edvuaz_22];
        }

        return Unit_instance;
      case 1:
        M02 = this.k1i_1;
        M12 = this.l1i_1;
        $l$loop_5: while (true) {
          numPts_0 = numPts_0 - 1 | 0;
          if (!(numPts_0 >= 0)) {
            break $l$loop_5;
          }
          var _unary__edvuaz_23 = dstOff_0;
          dstOff_0 = _unary__edvuaz_23 + 1 | 0;
          var _unary__edvuaz_24 = srcOff_0;
          srcOff_0 = _unary__edvuaz_24 + 1 | 0;
          dstPts[_unary__edvuaz_23] = srcPts[_unary__edvuaz_24] + M02;
          var _unary__edvuaz_25 = dstOff_0;
          dstOff_0 = _unary__edvuaz_25 + 1 | 0;
          var _unary__edvuaz_26 = srcOff_0;
          srcOff_0 = _unary__edvuaz_26 + 1 | 0;
          dstPts[_unary__edvuaz_25] = srcPts[_unary__edvuaz_26] + M12;
        }

        return Unit_instance;
      case 0:
        if (!equals(srcPts, dstPts) || !(srcOff_0 === dstOff_0)) {
          arraycopy_0(srcPts, srcOff_0, dstPts, dstOff_0, imul_0(numPts_0, 2));
        }

        return Unit_instance;
      default:
        stateError(this);
        return Unit_instance;
    }
  }
  c1k(pSrc) {
    var tmp;
    if (pSrc == null) {
      tmp = null;
    } else {
      tmp = Double_1.i1k(pSrc, this);
    }
    return tmp;
  }
  hashCode() {
    var bits = toRawBits(this.g1i_1);
    // Inline function 'kotlin.Long.times' call
    var this_0 = bits;
    var tmp$ret$0 = multiply_0(this_0, fromInt_0(31));
    bits = add_0(tmp$ret$0, toRawBits(this.i1i_1));
    // Inline function 'kotlin.Long.times' call
    var this_1 = bits;
    var tmp$ret$1 = multiply_0(this_1, fromInt_0(31));
    bits = add_0(tmp$ret$1, toRawBits(this.k1i_1));
    // Inline function 'kotlin.Long.times' call
    var this_2 = bits;
    var tmp$ret$2 = multiply_0(this_2, fromInt_0(31));
    bits = add_0(tmp$ret$2, toRawBits(this.h1i_1));
    // Inline function 'kotlin.Long.times' call
    var this_3 = bits;
    var tmp$ret$3 = multiply_0(this_3, fromInt_0(31));
    bits = add_0(tmp$ret$3, toRawBits(this.j1i_1));
    // Inline function 'kotlin.Long.times' call
    var this_4 = bits;
    var tmp$ret$4 = multiply_0(this_4, fromInt_0(31));
    bits = add_0(tmp$ret$4, toRawBits(this.l1i_1));
    return convertToInt(bits) ^ convertToInt(shiftRight(bits, 32));
  }
  equals(obj) {
    if (!(obj instanceof AffineTransform)) {
      return false;
    }
    return this.g1i_1 === obj.g1i_1 && this.i1i_1 === obj.i1i_1 && this.k1i_1 === obj.k1i_1 && this.h1i_1 === obj.h1i_1 && this.j1i_1 === obj.j1i_1 && this.l1i_1 === obj.l1i_1;
  }
  toString() {
    return 'AffineTransform[[' + _matround(Companion_getInstance_34(), this.g1i_1) + ', ' + _matround(Companion_getInstance_34(), this.i1i_1) + ', ' + _matround(Companion_getInstance_34(), this.k1i_1) + '], [' + _matround(Companion_getInstance_34(), this.h1i_1) + ', ' + _matround(Companion_getInstance_34(), this.j1i_1) + ', ' + _matround(Companion_getInstance_34(), this.l1i_1) + ']]';
  }
}
class Companion_35 {
  j1k(angle) {
    var angle_0 = angle;
    if (angle_0 > 180.0) {
      if (angle_0 <= 180.0 + 360.0) {
        angle_0 = angle_0 - 360.0;
      } else {
        angle_0 = this.k1k(angle_0, 360.0);
        if (angle_0 === -180.0) {
          angle_0 = 180.0;
        }
      }
    } else if (angle_0 <= -180.0) {
      if (angle_0 > -180.0 - 360.0) {
        angle_0 = angle_0 + 360.0;
      } else {
        angle_0 = this.k1k(angle_0, 360.0);
        if (angle_0 === -180.0) {
          angle_0 = 180.0;
        }
      }
    }
    return angle_0;
  }
  k1k(f1, f2) {
    // Inline function 'kotlin.math.abs' call
    var x = f1 % f2;
    var r = Math.abs(x);
    var tmp;
    var tmp_0;
    if (isNaN_0(r) || r === f2) {
      tmp_0 = true;
    } else {
      // Inline function 'kotlin.math.abs' call
      tmp_0 = r <= Math.abs(f2) / 2.0;
    }
    if (tmp_0) {
      tmp = r;
    } else {
      // Inline function 'kotlin.math.sign' call
      tmp = sign(f1) * (r - f2);
    }
    return tmp;
  }
}
class Arc2D {}
class Double {
  g1h() {
    return this.l1k_1;
  }
  h1h() {
    return this.m1k_1;
  }
  gm() {
    return this.n1k_1;
  }
  hm() {
    return this.o1k_1;
  }
  s1k() {
    return this.r1k_1;
  }
  static t1k(bounds, start, extent, type) {
    var $this = createThis(this);
    init_org_mkui_geom_Arc2D_Double($this);
    $this.l1k_1 = bounds.g1h();
    $this.m1k_1 = bounds.h1h();
    $this.n1k_1 = bounds.gm();
    $this.o1k_1 = bounds.hm();
    $this.p1k_1 = start;
    $this.q1k_1 = extent;
    $this.r1k_1 = type;
    return $this;
  }
  i1h() {
    return this.u1k();
  }
  u1k() {
    if (this.v1k()) {
      return Double_3.z1h(this.l1k_1, this.m1k_1, this.n1k_1, this.o1k_1);
    }
    var x1;
    var y1;
    var x2;
    var y2;
    if (this.r1k_1 === 2) {
      y2 = 0.0;
      x2 = y2;
      y1 = x2;
      x1 = y1;
    } else {
      y1 = 1.0;
      x1 = y1;
      y2 = -1.0;
      x2 = y2;
    }
    var angle = 0.0;
    var inductionVariable = 0;
    if (inductionVariable <= 5)
      $l$loop: do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        if (i < 4) {
          angle = angle + 90.0;
          if (!this.y1k(angle)) {
            continue $l$loop;
          }
        } else if (i === 4) {
          angle = this.x1k();
        } else {
          angle = angle + this.w1k();
        }
        var rads = convertDegreesToRadians(-angle);
        // Inline function 'kotlin.math.cos' call
        var xe = Math.cos(rads);
        // Inline function 'kotlin.math.min' call
        var a = x1;
        x1 = Math.min(a, xe);
        // Inline function 'kotlin.math.sin' call
        var ye = Math.sin(rads);
        // Inline function 'kotlin.math.min' call
        var a_0 = y1;
        y1 = Math.min(a_0, ye);
        // Inline function 'kotlin.math.max' call
        var a_1 = x2;
        x2 = Math.max(a_1, xe);
        // Inline function 'kotlin.math.max' call
        var a_2 = y2;
        y2 = Math.max(a_2, ye);
      }
       while (inductionVariable <= 5);
    var w = this.n1k_1;
    var h = this.o1k_1;
    x2 = (x2 - x1) * 0.5 * w;
    y2 = (y2 - y1) * 0.5 * h;
    x1 = this.l1k_1 + (x1 * 0.5 + 0.5) * w;
    y1 = this.m1k_1 + (y1 * 0.5 + 0.5) * h;
    return Double_3.z1h(x1, y1, x2, y2);
  }
  v1k() {
    return this.n1k_1 <= 0.0 || this.o1k_1 <= 0.0;
  }
  j1h(point) {
    var x = point.g1h();
    var y = point.h1h();
    var ellw = this.n1k_1;
    if (ellw <= 0.0) {
      return false;
    }
    var normx = (x - x) / ellw - 0.5;
    var ellh = this.o1k_1;
    if (ellh <= 0.0) {
      return false;
    }
    var normy = (y - y) / ellh - 0.5;
    var distSq = normx * normx + normy * normy;
    if (distSq >= 0.25) {
      return false;
    }
    // Inline function 'kotlin.math.abs' call
    var x_0 = this.w1k();
    var angExt = Math.abs(x_0);
    if (angExt >= 360.0) {
      return true;
    }
    // Inline function 'kotlin.math.atan2' call
    var tmp$ret$1 = Math.atan2(normy, normx);
    var inarc = this.y1k(-convertRadiansToDegrees(tmp$ret$1));
    if (this.r1k_1 === 2) {
      return inarc;
    }
    if (inarc) {
      if (angExt >= 180.0) {
        return true;
      }
    } else {
      if (angExt <= 180.0) {
        return false;
      }
    }
    var angle = convertDegreesToRadians(-this.x1k());
    // Inline function 'kotlin.math.cos' call
    var x_1 = angle;
    var x1 = Math.cos(x_1);
    // Inline function 'kotlin.math.sin' call
    var x_2 = angle;
    var y1 = Math.sin(x_2);
    angle = angle + convertDegreesToRadians(-this.w1k());
    // Inline function 'kotlin.math.cos' call
    var x_3 = angle;
    var x2 = Math.cos(x_3);
    // Inline function 'kotlin.math.sin' call
    var x_4 = angle;
    var y2 = Math.sin(x_4);
    var inside = imul_0(Companion_instance_43.z1k(x1, y1, x2, y2, 2 * normx, 2 * normy), Companion_instance_43.z1k(x1, y1, x2, y2, 0.0, 0.0)) >= 0;
    return !(inarc === inside);
  }
  l1h(r) {
    var x = r.g1h();
    var y = r.h1h();
    var w = r.gm();
    var h = r.hm();
    var aw = this.n1k_1;
    var ah = this.o1k_1;
    if (w <= 0 || h <= 0 || aw <= 0 || ah <= 0) {
      return false;
    }
    var ext = this.w1k();
    if (ext === 0.0) {
      return false;
    }
    var ax = x;
    var ay = y;
    var axw = ax + aw;
    var ayh = ay + ah;
    var xw = x + w;
    var yh = y + h;
    if (x >= axw || y >= ayh || xw <= ax || yh <= ay) {
      return false;
    }
    var axc = this.k1h();
    var ayc = this.m1h();
    var sp = this.a1l();
    var ep = this.b1l();
    var sx = sp.g1h();
    var sy = sp.h1h();
    var ex = ep.g1h();
    var ey = ep.h1h();
    if (ayc >= y && ayc <= yh) {
      if (sx < xw && ex < xw && axc < xw && axw > x && this.y1k(0.0) || (sx > x && ex > x && axc > x && ax < xw && this.y1k(180.0))) {
        return true;
      }
    }
    if (axc >= x && axc <= xw) {
      if (sy > y && ey > y && ayc > y && ay < yh && this.y1k(90.0) || (sy < yh && ey < yh && ayc < yh && ayh > y && this.y1k(270.0))) {
        return true;
      }
    }
    var rect = Double_3.z1h(x, y, w, h);
    var tmp;
    if (this.r1k_1 === 2) {
      tmp = true;
    } else {
      // Inline function 'kotlin.math.abs' call
      tmp = Math.abs(ext) > 180;
    }
    if (tmp) {
      if (rect.a1i(axc, ayc, sx, sy) || rect.a1i(axc, ayc, ex, ey)) {
        return true;
      }
    } else {
      if (rect.a1i(sx, sy, ex, ey)) {
        return true;
      }
    }
    return this.j1h(Double_2.c1l(x, y)) || this.j1h(Double_2.c1l(x + w, y)) || this.j1h(Double_2.c1l(x, y + h)) || this.j1h(Double_2.c1l(x + w, y + h));
  }
  n1h() {
    return this.o1h(null);
  }
  o1h(at) {
    return new ArcIterator(this, at);
  }
  k1h() {
    return this.l1k_1 + this.n1k_1 / 2.0;
  }
  m1h() {
    return this.m1k_1 + this.o1k_1 / 2.0;
  }
  x1k() {
    return this.p1k_1;
  }
  w1k() {
    return this.q1k_1;
  }
  a1l() {
    return this.d1l();
  }
  d1l() {
    var angle = convertDegreesToRadians(-this.x1k());
    // Inline function 'kotlin.math.cos' call
    var tmp$ret$0 = Math.cos(angle);
    var x = this.l1k_1 + (tmp$ret$0 * 0.5 + 0.5) * this.n1k_1;
    // Inline function 'kotlin.math.sin' call
    var tmp$ret$1 = Math.sin(angle);
    var y = this.m1k_1 + (tmp$ret$1 * 0.5 + 0.5) * this.o1k_1;
    return Double_2.c1l(x, y);
  }
  b1l() {
    return this.e1l();
  }
  e1l() {
    var angle = convertDegreesToRadians(-this.x1k() - this.w1k());
    // Inline function 'kotlin.math.cos' call
    var tmp$ret$0 = Math.cos(angle);
    var x = this.l1k_1 + (tmp$ret$0 * 0.5 + 0.5) * this.n1k_1;
    // Inline function 'kotlin.math.sin' call
    var tmp$ret$1 = Math.sin(angle);
    var y = this.m1k_1 + (tmp$ret$1 * 0.5 + 0.5) * this.o1k_1;
    return Double_2.c1l(x, y);
  }
  y1k(angle) {
    var angle_0 = angle;
    var angExt = this.w1k();
    var backwards = angExt < 0.0;
    if (backwards) {
      angExt = -angExt;
    }
    if (angExt >= 360.0) {
      return true;
    }
    angle_0 = Companion_instance_35.j1k(angle_0) - Companion_instance_35.j1k(this.x1k());
    if (backwards) {
      angle_0 = -angle_0;
    }
    if (angle_0 < 0.0) {
      angle_0 = angle_0 + 360.0;
    }
    return angle_0 >= 0.0 && angle_0 < angExt;
  }
}
class Companion_36 {}
class ArcIterator {
  constructor(a, at) {
    this.l1l_1 = 0.0;
    this.m1l_1 = 0.0;
    this.n1l_1 = 0;
    this.o1l_1 = 0;
    this.p1l_1 = 0;
    this.h1l_1 = a.gm() / 2;
    this.i1l_1 = a.hm() / 2;
    this.f1l_1 = a.g1h() + this.h1l_1;
    this.g1l_1 = a.h1h() + this.i1l_1;
    this.j1l_1 = -convertDegreesToRadians(a.x1k());
    this.k1l_1 = at;
    var ext = -a.w1k();
    if (ext >= 360.0 || ext <= -360) {
      this.o1l_1 = 4;
      this.l1l_1 = 3.141592653589793 / 2;
      this.m1l_1 = 0.5522847498307933;
      if (ext < 0) {
        this.l1l_1 = -this.l1l_1;
        this.m1l_1 = -this.m1l_1;
      }
    } else {
      var tmp = this;
      // Inline function 'kotlin.math.abs' call
      // Inline function 'kotlin.math.ceil' call
      var x = Math.abs(ext) / 90.0;
      var tmp$ret$1 = Math.ceil(x);
      tmp.o1l_1 = numberToInt(tmp$ret$1);
      this.l1l_1 = convertDegreesToRadians(ext / this.o1l_1);
      this.m1l_1 = btan(Companion_instance_36, this.l1l_1);
      if (this.m1l_1 === 0.0) {
        this.o1l_1 = 0;
      }
    }
    switch (a.s1k()) {
      case 0:
        this.p1l_1 = 0;
        break;
      case 1:
        this.p1l_1 = 1;
        break;
      case 2:
        this.p1l_1 = 2;
        break;
    }
    if (this.h1l_1 < 0 || this.i1l_1 < 0) {
      this.p1l_1 = -1;
      this.o1l_1 = this.p1l_1;
    }
  }
  q1l() {
    return 1;
  }
  m17() {
    return this.n1l_1 > (this.o1l_1 + this.p1l_1 | 0);
  }
  r1l() {
    this.n1l_1 = this.n1l_1 + 1 | 0;
  }
  s1l(coords) {
    if (this.m17()) {
      throw NoSuchElementException.g1('arc iterator out of bounds');
    }
    var angle = this.j1l_1;
    if (this.n1l_1 === 0) {
      // Inline function 'kotlin.math.cos' call
      var x = angle;
      var tmp$ret$0 = Math.cos(x);
      coords[0] = this.f1l_1 + tmp$ret$0 * this.h1l_1;
      // Inline function 'kotlin.math.sin' call
      var x_0 = angle;
      var tmp$ret$1 = Math.sin(x_0);
      coords[1] = this.g1l_1 + tmp$ret$1 * this.i1l_1;
      var tmp0_safe_receiver = this.k1l_1;
      if (tmp0_safe_receiver == null)
        null;
      else {
        tmp0_safe_receiver.b1k(coords, 0, coords, 0, 1);
      }
      return 0;
    }
    if (this.n1l_1 > this.o1l_1) {
      if (this.n1l_1 === (this.o1l_1 + this.p1l_1 | 0)) {
        return 4;
      }
      coords[0] = this.f1l_1;
      coords[1] = this.g1l_1;
      var tmp1_safe_receiver = this.k1l_1;
      if (tmp1_safe_receiver == null)
        null;
      else {
        tmp1_safe_receiver.b1k(coords, 0, coords, 0, 1);
      }
      return 1;
    }
    angle = angle + this.l1l_1 * (this.n1l_1 - 1 | 0);
    // Inline function 'kotlin.math.cos' call
    var x_1 = angle;
    var relx = Math.cos(x_1);
    // Inline function 'kotlin.math.sin' call
    var x_2 = angle;
    var rely = Math.sin(x_2);
    coords[0] = this.f1l_1 + (relx - this.m1l_1 * rely) * this.h1l_1;
    coords[1] = this.g1l_1 + (rely + this.m1l_1 * relx) * this.i1l_1;
    angle = angle + this.l1l_1;
    // Inline function 'kotlin.math.cos' call
    var x_3 = angle;
    relx = Math.cos(x_3);
    // Inline function 'kotlin.math.sin' call
    var x_4 = angle;
    rely = Math.sin(x_4);
    coords[2] = this.f1l_1 + (relx + this.m1l_1 * rely) * this.h1l_1;
    coords[3] = this.g1l_1 + (rely - this.m1l_1 * relx) * this.i1l_1;
    coords[4] = this.f1l_1 + relx * this.h1l_1;
    coords[5] = this.g1l_1 + rely * this.i1l_1;
    var tmp2_safe_receiver = this.k1l_1;
    if (tmp2_safe_receiver == null)
      null;
    else {
      tmp2_safe_receiver.b1k(coords, 0, coords, 0, 3);
    }
    return 3;
  }
}
class AreaIterator {
  constructor(curves, at) {
    this.l1m_1 = 0;
    this.m1m_1 = null;
    this.n1m_1 = null;
    this.k1m_1 = curves;
    this.j1m_1 = at;
    if (curves.k1() >= 1) {
      var tmp = this;
      var tmp_0 = curves.l1(0);
      tmp.n1m_1 = tmp_0 instanceof Curve ? tmp_0 : THROW_CCE();
    }
  }
  q1l() {
    return 1;
  }
  m17() {
    return this.m1m_1 == null && this.n1m_1 == null;
  }
  r1l() {
    if (!(this.m1m_1 == null)) {
      this.m1m_1 = null;
    } else {
      this.m1m_1 = this.n1m_1;
      this.l1m_1 = this.l1m_1 + 1 | 0;
      if (this.l1m_1 < this.k1m_1.k1()) {
        this.n1m_1 = this.k1m_1.l1(this.l1m_1);
        if (!(ensureNotNull(this.n1m_1).o1m() === 0) && ensureNotNull(this.m1m_1).p1m() === ensureNotNull(this.n1m_1).g1m() && ensureNotNull(this.m1m_1).q1m() === ensureNotNull(this.n1m_1).h1m()) {
          this.m1m_1 = null;
        }
      } else {
        this.n1m_1 = null;
      }
    }
  }
  s1l(coords) {
    var segtype;
    var numpoints;
    if (!(this.m1m_1 == null)) {
      if (this.n1m_1 == null || ensureNotNull(this.n1m_1).o1m() === 0) {
        return 4;
      }
      coords[0] = ensureNotNull(this.n1m_1).g1m();
      coords[1] = ensureNotNull(this.n1m_1).h1m();
      segtype = 1;
      numpoints = 1;
    } else if (this.n1m_1 == null) {
      throw NoSuchElementException.g1('area iterator out of bounds');
    } else {
      segtype = ensureNotNull(this.n1m_1).r1m(coords);
      numpoints = ensureNotNull(this.n1m_1).o1m();
      if (numpoints === 0) {
        numpoints = 1;
      }
    }
    if (!(this.j1m_1 == null)) {
      this.j1m_1.b1k(coords, 0, coords, 0, numpoints);
    }
    return segtype;
  }
}
class Companion_37 {
  constructor() {
    Companion_instance_37 = this;
    this.b1m_1 = ArrayList.q1();
  }
}
class Area {
  static s1m() {
    Companion_getInstance_37();
    var $this = createThis(this);
    init_corg_mkui_geom_Area($this);
    $this.d1m_1 = Companion_getInstance_37().b1m_1;
    return $this;
  }
  static t1m(s) {
    Companion_getInstance_37();
    var $this = createThis(this);
    init_corg_mkui_geom_Area($this);
    var tmp = $this;
    var tmp_0;
    if (s instanceof Area) {
      tmp_0 = (s instanceof Area ? s : THROW_CCE()).d1m_1;
    } else {
      tmp_0 = pathToCurves(Companion_getInstance_37(), s.q1h());
    }
    tmp.d1m_1 = tmp_0;
    return $this;
  }
  u1m(rhs) {
    this.d1m_1 = (new IntOp()).c1m(ensureNotNull(this.d1m_1), ensureNotNull(rhs.d1m_1));
    invalidateBounds(this);
  }
  i1h() {
    return getCachedBounds(this).i1h();
  }
  j1h(point) {
    return this.f1i(point.g1h(), point.h1h());
  }
  f1i(x, y) {
    if (!getCachedBounds(this).f1i(x, y)) {
      return false;
    }
    var crossings = 0;
    var _iterator__ex2g4s = ensureNotNull(this.d1m_1).h1();
    while (_iterator__ex2g4s.i1()) {
      var c = _iterator__ex2g4s.j1();
      crossings = crossings + c.v1m(x, y) | 0;
    }
    return (crossings & 1) === 1;
  }
  l1h(rect) {
    return this.e1i(rect.g1h(), rect.h1h(), rect.gm(), rect.hm());
  }
  e1i(x, y, w, h) {
    if (w < 0 || h < 0) {
      return false;
    }
    if (!getCachedBounds(this).e1i(x, y, w, h)) {
      return false;
    }
    var c = Companion_instance_39.x1m(ensureNotNull(this.d1m_1), x, y, x + w, y + h);
    return c == null || !c.v1k();
  }
  n1h() {
    return new AreaIterator(ensureNotNull(this.d1m_1), null);
  }
  o1h(at) {
    return new AreaIterator(ensureNotNull(this.d1m_1), at);
  }
  equals(other) {
    if (other === this) {
      return true;
    }
    if (other == null) {
      return false;
    }
    if (other instanceof Area) {
      var c = (new XorOp()).c1m(ensureNotNull(this.d1m_1), ensureNotNull(other.d1m_1));
      return c.p1();
    } else {
      return false;
    }
  }
}
class sam$kotlin_Comparator$0_0 {
  constructor(function_0) {
    this.f1n_1 = function_0;
  }
  he(a, b) {
    return this.f1n_1(a, b);
  }
  compare(a, b) {
    return this.he(a, b);
  }
  k3() {
    return this.f1n_1;
  }
  equals(other) {
    var tmp;
    if (!(other == null) ? isInterface(other, Comparator) : false) {
      var tmp_0;
      if (!(other == null) ? isInterface(other, FunctionAdapter) : false) {
        tmp_0 = equals(this.k3(), other.k3());
      } else {
        tmp_0 = false;
      }
      tmp = tmp_0;
    } else {
      tmp = false;
    }
    return tmp;
  }
  hashCode() {
    return hashCode(this.k3());
  }
}
class AreaOp {
  constructor() {
    Companion_getInstance_38();
  }
  c1m(left, right) {
    var edges = ArrayList.q1();
    addEdges(Companion_getInstance_38(), edges, left, 0);
    addEdges(Companion_getInstance_38(), edges, right, 1);
    var curves = pruneEdges(this, edges);
    if (false) {
      println('result: ');
      var numcurves = curves.k1();
      // Inline function 'kotlin.collections.toTypedArray' call
      var curvelist = copyToArray(curves);
      var inductionVariable = 0;
      if (inductionVariable < numcurves)
        do {
          var i = inductionVariable;
          inductionVariable = inductionVariable + 1 | 0;
          println('curvelist[' + i + '] = ' + curvelist[i].toString());
        }
         while (inductionVariable < numcurves);
    }
    return curves;
  }
}
class CAGOp extends AreaOp {
  constructor() {
    super();
    this.r1o_1 = false;
    this.s1o_1 = false;
    this.t1o_1 = false;
  }
  d1o() {
    this.r1o_1 = false;
    this.s1o_1 = false;
    this.t1o_1 = false;
  }
  e1o(e) {
    if (e.h1n_1 === 0) {
      this.r1o_1 = !this.r1o_1;
    } else {
      this.s1o_1 = !this.s1o_1;
    }
    var newClass = this.u1o(this.r1o_1, this.s1o_1);
    if (this.t1o_1 === newClass) {
      return 0;
    }
    this.t1o_1 = newClass;
    return newClass ? 1 : -1;
  }
  f1o() {
    return this.t1o_1 ? 1 : -1;
  }
}
class IntOp extends CAGOp {
  u1o(inLeft, inRight) {
    return inLeft && inRight;
  }
}
class XorOp extends CAGOp {
  u1o(inLeft, inRight) {
    return !(inLeft === inRight);
  }
}
class NZWindOp extends AreaOp {
  constructor() {
    super();
    this.b1p_1 = 0;
  }
  d1o() {
    this.b1p_1 = 0;
  }
  e1o(e) {
    var newCount = this.b1p_1;
    var type = newCount === 0 ? 1 : 0;
    newCount = newCount + e.g1n_1.f1m_1 | 0;
    this.b1p_1 = newCount;
    return newCount === 0 ? -1 : type;
  }
  f1o() {
    return this.b1p_1 === 0 ? -1 : 1;
  }
}
class EOWindOp extends AreaOp {
  constructor() {
    super();
    this.c1p_1 = false;
  }
  d1o() {
    this.c1p_1 = false;
  }
  e1o(e) {
    var newInside = !this.c1p_1;
    this.c1p_1 = newInside;
    return newInside ? 1 : -1;
  }
  f1o() {
    return this.c1p_1 ? 1 : -1;
  }
}
class Companion_38 {
  constructor() {
    Companion_instance_38 = this;
    this.q1n_1 = 0;
    this.r1n_1 = 1;
    this.s1n_1 = 0;
    this.t1n_1 = 1;
    this.u1n_1 = -1;
    this.v1n_1 = 1;
    this.w1n_1 = -1;
    var tmp = this;
    var tmp_0 = AreaOp$Companion$YXTopComparator$lambda;
    tmp.x1n_1 = new sam$kotlin_Comparator$0_0(tmp_0);
    var tmp_1 = this;
    // Inline function 'kotlin.arrayOfNulls' call
    tmp_1.y1n_1 = Array(2);
    var tmp_2 = this;
    // Inline function 'kotlin.arrayOfNulls' call
    tmp_2.z1n_1 = Array(2);
  }
  b1o(subcurves, chains) {
    var numchains = chains.k1();
    if (numchains === 0) {
      return Unit_instance;
    }
    if (!((numchains & 1) === 0)) {
      throw UnsupportedOperationException.y8('Odd number of chains!');
    }
    // Inline function 'kotlin.collections.toTypedArray' call
    var endlist = copyToArray(chains);
    var i = 1;
    while (i < numchains) {
      var open = endlist[i - 1 | 0];
      var close = endlist[i];
      var subcurve = ensureNotNull(open).h1p(close);
      if (!(subcurve == null)) {
        subcurves.c1(subcurve);
      }
      i = i + 2 | 0;
    }
    chains.u4();
  }
  o1o(subcurves, chains, links) {
    var numlinks = links.k1();
    var linklist;
    var tmp;
    if (numlinks === 0) {
      tmp = this.y1n_1;
    } else {
      if (!((numlinks & 1) === 0)) {
        throw UnsupportedOperationException.y8('Odd number of new curves!');
      }
      // Inline function 'kotlin.collections.toTypedArray' call
      var tmp$ret$0 = copyToArray(links);
      tmp = copyOf_0(tmp$ret$0, numlinks + 2 | 0);
    }
    linklist = tmp;
    var numchains = chains.k1();
    var endlist;
    var tmp_0;
    if (numchains === 0) {
      tmp_0 = this.z1n_1;
    } else {
      if (!((numchains & 1) === 0)) {
        throw UnsupportedOperationException.y8('Odd number of chains!');
      }
      // Inline function 'kotlin.collections.toTypedArray' call
      var tmp$ret$1 = copyToArray(chains);
      tmp_0 = copyOf_0(tmp$ret$1, numchains + 2 | 0);
    }
    endlist = tmp_0;
    chains.u4();
    var chain = endlist[0];
    var nextchain = endlist[1];
    var link = linklist[0];
    var nextlink = linklist[1];
    var curlink = 0;
    var curchain = 0;
    while (!(chain == null) || !(link == null)) {
      var connectchains = link == null;
      var connectlinks = chain == null;
      if (!connectchains && !connectlinks) {
        connectchains = ((curchain & 1) === 0 && ensureNotNull(chain).g1h() === ensureNotNull(nextchain).g1h());
        connectlinks = ((curlink & 1) === 0 && ensureNotNull(link).g1h() === ensureNotNull(nextlink).g1h());
        if (!connectchains && !connectlinks) {
          var cx = ensureNotNull(chain).g1h();
          var lx = ensureNotNull(link).g1h();
          connectchains = (!(nextchain == null) && cx < lx && this.i1p(nextchain.g1h(), lx, curchain));
          connectlinks = (!(nextlink == null) && lx < cx && this.i1p(nextlink.g1h(), cx, curlink));
        }
      }
      if (connectchains) {
        var subcurve = ensureNotNull(chain).h1p(nextchain);
        if (!(subcurve == null)) {
          subcurves.c1(subcurve);
        }
        curchain = curchain + 2 | 0;
        chain = endlist[curchain];
        nextchain = endlist[curchain + 1 | 0];
      }
      if (connectlinks) {
        var openend = new ChainEnd(ensureNotNull(link), null);
        var closeend = new ChainEnd(ensureNotNull(nextlink), openend);
        openend.j1p(closeend);
        chains.c1(openend);
        chains.c1(closeend);
        curlink = curlink + 2 | 0;
        link = linklist[curlink];
        nextlink = linklist[curlink + 1 | 0];
      }
      if (!connectchains && !connectlinks) {
        ensureNotNull(chain).k1p(ensureNotNull(link));
        chains.c1(chain);
        curchain = curchain + 1 | 0;
        chain = nextchain;
        nextchain = endlist[curchain + 1 | 0];
        curlink = curlink + 1 | 0;
        link = nextlink;
        nextlink = linklist[curlink + 1 | 0];
      }
    }
    if (!((chains.k1() & 1) === 0)) {
      println('Odd number of chains!');
    }
  }
  i1p(v1, v2, phase) {
    return (phase & 1) === 0 ? v1 <= v2 : v1 < v2;
  }
}
class ChainEnd {
  constructor(first, partner) {
    this.d1p_1 = first;
    this.e1p_1 = first;
    this.f1p_1 = partner;
    this.g1p_1 = first.j1o_1;
  }
  j1p(partner) {
    this.f1p_1 = partner;
  }
  h1p(that) {
    if (this.g1p_1 === 0 || ensureNotNull(that).g1p_1 === 0) {
      throw UnsupportedOperationException.y8('ChainEnd linked more than once!');
    }
    if (this.g1p_1 === that.g1p_1) {
      throw UnsupportedOperationException.y8('Linking chains of the same type!');
    }
    var enter;
    var exit;
    if (this.g1p_1 === 1) {
      enter = this;
      exit = that;
    } else {
      enter = that;
      exit = this;
    }
    this.g1p_1 = 0;
    that.g1p_1 = 0;
    enter.e1p_1.m1o_1 = exit.d1p_1;
    enter.e1p_1 = exit.e1p_1;
    if (equals(this.f1p_1, that)) {
      return enter.d1p_1;
    }
    var otherenter = exit.f1p_1;
    var otherexit = enter.f1p_1;
    ensureNotNull(otherenter).f1p_1 = otherexit;
    ensureNotNull(otherexit).f1p_1 = otherenter;
    if (enter.d1p_1.k1o_1 < otherenter.d1p_1.k1o_1) {
      enter.e1p_1.m1o_1 = otherenter.d1p_1;
      otherenter.d1p_1 = enter.d1p_1;
    } else {
      otherexit.e1p_1.m1o_1 = enter.d1p_1;
      otherexit.e1p_1 = enter.e1p_1;
    }
    return null;
  }
  k1p(newlink) {
    if (this.g1p_1 === 1) {
      this.e1p_1.m1o_1 = newlink;
      this.e1p_1 = newlink;
    } else {
      newlink.m1o_1 = this.d1p_1;
      this.d1p_1 = newlink;
    }
  }
  g1h() {
    var tmp;
    if (this.g1p_1 === 1) {
      tmp = this.e1p_1.l1p();
    } else {
      tmp = this.d1p_1.l1p();
    }
    return tmp;
  }
}
class Crossings {
  constructor(xLo, yLo, xHi, yHi) {
    this.y1m_1 = xLo;
    this.z1m_1 = yLo;
    this.a1n_1 = xHi;
    this.b1n_1 = yHi;
    this.c1n_1 = ArrayList.q1();
    this.d1n_1 = 0;
    this.e1n_1 = new Float64Array(10);
  }
  u1p() {
    println('Crossings [');
    println('  bounds = [' + this.z1m_1 + ', ' + this.b1n_1 + toString(_Char___init__impl__6a9atx(93)));
    var i = 0;
    while (i < this.d1n_1) {
      println('  [' + this.e1n_1[i] + ', ' + this.e1n_1[i + 1 | 0] + toString(_Char___init__impl__6a9atx(93)));
      i = i + 2 | 0;
    }
    println(']');
  }
  v1k() {
    return this.d1n_1 === 0;
  }
}
class EvenOdd extends Crossings {
  t1p(ystart, yend, direction) {
    var ystart_0 = ystart;
    var yend_0 = yend;
    if (ystart_0 >= yend_0) {
      return Unit_instance;
    }
    var from = 0;
    while (from < this.d1n_1 && ystart_0 > this.e1n_1[from + 1 | 0]) {
      from = from + 2 | 0;
    }
    var to = from;
    $l$loop_0: while (from < this.d1n_1) {
      var tmp = this.e1n_1;
      var _unary__edvuaz = from;
      from = _unary__edvuaz + 1 | 0;
      var yrlo = tmp[_unary__edvuaz];
      var tmp_0 = this.e1n_1;
      var _unary__edvuaz_0 = from;
      from = _unary__edvuaz_0 + 1 | 0;
      var yrhi = tmp_0[_unary__edvuaz_0];
      if (yend_0 < yrlo) {
        var tmp_1 = this.e1n_1;
        var _unary__edvuaz_1 = to;
        to = _unary__edvuaz_1 + 1 | 0;
        tmp_1[_unary__edvuaz_1] = ystart_0;
        var tmp_2 = this.e1n_1;
        var _unary__edvuaz_2 = to;
        to = _unary__edvuaz_2 + 1 | 0;
        tmp_2[_unary__edvuaz_2] = yend_0;
        ystart_0 = yrlo;
        yend_0 = yrhi;
        continue $l$loop_0;
      }
      var yll;
      var ylh;
      if (ystart_0 < yrlo) {
        yll = ystart_0;
        ylh = yrlo;
      } else {
        yll = yrlo;
        ylh = ystart_0;
      }
      var yhh;
      var yhl;
      if (yend_0 < yrhi) {
        yhl = yend_0;
        yhh = yrhi;
      } else {
        yhl = yrhi;
        yhh = yend_0;
      }
      if (ylh === yhl) {
        ystart_0 = yll;
        yend_0 = yhh;
      } else {
        if (ylh > yhl) {
          ystart_0 = yhl;
          yhl = ylh;
          ylh = ystart_0;
        }
        if (!(yll === ylh)) {
          var tmp_3 = this.e1n_1;
          var _unary__edvuaz_3 = to;
          to = _unary__edvuaz_3 + 1 | 0;
          tmp_3[_unary__edvuaz_3] = yll;
          var tmp_4 = this.e1n_1;
          var _unary__edvuaz_4 = to;
          to = _unary__edvuaz_4 + 1 | 0;
          tmp_4[_unary__edvuaz_4] = ylh;
        }
        ystart_0 = yhl;
        yend_0 = yhh;
      }
      if (ystart_0 >= yend_0) {
        break $l$loop_0;
      }
    }
    if (to < from && from < this.d1n_1) {
      arraycopy_0(this.e1n_1, from, this.e1n_1, to, this.d1n_1 - from | 0);
    }
    to = to + (this.d1n_1 - from | 0) | 0;
    if (ystart_0 < yend_0) {
      if (to >= this.e1n_1.length) {
        var newranges = new Float64Array(to + 10 | 0);
        arraycopy_0(this.e1n_1, 0, newranges, 0, to);
        this.e1n_1 = newranges;
      }
      var tmp_5 = this.e1n_1;
      var _unary__edvuaz_5 = to;
      to = _unary__edvuaz_5 + 1 | 0;
      tmp_5[_unary__edvuaz_5] = ystart_0;
      var tmp_6 = this.e1n_1;
      var _unary__edvuaz_6 = to;
      to = _unary__edvuaz_6 + 1 | 0;
      tmp_6[_unary__edvuaz_6] = yend_0;
    }
    this.d1n_1 = to;
  }
}
class Companion_39 {
  constructor() {
    this.w1m_1 = false;
  }
  x1m(curves, xlo, ylo, xhi, yhi) {
    var cross = new EvenOdd(xlo, ylo, xhi, yhi);
    var _iterator__ex2g4s = curves.h1();
    while (_iterator__ex2g4s.i1()) {
      var c = _iterator__ex2g4s.j1();
      if (ensureNotNull(c).v1p(cross)) {
        return null;
      }
    }
    if (false) {
      cross.u1p();
    }
    return cross;
  }
}
class Companion_40 {
  constructor() {
    this.t1l_1 = 1;
    this.u1l_1 = -1;
    this.v1l_1 = -2147483648;
    this.w1l_1 = 0.001;
  }
  y1l(curves, x, y) {
    curves.c1(new Order0(x, y));
  }
  x1l(curves, x0, y0, x1, y1) {
    if (y0 < y1) {
      curves.c1(new Order1(x0, y0, x1, y1, 1));
    } else if (y0 > y1) {
      curves.c1(new Order1(x1, y1, x0, y0, -1));
    }
  }
  z1l(curves, x0, y0, coords) {
    var y1 = coords[3];
    if (y0 > y1) {
      Companion_instance_44.w1p(curves, coords, coords[2], y1, coords[0], coords[1], x0, y0, -1);
    } else if (y0 === y1 && y0 === coords[1]) {
      return Unit_instance;
    } else {
      Companion_instance_44.w1p(curves, coords, x0, y0, coords[0], coords[1], coords[2], y1, 1);
    }
  }
  a1m(curves, x0, y0, coords) {
    var y1 = coords[5];
    if (y0 > y1) {
      Companion_instance_45.x1p(curves, coords, coords[4], y1, coords[2], coords[3], coords[0], coords[1], x0, y0, -1);
    } else if (y0 === y1 && y0 === coords[1] && y0 === coords[3]) {
      return Unit_instance;
    } else {
      Companion_instance_45.x1p(curves, coords, x0, y0, coords[0], coords[1], coords[2], coords[3], coords[4], y1, 1);
    }
  }
  y1p(px, py, x0, y0, x1, y1) {
    if (py < y0 && py < y1)
      return 0;
    if (py >= y0 && py >= y1)
      return 0;
    if (px >= x0 && px >= x1)
      return 0;
    if (px < x0 && px < x1)
      return y0 < y1 ? 1 : -1;
    var xintercept = x0 + (py - y0) * (x1 - x0) / (y1 - y0);
    if (px >= xintercept)
      return 0;
    return y0 < y1 ? 1 : -1;
  }
  z1p(px, py, x0, y0, xc, yc, x1, y1, level) {
    var xc_0 = xc;
    var yc_0 = yc;
    if (py < y0 && py < yc_0 && py < y1)
      return 0;
    if (py >= y0 && py >= yc_0 && py >= y1)
      return 0;
    if (px >= x0 && px >= xc_0 && px >= x1)
      return 0;
    if (px < x0 && px < xc_0 && px < x1) {
      if (py >= y0) {
        if (py < y1)
          return 1;
      } else {
        if (py >= y1)
          return -1;
      }
      return 0;
    }
    if (level > 52)
      return this.y1p(px, py, x0, y0, x1, y1);
    var x0c = (x0 + xc_0) / 2;
    var y0c = (y0 + yc_0) / 2;
    var xc1 = (xc_0 + x1) / 2;
    var yc1 = (yc_0 + y1) / 2;
    xc_0 = (x0c + xc1) / 2;
    yc_0 = (y0c + yc1) / 2;
    var tmp;
    if (isNaN_3(xc_0) || isNaN_3(yc_0)) {
      tmp = 0;
    } else {
      tmp = this.z1p(px, py, x0, y0, x0c, y0c, xc_0, yc_0, level + 1 | 0) + this.z1p(px, py, xc_0, yc_0, xc1, yc1, x1, y1, level + 1 | 0) | 0;
    }
    return tmp;
  }
  a1q(px, py, x0, y0, xc0, yc0, xc1, yc1, x1, y1, level) {
    var xc0_0 = xc0;
    var yc0_0 = yc0;
    var xc1_0 = xc1;
    var yc1_0 = yc1;
    if (py < y0 && py < yc0_0 && py < yc1_0 && py < y1)
      return 0;
    if (py >= y0 && py >= yc0_0 && py >= yc1_0 && py >= y1)
      return 0;
    if (px >= x0 && px >= xc0_0 && px >= xc1_0 && px >= x1)
      return 0;
    if (px < x0 && px < xc0_0 && px < xc1_0 && px < x1) {
      if (py >= y0) {
        if (py < y1)
          return 1;
      } else {
        if (py >= y1)
          return -1;
      }
      return 0;
    }
    if (level > 52)
      return this.y1p(px, py, x0, y0, x1, y1);
    var xmid = (xc0_0 + xc1_0) / 2;
    var ymid = (yc0_0 + yc1_0) / 2;
    xc0_0 = (x0 + xc0_0) / 2;
    yc0_0 = (y0 + yc0_0) / 2;
    xc1_0 = (xc1_0 + x1) / 2;
    yc1_0 = (yc1_0 + y1) / 2;
    var xc0m = (xc0_0 + xmid) / 2;
    var yc0m = (yc0_0 + ymid) / 2;
    var xmc1 = (xmid + xc1_0) / 2;
    var ymc1 = (ymid + yc1_0) / 2;
    xmid = (xc0m + xmc1) / 2;
    ymid = (yc0m + ymc1) / 2;
    var tmp;
    if (isNaN_3(xmid) || isNaN_3(ymid)) {
      tmp = 0;
    } else {
      tmp = this.a1q(px, py, x0, y0, xc0_0, yc0_0, xc0m, yc0m, xmid, ymid, level + 1 | 0) + this.a1q(px, py, xmid, ymid, xmc1, ymc1, xc1_0, yc1_0, x1, y1, level + 1 | 0) | 0;
    }
    return tmp;
  }
  b1q(crossings, rxmin, rymin, rxmax, rymax, x0, y0, x1, y1) {
    var crossings_0 = crossings;
    if (y0 >= rymax && y1 >= rymax)
      return crossings_0;
    if (y0 <= rymin && y1 <= rymin)
      return crossings_0;
    if (x0 <= rxmin && x1 <= rxmin)
      return crossings_0;
    if (x0 >= rxmax && x1 >= rxmax) {
      if (y0 < y1) {
        if (y0 <= rymin) {
          crossings_0 = crossings_0 + 1 | 0;
        }
        if (y1 >= rymax) {
          crossings_0 = crossings_0 + 1 | 0;
        }
      } else if (y1 < y0) {
        if (y1 <= rymin) {
          crossings_0 = crossings_0 - 1 | 0;
        }
        if (y0 >= rymax) {
          crossings_0 = crossings_0 - 1 | 0;
        }
      }
      return crossings_0;
    }
    if (x0 > rxmin && x0 < rxmax && y0 > rymin && y0 < rymax || (x1 > rxmin && x1 < rxmax && y1 > rymin && y1 < rymax)) {
      return -2147483648;
    }
    var xi0 = x0;
    if (y0 < rymin) {
      xi0 = xi0 + (rymin - y0) * (x1 - x0) / (y1 - y0);
    } else if (y0 > rymax) {
      xi0 = xi0 + (rymax - y0) * (x1 - x0) / (y1 - y0);
    }
    var xi1 = x1;
    if (y1 < rymin) {
      xi1 = xi1 + (rymin - y1) * (x0 - x1) / (y0 - y1);
    } else if (y1 > rymax) {
      xi1 = xi1 + (rymax - y1) * (x0 - x1) / (y0 - y1);
    }
    if (xi0 <= rxmin && xi1 <= rxmin)
      return crossings_0;
    if (xi0 >= rxmax && xi1 >= rxmax) {
      if (y0 < y1) {
        if (y0 <= rymin) {
          crossings_0 = crossings_0 + 1 | 0;
        }
        if (y1 >= rymax) {
          crossings_0 = crossings_0 + 1 | 0;
        }
      } else if (y1 < y0) {
        if (y1 <= rymin) {
          crossings_0 = crossings_0 - 1 | 0;
        }
        if (y0 >= rymax) {
          crossings_0 = crossings_0 - 1 | 0;
        }
      }
      return crossings_0;
    }
    return -2147483648;
  }
  c1q(crossings, rxmin, rymin, rxmax, rymax, x0, y0, xc, yc, x1, y1, level) {
    var crossings_0 = crossings;
    var xc_0 = xc;
    var yc_0 = yc;
    if (y0 >= rymax && yc_0 >= rymax && y1 >= rymax)
      return crossings_0;
    if (y0 <= rymin && yc_0 <= rymin && y1 <= rymin)
      return crossings_0;
    if (x0 <= rxmin && xc_0 <= rxmin && x1 <= rxmin)
      return crossings_0;
    if (x0 >= rxmax && xc_0 >= rxmax && x1 >= rxmax) {
      if (y0 < y1) {
        if (y0 <= rymin && y1 > rymin) {
          crossings_0 = crossings_0 + 1 | 0;
        }
        if (y0 < rymax && y1 >= rymax) {
          crossings_0 = crossings_0 + 1 | 0;
        }
      } else if (y1 < y0) {
        if (y1 <= rymin && y0 > rymin) {
          crossings_0 = crossings_0 - 1 | 0;
        }
        if (y1 < rymax && y0 >= rymax) {
          crossings_0 = crossings_0 - 1 | 0;
        }
      }
      return crossings_0;
    }
    if (x0 < rxmax && x0 > rxmin && y0 < rymax && y0 > rymin || (x1 < rxmax && x1 > rxmin && y1 < rymax && y1 > rymin)) {
      return -2147483648;
    }
    if (level > 52) {
      return this.b1q(crossings_0, rxmin, rymin, rxmax, rymax, x0, y0, x1, y1);
    }
    var x0c = (x0 + xc_0) / 2;
    var y0c = (y0 + yc_0) / 2;
    var xc1 = (xc_0 + x1) / 2;
    var yc1 = (yc_0 + y1) / 2;
    xc_0 = (x0c + xc1) / 2;
    yc_0 = (y0c + yc1) / 2;
    if (isNaN_3(xc_0) || isNaN_3(yc_0)) {
      return 0;
    }
    crossings_0 = this.c1q(crossings_0, rxmin, rymin, rxmax, rymax, x0, y0, x0c, y0c, xc_0, yc_0, level + 1 | 0);
    if (!(crossings_0 === -2147483648)) {
      crossings_0 = this.c1q(crossings_0, rxmin, rymin, rxmax, rymax, xc_0, yc_0, xc1, yc1, x1, y1, level + 1 | 0);
    }
    return crossings_0;
  }
  d1q(crossings, rxmin, rymin, rxmax, rymax, x0, y0, xc0, yc0, xc1, yc1, x1, y1, level) {
    var crossings_0 = crossings;
    var xc0_0 = xc0;
    var yc0_0 = yc0;
    var xc1_0 = xc1;
    var yc1_0 = yc1;
    if (y0 >= rymax && yc0_0 >= rymax && yc1_0 >= rymax && y1 >= rymax) {
      return crossings_0;
    }
    if (y0 <= rymin && yc0_0 <= rymin && yc1_0 <= rymin && y1 <= rymin) {
      return crossings_0;
    }
    if (x0 <= rxmin && xc0_0 <= rxmin && xc1_0 <= rxmin && x1 <= rxmin) {
      return crossings_0;
    }
    if (x0 >= rxmax && xc0_0 >= rxmax && xc1_0 >= rxmax && x1 >= rxmax) {
      if (y0 < y1) {
        if (y0 <= rymin && y1 > rymin) {
          crossings_0 = crossings_0 + 1 | 0;
        }
        if (y0 < rymax && y1 >= rymax) {
          crossings_0 = crossings_0 + 1 | 0;
        }
      } else if (y1 < y0) {
        if (y1 <= rymin && y0 > rymin) {
          crossings_0 = crossings_0 - 1 | 0;
        }
        if (y1 < rymax && y0 >= rymax) {
          crossings_0 = crossings_0 - 1 | 0;
        }
      }
      return crossings_0;
    }
    if (x0 > rxmin && x0 < rxmax && y0 > rymin && y0 < rymax || (x1 > rxmin && x1 < rxmax && y1 > rymin && y1 < rymax)) {
      return -2147483648;
    }
    if (level > 52) {
      return this.b1q(crossings_0, rxmin, rymin, rxmax, rymax, x0, y0, x1, y1);
    }
    var xmid = (xc0_0 + xc1_0) / 2;
    var ymid = (yc0_0 + yc1_0) / 2;
    xc0_0 = (x0 + xc0_0) / 2;
    yc0_0 = (y0 + yc0_0) / 2;
    xc1_0 = (xc1_0 + x1) / 2;
    yc1_0 = (yc1_0 + y1) / 2;
    var xc0m = (xc0_0 + xmid) / 2;
    var yc0m = (yc0_0 + ymid) / 2;
    var xmc1 = (xmid + xc1_0) / 2;
    var ymc1 = (ymid + yc1_0) / 2;
    xmid = (xc0m + xmc1) / 2;
    ymid = (yc0m + ymc1) / 2;
    if (isNaN_3(xmid) || isNaN_3(ymid)) {
      return 0;
    }
    crossings_0 = this.d1q(crossings_0, rxmin, rymin, rxmax, rymax, x0, y0, xc0_0, yc0_0, xc0m, yc0m, xmid, ymid, level + 1 | 0);
    if (!(crossings_0 === -2147483648)) {
      crossings_0 = this.d1q(crossings_0, rxmin, rymin, rxmax, rymax, xmid, ymid, xmc1, ymc1, xc1_0, yc1_0, x1, y1, level + 1 | 0);
    }
    return crossings_0;
  }
  e1q(x1, x2) {
    if (x1 < x2) {
      return -1;
    }
    var tmp;
    if (x1 > x2) {
      tmp = 1;
    } else {
      tmp = 0;
    }
    return tmp;
  }
  f1q(y1, y2) {
    return abs_1(subtract_0(doubleToLongBits(y1), doubleToLongBits(y2)));
  }
  g1q(v) {
    return v;
  }
}
class Curve {
  constructor(direction) {
    this.f1m_1 = direction;
  }
  h1q(direction) {
    return this.f1m_1 === direction ? this : ensureNotNull(this.i1q());
  }
  toString() {
    return 'Curve[' + this.o1m() + ', ' + ('(' + Companion_instance_40.g1q(this.g1m()) + ', ' + Companion_instance_40.g1q(this.h1m()) + '), ') + this.j1q() + ('(' + Companion_instance_40.g1q(this.p1m()) + ', ' + Companion_instance_40.g1q(this.q1m()) + '), ') + (this.f1m_1 === 1 ? 'D' : 'U') + toString(_Char___init__impl__6a9atx(93));
  }
  j1q() {
    return '';
  }
  v1m(x, y) {
    if (y >= this.o1n() && y < this.a1o()) {
      if (x < this.l1q() && (x < this.m1q() || x < this.n1q(y))) {
        return 1;
      }
    }
    return 0;
  }
  v1p(c) {
    var xhi = c.a1n_1;
    if (this.m1q() >= xhi) {
      return false;
    }
    var xlo = c.y1m_1;
    var ylo = c.z1m_1;
    var yhi = c.b1n_1;
    var y0 = this.o1n();
    var y1 = this.a1o();
    var tstart;
    var ystart;
    if (y0 < ylo) {
      if (y1 <= ylo) {
        return false;
      }
      ystart = ylo;
      tstart = this.o1q(ylo);
    } else {
      if (y0 >= yhi) {
        return false;
      }
      ystart = y0;
      tstart = 0.0;
    }
    var yend;
    var tend;
    if (y1 > yhi) {
      yend = yhi;
      tend = this.o1q(yhi);
    } else {
      yend = y1;
      tend = 1.0;
    }
    var hitLo = false;
    var hitHi = false;
    $l$loop: while (true) {
      var x = this.p1q(tstart);
      if (x < xhi) {
        if (hitHi || x > xlo) {
          return true;
        }
        hitLo = true;
      } else {
        if (hitLo) {
          return true;
        }
        hitHi = true;
      }
      if (tstart >= tend) {
        break $l$loop;
      }
      tstart = this.q1q(tstart, tend);
    }
    if (hitLo) {
      c.t1p(ystart, yend, this.f1m_1);
    }
    return false;
  }
  s1q(that, yrange) {
    var y0 = yrange[0];
    var y1 = yrange[1];
    var tmp0 = y1;
    // Inline function 'kotlin.math.min' call
    var b = this.a1o();
    var tmp0_0 = Math.min(tmp0, b);
    // Inline function 'kotlin.math.min' call
    var b_0 = that.a1o();
    y1 = Math.min(tmp0_0, b_0);
    if (y1 <= yrange[0]) {
      println('this == ' + this.toString());
      println('that == ' + that.toString());
      println('target range = ' + yrange[0] + '=>' + yrange[1]);
      throw Error_0.i('backstepping from ' + yrange[0] + ' to ' + y1);
    }
    yrange[1] = y1;
    if (this.l1q() <= that.m1q()) {
      var tmp;
      if (this.m1q() === that.l1q()) {
        tmp = 0;
      } else {
        tmp = -1;
      }
      return tmp;
    }
    if (this.m1q() >= that.l1q()) {
      return 1;
    }
    var s0 = this.o1q(y0);
    var ys0 = this.k1q(s0);
    if (ys0 < y0) {
      s0 = this.t1q(s0, ys0, y0);
      ys0 = this.k1q(s0);
    }
    var s1 = this.o1q(y1);
    if (this.k1q(s1) < y0) {
      s1 = this.t1q(s1, this.k1q(s1), y0);
    }
    var t0 = that.o1q(y0);
    var yt0 = that.k1q(t0);
    if (yt0 < y0) {
      t0 = that.t1q(t0, yt0, y0);
      yt0 = that.k1q(t0);
    }
    var t1 = that.o1q(y1);
    if (that.k1q(t1) < y0) {
      t1 = that.t1q(t1, that.k1q(t1), y0);
    }
    var xs0 = this.p1q(s0);
    var xt0 = that.p1q(t0);
    // Inline function 'kotlin.math.abs' call
    var tmp0_1 = Math.abs(y0);
    // Inline function 'kotlin.math.abs' call
    var x = y1;
    // Inline function 'kotlin.math.max' call
    var b_1 = Math.abs(x);
    var scale = Math.max(tmp0_1, b_1);
    // Inline function 'kotlin.math.max' call
    var a = scale * 1.0E-14;
    var ymin = Math.max(a, 1.0E-300);
    if (fairlyClose(Companion_instance_40, xs0, xt0)) {
      var bump = ymin;
      var tmp0_2 = ymin * 1.0E13;
      // Inline function 'kotlin.math.min' call
      var b_2 = (y1 - y0) * 0.1;
      var maxbump = Math.min(tmp0_2, b_2);
      var y = y0 + bump;
      $l$loop_0: while (y <= y1) {
        if (fairlyClose(Companion_instance_40, this.n1q(y), that.n1q(y))) {
          // Inline function 'kotlin.let' call
          bump = bump * 2;
          if (bump > maxbump) {
            bump = maxbump;
          }
        } else {
          y = y - bump;
          $l$loop: while (true) {
            bump = bump / 2.0;
            var newy = y + bump;
            if (newy <= y) {
              break $l$loop;
            }
            if (fairlyClose(Companion_instance_40, this.n1q(newy), that.n1q(newy))) {
              y = newy;
            }
          }
          break $l$loop_0;
        }
        y = y + bump;
      }
      if (y > y0) {
        if (y < y1) {
          yrange[1] = y;
        }
        return 0;
      }
    }
    if (ymin <= 0) {
      println('ymin = ' + ymin);
    }
    $l$loop_3: while (s0 < s1 && t0 < t1) {
      var sh = this.q1q(s0, s1);
      var xsh = this.p1q(sh);
      var ysh = this.k1q(sh);
      var th = that.q1q(t0, t1);
      var xth = that.p1q(th);
      var yth = that.k1q(th);
      try {
        if (this.u1q(that, yrange, ymin, 0, 0, s0, xs0, ys0, sh, xsh, ysh, t0, xt0, yt0, th, xth, yth)) {
          break $l$loop_3;
        }
      } catch ($p) {
        if ($p instanceof Error) {
          var t = $p;
          println('Error: ' + t.toString());
          println('y range was ' + yrange[0] + '=>' + yrange[1]);
          println('s y range is ' + ys0 + '=>' + ysh);
          println('t y range is ' + yt0 + '=>' + yth);
          println('ymin is ' + ymin);
          return 0;
        } else {
          throw $p;
        }
      }
      if (ysh < yth) {
        if (ysh > yrange[0]) {
          if (ysh < yrange[1]) {
            yrange[1] = ysh;
          }
          break $l$loop_3;
        }
        s0 = sh;
        xs0 = xsh;
        ys0 = ysh;
      } else {
        if (yth > yrange[0]) {
          if (yth < yrange[1]) {
            yrange[1] = yth;
          }
          break $l$loop_3;
        }
        t0 = th;
        xt0 = xth;
        yt0 = yth;
      }
    }
    var ymid = (yrange[0] + yrange[1]) / 2;
    return Companion_instance_40.e1q(this.n1q(ymid), that.n1q(ymid));
  }
  u1q(that, yrange, ymin, slevel, tlevel, s0, xs0, ys0, s1, xs1, ys1, t0, xt0, yt0, t1, xt1, yt1) {
    if (ys0 > yt1 || yt0 > ys1) {
      return false;
    }
    var tmp;
    // Inline function 'kotlin.math.min' call
    var tmp_0 = Math.min(xs0, xs1);
    // Inline function 'kotlin.math.max' call
    if (tmp_0 > Math.max(xt0, xt1)) {
      tmp = true;
    } else {
      // Inline function 'kotlin.math.max' call
      var tmp_1 = Math.max(xs0, xs1);
      // Inline function 'kotlin.math.min' call
      tmp = tmp_1 < Math.min(xt0, xt1);
    }
    if (tmp) {
      return false;
    }
    if (s1 - s0 > 0.001) {
      var s = (s0 + s1) / 2;
      var xs = this.p1q(s);
      var ys = this.k1q(s);
      if (s === s0 || s === s1) {
        println('s0 = ' + s0);
        println('s1 = ' + s1);
        throw Error_0.i('no s progress!');
      }
      if (t1 - t0 > 0.001) {
        var t = (t0 + t1) / 2;
        var xt = that.p1q(t);
        var yt = that.k1q(t);
        if (t === t0 || t === t1) {
          println('t0 = ' + t0);
          println('t1 = ' + t1);
          throw Error_0.i('no t progress!');
        }
        if (ys >= yt0 && yt >= ys0) {
          if (this.u1q(that, yrange, ymin, slevel + 1 | 0, tlevel + 1 | 0, s0, xs0, ys0, s, xs, ys, t0, xt0, yt0, t, xt, yt)) {
            return true;
          }
        }
        if (ys >= yt) {
          if (this.u1q(that, yrange, ymin, slevel + 1 | 0, tlevel + 1 | 0, s0, xs0, ys0, s, xs, ys, t, xt, yt, t1, xt1, yt1)) {
            return true;
          }
        }
        if (yt >= ys) {
          if (this.u1q(that, yrange, ymin, slevel + 1 | 0, tlevel + 1 | 0, s, xs, ys, s1, xs1, ys1, t0, xt0, yt0, t, xt, yt)) {
            return true;
          }
        }
        if (ys1 >= yt && yt1 >= ys) {
          return this.u1q(that, yrange, ymin, slevel + 1 | 0, tlevel + 1 | 0, s, xs, ys, s1, xs1, ys1, t, xt, yt, t1, xt1, yt1);
        }
      } else {
        if (ys >= yt0) {
          if (this.u1q(that, yrange, ymin, slevel + 1 | 0, tlevel, s0, xs0, ys0, s, xs, ys, t0, xt0, yt0, t1, xt1, yt1)) {
            return true;
          }
        }
        if (yt1 >= ys) {
          return this.u1q(that, yrange, ymin, slevel + 1 | 0, tlevel, s, xs, ys, s1, xs1, ys1, t0, xt0, yt0, t1, xt1, yt1);
        }
      }
    } else if (t1 - t0 > 0.001) {
      var t_0 = (t0 + t1) / 2;
      var xt_0 = that.p1q(t_0);
      var yt_0 = that.k1q(t_0);
      if (t_0 === t0 || t_0 === t1) {
        println('t0 = ' + t0);
        println('t1 = ' + t1);
        throw Error_0.i('no t progress!');
      }
      if (yt_0 >= ys0) {
        if (this.u1q(that, yrange, ymin, slevel, tlevel + 1 | 0, s0, xs0, ys0, s1, xs1, ys1, t0, xt0, yt0, t_0, xt_0, yt_0)) {
          return true;
        }
      }
      if (ys1 >= yt_0) {
        return this.u1q(that, yrange, ymin, slevel, tlevel + 1 | 0, s0, xs0, ys0, s1, xs1, ys1, t_0, xt_0, yt_0, t1, xt1, yt1);
      }
    } else {
      var xlk = xs1 - xs0;
      var ylk = ys1 - ys0;
      var xnm = xt1 - xt0;
      var ynm = yt1 - yt0;
      var det = xnm * ylk - ynm * xlk;
      if (!(det === 0.0)) {
        var detinv = 1 / det;
        var ymk = yt0 - ys0;
        var xmk = xt0 - xs0;
        var s_0 = (xnm * ymk - ynm * xmk) * detinv;
        var t_1 = (xlk * ymk - ylk * xmk) * detinv;
        if (s_0 >= 0 && s_0 <= 1 && t_1 >= 0 && t_1 <= 1) {
          s_0 = s0 + s_0 * (s1 - s0);
          t_1 = t0 + t_1 * (t1 - t0);
          if (s_0 < 0 || s_0 > 1 || t_1 < 0 || t_1 > 1) {
            println('Uh oh!');
          }
          var y = (this.k1q(s_0) + that.k1q(t_1)) / 2;
          if (y <= yrange[1] && y > yrange[0]) {
            yrange[1] = y;
            return true;
          }
        }
      }
    }
    return false;
  }
  t1q(t0, yt0, y0) {
    var t0_0 = t0;
    var t1 = 1.0;
    while (true) {
      var th = (t0_0 + t1) / 2;
      if (th === t0_0 || th === t1) {
        return t1;
      }
      var y = this.k1q(th);
      if (y < y0) {
        t0_0 = th;
      } else if (y > y0) {
        t1 = th;
      } else {
        return t1;
      }
    }
  }
}
class CurveLink {
  constructor(curve, ystart, yend, etag) {
    this.m1o_1 = null;
    this.i1o_1 = curve;
    this.k1o_1 = ystart;
    this.l1o_1 = yend;
    this.j1o_1 = etag;
    if (this.k1o_1 < curve.o1n() || this.l1o_1 > curve.a1o()) {
      throw UnsupportedOperationException.y8('bad curvelink [' + this.k1o_1 + '=>' + this.l1o_1 + '] for ' + curve.toString());
    }
  }
  q1o(link) {
    return this.v1q(link.i1o_1, link.k1o_1, link.l1o_1, link.j1o_1);
  }
  v1q(curve, ystart, yend, etag) {
    if (!(this.i1o_1 === curve) || !(this.j1o_1 === etag) || this.l1o_1 < ystart || this.k1o_1 > yend) {
      return false;
    }
    if (ystart < curve.o1n() || yend > curve.a1o()) {
      throw UnsupportedOperationException.y8('bad curvelink [' + ystart + '=>' + yend + '] for ' + curve.toString());
    }
    var tmp = this;
    // Inline function 'kotlin.math.min' call
    var a = this.k1o_1;
    tmp.k1o_1 = Math.min(a, ystart);
    var tmp_0 = this;
    // Inline function 'kotlin.math.max' call
    var a_0 = this.l1o_1;
    tmp_0.l1o_1 = Math.max(a_0, yend);
    return true;
  }
  n1o() {
    var tmp;
    if (this.k1o_1 === this.i1o_1.o1n() && this.l1o_1 === this.i1o_1.a1o()) {
      tmp = this.i1o_1.h1q(this.j1o_1);
    } else {
      tmp = this.i1o_1.r1q(this.k1o_1, this.l1o_1, this.j1o_1);
    }
    return tmp;
  }
  p1o() {
    return new Order0(this.p1n(), this.k1o_1);
  }
  p1n() {
    return this.i1o_1.n1q(this.k1o_1);
  }
  l1p() {
    return this.i1o_1.n1q(this.l1o_1);
  }
  g1h() {
    return this.i1o_1.n1q(this.k1o_1);
  }
}
class Companion_41 {
  constructor() {
    this.w1q_1 = 4;
    this.x1q_1 = 10;
  }
}
class Edge {
  constructor(c, ctag, etag) {
    etag = etag === VOID ? 0 : etag;
    this.j1n_1 = 0.0;
    this.k1n_1 = 0;
    this.l1n_1 = null;
    this.m1n_1 = 0;
    this.n1n_1 = 0.0;
    this.g1n_1 = c;
    this.h1n_1 = ctag;
    this.i1n_1 = etag;
  }
  c1o(other, yrange) {
    if (equals(other, this.l1n_1) && yrange[0] < this.n1n_1) {
      if (yrange[1] > this.n1n_1) {
        yrange[1] = this.n1n_1;
      }
      return this.m1n_1;
    }
    if (equals(this, other.l1n_1) && yrange[0] < other.n1n_1) {
      if (yrange[1] > other.n1n_1) {
        yrange[1] = other.n1n_1;
      }
      return 0 - other.m1n_1 | 0;
    }
    var ret = this.g1n_1.s1q(other.g1n_1, yrange);
    this.l1n_1 = other;
    this.n1n_1 = yrange[1];
    this.m1n_1 = ret;
    return ret;
  }
  h1o(yend, etag) {
    this.j1n_1 = yend;
    this.i1n_1 = etag;
  }
  g1o(y, etag) {
    return this.i1n_1 === etag && this.j1n_1 >= y;
  }
  toString() {
    return 'Edge[' + this.g1n_1 + ', ' + (this.h1n_1 === 0 ? 'L' : 'R') + ', ' + (this.i1n_1 === 1 ? 'I' : this.i1n_1 === -1 ? 'O' : 'N') + toString(_Char___init__impl__6a9atx(93));
  }
}
class Ellipse2D {}
class Double_0 {
  constructor(x, y, width, height) {
    this.y1q_1 = x;
    this.z1q_1 = y;
    this.a1r_1 = width;
    this.b1r_1 = height;
  }
  g1h() {
    return this.y1q_1;
  }
  h1h() {
    return this.z1q_1;
  }
  gm() {
    return this.a1r_1;
  }
  hm() {
    return this.b1r_1;
  }
  i1h() {
    return Double_3.z1h(this.y1q_1, this.z1q_1, this.a1r_1, this.b1r_1);
  }
  j1h(point) {
    var x = point.g1h();
    var y = point.h1h();
    var x0 = x;
    var y0 = y;
    return x >= x0 && y >= y0 && x < x0 + this.a1r_1 && y < y0 + this.b1r_1;
  }
  l1h(rect) {
    var x = rect.g1h();
    var y = rect.h1h();
    var w = rect.gm();
    var h = rect.hm();
    if (w <= 0.0 || h <= 0.0) {
      return false;
    }
    var ellw = this.a1r_1;
    if (ellw <= 0.0) {
      return false;
    }
    var normx0 = (x - x) / ellw - 0.5;
    var ellh = this.b1r_1;
    if (ellh <= 0.0) {
      return false;
    }
    var normy0 = (y - y) / ellh - 0.5;
    var nearx;
    var normx1 = normx0 + w / ellw;
    var tmp;
    if (normx0 > 0.0) {
      tmp = normx0;
    } else if (normx1 < 0.0) {
      tmp = normx1;
    } else {
      tmp = 0.0;
    }
    nearx = tmp;
    var neary;
    var normy1 = normy0 + h / ellh;
    var tmp_0;
    if (normy0 > 0.0) {
      tmp_0 = normy0;
    } else if (normy1 < 0.0) {
      tmp_0 = normy1;
    } else {
      tmp_0 = 0.0;
    }
    neary = tmp_0;
    return nearx * nearx + neary * neary < 0.25;
  }
  k1h() {
    return this.y1q_1 + this.a1r_1 / 2.0;
  }
  m1h() {
    return this.z1q_1 + this.b1r_1 / 2.0;
  }
  n1h() {
    return this.o1h(null);
  }
  o1h(at) {
    return new EllipseIterator(this, at);
  }
  toString() {
    return 'Ellipse2D.Double{x=' + this.y1q_1 + ', y=' + this.z1q_1 + ', width=' + this.a1r_1 + ', height=' + this.b1r_1 + toString(_Char___init__impl__6a9atx(125));
  }
}
class Companion_42 {
  constructor() {
    Companion_instance_42 = this;
    this.c1r_1 = 0.5522847498307933;
    this.d1r_1 = 0.7761423749153966;
    this.e1r_1 = 0.22385762508460333;
    var tmp = this;
    // Inline function 'kotlin.doubleArrayOf' call
    var tmp_0 = new Float64Array([1.0, 0.7761423749153966, 0.7761423749153966, 1.0, 0.5, 1.0]);
    // Inline function 'kotlin.doubleArrayOf' call
    var tmp_1 = new Float64Array([0.22385762508460333, 1.0, 0.0, 0.7761423749153966, 0.0, 0.5]);
    // Inline function 'kotlin.doubleArrayOf' call
    var tmp_2 = new Float64Array([0.0, 0.22385762508460333, 0.22385762508460333, 0.0, 0.5, 0.0]);
    // Inline function 'kotlin.doubleArrayOf' call
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    tmp.f1r_1 = [tmp_0, tmp_1, tmp_2, new Float64Array([0.7761423749153966, 0.0, 1.0, 0.22385762508460333, 1.0, 0.5])];
  }
}
class EllipseIterator {
  constructor(e, at) {
    Companion_getInstance_42();
    this.l1r_1 = 0;
    this.g1r_1 = e.g1h();
    this.h1r_1 = e.h1h();
    this.i1r_1 = e.gm();
    this.j1r_1 = e.hm();
    this.k1r_1 = at;
    if (this.i1r_1 < 0 || this.j1r_1 < 0) {
      this.l1r_1 = 6;
    }
  }
  q1l() {
    return 1;
  }
  m17() {
    return this.l1r_1 > 5;
  }
  r1l() {
    this.l1r_1 = this.l1r_1 + 1 | 0;
  }
  s1l(coords) {
    if (this.m17()) {
      throw NoSuchElementException.g1('ellipse iterator out of bounds');
    }
    if (this.l1r_1 === 5) {
      return 4;
    }
    if (this.l1r_1 === 0) {
      var ctrls = Companion_getInstance_42().f1r_1[3];
      coords[0] = this.g1r_1 + ctrls[4] * this.i1r_1;
      coords[1] = this.h1r_1 + ctrls[5] * this.j1r_1;
      var tmp0_safe_receiver = this.k1r_1;
      if (tmp0_safe_receiver == null)
        null;
      else {
        tmp0_safe_receiver.b1k(coords, 0, coords, 0, 1);
      }
      return 0;
    }
    var ctrls_0 = Companion_getInstance_42().f1r_1[this.l1r_1 - 1 | 0];
    coords[0] = this.g1r_1 + ctrls_0[0] * this.i1r_1;
    coords[1] = this.h1r_1 + ctrls_0[1] * this.j1r_1;
    coords[2] = this.g1r_1 + ctrls_0[2] * this.i1r_1;
    coords[3] = this.h1r_1 + ctrls_0[3] * this.j1r_1;
    coords[4] = this.g1r_1 + ctrls_0[4] * this.i1r_1;
    coords[5] = this.h1r_1 + ctrls_0[5] * this.j1r_1;
    var tmp1_safe_receiver = this.k1r_1;
    if (tmp1_safe_receiver == null)
      null;
    else {
      tmp1_safe_receiver.b1k(coords, 0, coords, 0, 3);
    }
    return 3;
  }
}
class Companion_43 {
  z1k(x1, y1, x2, y2, px, py) {
    var x2_0 = x2;
    var y2_0 = y2;
    var px_0 = px;
    var py_0 = py;
    x2_0 = x2_0 - x1;
    y2_0 = y2_0 - y1;
    px_0 = px_0 - x1;
    py_0 = py_0 - y1;
    var ccw = px_0 * y2_0 - py_0 * x2_0;
    if (ccw === 0.0) {
      ccw = px_0 * x2_0 + py_0 * y2_0;
      if (ccw > 0.0) {
        px_0 = px_0 - x2_0;
        py_0 = py_0 - y2_0;
        ccw = px_0 * x2_0 + py_0 * y2_0;
        if (ccw < 0.0) {
          ccw = 0.0;
        }
      }
    }
    return ccw < 0.0 ? -1 : ccw > 0.0 ? 1 : 0;
  }
}
class Order0 extends Curve {
  constructor(x, y) {
    super(1);
    this.n1r_1 = x;
    this.o1r_1 = y;
  }
  o1m() {
    return 0;
  }
  g1m() {
    return this.n1r_1;
  }
  h1m() {
    return this.o1r_1;
  }
  p1m() {
    return this.n1r_1;
  }
  q1m() {
    return this.o1r_1;
  }
  p1n() {
    return this.n1r_1;
  }
  o1n() {
    return this.o1r_1;
  }
  a1o() {
    return this.o1r_1;
  }
  m1q() {
    return this.n1r_1;
  }
  l1q() {
    return this.n1r_1;
  }
  i1q() {
    return this;
  }
  k1q(t) {
    return this.o1r_1;
  }
  v1m(x, y) {
    return 0;
  }
  n1q(y) {
    return y;
  }
  v1p(c) {
    return this.n1r_1 > c.y1m_1 && this.n1r_1 < c.a1n_1 && this.o1r_1 > c.z1m_1 && this.o1r_1 < c.b1n_1;
  }
  o1q(y) {
    return 0.0;
  }
  p1q(t) {
    return this.n1r_1;
  }
  i1m(r) {
    return r.d1i(this.n1r_1, this.o1r_1);
  }
  q1q(t0, t1) {
    return t1;
  }
  r1q(ystart, yend, dir) {
    return this;
  }
  r1m(coords) {
    coords[0] = this.n1r_1;
    coords[1] = this.o1r_1;
    return 0;
  }
}
class Order1 extends Curve {
  constructor(xTop, yTop, xBot, yBot, direction) {
    super(direction);
    this.q1r_1 = xTop;
    this.r1r_1 = yTop;
    this.s1r_1 = xBot;
    this.t1r_1 = yBot;
    this.u1r_1 = 0.0;
    this.v1r_1 = 0.0;
    if (this.q1r_1 < this.s1r_1) {
      this.u1r_1 = this.q1r_1;
      this.v1r_1 = this.s1r_1;
    } else {
      this.u1r_1 = this.s1r_1;
      this.v1r_1 = this.q1r_1;
    }
  }
  p1n() {
    return this.q1r_1;
  }
  o1n() {
    return this.r1r_1;
  }
  a1o() {
    return this.t1r_1;
  }
  m1q() {
    return this.u1r_1;
  }
  l1q() {
    return this.v1r_1;
  }
  i1q() {
    return new Order1(this.q1r_1, this.r1r_1, this.s1r_1, this.t1r_1, -this.f1m_1 | 0);
  }
  o1m() {
    return 1;
  }
  g1m() {
    return this.f1m_1 === 1 ? this.q1r_1 : this.s1r_1;
  }
  h1m() {
    return this.f1m_1 === 1 ? this.r1r_1 : this.t1r_1;
  }
  p1m() {
    return this.f1m_1 === -1 ? this.q1r_1 : this.s1r_1;
  }
  q1m() {
    return this.f1m_1 === -1 ? this.r1r_1 : this.t1r_1;
  }
  k1q(t) {
    return this.r1r_1 + t * (this.t1r_1 - this.r1r_1);
  }
  n1q(y) {
    if (this.q1r_1 === this.s1r_1 || y <= this.r1r_1) {
      return this.q1r_1;
    }
    var tmp;
    if (y >= this.t1r_1) {
      tmp = this.s1r_1;
    } else {
      tmp = this.q1r_1 + (y - this.r1r_1) * (this.s1r_1 - this.q1r_1) / (this.t1r_1 - this.r1r_1);
    }
    return tmp;
  }
  v1p(c) {
    var xlo = c.y1m_1;
    var ylo = c.z1m_1;
    var xhi = c.a1n_1;
    var yhi = c.b1n_1;
    if (this.u1r_1 >= xhi) {
      return false;
    }
    var xstart;
    var ystart;
    if (this.r1r_1 < ylo) {
      if (this.t1r_1 <= ylo) {
        return false;
      }
      ystart = ylo;
      xstart = this.n1q(ylo);
    } else {
      if (this.r1r_1 >= yhi) {
        return false;
      }
      ystart = this.r1r_1;
      xstart = this.q1r_1;
    }
    var yend;
    var xend;
    if (this.t1r_1 > yhi) {
      yend = yhi;
      xend = this.n1q(yhi);
    } else {
      yend = this.t1r_1;
      xend = this.s1r_1;
    }
    if (xstart >= xhi && xend >= xhi) {
      return false;
    }
    if (xstart > xlo || xend > xlo) {
      return true;
    }
    c.t1p(ystart, yend, this.f1m_1);
    return false;
  }
  o1q(y) {
    if (y <= this.r1r_1) {
      return 0.0;
    }
    var tmp;
    if (y >= this.t1r_1) {
      tmp = 1.0;
    } else {
      tmp = (y - this.r1r_1) / (this.t1r_1 - this.r1r_1);
    }
    return tmp;
  }
  p1q(t) {
    return this.q1r_1 + t * (this.s1r_1 - this.q1r_1);
  }
  i1m(r) {
    var r_0 = r;
    r_0 = r_0.d1i(this.q1r_1, this.r1r_1);
    return r_0.d1i(this.s1r_1, this.t1r_1);
  }
  q1q(t0, t1) {
    return t1;
  }
  r1q(ystart, yend, dir) {
    if (ystart === this.r1r_1 && yend === this.t1r_1) {
      return this.h1q(dir);
    }
    if (this.q1r_1 === this.s1r_1) {
      return new Order1(this.q1r_1, ystart, this.s1r_1, yend, dir);
    }
    var num = this.q1r_1 - this.s1r_1;
    var denom = this.r1r_1 - this.t1r_1;
    var xstart = this.q1r_1 + (ystart - this.r1r_1) * num / denom;
    var xend = this.q1r_1 + (yend - this.r1r_1) * num / denom;
    return new Order1(xstart, ystart, xend, yend, dir);
  }
  s1q(other, yrange) {
    if (!(other instanceof Order1)) {
      return super.s1q(other, yrange);
    }
    if (yrange[1] <= yrange[0]) {
      throw UnsupportedOperationException.y8('yrange already screwed up...');
    }
    var tmp0 = yrange[1];
    // Inline function 'kotlin.math.min' call
    var b = this.t1r_1;
    var tmp0_0 = Math.min(tmp0, b);
    // Inline function 'kotlin.math.min' call
    var b_0 = other.t1r_1;
    yrange[1] = Math.min(tmp0_0, b_0);
    if (yrange[1] <= yrange[0]) {
      throw UnsupportedOperationException.y8('backstepping from ' + yrange[0] + ' to ' + yrange[1]);
    }
    if (this.v1r_1 <= other.u1r_1) {
      return this.u1r_1 === other.v1r_1 ? 0 : -1;
    }
    if (this.u1r_1 >= other.v1r_1) {
      return 1;
    }
    var dxa = this.s1r_1 - this.q1r_1;
    var dya = this.t1r_1 - this.r1r_1;
    var dxb = other.s1r_1 - other.q1r_1;
    var dyb = other.t1r_1 - other.r1r_1;
    var denom = dxb * dya - dxa * dyb;
    var y;
    if (!(denom === 0.0)) {
      var num = (this.q1r_1 - other.q1r_1) * dya * dyb - this.r1r_1 * dxa * dyb + other.r1r_1 * dxb * dya;
      y = num / denom;
      if (y <= yrange[0]) {
        var tmp0_1 = this.t1r_1;
        // Inline function 'kotlin.math.min' call
        var b_1 = other.t1r_1;
        y = Math.min(tmp0_1, b_1);
      } else {
        if (y < yrange[1]) {
          yrange[1] = y;
        }
        var tmp0_2 = this.r1r_1;
        // Inline function 'kotlin.math.max' call
        var b_2 = other.r1r_1;
        y = Math.max(tmp0_2, b_2);
      }
    } else {
      var tmp0_3 = this.r1r_1;
      // Inline function 'kotlin.math.max' call
      var b_3 = other.r1r_1;
      y = Math.max(tmp0_3, b_3);
    }
    return Companion_instance_40.e1q(this.n1q(y), other.n1q(y));
  }
  r1m(coords) {
    if (this.f1m_1 === 1) {
      coords[0] = this.s1r_1;
      coords[1] = this.t1r_1;
    } else {
      coords[0] = this.q1r_1;
      coords[1] = this.r1r_1;
    }
    return 1;
  }
}
class Companion_44 {
  w1p(curves, tmp, x0, y0, cx0, cy0, x1, y1, direction) {
    var numparams = this.w1r(y0, cy0, y1, tmp);
    if (numparams === 0) {
      this.x1r(curves, x0, y0, cx0, cy0, x1, y1, direction);
      return Unit_instance;
    }
    var t = tmp[0];
    tmp[0] = x0;
    tmp[1] = y0;
    tmp[2] = cx0;
    tmp[3] = cy0;
    tmp[4] = x1;
    tmp[5] = y1;
    this.y1r(tmp, 0, t);
    var i0 = direction === 1 ? 0 : 4;
    this.x1r(curves, tmp[i0], tmp[i0 + 1 | 0], tmp[i0 + 2 | 0], tmp[i0 + 3 | 0], tmp[i0 + 4 | 0], tmp[i0 + 5 | 0], direction);
    var i1 = 4 - i0 | 0;
    this.x1r(curves, tmp[i1], tmp[i1 + 1 | 0], tmp[i1 + 2 | 0], tmp[i1 + 3 | 0], tmp[i1 + 4 | 0], tmp[i1 + 5 | 0], direction);
  }
  x1r(curves, x0, y0, cx0, cy0, x1, y1, direction) {
    if (y0 > y1) {
      curves.c1(new Order2(x1, y1, cx0, cy0, x0, y0, -direction | 0));
    } else if (y1 > y0) {
      curves.c1(new Order2(x0, y0, cx0, cy0, x1, y1, direction));
    }
  }
  w1r(c0, cp, c1, ret) {
    var c0_0 = c0;
    var c1_0 = c1;
    if (c0_0 <= cp && cp <= c1_0) {
      return 0;
    }
    c0_0 = c0_0 - cp;
    c1_0 = c1_0 - cp;
    var denom = c0_0 + c1_0;
    if (denom === 0.0) {
      return 0;
    }
    var t = c0_0 / denom;
    if (t <= 0 || t >= 1) {
      return 0;
    }
    ret[0] = t;
    return 1;
  }
  y1r(coords, pos, t) {
    var x1;
    x1 = coords[pos + 4 | 0];
    coords[pos + 8 | 0] = x1;
    var y1;
    y1 = coords[pos + 5 | 0];
    coords[pos + 9 | 0] = y1;
    var cx = coords[pos + 2 | 0];
    var cy = coords[pos + 3 | 0];
    x1 = cx + (x1 - cx) * t;
    y1 = cy + (y1 - cy) * t;
    var x0 = coords[pos + 0 | 0];
    var y0 = coords[pos + 1 | 0];
    x0 = x0 + (cx - x0) * t;
    y0 = y0 + (cy - y0) * t;
    cx = x0 + (x1 - x0) * t;
    cy = y0 + (y1 - y0) * t;
    coords[pos + 2 | 0] = x0;
    coords[pos + 3 | 0] = y0;
    coords[pos + 4 | 0] = cx;
    coords[pos + 5 | 0] = cy;
    coords[pos + 6 | 0] = x1;
    coords[pos + 7 | 0] = y1;
  }
  z1r(y, ycoeff0, ycoeff1, ycoeff2) {
    var ycoeff0_0 = ycoeff0;
    ycoeff0_0 = ycoeff0_0 - y;
    if (ycoeff2 === 0.0) {
      var root = -ycoeff0_0 / ycoeff1;
      if (root >= 0 && root <= 1) {
        return root;
      }
    } else {
      var d = ycoeff1 * ycoeff1 - 4.0 * ycoeff2 * ycoeff0_0;
      if (d >= 0.0) {
        // Inline function 'kotlin.math.sqrt' call
        var x = d;
        d = Math.sqrt(x);
        if (ycoeff1 < 0.0) {
          d = -d;
        }
        var q = (ycoeff1 + d) / -2.0;
        var root_0 = q / ycoeff2;
        if (root_0 >= 0 && root_0 <= 1) {
          return root_0;
        }
        if (!(q === 0.0)) {
          root_0 = ycoeff0_0 / q;
          if (root_0 >= 0 && root_0 <= 1) {
            return root_0;
          }
        }
      }
    }
    var y0 = ycoeff0_0;
    var y1 = ycoeff0_0 + ycoeff1 + ycoeff2;
    return 0 < (y0 + y1) / 2 ? 0.0 : 1.0;
  }
}
class Order2 extends Curve {
  constructor(x0, y0, cx0, cy0, x1, y1, direction) {
    super(direction);
    var cy0_0 = cy0;
    if (cy0_0 < y0) {
      cy0_0 = y0;
    } else if (cy0_0 > y1) {
      cy0_0 = y1;
    }
    this.b1s_1 = x0;
    this.c1s_1 = y0;
    this.d1s_1 = cx0;
    this.e1s_1 = cy0_0;
    this.f1s_1 = x1;
    this.g1s_1 = y1;
    var tmp = this;
    // Inline function 'kotlin.math.min' call
    // Inline function 'kotlin.math.min' call
    var a = Math.min(x0, x1);
    tmp.h1s_1 = Math.min(a, cx0);
    var tmp_0 = this;
    // Inline function 'kotlin.math.max' call
    // Inline function 'kotlin.math.max' call
    var a_0 = Math.max(x0, x1);
    tmp_0.i1s_1 = Math.max(a_0, cx0);
    this.j1s_1 = x0;
    this.k1s_1 = cx0 + cx0 - x0 - x0;
    this.l1s_1 = x0 - cx0 - cx0 + x1;
    this.m1s_1 = y0;
    this.n1s_1 = cy0_0 + cy0_0 - y0 - y0;
    this.o1s_1 = y0 - cy0_0 - cy0_0 + y1;
  }
  p1n() {
    return this.b1s_1;
  }
  o1n() {
    return this.c1s_1;
  }
  a1o() {
    return this.g1s_1;
  }
  m1q() {
    return this.h1s_1;
  }
  l1q() {
    return this.i1s_1;
  }
  i1q() {
    return new Order2(this.b1s_1, this.c1s_1, this.d1s_1, this.e1s_1, this.f1s_1, this.g1s_1, -this.f1m_1 | 0);
  }
  j1q() {
    return '(' + Companion_instance_40.g1q(this.d1s_1).toString() + ', ' + Companion_instance_40.g1q(this.e1s_1).toString() + '), ';
  }
  o1m() {
    return 2;
  }
  g1m() {
    return this.f1m_1 === 1 ? this.b1s_1 : this.f1s_1;
  }
  h1m() {
    return this.f1m_1 === 1 ? this.c1s_1 : this.g1s_1;
  }
  p1m() {
    return this.f1m_1 === -1 ? this.b1s_1 : this.f1s_1;
  }
  q1m() {
    return this.f1m_1 === -1 ? this.c1s_1 : this.g1s_1;
  }
  k1q(t) {
    return (this.o1s_1 * t + this.n1s_1) * t + this.m1s_1;
  }
  n1q(y) {
    if (y <= this.c1s_1) {
      return this.b1s_1;
    }
    var tmp;
    if (y >= this.g1s_1) {
      tmp = this.f1s_1;
    } else {
      tmp = this.p1q(this.o1q(y));
    }
    return tmp;
  }
  o1q(y) {
    if (y <= this.c1s_1) {
      return 0.0;
    }
    var tmp;
    if (y >= this.g1s_1) {
      tmp = 1.0;
    } else {
      tmp = Companion_instance_44.z1r(y, this.m1s_1, this.n1s_1, this.o1s_1);
    }
    return tmp;
  }
  i1m(r) {
    var r_0 = r;
    r_0 = r_0.d1i(this.b1s_1, this.c1s_1);
    var t = -this.k1s_1 / (2 * this.l1s_1);
    if (t > 0 && t < 1) {
      r_0 = r_0.d1i(this.p1q(t), this.k1q(t));
    }
    return r_0.d1i(this.f1s_1, this.g1s_1);
  }
  p1q(t) {
    return (this.l1s_1 * t + this.k1s_1) * t + this.j1s_1;
  }
  q1q(t0, t1) {
    var t = -this.k1s_1 / (2 * this.l1s_1);
    var tmp;
    if (t > t0 && t < t1) {
      tmp = t;
    } else {
      tmp = t1;
    }
    return tmp;
  }
  r1q(ystart, yend, dir) {
    var t0;
    var tmp;
    if (ystart <= this.c1s_1) {
      if (yend >= this.g1s_1) {
        return this.h1q(dir);
      }
      tmp = 0.0;
    } else {
      tmp = Companion_instance_44.z1r(ystart, this.m1s_1, this.n1s_1, this.o1s_1);
    }
    t0 = tmp;
    var t1;
    var tmp_0;
    if (yend >= this.g1s_1) {
      tmp_0 = 1.0;
    } else {
      tmp_0 = Companion_instance_44.z1r(yend, this.m1s_1, this.n1s_1, this.o1s_1);
    }
    t1 = tmp_0;
    var eqn = new Float64Array(10);
    eqn[0] = this.b1s_1;
    eqn[1] = this.c1s_1;
    eqn[2] = this.d1s_1;
    eqn[3] = this.e1s_1;
    eqn[4] = this.f1s_1;
    eqn[5] = this.g1s_1;
    if (t1 < 1) {
      Companion_instance_44.y1r(eqn, 0, t1);
    }
    var i;
    var tmp_1;
    if (t0 <= 0) {
      tmp_1 = 0;
    } else {
      Companion_instance_44.y1r(eqn, 0, t0 / t1);
      tmp_1 = 4;
    }
    i = tmp_1;
    return new Order2(eqn[i + 0 | 0], ystart, eqn[i + 2 | 0], eqn[i + 3 | 0], eqn[i + 4 | 0], yend, dir);
  }
  r1m(coords) {
    coords[0] = this.d1s_1;
    coords[1] = this.e1s_1;
    if (this.f1m_1 === 1) {
      coords[2] = this.f1s_1;
      coords[3] = this.g1s_1;
    } else {
      coords[2] = this.b1s_1;
      coords[3] = this.c1s_1;
    }
    return 2;
  }
}
class Companion_45 {
  x1p(curves, tmp, x0, y0, cx0, cy0, cx1, cy1, x1, y1, direction) {
    var numparams = this.p1s(y0, cy0, cy1, y1, tmp);
    if (numparams === 0) {
      this.q1s(curves, x0, y0, cx0, cy0, cx1, cy1, x1, y1, direction);
      return Unit_instance;
    }
    tmp[3] = x0;
    tmp[4] = y0;
    tmp[5] = cx0;
    tmp[6] = cy0;
    tmp[7] = cx1;
    tmp[8] = cy1;
    tmp[9] = x1;
    tmp[10] = y1;
    var t = tmp[0];
    if (numparams > 1 && t > tmp[1]) {
      tmp[0] = tmp[1];
      tmp[1] = t;
      t = tmp[0];
    }
    this.y1r(tmp, 3, t);
    if (numparams > 1) {
      t = (tmp[1] - t) / (1 - t);
      this.y1r(tmp, 9, t);
    }
    var index = 3;
    if (direction === -1) {
      index = index + imul_0(numparams, 6) | 0;
    }
    while (numparams >= 0) {
      this.q1s(curves, tmp[index + 0 | 0], tmp[index + 1 | 0], tmp[index + 2 | 0], tmp[index + 3 | 0], tmp[index + 4 | 0], tmp[index + 5 | 0], tmp[index + 6 | 0], tmp[index + 7 | 0], direction);
      numparams = numparams - 1 | 0;
      if (direction === 1) {
        index = index + 6 | 0;
      } else {
        index = index - 6 | 0;
      }
    }
  }
  q1s(curves, x0, y0, cx0, cy0, cx1, cy1, x1, y1, direction) {
    if (y0 > y1) {
      curves.c1(new Order3(x1, y1, cx1, cy1, cx0, cy0, x0, y0, -direction | 0));
    } else if (y1 > y0) {
      curves.c1(new Order3(x0, y0, cx0, cy0, cx1, cy1, x1, y1, direction));
    }
  }
  p1s(c0, cp0, cp1, c1, ret) {
    var cp0_0 = cp0;
    var cp1_0 = cp1;
    var c1_0 = c1;
    if (c0 <= cp0_0 && cp0_0 <= cp1_0 && cp1_0 <= c1_0) {
      return 0;
    }
    c1_0 = c1_0 - cp1_0;
    cp1_0 = cp1_0 - cp0_0;
    cp0_0 = cp0_0 - c0;
    ret[0] = cp0_0;
    ret[1] = (cp1_0 - cp0_0) * 2;
    ret[2] = c1_0 - cp1_0 - cp1_0 + cp0_0;
    var numroots = Companion_instance_48.w1s(ret, ret);
    var j = 0;
    var inductionVariable = 0;
    if (inductionVariable < numroots)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        var t = ret[i];
        if (t > 0 && t < 1) {
          if (j < i) {
            ret[j] = t;
          }
          j = j + 1 | 0;
        }
      }
       while (inductionVariable < numroots);
    return j;
  }
  y1r(coords, pos, t) {
    var x1;
    x1 = coords[pos + 6 | 0];
    coords[pos + 12 | 0] = x1;
    var y1;
    y1 = coords[pos + 7 | 0];
    coords[pos + 13 | 0] = y1;
    var cx1 = coords[pos + 4 | 0];
    var cy1 = coords[pos + 5 | 0];
    x1 = cx1 + (x1 - cx1) * t;
    y1 = cy1 + (y1 - cy1) * t;
    var x0 = coords[pos + 0 | 0];
    var y0 = coords[pos + 1 | 0];
    var cx0 = coords[pos + 2 | 0];
    var cy0 = coords[pos + 3 | 0];
    x0 = x0 + (cx0 - x0) * t;
    y0 = y0 + (cy0 - y0) * t;
    cx0 = cx0 + (cx1 - cx0) * t;
    cy0 = cy0 + (cy1 - cy0) * t;
    cx1 = cx0 + (x1 - cx0) * t;
    cy1 = cy0 + (y1 - cy0) * t;
    cx0 = x0 + (cx0 - x0) * t;
    cy0 = y0 + (cy0 - y0) * t;
    coords[pos + 2 | 0] = x0;
    coords[pos + 3 | 0] = y0;
    coords[pos + 4 | 0] = cx0;
    coords[pos + 5 | 0] = cy0;
    coords[pos + 6 | 0] = cx0 + (cx1 - cx0) * t;
    coords[pos + 7 | 0] = cy0 + (cy1 - cy0) * t;
    coords[pos + 8 | 0] = cx1;
    coords[pos + 9 | 0] = cy1;
    coords[pos + 10 | 0] = x1;
    coords[pos + 11 | 0] = y1;
  }
}
class Order3 extends Curve {
  constructor(x0, y0, cx0, cy0, cx1, cy1, x1, y1, direction) {
    super(direction);
    this.q1t_1 = 0.0;
    this.s1t_1 = 0.0;
    this.u1t_1 = 0.0;
    var cy0_0 = cy0;
    var cy1_0 = cy1;
    if (cy0_0 < y0)
      cy0_0 = y0;
    if (cy1_0 > y1)
      cy1_0 = y1;
    this.y1s_1 = x0;
    this.z1s_1 = y0;
    this.a1t_1 = cx0;
    this.b1t_1 = cy0_0;
    this.c1t_1 = cx1;
    this.d1t_1 = cy1_0;
    this.e1t_1 = x1;
    this.f1t_1 = y1;
    var tmp = this;
    // Inline function 'kotlin.math.min' call
    var tmp0 = Math.min(x0, x1);
    // Inline function 'kotlin.math.min' call
    // Inline function 'kotlin.math.min' call
    var b = Math.min(cx0, cx1);
    tmp.g1t_1 = Math.min(tmp0, b);
    var tmp_0 = this;
    // Inline function 'kotlin.math.max' call
    var tmp0_0 = Math.max(x0, x1);
    // Inline function 'kotlin.math.max' call
    // Inline function 'kotlin.math.max' call
    var b_0 = Math.max(cx0, cx1);
    tmp_0.h1t_1 = Math.max(tmp0_0, b_0);
    this.i1t_1 = x0;
    this.j1t_1 = (cx0 - x0) * 3.0;
    this.k1t_1 = (cx1 - cx0 - cx0 + x0) * 3.0;
    this.l1t_1 = x1 - (cx1 - cx0) * 3.0 - x0;
    this.m1t_1 = y0;
    this.n1t_1 = (cy0_0 - y0) * 3.0;
    this.o1t_1 = (cy1_0 - cy0_0 - cy0_0 + y0) * 3.0;
    this.p1t_1 = y1 - (cy1_0 - cy0_0) * 3.0 - y0;
    this.v1t_1 = y0;
    this.t1t_1 = this.v1t_1;
    this.r1t_1 = this.t1t_1;
  }
  p1n() {
    return this.y1s_1;
  }
  o1n() {
    return this.z1s_1;
  }
  a1o() {
    return this.f1t_1;
  }
  m1q() {
    return this.g1t_1;
  }
  l1q() {
    return this.h1t_1;
  }
  i1q() {
    return new Order3(this.y1s_1, this.z1s_1, this.a1t_1, this.b1t_1, this.c1t_1, this.d1t_1, this.e1t_1, this.f1t_1, -this.f1m_1 | 0);
  }
  j1q() {
    return '(' + Companion_instance_40.g1q(this.w1t()).toString() + ', ' + Companion_instance_40.g1q(this.x1t()).toString() + '), ' + ('(' + Companion_instance_40.g1q(this.y1t()).toString() + ', ' + Companion_instance_40.g1q(this.z1t()).toString() + '), ');
  }
  o1m() {
    return 3;
  }
  g1m() {
    return this.f1m_1 === 1 ? this.y1s_1 : this.e1t_1;
  }
  h1m() {
    return this.f1m_1 === 1 ? this.z1s_1 : this.f1t_1;
  }
  p1m() {
    return this.f1m_1 === 1 ? this.z1s_1 : this.f1t_1;
  }
  q1m() {
    return this.f1m_1 === -1 ? this.z1s_1 : this.f1t_1;
  }
  k1q(t) {
    return ((this.p1t_1 * t + this.o1t_1) * t + this.n1t_1) * t + this.m1t_1;
  }
  a1u(t, deriv) {
    switch (deriv) {
      case 0:
        return ((this.p1t_1 * t + this.o1t_1) * t + this.n1t_1) * t + this.m1t_1;
      case 1:
        return (3 * this.p1t_1 * t + 2 * this.o1t_1) * t + this.n1t_1;
      case 2:
        return 6 * this.p1t_1 * t + 2 * this.o1t_1;
      case 3:
        return 6 * this.p1t_1;
      default:
        return 0.0;
    }
  }
  n1q(y) {
    if (y <= this.z1s_1) {
      return this.y1s_1;
    }
    var tmp;
    if (y >= this.f1t_1) {
      tmp = this.e1t_1;
    } else {
      tmp = this.p1q(this.o1q(y));
    }
    return tmp;
  }
  o1q(y) {
    if (y <= this.z1s_1)
      return 0.0;
    if (y >= this.f1t_1)
      return 1.0;
    if (y === this.r1t_1)
      return this.q1t_1;
    if (y === this.t1t_1)
      return this.s1t_1;
    if (y === this.v1t_1)
      return this.u1t_1;
    if (this.p1t_1 === 0.0) {
      return Companion_instance_44.z1r(y, this.m1t_1, this.n1t_1, this.o1t_1);
    }
    var a = this.o1t_1 / this.p1t_1;
    var b = this.n1t_1 / this.p1t_1;
    var c = (this.m1t_1 - y) / this.p1t_1;
    var roots = 0;
    var Q = (a * a - 3.0 * b) / 9.0;
    var R = (2.0 * a * a * a - 9.0 * a * b + 27.0 * c) / 54.0;
    var R2 = R * R;
    var Q3 = Q * Q * Q;
    var a_3 = a / 3.0;
    var t;
    if (R2 < Q3) {
      var tmp = R;
      // Inline function 'kotlin.math.sqrt' call
      // Inline function 'kotlin.math.acos' call
      var x = tmp / Math.sqrt(Q3);
      var theta = Math.acos(x);
      var tmp_0 = -2.0;
      // Inline function 'kotlin.math.sqrt' call
      var x_0 = Q;
      Q = tmp_0 * Math.sqrt(x_0);
      var tmp_1 = Q;
      // Inline function 'kotlin.math.cos' call
      var x_1 = theta / 3.0;
      var tmp$ret$3 = Math.cos(x_1);
      t = this.b1u(a, b, c, y, tmp_1 * tmp$ret$3 - a_3);
      if (t < 0) {
        var tmp_2 = Q;
        // Inline function 'kotlin.math.cos' call
        var x_2 = (theta + 3.141592653589793 * 2.0) / 3.0;
        var tmp$ret$4 = Math.cos(x_2);
        t = this.b1u(a, b, c, y, tmp_2 * tmp$ret$4 - a_3);
      }
      if (t < 0) {
        var tmp_3 = Q;
        // Inline function 'kotlin.math.cos' call
        var x_3 = (theta - 3.141592653589793 * 2.0) / 3.0;
        var tmp$ret$5 = Math.cos(x_3);
        t = this.b1u(a, b, c, y, tmp_3 * tmp$ret$5 - a_3);
      }
    } else {
      var neg = R < 0.0;
      if (neg) {
        R = -R;
      }
      // Inline function 'kotlin.math.sqrt' call
      var x_4 = R2 - Q3;
      var S = Math.sqrt(x_4);
      var tmp0 = R + S;
      // Inline function 'kotlin.math.pow' call
      var x_5 = 1.0 / 3.0;
      var A = Math.pow(tmp0, x_5);
      if (!neg) {
        A = -A;
      }
      var B = A === 0.0 ? 0.0 : Q / A;
      t = this.b1u(a, b, c, y, A + B - a_3);
    }
    if (t < 0) {
      var t0 = 0.0;
      var t1 = 1.0;
      $l$loop_0: while (true) {
        t = (t0 + t1) / 2;
        if (t === t0 || t === t1) {
          break $l$loop_0;
        }
        var yt = this.k1q(t);
        if (yt < y) {
          t0 = t;
        } else if (yt > y) {
          t1 = t;
        } else {
          break $l$loop_0;
        }
      }
    }
    if (t >= 0) {
      this.u1t_1 = this.s1t_1;
      this.v1t_1 = this.t1t_1;
      this.s1t_1 = this.q1t_1;
      this.t1t_1 = this.r1t_1;
      this.q1t_1 = t;
      this.r1t_1 = y;
    }
    return t;
  }
  b1u(a, b, c, target, t) {
    var t_0 = t;
    if (t_0 < -0.1 || t_0 > 1.1) {
      return -1;
    }
    var y = this.k1q(t_0);
    var t0;
    var t1;
    if (y < target) {
      t0 = t_0;
      t1 = 1.0;
    } else {
      t0 = 0.0;
      t1 = t_0;
    }
    var origt = t_0;
    var origy = y;
    var useslope = true;
    $l$loop_2: while (!(y === target)) {
      if (!useslope) {
        var t2 = (t0 + t1) / 2;
        if (t2 === t0 || t2 === t1) {
          break $l$loop_2;
        }
        t_0 = t2;
      } else {
        var slope = this.a1u(t_0, 1);
        if (slope === 0.0) {
          useslope = false;
          continue $l$loop_2;
        }
        var t2_0 = t_0 + (target - y) / slope;
        if (t2_0 === t_0 || t2_0 <= t0 || t2_0 >= t1) {
          useslope = false;
          continue $l$loop_2;
        }
        t_0 = t2_0;
      }
      y = this.k1q(t_0);
      if (y < target) {
        t0 = t_0;
      } else if (y > target) {
        t1 = t_0;
      } else {
        break $l$loop_2;
      }
    }
    if (false && t_0 >= 0 && t_0 <= 1) {
      y = this.k1q(t_0);
      var tdiff = Companion_instance_40.f1q(t_0, origt);
      var ydiff = Companion_instance_40.f1q(y, origy);
      var yerr = Companion_instance_40.f1q(y, target);
      var verbose = false;
    }
    return t_0 > 1 ? -1.0 : t_0;
  }
  p1q(t) {
    return ((this.l1t_1 * t + this.k1t_1) * t + this.j1t_1) * t + this.i1t_1;
  }
  q1q(t0, t1) {
    var t1_0 = t1;
    // Inline function 'kotlin.doubleArrayOf' call
    var eqn = new Float64Array([this.j1t_1, 2 * this.k1t_1, 3 * this.l1t_1]);
    var numroots = Companion_instance_48.w1s(eqn, eqn);
    var inductionVariable = 0;
    if (inductionVariable < numroots)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        if (eqn[i] > t0 && eqn[i] < t1_0) {
          t1_0 = eqn[i];
        }
      }
       while (inductionVariable < numroots);
    return t1_0;
  }
  r1q(ystart, yend, dir) {
    if (ystart <= this.z1s_1 && yend >= this.f1t_1) {
      return this.h1q(dir);
    }
    var t0 = this.o1q(ystart);
    var t1 = this.o1q(yend);
    var eqn = new Float64Array(14);
    eqn[0] = this.y1s_1;
    eqn[1] = this.z1s_1;
    eqn[2] = this.a1t_1;
    eqn[3] = this.b1t_1;
    eqn[4] = this.c1t_1;
    eqn[5] = this.d1t_1;
    eqn[6] = this.e1t_1;
    eqn[7] = this.f1t_1;
    if (t0 > t1) {
      var t = t0;
      t0 = t1;
      t1 = t;
    }
    if (t1 < 1) {
      Companion_instance_45.y1r(eqn, 0, t1);
    }
    var i;
    var tmp;
    if (t0 <= 0) {
      tmp = 0;
    } else {
      Companion_instance_45.y1r(eqn, 0, t0 / t1);
      tmp = 6;
    }
    i = tmp;
    return new Order3(eqn[i + 0 | 0], ystart, eqn[i + 2 | 0], eqn[i + 3 | 0], eqn[i + 4 | 0], eqn[i + 5 | 0], eqn[i + 6 | 0], yend, dir);
  }
  r1m(coords) {
    if (this.f1m_1 === 1) {
      coords[0] = this.a1t_1;
      coords[1] = this.b1t_1;
      coords[2] = this.c1t_1;
      coords[3] = this.d1t_1;
      coords[4] = this.e1t_1;
      coords[5] = this.f1t_1;
    } else {
      coords[0] = this.c1t_1;
      coords[1] = this.d1t_1;
      coords[2] = this.a1t_1;
      coords[3] = this.b1t_1;
      coords[4] = this.y1s_1;
      coords[5] = this.z1s_1;
    }
    return 3;
  }
  i1m(r) {
    var r_0 = r;
    r_0 = r_0.d1i(this.y1s_1, this.z1s_1);
    // Inline function 'kotlin.doubleArrayOf' call
    var eqn = new Float64Array([this.j1t_1, 2 * this.k1t_1, 3 * this.l1t_1]);
    var numroots = Companion_instance_48.w1s(eqn, eqn);
    var inductionVariable = 0;
    if (inductionVariable < numroots)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        var t = eqn[i];
        if (t > 0 && t < 1) {
          r_0 = r_0.d1i(this.p1q(t), this.k1q(t));
        }
      }
       while (inductionVariable < numroots);
    return r_0.d1i(this.e1t_1, this.f1t_1);
  }
  w1t() {
    return this.f1m_1 === 1 ? this.a1t_1 : this.c1t_1;
  }
  x1t() {
    return this.f1m_1 === 1 ? this.b1t_1 : this.d1t_1;
  }
  y1t() {
    return this.f1m_1 === -1 ? this.a1t_1 : this.c1t_1;
  }
  z1t() {
    return this.f1m_1 === -1 ? this.b1t_1 : this.d1t_1;
  }
}
class Iterator {
  constructor(path) {
    Companion_getInstance_46();
    this.k1u_1 = path;
    this.l1u_1 = 0;
    this.m1u_1 = 0;
  }
  q1l() {
    return this.k1u_1.j1u_1;
  }
  m17() {
    return this.l1u_1 >= this.k1u_1.h1u_1;
  }
  r1l() {
    var tmp = this.k1u_1.g1u_1;
    var _unary__edvuaz = this.l1u_1;
    this.l1u_1 = _unary__edvuaz + 1 | 0;
    var type = tmp[_unary__edvuaz];
    this.m1u_1 = this.m1u_1 + Companion_getInstance_46().n1u_1[type] | 0;
  }
}
class CopyIterator extends Iterator {
  constructor(p2dd) {
    super(p2dd);
    this.f1u_1 = p2dd.h1k_1;
  }
  s1l(coords) {
    var type = this.k1u_1.g1u_1[this.l1u_1];
    var numCoords = Companion_getInstance_46().n1u_1[type];
    if (numCoords > 0) {
      var inductionVariable = 0;
      if (inductionVariable < numCoords)
        do {
          var i = inductionVariable;
          inductionVariable = inductionVariable + 1 | 0;
          coords[i] = this.f1u_1[this.m1u_1 + i | 0];
        }
         while (inductionVariable < numCoords);
    }
    return type;
  }
}
class TxIterator extends Iterator {
  constructor(p2dd, at) {
    super(p2dd);
    this.r1u_1 = p2dd.h1k_1;
    this.s1u_1 = at;
  }
  s1l(coords) {
    var type = this.k1u_1.g1u_1[this.l1u_1];
    var numCoords = Companion_getInstance_46().n1u_1[type];
    if (numCoords > 0) {
      this.s1u_1.b1k(this.r1u_1, this.m1u_1, coords, 0, numCoords / 2 | 0);
    }
    return type;
  }
}
class Companion_46 {
  constructor() {
    Companion_instance_46 = this;
    var tmp = this;
    // Inline function 'kotlin.intArrayOf' call
    tmp.n1u_1 = new Int32Array([2, 2, 4, 6, 0]);
  }
}
class Path2D {
  static v1u() {
    var $this = createThis(this);
    init_org_mkui_geom_Path2D($this);
    $this.g1u_1 = new Int8Array(0);
    return $this;
  }
  static u1u(rule, initialTypes) {
    var $this = createThis(this);
    init_org_mkui_geom_Path2D($this);
    $this.j1u_1 = rule;
    $this.g1u_1 = new Int8Array(initialTypes);
    return $this;
  }
  q1v() {
    if (this.h1u_1 === 0 || !(this.g1u_1[this.h1u_1 - 1 | 0] === 4)) {
      this.j1v(true, 0);
      var tmp = this.g1u_1;
      var _unary__edvuaz = this.h1u_1;
      this.h1u_1 = _unary__edvuaz + 1 | 0;
      tmp[_unary__edvuaz] = 4;
    }
  }
  j1h(point) {
    return this.f1i(point.g1h(), point.h1h());
  }
  f1i(x, y) {
    var tmp;
    if (x * 0.0 + y * 0.0 === 0.0) {
      if (this.h1u_1 < 2) {
        return false;
      }
      var mask = this.j1u_1 === 1 ? -1 : 1;
      tmp = !((this.k1v(x, y) & mask) === 0);
    } else {
      tmp = false;
    }
    return tmp;
  }
  l1h(rect) {
    return this.e1i(rect.g1h(), rect.h1h(), rect.gm(), rect.hm());
  }
  e1i(x, y, w, h) {
    if (isNaN_0(x + w) || isNaN_0(y + h)) {
      return false;
    }
    if (w <= 0 || h <= 0) {
      return false;
    }
    var mask = this.j1u_1 === 1 ? -1 : 2;
    var crossings = this.l1v(x, y, x + w, y + h);
    return crossings === -2147483648 || !((crossings & mask) === 0);
  }
}
class Double_1 extends Path2D {
  static t1u(rule, initialCapacity) {
    rule = rule === VOID ? 1 : rule;
    initialCapacity = initialCapacity === VOID ? 20 : initialCapacity;
    var $this = this.u1u(rule, initialCapacity);
    init_org_mkui_geom_Path2D_Double($this);
    $this.h1k_1 = new Float64Array(imul_0(initialCapacity, 2));
    return $this;
  }
  static i1k(s, at) {
    var $this = this.v1u();
    init_org_mkui_geom_Path2D_Double($this);
    if (s instanceof Path2D) {
      $this.j1u_1 = s.j1u_1;
      $this.h1u_1 = s.h1u_1;
      $this.g1u_1 = Companion_instance_47.g1v(s.g1u_1, s.h1u_1);
      $this.i1u_1 = s.i1u_1;
      $this.h1k_1 = s.h1v(at);
    } else {
      var pi = s.o1h(at);
      $this.j1u_1 = pi.q1l();
      $this.g1u_1 = new Int8Array(20);
      $this.h1k_1 = new Float64Array(40);
      $this.w1u(pi, false);
    }
    return $this;
  }
  h1v(at) {
    var ret;
    if (at == null) {
      ret = Companion_instance_47.i1v(this.h1k_1, this.i1u_1);
    } else {
      ret = new Float64Array(this.i1u_1);
      at.b1k(this.h1k_1, 0, ret, 0, this.i1u_1 / 2 | 0);
    }
    return ret;
  }
  j1v(needMove, newCoords) {
    // Inline function 'kotlin.check' call
    if (!!(needMove && this.h1u_1 === 0)) {
      var message = 'missing initial moveto in path definition';
      throw IllegalStateException.w3(toString_1(message));
    }
    var size = this.g1u_1.length;
    if (this.h1u_1 >= size) {
      var grow = size;
      if (grow > 500) {
        grow = 500;
      }
      this.g1u_1 = Companion_instance_47.g1v(this.g1u_1, size + grow | 0);
    }
    size = this.h1k_1.length;
    if ((this.i1u_1 + newCoords | 0) > size) {
      var grow_0 = size;
      if (grow_0 > 1000) {
        grow_0 = 1000;
      }
      if (grow_0 < newCoords) {
        grow_0 = newCoords;
      }
      this.h1k_1 = Companion_instance_47.i1v(this.h1k_1, size + grow_0 | 0);
    }
  }
  k1v(px, py) {
    if (this.h1u_1 === 0) {
      return 0;
    }
    var movx;
    var coords = this.h1k_1;
    movx = coords[0];
    var curx = movx;
    var movy;
    movy = coords[1];
    var cury = movy;
    var crossings = 0;
    var ci = 2;
    var inductionVariable = 1;
    var last = this.h1u_1;
    if (inductionVariable < last)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        var endy;
        var endx;
        var tmp0_subject = this.g1u_1[i];
        if (tmp0_subject === 0) {
          if (!(cury === movy)) {
            crossings = crossings + Companion_instance_40.y1p(px, py, curx, cury, movx, movy) | 0;
          }
          // Inline function 'kotlin.run' call
          var _unary__edvuaz = ci;
          ci = _unary__edvuaz + 1 | 0;
          curx = coords[_unary__edvuaz];
          movx = curx;
          // Inline function 'kotlin.run' call
          var _unary__edvuaz_0 = ci;
          ci = _unary__edvuaz_0 + 1 | 0;
          cury = coords[_unary__edvuaz_0];
          movy = cury;
        } else if (tmp0_subject === 1) {
          var tmp = crossings;
          var tmp_0 = Companion_instance_40;
          var tmp_1 = curx;
          var tmp_2 = cury;
          var _unary__edvuaz_1 = ci;
          ci = _unary__edvuaz_1 + 1 | 0;
          // Inline function 'kotlin.also' call
          var this_0 = coords[_unary__edvuaz_1];
          endx = this_0;
          var tmp_3 = this_0;
          var _unary__edvuaz_2 = ci;
          ci = _unary__edvuaz_2 + 1 | 0;
          // Inline function 'kotlin.also' call
          var this_1 = coords[_unary__edvuaz_2];
          endy = this_1;
          crossings = tmp + tmp_0.y1p(px, py, tmp_1, tmp_2, tmp_3, this_1) | 0;
          curx = endx;
          cury = endy;
        } else if (tmp0_subject === 2) {
          var tmp_4 = crossings;
          var tmp_5 = Companion_instance_40;
          var tmp_6 = curx;
          var tmp_7 = cury;
          var _unary__edvuaz_3 = ci;
          ci = _unary__edvuaz_3 + 1 | 0;
          var tmp_8 = coords[_unary__edvuaz_3];
          var _unary__edvuaz_4 = ci;
          ci = _unary__edvuaz_4 + 1 | 0;
          var tmp_9 = coords[_unary__edvuaz_4];
          var _unary__edvuaz_5 = ci;
          ci = _unary__edvuaz_5 + 1 | 0;
          // Inline function 'kotlin.also' call
          var this_2 = coords[_unary__edvuaz_5];
          endx = this_2;
          var tmp_10 = this_2;
          var _unary__edvuaz_6 = ci;
          ci = _unary__edvuaz_6 + 1 | 0;
          // Inline function 'kotlin.also' call
          var this_3 = coords[_unary__edvuaz_6];
          endy = this_3;
          crossings = tmp_4 + tmp_5.z1p(px, py, tmp_6, tmp_7, tmp_8, tmp_9, tmp_10, this_3, 0) | 0;
          curx = endx;
          cury = endy;
        } else if (tmp0_subject === 3) {
          var tmp_11 = crossings;
          var tmp_12 = Companion_instance_40;
          var tmp_13 = curx;
          var tmp_14 = cury;
          var _unary__edvuaz_7 = ci;
          ci = _unary__edvuaz_7 + 1 | 0;
          var tmp_15 = coords[_unary__edvuaz_7];
          var _unary__edvuaz_8 = ci;
          ci = _unary__edvuaz_8 + 1 | 0;
          var tmp_16 = coords[_unary__edvuaz_8];
          var _unary__edvuaz_9 = ci;
          ci = _unary__edvuaz_9 + 1 | 0;
          var tmp_17 = coords[_unary__edvuaz_9];
          var _unary__edvuaz_10 = ci;
          ci = _unary__edvuaz_10 + 1 | 0;
          var tmp_18 = coords[_unary__edvuaz_10];
          var _unary__edvuaz_11 = ci;
          ci = _unary__edvuaz_11 + 1 | 0;
          // Inline function 'kotlin.also' call
          var this_4 = coords[_unary__edvuaz_11];
          endx = this_4;
          var tmp_19 = this_4;
          var _unary__edvuaz_12 = ci;
          ci = _unary__edvuaz_12 + 1 | 0;
          // Inline function 'kotlin.also' call
          var this_5 = coords[_unary__edvuaz_12];
          endy = this_5;
          crossings = tmp_11 + tmp_12.a1q(px, py, tmp_13, tmp_14, tmp_15, tmp_16, tmp_17, tmp_18, tmp_19, this_5, 0) | 0;
          curx = endx;
          cury = endy;
        } else if (tmp0_subject === 4) {
          if (!(cury === movy)) {
            crossings = crossings + Companion_instance_40.y1p(px, py, curx, cury, movx, movy) | 0;
          }
          curx = movx;
          cury = movy;
        }
      }
       while (inductionVariable < last);
    if (!(cury === movy)) {
      crossings = crossings + Companion_instance_40.y1p(px, py, curx, cury, movx, movy) | 0;
    }
    return crossings;
  }
  l1v(rxmin, rymin, rxmax, rymax) {
    if (this.h1u_1 === 0) {
      return 0;
    }
    var coords = this.h1k_1;
    var movx;
    movx = coords[0];
    var curx = movx;
    var movy;
    movy = coords[1];
    var cury = movy;
    var crossings = 0;
    var ci = 2;
    var i = 1;
    while (!(crossings === -2147483648) && i < this.h1u_1) {
      var endy;
      var endx;
      var tmp0_subject = this.g1u_1[i];
      if (tmp0_subject === 0) {
        if (!(curx === movx) || !(cury === movy)) {
          crossings = Companion_instance_40.b1q(crossings, rxmin, rymin, rxmax, rymax, curx, cury, movx, movy);
        }
        // Inline function 'kotlin.run' call
        var _unary__edvuaz = ci;
        ci = _unary__edvuaz + 1 | 0;
        curx = coords[_unary__edvuaz];
        movx = curx;
        // Inline function 'kotlin.run' call
        var _unary__edvuaz_0 = ci;
        ci = _unary__edvuaz_0 + 1 | 0;
        cury = coords[_unary__edvuaz_0];
        movy = cury;
      } else if (tmp0_subject === 1) {
        var _unary__edvuaz_1 = ci;
        ci = _unary__edvuaz_1 + 1 | 0;
        endx = coords[_unary__edvuaz_1];
        var _unary__edvuaz_2 = ci;
        ci = _unary__edvuaz_2 + 1 | 0;
        endy = coords[_unary__edvuaz_2];
        crossings = Companion_instance_40.b1q(crossings, rxmin, rymin, rxmax, rymax, curx, cury, endx, endy);
        curx = endx;
        cury = endy;
      } else if (tmp0_subject === 2) {
        var tmp = Companion_instance_40;
        var tmp_0 = crossings;
        var tmp_1 = curx;
        var tmp_2 = cury;
        var _unary__edvuaz_3 = ci;
        ci = _unary__edvuaz_3 + 1 | 0;
        var tmp_3 = coords[_unary__edvuaz_3];
        var _unary__edvuaz_4 = ci;
        ci = _unary__edvuaz_4 + 1 | 0;
        var tmp_4 = coords[_unary__edvuaz_4];
        var _unary__edvuaz_5 = ci;
        ci = _unary__edvuaz_5 + 1 | 0;
        // Inline function 'kotlin.also' call
        var this_0 = coords[_unary__edvuaz_5];
        endx = this_0;
        var tmp_5 = this_0;
        var _unary__edvuaz_6 = ci;
        ci = _unary__edvuaz_6 + 1 | 0;
        // Inline function 'kotlin.also' call
        var this_1 = coords[_unary__edvuaz_6];
        endy = this_1;
        crossings = tmp.c1q(tmp_0, rxmin, rymin, rxmax, rymax, tmp_1, tmp_2, tmp_3, tmp_4, tmp_5, this_1, 0);
        curx = endx;
        cury = endy;
      } else if (tmp0_subject === 3) {
        var tmp_6 = Companion_instance_40;
        var tmp_7 = crossings;
        var tmp_8 = curx;
        var tmp_9 = cury;
        var _unary__edvuaz_7 = ci;
        ci = _unary__edvuaz_7 + 1 | 0;
        var tmp_10 = coords[_unary__edvuaz_7];
        var _unary__edvuaz_8 = ci;
        ci = _unary__edvuaz_8 + 1 | 0;
        var tmp_11 = coords[_unary__edvuaz_8];
        var _unary__edvuaz_9 = ci;
        ci = _unary__edvuaz_9 + 1 | 0;
        var tmp_12 = coords[_unary__edvuaz_9];
        var _unary__edvuaz_10 = ci;
        ci = _unary__edvuaz_10 + 1 | 0;
        var tmp_13 = coords[_unary__edvuaz_10];
        var _unary__edvuaz_11 = ci;
        ci = _unary__edvuaz_11 + 1 | 0;
        // Inline function 'kotlin.also' call
        var this_2 = coords[_unary__edvuaz_11];
        endx = this_2;
        var tmp_14 = this_2;
        var _unary__edvuaz_12 = ci;
        ci = _unary__edvuaz_12 + 1 | 0;
        // Inline function 'kotlin.also' call
        var this_3 = coords[_unary__edvuaz_12];
        endy = this_3;
        crossings = tmp_6.d1q(tmp_7, rxmin, rymin, rxmax, rymax, tmp_8, tmp_9, tmp_10, tmp_11, tmp_12, tmp_13, tmp_14, this_3, 0);
        curx = endx;
        cury = endy;
      } else if (tmp0_subject === 4) {
        if (!(curx === movx) || !(cury === movy)) {
          crossings = Companion_instance_40.b1q(crossings, rxmin, rymin, rxmax, rymax, curx, cury, movx, movy);
        }
        curx = movx;
        cury = movy;
      }
      i = i + 1 | 0;
    }
    if (!(crossings === -2147483648) && (!(curx === movx) || !(cury === movy))) {
      crossings = Companion_instance_40.b1q(crossings, rxmin, rymin, rxmax, rymax, curx, cury, movx, movy);
    }
    return crossings;
  }
  m1v(x, y) {
    if (this.h1u_1 > 0 && this.g1u_1[this.h1u_1 - 1 | 0] === 0) {
      this.h1k_1[this.i1u_1 - 2 | 0] = x;
      this.h1k_1[this.i1u_1 - 1 | 0] = y;
    } else {
      this.j1v(false, 2);
      var tmp = this.g1u_1;
      var _unary__edvuaz = this.h1u_1;
      this.h1u_1 = _unary__edvuaz + 1 | 0;
      tmp[_unary__edvuaz] = 0;
      var tmp_0 = this.h1k_1;
      var _unary__edvuaz_0 = this.i1u_1;
      this.i1u_1 = _unary__edvuaz_0 + 1 | 0;
      tmp_0[_unary__edvuaz_0] = x;
      var tmp_1 = this.h1k_1;
      var _unary__edvuaz_1 = this.i1u_1;
      this.i1u_1 = _unary__edvuaz_1 + 1 | 0;
      tmp_1[_unary__edvuaz_1] = y;
    }
  }
  n1v(x, y) {
    this.j1v(true, 2);
    var tmp = this.g1u_1;
    var _unary__edvuaz = this.h1u_1;
    this.h1u_1 = _unary__edvuaz + 1 | 0;
    tmp[_unary__edvuaz] = 1;
    var tmp_0 = this.h1k_1;
    var _unary__edvuaz_0 = this.i1u_1;
    this.i1u_1 = _unary__edvuaz_0 + 1 | 0;
    tmp_0[_unary__edvuaz_0] = x;
    var tmp_1 = this.h1k_1;
    var _unary__edvuaz_1 = this.i1u_1;
    this.i1u_1 = _unary__edvuaz_1 + 1 | 0;
    tmp_1[_unary__edvuaz_1] = y;
  }
  o1v(x1, y1, x2, y2) {
    this.j1v(true, 4);
    var tmp = this.g1u_1;
    var _unary__edvuaz = this.h1u_1;
    this.h1u_1 = _unary__edvuaz + 1 | 0;
    tmp[_unary__edvuaz] = 2;
    var tmp_0 = this.h1k_1;
    var _unary__edvuaz_0 = this.i1u_1;
    this.i1u_1 = _unary__edvuaz_0 + 1 | 0;
    tmp_0[_unary__edvuaz_0] = x1;
    var tmp_1 = this.h1k_1;
    var _unary__edvuaz_1 = this.i1u_1;
    this.i1u_1 = _unary__edvuaz_1 + 1 | 0;
    tmp_1[_unary__edvuaz_1] = y1;
    var tmp_2 = this.h1k_1;
    var _unary__edvuaz_2 = this.i1u_1;
    this.i1u_1 = _unary__edvuaz_2 + 1 | 0;
    tmp_2[_unary__edvuaz_2] = x2;
    var tmp_3 = this.h1k_1;
    var _unary__edvuaz_3 = this.i1u_1;
    this.i1u_1 = _unary__edvuaz_3 + 1 | 0;
    tmp_3[_unary__edvuaz_3] = y2;
  }
  p1v(x1, y1, x2, y2, x3, y3) {
    this.j1v(true, 6);
    var tmp = this.g1u_1;
    var _unary__edvuaz = this.h1u_1;
    this.h1u_1 = _unary__edvuaz + 1 | 0;
    tmp[_unary__edvuaz] = 3;
    var tmp_0 = this.h1k_1;
    var _unary__edvuaz_0 = this.i1u_1;
    this.i1u_1 = _unary__edvuaz_0 + 1 | 0;
    tmp_0[_unary__edvuaz_0] = x1;
    var tmp_1 = this.h1k_1;
    var _unary__edvuaz_1 = this.i1u_1;
    this.i1u_1 = _unary__edvuaz_1 + 1 | 0;
    tmp_1[_unary__edvuaz_1] = y1;
    var tmp_2 = this.h1k_1;
    var _unary__edvuaz_2 = this.i1u_1;
    this.i1u_1 = _unary__edvuaz_2 + 1 | 0;
    tmp_2[_unary__edvuaz_2] = x2;
    var tmp_3 = this.h1k_1;
    var _unary__edvuaz_3 = this.i1u_1;
    this.i1u_1 = _unary__edvuaz_3 + 1 | 0;
    tmp_3[_unary__edvuaz_3] = y2;
    var tmp_4 = this.h1k_1;
    var _unary__edvuaz_4 = this.i1u_1;
    this.i1u_1 = _unary__edvuaz_4 + 1 | 0;
    tmp_4[_unary__edvuaz_4] = x3;
    var tmp_5 = this.h1k_1;
    var _unary__edvuaz_5 = this.i1u_1;
    this.i1u_1 = _unary__edvuaz_5 + 1 | 0;
    tmp_5[_unary__edvuaz_5] = y3;
  }
  w1u(pi, connect) {
    var connect_0 = connect;
    var coords = new Float64Array(6);
    while (!pi.m17()) {
      var tmp0_subject = toByte(pi.s1l(coords));
      if (tmp0_subject === 0) {
        if (!connect_0 || this.h1u_1 < 1 || this.i1u_1 < 1) {
          this.m1v(coords[0], coords[1]);
        } else if (this.g1u_1[this.h1u_1 - 1 | 0] === 4 || this.h1k_1[this.i1u_1 - 2 | 0] !== coords[0] || this.h1k_1[this.i1u_1 - 1 | 0] !== coords[1]) {
          this.n1v(coords[0], coords[1]);
        }
      } else if (tmp0_subject === 1) {
        this.n1v(coords[0], coords[1]);
      } else if (tmp0_subject === 2) {
        this.o1v(coords[0], coords[1], coords[2], coords[3]);
      } else if (tmp0_subject === 3) {
        this.p1v(coords[0], coords[1], coords[2], coords[3], coords[4], coords[5]);
      } else if (tmp0_subject === 4) {
        this.q1v();
      }
      pi.r1l();
      connect_0 = false;
    }
  }
  i1h() {
    return this.u1k();
  }
  u1k() {
    var x1;
    var y1;
    var x2;
    var y2;
    var i = this.i1u_1;
    if (i > 0) {
      var tmp = this.h1k_1;
      i = i - 1 | 0;
      y2 = tmp[i];
      y1 = y2;
      var tmp_0 = this.h1k_1;
      i = i - 1 | 0;
      x2 = tmp_0[i];
      x1 = x2;
      while (i > 0) {
        var tmp_1 = this.h1k_1;
        i = i - 1 | 0;
        var y = tmp_1[i];
        var tmp_2 = this.h1k_1;
        i = i - 1 | 0;
        var x = tmp_2[i];
        if (x < x1)
          x1 = x;
        if (y < y1)
          y1 = y;
        if (x > x2)
          x2 = x;
        if (y > y2)
          y2 = y;
      }
    } else {
      y2 = 0.0;
      x2 = y2;
      y1 = x2;
      x1 = y1;
    }
    return Double_3.z1h(x1, y1, x2 - x1, y2 - y1);
  }
  n1h() {
    return this.o1h(null);
  }
  o1h(at) {
    var tmp;
    if (at == null) {
      tmp = new CopyIterator(this);
    } else {
      tmp = new TxIterator(this, at);
    }
    return tmp;
  }
}
class Companion_47 {
  constructor() {
    this.x1u_1 = 0;
    this.y1u_1 = 1;
    this.z1u_1 = 20;
    this.a1v_1 = 500;
    this.b1v_1 = 0;
    this.c1v_1 = 1;
    this.d1v_1 = 2;
    this.e1v_1 = 3;
    this.f1v_1 = 4;
  }
  g1v(original, newLength) {
    var copy = new Int8Array(newLength);
    // Inline function 'kotlin.math.min' call
    var a = original.length;
    var tmp$ret$0 = Math.min(a, newLength);
    arraycopy_1(original, 0, copy, 0, tmp$ret$0);
    return copy;
  }
  i1v(original, newLength) {
    var copy = new Float64Array(newLength);
    // Inline function 'kotlin.math.min' call
    var a = original.length;
    var tmp$ret$0 = Math.min(a, newLength);
    arraycopy_0(original, 0, copy, 0, tmp$ret$0);
    return copy;
  }
}
class Point {
  constructor(ix, iy) {
    this.r1v_1 = ix;
    this.s1v_1 = iy;
  }
  toString() {
    return 'Point.Integer{x=' + this.g1h() + ', y=' + this.h1h() + toString(_Char___init__impl__6a9atx(125));
  }
  g1h() {
    return this.r1v_1;
  }
  h1h() {
    return this.s1v_1;
  }
  a1k(x, y) {
    var tmp = this;
    // Inline function 'kotlin.math.floor' call
    var x_0 = x + 0.5;
    var tmp$ret$0 = Math.floor(x_0);
    tmp.r1v_1 = numberToInt(tmp$ret$0);
    var tmp_0 = this;
    // Inline function 'kotlin.math.floor' call
    var x_1 = y + 0.5;
    var tmp$ret$1 = Math.floor(x_1);
    tmp_0.s1v_1 = numberToInt(tmp$ret$1);
  }
  t1v(e) {
    var px = e.g1h() - this.g1h();
    var py = e.h1h() - this.h1h();
    // Inline function 'kotlin.math.sqrt' call
    var x = px * px + py * py;
    return Math.sqrt(x);
  }
}
class Double_2 {
  g1h() {
    return this.x1j_1;
  }
  h1h() {
    return this.y1j_1;
  }
  static z1j() {
    var $this = createThis(this);
    init_org_mkui_geom_Point2D_Double($this);
    return $this;
  }
  static c1l(x, y) {
    var $this = createThis(this);
    init_org_mkui_geom_Point2D_Double($this);
    $this.x1j_1 = x;
    $this.y1j_1 = y;
    return $this;
  }
  toString() {
    return 'Point.Double{x=' + this.x1j_1 + ', y=' + this.y1j_1 + toString(_Char___init__impl__6a9atx(125));
  }
  a1k(x, y) {
    this.x1j_1 = x;
    this.y1j_1 = y;
  }
  t1v(pt) {
    var px = pt.g1h() - this.x1j_1;
    var py = pt.h1h() - this.y1j_1;
    // Inline function 'kotlin.math.sqrt' call
    var x = px * px + py * py;
    return Math.sqrt(x);
  }
}
class Float {
  static w1j() {
    var $this = createThis(this);
    init_org_mkui_geom_Point2D_Float($this);
    return $this;
  }
  g1h() {
    return this.u1j_1;
  }
  h1h() {
    return this.v1j_1;
  }
  toString() {
    return 'Point.Float{x=' + this.u1j_1 + ', y=' + this.v1j_1 + toString(_Char___init__impl__6a9atx(125));
  }
  a1k(x, y) {
    this.u1j_1 = x;
    this.v1j_1 = y;
  }
  t1v(e) {
    var px = e.g1h() - this.g1h();
    var py = e.h1h() - this.h1h();
    // Inline function 'kotlin.math.sqrt' call
    var x = px * px + py * py;
    return Math.sqrt(x);
  }
}
class Companion_48 {
  constructor() {
    this.r1s_1 = -2;
    this.s1s_1 = -1;
    this.t1s_1 = 0;
    this.u1s_1 = 1;
    this.v1s_1 = 2;
  }
  w1s(eqn, res) {
    var a = eqn[2];
    var b = eqn[1];
    var c = eqn[0];
    var roots = 0;
    if (a === 0.0) {
      if (b === 0.0) {
        return -1;
      }
      var _unary__edvuaz = roots;
      roots = _unary__edvuaz + 1 | 0;
      res[_unary__edvuaz] = -c / b;
    } else {
      var d = b * b - 4.0 * a * c;
      if (d < 0.0) {
        return 0;
      }
      // Inline function 'kotlin.math.sqrt' call
      var x = d;
      d = Math.sqrt(x);
      if (b < 0.0) {
        d = -d;
      }
      var q = (b + d) / -2.0;
      var _unary__edvuaz_0 = roots;
      roots = _unary__edvuaz_0 + 1 | 0;
      res[_unary__edvuaz_0] = q / a;
      if (!(q === 0.0)) {
        var _unary__edvuaz_1 = roots;
        roots = _unary__edvuaz_1 + 1 | 0;
        res[_unary__edvuaz_1] = c / q;
      }
    }
    return roots;
  }
}
class RectIterator {
  constructor(r, at) {
    this.z1v_1 = 0;
    this.u1v_1 = r.g1h();
    this.v1v_1 = r.h1h();
    this.w1v_1 = r.gm();
    this.x1v_1 = r.hm();
    this.y1v_1 = at;
    if (this.w1v_1 < 0 || this.x1v_1 < 0) {
      this.z1v_1 = 6;
    }
  }
  q1l() {
    return 1;
  }
  m17() {
    return this.z1v_1 > 5;
  }
  r1l() {
    this.z1v_1 = this.z1v_1 + 1 | 0;
  }
  s1l(coords) {
    if (this.m17()) {
      throw NoSuchElementException.g1('rect iterator out of bounds');
    }
    if (this.z1v_1 === 5) {
      return 4;
    }
    coords[0] = this.u1v_1;
    coords[1] = this.v1v_1;
    if (this.z1v_1 === 1 || this.z1v_1 === 2) {
      coords[0] = coords[0] + this.w1v_1;
    }
    if (this.z1v_1 === 2 || this.z1v_1 === 3) {
      coords[1] = coords[1] + this.x1v_1;
    }
    var tmp0_safe_receiver = this.y1v_1;
    if (tmp0_safe_receiver == null)
      null;
    else {
      tmp0_safe_receiver.b1k(coords, 0, coords, 0, 1);
    }
    return this.z1v_1 === 0 ? 0 : 1;
  }
}
class Rectangle extends AbstractRectangle2D {
  static empty() {
    var $this = this.e1h();
    init_org_mkui_geom_Rectangle($this);
    return $this;
  }
  static fromRectangle(rectangle) {
    var $this = this.e1h();
    init_org_mkui_geom_Rectangle($this);
    $this.a1w_1 = rectangle.a1w_1;
    $this.b1w_1 = rectangle.b1w_1;
    $this.c1w_1 = rectangle.c1w_1;
    $this.d1w_1 = rectangle.d1w_1;
    return $this;
  }
  static from(x, y, width, height) {
    var $this = this.e1h();
    init_org_mkui_geom_Rectangle($this);
    $this.a1w_1 = x;
    $this.b1w_1 = y;
    $this.c1w_1 = width;
    $this.d1w_1 = height;
    return $this;
  }
  d1i(x, y) {
    // Inline function 'kotlin.math.min' call
    var a = this.p1h();
    var x1 = Math.min(a, x);
    // Inline function 'kotlin.math.max' call
    var a_0 = this.s1h();
    var x2 = Math.max(a_0, x);
    // Inline function 'kotlin.math.min' call
    var a_1 = this.r1h();
    var y1 = Math.min(a_1, y);
    // Inline function 'kotlin.math.max' call
    var a_2 = this.t1h();
    var y2 = Math.max(a_2, y);
    return Double_3.z1h(x1, y1, x2 - x1, y2 - y1);
  }
  e1w(r) {
    var tx1 = this.a1w_1;
    var ty1 = this.b1w_1;
    var rx1 = r.a1w_1;
    var ry1 = r.b1w_1;
    var tx2 = tx1;
    tx2 = tx2 + this.c1w_1 | 0;
    var ty2 = ty1;
    ty2 = ty2 + this.d1w_1 | 0;
    var rx2 = rx1;
    rx2 = rx2 + r.c1w_1 | 0;
    var ry2 = ry1;
    ry2 = ry2 + r.d1w_1 | 0;
    if (tx1 < rx1)
      tx1 = rx1;
    if (ty1 < ry1)
      ty1 = ry1;
    if (tx2 > rx2)
      tx2 = rx2;
    if (ty2 > ry2)
      ty2 = ry2;
    tx2 = tx2 - tx1 | 0;
    ty2 = ty2 - ty1 | 0;
    if (tx2 < -2147483648)
      tx2 = -2147483648;
    if (ty2 < -2147483648)
      ty2 = -2147483648;
    return Rectangle.from(tx1, ty1, tx2, ty2);
  }
  toString() {
    return 'Rectangle{x=' + this.g1h() + ', y=' + this.h1h() + ', width=' + this.gm() + ', height=' + this.hm() + toString(_Char___init__impl__6a9atx(125));
  }
  g1h() {
    return this.a1w_1;
  }
  h1h() {
    return this.b1w_1;
  }
  gm() {
    return this.c1w_1;
  }
  hm() {
    return this.d1w_1;
  }
  j1h(point) {
    return point.h1h() >= this.h1h() && point.h1h() <= this.h1h() + this.hm() && point.g1h() >= this.g1h() && point.g1h() <= this.g1h() + this.gm();
  }
  c1i() {
    if (_get_isNormalized__vs9aom(this))
      return this;
    var normalizedX = this.a1w_1;
    var normalizedY = this.b1w_1;
    var normalizedWidth = this.c1w_1;
    var normalizedHeight = this.d1w_1;
    if (normalizedWidth < 0) {
      normalizedWidth = -normalizedWidth | 0;
      normalizedX = normalizedX - normalizedWidth | 0;
    }
    if (normalizedHeight < 0) {
      normalizedHeight = -normalizedHeight | 0;
      normalizedY = normalizedY - this.d1w_1 | 0;
    }
    return Rectangle.from(normalizedX, normalizedY, normalizedWidth, normalizedHeight);
  }
  e1i(x, y, w, h) {
    return this.l1h(Double_3.z1h(x, y, w, h));
  }
  f1i(x, y) {
    return this.j1h(Double_2.c1l(x, y));
  }
}
class Companion_49 {
  f1w(x1, y1, x2, y2) {
    var x1_0 = x1;
    var y1_0 = y1;
    var x2_0 = x2;
    var y2_0 = y2;
    if (x2_0 < x1_0) {
      var t = x1_0;
      x1_0 = x2_0;
      x2_0 = t;
    }
    if (y2_0 < y1_0) {
      var t_0 = y1_0;
      y1_0 = y2_0;
      y2_0 = t_0;
    }
    return Double_3.z1h(x1_0, y1_0, x2_0 - x1_0, y2_0 - y1_0);
  }
}
class Double_3 extends AbstractRectangle2D {
  static z1h(x, y, width, height) {
    var $this = this.e1h();
    $this.v1h_1 = x;
    $this.w1h_1 = y;
    $this.x1h_1 = width;
    $this.y1h_1 = height;
    return $this;
  }
  g1h() {
    return this.v1h_1;
  }
  h1h() {
    return this.w1h_1;
  }
  gm() {
    return this.x1h_1;
  }
  hm() {
    return this.y1h_1;
  }
  d1i(x, y) {
    // Inline function 'kotlin.math.min' call
    var a = this.p1h();
    var x1 = Math.min(a, x);
    // Inline function 'kotlin.math.max' call
    var a_0 = this.s1h();
    var x2 = Math.max(a_0, x);
    // Inline function 'kotlin.math.min' call
    var a_1 = this.r1h();
    var y1 = Math.min(a_1, y);
    // Inline function 'kotlin.math.max' call
    var a_2 = this.t1h();
    var y2 = Math.max(a_2, y);
    return Double_3.z1h(x1, y1, x2 - x1, y2 - y1);
  }
  toString() {
    return 'Rectangle2D.Double{x=' + this.g1h() + ', y=' + this.h1h() + ', width=' + this.gm() + ', height=' + this.hm() + toString(_Char___init__impl__6a9atx(125));
  }
  c1i() {
    if (_get_isNormalized__vs9aom_0(this))
      return this;
    var normalizedX = this.g1h();
    var normalizedWidth = this.gm();
    if (normalizedWidth < 0) {
      normalizedWidth = -normalizedWidth;
      normalizedX = normalizedX - normalizedWidth;
    }
    var normalizedHeight = this.hm();
    var normalizedY = this.h1h();
    if (normalizedHeight < 0) {
      normalizedHeight = -normalizedHeight;
      normalizedY = normalizedY - normalizedHeight;
    }
    return Double_3.z1h(normalizedX, normalizedY, normalizedWidth, normalizedHeight);
  }
  e1i(x, y, w, h) {
    return this.l1h(Double_3.z1h(x, y, w, h));
  }
  f1i(x, y) {
    return this.j1h(Double_2.c1l(x, y));
  }
}
class Companion_50 {
  constructor() {
    Companion_instance_50 = this;
    this.g1w_1 = 0.7853981633974483;
    var tmp = this;
    // Inline function 'kotlin.math.cos' call
    var x = 0.7853981633974483;
    tmp.h1w_1 = 1.0 - Math.cos(x);
    var tmp_0 = this;
    // Inline function 'kotlin.math.tan' call
    var x_0 = 0.7853981633974483;
    tmp_0.i1w_1 = Math.tan(x_0);
    var tmp_1 = this;
    // Inline function 'kotlin.math.sqrt' call
    var x_1 = 1.0 + this.i1w_1 * this.i1w_1;
    tmp_1.j1w_1 = Math.sqrt(x_1) - 1 + this.h1w_1;
    this.k1w_1 = 4.0 / 3.0 * this.h1w_1 * this.i1w_1 / this.j1w_1;
    this.l1w_1 = (1.0 - this.k1w_1) / 2.0;
    var tmp_2 = this;
    // Inline function 'kotlin.doubleArrayOf' call
    var tmp_3 = new Float64Array([0.0, 0.0, 0.0, 0.5]);
    // Inline function 'kotlin.doubleArrayOf' call
    var tmp_4 = new Float64Array([0.0, 0.0, 1.0, -0.5]);
    // Inline function 'kotlin.doubleArrayOf' call
    var tmp_5 = new Float64Array([0.0, 0.0, 1.0, -this.l1w_1, 0.0, this.l1w_1, 1.0, 0.0, 0.0, 0.5, 1.0, 0.0]);
    // Inline function 'kotlin.doubleArrayOf' call
    var tmp_6 = new Float64Array([1.0, -0.5, 1.0, 0.0]);
    // Inline function 'kotlin.doubleArrayOf' call
    var tmp_7 = new Float64Array([1.0, -this.l1w_1, 1.0, 0.0, 1.0, 0.0, 1.0, -this.l1w_1, 1.0, 0.0, 1.0, -0.5]);
    // Inline function 'kotlin.doubleArrayOf' call
    var tmp_8 = new Float64Array([1.0, 0.0, 0.0, 0.5]);
    // Inline function 'kotlin.doubleArrayOf' call
    var tmp_9 = new Float64Array([1.0, 0.0, 0.0, this.l1w_1, 1.0, -this.l1w_1, 0.0, 0.0, 1.0, -0.5, 0.0, 0.0]);
    // Inline function 'kotlin.doubleArrayOf' call
    var tmp_10 = new Float64Array([0.0, 0.5, 0.0, 0.0]);
    // Inline function 'kotlin.doubleArrayOf' call
    var tmp_11 = new Float64Array([0.0, this.l1w_1, 0.0, 0.0, 0.0, 0.0, 0.0, this.l1w_1, 0.0, 0.0, 0.0, 0.5]);
    // Inline function 'kotlin.doubleArrayOf' call
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    tmp_2.m1w_1 = [tmp_3, tmp_4, tmp_5, tmp_6, tmp_7, tmp_8, tmp_9, tmp_10, tmp_11, new Float64Array([])];
    var tmp_12 = this;
    // Inline function 'kotlin.intArrayOf' call
    tmp_12.n1w_1 = new Int32Array([0, 1, 3, 1, 3, 1, 3, 1, 3, 4]);
  }
}
class RoundRectIterator {
  constructor(rr, at) {
    Companion_getInstance_50();
    this.v1w_1 = 0;
    this.o1w_1 = rr.g1h();
    this.p1w_1 = rr.h1h();
    this.q1w_1 = rr.gm();
    this.r1w_1 = rr.hm();
    var tmp = this;
    var tmp0 = this.q1w_1;
    // Inline function 'kotlin.math.abs' call
    var x = rr.w1w();
    // Inline function 'kotlin.math.min' call
    var b = Math.abs(x);
    tmp.s1w_1 = Math.min(tmp0, b);
    var tmp_0 = this;
    var tmp0_0 = this.r1w_1;
    // Inline function 'kotlin.math.abs' call
    var x_0 = rr.x1w();
    // Inline function 'kotlin.math.min' call
    var b_0 = Math.abs(x_0);
    tmp_0.t1w_1 = Math.min(tmp0_0, b_0);
    this.u1w_1 = at;
    if (this.s1w_1 < 0 || this.t1w_1 < 0) {
      this.v1w_1 = Companion_getInstance_50().m1w_1.length;
    }
  }
  q1l() {
    return 1;
  }
  m17() {
    return this.v1w_1 >= Companion_getInstance_50().m1w_1.length;
  }
  r1l() {
    this.v1w_1 = this.v1w_1 + 1 | 0;
  }
  s1l(coords) {
    if (this.m17()) {
      throw NoSuchElementException.g1('roundrect iterator out of bounds');
    }
    var ctrls = Companion_getInstance_50().m1w_1[this.v1w_1];
    var nc = 0;
    var i = 0;
    while (i < ctrls.length) {
      var _unary__edvuaz = nc;
      nc = _unary__edvuaz + 1 | 0;
      coords[_unary__edvuaz] = this.o1w_1 + ctrls[i + 0 | 0] * this.q1w_1 + ctrls[i + 1 | 0] * this.s1w_1;
      var _unary__edvuaz_0 = nc;
      nc = _unary__edvuaz_0 + 1 | 0;
      coords[_unary__edvuaz_0] = this.p1w_1 + ctrls[i + 2 | 0] * this.r1w_1 + ctrls[i + 3 | 0] * this.t1w_1;
      i = i + 4 | 0;
    }
    var tmp0_safe_receiver = this.u1w_1;
    if (tmp0_safe_receiver == null)
      null;
    else {
      tmp0_safe_receiver.b1k(coords, 0, coords, 0, nc / 2 | 0);
    }
    return Companion_getInstance_50().n1w_1[this.v1w_1];
  }
}
class RoundRectangle2D extends AbstractRectangle2D {
  static f1x() {
    return this.e1h();
  }
  e1i(x, y, w, h) {
    var x_0 = x;
    var y_0 = y;
    if (this.v1k() || w <= 0 || h <= 0) {
      return false;
    }
    var rrx0 = x_0;
    var rry0 = y_0;
    var rrx1 = rrx0 + this.gm();
    var rry1 = rry0 + this.hm();
    if (x_0 + w <= rrx0 || x_0 >= rrx1 || y_0 + h <= rry0 || y_0 >= rry1) {
      return false;
    }
    var tmp0 = this.gm();
    // Inline function 'kotlin.math.abs' call
    var x_1 = this.w1w();
    // Inline function 'kotlin.math.min' call
    var b = Math.abs(x_1);
    var aw = Math.min(tmp0, b) / 2.0;
    var tmp0_0 = this.hm();
    // Inline function 'kotlin.math.abs' call
    var x_2 = this.x1w();
    // Inline function 'kotlin.math.min' call
    var b_0 = Math.abs(x_2);
    var ah = Math.min(tmp0_0, b_0) / 2.0;
    var x0class = classify(this, x_0, rrx0, rrx1, aw);
    var x1class = classify(this, x_0 + w, rrx0, rrx1, aw);
    var y0class = classify(this, y_0, rry0, rry1, ah);
    var y1class = classify(this, y_0 + h, rry0, rry1, ah);
    if (x0class === 2 || x1class === 2 || y0class === 2 || y1class === 2) {
      return true;
    }
    if (x0class < 2 && x1class > 2 || (y0class < 2 && y1class > 2)) {
      return true;
    }
    x_0 = x1class === 1 ? x_0 + w - (rrx0 + aw) : x_0 - (rrx1 - aw);
    y_0 = y1class === 1 ? y_0 + h - (rry0 + ah) : y_0 - (rry1 - ah);
    x_0 = x_0 / aw;
    y_0 = y_0 / ah;
    return x_0 * x_0 + y_0 * y_0 <= 1.0;
  }
  f1i(x, y) {
    var x_0 = x;
    var y_0 = y;
    if (this.v1k()) {
      return false;
    }
    var rrx0 = x_0;
    var rry0 = y_0;
    var rrx1 = rrx0 + this.gm();
    var rry1 = rry0 + this.hm();
    if (x_0 < rrx0 || y_0 < rry0 || x_0 >= rrx1 || y_0 >= rry1) {
      return false;
    }
    var tmp0 = this.gm();
    // Inline function 'kotlin.math.absoluteValue' call
    var this_0 = this.w1w();
    // Inline function 'kotlin.math.min' call
    var b = Math.abs(this_0);
    var aw = Math.min(tmp0, b) / 2.0;
    var tmp0_0 = this.hm();
    // Inline function 'kotlin.math.absoluteValue' call
    var this_1 = this.x1w();
    // Inline function 'kotlin.math.min' call
    var b_0 = Math.abs(this_1);
    var ah = Math.min(tmp0_0, b_0) / 2.0;
    var tmp;
    var tmp_0 = x_0;
    // Inline function 'kotlin.let' call
    rrx0 = rrx0 + aw;
    if (tmp_0 >= rrx0) {
      var tmp_1 = x_0;
      // Inline function 'kotlin.also' call
      rrx0 = aw;
      tmp = tmp_1 < rrx1 - aw;
    } else {
      tmp = false;
    }
    if (tmp) {
      return true;
    }
    var tmp_2;
    var tmp_3 = y_0;
    // Inline function 'kotlin.let' call
    rry0 = rry0 + ah;
    if (tmp_3 >= rry0) {
      var tmp_4 = y_0;
      // Inline function 'kotlin.also' call
      rry0 = ah;
      tmp_2 = tmp_4 < rry1 - ah;
    } else {
      tmp_2 = false;
    }
    if (tmp_2) {
      return true;
    }
    x_0 = (x_0 - rrx0) / aw;
    y_0 = (y_0 - rry0) / ah;
    return x_0 * x_0 + y_0 * y_0 <= 1.0;
  }
  o1h(at) {
    return new RoundRectIterator(this, at);
  }
  hashCode() {
    var bits = toRawBits(this.g1h());
    var tmp = bits;
    // Inline function 'kotlin.Long.times' call
    var this_0 = toRawBits(this.h1h());
    var tmp$ret$0 = multiply_0(this_0, fromInt_0(37));
    bits = add_0(tmp, tmp$ret$0);
    var tmp_0 = bits;
    // Inline function 'kotlin.Long.times' call
    var this_1 = toRawBits(this.gm());
    var tmp$ret$1 = multiply_0(this_1, fromInt_0(43));
    bits = add_0(tmp_0, tmp$ret$1);
    var tmp_1 = bits;
    // Inline function 'kotlin.Long.times' call
    var this_2 = toRawBits(this.hm());
    var tmp$ret$2 = multiply_0(this_2, fromInt_0(47));
    bits = add_0(tmp_1, tmp$ret$2);
    var tmp_2 = bits;
    // Inline function 'kotlin.Long.times' call
    var this_3 = toRawBits(this.w1w());
    var tmp$ret$3 = multiply_0(this_3, fromInt_0(53));
    bits = add_0(tmp_2, tmp$ret$3);
    var tmp_3 = bits;
    // Inline function 'kotlin.Long.times' call
    var this_4 = toRawBits(this.x1w());
    var tmp$ret$4 = multiply_0(this_4, fromInt_0(59));
    bits = add_0(tmp_3, tmp$ret$4);
    return convertToInt(bits) ^ convertToInt(shiftRight(bits, 32));
  }
  equals(other) {
    if (other === this) {
      return true;
    }
    if (other instanceof RoundRectangle2D) {
      return this.g1h() === other.g1h() && this.h1h() === other.h1h() && this.gm() === other.gm() && this.hm() === other.hm() && this.w1w() === other.w1w() && this.x1w() === other.x1w();
    }
    return false;
  }
}
class Double_4 extends RoundRectangle2D {
  g1h() {
    return this.y1w_1;
  }
  h1h() {
    return this.z1w_1;
  }
  gm() {
    return this.a1x_1;
  }
  hm() {
    return this.b1x_1;
  }
  w1w() {
    return this.c1x_1;
  }
  x1w() {
    return this.d1x_1;
  }
  static e1x() {
    var $this = this.f1x();
    init_org_mkui_geom_RoundRectangle2D_Double($this);
    return $this;
  }
  static g1x(x, y, w, h, arcw, arch) {
    var $this = this.f1x();
    init_org_mkui_geom_RoundRectangle2D_Double($this);
    $this.h1x(x, y, w, h, arcw, arch);
    return $this;
  }
  d1i(x, y) {
    // Inline function 'kotlin.math.min' call
    var a = this.p1h();
    var x1 = Math.min(a, x);
    // Inline function 'kotlin.math.max' call
    var a_0 = this.s1h();
    var x2 = Math.max(a_0, x);
    // Inline function 'kotlin.math.min' call
    var a_1 = this.r1h();
    var y1 = Math.min(a_1, y);
    // Inline function 'kotlin.math.max' call
    var a_2 = this.t1h();
    var y2 = Math.max(a_2, y);
    return Double_4.g1x(x1, y1, x2 - x1, y2 - y1, this.c1x_1, this.d1x_1);
  }
  c1i() {
    if (_get_isNormalized__vs9aom_1(this))
      return this;
    var normalizedX = this.y1w_1;
    var normalizedY = this.z1w_1;
    var normalizedWidth = this.a1x_1;
    var normalizedHeight = this.b1x_1;
    if (normalizedWidth < 0) {
      normalizedWidth = -normalizedWidth;
      normalizedX = normalizedX - normalizedWidth;
    }
    if (normalizedHeight < 0) {
      normalizedHeight = -normalizedHeight;
      normalizedY = normalizedY - normalizedHeight;
    }
    return Double_4.g1x(normalizedX, normalizedY, normalizedWidth, normalizedHeight, this.c1x_1, this.d1x_1);
  }
  h1x(x, y, w, h, arcWidth, arcHeight) {
    this.y1w_1 = x;
    this.z1w_1 = y;
    this.a1x_1 = w;
    this.b1x_1 = h;
    this.c1x_1 = arcWidth;
    this.d1x_1 = arcHeight;
  }
  v1k() {
    return this.a1x_1 <= 0.0 || this.b1x_1 <= 0.0;
  }
}
class ScreenTransformHelper {
  i1x(xModel, yModel) {
    var tmp;
    if (yModel.f16()) {
      var xs = xModel.x15() / xModel.e16();
      var ys = yModel.x15() / yModel.e16();
      var at = AffineTransform.j1j();
      at.n1j(xs, ys);
      at.o1j(-xModel.d16(), -yModel.d16());
      tmp = at;
    } else {
      var xs_0 = xModel.x15() / xModel.e16();
      var ys_0 = yModel.x15() / yModel.e16();
      var tx = -xModel.d16() * xs_0;
      var ty = yModel.d16() * ys_0 + yModel.x15();
      tmp = AffineTransform.m1j(xs_0, 0.0, 0.0, -ys_0, tx, ty);
    }
    return tmp;
  }
}
class TextShape {
  m1x() {
    return true;
  }
  i1h() {
    return this.k1x_1.i1h();
  }
  n1x(at) {
    throw NotImplementedError.ui();
  }
}
class Companion_51 {}
class AbstractIGraphics {
  constructor() {
    this.o1x_1 = null;
    this.p1x_1 = null;
  }
}
class Insets {
  constructor(top, left, bottom, right) {
    this.t1x_1 = 0;
    this.u1x_1 = 0;
    this.v1x_1 = 0;
    this.w1x_1 = 0;
    this.t1x_1 = top;
    this.u1x_1 = left;
    this.v1x_1 = bottom;
    this.w1x_1 = right;
  }
}
class Companion_52 {
  constructor() {
    Companion_instance_52 = this;
    this.x1x_1 = 0.5;
    this.y1x_1 = listOf_0([Off_getInstance(), Brightness_getInstance(), BlackWhite_getInstance(), Complement_getInstance()]);
  }
}
class ContrastEnhancement {
  constructor() {
    Companion_getInstance_52();
  }
}
class Off extends ContrastEnhancement {
  constructor() {
    Off_instance = null;
    super();
    Off_instance = this;
  }
  z1x(foreground, background) {
    return foreground;
  }
}
class Brightness extends ContrastEnhancement {
  constructor() {
    Brightness_instance = null;
    super();
    Brightness_instance = this;
  }
  z1x(foreground, background) {
    var foreground_0 = foreground;
    var diff_0 = diff(foreground_0, background);
    var tmp;
    if (diff_0 <= 0.5) {
      var foregroundBrightness = brightness(foreground_0);
      var tmp_0 = foreground_0;
      // Inline function 'kotlin.math.min' call
      var b = foregroundBrightness + (0.5 - diff_0);
      var tmp$ret$0 = Math.min(1.0, b);
      var brighterForeground = replaceBrightness(tmp_0, tmp$ret$0);
      var tmp_1 = foreground_0;
      // Inline function 'kotlin.math.max' call
      var b_0 = foregroundBrightness - (0.5 - diff_0);
      var tmp$ret$1 = Math.max(0.0, b_0);
      var darkerForeground = replaceBrightness(tmp_1, tmp$ret$1);
      var backgroundLuminance = luminance(background);
      // Inline function 'kotlin.math.abs' call
      var x = luminance(brighterForeground) - backgroundLuminance;
      var brighterDiff = Math.abs(x);
      // Inline function 'kotlin.math.abs' call
      var x_0 = luminance(darkerForeground) - backgroundLuminance;
      var darkerDiff = Math.abs(x_0);
      var tmp_2;
      if (brighterDiff > darkerDiff) {
        tmp_2 = brighterForeground;
      } else {
        tmp_2 = darkerForeground;
      }
      foreground_0 = tmp_2;
      tmp = foreground_0;
    } else {
      tmp = foreground_0;
    }
    return tmp;
  }
}
class BlackWhite extends ContrastEnhancement {
  constructor() {
    BlackWhite_instance = null;
    super();
    BlackWhite_instance = this;
  }
  z1x(foreground, background) {
    var diff_0 = diff(foreground, background);
    var tmp;
    if (diff_0 <= 0.5) {
      var backgroundLuminance = lum(background);
      tmp = backgroundLuminance >= 186 ? get_Black() : get_White();
    } else {
      tmp = foreground;
    }
    return tmp;
  }
  toString() {
    return 'Black&White';
  }
}
class Complement extends ContrastEnhancement {
  constructor() {
    Complement_instance = null;
    super();
    Complement_instance = this;
  }
  z1x(foreground, background) {
    var foreground_0 = foreground;
    var diff_0 = diff(foreground_0, background);
    var tmp;
    if (diff_0 <= 0.5) {
      var alpha = getUAlpha(foreground_0);
      var red = getURed(foreground_0);
      var blue = getUBlue(foreground_0);
      var green = getUBlue(foreground_0);
      // Inline function 'kotlin.UByte.inv' call
      var this_0 = red;
      // Inline function 'kotlin.experimental.inv' call
      var this_1 = _UByte___get_data__impl__jof9qr(this_0);
      var tmp$ret$0 = toByte(~this_1);
      red = _UByte___init__impl__g9hnc4(tmp$ret$0);
      // Inline function 'kotlin.UByte.inv' call
      var this_2 = blue;
      // Inline function 'kotlin.experimental.inv' call
      var this_3 = _UByte___get_data__impl__jof9qr(this_2);
      var tmp$ret$2 = toByte(~this_3);
      blue = _UByte___init__impl__g9hnc4(tmp$ret$2);
      // Inline function 'kotlin.UByte.inv' call
      var this_4 = green;
      // Inline function 'kotlin.experimental.inv' call
      var this_5 = _UByte___get_data__impl__jof9qr(this_4);
      var tmp$ret$4 = toByte(~this_5);
      green = _UByte___init__impl__g9hnc4(tmp$ret$4);
      var complement = colorOf_0(red, green, blue, alpha);
      var backgroundLuminance = luminance(background);
      // Inline function 'kotlin.math.abs' call
      var x = luminance(foreground_0) - backgroundLuminance;
      var brighterDiff = Math.abs(x);
      // Inline function 'kotlin.math.abs' call
      var x_0 = luminance(complement) - backgroundLuminance;
      var darkerDiff = Math.abs(x_0);
      var tmp_0;
      if (brighterDiff > darkerDiff) {
        tmp_0 = foreground_0;
      } else {
        tmp_0 = complement;
      }
      foreground_0 = tmp_0;
      tmp = foreground_0;
    } else {
      tmp = foreground_0;
    }
    return tmp;
  }
}
class Effect {}
class Plain extends Effect {
  constructor() {
    Plain_instance = null;
    super();
    Plain_instance = this;
  }
}
class Shadow extends Effect {
  constructor() {
    Shadow_instance = null;
    super();
    Shadow_instance = this;
  }
}
class Glow extends Effect {
  constructor() {
    Glow_instance = null;
    super();
    Glow_instance = this;
  }
}
class Outline extends Effect {
  constructor() {
    Outline_instance = null;
    super();
    Outline_instance = this;
  }
}
class Emphasize extends Effect {
  constructor() {
    Emphasize_instance = null;
    super();
    Emphasize_instance = this;
  }
}
class Rendering extends Enum {
  get name() {
    return this.h3();
  }
  get ordinal() {
    return this.i3();
  }
}
class Companion_53 {
  constructor() {
    this.CENTER = 0;
    this.TOP = 1;
    this.LEFT = 2;
    this.BOTTOM = 3;
    this.RIGHT = 4;
    this.HORIZONTAL = 0;
    this.VERTICAL = 1;
    this.LEADING = 10;
    this.TRAILING = 11;
    this.NEXT = 12;
  }
  c1y() {
    return this.CENTER;
  }
  d1y() {
    return this.TOP;
  }
  e1y() {
    return this.LEFT;
  }
  f1y() {
    return this.BOTTOM;
  }
  g1y() {
    return this.RIGHT;
  }
  h1y() {
    return this.HORIZONTAL;
  }
  i1y() {
    return this.VERTICAL;
  }
  j1y() {
    return this.LEADING;
  }
  k1y() {
    return this.TRAILING;
  }
  l1y() {
    return this.NEXT;
  }
}
class EnhancedLabel {
  constructor() {
    return new.target.j1z();
  }
  static j1z() {
    var $this = createThis(this);
    $this.isOpaque = false;
    $this.properties = new SimpleProperties();
    $this.m1y_1 = $this.properties.bz('rendering', Rendering_Clip_getInstance());
    $this.n1y_1 = $this.properties.bz('justified', false);
    $this.o1y_1 = $this.properties.bz('effect', Plain_getInstance());
    $this.p1y_1 = $this.properties.bz('effectOpacity', 110.0 / 255.0);
    $this.q1y_1 = $this.properties.bz('minimumCharactersToDisplay', null);
    $this.r1y_1 = $this.properties.bz('angle', 0.0);
    $this.s1y_1 = $this.properties.bz('desiredWidth', 2147483647);
    $this.t1y_1 = $this.properties.bz('desiredHeight', 2147483647);
    $this.u1y_1 = $this.properties.bz('text', null);
    $this.v1y_1 = $this.properties.bz('html', false);
    $this.w1y_1 = $this.properties.bz('font', Companion_getInstance_57().k1z_1.l1z());
    $this.x1y_1 = $this.properties.bz('verticalAlignment', 0);
    $this.y1y_1 = $this.properties.bz('horizontalAlignment', 10);
    $this.z1y_1 = $this.properties.bz('width', null);
    $this.a1z_1 = $this.properties.bz('height', null);
    $this.b1z_1 = $this.properties.bz('insetTop', 0);
    $this.c1z_1 = $this.properties.bz('insetLeft', 0);
    $this.d1z_1 = $this.properties.bz('insetBottom', 0);
    $this.e1z_1 = $this.properties.bz('insetRight', 0);
    $this.f1z_1 = $this.properties.bz('background', null);
    $this.g1z_1 = $this.properties.bz('foreground', null);
    $this.h1z_1 = $this.properties.bz('enabled', true);
    $this.i1z_1 = $this.properties.bz('name', null);
    $this.setVerticalAlignment(1);
    return $this;
  }
  m1z(_set____db54di) {
    this.isOpaque = _set____db54di;
  }
  n1z() {
    return this.isOpaque;
  }
  o1z(_set____db54di) {
    this.properties = _set____db54di;
  }
  p1z() {
    return this.properties;
  }
  static fromString(text) {
    var $this = this.j1z();
    $this.setText(text);
    return $this;
  }
  setName(name) {
    this.i1z_1.ap(name);
  }
  getName() {
    return this.i1z_1.z2();
  }
  getText() {
    return this.u1y_1.z2();
  }
  setText(text) {
    this.u1y_1.ap(text);
  }
  q1z(html) {
    this.v1y_1.ap(html);
  }
  r1z() {
    return this.v1y_1.z2();
  }
  getFont() {
    return this.w1y_1.z2();
  }
  setFont(font) {
    this.w1y_1.ap(font);
  }
  getVerticalAlignment() {
    return this.x1y_1.z2();
  }
  setVerticalAlignment(verticalAlignment) {
    this.x1y_1.ap(verticalAlignment);
  }
  getHorizontalAlignment() {
    return this.y1y_1.z2();
  }
  setHorizontalAlignment(horizontalAlignment) {
    this.y1y_1.ap(horizontalAlignment);
  }
  getHeight() {
    return this.a1z_1.z2();
  }
  getWidth() {
    return this.z1y_1.z2();
  }
  getBackground() {
    return this.f1z_1.z2();
  }
  setBackground(background) {
    this.f1z_1.ap(background);
  }
  getForeground() {
    return this.g1z_1.z2();
  }
  setForeground(foreground) {
    this.g1z_1.ap(foreground);
  }
  isEnabled() {
    return this.h1z_1.z2();
  }
  getInsetTop() {
    return this.b1z_1.z2();
  }
  getInsetLeft() {
    return this.c1z_1.z2();
  }
  getInsetBottom() {
    return this.d1z_1.z2();
  }
  getInsetRight() {
    return this.e1z_1.z2();
  }
  setInsetTop(value) {
    this.b1z_1.ap(value);
  }
  setInsetLeft(value) {
    this.c1z_1.ap(value);
  }
  setInsetBottom(value) {
    this.d1z_1.ap(value);
  }
  setInsetRight(value) {
    this.e1z_1.ap(value);
  }
  setInsets(top, left, bottom, right) {
    this.b1z_1.ap(top);
    this.c1z_1.ap(left);
    this.d1z_1.ap(bottom);
    this.e1z_1.ap(right);
  }
  getEffect() {
    return this.o1y_1.z2();
  }
  setEffect(effect) {
    this.o1y_1.ap(effect);
  }
  getEffectOpacity() {
    return this.p1y_1.z2();
  }
  setEffectOpacity(effectOpacity) {
    this.p1y_1.ap(effectOpacity);
  }
  getRendering() {
    return this.m1y_1.z2();
  }
  setRendering(rendering) {
    this.m1y_1.ap(rendering);
  }
  getMinimumCharactersToDisplay() {
    return this.q1y_1.z2();
  }
  setMinimumCharactersToDisplay(minimumCharactersToDisplay) {
    this.q1y_1.ap(minimumCharactersToDisplay);
  }
  isJustified() {
    return this.n1y_1.z2();
  }
  setJustified(justified) {
    this.n1y_1.ap(justified);
  }
  getAngle() {
    return this.r1y_1.z2();
  }
  setAngle(angle) {
    this.r1y_1.ap(angle);
  }
  getDesiredWidth() {
    return this.s1y_1.z2();
  }
  setDesiredWidth(desiredSize) {
    this.s1y_1.ap(desiredSize);
  }
  getDesiredHeight() {
    return this.t1y_1.z2();
  }
  setDesiredHeight(desiredSize) {
    this.t1y_1.ap(desiredSize);
  }
  get isHTML() {
    return this.r1z();
  }
  set isHTML(value) {
    this.q1z(value);
  }
}
class AbstractPalette {
  static z1z() {
    var $this = createThis(this);
    $this.x1z_1 = 0;
    $this.y1z_1 = Cycle_NONE_getInstance();
    return $this;
  }
  u1d(_set____db54di) {
    this.x1z_1 = _set____db54di;
  }
  a1b() {
    return this.x1z_1;
  }
  a20() {
    return this.y1z_1;
  }
  c20(fraction, colorCount, paletteSize) {
    var entry = round(fraction * (colorCount - 1 | 0));
    var f = entry / (colorCount - 1 | 0);
    var tmp0 = colorCount - 1 | 0;
    // Inline function 'kotlin.math.max' call
    var b = numberToInt(round(f * (paletteSize - 1 | 0)));
    // Inline function 'kotlin.math.min' call
    var b_0 = Math.max(0, b);
    return Math.min(tmp0, b_0);
  }
}
class MutablePalette {}
class AbstractMutablePalette extends AbstractPalette {
  static w1z() {
    var $this = this.z1z();
    $this.u1z_1 = CollectionFactory_instance.nk();
    $this.v1z_1 = protoOf(AbstractPalette).a20.call($this);
    return $this;
  }
  a20() {
    return this.v1z_1;
  }
  c1e(listener) {
    this.u1z_1.c1(listener);
  }
  b1e(listener) {
    var toRemove = null;
    var _iterator__ex2g4s = this.u1z_1.h1();
    while (_iterator__ex2g4s.i1()) {
      var PaletteListener = _iterator__ex2g4s.j1();
      var comparable;
      comparable = PaletteListener;
      if (equals(listener, comparable)) {
        toRemove = PaletteListener;
      }
    }
    if (!(toRemove == null)) {
      var removed = this.u1z_1.e3(toRemove);
    }
  }
  b20(event) {
    var _iterator__ex2g4s = this.u1z_1.h1();
    while (_iterator__ex2g4s.i1()) {
      var listener = _iterator__ex2g4s.j1();
      listener.z1d(event);
    }
  }
}
class Mode extends Enum {}
class Entry_0 {
  constructor(fraction, color) {
    this.t1f_1 = fraction;
    this.u1f_1 = color;
  }
  j20() {
    return this.u1f_1;
  }
  k20(other) {
    return compareTo(this.t1f_1, other.t1f_1);
  }
  d(other) {
    return this.k20(other instanceof Entry_0 ? other : THROW_CCE());
  }
  equals(other) {
    if (this === other)
      return true;
    if (other == null || !getKClassFromExpression(this).equals(getKClassFromExpression(other)))
      return false;
    if (!(other instanceof Entry_0))
      THROW_CCE();
    if (!(this.t1f_1 === other.t1f_1))
      return false;
    return true;
  }
  hashCode() {
    return getNumberHashCode(this.t1f_1);
  }
}
class sam$kotlin_Comparator$0_1 {
  constructor(function_0) {
    this.l20_1 = function_0;
  }
  he(a, b) {
    return this.l20_1(a, b);
  }
  compare(a, b) {
    return this.he(a, b);
  }
  k3() {
    return this.l20_1;
  }
  equals(other) {
    var tmp;
    if (!(other == null) ? isInterface(other, Comparator) : false) {
      var tmp_0;
      if (!(other == null) ? isInterface(other, FunctionAdapter) : false) {
        tmp_0 = equals(this.k3(), other.k3());
      } else {
        tmp_0 = false;
      }
      tmp = tmp_0;
    } else {
      tmp = false;
    }
    return tmp;
  }
  hashCode() {
    return hashCode(this.k3());
  }
}
class CustomPalette$1 {
  constructor(this$0) {
    this.m20_1 = this$0;
  }
  n20(event) {
    this.m20_1.b20(new PaletteEvent());
    updateFixedColorGradient(this.m20_1);
  }
  vo(event) {
    return this.n20(event);
  }
}
class DynamicPalette extends AbstractMutablePalette {
  static p20(colors) {
    var $this = this.w1z();
    init_org_mkui_palette_DynamicPalette($this);
    $this.h20_1 = toMutableList(colors);
    $this.u1d($this.h20_1.k1());
    return $this;
  }
  n1c(fraction) {
    var fraction_0 = fraction;
    var inverted = this.i20_1;
    var tmp0_subject = this.a20();
    switch (tmp0_subject == null ? -1 : tmp0_subject.g3_1) {
      case 2:
        inverted = (numberToInt(fraction_0) % 2 | 0) === 0;
        fraction_0 = fraction_0 - numberToInt(fraction_0);
        break;
      case 1:
        fraction_0 = fraction_0 - numberToInt(fraction_0);
        break;
      default:
        break;
    }
    var tmp;
    if (fraction_0 < this.r1f()) {
      tmp = this.n1c(this.r1f());
    } else if (fraction_0 > this.q1f()) {
      tmp = this.n1c(this.q1f());
    } else {
      var index = this.c20(!inverted ? fraction_0 : 1 - fraction_0, this.a1b(), this.h20_1.k1());
      tmp = this.h20_1.l1(index);
    }
    return tmp;
  }
  r1f() {
    return 0.0;
  }
  q1f() {
    return 1.0;
  }
  p1f(fraction) {
    var tmp;
    if (this.a1b() === this.h20_1.k1()) {
      var tmp_0;
      if (fraction < 0) {
        tmp_0 = this.p1f(0);
      } else if (fraction > (this.a1b() - 1 | 0)) {
        tmp_0 = this.p1f(this.a1b() - 1 | 0);
      } else {
        tmp_0 = this.h20_1.l1(fraction);
      }
      tmp = tmp_0;
    } else {
      tmp = this.n1c(this.a1b() / fraction);
    }
    return tmp;
  }
}
class CustomPalette extends DynamicPalette {
  static o20(entries) {
    var $this = this.p20([]);
    $this.y1b_1 = new SimpleProperty(Mode_Ramps_getInstance());
    $this.z1b_1 = entries;
    $this.y1b_1.zo(new CustomPalette$1($this));
    return $this;
  }
  static a1c(entries) {
    // Inline function 'kotlin.comparisons.compareBy' call
    var tmp = CustomPalette$_init_$lambda_rc1wld;
    var tmp$ret$0 = new sam$kotlin_Comparator$0_1(tmp);
    var $this = this.o20(SortedSet.wj(tmp$ret$0, asList(entries)));
    updateFixedColorGradient($this);
    return $this;
  }
  s1f() {
    return this.z1b_1;
  }
  r1f() {
    var tmp;
    if (!this.z1b_1.p1()) {
      tmp = first(this.z1b_1).t1f_1;
    } else {
      tmp = super.r1f();
    }
    return tmp;
  }
  q1f() {
    var tmp;
    if (!this.z1b_1.p1()) {
      tmp = last(this.z1b_1).t1f_1;
    } else {
      tmp = super.q1f();
    }
    return tmp;
  }
}
class Cycle extends Enum {}
class Companion_54 {}
class FixedPalette extends AbstractPalette {
  static u20(isInverted, colors) {
    var $this = this.z1z();
    $this.s20_1 = isInverted;
    $this.t20_1 = colors;
    $this.u1d(!($this.t20_1 == null) ? $this.t20_1.k1() : 0);
    return $this;
  }
  t1d(_set____db54di) {
    this.s20_1 = _set____db54di;
  }
  fn() {
    return this.s20_1;
  }
  v20(_set____db54di) {
    this.t20_1 = _set____db54di;
  }
  w20() {
    return this.t20_1;
  }
  static x20(colors) {
    return this.y20(false, colors.slice());
  }
  static y20(inverted, colors) {
    return this.u20(false, toCPColorList(Companion_instance_54, colors));
  }
  static z20(colors) {
    return this.u20(false, toMutableList(colors));
  }
  n1c(fraction) {
    var fraction_0 = fraction;
    var inverted = this.fn();
    var tmp0_subject = this.a20();
    switch (tmp0_subject == null ? -1 : tmp0_subject.g3_1) {
      case 2:
        inverted = (numberToInt(fraction_0) % 2 | 0) === 0;
        fraction_0 = fraction_0 - numberToInt(fraction_0);
        break;
      case 1:
        fraction_0 = fraction_0 - numberToInt(fraction_0);
        break;
      default:
        break;
    }
    var tmp;
    if (fraction_0 < this.r1f()) {
      tmp = this.n1c(this.r1f());
    } else if (fraction_0 > this.q1f()) {
      tmp = this.n1c(this.q1f());
    } else {
      var index = this.c20(!inverted ? fraction_0 : 1 - fraction_0, this.a1b(), this.t20_1.k1());
      tmp = this.t20_1.l1(index);
    }
    return tmp;
  }
  r1f() {
    return 0.0;
  }
  q1f() {
    return 1.0;
  }
  p1f(fraction) {
    var tmp;
    if (this.a1b() === this.t20_1.k1()) {
      var tmp_0;
      if (fraction < 0) {
        tmp_0 = this.p1f(0);
      } else if (fraction > (this.a1b() - 1 | 0)) {
        tmp_0 = this.p1f(this.a1b() - 1 | 0);
      } else {
        tmp_0 = this.t20_1.l1(fraction);
      }
      tmp = tmp_0;
    } else {
      tmp = this.n1c(this.a1b() / fraction);
    }
    return tmp;
  }
  c1e(listener) {
  }
  b1e(listener) {
  }
  a21(value) {
    throw UnsupportedOperationException.q3();
  }
  a20() {
    return super.a20();
  }
  toString() {
    return toString_1(this.n1c(0.0)) + '-' + toString_1(this.n1c(1.0));
  }
}
class Mode_0 extends Enum {}
class Entry_1 {
  constructor(fraction, color) {
    this.fraction = fraction;
    this.v1f_1 = color;
  }
  g21() {
    return this.fraction;
  }
  getColor() {
    return this.v1f_1;
  }
  h21(other) {
    return compareTo(this.fraction, other.fraction);
  }
  d(other) {
    return this.h21(other instanceof Entry_1 ? other : THROW_CCE());
  }
  equals(other) {
    if (this === other)
      return true;
    if (other == null || !getKClassFromExpression(this).equals(getKClassFromExpression(other)))
      return false;
    if (!(other instanceof Entry_1))
      THROW_CCE();
    if (!(this.fraction === other.fraction))
      return false;
    return true;
  }
  hashCode() {
    return getNumberHashCode(this.fraction);
  }
}
class sam$kotlin_Comparator$0_2 {
  constructor(function_0) {
    this.i21_1 = function_0;
  }
  he(a, b) {
    return this.i21_1(a, b);
  }
  compare(a, b) {
    return this.he(a, b);
  }
  k3() {
    return this.i21_1;
  }
  equals(other) {
    var tmp;
    if (!(other == null) ? isInterface(other, Comparator) : false) {
      var tmp_0;
      if (!(other == null) ? isInterface(other, FunctionAdapter) : false) {
        tmp_0 = equals(this.k3(), other.k3());
      } else {
        tmp_0 = false;
      }
      tmp = tmp_0;
    } else {
      tmp = false;
    }
    return tmp;
  }
  hashCode() {
    return hashCode(this.k3());
  }
}
class sam$kotlin_Comparator$0_3 {
  constructor(function_0) {
    this.j21_1 = function_0;
  }
  he(a, b) {
    return this.j21_1(a, b);
  }
  compare(a, b) {
    return this.he(a, b);
  }
  k3() {
    return this.j21_1;
  }
  equals(other) {
    var tmp;
    if (!(other == null) ? isInterface(other, Comparator) : false) {
      var tmp_0;
      if (!(other == null) ? isInterface(other, FunctionAdapter) : false) {
        tmp_0 = equals(this.k3(), other.k3());
      } else {
        tmp_0 = false;
      }
      tmp = tmp_0;
    } else {
      tmp = false;
    }
    return tmp;
  }
  hashCode() {
    return hashCode(this.k3());
  }
}
class InterpolatedPalette extends FixedPalette {
  constructor(entries) {
    return new.target.k21(entries);
  }
  static k21(entries) {
    var $this = this.u20(false, emptyList());
    $this.entries = entries;
    $this.f21_1 = new SimpleProperty(Mode_Ramps_getInstance_0());
    updateFixedColorGradient_0($this);
    return $this;
  }
  l21(_set____db54di) {
    this.entries = _set____db54di;
  }
  d3() {
    return this.entries;
  }
  static paletteConstructor(p) {
    // Inline function 'kotlin.comparisons.compareBy' call
    var tmp = InterpolatedPalette$_init_$lambda_qt4r8t;
    var tmp$ret$0 = new sam$kotlin_Comparator$0_2(tmp);
    var $this = this.k21(SortedSet.wj(tmp$ret$0));
    var inductionVariable = 0;
    var last = p.a1b();
    if (inductionVariable < last)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        var c = p.p1f(i);
        $this.entries.c1(new Entry_1(i / (p.a1b() - 1 | 0), c));
      }
       while (inductionVariable < last);
    updateFixedColorGradient_0($this);
    return $this;
  }
  static entriesConstructor(e) {
    // Inline function 'kotlin.comparisons.compareBy' call
    var tmp = InterpolatedPalette$_init_$lambda_qt4r8t_0;
    var tmp$ret$0 = new sam$kotlin_Comparator$0_3(tmp);
    var $this = this.k21(SortedSet.wj(tmp$ret$0, asList(e)));
    updateFixedColorGradient_0($this);
    return $this;
  }
  getEntries() {
    return this.entries;
  }
  r1f() {
    var tmp;
    if (!this.entries.p1()) {
      tmp = first(this.entries).fraction;
    } else {
      tmp = super.r1f();
    }
    return tmp;
  }
  q1f() {
    var tmp;
    if (!this.entries.p1()) {
      tmp = last(this.entries).fraction;
    } else {
      tmp = super.q1f();
    }
    return tmp;
  }
}
class PaletteEvent {}
class Entry_2 {
  constructor(name, type, colors) {
    this.name = name;
    this.type = type;
    this.m21_1 = colors;
  }
  h3() {
    return this.name;
  }
  n21() {
    return this.type;
  }
  getPalette() {
    return this.m21_1;
  }
}
class Companion_55 {
  constructor() {
    Companion_instance_55 = this;
    this.instance = new PaletteFactory();
  }
  o21() {
    return this.instance;
  }
}
class PaletteFactory {
  constructor() {
    Companion_getInstance_55();
    this.v23_1 = ArrayList.q1();
    this.p21_1 = new Entry_2('negpos', PaletteType_DIVERGING_getInstance(), InterpolatedPalette.entriesConstructor([new Entry_1(0.0, colorOf_1(255, 0, 0)), new Entry_1(0.498, colorOf_1(255, 230, 230)), new Entry_1(0.4981, colorOf_1(255, 255, 255)), new Entry_1(0.502, colorOf_1(255, 255, 255)), new Entry_1(0.5021, colorOf_1(230, 255, 230)), new Entry_1(1.0, colorOf_1(0, 128, 0))]));
    this.q21_1 = new Entry_2('treemapper', PaletteType_DIVERGING_getInstance(), InterpolatedPalette.entriesConstructor([new Entry_1(0.0, colorOf_1(255, 0, 0)), new Entry_1(0.5, colorOf_1(255, 255, 255)), new Entry_1(1.0, colorOf_1(0, 128, 0))]));
    this.r21_1 = new Entry_2('composite', PaletteType_DIVERGING_getInstance(), InterpolatedPalette.entriesConstructor([new Entry_1(0.0, colorOf_1(255, 0, 0)), new Entry_1(0.19327731092437, colorOf_1(247, 52, 0)), new Entry_1(0.428571428571429, colorOf_1(83, 10, 0)), new Entry_1(0.563025210084034, colorOf_1(19, 58, 0)), new Entry_1(1.0, colorOf_1(127, 255, 0))]));
    this.s21_1 = new Entry_2('bty', PaletteType_DIVERGING_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.x20(new Int32Array([-16316418, -15263748, -14803206, -14408456, -14145289, -13882123, -13684749, -13487374, -13355792, -13158417, -13026834, -12895252, -12763669, -12632086, -12500503, -12434713, -12303130, -12237339, -12105756, -12039965, -11908382, -11842591, -11776799, -11645216, -11579425, -11513634, -11447843, -11382051, -11250468, -11184677, -11118886, -11053094, -10987303, -10921512, -10855720, -10789929, -10724138, -10658346, -10592555, -10526763, -10460972, -10395180, -10329389, -10329390, -10263598, -10197807, -10132015, -10066224, -10000432, -9934640, -9868849, -9868849, -9803058, -9737266, -9671475, -9605683, -9539892, -9539892, -9474100, -9408309, -9342517, -9276726, -9276726, -9210934, -9145143, -9079351, -9013560, -9013560, -8947768, -8881977, -8816185, -8816185, -8750394, -8684602, -8618810, -8618811, -8553019, -8487227, -8421436, -8355644, -8355645, -8289853, -8224061, -8224062, -8158270, -8092478, -8026687, -8026687, -7960895, -7895104, -7829312, -7829312, -7763521, -7697729, -7631937, -7631938, -7566146, -7500354, -7434563, -7434563, -7368771, -7302980, -7302980, -7237188, -7171397, -7105605, -7105605, -7039814, -6974022, -6974022, -6908231, -6842439, -6776647, -6776648, -6710856, -6645064, -6645065, -6579273, -6513482, -6447690, -6447690, -6381899, -6316107, -6316107, -6250316, -6184524, -6118732, -6118733, -6052941, -5987150, -5987150, -5921358, -5855567, -5789775, -5789776, -5723984, -5658192, -5658193, -5592401, -5526610, -5460818, -5460819, -5395027, -5329235, -5329236, -5263444, -5197653, -5131861, -5131862, -5066070, -5000279, -5000279, -4934488, -4868696, -4868697, -4802905, -4737114, -4671322, -4671323, -4605531, -4539740, -4539740, -4473949, -4408157, -4342366, -4342366, -4276575, -4210783, -4210784, -4144993, -4079201, -4013410, -4013410, -3947619, -3881827, -3881828, -3816037, -3750245, -3684454, -3684455, -3618663, -3552872, -3552873, -3487081, -3421290, -3355499, -3355499, -3289708, -3223917, -3223918, -3158126, -3092335, -3026544, -3026545, -2960753, -2894962, -2894963, -2829172, -2763381, -2697590, -2697590, -2631799, -2566008, -2566009, -2500218, -2434427, -2368636, -2368637, -2302846, -2237055, -2237056, -2171265, -2105474, -2039683, -2039684, -1973893, -1908102, -1908103, -1842313, -1776522, -1710731, -1710732, -1644942, -1579151, -1513360, -1513362, -1447571, -1381781, -1381782, -1315992, -1250201, -1184411, -1184412, -1118622, -1052832, -1052834, -987044, -921253, -855463, -855466, -789676, -723886, -658096, -658099, -592310, -526520, -526523, -460735, -394946, -329158, -329162, -263375, -197588, -131803, -131812, -66035]))));
    this.t21_1 = new Entry_2('heated', PaletteType_DIVERGING_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.x20(new Int32Array([-10544128, -10347008, -10215680, -10084096, -10018304, -9886976, -9821184, -9689600, -9623808, -9492480, -9426432, -9295104, -9229312, -9097984, -8966400, -8966400, -8900608, -8769280, -8703232, -8571904, -8571904, -8506112, -8374784, -8308736, -8308736, -8177408, -8111616, -7980288, -7980288, -7848704, -7782912, -7782912, -7651584, -7651584, -7585536, -7454208, -7454208, -7388416, -7388416, -7257088, -7257088, -7191040, -7191040, -7059712, -7059712, -6993920, -6993920, -6862592, -6862592, -6731008, -6731008, -6665216, -6665216, -6665216, -6533888, -6533888, -6467840, -6467840, -6336512, -6336512, -6336512, -6270720, -6270720, -6139392, -6139392, -6073344, -6073344, -5942016, -5942016, -5876224, -5876224, -5876224, -5744896, -5744896, -5613312, -5613312, -5547520, -5547520, -5416192, -5416192, -5350144, -5350144, -5218816, -5218816, -5153024, -5153024, -5021696, -5021696, -4955648, -4824320, -4824320, -4758528, -4758528, -4626944, -4626944, -4495616, -4495616, -4429824, -4429824, -4298496, -4232448, -4232448, -4101120, -4101120, -4035328, -3904000, -3904000, -3837952, -3837952, -3706624, -3640832, -3640832, -3509248, -3509248, -3377920, -3312128, -3312128, -3180800, -3114752, -3114752, -2983424, -2917632, -2917632, -2786304, -2720256, -2720256, -2588928, -2523136, -2523136, -2391552, -2260224, -2260224, -2194432, -2063104, -2063104, -1997056, -1865728, -1865728, -1799936, -1668608, -1668608, -1602560, -1471232, -1471232, -1405440, -1273856, -1273856, -1142528, -1076736, -945408, -945408, -879360, -748032, -748032, -682240, -550656, -550656, -484864, -353536, -287744, -287744, -156160, -24832, -24832, -24576, -24320, -23808, -23808, -23552, -23296, -22784, -22784, -22528, -22272, -22272, -22016, -21504, -21248, -21248, -20992, -20736, -20224, -19968, -19712, -19200, -19200, -18944, -18688, -18432, -17657, -17398, -17138, -16622, -16363, -16103, -15587, -15068, -14808, -14293, -13773, -13258, -12739, -12479, -11704, -11444, -10669, -10149, -9374, -8855, -8339, -7820, -7045, -6010, -5490, -4715, -4196, -3936, -3161, -2386, -1866, -1607, -831, -572, -52, -49, -45, -38, -34, -31, -27, -23, -20, -16, -12, -9]))));
    this.u21_1 = new Entry_2('rainy', PaletteType_DIVERGING_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.x20(new Int32Array([-16385, -1592075, -3167765, -4743455, -6319145, -7894835, -9470525, -11046215, -12621905, -14197595, -15773285]))));
    this.v21_1 = new Entry_2('linred', PaletteType_DIVERGING_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.x20(new Int32Array([-16777216, -16777216, -16777216, -16777216, -16777216, -16777216, -16777216, -16711680, -16711680, -16711680, -16711680, -16711680, -16711680, -16711680, -16711680, -16711680, -16646144, -16646144, -16646144, -16646144, -16646144, -16646144, -16646144, -16580608, -16580608, -16580608, -16580608, -16580608, -16580608, -16580608, -16515072, -16515072, -16515072, -16515072, -16515072, -16449536, -16449536, -16449536, -16449536, -16449536, -16384000, -16384000, -16384000, -16384000, -16384000, -16318464, -16318464, -16318464, -16318464, -16318464, -16252928, -16252928, -16187392, -16187392, -16187392, -16187392, -16121856, -16121856, -16121856, -16121856, -16121856, -16056320, -16056320, -15990784, -15990784, -15990784, -15925248, -15925248, -15859712, -15859712, -15794176, -15794176, -15794176, -15728640, -15728640, -15663104, -15663104, -15597568, -15597568, -15532032, -15532032, -15532032, -15532032, -15532032, -15466496, -15466496, -15335424, -15335424, -15335424, -15269888, -15269888, -15204352, -15204352, -15073280, -15073280, -15073280, -15007744, -15007744, -14876672, -14876672, -14811136, -14811136, -14680064, -14680064, -14680064, -14680064, -14680064, -14548992, -14548992, -14483456, -14483456, -14483456, -14352384, -14352384, -14221312, -14221312, -14090240, -14090240, -14090240, -13959168, -13959168, -13828096, -13828096, -13762560, -13762560, -13762560, -13697024, -13697024, -13565952, -13565952, -13434880, -13434880, -13369344, -13369344, -13369344, -13238272, -13238272, -13107200, -13107200, -12910592, -12910592, -12910592, -12779520, -12779520, -12582912, -12582912, -12386304, -12386304, -12386304, -12255232, -12255232, -12058624, -12058624, -11862016, -11862016, -11796480, -11796480, -11796480, -11665408, -11665408, -11468800, -11468800, -11272192, -11272192, -11272192, -11075584, -11075584, -10813440, -10813440, -10616832, -10616832, -10616832, -10420224, -10420224, -10158080, -10158080, -9961472, -9961472, -9764864, -9764864, -9764864, -9699328, -9699328, -9437184, -9437184, -9175040, -9175040, -9175040, -8912896, -8912896, -8650752, -8650752, -8388608, -8388608, -8388608, -8126464, -8126464, -7864320, -7864320, -7536640, -7536640, -7274496, -7274496, -7274496, -7143424, -7143424, -6946816, -6946816, -6684672, -6684672, -6684672, -6356992, -6356992, -6029312, -6029312, -5701632, -5701632, -5701632, -5373952, -5373952, -5046272, -5046272, -4653056, -4653056, -4325376, -4325376, -4325376, -3997696, -3997696, -3997696, -3997696, -3604480, -3604480, -3604480, -3211264, -3211264, -2883584, -2883584, -2490368, -2490368, -2490368, -2097152, -2097152, -1703936, -1703936, -1245184, -1245184, -851968, -851968, -851968, -458752, -458752, -262144, -262144, -262144, -65536]))));
    this.w21_1 = new Entry_2('publimedia', PaletteType_DIVERGING_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.x20(new Int32Array([-1, -3634808, -3778215, -4182484, -6087908, -8907752, -11333360, -16777216, -16777216, -16777216, -16777216]))));
    this.x21_1 = new Entry_2('magenta', PaletteType_DIVERGING_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.x20(new Int32Array([-16777216, -14155776, -13107196, -12779511, -12582900, -12451826, -12255215, -11993068, -11927530, -11665383, -11599845, -11337698, -11206625, -11141087, -10878940, -10813402, -10682329, -10551255, -10485717, -10223570, -10092497, -10026959, -9895885, -9764812, -9699274, -9568201, -9437127, -9437127, -9371590, -9240516, -9109442, -8978369, -8912831, -8781758, -8650684, -8585146, -8454073, -8322999, -8322999, -8257462, -8126388, -7995314, -7864241, -7798703, -7667630, -7536556, -7471018, -7339945, -7208871, -7143334, -7012260, -6881186, -6881186, -6750113, -6684575, -6553502, -6422428, -6356890, -6225817, -6094743, -6029206, -5898132, -5767059, -5635985, -5570447, -5439374, -5308300, -5242763, -5111689, -4980615, -4980615, -4915078, -4784004, -4652931, -4521857, -4456319, -4325246, -4194172, -4128635, -3997561, -3866487, -3800950, -3669876, -3538803, -3407729, -3407729, -3342191, -3211118, -3080044, -3014507, -2883433, -2752359, -2686822, -2555748, -2424675, -2293601, -2228064, -2228064, -2096990, -1965916, -1900379, -1769305, -1638232, -1572694, -1441620, -1310547, -1179473, -1179473, -1113936, -982862, -851788, -786251, -655177, -523592, -457542, -457542, -457542, -325956, -325956, -194115, -194115, -62529, -62529, -62016, -62016, -62016, -61246, -60732, -60219, -60219, -59449, -58936, -58422, -57652, -57139, -56625, -55856, -55856, -55342, -54829, -54059, -53545, -53032, -52262, -51749, -51749, -51235, -50721, -49952, -49438, -48925, -48155, -48155, -47641, -47128, -46358, -45845, -45331, -44561, -44561, -44048, -43534, -42765, -42251, -41737, -40968, -40968, -40454, -39941, -39171, -38657, -38145, -38145, -37633, -36865, -36353, -35841, -35841, -35073, -34561, -34049, -34049, -33281, -32769, -32257, -32257, -31489, -30977, -30465, -30465, -29697, -29185, -28673, -28673, -27905, -27393, -26881, -26881, -26113, -25601, -25601, -25089, -24577, -24577, -23809, -23297, -23297, -22785, -22017, -21505, -21505, -20993, -20225, -20225, -19713, -19201, -19201, -18433, -17921, -17921, -17409, -16641, -16641, -16129, -15617, -14849, -14849, -14337, -13825, -13057, -13057, -12545, -12033, -11521, -11521, -10753, -10241, -9729, -9729, -8961, -8449, -7937, -7169, -6657, -6657, -6145, -5377, -4865, -4353, -3585, -3073, -3073, -2561, -1793, -1281, -1]))));
    this.y21_1 = new Entry_2('rainbow', PaletteType_DIVERGING_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.x20(new Int32Array([-16777216, -13828060, -13107154, -12845007, -12386250, -12189637, -12124099, -11861948, -11927479, -11927475, -11993007, -12124073, -12254886, -12320162, -12450975, -12646810, -12777622, -12973459, -13104015, -13299852, -13626761, -13691783, -13887620, -14083200, -14148479, -14344060, -14539642, -14865527, -15125366, -15189621, -15188339, -15187826, -15253106, -15252081, -15251570, -15251570, -15251058, -15250546, -15250546, -15249778, -15249266, -15249266, -15248755, -15247987, -15247987, -15247476, -15247476, -15181172, -15181172, -15180405, -15180405, -15180405, -15180405, -15179381, -15179381, -15112822, -15112822, -15112055, -15112055, -15112055, -15045495, -15045495, -14979192, -14979192, -14979192, -14978169, -14978169, -14911866, -14911866, -14845307, -14845307, -14845307, -14845307, -14844540, -14844540, -14778237, -14778237, -14711934, -14711934, -14711934, -14645632, -14645632, -14579329, -14579329, -14579329, -14513027, -14513027, -14446981, -14446981, -14380679, -14380679, -14380679, -14314634, -14314634, -14248332, -14248332, -14116751, -14116751, -14050705, -14050705, -13984660, -13984660, -13918614, -13918614, -13918614, -13787032, -13787032, -13720987, -13720987, -13589405, -13589405, -13457823, -13457823, -13391777, -13260195, -13260195, -13260195, -13128613, -13128613, -12997032, -12997032, -12865706, -12668588, -12537262, -12537262, -12340144, -12340144, -12208817, -12011699, -12011699, -12011699, -11814836, -11683254, -11486391, -11289272, -11026872, -10764473, -10502074, -10239674, -9977274, -9714874, -9452474, -9452474, -9190330, -8927930, -8665786, -8206777, -8009913, -7747768, -7551160, -7354551, -7354551, -7092407, -6895798, -6699190, -6502581, -6240180, -5781426, -5584817, -5388209, -5388209, -5126064, -4929455, -4733102, -4536494, -4274349, -3881131, -3684779, -3684779, -3422634, -3226281, -2833063, -2636710, -2440357, -2047394, -2047394, -1654432, -1458078, -1261980, -1131160, -1000342, -1000342, -869522, -738958, -673676, -542856, -477573, -477573, -346755, -281472, -215934, -150395, -150395, -84858, -85110, -19570, -19567, -19567, -19560, -19295, -19292, -19289, -19289, -19031, -19030, -18771, -18512, -18512, -18253, -17997, -17994, -17738, -17738, -17479, -17223, -16964, -16964, -16708, -16449, -16193, -15678, -15678, -14907, -14650, -14136, -13879, -13879, -13622, -13365, -12851, -12594, -12594, -12080, -11823, -11309, -10281, -10024, -10024, -9510, -9253, -8739, -8225, -7454, -6940, -6426, -6426, -5912, -5141, -4627, -3856, -3085, -2314, -1543, -1029, -515, -1]))));
    this.z21_1 = new Entry_2('locs', PaletteType_DIVERGING_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.x20(new Int32Array([-16777216, -16777216, -16777216, -16711680, -16646144, -16646144, -16580608, -16580608, -16515072, -16449536, -16449536, -16384000, -16318464, -16318464, -16252928, -16187392, -16187392, -16121856, -16056320, -15990784, -15925248, -15859712, -15794176, -15728640, -15663104, -15597568, -15532032, -15466496, -15400960, -15335424, -15269888, -15138816, -15073280, -15007744, -14942208, -14811136, -14745600, -14614528, -14548992, -14483456, -14352384, -14221312, -14155776, -13959168, -13828096, -13762560, -13565952, -13434880, -13303808, -13238272, -13107200, -12976128, -12845056, -12713984, -12582912, -12386304, -12255232, -12124160, -11927552, -11796480, -11534336, -11468800, -11272192, -11141120, -10944512, -10747904, -10616832, -10420224, -10223616, -10027008, -9830400, -9633792, -9437184, -9240576, -9109504, -8781824, -8519680, -8388608, -8192000, -7929856, -7929856, -7929600, -7929344, -7929088, -7928832, -7928320, -7928320, -7927808, -7927552, -7927296, -7927040, -7926528, -7926528, -7926016, -7925504, -7925504, -7924992, -7924480, -7924224, -7923968, -7923456, -7923200, -7922944, -7922432, -7921920, -7921664, -7921408, -7920896, -7920640, -7920128, -7919616, -7919104, -7918592, -7918080, -7917824, -7917312, -7916800, -7916544, -7916032, -7915520, -7915264, -7914752, -7913984, -7913728, -7913216, -7912704, -7912192, -7911424, -7911168, -7910400, -7909888, -7909376, -7908864, -7908352, -7907584, -7907328, -7906816, -7906048, -7905536, -7904768, -7904000, -7903488, -7902720, -7902464, -7901696, -7900928, -7900416, -7899648, -7898880, -7898112, -7897344, -7896832, -7895808, -7895296, -7894528, -7893760, -7892992, -7891968, -7891456, -7890176, -7889664, -7888896, -7888128, -7887360, -7886336, -7885312, -7884544, -7883776, -7882752, -7881728, -7880704, -7879936, -7878656, -7877888, -7877376, -7876096, -7875072, -7874048, -7873024, -7872000, -7870720, -7869440, -7868672, -7867392, -7866112, -7864832, -7864575, -7864571, -7864566, -7864561, -7864556, -7864553, -7864548, -7864543, -7864538, -7864533, -7864531, -7864527, -7864522, -7864517, -7864511, -7864506, -7864502, -7864496, -7864492, -7864486, -7864481, -7864478, -7864472, -7864466, -7864460, -7864456, -7864451, -7864445, -7864439, -7864432, -7864427, -7864422, -7864418, -7864411, -7864404, -7864397, -7864390, -7864385, -7864378, -7864373, -7864365, -7864360, -7864352, -7864344, -7864336, -7864328, -7864322, -7864321, -7536641, -7143425, -6684673, -6488065, -6160385, -5701633, -5439489, -5111809, -4784129, -4325377, -4128769, -3670017, -3342337, -2949121, -2621441, -2293761, -1966081, -1507329, -1245185, -983041, -458753, -1]))));
    this.a22_1 = new Entry_2('ocs', PaletteType_DIVERGING_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.x20(new Int32Array([-16777216, -16515072, -16252928, -15990784, -15728640, -15466496, -15204352, -14942208, -14680064, -14417920, -14155776, -13893632, -13631488, -13369344, -13107200, -12845056, -12582912, -12320768, -12058624, -11796480, -11534336, -11272192, -11010048, -10747904, -10485760, -10223616, -9961472, -9699328, -9437184, -9175040, -8912128, -8911616, -8910848, -8910336, -8909568, -8909056, -8908288, -8907776, -8907008, -8906496, -8905728, -8905216, -8904448, -8903936, -8903168, -8902656, -8901888, -8901376, -8900608, -8900096, -8899328, -8898816, -8898048, -8897536, -8896768, -8896256, -8895488, -8894976, -8894208, -8893696, -8892928, -8892416, -8891648, -8891136, -8890368, -8889856, -8889088, -8888576, -8887808, -8887296, -8886528, -8886016, -8885248, -8884736, -8883968, -8883456, -8882688, -8882176, -8881408, -8880893, -8880123, -8879608, -8878838, -8878323, -8877553, -8877038, -8876268, -8875753, -8809447, -8743396, -8677090, -8611039, -8544733, -8478682, -8412376, -8346325, -8280019, -8213968, -8147662, -8081611, -8080841, -8080326, -8079556, -8079041, -8078271, -8077756, -8076986, -8076471, -8075701, -8075186, -8074416, -8073901, -8073131, -8072616, -8071846, -8071331, -8070561, -8070046, -8069276, -8068761, -8067991, -8067476, -8066706, -8066191, -8065421, -8064906, -8064136, -8063621, -8062851, -8062336, -8061566, -8061051, -8061049, -8061046, -8061044, -8061041, -8061039, -8061036, -8061034, -8061031, -8061029, -8061026, -8061024, -8061021, -8061019, -8061016, -8061014, -8061011, -8061009, -8061006, -8061004, -8061001, -8060999, -8060996, -8060994, -8060991, -8060989, -8060986, -8060984, -8060981, -8060979, -8060976, -8060974, -8060971, -8060969, -8060966, -8060964, -8060961, -8060959, -8060956, -8060954, -8060951, -8060949, -8060946, -8060944, -8060941, -8060939, -8060936, -8060934, -8060931, -8060929, -8060929, -8060929, -8060929, -8060929, -8060929, -8060929, -8060929, -8060929, -8060929, -8060929, -8060929, -8060929, -8060929, -8060929, -8060929, -8060929, -8060929, -8060929, -8060929, -8060929, -8060929, -8060929, -8060929, -8060929, -7864321, -7733249, -7536641, -7340033, -7208961, -7012353, -6881281, -6684673, -6553601, -6356993, -6225921, -6029313, -5898241, -5701633, -5570561, -5373953, -5242881, -5046273, -4915201, -4718593, -4587521, -4390913, -4259841, -4063233, -3932161, -3735553, -3604481, -3407873, -3276801, -3080193, -2949121, -2752513, -2621441, -2424833, -2293761, -2097153, -1966081, -1769473, -1638401, -1441793, -1310721, -1114113, -983041, -786433, -655361, -458753, -327681, -131073, -1, -1, -1]))));
    this.b22_1 = new Entry_2('lingrey', PaletteType_SEQUENTIAL_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.x20(new Int32Array([-16777216, -16777216, -16777216, -16777216, -16777216, -16777216, -16777216, -16711423, -16711423, -16711423, -16711423, -16711423, -16711423, -16711423, -16711423, -16711423, -16645630, -16645630, -16645630, -16645630, -16645630, -16645630, -16645630, -16579837, -16579837, -16579837, -16579837, -16579837, -16579837, -16579837, -16514044, -16514044, -16514044, -16514044, -16514044, -16448251, -16448251, -16448251, -16448251, -16448251, -16382458, -16382458, -16382458, -16382458, -16382458, -16316665, -16316665, -16316665, -16316665, -16316665, -16250872, -16250872, -16185079, -16185079, -16185079, -16185079, -16119286, -16119286, -16119286, -16119286, -16119286, -16053493, -16053493, -15987700, -15987700, -15987700, -15921907, -15921907, -15856114, -15856114, -15790321, -15790321, -15790321, -15724528, -15724528, -15658735, -15658735, -15592942, -15592942, -15527149, -15527149, -15527149, -15527149, -15527149, -15461356, -15461356, -15329770, -15329770, -15329770, -15263977, -15263977, -15198184, -15198184, -15066598, -15066598, -15066598, -15000805, -15000805, -14869219, -14869219, -14803426, -14803426, -14671840, -14671840, -14671840, -14671840, -14671840, -14540254, -14540254, -14474461, -14474461, -14474461, -14342875, -14342875, -14211289, -14211289, -14079703, -14079703, -14079703, -13948117, -13948117, -13816531, -13816531, -13750738, -13750738, -13750738, -13684945, -13684945, -13553359, -13553359, -13421773, -13421773, -13355980, -13355980, -13355980, -13224394, -13224394, -13092808, -13092808, -12895429, -12895429, -12895429, -12763843, -12763843, -12566464, -12566464, -12369085, -12369085, -12369085, -12237499, -12237499, -12040120, -12040120, -11842741, -11842741, -11776948, -11776948, -11776948, -11645362, -11645362, -11447983, -11447983, -11250604, -11250604, -11250604, -11053225, -11053225, -10790053, -10790053, -10592674, -10592674, -10592674, -10395295, -10395295, -10132123, -10132123, -9934744, -9934744, -9737365, -9737365, -9737365, -9671572, -9671572, -9408400, -9408400, -9145228, -9145228, -9145228, -8882056, -8882056, -8618884, -8618884, -8355712, -8355712, -8355712, -8092540, -8092540, -7829368, -7829368, -7500403, -7500403, -7237231, -7237231, -7237231, -7105645, -7105645, -6908266, -6908266, -6645094, -6645094, -6645094, -6316129, -6316129, -5987164, -5987164, -5658199, -5658199, -5658199, -5329234, -5329234, -5000269, -5000269, -4605511, -4605511, -4276546, -4276546, -4276546, -3947581, -3947581, -3947581, -3947581, -3552823, -3552823, -3552823, -3158065, -3158065, -2829100, -2829100, -2434342, -2434342, -2434342, -2039584, -2039584, -1644826, -1644826, -1184275, -1184275, -789517, -789517, -789517, -394759, -394759, -197380, -197380, -197380, -1]))));
    this.c22_1 = new Entry_2('YlOrRd', PaletteType_SEQUENTIAL_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.x20(new Int32Array([-52, -78, -4704, -75402, -78756, -85428, -160452, -242134, -1033440, -1893860, -4390874, -5177306, -8388570]))));
    this.d22_1 = new Entry_2('PRGn', PaletteType_DIVERGING_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.x20(new Int32Array([-12582837, -9033085, -8703340, -6721365, -5272125, -4020785, -1583896, -526345, -2494253, -5842016, -8405125, -10834335, -16742345, -14976969, -16759781]))));
    this.e22_1 = new Entry_2('PuOr', PaletteType_DIVERGING_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.x20(new Int32Array([-8439032, -5023738, -1679103, -2063852, -941248, -149405, -73546, -526345, -2565397, -5067822, -6713661, -8358996, -10601319, -11262072, -13828021]))));
    this.f22_1 = new Entry_2('RdGy', PaletteType_DIVERGING_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.x20(new Int32Array([-10026977, -5105621, -3538912, -2727859, -1078686, -744062, -140345, -1, -2039584, -4539718, -6710887, -7895161, -12566464, -11711155, -15066598]))));
    this.g22_1 = new Entry_2('Spectral', PaletteType_DIVERGING_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.x20(new Int32Array([-6422206, -2802097, -2680548, -758461, -225959, -151967, -73589, -65, -1641064, -5513820, -6695532, -10042715, -13925446, -13465411, -10596446]))));
    this.h22_1 = new Entry_2('Grays', PaletteType_SEQUENTIAL_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.x20(new Int32Array([-1, -526345, -986896, -2500135, -3355444, -4342339, -6908266, -9211021, -10263709, -11382190, -14342875, -14342875, -16777216]))));
    this.i22_1 = new Entry_2('PuBuGn', PaletteType_SEQUENTIAL_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.x20(new Int32Array([-2053, -593929, -1252624, -3091994, -4339231, -5849637, -9131569, -13201216, -14905191, -16612982, -16683943, -16686000, -16693706]))));
    this.j22_1 = new Entry_2('RdPu', PaletteType_SEQUENTIAL_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.x20(new Int32Array([-2061, -70686, -139043, -211520, -281415, -352331, -563039, -2280297, -3859574, -5373570, -8781449, -8781449, -11992982]))));
    this.k22_1 = new Entry_2('BuPu', PaletteType_SEQUENTIAL_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.x20(new Int32Array([-525059, -1181445, -2036492, -4205594, -4993565, -6374182, -7563578, -7574607, -7842137, -7847523, -8319108, -9567893, -11730869]))));
    this.l22_1 = new Entry_2('YlOrBr', PaletteType_SEQUENTIAL_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.x20(new Int32Array([-27, -44, -2116, -72815, -75378, -80817, -91863, -1282028, -2531570, -3388414, -6736892, -7590652, -10083066]))));
    this.m22_1 = new Entry_2('Greens', PaletteType_SEQUENTIAL_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.x20(new Int32Array([-525067, -1181463, -1706528, -3675712, -4528973, -6170213, -9124746, -12473507, -13524140, -14447803, -16749268, -16754126, -16759781]))));
    this.n22_1 = new Entry_2('BuGn', PaletteType_SEQUENTIAL_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.x20(new Int32Array([-525059, -1181445, -1706503, -3347226, -5053726, -6694711, -10042716, -12472714, -13852065, -14447803, -16749268, -16754652, -16759781]))));
    this.o22_1 = new Entry_2('Accents', PaletteType_QUALITATIVE_getInstance(), FixedPalette.x20(new Int32Array([-8402561, -4280620, -147322, -103, -13079376, -1047937, -4236521, -10066330])));
    this.p22_1 = new Entry_2('GnBu', PaletteType_SEQUENTIAL_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.x20(new Int32Array([-525072, -984600, -2034725, -3347515, -4528964, -5710411, -8663868, -11619373, -12344630, -13923138, -16226132, -16230242, -16236415]))));
    this.q22_1 = new Entry_2('PuRd', PaletteType_SEQUENTIAL_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.x20(new Int32Array([-527111, -921866, -1580561, -2836006, -2640424, -3566393, -2136656, -1627766, -2286473, -3272106, -6815677, -7274433, -10026977]))));
    this.r22_1 = new Entry_2('Purples', PaletteType_SEQUENTIAL_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.x20(new Int32Array([-197635, -855817, -1053195, -2434325, -3421726, -4407844, -6382904, -8356422, -9081935, -9809501, -11262065, -11922298, -12648323]))));
    this.s22_1 = new Entry_2('RdYlGn', PaletteType_DIVERGING_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.x20(new Int32Array([-5963738, -2674649, -2680548, -758461, -225959, -151967, -73589, -65, -2494581, -5842582, -7221408, -10044061, -15034815, -15034288, -16750537]))));
    this.t22_1 = new Entry_2('Paired', PaletteType_QUALITATIVE_getInstance(), FixedPalette.x20(new Int32Array([-5845277, -14714700, -5054582, -13393876, -288103, -1893860, -147601, -33024, -3493162, -9814630, -103, -5154520])));
    this.u22_1 = new Entry_2('Blues', PaletteType_SEQUENTIAL_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.x20(new Int32Array([-525313, -1051649, -2167817, -3744785, -4335641, -6370591, -9720106, -12414266, -13532483, -14585419, -16232036, -16235116, -16240533]))));
    this.v22_1 = new Entry_2('RdBu', PaletteType_DIVERGING_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.x20(new Int32Array([-10026977, -5105621, -3538912, -2727859, -1078686, -744062, -140345, -526345, -3021328, -7158306, -9983537, -12348477, -16420432, -14588244, -16437151]))));
    this.w22_1 = new Entry_2('Oranges', PaletteType_SEQUENTIAL_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.x20(new Int32Array([-2581, -70178, -71986, -143198, -147835, -151957, -160452, -956141, -1682163, -2537471, -5884413, -7590652, -8444156]))));
    this.x22_1 = new Entry_2('RdYlBu', PaletteType_DIVERGING_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.x20(new Int32Array([-5963738, -2674649, -2680548, -758461, -225959, -151967, -73584, -65, -2034696, -5514775, -7225381, -9130543, -13861962, -12225100, -13551979]))));
    this.y22_1 = new Entry_2('PuBu', PaletteType_SEQUENTIAL_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.x20(new Int32Array([-2053, -921866, -1251342, -3091994, -4339231, -5849637, -9983537, -13201216, -13923138, -16420688, -16491891, -16560517, -16631720]))));
    this.z22_1 = new Entry_2('OrRd', PaletteType_SEQUENTIAL_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.x20(new Int32Array([-2068, -69415, -71480, -142178, -144246, -148604, -225959, -1088184, -1881549, -2674657, -5046272, -6750208, -8454144]))));
    this.a23_1 = new Entry_2('Set3', PaletteType_QUALITATIVE_getInstance(), FixedPalette.x20(new Int32Array([-7482425, -77, -4277542, -294798, -8343085, -150430, -4989335, -209435, -2500135, -4423491, -3347515, -4753])));
    this.b23_1 = new Entry_2('Set2', PaletteType_QUALITATIVE_getInstance(), FixedPalette.x20(new Int32Array([-10042715, -225950, -7495477, -1602877, -5842860, -9937, -1719148, -5000269])));
    this.c23_1 = new Entry_2('Set1', PaletteType_QUALITATIVE_getInstance(), FixedPalette.x20(new Int32Array([-1828324, -13140296, -11686070, -6795613, -33024, -205, -5876184, -556609, -6710887])));
    this.d23_1 = new Entry_2('Reds', PaletteType_SEQUENTIAL_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.x20(new Int32Array([-2576, -72231, -73518, -214111, -217455, -224654, -300470, -1098964, -2216666, -3467235, -5959915, -6750195, -10026995]))));
    this.e23_1 = new Entry_2('PiYG', PaletteType_DIVERGING_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.x20(new Int32Array([-7470766, -3859587, -3138421, -2197586, -1465399, -936230, -139025, -526345, -1641008, -4660858, -6170774, -8405951, -11686874, -11693535, -14195687]))));
    this.f23_1 = new Entry_2('Dark2', PaletteType_QUALITATIVE_getInstance(), FixedPalette.x20(new Int32Array([-14967177, -2531582, -9080653, -1627766, -10050018, -1660158, -5868003, -10066330])));
    this.g23_1 = new Entry_2('YlGn', PaletteType_SEQUENTIAL_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.x20(new Int32Array([-27, -52, -525127, -2494301, -4004199, -5382770, -8862087, -12473507, -13524140, -14449597, -16750537, -16754126, -16759511]))));
    this.h23_1 = new Entry_2('BrBG', PaletteType_DIVERGING_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.x20(new Int32Array([-11259899, -7581430, -5873382, -4226771, -2575515, -2112899, -595773, -657931, -3675419, -8335935, -10832724, -13265009, -16677519, -16685474, -16761808]))));
    this.i23_1 = new Entry_2('YlGnBu', PaletteType_SEQUENTIAL_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.x20(new Int32Array([-39, -52, -1181519, -3675724, -6169932, -8401477, -12470615, -14839360, -13860936, -14524248, -14338924, -15979388, -16245416]))));
    this.j23_1 = new Entry_2('Pastel2', PaletteType_QUALITATIVE_getInstance(), FixedPalette.x20(new Int32Array([-4988211, -143956, -3418648, -734492, -1641015, -3410, -924980, -3355444])));
    this.k23_1 = new Entry_2('Pastel1', PaletteType_QUALITATIVE_getInstance(), FixedPalette.x20(new Int32Array([-281426, -4993565, -3347515, -2176028, -75354, -52, -1713987, -140564, -855310])));
    this.l23_1 = new Entry_2('IsoL', PaletteType_DIVERGING_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.z20([colorOf_2(0.9102, 0.2236, 0.8997), colorOf_2(0.4027, 0.3711, 1.0), colorOf_2(0.0422, 0.5904, 0.5899), colorOf_2(0.0386, 0.6206, 0.0201), colorOf_2(0.5441, 0.5428, 0.011), colorOf_2(1.0, 0.2288, 0.1631)])));
    this.m23_1 = new Entry_2('CubicL', PaletteType_DIVERGING_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.z20([colorOf_2(0.4706, 0.0, 0.5216), colorOf_2(0.5137, 0.0527, 0.7096), colorOf_2(0.4942, 0.2507, 0.8781), colorOf_2(0.4296, 0.3858, 0.9922), colorOf_2(0.3691, 0.5172, 0.9495), colorOf_2(0.2963, 0.6191, 0.8515), colorOf_2(0.2199, 0.7134, 0.7225), colorOf_2(0.2643, 0.7836, 0.5756), colorOf_2(0.3094, 0.8388, 0.4248), colorOf_2(0.3623, 0.8917, 0.2858), colorOf_2(0.52, 0.921, 0.3137), colorOf_2(0.68, 0.9255, 0.3386), colorOf_2(0.8, 0.9255, 0.3529), colorOf_2(0.8706, 0.8549, 0.3608), colorOf_2(0.9514, 0.7466, 0.3686), colorOf_2(0.9765, 0.5887, 0.3569)])));
    this.n23_1 = new Entry_2('Edge', PaletteType_DIVERGING_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.z20([colorOf_2(0.0, 0.0, 0.0), colorOf_2(0.0, 0.0, 1.0), colorOf_2(0.0, 1.0, 1.0), colorOf_2(1.0, 1.0, 1.0), colorOf_2(1.0, 1.0, 0.0), colorOf_2(1.0, 0.0, 0.0), colorOf_2(0.0, 0.0, 0.0)])));
    this.o23_1 = new Entry_2('coolwarm', PaletteType_DIVERGING_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.z20([colorOf_2(0.2298057, 0.29871798, 0.75368315), colorOf_2(0.23437709, 0.30554172, 0.75967956), colorOf_2(0.23894846, 0.3123655, 0.7656759), colorOf_2(0.24351984, 0.31918925, 0.77167225), colorOf_2(0.24809122, 0.32601303, 0.77766865), colorOf_2(0.2526626, 0.33283678, 0.783665), colorOf_2(0.25723398, 0.33966056, 0.7896614), colorOf_2(0.26180536, 0.3464843, 0.79565775), colorOf_2(0.26638147, 0.35330442, 0.8016373), colorOf_2(0.2711043, 0.36001065, 0.8070951), colorOf_2(0.2758271, 0.36671692, 0.8125529), colorOf_2(0.28054994, 0.37342316, 0.81801075), colorOf_2(0.28527278, 0.38012943, 0.82346857), colorOf_2(0.2899956, 0.38683566, 0.8289264), colorOf_2(0.29471844, 0.39354193, 0.83438414), colorOf_2(0.29944125, 0.40024817, 0.83984196), colorOf_2(0.30417427, 0.40694487, 0.8452627), colorOf_2(0.3090603, 0.41349828, 0.85012764), colorOf_2(0.31394634, 0.42005166, 0.85499257), colorOf_2(0.3188324, 0.42660505, 0.85985744), colorOf_2(0.32371843, 0.43315843, 0.8647224), colorOf_2(0.32860446, 0.43971184, 0.86958724), colorOf_2(0.3334905, 0.44626522, 0.8744522), colorOf_2(0.33837652, 0.4528186, 0.8793171), colorOf_2(0.3432775, 0.45935363, 0.8841219), colorOf_2(0.34832335, 0.46571115, 0.88834614), colorOf_2(0.35336915, 0.47206867, 0.8925704), colorOf_2(0.35841498, 0.47842616, 0.8967946), colorOf_2(0.3634608, 0.48478368, 0.90101886), colorOf_2(0.3685066, 0.4911412, 0.9052431), colorOf_2(0.37355244, 0.4974987, 0.9094674), colorOf_2(0.37859824, 0.50385624, 0.91369164), colorOf_2(0.38366207, 0.5101834, 0.91783065), colorOf_2(0.38885188, 0.5162984, 0.9213735), colorOf_2(0.3940417, 0.52241343, 0.92491627), colorOf_2(0.3992315, 0.52852845, 0.9284591), colorOf_2(0.4044213, 0.5346435, 0.9320019), colorOf_2(0.4096111, 0.5407585, 0.9355447), colorOf_2(0.4148009, 0.5468735, 0.9390875), colorOf_2(0.41999072, 0.5529885, 0.94263035), colorOf_2(0.42519897, 0.5590582, 0.94606143), colorOf_2(0.43050689, 0.56488276, 0.94888943), colorOf_2(0.4358148, 0.5707073, 0.9517174), colorOf_2(0.4411227, 0.5765319, 0.9545453), colorOf_2(0.44643065, 0.58235645, 0.9573733), colorOf_2(0.45173857, 0.58818096, 0.96020126), colorOf_2(0.45704648, 0.5940055, 0.9630292), colorOf_2(0.4623544, 0.5998301, 0.9658572), colorOf_2(0.4676781, 0.60559124, 0.9685463), colorOf_2(0.47307017, 0.6110774, 0.97063357), colorOf_2(0.47846225, 0.6165636, 0.9727209), colorOf_2(0.48385432, 0.62204987, 0.9748082), colorOf_2(0.4892464, 0.62753606, 0.9768955), colorOf_2(0.49463847, 0.63302225, 0.9789828), colorOf_2(0.5000306, 0.63850844, 0.9810701), colorOf_2(0.50542265, 0.6439947, 0.98315746), colorOf_2(0.5108243, 0.6493966, 0.98507875), colorOf_2(0.5162603, 0.6544976, 0.9864074), colorOf_2(0.52169627, 0.6595986, 0.98773605), colorOf_2(0.5271323, 0.6646996, 0.98906463), colorOf_2(0.5325682, 0.6698006, 0.9903933), colorOf_2(0.5380042, 0.6749016, 0.99172187), colorOf_2(0.5434402, 0.68000257, 0.9930505), colorOf_2(0.54887617, 0.6851036, 0.99437916), colorOf_2(0.5543119, 0.69009703, 0.9955155), colorOf_2(0.55974674, 0.6947677, 0.99607533), colorOf_2(0.56518155, 0.69943845, 0.9966351), colorOf_2(0.5706164, 0.70410913, 0.9971948), colorOf_2(0.5760513, 0.7087799, 0.9977546), colorOf_2(0.58148617, 0.7134506, 0.9983144), colorOf_2(0.586921, 0.7181213, 0.9988741), colorOf_2(0.59235585, 0.722792, 0.9994339), colorOf_2(0.5977768, 0.72732973, 0.9997767), colorOf_2(0.60316205, 0.73152745, 0.9995653), colorOf_2(0.6085474, 0.7357252, 0.9993538), colorOf_2(0.61393267, 0.739923, 0.99914235), colorOf_2(0.61931795, 0.7441207, 0.99893093), colorOf_2(0.6247032, 0.7483185, 0.99871945), colorOf_2(0.6300885, 0.7525162, 0.99850804), colorOf_2(0.63547385, 0.756714, 0.99829656), colorOf_2(0.6408278, 0.7607515, 0.99784577), colorOf_2(0.6461128, 0.7644365, 0.9968685), colorOf_2(0.6513978, 0.7681215, 0.99589115), colorOf_2(0.65668285, 0.7718065, 0.9949138), colorOf_2(0.6619679, 0.7754915, 0.99393654), colorOf_2(0.6672529, 0.7791765, 0.9929592), colorOf_2(0.672538, 0.7828615, 0.9919819), colorOf_2(0.677823, 0.7865464, 0.9910046), colorOf_2(0.6830557, 0.79004264, 0.98976845), colorOf_2(0.6881885, 0.7931784, 0.9880381), colorOf_2(0.6933213, 0.7963141, 0.9863078), colorOf_2(0.6984541, 0.79944986, 0.9845775), colorOf_2(0.7035869, 0.80258566, 0.98284715), colorOf_2(0.7087197, 0.8057214, 0.98111683), colorOf_2(0.71385247, 0.80885714, 0.9793865), colorOf_2(0.7189853, 0.8119929, 0.9776562), colorOf_2(0.72404134, 0.8149104, 0.97565097), colorOf_2(0.7289696, 0.8174641, 0.9731877), colorOf_2(0.7338978, 0.8200179, 0.97072434), colorOf_2(0.738826, 0.82257164, 0.96826106), colorOf_2(0.7437542, 0.82512534, 0.9657978), colorOf_2(0.74868244, 0.8276791, 0.96333444), colorOf_2(0.7536106, 0.83023286, 0.96087116), colorOf_2(0.75853884, 0.8327866, 0.9584079), colorOf_2(0.76336277, 0.83509225, 0.95565766), colorOf_2(0.76803434, 0.83703524, 0.95248824), colorOf_2(0.772706, 0.83897823, 0.94931877), colorOf_2(0.77737755, 0.8409212, 0.9461493), colorOf_2(0.7820491, 0.8428642, 0.9429799), colorOf_2(0.7867207, 0.8448072, 0.9398104), colorOf_2(0.79139227, 0.8467502, 0.9366409), colorOf_2(0.79606384, 0.8486932, 0.93347144), colorOf_2(0.8006008, 0.8503583, 0.9300076), colorOf_2(0.8049648, 0.85166615, 0.9261651), colorOf_2(0.8093287, 0.852974, 0.9223226), colorOf_2(0.81369257, 0.85428184, 0.9184801), colorOf_2(0.81805646, 0.8555897, 0.9146376), colorOf_2(0.8224204, 0.85689753, 0.91079515), colorOf_2(0.8267843, 0.8582054, 0.9069526), colorOf_2(0.8311482, 0.8595132, 0.90311015), colorOf_2(0.83534473, 0.860514, 0.8989704), colorOf_2(0.8393514, 0.86116683, 0.89449376), colorOf_2(0.84335816, 0.8618196, 0.8900171), colorOf_2(0.8473649, 0.8624725, 0.8855405), colorOf_2(0.85137165, 0.8631253, 0.8810638), colorOf_2(0.8553784, 0.8637781, 0.87658715), colorOf_2(0.8593851, 0.86443096, 0.87211055), colorOf_2(0.8633918, 0.8650838, 0.8676339), colorOf_2(0.86742765, 0.8643766, 0.8626025), colorOf_2(0.8714925, 0.8623094, 0.85701627), colorOf_2(0.87555736, 0.8602422, 0.85143006), colorOf_2(0.8796223, 0.8581749, 0.84584385), colorOf_2(0.88368714, 0.8561077, 0.84025764), colorOf_2(0.887752, 0.8540405, 0.8346715), colorOf_2(0.8918169, 0.8519733, 0.8290853), colorOf_2(0.8958818, 0.849906, 0.8234991), colorOf_2(0.8995432, 0.84750026, 0.8177891), colorOf_2(0.90284866, 0.84479564, 0.8119698), colorOf_2(0.90615416, 0.8420911, 0.8061506), colorOf_2(0.9094596, 0.83938646, 0.80033135), colorOf_2(0.9127651, 0.8366819, 0.7945121), colorOf_2(0.9160705, 0.8339773, 0.7886929), colorOf_2(0.919376, 0.8312727, 0.78287363), colorOf_2(0.92268145, 0.82856816, 0.77705437), colorOf_2(0.9255634, 0.8255173, 0.7711363), colorOf_2(0.928116, 0.82219714, 0.76514137), colorOf_2(0.9306686, 0.818877, 0.7591464), colorOf_2(0.93322116, 0.8155568, 0.7531514), colorOf_2(0.9357738, 0.8122367, 0.7471565), colorOf_2(0.93832636, 0.80891657, 0.7411615), colorOf_2(0.9408789, 0.8055964, 0.73516655), colorOf_2(0.94343156, 0.80227625, 0.7291716), colorOf_2(0.9455403, 0.79860574, 0.72310543), colorOf_2(0.9473454, 0.7946955, 0.71699053), colorOf_2(0.9491505, 0.79078525, 0.7108756), colorOf_2(0.9509556, 0.786875, 0.7047607), colorOf_2(0.9527607, 0.7829648, 0.6986458), colorOf_2(0.9545658, 0.7790546, 0.6925309), colorOf_2(0.95637095, 0.77514434, 0.686416), colorOf_2(0.958176, 0.7712341, 0.680301), colorOf_2(0.95951766, 0.76697284, 0.6741447), colorOf_2(0.9605812, 0.762501, 0.66796356), colorOf_2(0.9616447, 0.75802916, 0.6617824), colorOf_2(0.9627083, 0.7535573, 0.6556012), colorOf_2(0.9637718, 0.7490855, 0.64942), colorOf_2(0.96483535, 0.74461365, 0.6432389), colorOf_2(0.9658989, 0.7401418, 0.6370577), colorOf_2(0.96696246, 0.73567003, 0.63087654), colorOf_2(0.9675443, 0.73084974, 0.62468547), colorOf_2(0.9678739, 0.7258469, 0.6184892), colorOf_2(0.9682034, 0.7208441, 0.612293), colorOf_2(0.9685329, 0.7158413, 0.60609674), colorOf_2(0.9688625, 0.7108385, 0.5999005), colorOf_2(0.969192, 0.7058357, 0.5937043), colorOf_2(0.9695216, 0.70083284, 0.587508), colorOf_2(0.96985114, 0.69583005, 0.58131176), colorOf_2(0.969683, 0.6904839, 0.5751384), colorOf_2(0.9692886, 0.68498176, 0.5689753), colorOf_2(0.9688942, 0.67947954, 0.56281227), colorOf_2(0.9684997, 0.6739774, 0.55664927), colorOf_2(0.9681053, 0.6684752, 0.5504862), colorOf_2(0.9677109, 0.662973, 0.5443232), colorOf_2(0.9673165, 0.6574708, 0.53816015), colorOf_2(0.9669221, 0.65196866, 0.53199714), colorOf_2(0.9660167, 0.6461297, 0.52589035), colorOf_2(0.9649114, 0.6401591, 0.5198056), colorOf_2(0.96380603, 0.6341884, 0.51372087), colorOf_2(0.9627007, 0.62821776, 0.5076361), colorOf_2(0.9615954, 0.6222471, 0.50155133), colorOf_2(0.96049005, 0.61627644, 0.4954666), colorOf_2(0.95938474, 0.6103058, 0.48938185), colorOf_2(0.9582794, 0.60433507, 0.4832971), colorOf_2(0.95665324, 0.59803385, 0.47730228), colorOf_2(0.9548534, 0.59162235, 0.47133747), colorOf_2(0.9530536, 0.58521086, 0.46537262), colorOf_2(0.9512538, 0.57879937, 0.4594078), colorOf_2(0.949454, 0.57238793, 0.453443), colorOf_2(0.9476542, 0.56597644, 0.44747815), colorOf_2(0.94585437, 0.55956495, 0.44151333), colorOf_2(0.94405454, 0.55315346, 0.43554848), colorOf_2(0.94172794, 0.5464135, 0.42970708), colorOf_2(0.93925375, 0.5395815, 0.42390022), colorOf_2(0.9367796, 0.5327495, 0.41809335), colorOf_2(0.9343054, 0.52591753, 0.41228646), colorOf_2(0.9318313, 0.5190855, 0.4064796), colorOf_2(0.9293571, 0.5122535, 0.40067273), colorOf_2(0.926883, 0.5054215, 0.39486587), colorOf_2(0.9244088, 0.49858955, 0.389059), colorOf_2(0.9214062, 0.49142042, 0.38340843), colorOf_2(0.9182817, 0.48417348, 0.37779394), colorOf_2(0.91515714, 0.47692654, 0.37217942), colorOf_2(0.9120326, 0.4696796, 0.3665649), colorOf_2(0.908908, 0.46243262, 0.36095038), colorOf_2(0.9057835, 0.45518568, 0.3553359), colorOf_2(0.90265894, 0.44793874, 0.34972137), colorOf_2(0.8995344, 0.4406918, 0.34410685), colorOf_2(0.8958846, 0.43307456, 0.33868062), colorOf_2(0.8921375, 0.42538872, 0.33328927), colorOf_2(0.8883905, 0.4177029, 0.3278979), colorOf_2(0.88464344, 0.4100171, 0.32250655), colorOf_2(0.8808964, 0.4023313, 0.3171152), colorOf_2(0.87714934, 0.39464545, 0.31172383), colorOf_2(0.8734023, 0.38695964, 0.30633247), colorOf_2(0.86965525, 0.37927383, 0.3009411), colorOf_2(0.8653913, 0.37112767, 0.29576895), colorOf_2(0.8610536, 0.36291575, 0.29062814), colorOf_2(0.85671586, 0.35470384, 0.2854873), colorOf_2(0.85237813, 0.34649193, 0.28034648), colorOf_2(0.8480404, 0.33828005, 0.27520564), colorOf_2(0.8437027, 0.33006814, 0.2700648), colorOf_2(0.83936495, 0.32185623, 0.264924), colorOf_2(0.8350272, 0.31364432, 0.25978315), colorOf_2(0.83018655, 0.30473277, 0.25489143), colorOf_2(0.82529384, 0.29574883, 0.25002548), colorOf_2(0.8204011, 0.28676492, 0.24515952), colorOf_2(0.81550837, 0.27778098, 0.24029356), colorOf_2(0.81061566, 0.26879707, 0.23542762), colorOf_2(0.80572295, 0.25981313, 0.23056166), colorOf_2(0.80083025, 0.25082922, 0.2256957), colorOf_2(0.79593754, 0.24184528, 0.22082976), colorOf_2(0.79056156, 0.231397, 0.21624205), colorOf_2(0.7851533, 0.2208511, 0.21167287), colorOf_2(0.7797451, 0.21030518, 0.20710371), colorOf_2(0.7743369, 0.19975927, 0.20253456), colorOf_2(0.76892865, 0.18921335, 0.1979654), colorOf_2(0.7635204, 0.17866744, 0.19339623), colorOf_2(0.7581122, 0.16812153, 0.18882707), colorOf_2(0.75270396, 0.15757562, 0.18425791), colorOf_2(0.74683803, 0.14002103, 0.1799961), colorOf_2(0.7409573, 0.12224033, 0.1757442), colorOf_2(0.7350766, 0.10445963, 0.17149231), colorOf_2(0.72919595, 0.08667894, 0.1672404), colorOf_2(0.72331524, 0.068898246, 0.1629885), colorOf_2(0.7174345, 0.051117547, 0.1587366), colorOf_2(0.7115539, 0.033336855, 0.1544847), colorOf_2(0.70567316, 0.01555616, 0.1502328)])));
    this.q23_1 = new Entry_2('magma', PaletteType_DIVERGING_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.z20([colorOf_2(0.001462, 4.66E-4, 0.013866), colorOf_2(0.002258, 0.001295, 0.018331), colorOf_2(0.003279, 0.002305, 0.023708), colorOf_2(0.004512, 0.00349, 0.029965), colorOf_2(0.00595, 0.004843, 0.03713), colorOf_2(0.007588, 0.006356, 0.044973), colorOf_2(0.009426, 0.008022, 0.052844), colorOf_2(0.011465, 0.009828, 0.06075), colorOf_2(0.013708, 0.011771, 0.068667), colorOf_2(0.016156, 0.01384, 0.076603), colorOf_2(0.018815, 0.016026, 0.084584), colorOf_2(0.021692, 0.01832, 0.09261), colorOf_2(0.024792, 0.020715, 0.100676), colorOf_2(0.028123, 0.023201, 0.108787), colorOf_2(0.031696, 0.025765, 0.116965), colorOf_2(0.03552, 0.028397, 0.125209), colorOf_2(0.039608, 0.03109, 0.133515), colorOf_2(0.04383, 0.03383, 0.141886), colorOf_2(0.048062, 0.036607, 0.150327), colorOf_2(0.05232, 0.039407, 0.158841), colorOf_2(0.056615, 0.04216, 0.167446), colorOf_2(0.060949, 0.044794, 0.176129), colorOf_2(0.06533, 0.047318, 0.184892), colorOf_2(0.069764, 0.049726, 0.193735), colorOf_2(0.074257, 0.052017, 0.20266), colorOf_2(0.078815, 0.054184, 0.211667), colorOf_2(0.083446, 0.056225, 0.220755), colorOf_2(0.088155, 0.058133, 0.229922), colorOf_2(0.092949, 0.059904, 0.239164), colorOf_2(0.097833, 0.061531, 0.248477), colorOf_2(0.102815, 0.06301, 0.257854), colorOf_2(0.107899, 0.064335, 0.267289), colorOf_2(0.113094, 0.065492, 0.276784), colorOf_2(0.118405, 0.066479, 0.286321), colorOf_2(0.123833, 0.067295, 0.295879), colorOf_2(0.12938, 0.067935, 0.305443), colorOf_2(0.135053, 0.068391, 0.315), colorOf_2(0.140858, 0.068654, 0.324538), colorOf_2(0.146785, 0.068738, 0.334011), colorOf_2(0.152839, 0.068637, 0.343404), colorOf_2(0.159018, 0.068354, 0.352688), colorOf_2(0.165308, 0.067911, 0.361816), colorOf_2(0.171713, 0.067305, 0.370771), colorOf_2(0.178212, 0.066576, 0.379497), colorOf_2(0.184801, 0.065732, 0.387973), colorOf_2(0.19146, 0.064818, 0.396152), colorOf_2(0.198177, 0.063862, 0.404009), colorOf_2(0.204935, 0.062907, 0.411514), colorOf_2(0.211718, 0.061992, 0.418647), colorOf_2(0.218512, 0.061158, 0.425392), colorOf_2(0.225302, 0.060445, 0.431742), colorOf_2(0.232077, 0.059889, 0.437695), colorOf_2(0.238826, 0.059517, 0.443256), colorOf_2(0.245543, 0.059352, 0.448436), colorOf_2(0.25222, 0.059415, 0.453248), colorOf_2(0.258857, 0.059706, 0.45771), colorOf_2(0.265447, 0.060237, 0.46184), colorOf_2(0.271994, 0.060994, 0.46566), colorOf_2(0.278493, 0.061978, 0.46919), colorOf_2(0.284951, 0.063168, 0.472451), colorOf_2(0.291366, 0.064553, 0.475462), colorOf_2(0.29774, 0.066117, 0.478243), colorOf_2(0.304081, 0.067835, 0.480812), colorOf_2(0.310382, 0.069702, 0.483186), colorOf_2(0.316654, 0.07169, 0.48538), colorOf_2(0.322899, 0.073782, 0.487408), colorOf_2(0.329114, 0.075972, 0.489287), colorOf_2(0.335308, 0.078236, 0.491024), colorOf_2(0.341482, 0.080564, 0.492631), colorOf_2(0.347636, 0.082946, 0.494121), colorOf_2(0.353773, 0.085373, 0.495501), colorOf_2(0.359898, 0.087831, 0.496778), colorOf_2(0.366012, 0.090314, 0.49796), colorOf_2(0.372116, 0.092816, 0.499053), colorOf_2(0.378211, 0.095332, 0.500067), colorOf_2(0.384299, 0.097855, 0.501002), colorOf_2(0.390384, 0.100379, 0.501864), colorOf_2(0.396467, 0.102902, 0.502658), colorOf_2(0.402548, 0.10542, 0.503386), colorOf_2(0.408629, 0.10793, 0.504052), colorOf_2(0.414709, 0.110431, 0.504662), colorOf_2(0.420791, 0.11292, 0.505215), colorOf_2(0.426877, 0.115395, 0.505714), colorOf_2(0.432967, 0.117855, 0.50616), colorOf_2(0.439062, 0.120298, 0.506555), colorOf_2(0.445163, 0.122724, 0.506901), colorOf_2(0.451271, 0.125132, 0.507198), colorOf_2(0.457386, 0.127522, 0.507448), colorOf_2(0.463508, 0.129893, 0.507652), colorOf_2(0.46964, 0.132245, 0.507809), colorOf_2(0.47578, 0.134577, 0.507921), colorOf_2(0.481929, 0.136891, 0.507989), colorOf_2(0.488088, 0.139186, 0.508011), colorOf_2(0.494258, 0.141462, 0.507988), colorOf_2(0.500438, 0.143719, 0.50792), colorOf_2(0.506629, 0.145958, 0.507806), colorOf_2(0.512831, 0.148179, 0.507648), colorOf_2(0.519045, 0.150383, 0.507443), colorOf_2(0.52527, 0.152569, 0.507192), colorOf_2(0.531507, 0.154739, 0.506895), colorOf_2(0.537755, 0.156894, 0.506551), colorOf_2(0.544015, 0.159033, 0.506159), colorOf_2(0.550287, 0.161158, 0.505719), colorOf_2(0.556571, 0.163269, 0.50523), colorOf_2(0.562866, 0.165368, 0.504692), colorOf_2(0.569172, 0.167454, 0.504105), colorOf_2(0.57549, 0.16953, 0.503466), colorOf_2(0.581819, 0.171596, 0.502777), colorOf_2(0.588158, 0.173652, 0.502035), colorOf_2(0.594508, 0.175701, 0.501241), colorOf_2(0.600868, 0.177743, 0.500394), colorOf_2(0.607238, 0.179779, 0.499492), colorOf_2(0.613617, 0.181811, 0.498536), colorOf_2(0.620005, 0.18384, 0.497524), colorOf_2(0.626401, 0.185867, 0.496456), colorOf_2(0.632805, 0.187893, 0.495332), colorOf_2(0.639216, 0.189921, 0.49415), colorOf_2(0.645633, 0.191952, 0.49291), colorOf_2(0.652056, 0.193986, 0.491611), colorOf_2(0.658483, 0.196027, 0.490253), colorOf_2(0.664915, 0.198075, 0.488836), colorOf_2(0.671349, 0.200133, 0.487358), colorOf_2(0.677786, 0.202203, 0.485819), colorOf_2(0.684224, 0.204286, 0.484219), colorOf_2(0.690661, 0.206384, 0.482558), colorOf_2(0.697098, 0.208501, 0.480835), colorOf_2(0.703532, 0.210638, 0.479049), colorOf_2(0.709962, 0.212797, 0.477201), colorOf_2(0.716387, 0.214982, 0.47529), colorOf_2(0.722805, 0.217194, 0.473316), colorOf_2(0.729216, 0.219437, 0.471279), colorOf_2(0.735616, 0.221713, 0.46918), colorOf_2(0.742004, 0.224025, 0.467018), colorOf_2(0.748378, 0.226377, 0.464794), colorOf_2(0.754737, 0.228772, 0.462509), colorOf_2(0.761077, 0.231214, 0.460162), colorOf_2(0.767398, 0.233705, 0.457755), colorOf_2(0.773695, 0.236249, 0.455289), colorOf_2(0.779968, 0.238851, 0.452765), colorOf_2(0.786212, 0.241514, 0.450184), colorOf_2(0.792427, 0.244242, 0.447543), colorOf_2(0.798608, 0.24704, 0.444848), colorOf_2(0.804752, 0.249911, 0.442102), colorOf_2(0.810855, 0.252861, 0.439305), colorOf_2(0.816914, 0.255895, 0.436461), colorOf_2(0.822926, 0.259016, 0.433573), colorOf_2(0.828886, 0.262229, 0.430644), colorOf_2(0.834791, 0.26554, 0.427671), colorOf_2(0.840636, 0.268953, 0.424666), colorOf_2(0.846416, 0.272473, 0.421631), colorOf_2(0.852126, 0.276106, 0.418573), colorOf_2(0.857763, 0.279857, 0.415496), colorOf_2(0.86332, 0.283729, 0.412403), colorOf_2(0.868793, 0.287728, 0.409303), colorOf_2(0.874176, 0.291859, 0.406205), colorOf_2(0.879464, 0.296125, 0.403118), colorOf_2(0.884651, 0.30053, 0.400047), colorOf_2(0.889731, 0.305079, 0.397002), colorOf_2(0.8947, 0.309773, 0.393995), colorOf_2(0.899552, 0.314616, 0.391037), colorOf_2(0.904281, 0.31961, 0.388137), colorOf_2(0.908884, 0.324755, 0.385308), colorOf_2(0.913354, 0.330052, 0.382563), colorOf_2(0.917689, 0.3355, 0.379915), colorOf_2(0.921884, 0.341098, 0.377376), colorOf_2(0.925937, 0.346844, 0.374959), colorOf_2(0.929845, 0.352734, 0.372677), colorOf_2(0.933606, 0.358764, 0.370541), colorOf_2(0.937221, 0.364929, 0.368567), colorOf_2(0.940687, 0.371224, 0.366762), colorOf_2(0.944006, 0.377643, 0.365136), colorOf_2(0.94718, 0.384178, 0.363701), colorOf_2(0.95021, 0.39082, 0.362468), colorOf_2(0.953099, 0.397563, 0.361438), colorOf_2(0.955849, 0.4044, 0.360619), colorOf_2(0.958464, 0.411324, 0.360014), colorOf_2(0.960949, 0.418323, 0.35963), colorOf_2(0.96331, 0.42539, 0.359469), colorOf_2(0.965549, 0.432519, 0.359529), colorOf_2(0.967671, 0.439703, 0.35981), colorOf_2(0.96968, 0.446936, 0.360311), colorOf_2(0.971582, 0.45421, 0.36103), colorOf_2(0.973381, 0.46152, 0.361965), colorOf_2(0.975082, 0.468861, 0.363111), colorOf_2(0.97669, 0.476226, 0.364466), colorOf_2(0.97821, 0.483612, 0.366025), colorOf_2(0.979645, 0.491014, 0.367783), colorOf_2(0.981, 0.498428, 0.369734), colorOf_2(0.982279, 0.505851, 0.371874), colorOf_2(0.983485, 0.51328, 0.374198), colorOf_2(0.984622, 0.520713, 0.376698), colorOf_2(0.985693, 0.528148, 0.379371), colorOf_2(0.9867, 0.535582, 0.38221), colorOf_2(0.987646, 0.543015, 0.38521), colorOf_2(0.988533, 0.550446, 0.388365), colorOf_2(0.989363, 0.557873, 0.391671), colorOf_2(0.990138, 0.565296, 0.395122), colorOf_2(0.990871, 0.572706, 0.398714), colorOf_2(0.991558, 0.580107, 0.402441), colorOf_2(0.992196, 0.587502, 0.406299), colorOf_2(0.992785, 0.594891, 0.410283), colorOf_2(0.993326, 0.602275, 0.41439), colorOf_2(0.993834, 0.609644, 0.418613), colorOf_2(0.994309, 0.616999, 0.42295), colorOf_2(0.994738, 0.62435, 0.427397), colorOf_2(0.995122, 0.631696, 0.431951), colorOf_2(0.99548, 0.639027, 0.436607), colorOf_2(0.99581, 0.646344, 0.441361), colorOf_2(0.996096, 0.653659, 0.446213), colorOf_2(0.996341, 0.660969, 0.45116), colorOf_2(0.99658, 0.668256, 0.456192), colorOf_2(0.996775, 0.675541, 0.461314), colorOf_2(0.996925, 0.682828, 0.466526), colorOf_2(0.997077, 0.690088, 0.471811), colorOf_2(0.997186, 0.697349, 0.477182), colorOf_2(0.997254, 0.704611, 0.482635), colorOf_2(0.997325, 0.711848, 0.488154), colorOf_2(0.997351, 0.719089, 0.493755), colorOf_2(0.997351, 0.726324, 0.499428), colorOf_2(0.997341, 0.733545, 0.505167), colorOf_2(0.997285, 0.740772, 0.510983), colorOf_2(0.997228, 0.747981, 0.516859), colorOf_2(0.997138, 0.75519, 0.522806), colorOf_2(0.997019, 0.762398, 0.528821), colorOf_2(0.996898, 0.769591, 0.534892), colorOf_2(0.996727, 0.776795, 0.541039), colorOf_2(0.996571, 0.783977, 0.547233), colorOf_2(0.996369, 0.791167, 0.553499), colorOf_2(0.996162, 0.798348, 0.55982), colorOf_2(0.995932, 0.805527, 0.566202), colorOf_2(0.99568, 0.812706, 0.572645), colorOf_2(0.995424, 0.819875, 0.57914), colorOf_2(0.995131, 0.827052, 0.585701), colorOf_2(0.994851, 0.834213, 0.592307), colorOf_2(0.994524, 0.841387, 0.598983), colorOf_2(0.994222, 0.84854, 0.605696), colorOf_2(0.993866, 0.855711, 0.612482), colorOf_2(0.993545, 0.862859, 0.619299), colorOf_2(0.99317, 0.870024, 0.626189), colorOf_2(0.992831, 0.877168, 0.633109), colorOf_2(0.99244, 0.88433, 0.640099), colorOf_2(0.992089, 0.89147, 0.647116), colorOf_2(0.991688, 0.898627, 0.654202), colorOf_2(0.991332, 0.905763, 0.661309), colorOf_2(0.99093, 0.912915, 0.668481), colorOf_2(0.99057, 0.920049, 0.675675), colorOf_2(0.990175, 0.927196, 0.682926), colorOf_2(0.989815, 0.934329, 0.690198), colorOf_2(0.989434, 0.94147, 0.697519), colorOf_2(0.989077, 0.948604, 0.704863), colorOf_2(0.988717, 0.955742, 0.712242), colorOf_2(0.988367, 0.962878, 0.719649), colorOf_2(0.988033, 0.970012, 0.727077), colorOf_2(0.987691, 0.977154, 0.734536), colorOf_2(0.987387, 0.984288, 0.742002), colorOf_2(0.987053, 0.991438, 0.749504)])));
    this.s23_1 = new Entry_2('inferno', PaletteType_DIVERGING_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.z20([colorOf_2(0.001462, 4.66E-4, 0.013866), colorOf_2(0.002267, 0.00127, 0.01857), colorOf_2(0.003299, 0.002249, 0.024239), colorOf_2(0.004547, 0.003392, 0.030909), colorOf_2(0.006006, 0.004692, 0.038558), colorOf_2(0.007676, 0.006136, 0.046836), colorOf_2(0.009561, 0.007713, 0.055143), colorOf_2(0.011663, 0.009417, 0.06346), colorOf_2(0.013995, 0.011225, 0.071862), colorOf_2(0.016561, 0.013136, 0.080282), colorOf_2(0.019373, 0.015133, 0.088767), colorOf_2(0.022447, 0.017199, 0.097327), colorOf_2(0.025793, 0.019331, 0.10593), colorOf_2(0.029432, 0.021503, 0.114621), colorOf_2(0.033385, 0.023702, 0.123397), colorOf_2(0.037668, 0.025921, 0.132232), colorOf_2(0.042253, 0.028139, 0.141141), colorOf_2(0.046915, 0.030324, 0.150164), colorOf_2(0.051644, 0.032474, 0.159254), colorOf_2(0.056449, 0.034569, 0.168414), colorOf_2(0.06134, 0.03659, 0.177642), colorOf_2(0.066331, 0.038504, 0.186962), colorOf_2(0.071429, 0.040294, 0.196354), colorOf_2(0.076637, 0.041905, 0.205799), colorOf_2(0.081962, 0.043328, 0.215289), colorOf_2(0.087411, 0.044556, 0.224813), colorOf_2(0.09299, 0.045583, 0.234358), colorOf_2(0.098702, 0.046402, 0.243904), colorOf_2(0.104551, 0.047008, 0.25343), colorOf_2(0.110536, 0.047399, 0.262912), colorOf_2(0.116656, 0.047574, 0.272321), colorOf_2(0.122908, 0.047536, 0.281624), colorOf_2(0.129285, 0.047293, 0.290788), colorOf_2(0.135778, 0.046856, 0.299776), colorOf_2(0.142378, 0.046242, 0.308553), colorOf_2(0.149073, 0.045468, 0.317085), colorOf_2(0.15585, 0.044559, 0.325338), colorOf_2(0.162689, 0.043554, 0.333277), colorOf_2(0.169575, 0.042489, 0.340874), colorOf_2(0.176493, 0.041402, 0.348111), colorOf_2(0.183429, 0.040329, 0.354971), colorOf_2(0.190367, 0.039309, 0.361447), colorOf_2(0.197297, 0.0384, 0.367535), colorOf_2(0.204209, 0.037632, 0.373238), colorOf_2(0.211095, 0.03703, 0.378563), colorOf_2(0.217949, 0.036615, 0.383522), colorOf_2(0.224763, 0.036405, 0.388129), colorOf_2(0.231538, 0.036405, 0.3924), colorOf_2(0.238273, 0.036621, 0.396353), colorOf_2(0.244967, 0.037055, 0.400007), colorOf_2(0.25162, 0.037705, 0.403378), colorOf_2(0.258234, 0.038571, 0.406485), colorOf_2(0.26481, 0.039647, 0.409345), colorOf_2(0.271347, 0.040922, 0.411976), colorOf_2(0.27785, 0.042353, 0.414392), colorOf_2(0.284321, 0.043933, 0.416608), colorOf_2(0.290763, 0.045644, 0.418637), colorOf_2(0.297178, 0.04747, 0.420491), colorOf_2(0.303568, 0.049396, 0.422182), colorOf_2(0.309935, 0.051407, 0.423721), colorOf_2(0.316282, 0.05349, 0.425116), colorOf_2(0.32261, 0.055634, 0.426377), colorOf_2(0.328921, 0.057827, 0.427511), colorOf_2(0.335217, 0.06006, 0.428524), colorOf_2(0.3415, 0.062325, 0.429425), colorOf_2(0.347771, 0.064616, 0.430217), colorOf_2(0.354032, 0.066925, 0.430906), colorOf_2(0.360284, 0.069247, 0.431497), colorOf_2(0.366529, 0.071579, 0.431994), colorOf_2(0.372768, 0.073915, 0.4324), colorOf_2(0.379001, 0.076253, 0.432719), colorOf_2(0.385228, 0.078591, 0.432955), colorOf_2(0.391453, 0.080927, 0.433109), colorOf_2(0.397674, 0.083257, 0.433183), colorOf_2(0.403894, 0.08558, 0.433179), colorOf_2(0.410113, 0.087896, 0.433098), colorOf_2(0.416331, 0.090203, 0.432943), colorOf_2(0.422549, 0.092501, 0.432714), colorOf_2(0.428768, 0.09479, 0.432412), colorOf_2(0.434987, 0.097069, 0.432039), colorOf_2(0.441207, 0.099338, 0.431594), colorOf_2(0.447428, 0.101597, 0.43108), colorOf_2(0.453651, 0.103848, 0.430498), colorOf_2(0.459875, 0.106089, 0.429846), colorOf_2(0.4661, 0.108322, 0.429125), colorOf_2(0.472328, 0.110547, 0.428334), colorOf_2(0.478558, 0.112764, 0.427475), colorOf_2(0.484789, 0.114974, 0.426548), colorOf_2(0.491022, 0.117179, 0.425552), colorOf_2(0.497257, 0.119379, 0.424488), colorOf_2(0.503493, 0.121575, 0.423356), colorOf_2(0.50973, 0.123769, 0.422156), colorOf_2(0.515967, 0.12596, 0.420887), colorOf_2(0.522206, 0.12815, 0.419549), colorOf_2(0.528444, 0.130341, 0.418142), colorOf_2(0.534683, 0.132534, 0.416667), colorOf_2(0.54092, 0.134729, 0.415123), colorOf_2(0.547157, 0.136929, 0.413511), colorOf_2(0.553392, 0.139134, 0.411829), colorOf_2(0.559624, 0.141346, 0.410078), colorOf_2(0.565854, 0.143567, 0.408258), colorOf_2(0.572081, 0.145797, 0.406369), colorOf_2(0.578304, 0.148039, 0.404411), colorOf_2(0.584521, 0.150294, 0.402385), colorOf_2(0.590734, 0.152563, 0.40029), colorOf_2(0.59694, 0.154848, 0.398125), colorOf_2(0.603139, 0.157151, 0.395891), colorOf_2(0.60933, 0.159474, 0.393589), colorOf_2(0.615513, 0.161817, 0.391219), colorOf_2(0.621685, 0.164184, 0.388781), colorOf_2(0.627847, 0.166575, 0.386276), colorOf_2(0.633998, 0.168992, 0.383704), colorOf_2(0.640135, 0.171438, 0.381065), colorOf_2(0.64626, 0.173914, 0.378359), colorOf_2(0.652369, 0.176421, 0.375586), colorOf_2(0.658463, 0.178962, 0.372748), colorOf_2(0.66454, 0.181539, 0.369846), colorOf_2(0.670599, 0.184153, 0.366879), colorOf_2(0.676638, 0.186807, 0.363849), colorOf_2(0.682656, 0.189501, 0.360757), colorOf_2(0.688653, 0.192239, 0.357603), colorOf_2(0.694627, 0.195021, 0.354388), colorOf_2(0.700576, 0.197851, 0.351113), colorOf_2(0.7065, 0.200728, 0.347777), colorOf_2(0.712396, 0.203656, 0.344383), colorOf_2(0.718264, 0.206636, 0.340931), colorOf_2(0.724103, 0.20967, 0.337424), colorOf_2(0.729909, 0.212759, 0.333861), colorOf_2(0.735683, 0.215906, 0.330245), colorOf_2(0.741423, 0.219112, 0.326576), colorOf_2(0.747127, 0.222378, 0.322856), colorOf_2(0.752794, 0.225706, 0.319085), colorOf_2(0.758422, 0.229097, 0.315266), colorOf_2(0.76401, 0.232554, 0.311399), colorOf_2(0.769556, 0.236077, 0.307485), colorOf_2(0.775059, 0.239667, 0.303526), colorOf_2(0.780517, 0.243327, 0.299523), colorOf_2(0.785929, 0.247056, 0.295477), colorOf_2(0.791293, 0.250856, 0.29139), colorOf_2(0.796607, 0.254728, 0.287264), colorOf_2(0.801871, 0.258674, 0.283099), colorOf_2(0.807082, 0.262692, 0.278898), colorOf_2(0.812239, 0.266786, 0.274661), colorOf_2(0.817341, 0.270954, 0.27039), colorOf_2(0.822386, 0.275197, 0.266085), colorOf_2(0.827372, 0.279517, 0.26175), colorOf_2(0.832299, 0.283913, 0.257383), colorOf_2(0.837165, 0.288385, 0.252988), colorOf_2(0.841969, 0.292933, 0.248564), colorOf_2(0.846709, 0.297559, 0.244113), colorOf_2(0.851384, 0.30226, 0.239636), colorOf_2(0.855992, 0.307038, 0.235133), colorOf_2(0.860533, 0.311892, 0.230606), colorOf_2(0.865006, 0.316822, 0.226055), colorOf_2(0.869409, 0.321827, 0.221482), colorOf_2(0.873741, 0.326906, 0.216886), colorOf_2(0.878001, 0.33206, 0.212268), colorOf_2(0.882188, 0.337287, 0.207628), colorOf_2(0.886302, 0.342586, 0.202968), colorOf_2(0.890341, 0.347957, 0.198286), colorOf_2(0.894305, 0.353399, 0.193584), colorOf_2(0.898192, 0.358911, 0.18886), colorOf_2(0.902003, 0.364492, 0.184116), colorOf_2(0.905735, 0.37014, 0.17935), colorOf_2(0.90939, 0.375856, 0.174563), colorOf_2(0.912966, 0.381636, 0.169755), colorOf_2(0.916462, 0.387481, 0.164924), colorOf_2(0.919879, 0.393389, 0.16007), colorOf_2(0.923215, 0.399359, 0.155193), colorOf_2(0.92647, 0.405389, 0.150292), colorOf_2(0.929644, 0.411479, 0.145367), colorOf_2(0.932737, 0.417627, 0.140417), colorOf_2(0.935747, 0.423831, 0.13544), colorOf_2(0.938675, 0.430091, 0.130438), colorOf_2(0.941521, 0.436405, 0.125409), colorOf_2(0.944285, 0.442772, 0.120354), colorOf_2(0.946965, 0.449191, 0.115272), colorOf_2(0.949562, 0.45566, 0.110164), colorOf_2(0.952075, 0.462178, 0.105031), colorOf_2(0.954506, 0.468744, 0.099874), colorOf_2(0.956852, 0.475356, 0.094695), colorOf_2(0.959114, 0.482014, 0.089499), colorOf_2(0.961293, 0.488716, 0.084289), colorOf_2(0.963387, 0.495462, 0.079073), colorOf_2(0.965397, 0.502249, 0.073859), colorOf_2(0.967322, 0.509078, 0.068659), colorOf_2(0.969163, 0.515946, 0.063488), colorOf_2(0.970919, 0.522853, 0.058367), colorOf_2(0.97259, 0.529798, 0.053324), colorOf_2(0.974176, 0.53678, 0.048392), colorOf_2(0.975677, 0.543798, 0.043618), colorOf_2(0.977092, 0.55085, 0.03905), colorOf_2(0.978422, 0.557937, 0.034931), colorOf_2(0.979666, 0.565057, 0.031409), colorOf_2(0.980824, 0.572209, 0.028508), colorOf_2(0.981895, 0.579392, 0.02625), colorOf_2(0.982881, 0.586606, 0.024661), colorOf_2(0.983779, 0.593849, 0.02377), colorOf_2(0.984591, 0.601122, 0.023606), colorOf_2(0.985315, 0.608422, 0.024202), colorOf_2(0.985952, 0.61575, 0.025592), colorOf_2(0.986502, 0.623105, 0.027814), colorOf_2(0.986964, 0.630485, 0.030908), colorOf_2(0.987337, 0.63789, 0.034916), colorOf_2(0.987622, 0.64532, 0.039886), colorOf_2(0.987819, 0.652773, 0.045581), colorOf_2(0.987926, 0.66025, 0.05175), colorOf_2(0.987945, 0.667748, 0.058329), colorOf_2(0.987874, 0.675267, 0.065257), colorOf_2(0.987714, 0.682807, 0.072489), colorOf_2(0.987464, 0.690366, 0.07999), colorOf_2(0.987124, 0.697944, 0.087731), colorOf_2(0.986694, 0.70554, 0.095694), colorOf_2(0.986175, 0.713153, 0.103863), colorOf_2(0.985566, 0.720782, 0.112229), colorOf_2(0.984865, 0.728427, 0.120785), colorOf_2(0.984075, 0.736087, 0.129527), colorOf_2(0.983196, 0.743758, 0.138453), colorOf_2(0.982228, 0.751442, 0.147565), colorOf_2(0.981173, 0.759135, 0.156863), colorOf_2(0.980032, 0.766837, 0.166353), colorOf_2(0.978806, 0.774545, 0.176037), colorOf_2(0.977497, 0.782258, 0.185923), colorOf_2(0.976108, 0.789974, 0.196018), colorOf_2(0.974638, 0.797692, 0.206332), colorOf_2(0.973088, 0.805409, 0.216877), colorOf_2(0.971468, 0.813122, 0.227658), colorOf_2(0.969783, 0.820825, 0.238686), colorOf_2(0.968041, 0.828515, 0.249972), colorOf_2(0.966243, 0.836191, 0.261534), colorOf_2(0.964394, 0.843848, 0.273391), colorOf_2(0.962517, 0.851476, 0.285546), colorOf_2(0.960626, 0.859069, 0.29801), colorOf_2(0.95872, 0.866624, 0.31082), colorOf_2(0.956834, 0.874129, 0.323974), colorOf_2(0.954997, 0.881569, 0.337475), colorOf_2(0.953215, 0.888942, 0.351369), colorOf_2(0.951546, 0.896226, 0.365627), colorOf_2(0.950018, 0.903409, 0.380271), colorOf_2(0.948683, 0.910473, 0.395289), colorOf_2(0.947594, 0.917399, 0.410665), colorOf_2(0.946809, 0.924168, 0.426373), colorOf_2(0.946392, 0.930761, 0.442367), colorOf_2(0.946403, 0.937159, 0.458592), colorOf_2(0.946903, 0.943348, 0.47497), colorOf_2(0.947937, 0.949318, 0.491426), colorOf_2(0.949545, 0.955063, 0.50786), colorOf_2(0.95174, 0.960587, 0.524203), colorOf_2(0.954529, 0.965896, 0.540361), colorOf_2(0.957896, 0.971003, 0.556275), colorOf_2(0.961812, 0.975924, 0.571925), colorOf_2(0.966249, 0.980678, 0.587206), colorOf_2(0.971162, 0.985282, 0.602154), colorOf_2(0.976511, 0.989753, 0.61676), colorOf_2(0.982257, 0.994109, 0.631017), colorOf_2(0.988362, 0.998364, 0.644924)])));
    this.r23_1 = new Entry_2('plasma', PaletteType_DIVERGING_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.z20([colorOf_2(0.050383, 0.029803, 0.527975), colorOf_2(0.063536, 0.028426, 0.533124), colorOf_2(0.075353, 0.027206, 0.538007), colorOf_2(0.086222, 0.026125, 0.542658), colorOf_2(0.096379, 0.025165, 0.547103), colorOf_2(0.10598, 0.024309, 0.551368), colorOf_2(0.115124, 0.023556, 0.555468), colorOf_2(0.123903, 0.022878, 0.559423), colorOf_2(0.132381, 0.022258, 0.56325), colorOf_2(0.140603, 0.021687, 0.566959), colorOf_2(0.148607, 0.021154, 0.570562), colorOf_2(0.156421, 0.020651, 0.574065), colorOf_2(0.16407, 0.020171, 0.577478), colorOf_2(0.171574, 0.019706, 0.580806), colorOf_2(0.17895, 0.019252, 0.584054), colorOf_2(0.186213, 0.018803, 0.587228), colorOf_2(0.193374, 0.018354, 0.59033), colorOf_2(0.200445, 0.017902, 0.593364), colorOf_2(0.207435, 0.017442, 0.596333), colorOf_2(0.21435, 0.016973, 0.599239), colorOf_2(0.221197, 0.016497, 0.602083), colorOf_2(0.227983, 0.016007, 0.604867), colorOf_2(0.234715, 0.015502, 0.607592), colorOf_2(0.241396, 0.014979, 0.610259), colorOf_2(0.248032, 0.014439, 0.612868), colorOf_2(0.254627, 0.013882, 0.615419), colorOf_2(0.261183, 0.013308, 0.617911), colorOf_2(0.267703, 0.012716, 0.620346), colorOf_2(0.274191, 0.012109, 0.622722), colorOf_2(0.280648, 0.011488, 0.625038), colorOf_2(0.287076, 0.010855, 0.627295), colorOf_2(0.293478, 0.010213, 0.62949), colorOf_2(0.299855, 0.009561, 0.631624), colorOf_2(0.30621, 0.008902, 0.633694), colorOf_2(0.312543, 0.008239, 0.6357), colorOf_2(0.318856, 0.007576, 0.63764), colorOf_2(0.32515, 0.006915, 0.639512), colorOf_2(0.331426, 0.006261, 0.641316), colorOf_2(0.337683, 0.005618, 0.643049), colorOf_2(0.343925, 0.004991, 0.64471), colorOf_2(0.35015, 0.004382, 0.646298), colorOf_2(0.356359, 0.003798, 0.64781), colorOf_2(0.362553, 0.003243, 0.649245), colorOf_2(0.368733, 0.002724, 0.650601), colorOf_2(0.374897, 0.002245, 0.651876), colorOf_2(0.381047, 0.001814, 0.653068), colorOf_2(0.387183, 0.001434, 0.654177), colorOf_2(0.393304, 0.001114, 0.655199), colorOf_2(0.399411, 8.59E-4, 0.656133), colorOf_2(0.405503, 6.78E-4, 0.656977), colorOf_2(0.41158, 5.77E-4, 0.65773), colorOf_2(0.417642, 5.64E-4, 0.65839), colorOf_2(0.423689, 6.46E-4, 0.658956), colorOf_2(0.429719, 8.31E-4, 0.659425), colorOf_2(0.435734, 0.001127, 0.659797), colorOf_2(0.441732, 0.00154, 0.660069), colorOf_2(0.447714, 0.00208, 0.66024), colorOf_2(0.453677, 0.002755, 0.66031), colorOf_2(0.459623, 0.003574, 0.660277), colorOf_2(0.46555, 0.004545, 0.660139), colorOf_2(0.471457, 0.005678, 0.659897), colorOf_2(0.477344, 0.00698, 0.659549), colorOf_2(0.48321, 0.00846, 0.659095), colorOf_2(0.489055, 0.010127, 0.658534), colorOf_2(0.494877, 0.01199, 0.657865), colorOf_2(0.500678, 0.014055, 0.657088), colorOf_2(0.506454, 0.016333, 0.656202), colorOf_2(0.512206, 0.018833, 0.655209), colorOf_2(0.517933, 0.021563, 0.654109), colorOf_2(0.523633, 0.024532, 0.652901), colorOf_2(0.529306, 0.027747, 0.651586), colorOf_2(0.534952, 0.031217, 0.650165), colorOf_2(0.54057, 0.03495, 0.64864), colorOf_2(0.546157, 0.038954, 0.64701), colorOf_2(0.551715, 0.043136, 0.645277), colorOf_2(0.557243, 0.047331, 0.643443), colorOf_2(0.562738, 0.051545, 0.641509), colorOf_2(0.568201, 0.055778, 0.639477), colorOf_2(0.573632, 0.060028, 0.637349), colorOf_2(0.579029, 0.064296, 0.635126), colorOf_2(0.584391, 0.068579, 0.632812), colorOf_2(0.589719, 0.072878, 0.630408), colorOf_2(0.595011, 0.07719, 0.627917), colorOf_2(0.600266, 0.081516, 0.625342), colorOf_2(0.605485, 0.085854, 0.622686), colorOf_2(0.610667, 0.090204, 0.619951), colorOf_2(0.615812, 0.094564, 0.61714), colorOf_2(0.620919, 0.098934, 0.614257), colorOf_2(0.625987, 0.103312, 0.611305), colorOf_2(0.631017, 0.107699, 0.608287), colorOf_2(0.636008, 0.112092, 0.605205), colorOf_2(0.640959, 0.116492, 0.602065), colorOf_2(0.645872, 0.120898, 0.598867), colorOf_2(0.650746, 0.125309, 0.595617), colorOf_2(0.65558, 0.129725, 0.592317), colorOf_2(0.660374, 0.134144, 0.588971), colorOf_2(0.665129, 0.138566, 0.585582), colorOf_2(0.669845, 0.142992, 0.582154), colorOf_2(0.674522, 0.147419, 0.578688), colorOf_2(0.67916, 0.151848, 0.575189), colorOf_2(0.683758, 0.156278, 0.57166), colorOf_2(0.688318, 0.160709, 0.568103), colorOf_2(0.69284, 0.165141, 0.564522), colorOf_2(0.697324, 0.169573, 0.560919), colorOf_2(0.701769, 0.174005, 0.557296), colorOf_2(0.706178, 0.178437, 0.553657), colorOf_2(0.710549, 0.182868, 0.550004), colorOf_2(0.714883, 0.187299, 0.546338), colorOf_2(0.719181, 0.191729, 0.542663), colorOf_2(0.723444, 0.196158, 0.538981), colorOf_2(0.72767, 0.200586, 0.535293), colorOf_2(0.731862, 0.205013, 0.531601), colorOf_2(0.736019, 0.209439, 0.527908), colorOf_2(0.740143, 0.213864, 0.524216), colorOf_2(0.744232, 0.218288, 0.520524), colorOf_2(0.748289, 0.222711, 0.516834), colorOf_2(0.752312, 0.227133, 0.513149), colorOf_2(0.756304, 0.231555, 0.509468), colorOf_2(0.760264, 0.235976, 0.505794), colorOf_2(0.764193, 0.240396, 0.502126), colorOf_2(0.76809, 0.244817, 0.498465), colorOf_2(0.771958, 0.249237, 0.494813), colorOf_2(0.775796, 0.253658, 0.491171), colorOf_2(0.779604, 0.258078, 0.487539), colorOf_2(0.783383, 0.2625, 0.483918), colorOf_2(0.787133, 0.266922, 0.480307), colorOf_2(0.790855, 0.271345, 0.476706), colorOf_2(0.794549, 0.27577, 0.473117), colorOf_2(0.798216, 0.280197, 0.469538), colorOf_2(0.801855, 0.284626, 0.465971), colorOf_2(0.805467, 0.289057, 0.462415), colorOf_2(0.809052, 0.293491, 0.45887), colorOf_2(0.812612, 0.297928, 0.455338), colorOf_2(0.816144, 0.302368, 0.451816), colorOf_2(0.819651, 0.306812, 0.448306), colorOf_2(0.823132, 0.311261, 0.444806), colorOf_2(0.826588, 0.315714, 0.441316), colorOf_2(0.830018, 0.320172, 0.437836), colorOf_2(0.833422, 0.324635, 0.434366), colorOf_2(0.836801, 0.329105, 0.430905), colorOf_2(0.840155, 0.33358, 0.427455), colorOf_2(0.843484, 0.338062, 0.424013), colorOf_2(0.846788, 0.342551, 0.420579), colorOf_2(0.850066, 0.347048, 0.417153), colorOf_2(0.853319, 0.351553, 0.413734), colorOf_2(0.856547, 0.356066, 0.410322), colorOf_2(0.85975, 0.360588, 0.406917), colorOf_2(0.862927, 0.365119, 0.403519), colorOf_2(0.866078, 0.36966, 0.400126), colorOf_2(0.869203, 0.374212, 0.396738), colorOf_2(0.872303, 0.378774, 0.393355), colorOf_2(0.875376, 0.383347, 0.389976), colorOf_2(0.878423, 0.387932, 0.3866), colorOf_2(0.881443, 0.392529, 0.383229), colorOf_2(0.884436, 0.397139, 0.37986), colorOf_2(0.887402, 0.401762, 0.376494), colorOf_2(0.89034, 0.406398, 0.37313), colorOf_2(0.89325, 0.411048, 0.369768), colorOf_2(0.896131, 0.415712, 0.366407), colorOf_2(0.898984, 0.420392, 0.363047), colorOf_2(0.901807, 0.425087, 0.359688), colorOf_2(0.904601, 0.429797, 0.356329), colorOf_2(0.907365, 0.434524, 0.35297), colorOf_2(0.910098, 0.439268, 0.34961), colorOf_2(0.9128, 0.444029, 0.346251), colorOf_2(0.915471, 0.448807, 0.34289), colorOf_2(0.918109, 0.453603, 0.339529), colorOf_2(0.920714, 0.458417, 0.336166), colorOf_2(0.923287, 0.463251, 0.332801), colorOf_2(0.925825, 0.468103, 0.329435), colorOf_2(0.928329, 0.472975, 0.326067), colorOf_2(0.930798, 0.477867, 0.322697), colorOf_2(0.933232, 0.48278, 0.319325), colorOf_2(0.93563, 0.487712, 0.315952), colorOf_2(0.93799, 0.492667, 0.312575), colorOf_2(0.940313, 0.497642, 0.309197), colorOf_2(0.942598, 0.502639, 0.305816), colorOf_2(0.944844, 0.507658, 0.302433), colorOf_2(0.947051, 0.512699, 0.299049), colorOf_2(0.949217, 0.517763, 0.295662), colorOf_2(0.951344, 0.52285, 0.292275), colorOf_2(0.953428, 0.52796, 0.288883), colorOf_2(0.95547, 0.533093, 0.28549), colorOf_2(0.957469, 0.53825, 0.282096), colorOf_2(0.959424, 0.543431, 0.278701), colorOf_2(0.961336, 0.548636, 0.275305), colorOf_2(0.963203, 0.553865, 0.271909), colorOf_2(0.965024, 0.559118, 0.268513), colorOf_2(0.966798, 0.564396, 0.265118), colorOf_2(0.968526, 0.5697, 0.261721), colorOf_2(0.970205, 0.575028, 0.258325), colorOf_2(0.971835, 0.580382, 0.254931), colorOf_2(0.973416, 0.585761, 0.25154), colorOf_2(0.974947, 0.591165, 0.248151), colorOf_2(0.976428, 0.596595, 0.244767), colorOf_2(0.977856, 0.602051, 0.241387), colorOf_2(0.979233, 0.607532, 0.238013), colorOf_2(0.980556, 0.613039, 0.234646), colorOf_2(0.981826, 0.618572, 0.231287), colorOf_2(0.983041, 0.624131, 0.227937), colorOf_2(0.984199, 0.629718, 0.224595), colorOf_2(0.985301, 0.63533, 0.221265), colorOf_2(0.986345, 0.640969, 0.217948), colorOf_2(0.987332, 0.646633, 0.214648), colorOf_2(0.98826, 0.652325, 0.211364), colorOf_2(0.989128, 0.658043, 0.2081), colorOf_2(0.989935, 0.663787, 0.204859), colorOf_2(0.990681, 0.669558, 0.201642), colorOf_2(0.991365, 0.675355, 0.198453), colorOf_2(0.991985, 0.681179, 0.195295), colorOf_2(0.992541, 0.68703, 0.19217), colorOf_2(0.993032, 0.692907, 0.189084), colorOf_2(0.993456, 0.69881, 0.186041), colorOf_2(0.993814, 0.704741, 0.183043), colorOf_2(0.994103, 0.710698, 0.180097), colorOf_2(0.994324, 0.716681, 0.177208), colorOf_2(0.994474, 0.722691, 0.174381), colorOf_2(0.994553, 0.728728, 0.171622), colorOf_2(0.994561, 0.734791, 0.168938), colorOf_2(0.994495, 0.74088, 0.166335), colorOf_2(0.994355, 0.746995, 0.163821), colorOf_2(0.994141, 0.753137, 0.161404), colorOf_2(0.993851, 0.759304, 0.159092), colorOf_2(0.993482, 0.765499, 0.156891), colorOf_2(0.993033, 0.77172, 0.154808), colorOf_2(0.992505, 0.777967, 0.152855), colorOf_2(0.991897, 0.784239, 0.151042), colorOf_2(0.991209, 0.790537, 0.149377), colorOf_2(0.990439, 0.796859, 0.14787), colorOf_2(0.989587, 0.803205, 0.146529), colorOf_2(0.988648, 0.809579, 0.145357), colorOf_2(0.987621, 0.815978, 0.144363), colorOf_2(0.986509, 0.822401, 0.143557), colorOf_2(0.985314, 0.828846, 0.142945), colorOf_2(0.984031, 0.835315, 0.142528), colorOf_2(0.982653, 0.841812, 0.142303), colorOf_2(0.98119, 0.848329, 0.142279), colorOf_2(0.979644, 0.854866, 0.142453), colorOf_2(0.977995, 0.861432, 0.142808), colorOf_2(0.976265, 0.868016, 0.143351), colorOf_2(0.974443, 0.874622, 0.144061), colorOf_2(0.97253, 0.88125, 0.144923), colorOf_2(0.970533, 0.887896, 0.145919), colorOf_2(0.968443, 0.894564, 0.147014), colorOf_2(0.966271, 0.901249, 0.14818), colorOf_2(0.964021, 0.90795, 0.14937), colorOf_2(0.961681, 0.914672, 0.15052), colorOf_2(0.959276, 0.921407, 0.151566), colorOf_2(0.956808, 0.928152, 0.152409), colorOf_2(0.954287, 0.934908, 0.152921), colorOf_2(0.951726, 0.941671, 0.152925), colorOf_2(0.949151, 0.948435, 0.152178), colorOf_2(0.946602, 0.95519, 0.150328), colorOf_2(0.944152, 0.961916, 0.146861), colorOf_2(0.941896, 0.96859, 0.140956), colorOf_2(0.940015, 0.975158, 0.131326)])));
    this.p23_1 = new Entry_2('viridis', PaletteType_DIVERGING_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.z20([colorOf_2(0.267004, 0.004874, 0.329415), colorOf_2(0.26851, 0.009605, 0.335427), colorOf_2(0.269944, 0.014625, 0.341379), colorOf_2(0.271305, 0.019942, 0.347269), colorOf_2(0.272594, 0.025563, 0.353093), colorOf_2(0.273809, 0.031497, 0.358853), colorOf_2(0.274952, 0.037752, 0.364543), colorOf_2(0.276022, 0.044167, 0.370164), colorOf_2(0.277018, 0.050344, 0.375715), colorOf_2(0.277941, 0.056324, 0.381191), colorOf_2(0.278791, 0.062145, 0.386592), colorOf_2(0.279566, 0.067836, 0.391917), colorOf_2(0.280267, 0.073417, 0.397163), colorOf_2(0.280894, 0.078907, 0.402329), colorOf_2(0.281446, 0.08432, 0.407414), colorOf_2(0.281924, 0.089666, 0.412415), colorOf_2(0.282327, 0.094955, 0.417331), colorOf_2(0.282656, 0.100196, 0.42216), colorOf_2(0.28291, 0.105393, 0.426902), colorOf_2(0.283091, 0.110553, 0.431554), colorOf_2(0.283197, 0.11568, 0.436115), colorOf_2(0.283229, 0.120777, 0.440584), colorOf_2(0.283187, 0.125848, 0.44496), colorOf_2(0.283072, 0.130895, 0.449241), colorOf_2(0.282884, 0.13592, 0.453427), colorOf_2(0.282623, 0.140926, 0.457517), colorOf_2(0.28229, 0.145912, 0.46151), colorOf_2(0.281887, 0.150881, 0.465405), colorOf_2(0.281412, 0.155834, 0.469201), colorOf_2(0.280868, 0.160771, 0.472899), colorOf_2(0.280255, 0.165693, 0.476498), colorOf_2(0.279574, 0.170599, 0.479997), colorOf_2(0.278826, 0.17549, 0.483397), colorOf_2(0.278012, 0.180367, 0.486697), colorOf_2(0.277134, 0.185228, 0.489898), colorOf_2(0.276194, 0.190074, 0.493001), colorOf_2(0.275191, 0.194905, 0.496005), colorOf_2(0.274128, 0.199721, 0.498911), colorOf_2(0.273006, 0.20452, 0.501721), colorOf_2(0.271828, 0.209303, 0.504434), colorOf_2(0.270595, 0.214069, 0.507052), colorOf_2(0.269308, 0.218818, 0.509577), colorOf_2(0.267968, 0.223549, 0.512008), colorOf_2(0.26658, 0.228262, 0.514349), colorOf_2(0.265145, 0.232956, 0.516599), colorOf_2(0.263663, 0.237631, 0.518762), colorOf_2(0.262138, 0.242286, 0.520837), colorOf_2(0.260571, 0.246922, 0.522828), colorOf_2(0.258965, 0.251537, 0.524736), colorOf_2(0.257322, 0.25613, 0.526563), colorOf_2(0.255645, 0.260703, 0.528312), colorOf_2(0.253935, 0.265254, 0.529983), colorOf_2(0.252194, 0.269783, 0.531579), colorOf_2(0.250425, 0.27429, 0.533103), colorOf_2(0.248629, 0.278775, 0.534556), colorOf_2(0.246811, 0.283237, 0.535941), colorOf_2(0.244972, 0.287675, 0.53726), colorOf_2(0.243113, 0.292092, 0.538516), colorOf_2(0.241237, 0.296485, 0.539709), colorOf_2(0.239346, 0.300855, 0.540844), colorOf_2(0.237441, 0.305202, 0.541921), colorOf_2(0.235526, 0.309527, 0.542944), colorOf_2(0.233603, 0.313828, 0.543914), colorOf_2(0.231674, 0.318106, 0.544834), colorOf_2(0.229739, 0.322361, 0.545706), colorOf_2(0.227802, 0.326594, 0.546532), colorOf_2(0.225863, 0.330805, 0.547314), colorOf_2(0.223925, 0.334994, 0.548053), colorOf_2(0.221989, 0.339161, 0.548752), colorOf_2(0.220057, 0.343307, 0.549413), colorOf_2(0.21813, 0.347432, 0.550038), colorOf_2(0.21621, 0.351535, 0.550627), colorOf_2(0.214298, 0.355619, 0.551184), colorOf_2(0.212395, 0.359683, 0.55171), colorOf_2(0.210503, 0.363727, 0.552206), colorOf_2(0.208623, 0.367752, 0.552675), colorOf_2(0.206756, 0.371758, 0.553117), colorOf_2(0.204903, 0.375746, 0.553533), colorOf_2(0.203063, 0.379716, 0.553925), colorOf_2(0.201239, 0.38367, 0.554294), colorOf_2(0.19943, 0.387607, 0.554642), colorOf_2(0.197636, 0.391528, 0.554969), colorOf_2(0.19586, 0.395433, 0.555276), colorOf_2(0.1941, 0.399323, 0.555565), colorOf_2(0.192357, 0.403199, 0.555836), colorOf_2(0.190631, 0.407061, 0.556089), colorOf_2(0.188923, 0.41091, 0.556326), colorOf_2(0.187231, 0.414746, 0.556547), colorOf_2(0.185556, 0.41857, 0.556753), colorOf_2(0.183898, 0.422383, 0.556944), colorOf_2(0.182256, 0.426184, 0.55712), colorOf_2(0.180629, 0.429975, 0.557282), colorOf_2(0.179019, 0.433756, 0.55743), colorOf_2(0.177423, 0.437527, 0.557565), colorOf_2(0.175841, 0.44129, 0.557685), colorOf_2(0.174274, 0.445044, 0.557792), colorOf_2(0.172719, 0.448791, 0.557885), colorOf_2(0.171176, 0.45253, 0.557965), colorOf_2(0.169646, 0.456262, 0.55803), colorOf_2(0.168126, 0.459988, 0.558082), colorOf_2(0.166617, 0.463708, 0.558119), colorOf_2(0.165117, 0.467423, 0.558141), colorOf_2(0.163625, 0.471133, 0.558148), colorOf_2(0.162142, 0.474838, 0.55814), colorOf_2(0.160665, 0.47854, 0.558115), colorOf_2(0.159194, 0.482237, 0.558073), colorOf_2(0.157729, 0.485932, 0.558013), colorOf_2(0.15627, 0.489624, 0.557936), colorOf_2(0.154815, 0.493313, 0.55784), colorOf_2(0.153364, 0.497, 0.557724), colorOf_2(0.151918, 0.500685, 0.557587), colorOf_2(0.150476, 0.504369, 0.55743), colorOf_2(0.149039, 0.508051, 0.55725), colorOf_2(0.147607, 0.511733, 0.557049), colorOf_2(0.14618, 0.515413, 0.556823), colorOf_2(0.144759, 0.519093, 0.556572), colorOf_2(0.143343, 0.522773, 0.556295), colorOf_2(0.141935, 0.526453, 0.555991), colorOf_2(0.140536, 0.530132, 0.555659), colorOf_2(0.139147, 0.533812, 0.555298), colorOf_2(0.13777, 0.537492, 0.554906), colorOf_2(0.136408, 0.541173, 0.554483), colorOf_2(0.135066, 0.544853, 0.554029), colorOf_2(0.133743, 0.548535, 0.553541), colorOf_2(0.132444, 0.552216, 0.553018), colorOf_2(0.131172, 0.555899, 0.552459), colorOf_2(0.129933, 0.559582, 0.551864), colorOf_2(0.128729, 0.563265, 0.551229), colorOf_2(0.127568, 0.566949, 0.550556), colorOf_2(0.126453, 0.570633, 0.549841), colorOf_2(0.125394, 0.574318, 0.549086), colorOf_2(0.124395, 0.578002, 0.548287), colorOf_2(0.123463, 0.581687, 0.547445), colorOf_2(0.122606, 0.585371, 0.546557), colorOf_2(0.121831, 0.589055, 0.545623), colorOf_2(0.121148, 0.592739, 0.544641), colorOf_2(0.120565, 0.596422, 0.543611), colorOf_2(0.120092, 0.600104, 0.54253), colorOf_2(0.119738, 0.603785, 0.5414), colorOf_2(0.119512, 0.607464, 0.540218), colorOf_2(0.119423, 0.611141, 0.538982), colorOf_2(0.119483, 0.614817, 0.537692), colorOf_2(0.119699, 0.61849, 0.536347), colorOf_2(0.120081, 0.622161, 0.534946), colorOf_2(0.120638, 0.625828, 0.533488), colorOf_2(0.12138, 0.629492, 0.531973), colorOf_2(0.122312, 0.633153, 0.530398), colorOf_2(0.123444, 0.636809, 0.528763), colorOf_2(0.12478, 0.640461, 0.527068), colorOf_2(0.126326, 0.644107, 0.525311), colorOf_2(0.128087, 0.647749, 0.523491), colorOf_2(0.130067, 0.651384, 0.521608), colorOf_2(0.132268, 0.655014, 0.519661), colorOf_2(0.134692, 0.658636, 0.517649), colorOf_2(0.137339, 0.662252, 0.515571), colorOf_2(0.14021, 0.665859, 0.513427), colorOf_2(0.143303, 0.669459, 0.511215), colorOf_2(0.146616, 0.67305, 0.508936), colorOf_2(0.150148, 0.676631, 0.506589), colorOf_2(0.153894, 0.680203, 0.504172), colorOf_2(0.157851, 0.683765, 0.501686), colorOf_2(0.162016, 0.687316, 0.499129), colorOf_2(0.166383, 0.690856, 0.496502), colorOf_2(0.170948, 0.694384, 0.493803), colorOf_2(0.175707, 0.6979, 0.491033), colorOf_2(0.180653, 0.701402, 0.488189), colorOf_2(0.185783, 0.704891, 0.485273), colorOf_2(0.19109, 0.708366, 0.482284), colorOf_2(0.196571, 0.711827, 0.479221), colorOf_2(0.202219, 0.715272, 0.476084), colorOf_2(0.20803, 0.718701, 0.472873), colorOf_2(0.214, 0.722114, 0.469588), colorOf_2(0.220124, 0.725509, 0.466226), colorOf_2(0.226397, 0.728888, 0.462789), colorOf_2(0.232815, 0.732247, 0.459277), colorOf_2(0.239374, 0.735588, 0.455688), colorOf_2(0.24607, 0.73891, 0.452024), colorOf_2(0.252899, 0.742211, 0.448284), colorOf_2(0.259857, 0.745492, 0.444467), colorOf_2(0.266941, 0.748751, 0.440573), colorOf_2(0.274149, 0.751988, 0.436601), colorOf_2(0.281477, 0.755203, 0.432552), colorOf_2(0.288921, 0.758394, 0.428426), colorOf_2(0.296479, 0.761561, 0.424223), colorOf_2(0.304148, 0.764704, 0.419943), colorOf_2(0.311925, 0.767822, 0.415586), colorOf_2(0.319809, 0.770914, 0.411152), colorOf_2(0.327796, 0.77398, 0.40664), colorOf_2(0.335885, 0.777018, 0.402049), colorOf_2(0.344074, 0.780029, 0.397381), colorOf_2(0.35236, 0.783011, 0.392636), colorOf_2(0.360741, 0.785964, 0.387814), colorOf_2(0.369214, 0.788888, 0.382914), colorOf_2(0.377779, 0.791781, 0.377939), colorOf_2(0.386433, 0.794644, 0.372886), colorOf_2(0.395174, 0.797475, 0.367757), colorOf_2(0.404001, 0.800275, 0.362552), colorOf_2(0.412913, 0.803041, 0.357269), colorOf_2(0.421908, 0.805774, 0.35191), colorOf_2(0.430983, 0.808473, 0.346476), colorOf_2(0.440137, 0.811138, 0.340967), colorOf_2(0.449368, 0.813768, 0.335384), colorOf_2(0.458674, 0.816363, 0.329727), colorOf_2(0.468053, 0.818921, 0.323998), colorOf_2(0.477504, 0.821444, 0.318195), colorOf_2(0.487026, 0.823929, 0.312321), colorOf_2(0.496615, 0.826376, 0.306377), colorOf_2(0.506271, 0.828786, 0.300362), colorOf_2(0.515992, 0.831158, 0.294279), colorOf_2(0.525776, 0.833491, 0.288127), colorOf_2(0.535621, 0.835785, 0.281908), colorOf_2(0.545524, 0.838039, 0.275626), colorOf_2(0.555484, 0.840254, 0.269281), colorOf_2(0.565498, 0.84243, 0.262877), colorOf_2(0.575563, 0.844566, 0.256415), colorOf_2(0.585678, 0.846661, 0.249897), colorOf_2(0.595839, 0.848717, 0.243329), colorOf_2(0.606045, 0.850733, 0.236712), colorOf_2(0.616293, 0.852709, 0.230052), colorOf_2(0.626579, 0.854645, 0.223353), colorOf_2(0.636902, 0.856542, 0.21662), colorOf_2(0.647257, 0.8584, 0.209861), colorOf_2(0.657642, 0.860219, 0.203082), colorOf_2(0.668054, 0.861999, 0.196293), colorOf_2(0.678489, 0.863742, 0.189503), colorOf_2(0.688944, 0.865448, 0.182725), colorOf_2(0.699415, 0.867117, 0.175971), colorOf_2(0.709898, 0.868751, 0.169257), colorOf_2(0.720391, 0.87035, 0.162603), colorOf_2(0.730889, 0.871916, 0.156029), colorOf_2(0.741388, 0.873449, 0.149561), colorOf_2(0.751884, 0.874951, 0.143228), colorOf_2(0.762373, 0.876424, 0.137064), colorOf_2(0.772852, 0.877868, 0.131109), colorOf_2(0.783315, 0.879285, 0.125405), colorOf_2(0.79376, 0.880678, 0.120005), colorOf_2(0.804182, 0.882046, 0.114965), colorOf_2(0.814576, 0.883393, 0.110347), colorOf_2(0.82494, 0.88472, 0.106217), colorOf_2(0.83527, 0.886029, 0.102646), colorOf_2(0.845561, 0.887322, 0.099702), colorOf_2(0.85581, 0.888601, 0.097452), colorOf_2(0.866013, 0.889868, 0.095953), colorOf_2(0.876168, 0.891125, 0.09525), colorOf_2(0.886271, 0.892374, 0.095374), colorOf_2(0.89632, 0.893616, 0.096335), colorOf_2(0.906311, 0.894855, 0.098125), colorOf_2(0.916242, 0.896091, 0.100717), colorOf_2(0.926106, 0.89733, 0.104071), colorOf_2(0.935904, 0.89857, 0.108131), colorOf_2(0.945636, 0.899815, 0.112838), colorOf_2(0.9553, 0.901065, 0.118128), colorOf_2(0.964894, 0.902323, 0.123941), colorOf_2(0.974417, 0.90359, 0.130215), colorOf_2(0.983868, 0.904867, 0.136897), colorOf_2(0.993248, 0.906157, 0.143936)])));
    this.t23_1 = new Entry_2('cividis', PaletteType_DIVERGING_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.z20([colorOf_2(0.0, 0.135112, 0.304751), colorOf_2(0.0, 0.138068, 0.311105), colorOf_2(0.0, 0.141013, 0.317579), colorOf_2(0.0, 0.143951, 0.323982), colorOf_2(0.0, 0.146877, 0.330479), colorOf_2(0.0, 0.149791, 0.337065), colorOf_2(0.0, 0.152673, 0.343704), colorOf_2(0.0, 0.155377, 0.3505), colorOf_2(0.0, 0.157932, 0.357521), colorOf_2(0.0, 0.160495, 0.364534), colorOf_2(0.0, 0.163058, 0.371608), colorOf_2(0.0, 0.165621, 0.378769), colorOf_2(0.0, 0.168204, 0.385902), colorOf_2(0.0, 0.1708, 0.3931), colorOf_2(0.0, 0.17342, 0.400353), colorOf_2(0.0, 0.176082, 0.407577), colorOf_2(0.0, 0.178802, 0.414764), colorOf_2(0.0, 0.18161, 0.421859), colorOf_2(0.0, 0.18455, 0.428802), colorOf_2(0.0, 0.186915, 0.435532), colorOf_2(0.0, 0.188769, 0.439563), colorOf_2(0.0, 0.19095, 0.441085), colorOf_2(0.0, 0.193366, 0.441561), colorOf_2(0.003602, 0.195911, 0.441564), colorOf_2(0.017852, 0.198528, 0.441248), colorOf_2(0.03211, 0.201199, 0.440785), colorOf_2(0.046205, 0.203903, 0.440196), colorOf_2(0.058378, 0.206629, 0.439531), colorOf_2(0.068968, 0.209372, 0.438863), colorOf_2(0.078624, 0.212122, 0.438105), colorOf_2(0.087465, 0.214879, 0.437342), colorOf_2(0.095645, 0.217643, 0.436593), colorOf_2(0.103401, 0.220406, 0.43579), colorOf_2(0.110658, 0.22317, 0.435067), colorOf_2(0.117612, 0.225935, 0.434308), colorOf_2(0.124291, 0.228697, 0.433547), colorOf_2(0.130669, 0.231458, 0.43284), colorOf_2(0.13683, 0.234216, 0.432148), colorOf_2(0.142852, 0.236972, 0.431404), colorOf_2(0.148638, 0.239724, 0.430752), colorOf_2(0.154261, 0.242475, 0.43012), colorOf_2(0.159733, 0.245221, 0.429528), colorOf_2(0.165113, 0.247965, 0.428908), colorOf_2(0.170362, 0.250707, 0.428325), colorOf_2(0.17549, 0.253444, 0.42779), colorOf_2(0.180503, 0.25618, 0.427299), colorOf_2(0.185453, 0.258914, 0.426788), colorOf_2(0.190303, 0.261644, 0.426329), colorOf_2(0.195057, 0.264372, 0.425924), colorOf_2(0.199764, 0.267099, 0.425497), colorOf_2(0.204385, 0.269823, 0.425126), colorOf_2(0.208926, 0.272546, 0.424809), colorOf_2(0.213431, 0.275266, 0.42448), colorOf_2(0.217863, 0.277985, 0.424206), colorOf_2(0.222264, 0.280702, 0.423914), colorOf_2(0.226598, 0.283419, 0.423678), colorOf_2(0.230871, 0.286134, 0.423498), colorOf_2(0.23512, 0.288848, 0.423304), colorOf_2(0.239312, 0.291562, 0.423167), colorOf_2(0.243485, 0.294274, 0.423014), colorOf_2(0.247605, 0.296986, 0.422917), colorOf_2(0.251675, 0.299698, 0.422873), colorOf_2(0.255731, 0.302409, 0.422814), colorOf_2(0.25974, 0.30512, 0.42281), colorOf_2(0.263738, 0.307831, 0.422789), colorOf_2(0.267693, 0.310542, 0.422821), colorOf_2(0.271639, 0.313253, 0.422837), colorOf_2(0.275513, 0.315965, 0.422979), colorOf_2(0.279411, 0.318677, 0.423031), colorOf_2(0.28324, 0.32139, 0.423211), colorOf_2(0.287065, 0.324103, 0.423373), colorOf_2(0.290884, 0.326816, 0.423517), colorOf_2(0.294669, 0.329531, 0.423716), colorOf_2(0.298421, 0.332247, 0.423973), colorOf_2(0.302169, 0.334963, 0.424213), colorOf_2(0.305886, 0.337681, 0.424512), colorOf_2(0.309601, 0.340399, 0.42479), colorOf_2(0.313287, 0.34312, 0.42512), colorOf_2(0.316941, 0.345842, 0.425512), colorOf_2(0.320595, 0.348565, 0.425889), colorOf_2(0.32425, 0.351289, 0.42625), colorOf_2(0.327875, 0.354016, 0.42667), colorOf_2(0.331474, 0.356744, 0.427144), colorOf_2(0.335073, 0.359474, 0.427605), colorOf_2(0.338673, 0.362206, 0.428053), colorOf_2(0.342246, 0.364939, 0.428559), colorOf_2(0.345793, 0.367676, 0.429127), colorOf_2(0.349341, 0.370414, 0.429685), colorOf_2(0.352892, 0.373153, 0.430226), colorOf_2(0.356418, 0.375896, 0.430823), colorOf_2(0.359916, 0.378641, 0.431501), colorOf_2(0.363446, 0.381388, 0.432075), colorOf_2(0.366923, 0.384139, 0.432796), colorOf_2(0.37043, 0.38689, 0.433428), colorOf_2(0.373884, 0.389646, 0.434209), colorOf_2(0.377371, 0.392404, 0.43489), colorOf_2(0.38083, 0.395164, 0.435653), colorOf_2(0.384268, 0.397928, 0.436475), colorOf_2(0.387705, 0.400694, 0.437305), colorOf_2(0.391151, 0.403464, 0.438096), colorOf_2(0.394568, 0.406236, 0.438986), colorOf_2(0.397991, 0.409011, 0.439848), colorOf_2(0.401418, 0.41179, 0.440708), colorOf_2(0.40482, 0.414572, 0.441642), colorOf_2(0.408226, 0.417357, 0.44257), colorOf_2(0.411607, 0.420145, 0.443577), colorOf_2(0.414992, 0.422937, 0.444578), colorOf_2(0.418383, 0.425733, 0.44556), colorOf_2(0.421748, 0.428531, 0.44664), colorOf_2(0.42512, 0.431334, 0.447692), colorOf_2(0.428462, 0.43414, 0.448864), colorOf_2(0.431817, 0.43695, 0.449982), colorOf_2(0.435168, 0.439763, 0.451134), colorOf_2(0.438504, 0.44258, 0.452341), colorOf_2(0.44181, 0.445402, 0.453659), colorOf_2(0.445148, 0.448226, 0.454885), colorOf_2(0.448447, 0.451053, 0.456264), colorOf_2(0.451759, 0.453887, 0.457582), colorOf_2(0.455072, 0.456718, 0.458976), colorOf_2(0.458366, 0.459552, 0.460457), colorOf_2(0.461616, 0.462405, 0.461969), colorOf_2(0.464947, 0.465241, 0.463395), colorOf_2(0.468254, 0.468083, 0.464908), colorOf_2(0.471501, 0.47096, 0.466357), colorOf_2(0.474812, 0.473832, 0.467681), colorOf_2(0.478186, 0.476699, 0.468845), colorOf_2(0.481622, 0.479573, 0.469767), colorOf_2(0.485141, 0.482451, 0.470384), colorOf_2(0.488697, 0.485318, 0.471008), colorOf_2(0.492278, 0.488198, 0.471453), colorOf_2(0.495913, 0.491076, 0.471751), colorOf_2(0.499552, 0.49396, 0.472032), colorOf_2(0.503185, 0.496851, 0.472305), colorOf_2(0.506866, 0.499743, 0.472432), colorOf_2(0.51054, 0.502643, 0.47255), colorOf_2(0.514226, 0.505546, 0.47264), colorOf_2(0.51792, 0.508454, 0.472707), colorOf_2(0.521643, 0.511367, 0.472639), colorOf_2(0.525348, 0.514285, 0.47266), colorOf_2(0.529086, 0.517207, 0.472543), colorOf_2(0.532829, 0.520135, 0.472401), colorOf_2(0.536553, 0.523067, 0.472352), colorOf_2(0.540307, 0.526005, 0.472163), colorOf_2(0.544069, 0.528948, 0.471947), colorOf_2(0.54784, 0.531895, 0.471704), colorOf_2(0.551612, 0.534849, 0.471439), colorOf_2(0.555393, 0.537807, 0.471147), colorOf_2(0.559181, 0.540771, 0.470829), colorOf_2(0.562972, 0.543741, 0.470488), colorOf_2(0.566802, 0.546715, 0.469988), colorOf_2(0.570607, 0.549695, 0.469593), colorOf_2(0.574417, 0.552682, 0.469172), colorOf_2(0.578236, 0.555673, 0.468724), colorOf_2(0.582087, 0.55867, 0.468118), colorOf_2(0.585916, 0.561674, 0.467618), colorOf_2(0.589753, 0.564682, 0.46709), colorOf_2(0.593622, 0.567697, 0.466401), colorOf_2(0.597469, 0.570718, 0.465821), colorOf_2(0.601354, 0.573743, 0.465074), colorOf_2(0.605211, 0.576777, 0.464441), colorOf_2(0.609105, 0.579816, 0.463638), colorOf_2(0.612977, 0.582861, 0.46295), colorOf_2(0.616852, 0.585913, 0.462237), colorOf_2(0.620765, 0.58897, 0.461351), colorOf_2(0.624654, 0.592034, 0.460583), colorOf_2(0.628576, 0.595104, 0.459641), colorOf_2(0.632506, 0.59818, 0.458668), colorOf_2(0.636412, 0.601264, 0.457818), colorOf_2(0.640352, 0.604354, 0.456791), colorOf_2(0.64427, 0.60745, 0.455886), colorOf_2(0.648222, 0.610553, 0.454801), colorOf_2(0.652178, 0.613664, 0.453689), colorOf_2(0.656114, 0.61678, 0.452702), colorOf_2(0.660082, 0.619904, 0.451534), colorOf_2(0.664055, 0.623034, 0.450338), colorOf_2(0.668008, 0.626171, 0.44927), colorOf_2(0.671991, 0.629316, 0.448018), colorOf_2(0.675981, 0.632468, 0.446736), colorOf_2(0.679979, 0.635626, 0.445424), colorOf_2(0.68395, 0.638793, 0.444251), colorOf_2(0.687957, 0.641966, 0.442886), colorOf_2(0.691971, 0.645145, 0.441491), colorOf_2(0.695985, 0.648334, 0.440072), colorOf_2(0.700008, 0.651529, 0.438624), colorOf_2(0.704037, 0.654731, 0.437147), colorOf_2(0.708067, 0.657942, 0.435647), colorOf_2(0.712105, 0.66116, 0.434117), colorOf_2(0.716177, 0.664384, 0.432386), colorOf_2(0.720222, 0.667618, 0.430805), colorOf_2(0.724274, 0.670859, 0.429194), colorOf_2(0.728334, 0.674107, 0.427554), colorOf_2(0.732422, 0.677364, 0.425717), colorOf_2(0.736488, 0.680629, 0.424028), colorOf_2(0.740589, 0.6839, 0.422131), colorOf_2(0.744664, 0.687181, 0.420393), colorOf_2(0.748772, 0.69047, 0.418448), colorOf_2(0.752886, 0.693766, 0.416472), colorOf_2(0.756975, 0.697071, 0.414659), colorOf_2(0.761096, 0.700384, 0.412638), colorOf_2(0.765223, 0.703705, 0.410587), colorOf_2(0.769353, 0.707035, 0.408516), colorOf_2(0.773486, 0.710373, 0.406422), colorOf_2(0.777651, 0.713719, 0.404112), colorOf_2(0.781795, 0.717074, 0.401966), colorOf_2(0.785965, 0.720438, 0.399613), colorOf_2(0.790116, 0.72381, 0.397423), colorOf_2(0.794298, 0.72719, 0.395016), colorOf_2(0.79848, 0.73058, 0.392597), colorOf_2(0.802667, 0.733978, 0.390153), colorOf_2(0.806859, 0.737385, 0.387684), colorOf_2(0.811054, 0.740801, 0.385198), colorOf_2(0.815274, 0.744226, 0.382504), colorOf_2(0.819499, 0.747659, 0.379785), colorOf_2(0.823729, 0.751101, 0.377043), colorOf_2(0.827959, 0.754553, 0.374292), colorOf_2(0.832192, 0.758014, 0.371529), colorOf_2(0.836429, 0.761483, 0.368747), colorOf_2(0.840693, 0.764962, 0.365746), colorOf_2(0.844957, 0.76845, 0.362741), colorOf_2(0.849223, 0.771947, 0.359729), colorOf_2(0.853515, 0.775454, 0.3565), colorOf_2(0.857809, 0.778969, 0.353259), colorOf_2(0.862105, 0.782494, 0.350011), colorOf_2(0.866421, 0.786028, 0.346571), colorOf_2(0.870717, 0.789572, 0.343333), colorOf_2(0.875057, 0.793125, 0.339685), colorOf_2(0.879378, 0.796687, 0.336241), colorOf_2(0.88372, 0.800258, 0.332599), colorOf_2(0.888081, 0.803839, 0.32877), colorOf_2(0.89244, 0.80743, 0.324968), colorOf_2(0.896818, 0.81103, 0.320982), colorOf_2(0.901195, 0.814639, 0.317021), colorOf_2(0.905589, 0.818257, 0.312889), colorOf_2(0.91, 0.821885, 0.308594), colorOf_2(0.914407, 0.825522, 0.304348), colorOf_2(0.918828, 0.829168, 0.29996), colorOf_2(0.923279, 0.832822, 0.295244), colorOf_2(0.927724, 0.836486, 0.290611), colorOf_2(0.93218, 0.840159, 0.28588), colorOf_2(0.93666, 0.843841, 0.280876), colorOf_2(0.941147, 0.84753, 0.275815), colorOf_2(0.945654, 0.851228, 0.270532), colorOf_2(0.950178, 0.854933, 0.265085), colorOf_2(0.954725, 0.858646, 0.259365), colorOf_2(0.959284, 0.862365, 0.253563), colorOf_2(0.963872, 0.866089, 0.247445), colorOf_2(0.968469, 0.869819, 0.24131), colorOf_2(0.973114, 0.87355, 0.234677), colorOf_2(0.97778, 0.877281, 0.227954), colorOf_2(0.982497, 0.881008, 0.220878), colorOf_2(0.987293, 0.884718, 0.213336), colorOf_2(0.992218, 0.888385, 0.205468), colorOf_2(0.994847, 0.892954, 0.203445), colorOf_2(0.995249, 0.898384, 0.207561), colorOf_2(0.995503, 0.903866, 0.21237), colorOf_2(0.995737, 0.909344, 0.217772)])));
    this.u23_1 = new Entry_2('twilight', PaletteType_DIVERGING_getInstance(), InterpolatedPalette.paletteConstructor(FixedPalette.z20([colorOf_2(0.8857502, 0.85000926, 0.88797367), colorOf_2(0.8837852, 0.8507294, 0.88723224), colorOf_2(0.88172233, 0.8512759, 0.88638055), colorOf_2(0.87954104, 0.85165673, 0.88541436), colorOf_2(0.8772488, 0.8518703, 0.8843412), colorOf_2(0.8748535, 0.85191524, 0.8831693), colorOf_2(0.8723313, 0.85180163, 0.88189703), colorOf_2(0.8697047, 0.85152406, 0.8805388), colorOf_2(0.86696017, 0.8510896, 0.87909764), colorOf_2(0.86408985, 0.8505039, 0.8775793), colorOf_2(0.86110246, 0.84976757, 0.8759924), colorOf_2(0.8579826, 0.84888935, 0.8743404), colorOf_2(0.85472596, 0.8478749, 0.8726283), colorOf_2(0.85133713, 0.8467274, 0.8708608), colorOf_2(0.8478071, 0.84545463, 0.86904037), colorOf_2(0.84412616, 0.84406483, 0.86716974), colorOf_2(0.8403042, 0.8425606, 0.8652509), colorOf_2(0.8363403, 0.840948, 0.8632853), colorOf_2(0.83222705, 0.8392349, 0.8612756), colorOf_2(0.82796896, 0.837426, 0.859224), colorOf_2(0.8235743, 0.83552486, 0.8571319), colorOf_2(0.81904656, 0.8335365, 0.85500205), colorOf_2(0.8143898, 0.8314656, 0.85283756), colorOf_2(0.8096, 0.82931894, 0.8506444), colorOf_2(0.8046917, 0.82709837, 0.8484245), colorOf_2(0.79967076, 0.8248078, 0.8461821), colorOf_2(0.794543, 0.8224512, 0.84392184), colorOf_2(0.78931445, 0.8200321, 0.84164864), colorOf_2(0.78399104, 0.81755424, 0.83936745), colorOf_2(0.77857894, 0.8150209, 0.83708346), colorOf_2(0.77308416, 0.81243527, 0.83480173), colorOf_2(0.76751107, 0.80980074, 0.8325282), colorOf_2(0.7618691, 0.8071195, 0.8302665), colorOf_2(0.75616443, 0.80439407, 0.8280214), colorOf_2(0.75040346, 0.801627, 0.8257974), colorOf_2(0.7445925, 0.7988205, 0.8235987), colorOf_2(0.7387377, 0.79597664, 0.82142925), colorOf_2(0.7328454, 0.79309744, 0.8192926), colorOf_2(0.7269218, 0.7901847, 0.8171922), colorOf_2(0.72097284, 0.78723997, 0.8151307), colorOf_2(0.715004, 0.78426486, 0.8131112), colorOf_2(0.7090208, 0.7812609, 0.81113595), colorOf_2(0.70302975, 0.77822906, 0.8092062), colorOf_2(0.69703656, 0.7751705, 0.80732334), colorOf_2(0.6910464, 0.7720863, 0.8054884), colorOf_2(0.68506444, 0.7689774, 0.80370206), colorOf_2(0.67909557, 0.7658447, 0.80196464), colorOf_2(0.6731442, 0.7626891, 0.8002763), colorOf_2(0.6672148, 0.7595113, 0.79863673), colorOf_2(0.66131127, 0.756312, 0.7970456), colorOf_2(0.65543693, 0.7530921, 0.7955027), colorOf_2(0.64959574, 0.749852, 0.79400676), colorOf_2(0.6437911, 0.7465924, 0.7925565), colorOf_2(0.6380259, 0.7433138, 0.791151), colorOf_2(0.6323027, 0.7400167, 0.7897889), colorOf_2(0.62662405, 0.7367017, 0.788469), colorOf_2(0.62099195, 0.73336935, 0.78718996), colorOf_2(0.6154085, 0.7300199, 0.78595024), colorOf_2(0.60987544, 0.726654, 0.7847484), colorOf_2(0.6043943, 0.72327185, 0.783583), colorOf_2(0.5989666, 0.71987396, 0.7824526), colorOf_2(0.59359336, 0.7164606, 0.78135586), colorOf_2(0.5882758, 0.7130321, 0.78029144), colorOf_2(0.58301485, 0.7095889, 0.77925783), colorOf_2(0.57781166, 0.70613104, 0.77825344), colorOf_2(0.5726669, 0.70265895, 0.77727705), colorOf_2(0.5675812, 0.6991728, 0.7763275), colorOf_2(0.56255513, 0.6956728, 0.7754036), colorOf_2(0.5575894, 0.6921591, 0.7745041), colorOf_2(0.5526845, 0.68863195, 0.77362794), colorOf_2(0.54784095, 0.68509144, 0.77277386), colorOf_2(0.54305935, 0.6815377, 0.77194077), colorOf_2(0.53834015, 0.6779708, 0.77112734), colorOf_2(0.5336839, 0.6743909, 0.7703325), colorOf_2(0.5290909, 0.6707981, 0.7695555), colorOf_2(0.5245615, 0.66719246, 0.76879543), colorOf_2(0.5200963, 0.6635739, 0.7680512), colorOf_2(0.5156956, 0.6599426, 0.76732194), colorOf_2(0.51135993, 0.6562985, 0.7666066), colorOf_2(0.5070897, 0.6526417, 0.7659045), colorOf_2(0.50288534, 0.64897215, 0.76521444), colorOf_2(0.49874735, 0.6452899, 0.7645358), colorOf_2(0.49467617, 0.6415948, 0.7638672), colorOf_2(0.49067226, 0.63788706, 0.76320815), colorOf_2(0.48673597, 0.6341665, 0.7625578), colorOf_2(0.48286778, 0.630433, 0.7619154), colorOf_2(0.47906816, 0.62668675, 0.76128), colorOf_2(0.47533754, 0.62292755, 0.7606509), colorOf_2(0.4716763, 0.6191554, 0.7600271), colorOf_2(0.4680849, 0.6153703, 0.7594079), colorOf_2(0.46456376, 0.6115721, 0.7587924), colorOf_2(0.46111327, 0.6077608, 0.75817984), colorOf_2(0.45773378, 0.6039363, 0.7575694), colorOf_2(0.45442563, 0.6000986, 0.75696015), colorOf_2(0.4511892, 0.5962476, 0.75635123), colorOf_2(0.44802472, 0.5923833, 0.7557418), colorOf_2(0.44493246, 0.5885056, 0.7551311), colorOf_2(0.4419127, 0.5846144, 0.7545184), colorOf_2(0.43896565, 0.5807097, 0.75390273), colorOf_2(0.4360914, 0.5767914, 0.7532834), colorOf_2(0.4332901, 0.5728594, 0.75265944), colorOf_2(0.43056178, 0.56891376, 0.7520301), colorOf_2(0.4279065, 0.5649543, 0.75139445), colorOf_2(0.42532423, 0.56098104, 0.7507517), colorOf_2(0.42281485, 0.5569939, 0.75010085), colorOf_2(0.42037824, 0.5529929, 0.74944127), colorOf_2(0.41801414, 0.54897785, 0.7487719), colorOf_2(0.41572234, 0.5449488, 0.74809206), colorOf_2(0.41350245, 0.5409058, 0.74740076), colorOf_2(0.41135415, 0.5368486, 0.7466971), colorOf_2(0.4092769, 0.5327773, 0.7459803), colorOf_2(0.4072702, 0.5286919, 0.74524945), colorOf_2(0.40533343, 0.5245923, 0.7445037), colorOf_2(0.40346602, 0.5204785, 0.74374217), colorOf_2(0.40166715, 0.51635045, 0.742964), colorOf_2(0.39993608, 0.51220816, 0.7421684), colorOf_2(0.39827192, 0.5080517, 0.7413545), colorOf_2(0.39667374, 0.5038809, 0.7405214), colorOf_2(0.3951406, 0.49969587, 0.7396682), colorOf_2(0.39367136, 0.49549657, 0.7387941), colorOf_2(0.39226496, 0.491283, 0.73789823), colorOf_2(0.39092016, 0.4870552, 0.7369798), colorOf_2(0.3896358, 0.48281318, 0.73603785), colorOf_2(0.38841054, 0.4785569, 0.7350716), colorOf_2(0.387243, 0.47428647, 0.7340802), colorOf_2(0.38613185, 0.47000185, 0.7330628), colorOf_2(0.38507557, 0.46570307, 0.73201853), colorOf_2(0.3840727, 0.4613902, 0.73094666), colorOf_2(0.38312167, 0.45706323, 0.72984624), colorOf_2(0.38222095, 0.45272225, 0.72871655), colorOf_2(0.38136888, 0.44836727, 0.7275567), colorOf_2(0.3805638, 0.44399837, 0.72636586), colorOf_2(0.37980404, 0.43961558, 0.72514325), colorOf_2(0.3790879, 0.435219, 0.723888), colorOf_2(0.37841365, 0.4308086, 0.7225993), colorOf_2(0.37777948, 0.4263845, 0.7212764), colorOf_2(0.3771837, 0.4219468, 0.71991843), colorOf_2(0.3766245, 0.41749555, 0.7185246), colorOf_2(0.3761, 0.4130308, 0.71709394), colorOf_2(0.37560847, 0.40855268, 0.7156258), colorOf_2(0.37514803, 0.40406126, 0.7141194), colorOf_2(0.37471685, 0.39955664, 0.7125737), colorOf_2(0.37431315, 0.39503896, 0.710988), colorOf_2(0.37393498, 0.39050826, 0.7093613), colorOf_2(0.37358063, 0.38596475, 0.707693), colorOf_2(0.37324816, 0.38140848, 0.705982), colorOf_2(0.37293577, 0.37683964, 0.70422757), colorOf_2(0.37264165, 0.37225834, 0.70242876), colorOf_2(0.37236398, 0.36766478, 0.70058465), colorOf_2(0.3721009, 0.3630591, 0.69869435), colorOf_2(0.3718506, 0.35844147, 0.69675696), colorOf_2(0.37161133, 0.35381213, 0.6947715), colorOf_2(0.37138125, 0.34917128, 0.69273704), colorOf_2(0.37115857, 0.3445191, 0.69065255), colorOf_2(0.37094152, 0.3398559, 0.68851703), colorOf_2(0.37072834, 0.33518195, 0.6863295), colorOf_2(0.37051737, 0.3304974, 0.6840889), colorOf_2(0.37030682, 0.32580268, 0.6817941), colorOf_2(0.37009487, 0.32109815, 0.6794441), colorOf_2(0.3698798, 0.3163841, 0.67703754), colorOf_2(0.36965987, 0.31166098, 0.6745734), colorOf_2(0.36943334, 0.30692923, 0.67205054), colorOf_2(0.36919847, 0.30218932, 0.66946757), colorOf_2(0.36895356, 0.29744175, 0.6668232), colorOf_2(0.3686968, 0.2926871, 0.66411626), colorOf_2(0.36842656, 0.28792596, 0.66134524), colorOf_2(0.36814103, 0.28315902, 0.6585089), colorOf_2(0.36783844, 0.27838698, 0.6556057), colorOf_2(0.36751708, 0.27361062, 0.65263414), colorOf_2(0.36717513, 0.26883087, 0.6495927), colorOf_2(0.36681086, 0.26404858, 0.6464799), colorOf_2(0.36642244, 0.2592648, 0.6432941), colorOf_2(0.36600855, 0.25448045, 0.6400336), colorOf_2(0.36556697, 0.24969684, 0.63669676), colorOf_2(0.3650958, 0.24491537, 0.6332817), colorOf_2(0.3645931, 0.24013747, 0.6297868), colorOf_2(0.36405694, 0.2353647, 0.62621015), colorOf_2(0.36348537, 0.23059876, 0.6225499), colorOf_2(0.36287645, 0.22584149, 0.61880416), colorOf_2(0.3622281, 0.22109489, 0.6149711), colorOf_2(0.3615383, 0.21636112, 0.6110488), colorOf_2(0.36080495, 0.21164252, 0.60703534), colorOf_2(0.3600268, 0.20694123, 0.60292846), colorOf_2(0.3592009, 0.20226038, 0.5987265), colorOf_2(0.3583249, 0.19760294, 0.5944277), colorOf_2(0.35739663, 0.19297208, 0.59003013), colorOf_2(0.3564138, 0.1883712, 0.58553207), colorOf_2(0.35537416, 0.18380393, 0.5809319), colorOf_2(0.35427535, 0.17927413, 0.5762281), colorOf_2(0.35311574, 0.1747857, 0.5714187), colorOf_2(0.35189247, 0.1703432, 0.56650287), colorOf_2(0.35060304, 0.1659513, 0.5614796), colorOf_2(0.34924513, 0.16161478, 0.5563484), colorOf_2(0.34781653, 0.15733863, 0.55110854), colorOf_2(0.3463151, 0.15312803, 0.54576), colorOf_2(0.34473902, 0.1489882, 0.54030246), colorOf_2(0.343086, 0.14492466, 0.53473705), colorOf_2(0.3413541, 0.1409428, 0.529065), colorOf_2(0.33954167, 0.13704802, 0.52328795), colorOf_2(0.33764732, 0.13324562, 0.5174081), colorOf_2(0.3356698, 0.12954074, 0.51142806), colorOf_2(0.33360806, 0.12593818, 0.50535166), colorOf_2(0.33146155, 0.122442454, 0.49918276), colorOf_2(0.32923004, 0.11905764, 0.49292594), colorOf_2(0.3269137, 0.11578735, 0.48658645), colorOf_2(0.32451308, 0.1126346, 0.48017007), colorOf_2(0.32202882, 0.10960114, 0.47368494), colorOf_2(0.31946263, 0.1066888, 0.46713728), colorOf_2(0.31681648, 0.103898615, 0.46053416), colorOf_2(0.3140928, 0.10123078, 0.45388335), colorOf_2(0.31129435, 0.09868477, 0.44719315), colorOf_2(0.30842444, 0.096259385, 0.44047195), colorOf_2(0.30548677, 0.09395277, 0.4337285), colorOf_2(0.30248538, 0.09176119, 0.42697403), colorOf_2(0.29942483, 0.08968225, 0.4202162), colorOf_2(0.29631, 0.08771325, 0.41346258), colorOf_2(0.29314592, 0.085850656, 0.40672177), colorOf_2(0.2899379, 0.08409079, 0.40000215), colorOf_2(0.28669152, 0.08242987, 0.39331183), colorOf_2(0.2834124, 0.080864154, 0.3866587), colorOf_2(0.2801064, 0.07939, 0.38005027), colorOf_2(0.27677938, 0.07800394, 0.37349382), colorOf_2(0.27343738, 0.0767028, 0.36699617), colorOf_2(0.27008638, 0.07548367, 0.36056376), colorOf_2(0.26673234, 0.07434402, 0.35420275), colorOf_2(0.2633812, 0.07328166, 0.3479189), colorOf_2(0.26003894, 0.07229478, 0.34171757), colorOf_2(0.25671193, 0.07138011, 0.3356065), colorOf_2(0.25340685, 0.07053358, 0.32959458), colorOf_2(0.25012845, 0.06975821, 0.323681), colorOf_2(0.24688226, 0.06905364, 0.31786993), colorOf_2(0.24367373, 0.06841986, 0.31216523), colorOf_2(0.24050814, 0.0678571, 0.30657056), colorOf_2(0.23739062, 0.067365885, 0.30108923), colorOf_2(0.23433055, 0.0669356, 0.2957401), colorOf_2(0.23132955, 0.06657619, 0.2905136), colorOf_2(0.22839177, 0.066289976, 0.28541073), colorOf_2(0.22552164, 0.06607817, 0.28043398), colorOf_2(0.22272706, 0.065933794, 0.27559716), colorOf_2(0.22001252, 0.06585792, 0.2709028), colorOf_2(0.21737845, 0.06585966, 0.2663421), colorOf_2(0.21482843, 0.06594039, 0.26191676), colorOf_2(0.2123741, 0.066085026, 0.25765166), colorOf_2(0.21001214, 0.06630857, 0.2535289), colorOf_2(0.20774424, 0.06661453, 0.24954644), colorOf_2(0.20558052, 0.066990465, 0.24572498), colorOf_2(0.20352007, 0.06744418, 0.24205576), colorOf_2(0.20156133, 0.06798327, 0.23852974), colorOf_2(0.19971572, 0.06859271, 0.23517095), colorOf_2(0.19794834, 0.06931406, 0.23194647), colorOf_2(0.1960826, 0.070321225, 0.22874673), colorOf_2(0.19410351, 0.071608305, 0.22558728), colorOf_2(0.19199449, 0.07318283, 0.22243385), colorOf_2(0.18975854, 0.07501986, 0.21930051), colorOf_2(0.18739228, 0.077102095, 0.21618876), colorOf_2(0.18488036, 0.07942573, 0.21307652), colorOf_2(0.18774483, 0.07725159, 0.21387449), colorOf_2(0.19049579, 0.07531128, 0.21465623), colorOf_2(0.19315486, 0.07360682, 0.21542363), colorOf_2(0.19571854, 0.07215778, 0.21617499), colorOf_2(0.19819343, 0.070974626, 0.21690975), colorOf_2(0.2005876, 0.070064574, 0.21762721), colorOf_2(0.20290366, 0.06943525, 0.21833168), colorOf_2(0.20531726, 0.06891959, 0.21911517), colorOf_2(0.20785704, 0.068484396, 0.22000134), colorOf_2(0.21052884, 0.068121955, 0.22098759), colorOf_2(0.21333139, 0.067830145, 0.22207043), colorOf_2(0.2162528, 0.06761633, 0.22324568), colorOf_2(0.21930504, 0.06746579, 0.22451024), colorOf_2(0.22247308, 0.067388214, 0.2258596), colorOf_2(0.22575396, 0.067382134, 0.22728984), colorOf_2(0.2291562, 0.06743473, 0.22879681), colorOf_2(0.232663, 0.067557104, 0.23037617), colorOf_2(0.23627496, 0.0677436, 0.23202361), colorOf_2(0.23999587, 0.06798503, 0.23373434), colorOf_2(0.2438115, 0.06828985, 0.23550427), colorOf_2(0.24772093, 0.06865334, 0.2373288), colorOf_2(0.251729, 0.06906463, 0.2392026), colorOf_2(0.25582135, 0.06953231, 0.2411219), colorOf_2(0.25999463, 0.07005385, 0.2430822), colorOf_2(0.26425514, 0.070616595, 0.2450776), colorOf_2(0.26859096, 0.071226716, 0.24710444), colorOf_2(0.27299702, 0.07188355, 0.24915847), colorOf_2(0.2774715, 0.07258297, 0.25123495), colorOf_2(0.28201747, 0.073315695, 0.253328), colorOf_2(0.2866231, 0.07408846, 0.25543478), colorOf_2(0.29128516, 0.07489905, 0.257551), colorOf_2(0.29600048, 0.07574534, 0.25967246), colorOf_2(0.30077276, 0.07661782, 0.26179293), colorOf_2(0.30559227, 0.077521965, 0.26391006), colorOf_2(0.3104552, 0.07845687, 0.26602006), colorOf_2(0.3153587, 0.079421, 0.26811904), colorOf_2(0.32029986, 0.08041299, 0.27020323), colorOf_2(0.32527888, 0.08142839, 0.27226773), colorOf_2(0.33029175, 0.08246763, 0.2743093), colorOf_2(0.33533353, 0.08353244, 0.27632535), colorOf_2(0.34040165, 0.084622234, 0.27831253), colorOf_2(0.34549356, 0.085736655, 0.2802677), colorOf_2(0.35060677, 0.08687555, 0.2821877), colorOf_2(0.3557389, 0.08803897, 0.2840696), colorOf_2(0.36088753, 0.08922719, 0.28591052), colorOf_2(0.3660503, 0.09044068, 0.28770775), colorOf_2(0.3712251, 0.09168, 0.28945866), colorOf_2(0.3764103, 0.092945196, 0.29116026), colorOf_2(0.38160247, 0.09423873, 0.29281107), colorOf_2(0.3867994, 0.09556182, 0.294409), colorOf_2(0.3919989, 0.09691583, 0.2959521), colorOf_2(0.39719877, 0.09830232, 0.29743856), colorOf_2(0.40239692, 0.09972293, 0.29886675), colorOf_2(0.4075912, 0.10117946, 0.30023518), colorOf_2(0.41277987, 0.102673404, 0.30154225), colorOf_2(0.41796106, 0.10420645, 0.30278653), colorOf_2(0.42313215, 0.10578121, 0.3039676), colorOf_2(0.42829102, 0.10739978, 0.3050848), colorOf_2(0.4334356, 0.10906424, 0.30613768), colorOf_2(0.4385638, 0.11077668, 0.30712602), colorOf_2(0.44367358, 0.11253913, 0.30804974), colorOf_2(0.44876298, 0.11435355, 0.30890906), colorOf_2(0.45383006, 0.11622184, 0.30970442), colorOf_2(0.45887288, 0.11814571, 0.31043637), colorOf_2(0.46389103, 0.120125614, 0.31110343), colorOf_2(0.4688811, 0.12216446, 0.3117091), colorOf_2(0.47384143, 0.12426354, 0.3122547), colorOf_2(0.47877035, 0.12642401, 0.31274173), colorOf_2(0.4836663, 0.12864679, 0.3131719), colorOf_2(0.48852846, 0.13093211, 0.31354553), colorOf_2(0.49335504, 0.13328092, 0.31386563), colorOf_2(0.49814436, 0.1356938, 0.3141352), colorOf_2(0.50289524, 0.13817087, 0.31435663), colorOf_2(0.5076068, 0.14071193, 0.314532), colorOf_2(0.5122784, 0.14331657, 0.31466308), colorOf_2(0.51690847, 0.14598463, 0.31475407), colorOf_2(0.52149653, 0.14871545, 0.31480768), colorOf_2(0.5260419, 0.15150818, 0.31482655), colorOf_2(0.5305442, 0.15436183, 0.314813), colorOf_2(0.53500277, 0.15727541, 0.31477085), colorOf_2(0.5394174, 0.1602477, 0.31470296), colorOf_2(0.5437877, 0.16327739, 0.31461203), colorOf_2(0.5481137, 0.16636309, 0.31450102), colorOf_2(0.5523952, 0.16950339, 0.31437293), colorOf_2(0.5566323, 0.17269677, 0.31423044), colorOf_2(0.560825, 0.1759417, 0.3140764), colorOf_2(0.5649734, 0.17923665, 0.3139136), colorOf_2(0.56907785, 0.18258004, 0.3137444), colorOf_2(0.5731385, 0.18597037, 0.31357127), colorOf_2(0.57715553, 0.18940601, 0.31339705), colorOf_2(0.5811293, 0.19288549, 0.313224), colorOf_2(0.58506024, 0.19640738, 0.31305403), colorOf_2(0.5889486, 0.19997022, 0.31288922), colorOf_2(0.5927948, 0.20357251, 0.31273234), colorOf_2(0.59659916, 0.20721295, 0.31258523), colorOf_2(0.6003621, 0.21089031, 0.31244934), colorOf_2(0.604084, 0.21460332, 0.31232652), colorOf_2(0.60776526, 0.21835071, 0.31221902), colorOf_2(0.6114062, 0.22213125, 0.3121288), colorOf_2(0.6150072, 0.22594403, 0.3120568), colorOf_2(0.61856866, 0.22978799, 0.31200463), colorOf_2(0.6220908, 0.23366219, 0.31197384), colorOf_2(0.6255742, 0.23756535, 0.311967), colorOf_2(0.6290189, 0.24149689, 0.31198448), colorOf_2(0.63242537, 0.245456, 0.31202766), colorOf_2(0.6357937, 0.24944186, 0.31209794), colorOf_2(0.63912433, 0.25345364, 0.3121969), colorOf_2(0.64241755, 0.25749052, 0.3123263), colorOf_2(0.6456735, 0.26155204, 0.31248674), colorOf_2(0.6488923, 0.26563755, 0.3126794), colorOf_2(0.65207416, 0.2697465, 0.3129056), colorOf_2(0.6552193, 0.27387828, 0.31316668), colorOf_2(0.65832806, 0.27803212, 0.31346434), colorOf_2(0.6614004, 0.2822078, 0.31379914), colorOf_2(0.66443634, 0.28640485, 0.31417224), colorOf_2(0.66743606, 0.2906228, 0.31458485), colorOf_2(0.6703996, 0.29486126, 0.31503814), colorOf_2(0.67332727, 0.29911962, 0.31553373), colorOf_2(0.676219, 0.30339763, 0.3160725), colorOf_2(0.67907476, 0.30769497, 0.31665546), colorOf_2(0.6818946, 0.31201133, 0.3172838), colorOf_2(0.6846785, 0.31634635, 0.3179587), colorOf_2(0.68742657, 0.3206997, 0.3186814), colorOf_2(0.69013894, 0.32507092, 0.31945333), colorOf_2(0.6928154, 0.32945985, 0.32027543), colorOf_2(0.6954561, 0.3338662, 0.32114884), colorOf_2(0.6980608, 0.33828977, 0.3220748), colorOf_2(0.70062965, 0.3427302, 0.3230545), colorOf_2(0.7031625, 0.34718725, 0.32408914), colorOf_2(0.7056595, 0.35166052, 0.32518014), colorOf_2(0.7081206, 0.35614985, 0.3263286), colorOf_2(0.71054566, 0.360655, 0.32753575), colorOf_2(0.7129347, 0.3651757, 0.32880273), colorOf_2(0.7152876, 0.3697117, 0.33013088), colorOf_2(0.71760446, 0.37426272, 0.3315214), colorOf_2(0.71988523, 0.3788285, 0.33297557), colorOf_2(0.72213, 0.38340864, 0.3344947), colorOf_2(0.72433865, 0.38800302, 0.33607996), colorOf_2(0.72651124, 0.39261132, 0.33773258), colorOf_2(0.7286477, 0.39723325, 0.33945385), colorOf_2(0.73074824, 0.40186852, 0.34124497), colorOf_2(0.7328127, 0.40651685, 0.34310716), colorOf_2(0.73484135, 0.41117787, 0.3450417), colorOf_2(0.7368342, 0.41585127, 0.34704977), colorOf_2(0.7387914, 0.42053673, 0.3491326), colorOf_2(0.740713, 0.42523393, 0.3512913), colorOf_2(0.7425992, 0.42994255, 0.3535271), colorOf_2(0.7444502, 0.43466216, 0.35584107), colorOf_2(0.7462662, 0.43939245, 0.3582344), colorOf_2(0.7480474, 0.44413298, 0.36070815), colorOf_2(0.7497942, 0.44888332, 0.36326337), colorOf_2(0.75150687, 0.45364314, 0.3659011), colorOf_2(0.7531857, 0.458412, 0.36862236), colorOf_2(0.7548311, 0.46318942, 0.37142804), colorOf_2(0.75644344, 0.46797502, 0.37431908), colorOf_2(0.75802326, 0.47276828, 0.37729636), colorOf_2(0.75957114, 0.47756872, 0.38036066), colorOf_2(0.76108766, 0.4823758, 0.38351277), colorOf_2(0.76257336, 0.48718905, 0.38675335), colorOf_2(0.76402885, 0.49200803, 0.39008307), colorOf_2(0.76545495, 0.49683213, 0.39350253), colorOf_2(0.7668523, 0.5016608, 0.3970122), colorOf_2(0.7682218, 0.5064936, 0.40061256), colorOf_2(0.7695642, 0.5113299, 0.40430397), colorOf_2(0.77088094, 0.51616895, 0.4080867), colorOf_2(0.7721726, 0.5210103, 0.4119609), colorOf_2(0.77344024, 0.52585334, 0.41592678), colorOf_2(0.77468497, 0.53069746, 0.4199844), colorOf_2(0.77590793, 0.5355422, 0.4241337), colorOf_2(0.77711034, 0.54038674, 0.4283745), colorOf_2(0.77829343, 0.54523057, 0.43270665), colorOf_2(0.77945864, 0.5500731, 0.4371298), colorOf_2(0.78060776, 0.55491334, 0.44164333), colorOf_2(0.7817418, 0.559751, 0.44624686), colorOf_2(0.78286225, 0.5645853, 0.45093986), colorOf_2(0.7839706, 0.5694158, 0.45572156), colorOf_2(0.78506845, 0.5742417, 0.46059117), colorOf_2(0.78615737, 0.57906246, 0.46554777), colorOf_2(0.787239, 0.58387744, 0.47059038), colorOf_2(0.7883151, 0.588686, 0.47571793), colorOf_2(0.7893874, 0.59348756, 0.48092914), colorOf_2(0.7904578, 0.5982813, 0.48622257), colorOf_2(0.79152834, 0.6030667, 0.49159667), colorOf_2(0.79260033, 0.6078432, 0.4970502), colorOf_2(0.7936756, 0.6126103, 0.5025816), colorOf_2(0.7947559, 0.6173673, 0.5081892), colorOf_2(0.79584295, 0.62211376, 0.51387125), colorOf_2(0.79693854, 0.62684906, 0.51962584), colorOf_2(0.7980445, 0.6315726, 0.52545106), colorOf_2(0.79916245, 0.6362838, 0.53134495), colorOf_2(0.80029416, 0.64098215, 0.53730536), colorOf_2(0.80144125, 0.645667, 0.5433301), colorOf_2(0.80260533, 0.65033793, 0.5494169), colorOf_2(0.80378795, 0.65499425, 0.5555635), colorOf_2(0.80499053, 0.6596354, 0.56176746), colorOf_2(0.80621463, 0.6642609, 0.5680263), colorOf_2(0.8074614, 0.66887003, 0.5743375), colorOf_2(0.8087322, 0.67346215, 0.5806984), colorOf_2(0.8100281, 0.67803675, 0.5871063), colorOf_2(0.81135017, 0.682593, 0.5935585), colorOf_2(0.8126992, 0.68713033, 0.6000522), colorOf_2(0.8140761, 0.69164795, 0.60658437), colorOf_2(0.8154815, 0.69614506, 0.6131522), colorOf_2(0.81691575, 0.70062083, 0.6197526), colorOf_2(0.8183793, 0.70507437, 0.62638247), colorOf_2(0.8198723, 0.7095047, 0.6330386), colorOf_2(0.82139474, 0.71391094, 0.63971764), colorOf_2(0.82294637, 0.71829176, 0.6464164), colorOf_2(0.8245268, 0.7226461, 0.65313137), colorOf_2(0.8261355, 0.72697276, 0.659859), colorOf_2(0.8277716, 0.73127025, 0.6665957), colorOf_2(0.8294341, 0.7355371, 0.6733377), colorOf_2(0.8311216, 0.73977184, 0.68008125), colorOf_2(0.83283275, 0.7439727, 0.68682235), colorOf_2(0.8345657, 0.74813795, 0.69355696), colorOf_2(0.83631897, 0.7522655, 0.70028), colorOf_2(0.83809125, 0.75635314, 0.7069856), colorOf_2(0.8398784, 0.76039904, 0.7136715), colorOf_2(0.8416775, 0.764401, 0.720333), colorOf_2(0.8434853, 0.7683566, 0.72696537), colorOf_2(0.8452981, 0.7722634, 0.73356366), colorOf_2(0.84711194, 0.7761188, 0.74012274), colorOf_2(0.84892243, 0.7799202, 0.74663717), colorOf_2(0.85072696, 0.7836646, 0.7530975), colorOf_2(0.8525191, 0.78734934, 0.75949943), colorOf_2(0.8542922, 0.790972, 0.765838), colorOf_2(0.85604024, 0.7945296, 0.7721061), colorOf_2(0.8577566, 0.79801965, 0.7782957), colorOf_2(0.85943466, 0.8014392, 0.7843979), colorOf_2(0.86107117, 0.8047852, 0.7903953), colorOf_2(0.862656, 0.8080552, 0.79628265), colorOf_2(0.8641834, 0.81124645, 0.8020461), colorOf_2(0.86564934, 0.81435543, 0.8076697), colorOf_2(0.86705315, 0.81737804, 0.8131342), colorOf_2(0.86839956, 0.82030874, 0.8184164), colorOf_2(0.8696913, 0.8231416, 0.82350475), colorOf_2(0.8709385, 0.8258686, 0.828385), colorOf_2(0.87215334, 0.82848054, 0.83304864), colorOf_2(0.8733517, 0.8309671, 0.83748853), colorOf_2(0.87453794, 0.8333197, 0.84171927), colorOf_2(0.8757146, 0.8355302, 0.8457554), colorOf_2(0.8768785, 0.83759236, 0.8496137), colorOf_2(0.87802297, 0.8395017, 0.8533065), colorOf_2(0.87913245, 0.84125555, 0.85685575), colorOf_2(0.88019294, 0.84285223, 0.860274), colorOf_2(0.8811917, 0.8442907, 0.863566), colorOf_2(0.8821154, 0.8455701, 0.86673766), colorOf_2(0.8829517, 0.8466897, 0.86979616), colorOf_2(0.88369125, 0.8476489, 0.87274146), colorOf_2(0.8843271, 0.84844744, 0.87556785), colorOf_2(0.8848514, 0.84908426, 0.87828237), colorOf_2(0.885259, 0.84955895, 0.8808842), colorOf_2(0.88554716, 0.84987175, 0.88336205), colorOf_2(0.88571155, 0.85002184, 0.8857254)])));
    this.v23_1.o1(arrayListOf([this.s21_1, this.t21_1, this.u21_1, this.v21_1, this.p21_1, this.q21_1, this.r21_1, this.o23_1, this.q23_1, this.s23_1, this.r23_1, this.p23_1, this.t23_1, this.u23_1, this.w21_1, this.x21_1, this.y21_1, this.z21_1, this.a22_1, this.b22_1, this.c22_1, this.d22_1, this.e22_1, this.f22_1, this.g22_1, this.h22_1, this.i22_1, this.j22_1, this.k22_1, this.l22_1, this.m22_1, this.n22_1, this.o22_1, this.p22_1, this.q22_1, this.r22_1, this.s22_1, this.t22_1, this.u22_1, this.v22_1, this.w22_1, this.x22_1, this.y22_1, this.z22_1, this.a23_1, this.b23_1, this.c23_1, this.d23_1, this.e23_1, this.f23_1, this.g23_1, this.h23_1, this.i23_1, this.j23_1, this.k23_1, this.l23_1, this.m23_1, this.n23_1]));
  }
  getEntries() {
    return this.v23_1;
  }
  getPalette(name) {
    return ensureNotNull(this.get(name)).getPalette();
  }
  add(entry) {
    this.v23_1.c1(entry);
  }
  get(name) {
    var _iterator__ex2g4s = this.v23_1.h1();
    while (_iterator__ex2g4s.i1()) {
      var entry = _iterator__ex2g4s.j1();
      if (entry.name === name) {
        return entry;
      }
    }
    return null;
  }
  find(palette) {
    var _iterator__ex2g4s = this.v23_1.h1();
    while (_iterator__ex2g4s.i1()) {
      var entry = _iterator__ex2g4s.j1();
      if (equals(entry.getPalette(), palette)) {
        return entry;
      }
    }
    return null;
  }
  createDefaultDivergingPalette() {
    return this.s22_1.getPalette();
  }
  createDefaultSequentialPalette() {
    return this.u22_1.getPalette();
  }
  createDefaultQualititativePalette() {
    return this.t22_1.getPalette();
  }
  createColorGradient(name) {
    var _iterator__ex2g4s = this.v23_1.h1();
    while (_iterator__ex2g4s.i1()) {
      var entry = _iterator__ex2g4s.j1();
      if (entry.name === name) {
        return entry.getPalette();
      }
    }
    return null;
  }
}
class PaletteType extends Enum {}
class ScreenTransformRubberBand {
  constructor(screenTransform) {
    this.w23_1 = SimpleSingleSelection.i15(null);
    this.x23_1 = screenTransform;
  }
  y23() {
    return this.w23_1;
  }
  z23(x, y) {
    var xWorld = this.x23_1.g1h().z15(x);
    var yWorld = this.x23_1.h1h().z15(y);
    this.w23_1.y13(Double_3.z1h(xWorld, yWorld, 0.0, 0.0));
  }
  a24(x, y) {
    if (this.w23_1.f13()) {
      var xWorld = this.x23_1.g1h().z15(x);
      var yWorld = this.x23_1.h1h().z15(y);
      var r = ensureNotNull(this.w23_1.z13());
      this.w23_1.y13(Double_3.z1h(r.g1h(), r.h1h(), xWorld - r.g1h(), yWorld - r.h1h()));
    }
  }
  b24() {
    this.w23_1.i13();
  }
  c24() {
    var tmp;
    if (this.w23_1.f13()) {
      tmp = this.d24(ensureNotNull(this.w23_1.z13())).c1i();
    } else {
      tmp = null;
    }
    return tmp;
  }
  d24(r) {
    var x1 = numberToInt(round(this.x23_1.g1h().b16(r.p1h())));
    var x2 = numberToInt(round(this.x23_1.g1h().b16(r.s1h())));
    var y1 = numberToInt(round(this.x23_1.h1h().b16(r.r1h())));
    var y2 = numberToInt(round(this.x23_1.h1h().b16(r.t1h())));
    var width = x2 - x1 | 0;
    var height = y2 - y1 | 0;
    return Rectangle.from(x1, y1, width, height);
  }
}
class AbstractTwoDScreenTransform {
  static g24() {
    return createThis(this);
  }
}
class AbstractMutableTwoDScreenTransform extends AbstractTwoDScreenTransform {
  static f24() {
    var $this = this.g24();
    $this.e24_1 = CollectionFactory_instance.nk();
    return $this;
  }
  h24(listener) {
    this.e24_1.c1(listener);
  }
  u15(event) {
    var _iterator__ex2g4s = this.e24_1.h1();
    while (_iterator__ex2g4s.i1()) {
      var listener = _iterator__ex2g4s.j1();
      listener.v15(event);
    }
  }
}
class SimpleTwoDScreenTransform$intervalListener$1 {
  constructor(this$0) {
    this.t24_1 = this$0;
  }
  kn(event) {
    this.t24_1.u15(new ScreenTransformEvent());
  }
}
class SimpleTwoDScreenTransform extends AbstractMutableTwoDScreenTransform {
  g1h() {
    return this.o24_1;
  }
  h1h() {
    return this.p24_1;
  }
  static u24(x, y, screenWidth, screenHeight, worldAspectRatio) {
    var $this = this.f24();
    init_org_mkui_transform_SimpleTwoDScreenTransform($this);
    $this.m24_1 = x.c16();
    $this.n24_1 = y.c16();
    $this.o24_1 = x;
    $this.p24_1 = y;
    $this.k24_1 = screenWidth;
    $this.l24_1 = screenHeight;
    $this.r24_1 = worldAspectRatio;
    $this.m24_1.addIntervalListener($this.s24_1);
    $this.n24_1.addIntervalListener($this.s24_1);
    return $this;
  }
  i24(screenWidth, screenHeight) {
    if (!(this.k24_1 === screenWidth) || !(this.l24_1 === screenHeight)) {
      this.k24_1 = screenWidth;
      this.l24_1 = screenHeight;
      updateAspectRatio(this);
      this.o24_1.w15(screenWidth);
      this.p24_1.w15(screenHeight);
      this.u15(new ScreenTransformEvent());
    }
  }
  toString() {
    return 'SimpleTwoDScreenTransform{screenWidth=' + this.k24_1 + ', screenHeight=' + this.l24_1 + ', xInterval=' + this.m24_1 + ', yInterval=' + this.n24_1 + toString(_Char___init__impl__6a9atx(125));
  }
}
class Visual {}
class CPCanvas {
  constructor() {
    this.n25_1 = CollectionFactory_instance.nk();
    this.o25_1 = CollectionFactory_instance.c17();
    this.p25_1 = ArrayList.q1();
    this.q25_1 = new SimpleProperty(false);
    this.r25_1 = new FunctionalCPCanvas(this.n25_1, this.p25_1, this.q25_1);
    this.s25_1 = this.r25_1.j26_1;
  }
  l26() {
    return this.s25_1;
  }
  m26(d) {
    this.n25_1.c1(d);
  }
  n26() {
    return this.r25_1.e26_1;
  }
  o26() {
    return this.r25_1.f26_1;
  }
  p26(l) {
    this.p25_1.c1(l);
  }
  q26() {
    this.r25_1.q26();
  }
  y1g(l) {
    this.r25_1.y1g(l);
  }
  z1g(l) {
    this.r25_1.z1g(l);
  }
  r26(l) {
    this.r25_1.r26(l);
  }
  s26(l) {
    this.r25_1.s26(l);
  }
  t26(l) {
    this.r25_1.t26(l);
  }
}
class FunctionalCPCanvas$timer$1 {
  constructor(this$0) {
    this.c27_1 = this$0;
  }
  j18() {
    prepare(this.c27_1);
  }
}
class FunctionalCPCanvas {
  constructor(layers, listeners, showTiming) {
    this.t25_1 = layers;
    this.u25_1 = listeners;
    this.v25_1 = showTiming;
    this.w25_1 = HashSet.c9();
    var tmp = this;
    var tmp_0 = Companion_getInstance_29().s17_1;
    tmp.x25_1 = tmp_0.x17('Canvas$Prepare', 40, true, new FunctionalCPCanvas$timer$1(this));
    this.y25_1 = new Timing();
    this.z25_1 = new Timing();
    this.a26_1 = new Timing();
    this.b26_1 = true;
    this.d26_1 = new InteractiveComponentListeners();
    this.e26_1 = 0;
    this.f26_1 = 0;
    this.g26_1 = 1.0;
    this.h26_1 = 0;
    this.i26_1 = 0;
    var tmp_1 = this;
    tmp_1.j26_1 = FC(FunctionalCPCanvas$nativeComponent$lambda(this));
    this.k26_1 = null;
  }
  a27() {
    this.v26();
    var _iterator__ex2g4s = this.t25_1.h1();
    while (_iterator__ex2g4s.i1()) {
      var layer = _iterator__ex2g4s.j1();
      this.w25_1.c1(layer);
    }
    if (this.b26_1) {
      this.x25_1.r15();
    }
  }
  v26() {
    this.q26();
  }
  q26() {
    requestAnimationFrame(FunctionalCPCanvas$redraw$lambda(this));
  }
  b27(width, height, scaleFactor) {
    return width > 0 && height > 0 && !(this.e26_1 === width) || !(this.f26_1 === height) || !(this.g26_1 === scaleFactor);
  }
  y26(canvasRef, width, height, scaleFactor) {
    println('syncCanvasDimension  ' + this.e26_1 + ' x ' + this.f26_1 + ' - ' + width + ' x ' + height);
    this.e26_1 = width;
    this.f26_1 = height;
    this.g26_1 = scaleFactor;
    this.h26_1 = numberToInt(width * scaleFactor);
    this.i26_1 = numberToInt(height * scaleFactor);
    var canvas = canvasRef.current;
    if (!(canvas == null)) {
      println('Resizing ' + width + 'x' + height + '@' + scaleFactor + ' -> ' + this.h26_1 + 'x' + this.i26_1);
      canvas.width = this.h26_1;
      canvas.height = this.i26_1;
    }
  }
  w26(g) {
    g.setTransform(this.g26_1, 0.0, 0.0, this.g26_1, 0.0, 0.0);
    g.clearRect(0.0, 0.0, this.e26_1, this.f26_1);
  }
  l26() {
    return this.j26_1;
  }
  z26(width, height) {
    var _iterator__ex2g4s = this.u25_1.h1();
    while (_iterator__ex2g4s.i1()) {
      var listener = _iterator__ex2g4s.j1();
      listener.d27(width, height);
    }
  }
  y1g(l) {
    this.d26_1.y1g(l);
  }
  z1g(l) {
    this.d26_1.z1g(l);
  }
  r26(l) {
    this.d26_1.v1g_1.c1(l);
  }
  s26(l) {
    this.d26_1.w1g_1.c1(l);
  }
  t26(l) {
    this.d26_1.x1g_1.c1(l);
  }
}
class JSMouseEvent {
  constructor(event, clickCount) {
    this.e27_1 = event;
    this.f27_1 = clickCount;
  }
  g27() {
    return this.f27_1;
  }
  g1h() {
    return numberToInt(this.e27_1.offsetX);
  }
  h1h() {
    return numberToInt(this.e27_1.offsetY);
  }
  h27() {
    return this.e27_1.ctrlKey || this.e27_1.metaKey;
  }
  i27() {
    return this.e27_1.ctrlKey || this.e27_1.metaKey;
  }
  j27() {
    return this.e27_1.altKey;
  }
  k27() {
    return this.e27_1.shiftKey;
  }
  l27() {
    return false;
  }
  m27() {
    var tmp = this.e27_1.button;
    // Inline function 'web.mouse.MAIN' call
    // Inline function 'js.reflect.unsafeCast' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    return equals(tmp, 0);
  }
  n27() {
    var tmp = this.e27_1.button;
    // Inline function 'web.mouse.AUXILIARY' call
    // Inline function 'js.reflect.unsafeCast' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    return equals(tmp, 1);
  }
}
class Companion_56 {
  constructor() {
    Companion_instance_56 = this;
    this.e1b_1 = new MkColorFactory();
  }
}
class MkColorFactory {
  constructor() {
    Companion_getInstance_56();
    var tmp = this;
    tmp.m1b_1 = lazy(MkColorFactory$white$delegate$lambda);
    var tmp_0 = this;
    tmp_0.n1b_1 = lazy(MkColorFactory$lightGray$delegate$lambda);
    var tmp_1 = this;
    tmp_1.o1b_1 = lazy(MkColorFactory$gray$delegate$lambda);
    var tmp_2 = this;
    tmp_2.p1b_1 = lazy(MkColorFactory$darkGray$delegate$lambda);
    var tmp_3 = this;
    tmp_3.q1b_1 = lazy(MkColorFactory$black$delegate$lambda);
  }
  r1b() {
    var tmp0 = this.m1b_1;
    var tmp = KProperty1;
    // Inline function 'kotlin.getValue' call
    getPropertyCallableRef('white', 1, tmp, MkColorFactory$_get_white_$ref_49ijo8(), null);
    return tmp0.z2();
  }
  z27() {
    var tmp0 = this.n1b_1;
    var tmp = KProperty1;
    // Inline function 'kotlin.getValue' call
    getPropertyCallableRef('lightGray', 1, tmp, MkColorFactory$_get_lightGray_$ref_c3gn8o(), null);
    return tmp0.z2();
  }
  n1e() {
    var tmp0 = this.o1b_1;
    var tmp = KProperty1;
    // Inline function 'kotlin.getValue' call
    getPropertyCallableRef('gray', 1, tmp, MkColorFactory$_get_gray_$ref_di7bka(), null);
    return tmp0.z2();
  }
  a28() {
    var tmp0 = this.p1b_1;
    var tmp = KProperty1;
    // Inline function 'kotlin.getValue' call
    getPropertyCallableRef('darkGray', 1, tmp, MkColorFactory$_get_darkGray_$ref_syni1s(), null);
    return tmp0.z2();
  }
  b28() {
    var tmp0 = this.q1b_1;
    var tmp = KProperty1;
    // Inline function 'kotlin.getValue' call
    getPropertyCallableRef('black', 1, tmp, MkColorFactory$_get_black_$ref_r3mqym(), null);
    return tmp0.z2();
  }
}
class CPColor {
  static u27(r, g, b, a) {
    var $this = createThis(this);
    $this.o27_1 = r;
    $this.p27_1 = g;
    $this.q27_1 = b;
    $this.r27_1 = a;
    $this.s27_1 = $this.p19();
    return $this;
  }
  static y27(r, g, b) {
    return this.u27(r, g, b, _UByte___init__impl__g9hnc4(-1));
  }
  static v27(r, g, b) {
    // Inline function 'kotlin.toUByte' call
    var tmp = _UByte___init__impl__g9hnc4(toByte(r));
    // Inline function 'kotlin.toUByte' call
    var tmp_0 = _UByte___init__impl__g9hnc4(toByte(g));
    // Inline function 'kotlin.toUByte' call
    var tmp$ret$2 = _UByte___init__impl__g9hnc4(toByte(b));
    return this.u27(tmp, tmp_0, tmp$ret$2, _UByte___init__impl__g9hnc4(-1));
  }
  static t27(r, g, b, a) {
    // Inline function 'kotlin.toUByte' call
    var tmp = _UByte___init__impl__g9hnc4(toByte(r));
    // Inline function 'kotlin.toUByte' call
    var tmp_0 = _UByte___init__impl__g9hnc4(toByte(g));
    // Inline function 'kotlin.toUByte' call
    var tmp_1 = _UByte___init__impl__g9hnc4(toByte(b));
    // Inline function 'kotlin.toUByte' call
    var tmp$ret$3 = _UByte___init__impl__g9hnc4(toByte(a));
    return this.u27(tmp, tmp_0, tmp_1, tmp$ret$3);
  }
  static w27(r, g, b) {
    return this.t27(numberToInt(r * 255 + 0.5), numberToInt(g * 255 + 0.5), numberToInt(b * 255 + 0.5), 255);
  }
  static x27(rgba) {
    return this.t27(rgba >> 16 & 255, rgba >> 8 & 255, rgba >> 0 & 255, rgba >> 24 & 255);
  }
  k19() {
    return this.o27_1;
  }
  l19() {
    return this.p27_1;
  }
  m19() {
    return this.q27_1;
  }
  n19() {
    return this.r27_1;
  }
}
class ElementalKeyEvent {
  constructor(keyCode) {
    this.c28_1 = keyCode;
  }
  d28() {
    return this.c28_1;
  }
}
class CPInteractiveHandler$registerMouseWheelListener$2$1 {
  constructor($it) {
    this.v28_1 = $it;
  }
  g1h() {
    return numberToInt(this.v28_1.x);
  }
  h1h() {
    return numberToInt(this.v28_1.y);
  }
  w28() {
    return this.v28_1.deltaY;
  }
}
class CPInteractiveHandler$registerContextMenuListener$2$1 {
  constructor($it) {
    this.z28_1 = $it;
  }
  g1h() {
    return this.z28_1.clientX;
  }
  h1h() {
    return this.z28_1.clientY;
  }
}
class CPInteractiveHandler {
  constructor(canvas, listeners, interactTiming) {
    listeners = listeners === VOID ? new InteractiveComponentListeners() : listeners;
    interactTiming = interactTiming === VOID ? null : interactTiming;
    this.e28_1 = canvas;
    this.f28_1 = listeners;
    this.g28_1 = interactTiming;
    this.h28_1 = false;
    this.i28_1 = false;
    this.j28_1 = false;
    this.k28_1 = null;
    var tmp = this;
    tmp.l28_1 = CPInteractiveHandler$onmousedrag$lambda(this);
    this.b29();
    this.c29();
    this.d29();
    this.e29();
    this.f29();
  }
  b29() {
    if (!(this.e28_1 == null)) {
      // Inline function 'web.mouse.MOUSE_UP' call
      // Inline function 'web.events.EventType' call
      // Inline function 'js.reflect.unsafeCast' call
      // Inline function 'kotlin.js.unsafeCast' call
      // Inline function 'kotlin.js.asDynamic' call
      var tmp = 'mouseup';
      addEventHandler(this.e28_1, tmp, CPInteractiveHandler$registerMouseListener$lambda(this));
      // Inline function 'web.mouse.MOUSE_DOWN' call
      // Inline function 'web.events.EventType' call
      // Inline function 'js.reflect.unsafeCast' call
      // Inline function 'kotlin.js.unsafeCast' call
      // Inline function 'kotlin.js.asDynamic' call
      var tmp_0 = 'mousedown';
      addEventHandler(this.e28_1, tmp_0, CPInteractiveHandler$registerMouseListener$lambda_0(this));
      // Inline function 'web.mouse.MOUSE_OVER' call
      // Inline function 'web.events.EventType' call
      // Inline function 'js.reflect.unsafeCast' call
      // Inline function 'kotlin.js.unsafeCast' call
      // Inline function 'kotlin.js.asDynamic' call
      var tmp_1 = 'mouseover';
      addEventHandler(this.e28_1, tmp_1, CPInteractiveHandler$registerMouseListener$lambda_1(this));
    }
    // Inline function 'web.mouse.MOUSE_OUT' call
    // Inline function 'web.events.EventType' call
    // Inline function 'js.reflect.unsafeCast' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var tmp_2 = 'mouseout';
    addEventHandler(this.e28_1, tmp_2, CPInteractiveHandler$registerMouseListener$lambda_2(this));
    // Inline function 'web.mouse.DBL_CLICK' call
    // Inline function 'web.events.EventType' call
    // Inline function 'js.reflect.unsafeCast' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var tmp_3 = 'dblclick';
    addEventHandler(this.e28_1, tmp_3, CPInteractiveHandler$registerMouseListener$lambda_3(this));
  }
  c29() {
    if (!(this.e28_1 == null)) {
      var tmp = this;
      tmp.k28_1 = CPInteractiveHandler$registerMouseMotionListener$lambda(this);
      // Inline function 'web.mouse.MOUSE_MOVE' call
      // Inline function 'web.events.EventType' call
      // Inline function 'js.reflect.unsafeCast' call
      // Inline function 'kotlin.js.unsafeCast' call
      // Inline function 'kotlin.js.asDynamic' call
      var tmp$ret$4 = 'mousemove';
      addEventHandler(this.e28_1, tmp$ret$4, ensureNotNull(this.k28_1));
    }
  }
  d29() {
    if (!(this.e28_1 == null)) {
      // Inline function 'web.mouse.WHEEL' call
      // Inline function 'web.events.EventType' call
      // Inline function 'js.reflect.unsafeCast' call
      // Inline function 'kotlin.js.unsafeCast' call
      // Inline function 'kotlin.js.asDynamic' call
      var tmp = 'wheel';
      addEventHandler(this.e28_1, tmp, CPInteractiveHandler$registerMouseWheelListener$lambda(this));
    }
  }
  q28() {
    this.j28_1 = true;
    if (!(this.e28_1 == null)) {
      // Inline function 'web.mouse.MOUSE_MOVE' call
      // Inline function 'web.events.EventType' call
      // Inline function 'js.reflect.unsafeCast' call
      // Inline function 'kotlin.js.unsafeCast' call
      // Inline function 'kotlin.js.asDynamic' call
      var tmp$ret$4 = 'mousemove';
      removeEventListener(this.e28_1, tmp$ret$4, ensureNotNull(this.k28_1));
      // Inline function 'web.mouse.MOUSE_MOVE' call
      // Inline function 'web.events.EventType' call
      // Inline function 'js.reflect.unsafeCast' call
      // Inline function 'kotlin.js.unsafeCast' call
      // Inline function 'kotlin.js.asDynamic' call
      var tmp$ret$9 = 'mousemove';
      addEventHandler(this.e28_1, tmp$ret$9, this.l28_1);
    }
  }
  o28() {
    if (this.j28_1) {
      this.j28_1 = false;
      // Inline function 'web.mouse.MOUSE_MOVE' call
      // Inline function 'web.events.EventType' call
      // Inline function 'js.reflect.unsafeCast' call
      // Inline function 'kotlin.js.unsafeCast' call
      // Inline function 'kotlin.js.asDynamic' call
      var tmp$ret$4 = 'mousemove';
      removeEventListener(this.e28_1, tmp$ret$4, ensureNotNull(this.l28_1));
      // Inline function 'web.mouse.MOUSE_MOVE' call
      // Inline function 'web.events.EventType' call
      // Inline function 'js.reflect.unsafeCast' call
      // Inline function 'kotlin.js.unsafeCast' call
      // Inline function 'kotlin.js.asDynamic' call
      var tmp$ret$9 = 'mousemove';
      addEventHandler(this.e28_1, tmp$ret$9, ensureNotNull(this.k28_1));
    }
  }
  e29() {
    this.h28_1 = true;
    // Inline function 'web.keyboard.KEY_DOWN' call
    // Inline function 'web.events.EventType' call
    // Inline function 'js.reflect.unsafeCast' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var tmp = 'keydown';
    addEventHandler(this.e28_1, tmp, CPInteractiveHandler$registerKeyListener$lambda(this));
  }
  f29() {
    // Inline function 'web.pointer.CONTEXT_MENU' call
    // Inline function 'web.events.EventType' call
    // Inline function 'js.reflect.unsafeCast' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var tmp = 'contextmenu';
    addEventHandler(this.e28_1, tmp, CPInteractiveHandler$registerContextMenuListener$lambda(this));
  }
}
class CPPopupMenu {
  constructor() {
    var tmp = this;
    var reason = 'Not yet implemented';
    throw NotImplementedError.ui('An operation is not implemented: ' + reason);
  }
  h29(command) {
  }
  i29(component, x, y) {
  }
  l26() {
    return this.g29_1;
  }
}
class Companion_57 {
  constructor() {
    Companion_instance_57 = this;
    this.k1z_1 = new CPFontFactory();
  }
}
class CPFontFactory {
  constructor() {
    Companion_getInstance_57();
  }
  j29(family) {
    return new CPFont(ensureNotNull(family), 12.0);
  }
  l1z() {
    return ensureNotNull(this.j29('Arial'));
  }
}
class CPFont {
  constructor(family, size, weight, posture) {
    weight = weight === VOID ? Weight_NORMAL_getInstance() : weight;
    posture = posture === VOID ? Posture_REGULAR_getInstance() : posture;
    this.k29_1 = family;
    this.l29_1 = size;
    this.m29_1 = weight;
    this.n29_1 = posture;
    var tmp = this;
    tmp.o29_1 = lazy(CPFont$name$delegate$lambda(this));
  }
  p29() {
    return this.l29_1;
  }
  q29(fontSize) {
    return new CPFont(this.k29_1, fontSize, this.m29_1, this.n29_1);
  }
  r29() {
    return this.l29_1;
  }
  s29(weight) {
    return new CPFont(this.k29_1, this.l29_1, weight, this.n29_1);
  }
  toString() {
    return _get_name__das4rk(this);
  }
}
class CPImage {
  constructor(width, height) {
    this.t29_1 = width;
    this.u29_1 = height;
    this.v29_1 = new Image(this.t29_1, this.u29_1);
    this.w29_1 = CPImageFactory_getInstance().z29_1;
    this.x29_1 = CPImageFactory_getInstance().a2a_1;
    this.y29_1 = ensureNotNull(this.x29_1).createImageData(this.t29_1, this.u29_1);
  }
  b2a() {
    return _get__nativeImage__47l87u(this);
  }
  c2a(x, y, w, h, iArray) {
    var data = ensureNotNull(this.y29_1).data;
    var inductionVariable = 0;
    var last = ensureNotNull(iArray).length - 1 | 0;
    if (inductionVariable <= last)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        data[i] = toShort(iArray[i]);
      }
       while (inductionVariable <= last);
    ensureNotNull(this.w29_1).width = _get__nativeImage__47l87u(this).width;
    ensureNotNull(this.w29_1).height = _get__nativeImage__47l87u(this).height;
    ensureNotNull(this.x29_1).putImageData(ensureNotNull(this.y29_1), 0, 0);
    _get__nativeImage__47l87u(this).src = ensureNotNull(this.w29_1).toDataURL('image/png');
  }
  d2a() {
    return true;
  }
  e2a() {
    return _get__nativeImage__47l87u(this).complete;
  }
  fb() {
    this.w29_1 = null;
    this.x29_1 = null;
    this.v29_1 = null;
    this.y29_1 = null;
  }
}
class CPImageFactory {
  constructor() {
    CPImageFactory_instance = this;
    var tmp = this;
    var tmp_0 = document.createElement('canvas');
    tmp.z29_1 = tmp_0 instanceof HTMLCanvasElement ? tmp_0 : THROW_CCE();
    var tmp_1 = this;
    // Inline function 'web.canvas.ID' call
    // Inline function 'js.reflect.unsafeCast' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var tmp_2 = this.z29_1.getContext('2d');
    tmp_1.a2a_1 = tmp_2 instanceof CanvasRenderingContext2D ? tmp_2 : THROW_CCE();
  }
}
class CanvasRenderingContext2DIGraphics extends AbstractIGraphics {
  constructor(gc) {
    super();
    this.h2a_1 = gc;
  }
  q1x(color) {
    var javaScriptColor = color.p19();
    this.h2a_1.fillStyle = javaScriptColor;
    this.h2a_1.strokeStyle = javaScriptColor;
  }
  r1x() {
    this.h2a_1.beginPath();
  }
  m1v(x, y) {
    this.h2a_1.moveTo(x, y);
  }
  n1v(x, y) {
    this.h2a_1.lineTo(x, y);
  }
  q1v() {
    this.h2a_1.closePath();
  }
  s1x() {
    this.h2a_1.fill();
  }
}
class AbstractAggregation {
  h3() {
    return toString_1(this);
  }
}
class SumAggregation extends AbstractAggregation {
  constructor(column, filter) {
    filter = filter === VOID ? null : filter;
    super();
    this.j2a_1 = column;
    this.k2a_1 = filter;
  }
  n21() {
    var tmp = PrimitiveClasses_getInstance().bd();
    return isInterface(tmp, KClass) ? tmp : THROW_CCE();
  }
  i2a(cuboid, group) {
    var distributiveStatistics = ensureNotNull(cuboid).l2a(group, this.j2a_1, this.k2a_1);
    return distributiveStatistics == null ? null : distributiveStatistics.o2a_1;
  }
  toString() {
    return 'Sum(' + toString_0(this.j2a_1.h3()) + ')';
  }
}
class Companion_58 {
  s2a(path) {
    return new ArrayGroup(path.slice());
  }
}
class Group {}
class ArrayGroup {
  constructor(path) {
    this.t2a_1 = path;
  }
  u2a() {
    return this.t2a_1;
  }
  v2a(i) {
    return ensureNotNull(ensureNotNull(this.u2a())[i]);
  }
  equals(o) {
    if (this === o)
      return true;
    if (!(!(o == null) ? isInterface(o, Group) : false))
      return false;
    var path1 = isInterface(o, Group) ? o : THROW_CCE();
    return contentEquals(this.u2a(), ensureNotNull(path1).u2a());
  }
  hashCode() {
    return contentHashCode(this.u2a());
  }
  toString() {
    return 'ArrayGroup{path=' + contentToString(this.u2a()) + toString(_Char___init__impl__6a9atx(125));
  }
}
class Companion_59 {
  w2a(path) {
    return get_0(this, path.slice());
  }
}
class Dice {
  constructor(path) {
    this.x2a_1 = path;
  }
  equals(o) {
    if (this === o)
      return true;
    if (!(o instanceof Dice))
      return false;
    return contentEquals(this.x2a_1, o.x2a_1);
  }
  hashCode() {
    return contentHashCode(this.x2a_1);
  }
  toString() {
    return 'Dice{path=' + contentToString(this.x2a_1) + toString(_Char___init__impl__6a9atx(125));
  }
}
class Companion_60 {
  y2a(path) {
    return get_1(this, path.slice());
  }
}
class Dimensions {
  constructor(path) {
    this.z2a_1 = path;
    this.a2b_1 = HashMap.i7();
    var inductionVariable = 0;
    var last = path.length;
    if (inductionVariable < last)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        var column = path[i];
        // Inline function 'kotlin.collections.set' call
        ensureNotNull(this.a2b_1).o6(column, i);
      }
       while (inductionVariable < last);
  }
  equals(o) {
    if (this === o)
      return true;
    if (!(o instanceof Dimensions))
      return false;
    var path1 = o instanceof Dimensions ? o : THROW_CCE();
    return contentEquals(this.z2a_1, ensureNotNull(path1).z2a_1);
  }
  hashCode() {
    return contentHashCode(this.z2a_1);
  }
  b2b(column) {
    return ensureNotNull(this.a2b_1).c3(column);
  }
}
class DistributiveStatistics {
  static c2b() {
    var $this = createThis(this);
    $this.m2a_1 = 0n;
    $this.n2a_1 = 0n;
    $this.o2a_1 = null;
    $this.p2a_1 = null;
    $this.q2a_1 = null;
    $this.r2a_1 = null;
    return $this;
  }
  static d2b(series, keys, filter) {
    var $this = this.c2b();
    var _iterator__ex2g4s = ensureNotNull(keys).h1();
    while (_iterator__ex2g4s.i1()) {
      var row = _iterator__ex2g4s.j1();
      if (filter == null || filter.h2b(row)) {
        var value = series.c3(row);
        if (!(value == null)) {
          if (isNumber(value)) {
            $this.g2b(value);
          } else {
            if (value instanceof Quantity) {
              $this.g2b(value.f2b_1);
            }
          }
        } else {
          $this.e2b();
        }
      }
    }
    return $this;
  }
  g2b(value) {
    var count = this.m2a_1;
    var countOfMissing = this.n2a_1;
    var sum = this.o2a_1;
    var uncorrectedSumOfSquares = this.p2a_1;
    var minimum = this.q2a_1;
    var maximum = this.r2a_1;
    var v = numberToDouble(value);
    if (!(sum == null)) {
      sum = sum + v;
    } else {
      sum = v;
    }
    if (!(uncorrectedSumOfSquares == null)) {
      uncorrectedSumOfSquares = uncorrectedSumOfSquares + v * v;
    } else {
      uncorrectedSumOfSquares = v * v;
    }
    if (minimum == null || v < numberToDouble(minimum)) {
      minimum = value;
    }
    if (maximum == null || v > numberToDouble(maximum)) {
      maximum = value;
    }
    var _unary__edvuaz = count;
    count = add_0(_unary__edvuaz, get_ONE());
    this.m2a_1 = count;
    this.n2a_1 = countOfMissing;
    this.o2a_1 = sum;
    this.p2a_1 = uncorrectedSumOfSquares;
    this.q2a_1 = minimum;
    this.r2a_1 = maximum;
  }
  e2b() {
    var _unary__edvuaz = this.n2a_1;
    this.n2a_1 = add_0(_unary__edvuaz, get_ONE());
  }
  i2b(distributiveStatistics) {
    var sum = this.o2a_1;
    var uncorrectedSumOfSquares = this.p2a_1;
    var minimum = this.q2a_1;
    var maximum = this.r2a_1;
    this.m2a_1 = add_0(this.m2a_1, distributiveStatistics.m2a_1);
    this.n2a_1 = add_0(this.n2a_1, distributiveStatistics.n2a_1);
    var osum = distributiveStatistics.o2a_1;
    if (!(osum == null)) {
      if (!(sum == null)) {
        sum = sum + osum;
      } else {
        this.o2a_1 = osum;
      }
    }
    var otherUncorrectedSumOfSquares = distributiveStatistics.p2a_1;
    if (!(otherUncorrectedSumOfSquares == null)) {
      if (!(uncorrectedSumOfSquares == null)) {
        uncorrectedSumOfSquares = uncorrectedSumOfSquares + otherUncorrectedSumOfSquares;
      } else {
        uncorrectedSumOfSquares = otherUncorrectedSumOfSquares;
      }
    }
    var otherMinimum = distributiveStatistics.q2a_1;
    if (minimum == null || (!(otherMinimum == null) && numberToDouble(otherMinimum) < numberToDouble(minimum))) {
      minimum = otherMinimum;
    }
    var otherMaximum = distributiveStatistics.r2a_1;
    if (maximum == null || (!(otherMaximum == null) && numberToDouble(otherMaximum) > numberToDouble(maximum))) {
      maximum = otherMaximum;
    }
    this.o2a_1 = sum;
    this.p2a_1 = uncorrectedSumOfSquares;
    this.q2a_1 = minimum;
    this.r2a_1 = maximum;
  }
  j2b() {
    var tmp;
    if (this.m2a_1 > 0n) {
      tmp = ensureNotNull(this.o2a_1) / toNumber_0(this.m2a_1);
    } else {
      tmp = null;
    }
    return tmp;
  }
  k2b() {
    var mean = this.j2b();
    var tmp;
    if (!(mean == null)) {
      tmp = ensureNotNull(this.p2a_1) / toNumber_0(this.m2a_1) - mean * mean;
    } else {
      tmp = null;
    }
    return tmp;
  }
  l2b() {
    var variance = this.k2b();
    var tmp;
    if (!(variance == null)) {
      // Inline function 'kotlin.math.sqrt' call
      tmp = Math.sqrt(variance);
    } else {
      tmp = null;
    }
    return tmp;
  }
  toString() {
    return 'DistributiveStatistics{count=' + this.m2a_1 + ', countOfMissing=' + this.n2a_1 + ', sum=' + this.o2a_1 + ', uncorrectedSumOfSquares=' + this.p2a_1 + ', minimum=' + this.q2a_1 + ', maximum=' + this.r2a_1 + ', mean=' + this.j2b() + ', variance=' + this.k2b() + ', stdDev=' + this.l2b() + toString(_Char___init__impl__6a9atx(125));
  }
}
class GroupFactory {
  m2b() {
    var tmp;
    if (false) {
      tmp = Companion_instance_58.s2a([]);
    } else {
      tmp = LinkedGroup.r2b();
    }
    return tmp;
  }
}
class DimensionsDiceStructure {
  constructor(dimensions, dice, structure) {
    this.s2b_1 = dimensions;
    this.t2b_1 = dice;
    this.u2b_1 = structure;
  }
  equals(o) {
    if (this === o)
      return true;
    if (o == null || !getKClassFromExpression(this).equals(getKClassFromExpression(o)))
      return false;
    var that = o instanceof DimensionsDiceStructure ? o : THROW_CCE();
    if (!ensureNotNull(this.t2b_1).equals(that.t2b_1))
      return false;
    return !equals(this.s2b_1, that.s2b_1) ? false : equals(this.u2b_1, that.u2b_1);
  }
  hashCode() {
    // Inline function 'kotlin.hashCode' call
    var tmp0_safe_receiver = this.s2b_1;
    var tmp1_elvis_lhs = tmp0_safe_receiver == null ? null : hashCode(tmp0_safe_receiver);
    var result = tmp1_elvis_lhs == null ? 0 : tmp1_elvis_lhs;
    var tmp = imul_0(31, result);
    // Inline function 'kotlin.hashCode' call
    var tmp0_safe_receiver_0 = this.t2b_1;
    var tmp1_elvis_lhs_0 = tmp0_safe_receiver_0 == null ? null : hashCode(tmp0_safe_receiver_0);
    result = tmp + (tmp1_elvis_lhs_0 == null ? 0 : tmp1_elvis_lhs_0) | 0;
    var tmp_0 = imul_0(31, result);
    // Inline function 'kotlin.hashCode' call
    var tmp0_safe_receiver_1 = this.u2b_1;
    var tmp1_elvis_lhs_1 = tmp0_safe_receiver_1 == null ? null : hashCode(tmp0_safe_receiver_1);
    result = tmp_0 + (tmp1_elvis_lhs_1 == null ? 0 : tmp1_elvis_lhs_1) | 0;
    return result;
  }
  toString() {
    return 'DimensionsDiceStructure{dimensions=' + this.s2b_1 + ', dice=' + this.t2b_1 + ', structure=' + this.u2b_1 + toString(_Char___init__impl__6a9atx(125));
  }
}
class InMemoryCube$listener$1 {
  constructor(this$0) {
    this.v2b_1 = this$0;
  }
  w2b(event) {
    var _iterator__ex2g4s = this.v2b_1.c2c_1.n6().h1();
    while (_iterator__ex2g4s.i1()) {
      var cuboid = _iterator__ex2g4s.j1();
      cuboid.f2c(true);
    }
  }
  g2c(event) {
    return this.w2b(event);
  }
}
class InMemoryCube {
  constructor(dataFrame) {
    this.c2c_1 = HashMap.i7();
    this.d2c_1 = HashMap.i7();
    var tmp = this;
    tmp.e2c_1 = new InMemoryCube$listener$1(this);
    this.x2b_1 = dataFrame;
    this.z2b_1 = Companion_instance_60.y2a([]);
    this.a2c_1 = Companion_instance_59.w2a([]);
    this.b2c_1 = Companion_instance_63.h2c(booleanArrayOf([]));
    this.y2b_1 = new ApexCuboid(this, this.z2b_1);
    var tmp0 = this.c2c_1;
    var tmp2 = new DimensionsDiceStructure(this.z2b_1, this.a2c_1, this.b2c_1);
    // Inline function 'kotlin.collections.set' call
    var value = this.y2b_1;
    tmp0.o6(tmp2, value);
    dataFrame.i2c(this.e2c_1);
  }
  j2c() {
    return this.x2b_1;
  }
  k2c() {
    return this.y2b_1;
  }
  l2c(cuboid) {
    return this.d2c_1.c3(cuboid);
  }
  toString() {
    return 'InMemoryCube{cuboids=' + this.c2c_1.m6() + toString(_Char___init__impl__6a9atx(125));
  }
}
class LinkedGroup {
  static r2b() {
    var $this = createThis(this);
    init_org_molap_aggregates_cube_LinkedGroup($this);
    $this.n2b_1 = 0;
    $this.o2b_1 = null;
    $this.p2b_1 = null;
    return $this;
  }
  v2a(level) {
    var current = this;
    var inductionVariable = this.n2b_1 - 1 | 0;
    var last = level + 1 | 0;
    if (last <= inductionVariable)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + -1 | 0;
        current = ensureNotNull(current).o2b_1;
      }
       while (!(i === last));
    return ensureNotNull(current).p2b_1;
  }
  u2a() {
    // Inline function 'kotlin.arrayOfNulls' call
    var size = this.n2b_1;
    var path = Array(size);
    var current = this;
    var inductionVariable = this.n2b_1 - 1 | 0;
    if (0 <= inductionVariable)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + -1 | 0;
        path[i] = ensureNotNull(current).p2b_1;
        current = current.o2b_1;
      }
       while (0 <= inductionVariable);
    return path;
  }
  toString() {
    return 'LinkedGroup{path=' + contentToString(this.u2a()) + toString(_Char___init__impl__6a9atx(125));
  }
}
class GroupColumn {
  constructor(group, column, rowFilter) {
    this.m2c_1 = group;
    this.n2c_1 = column;
    this.o2c_1 = rowFilter;
  }
  equals(o) {
    if (this === o)
      return true;
    if (o == null || !getKClassFromExpression(this).equals(getKClassFromExpression(o)))
      return false;
    var that = o instanceof GroupColumn ? o : THROW_CCE();
    if (!equals(this.m2c_1, that.m2c_1))
      return false;
    return !equals(this.n2c_1, that.n2c_1) ? false : !(!(this.o2c_1 == null) ? !equals(this.o2c_1, that.o2c_1) : !(that.o2c_1 == null));
  }
  hashCode() {
    // Inline function 'kotlin.hashCode' call
    var tmp0_safe_receiver = this.m2c_1;
    var tmp1_elvis_lhs = tmp0_safe_receiver == null ? null : hashCode(tmp0_safe_receiver);
    var result = tmp1_elvis_lhs == null ? 0 : tmp1_elvis_lhs;
    var tmp = imul_0(31, result);
    // Inline function 'kotlin.hashCode' call
    var tmp0_safe_receiver_0 = this.n2c_1;
    var tmp1_elvis_lhs_0 = tmp0_safe_receiver_0 == null ? null : hashCode(tmp0_safe_receiver_0);
    result = tmp + (tmp1_elvis_lhs_0 == null ? 0 : tmp1_elvis_lhs_0) | 0;
    result = imul_0(31, result) + (!(this.o2c_1 == null) ? hashCode(this.o2c_1) : 0) | 0;
    return result;
  }
  toString() {
    var tmp = 'GroupColumn{group=' + this.m2c_1 + 'group=';
    // Inline function 'kotlin.hashCode' call
    var tmp0_safe_receiver = this.m2c_1;
    var tmp1_elvis_lhs = tmp0_safe_receiver == null ? null : hashCode(tmp0_safe_receiver);
    var tmp_0 = tmp + (tmp1_elvis_lhs == null ? 0 : tmp1_elvis_lhs) + ', column=' + this.n2c_1 + ', column=';
    // Inline function 'kotlin.hashCode' call
    var tmp0_safe_receiver_0 = this.n2c_1;
    var tmp1_elvis_lhs_0 = tmp0_safe_receiver_0 == null ? null : hashCode(tmp0_safe_receiver_0);
    return tmp_0 + (tmp1_elvis_lhs_0 == null ? 0 : tmp1_elvis_lhs_0) + toString(_Char___init__impl__6a9atx(125));
  }
}
class AbstractCuboid {
  constructor(cube) {
    this.p2c_1 = cube;
    this.q2c_1 = true;
    this.r2c_1 = null;
    this.s2c_1 = null;
    this.t2c_1 = null;
    this.u2c_1 = null;
  }
  v2c() {
    return this.p2c_1;
  }
  f2c(_set____db54di) {
    this.q2c_1 = _set____db54di;
  }
  w2c() {
    return this.q2c_1;
  }
  ta() {
    this.f2c(false);
    this.r2c_1 = CollectionFactory_instance.c17();
    this.s2c_1 = CollectionFactory_instance.c17();
    this.t2c_1 = CollectionFactory_instance.c17();
    this.u2c_1 = CollectionFactory_instance.c17();
  }
  l2a(group, column, rowExcluder) {
    if (this.w2c()) {
      this.ta();
    }
    var tmp;
    if (!(group == null)) {
      var key = new GroupColumn(group, column, rowExcluder);
      if (!ensureNotNull(this.r2c_1).a3(key)) {
        var child = this.v2c().l2c(this);
        var distributiveStatistics;
        if (!(child == null)) {
          distributiveStatistics = DistributiveStatistics.c2b();
          var _iterator__ex2g4s = ensureNotNull(child.y2c(group)).h1();
          while (_iterator__ex2g4s.i1()) {
            var childGroup = _iterator__ex2g4s.j1();
            var childDistributiveStatistics = child.l2a(childGroup, column, rowExcluder);
            distributiveStatistics.i2b(ensureNotNull(childDistributiveStatistics));
          }
        } else {
          var rows = this.x2c(group);
          if (!(rows == null)) {
            distributiveStatistics = DistributiveStatistics.d2b(column, rows, rowExcluder);
          } else {
            distributiveStatistics = null;
          }
        }
        var tmp0 = ensureNotNull(this.r2c_1);
        // Inline function 'kotlin.collections.set' call
        var value = distributiveStatistics;
        tmp0.o6(key, value);
        return distributiveStatistics;
      }
      tmp = ensureNotNull(this.r2c_1).c3(key);
    } else {
      tmp = null;
    }
    return tmp;
  }
}
class ApexCuboid$listener$1 {
  constructor(this$0) {
    this.b2d_1 = this$0;
  }
  w2b(event) {
    this.b2d_1.f2c(true);
  }
  g2c(event) {
    return this.w2b(event);
  }
}
class ApexCuboid extends AbstractCuboid {
  constructor(cube, dimensions) {
    super(cube);
    this.i2d_1 = cube;
    this.k2d_1 = GroupFactory_instance.m2b();
    this.l2d_1 = listOf(this.k2d_1);
    var tmp = this;
    tmp.m2d_1 = new ApexCuboid$listener$1(this);
    this.n2d_1 = emptySet();
    this.j2d_1 = dimensions;
    cube.x2b_1.i2c(this.m2d_1);
  }
  v2c() {
    return this.i2d_1;
  }
  z2c() {
    return this.j2d_1;
  }
  a2d() {
    return this.l2d_1;
  }
  y2c(group) {
    return null;
  }
  x2c(group) {
    return this.i2d_1.j2c().o2d();
  }
}
class Cuboid$Companion$ALL$1 {
  toString() {
    return '(all)';
  }
}
class Companion_61 {
  constructor() {
    Companion_instance_61 = this;
    var tmp = this;
    tmp.p2d_1 = new Cuboid$Companion$ALL$1();
  }
}
class WeakQueryListener {
  constructor($outer, listener) {
    this.r2d_1 = $outer;
    this.q2d_1 = new WeakReference(listener);
  }
  s2d() {
    var l = this.jk();
    if (!(l == null)) {
      l.s2d();
    } else {
      this.r2d_1.v2d(this);
    }
  }
  jk() {
    return this.q2d_1.zj();
  }
  toString() {
    var l = this.jk();
    var tmp;
    if (!(l == null)) {
      tmp = 'Weak[' + toString_1(l) + ']';
    } else {
      tmp = anyToString(this);
    }
    return tmp;
  }
}
class Companion_62 {}
class AbstractQuery {
  static w2d() {
    var $this = createThis(this);
    $this.t2d_1 = true;
    $this.u2d_1 = CollectionFactory_instance.nk();
    return $this;
  }
  x2d(listener) {
    var weakListener = new WeakQueryListener(this, listener);
    this.u2d_1.c1(weakListener);
  }
  v2d(listener) {
    if (listener instanceof WeakQueryListener) {
      var removed = this.u2d_1.e3(listener);
    } else {
      var toRemove = null;
      var _iterator__ex2g4s = this.u2d_1.h1();
      while (_iterator__ex2g4s.i1()) {
        var queryListener = _iterator__ex2g4s.j1();
        var comparable;
        if (queryListener instanceof WeakQueryListener) {
          comparable = queryListener.jk();
        } else {
          comparable = queryListener;
        }
        if (equals(listener, comparable)) {
          toRemove = queryListener;
        }
      }
      if (!(toRemove == null)) {
        var removed_0 = this.u2d_1.e3(toRemove);
      }
    }
  }
  y2d() {
    var _iterator__ex2g4s = this.u2d_1.h1();
    while (_iterator__ex2g4s.i1()) {
      var listener = _iterator__ex2g4s.j1();
      listener.s2d();
    }
  }
}
class CuboidQuery$queryListener$1 {
  constructor(this$0) {
    this.l2e_1 = this$0;
  }
  s2d() {
    this.l2e_1.e2e_1 = null;
    this.l2e_1.t2d_1 = true;
    this.l2e_1.y2d();
  }
}
class CuboidQuery$dataFrameListener$1 {
  constructor(this$0) {
    this.m2e_1 = this$0;
  }
  w2b(event) {
    this.m2e_1.t2d_1 = true;
    this.m2e_1.y2d();
  }
  g2c(event) {
    return this.w2b(event);
  }
}
class CuboidQuery extends AbstractQuery {
  b2e() {
    if (this.e2e_1 == null) {
      this.e2e_1 = ensureNotNull(this.g2e_1).n2e(ensureNotNull(this.f2e_1).b2e());
    }
    return this.e2e_1;
  }
  a2e() {
    return this.h2e_1;
  }
  a2d() {
    if (this.t2d_1) {
      run(this);
    }
    return this.i2e_1;
  }
  static o2e(cuboid, aggregations) {
    var $this = this.w2d();
    init_org_molap_aggregates_query_CuboidQuery($this);
    $this.e2e_1 = cuboid;
    var tmp = $this;
    tmp.h2e_1 = isArray(aggregations) ? aggregations : THROW_CCE();
    ensureNotNull(ensureNotNull($this.b2e()).v2c()).j2c().i2c($this.k2e_1);
    return $this;
  }
  z2d(path, aggregation) {
    return aggregation.i2a(this.b2e(), path);
  }
  z2c() {
    return ensureNotNull(ensureNotNull(this.b2e()).z2c());
  }
}
class Series {}
class AbstractSeries {
  static f2f($box) {
    return createThis(this, $box);
  }
  toString() {
    var tmp;
    if (!(this.h3() == null)) {
      tmp = toString_0(this.h3());
    } else {
      tmp = anyToString(this);
    }
    return tmp;
  }
}
class DimensionSeries extends AbstractSeries {
  static e2f($outer, dataFrame, column, columnIndex, $box) {
    if ($box === VOID)
      $box = {};
    $box.d2f_1 = $outer;
    var $this = this.f2f($box);
    $this.a2f_1 = dataFrame;
    $this.b2f_1 = column;
    $this.c2f_1 = columnIndex;
    return $this;
  }
  h3() {
    return this.b2f_1;
  }
  n21() {
    return this.a2f_1.g2f(this.b2f_1);
  }
  h2f(key) {
    var tmp;
    if (!(key == null)) {
      tmp = key.v2a(this.c2f_1);
    } else {
      tmp = null;
    }
    return tmp;
  }
  c3(key) {
    return this.h2f((key == null ? true : isInterface(key, Group)) ? key : THROW_CCE());
  }
}
class AggregationSeries extends AbstractSeries {
  static l2f($outer, aggregation, column, $box) {
    if ($box === VOID)
      $box = {};
    $box.k2f_1 = $outer;
    var $this = this.f2f($box);
    $this.i2f_1 = aggregation;
    $this.j2f_1 = column;
    return $this;
  }
  h3() {
    return this.j2f_1;
  }
  n21() {
    var tmp = PrimitiveClasses_getInstance().bd();
    return isInterface(tmp, KClass) ? tmp : THROW_CCE();
  }
  h2f(key) {
    return this.k2f_1.r2e_1.z2d(key, this.i2f_1);
  }
  c3(key) {
    return this.h2f((key == null ? true : isInterface(key, Group)) ? key : THROW_CCE());
  }
}
class QueryDataFrame$queryListener$1 {
  constructor(this$0) {
    this.m2f_1 = this$0;
  }
  s2d() {
    this.m2f_1.t2e_1 = null;
    this.m2f_1.u2e_1 = null;
    this.m2f_1.p2f(new DataFrameEvent(emptyList(), null, true));
  }
}
class DataFrame {}
function get_length() {
  return this.e2g();
}
class AbstractDataFrame {
  static r2f() {
    var $this = createThis(this);
    $this.n2f_1 = CollectionFactory_instance.nk();
    var tmp = $this;
    tmp.o2f_1 = lazy(AbstractDataFrame$cube$delegate$lambda($this));
    return $this;
  }
  v2c() {
    var tmp0 = this.o2f_1;
    var tmp = KProperty1;
    // Inline function 'kotlin.getValue' call
    getPropertyCallableRef('cube', 1, tmp, AbstractDataFrame$_get_cube_$ref_umz014(), null);
    return tmp0.z2();
  }
  o2d() {
    return this.s2f().jm();
  }
  a2g() {
    return this.t2f().jm();
  }
  b2g(index) {
    return this.s2f().km(index);
  }
  z2e(index) {
    return this.t2f().km(index);
  }
  s2g(row) {
    return this.s2f().v2f(row);
  }
  d2g(column) {
    return this.t2f().v2f(column);
  }
  e2g() {
    return this.s2f().k1();
  }
  y2e() {
    return this.t2f().k1();
  }
  z2f(column) {
    return ColumnSeries.o2g(this, column);
  }
  t2g(aggregations) {
    return this.f2g(true, aggregations.slice());
  }
  f2g(includeIndex, aggregations) {
    var query = CuboidQuery.o2e(this.v2c().k2c(), aggregations.slice());
    return QueryDataFrame.q2f(query, includeIndex);
  }
  u2g(column) {
    var tmp = this.z2f(column);
    return new SumAggregation((!(tmp == null) ? isInterface(tmp, Series) : false) ? tmp : THROW_CCE());
  }
  g2g(column) {
    return column == null ? null : toString_1(column);
  }
  v2g() {
    var _iterator__ex2g4s = this.a2g().h1();
    while (_iterator__ex2g4s.i1()) {
      var column = _iterator__ex2g4s.j1();
      print(Companion_instance_64.q2g(this.g2g(column), 19));
      print(': ');
      var value = this.g2f(column);
      print(Companion_instance_64.q2g(!(value == null) ? value.kc() : '', 19));
      println_0();
    }
  }
  u1p() {
    var _iterator__ex2g4s = this.a2g().h1();
    while (_iterator__ex2g4s.i1()) {
      var column = _iterator__ex2g4s.j1();
      print(Companion_instance_64.r2g(20, Companion_instance_64.q2g(this.g2g(column), 19)));
    }
    println_0();
    var _iterator__ex2g4s_0 = ensureNotNull(this.o2d()).h1();
    while (_iterator__ex2g4s_0.i1()) {
      var row = _iterator__ex2g4s_0.j1();
      var _iterator__ex2g4s_1 = ensureNotNull(this.a2g()).h1();
      while (_iterator__ex2g4s_1.i1()) {
        var column_0 = _iterator__ex2g4s_1.j1();
        var value = this.x2f(row, column_0);
        if (!(value == null) ? isByteArray(value) : false) {
          var tmp = value;
          // Inline function 'kotlin.text.HexFormat' call
          // Inline function 'kotlin.apply' call
          var this_0 = new Builder_0();
          this_0.nh().ih('0x');
          var tmp$ret$2 = this_0.s3();
          value = toHexString(tmp, tmp$ret$2);
        }
        if (!(value == null)) {
          print(Companion_instance_64.r2g(20, Companion_instance_64.q2g(toString_1(value), 19)));
        } else {
          print(Companion_instance_64.r2g(20, Companion_instance_64.q2g('(null)', 19)));
        }
      }
      println_0();
    }
  }
  w2g(listener) {
    this.n2f_1.c1(listener);
  }
  i2c(listener) {
    this.n2f_1.c1(new WeakDataFrameListener(this, listener));
  }
  h2g(listener) {
    if (listener instanceof WeakDataFrameListener) {
      this.n2f_1.e3(listener);
    } else {
      var toRemove = null;
      var _iterator__ex2g4s = this.n2f_1.h1();
      while (_iterator__ex2g4s.i1()) {
        var dataFrameListener = _iterator__ex2g4s.j1();
        var comparable;
        if (dataFrameListener instanceof WeakDataFrameListener) {
          comparable = dataFrameListener.jk();
        } else {
          comparable = dataFrameListener;
        }
        if (equals(listener, comparable)) {
          toRemove = dataFrameListener;
        }
      }
      if (!(toRemove == null)) {
        this.n2f_1.e3(toRemove);
      }
    }
  }
  x2g() {
    this.n2f_1.u4();
  }
  p2f(event) {
    var _iterator__ex2g4s = this.n2f_1.h1();
    while (_iterator__ex2g4s.i1()) {
      var listener = _iterator__ex2g4s.j1();
      listener.g2c(event);
    }
  }
}
class QueryDataFrame extends AbstractDataFrame {
  static q2f(query, includeIndex) {
    var $this = this.r2f();
    $this.t2e_1 = null;
    $this.u2e_1 = null;
    var tmp = $this;
    tmp.v2e_1 = new QueryDataFrame$queryListener$1($this);
    $this.r2e_1 = query;
    $this.s2e_1 = includeIndex;
    query.x2d($this.v2e_1);
    return $this;
  }
  s2f() {
    return ensureNotNull(_get_cacheRowIndex__mo0sbb(this));
  }
  t2f() {
    return ensureNotNull(_get_cacheColumnIndex__9igbhr(this));
  }
  u2f(column) {
    var columnIndex = this.t2f().v2f(ensureNotNull(column));
    var tmp;
    if (columnIndex >= 0) {
      if (this.s2e_1) {
        if (columnIndex < ensureNotNull(this.r2e_1.z2c()).z2a_1.length) {
          var c = ensureNotNull(this.r2e_1.z2c()).z2a_1[columnIndex];
          var dataFrame = ensureNotNull(ensureNotNull(this.r2e_1.b2e()).v2c()).j2c();
          return dataFrame.g2f(c);
        }
        columnIndex = columnIndex - ensureNotNull(this.r2e_1.z2c()).z2a_1.length | 0;
      }
      tmp = this.r2e_1.a2e()[columnIndex].n21();
    } else {
      tmp = PrimitiveClasses_getInstance().sc();
    }
    return tmp;
  }
  g2f(column) {
    return this.u2f((column == null ? true : typeof column === 'string') ? column : THROW_CCE());
  }
  w2f(path, column) {
    var columnIndex = this.t2f().v2f(ensureNotNull(column));
    var tmp;
    if (columnIndex == null || columnIndex >= 0) {
      if (path == null) {
        println('QueryDataFrame: path is null');
      }
      if (this.s2e_1) {
        if (ensureNotNull(columnIndex) < ensureNotNull(this.r2e_1.z2c()).z2a_1.length) {
          if (!(this.r2e_1.z2c() == null)) {
            var c = ensureNotNull(this.r2e_1.z2c()).z2a_1[columnIndex];
            columnIndex = ensureNotNull(this.r2e_1.z2c()).b2b(c);
          }
          var tmp_0;
          if (!(path == null)) {
            tmp_0 = path.v2a(ensureNotNull(columnIndex));
          } else {
            tmp_0 = null;
          }
          return tmp_0;
        }
        columnIndex = columnIndex - ensureNotNull(this.r2e_1.z2c()).z2a_1.length | 0;
      }
      tmp = this.r2e_1.z2d(path, this.r2e_1.a2e()[ensureNotNull(columnIndex)]);
    } else {
      tmp = null;
    }
    return tmp;
  }
  x2f(row, column) {
    var tmp = (row == null ? true : isInterface(row, Group)) ? row : THROW_CCE();
    return this.w2f(tmp, (column == null ? true : typeof column === 'string') ? column : THROW_CCE());
  }
  y2f(column) {
    var columnIndex = this.t2f().v2f(ensureNotNull(column));
    if (this.s2e_1) {
      if (columnIndex < ensureNotNull(this.r2e_1.z2c()).z2a_1.length) {
        var tmp = ensureNotNull(ensureNotNull(this.r2e_1.b2e()).v2c()).j2c();
        return DimensionSeries.e2f(this, isInterface(tmp, DataFrame) ? tmp : THROW_CCE(), column, columnIndex);
      }
      columnIndex = columnIndex - ensureNotNull(this.r2e_1.z2c()).z2a_1.length | 0;
    }
    return AggregationSeries.l2f(this, this.r2e_1.a2e()[columnIndex], column);
  }
  z2f(column) {
    return this.y2f((column == null ? true : typeof column === 'string') ? column : THROW_CCE());
  }
  o2d() {
    var tmp = this.r2e_1.a2d();
    return (!(tmp == null) ? isInterface(tmp, Iterable) : false) ? tmp : THROW_CCE();
  }
  a2g() {
    return this.t2f().jm();
  }
  b2g(index) {
    var tmp = ensureNotNull(this.r2e_1).a2d();
    var groups = (!(tmp == null) ? isInterface(tmp, KtList) : false) ? tmp : THROW_CCE();
    var tmp_0;
    if (index >= 0 && index < groups.k1()) {
      tmp_0 = groups.l1(index);
    } else {
      tmp_0 = null;
    }
    return tmp_0;
  }
  z2e(index) {
    var index_0 = index;
    if (this.s2e_1) {
      if (index_0 < ensureNotNull(this.r2e_1.z2c()).z2a_1.length) {
        return toString_0(ensureNotNull(this.r2e_1.z2c()).z2a_1[index_0]);
      }
      index_0 = index_0 - ensureNotNull(this.r2e_1.z2c()).z2a_1.length | 0;
    }
    return ensureNotNull(this.r2e_1.a2e()[index_0].h3());
  }
  c2g(column) {
    return this.t2f().v2f(ensureNotNull(column));
  }
  d2g(column) {
    return this.c2g((column == null ? true : typeof column === 'string') ? column : THROW_CCE());
  }
  e2g() {
    return ensureNotNull(this.r2e_1.a2d()).k1();
  }
  y2e() {
    var tmp;
    if (this.s2e_1) {
      tmp = ensureNotNull(this.r2e_1.z2c()).z2a_1.length + this.r2e_1.a2e().length | 0;
    } else {
      tmp = this.r2e_1.a2e().length;
    }
    return tmp;
  }
}
class Companion_63 {
  h2c(path) {
    return get_2(this, taggedArrayCopy(path));
  }
}
class Structure {
  constructor(path) {
    this.i2g_1 = path;
  }
  equals(o) {
    if (this === o)
      return true;
    if (!(o instanceof Structure))
      return false;
    return contentEquals_0(this.i2g_1, o.i2g_1);
  }
  hashCode() {
    return contentHashCode_0(this.i2g_1);
  }
  toString() {
    return 'Structure{path=' + contentToString_0(this.i2g_1) + toString(_Char___init__impl__6a9atx(125));
  }
}
class WeakDataFrameListener {
  constructor($outer, listener) {
    this.k2g_1 = $outer;
    this.j2g_1 = new WeakReference(listener);
  }
  l2g(event) {
    var l = this.jk();
    if (!(l == null)) {
      l.g2c(event);
    } else {
      this.k2g_1.h2g(this);
    }
  }
  g2c(event) {
    return this.l2g(event);
  }
  jk() {
    return this.j2g_1.zj();
  }
}
class ColumnSeries extends AbstractSeries {
  static o2g($outer, column, $box) {
    if ($box === VOID)
      $box = {};
    $box.n2g_1 = $outer;
    var $this = this.f2f($box);
    $this.m2g_1 = column;
    $this.m2g_1 = $this.m2g_1;
    return $this;
  }
  h3() {
    return this.m2g_1;
  }
  n21() {
    return this.n2g_1.g2f(this.m2g_1);
  }
  p2g(key) {
    return this.n2g_1.x2f(key, this.m2g_1);
  }
  c3(key) {
    return this.p2g((key == null ? true : !(key == null)) ? key : THROW_CCE());
  }
}
class Companion_64 {
  q2g(str, maxWidth) {
    if (str == null) {
      return null;
    }
    var tmp;
    if (str.length <= maxWidth) {
      tmp = str;
    } else {
      tmp = substring(str, 0, maxWidth - 3 | 0) + '...';
    }
    return tmp;
  }
  r2g(width, str) {
    if (str == null) {
      return null;
    }
    var tmp;
    if (str.length < width) {
      var tmp_0 = 0;
      var tmp_1 = width - str.length | 0;
      var tmp_2 = charArray(tmp_1);
      while (tmp_0 < tmp_1) {
        tmp_2[tmp_0] = _Char___init__impl__6a9atx(32);
        tmp_0 = tmp_0 + 1 | 0;
      }
      tmp = str + concatToString(tmp_2);
    } else {
      tmp = substring(str, 0, width);
    }
    return tmp;
  }
}
class ColumnStatistics {
  constructor(min, max, sum, count) {
    this.y2g_1 = min;
    this.z2g_1 = max;
    this.a2h_1 = sum;
    this.b2h_1 = count;
  }
  toString() {
    return 'ColumnStatistics{min=' + this.y2g_1 + ', max=' + this.z2g_1 + ', sum=' + this.a2h_1 + ', count=' + this.b2h_1 + toString(_Char___init__impl__6a9atx(125));
  }
}
class DataFrameEvent {
  constructor(affectedRows, affectedColumns, isStructureChanged) {
    this.c2h_1 = affectedRows;
    this.d2h_1 = affectedColumns;
    this.e2h_1 = isStructureChanged;
  }
}
class DataFrameHelper {
  f2h(dataFrame, column) {
    var min = null;
    var max = null;
    var sum = 0.0;
    var count = 0n;
    var series = ensureNotNull(dataFrame.z2f(column));
    var _iterator__ex2g4s = dataFrame.o2d().h1();
    while (_iterator__ex2g4s.i1()) {
      var row = _iterator__ex2g4s.j1();
      var value = series.c3(row);
      if (!(value == null)) {
        if (isNumber(value)) {
          var number = value;
          var d = numberToDouble(number);
          if (typeof number === 'number') {
            if (!isNaN_3(d) && !isInfinite_1(d)) {
              if (min == null || d < numberToDouble(min)) {
                min = number;
              }
              if (max == null || d > numberToDouble(max)) {
                max = number;
              }
              sum = sum + number;
              var _unary__edvuaz = count;
              count = add_0(_unary__edvuaz, get_ONE());
            }
          } else {
            if (typeof number === 'number') {
              var f = number;
              if (!isNaN_4(f) && !isInfinite_2(f)) {
                if (min == null || d < numberToDouble(min)) {
                  min = number;
                }
                if (max == null || d > numberToDouble(max)) {
                  max = number;
                }
              }
            } else {
              if (min == null || d < numberToDouble(min)) {
                min = number;
              }
              if (max == null || d > numberToDouble(max)) {
                max = number;
              }
              sum = sum + d;
              var _unary__edvuaz_0 = count;
              count = add_0(_unary__edvuaz_0, get_ONE());
            }
          }
        }
      }
    }
    return new ColumnStatistics(min, max, sum, count);
  }
}
class DefaultDataFrame extends AbstractDataFrame {
  constructor(dataFrame) {
    return new.target.q2h(dataFrame);
  }
  static q2h(dataFrame) {
    var $this = this.r2f();
    $this.o2h_1 = IntegerRangeUniqueIndex.t2h(0, dataFrame.e2g() - 1 | 0);
    var columns = ArrayList.n1(dataFrame.y2e());
    var series = ArrayList.n1(dataFrame.y2e());
    var c = 0;
    var _iterator__ex2g4s = dataFrame.a2g().h1();
    while (_iterator__ex2g4s.i1()) {
      var column = _iterator__ex2g4s.j1();
      var columnKey = dataFrame.z2e(c);
      if (!(columnKey == null)) {
        var toString = toString_1(columnKey);
        var serie = createSeries($this, dataFrame, column);
        if (!(serie == null)) {
          columns.c1(toString);
          series.c1(serie);
        }
      }
      c = c + 1 | 0;
    }
    var tmp = $this;
    // Inline function 'kotlin.collections.toTypedArray' call
    var tmp$ret$0 = copyToArray(columns);
    tmp.p2h_1 = DefaultUniqueIndex.x2e(tmp$ret$0.slice());
    var tmp_0 = $this;
    // Inline function 'kotlin.collections.toTypedArray' call
    tmp_0.series = copyToArray(series);
    return $this;
  }
  u2h(_set____db54di) {
    this.o2h_1 = _set____db54di;
  }
  s2f() {
    return this.o2h_1;
  }
  v2h(_set____db54di) {
    this.p2h_1 = _set____db54di;
  }
  t2f() {
    return this.p2h_1;
  }
  w2h(_set____db54di) {
    this.series = _set____db54di;
  }
  x2h() {
    return this.series;
  }
  y2h(row) {
    return PrimitiveClasses_getInstance().sc();
  }
  z2h(row) {
    return this.y2h((!(row == null) ? typeof row === 'number' : false) ? row : THROW_CCE());
  }
  a2i(column) {
    return this.series[this.p2h_1.v2f(column)].n21();
  }
  g2f(column) {
    return this.a2i((!(column == null) ? typeof column === 'string' : false) ? column : THROW_CCE());
  }
  b2i(row, column) {
    return this.series[this.p2h_1.v2f(column)].c3(row);
  }
  x2f(row, column) {
    var tmp = (!(row == null) ? typeof row === 'number' : false) ? row : THROW_CCE();
    return this.b2i(tmp, (!(column == null) ? typeof column === 'string' : false) ? column : THROW_CCE());
  }
  c2i(column) {
    var serie = this.series[this.d2g(column)];
    return serie;
  }
  z2f(column) {
    return this.c2i((!(column == null) ? typeof column === 'string' : false) ? column : THROW_CCE());
  }
}
class AbstractUniqueIndex$keys$1$iterator$1 {
  constructor(this$0) {
    this.e2i_1 = this$0;
    this.d2i_1 = 0;
  }
  i1() {
    return this.d2i_1 < this.e2i_1.k1();
  }
  j1() {
    var _unary__edvuaz = this.d2i_1;
    this.d2i_1 = _unary__edvuaz + 1 | 0;
    return this.e2i_1.km(_unary__edvuaz);
  }
  t4() {
    throw UnsupportedOperationException.q3();
  }
}
class AbstractUniqueIndex$keys$1 {
  constructor(this$0) {
    this.f2i_1 = this$0;
  }
  h1() {
    return new AbstractUniqueIndex$keys$1$iterator$1(this.f2i_1);
  }
}
class AbstractUniqueIndex extends AbstractIndex {
  static g2i() {
    return this.im();
  }
  jm() {
    return new AbstractUniqueIndex$keys$1(this);
  }
}
class Lazy {
  constructor($outer, $box) {
    boxApply(this, $box);
    this.m2i_1 = $outer;
    var tmp = this;
    tmp.h2i_1 = lazy(DefaultUniqueIndex$Lazy$indexDelegate$lambda(this));
    this.i2i_1 = this.h2i_1;
    var tmp_0 = this;
    tmp_0.j2i_1 = lazy(DefaultUniqueIndex$Lazy$listDelegate$lambda(this));
    this.k2i_1 = this.j2i_1;
    this.l2i_1 = false;
  }
  o2i() {
    var tmp0 = this.i2i_1;
    var tmp = KProperty1;
    // Inline function 'kotlin.getValue' call
    getPropertyCallableRef('index', 1, tmp, DefaultUniqueIndex$Lazy$_get_index_$ref_czlexq(), null);
    return tmp0.z2();
  }
  q2i() {
    var tmp0 = this.k2i_1;
    var tmp = KProperty1;
    // Inline function 'kotlin.getValue' call
    getPropertyCallableRef('list', 1, tmp, DefaultUniqueIndex$Lazy$_get_list_$ref_cf7120(), null);
    return tmp0.z2();
  }
  v2f(key) {
    var index = this.o2i();
    if (!this.l2i_1) {
      this.r2i(index);
      this.l2i_1 = true;
    }
    var i = index.c3(key);
    if (!(i == null)) {
      return i;
    } else {
      throw RuntimeException.o9('Illegal key ' + toString_0(key) + ' not found in ' + toString_1(index));
    }
  }
  k1() {
    return this.q2i().k1();
  }
  r2i(index) {
  }
}
class Companion_65 {}
class DefaultUniqueIndex$3 extends Lazy {
  constructor(this$0, $index, $list, $box) {
    if ($box === VOID)
      $box = {};
    $box.y2i_1 = $index;
    $box.z2i_1 = $list;
    super(this$0, $box);
  }
  n2i() {
    return this.y2i_1;
  }
  p2i() {
    return this.z2i_1;
  }
}
class DefaultUniqueIndex extends AbstractUniqueIndex {
  static x2e(keys) {
    return this.a2j(Duplicate_UseFirstWarn_getInstance(), keys.slice());
  }
  static a2j(duplicate, keys) {
    var $this = this.g2i();
    init_org_molap_index_DefaultUniqueIndex($this);
    var tmp0_elvis_lhs = keys.length;
    var index = HashMap.w7(tmp0_elvis_lhs == null ? 0 : tmp0_elvis_lhs);
    var list = ArrayList.q1();
    var inductionVariable = 0;
    var last = keys.length;
    if (inductionVariable < last)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        var key = keys[i];
        if (!index.a3(key)) {
          index.o6(key, i);
          list.c1(key);
        } else {
          switch (duplicate.g3_1) {
            case 2:
              break;
            case 3:
              try {
                throw IllegalStateException.w3('Index not unique for value ' + toString_0(key) + ' (address=' + i + ')');
              } catch ($p) {
                if ($p instanceof IllegalStateException) {
                  var e = $p;
                } else {
                  throw $p;
                }
              }

              break;
            case 4:
              index.o6(key, i);
              list.e3(key);
              list.c1(key);
              println('Index not unique for value ' + toString_0(key) + ' (address=' + i + '): will use last');
              break;
            case 0:
              index.o6(key, i);
              list.e3(key);
              list.c1(key);
              println('Index not unique for value ' + toString_0(key) + ' (address=' + i + '): will remove first');
              break;
            case 1:
              break;
            case 5:
              throw IllegalStateException.w3('Index not unique for value ' + toString_0(key) + ' (address=' + i + ')');
            default:
              noWhenBranchMatchedException();
              break;
          }
        }
      }
       while (inductionVariable < last);
    var tmp = $this;
    tmp.w2e_1 = new DefaultUniqueIndex$3($this, index, list);
    return $this;
  }
  v2f(key) {
    return ensureNotNull(this.w2e_1).v2f(key);
  }
  jm() {
    return ensureNotNull(this.w2e_1).q2i();
  }
  km(i) {
    var tmp;
    if (i >= 0 && i < this.k1()) {
      tmp = ensureNotNull(this.w2e_1).q2i().l1(i);
    } else {
      throw RuntimeException.o9('Key is out of range');
    }
    return tmp;
  }
  k1() {
    return ensureNotNull(this.w2e_1).k1();
  }
}
class IntegerRangeUniqueIndex$keys$1$iterator$1 {
  constructor(this$0) {
    this.c2j_1 = this$0;
    this.b2j_1 = this$0.r2h_1;
  }
  i1() {
    return this.b2j_1 <= this.c2j_1.s2h_1;
  }
  j1() {
    var _unary__edvuaz = this.b2j_1;
    this.b2j_1 = _unary__edvuaz + 1 | 0;
    return _unary__edvuaz;
  }
  t4() {
    throw UnsupportedOperationException.q3();
  }
}
class IntegerRangeUniqueIndex$keys$1 {
  constructor(this$0) {
    this.d2j_1 = this$0;
  }
  h1() {
    return new IntegerRangeUniqueIndex$keys$1$iterator$1(this.d2j_1);
  }
}
class IntegerRangeUniqueIndex extends AbstractUniqueIndex {
  static t2h(from, to) {
    var $this = this.g2i();
    $this.r2h_1 = from;
    $this.s2h_1 = to;
    return $this;
  }
  e2j(key) {
    return this.cg(key) ? key - this.r2h_1 | 0 : -1;
  }
  v2f(key) {
    return this.e2j((!(key == null) ? typeof key === 'number' : false) ? key : THROW_CCE());
  }
  cg(key) {
    return key >= this.r2h_1 && key <= this.s2h_1;
  }
  km(i) {
    return this.r2h_1 + i | 0;
  }
  jm() {
    return new IntegerRangeUniqueIndex$keys$1(this);
  }
  k1() {
    return (this.s2h_1 - this.r2h_1 | 0) + 1 | 0;
  }
  toString() {
    return 'IntegerRangeUniqueIndex{from=' + this.r2h_1 + ', to=' + this.s2h_1 + toString(_Char___init__impl__6a9atx(125));
  }
}
class Duplicate extends Enum {}
class Graph {}
class MutableSeries {}
class DefaultSeries extends AbstractSeries {
  h3() {
    return this.h2j_1;
  }
  n21() {
    return this.k2j_1;
  }
  static l2j(values, name, type, index) {
    name = name === VOID ? null : name;
    type = type === VOID ? PrimitiveClasses_getInstance().sc() : type;
    index = index === VOID ? IntegerRangeUniqueIndex.t2h(0, values.length - 1 | 0) : index;
    var $this = this.f2f();
    init_org_molap_series_DefaultSeries($this);
    $this.i2j_1 = values;
    $this.k2j_1 = type;
    $this.h2j_1 = name;
    $this.j2j_1 = index;
    return $this;
  }
  l1(key) {
    return this.i2j_1[key];
  }
  c3(key) {
    return this.l1((!(key == null) ? typeof key === 'number' : false) ? key : THROW_CCE());
  }
}
class DoubleSeries extends AbstractSeries {
  h3() {
    return this.m2j_1;
  }
  static q2j(values, available) {
    var $this = this.f2f();
    init_org_molap_series_DoubleSeries($this);
    $this.m2j_1 = null;
    $this.o2j_1 = values;
    $this.p2j_1 = IntegerRangeUniqueIndex.t2h(0, values.length - 1 | 0);
    $this.n2j_1 = available;
    return $this;
  }
  n21() {
    var tmp = PrimitiveClasses_getInstance().bd();
    return isInterface(tmp, KClass) ? tmp : THROW_CCE();
  }
  l1(key) {
    var tmp;
    if (this.r2j(key)) {
      tmp = (null == null ? true : typeof null === 'number') ? null : THROW_CCE();
    } else {
      tmp = this.o2j_1[key];
    }
    return tmp;
  }
  c3(key) {
    return this.l1((!(key == null) ? typeof key === 'number' : false) ? key : THROW_CCE());
  }
  r2j(key) {
    return !(this.n2j_1 == null) && !this.n2j_1[key];
  }
}
class FloatSeries extends AbstractSeries {
  h3() {
    return this.s2j_1;
  }
  static w2j(values, available) {
    var $this = this.f2f();
    init_org_molap_series_FloatSeries($this);
    $this.s2j_1 = null;
    $this.u2j_1 = values;
    $this.v2j_1 = IntegerRangeUniqueIndex.t2h(0, values.length - 1 | 0);
    $this.t2j_1 = available;
    return $this;
  }
  n21() {
    var tmp = PrimitiveClasses_getInstance().ad();
    return isInterface(tmp, KClass) ? tmp : THROW_CCE();
  }
  l1(key) {
    var tmp;
    if (this.r2j(key)) {
      tmp = (null == null ? true : typeof null === 'number') ? null : THROW_CCE();
    } else {
      tmp = this.u2j_1[key];
    }
    return tmp;
  }
  c3(key) {
    return this.l1((!(key == null) ? typeof key === 'number' : false) ? key : THROW_CCE());
  }
  r2j(key) {
    return !(this.t2j_1 == null) && !this.t2j_1[key];
  }
}
class IntegerSeries extends AbstractSeries {
  h3() {
    return this.x2j_1;
  }
  static b2k(values, available) {
    var $this = this.f2f();
    init_org_molap_series_IntegerSeries($this);
    $this.x2j_1 = null;
    $this.z2j_1 = values;
    $this.a2k_1 = IntegerRangeUniqueIndex.t2h(0, values.length - 1 | 0);
    $this.y2j_1 = available;
    return $this;
  }
  n21() {
    var tmp = PrimitiveClasses_getInstance().yc();
    return isInterface(tmp, KClass) ? tmp : THROW_CCE();
  }
  l1(key) {
    return this.r2j(key) ? null : this.z2j_1[key];
  }
  c3(key) {
    return this.l1((!(key == null) ? typeof key === 'number' : false) ? key : THROW_CCE());
  }
  r2j(key) {
    return !(this.y2j_1 == null) && !this.y2j_1[key];
  }
}
class LongSeries extends AbstractSeries {
  h3() {
    return this.c2k_1;
  }
  static g2k(values, available) {
    var $this = this.f2f();
    init_org_molap_series_LongSeries($this);
    $this.c2k_1 = null;
    $this.e2k_1 = values;
    $this.f2k_1 = IntegerRangeUniqueIndex.t2h(0, values.length - 1 | 0);
    $this.d2k_1 = available;
    return $this;
  }
  n21() {
    var tmp = PrimitiveClasses_getInstance().zc();
    return isInterface(tmp, KClass) ? tmp : THROW_CCE();
  }
  l1(key) {
    var tmp;
    if (this.r2j(key)) {
      tmp = (null == null ? true : typeof null === 'bigint') ? null : THROW_CCE();
    } else {
      tmp = this.e2k_1[key];
    }
    return tmp;
  }
  c3(key) {
    return this.l1((!(key == null) ? typeof key === 'number' : false) ? key : THROW_CCE());
  }
  r2j(key) {
    return !(this.d2k_1 == null) && !this.d2k_1[key];
  }
}
class Companion_66 {
  constructor() {
    Companion_instance_66 = this;
    this.g2h_1 = new SeriesFactory();
  }
  l2h(values, available) {
    return buildInteger(this.g2h_1, values, available);
  }
  k2h(values, available) {
    return buildLong(this.g2h_1, values, available);
  }
  j2h(values, available) {
    return buildFloat(this.g2h_1, values, available);
  }
  i2h(values, available) {
    return buildDouble(this.g2h_1, values, available);
  }
  h2h(values, type) {
    return build(this.g2h_1, values, type);
  }
}
class SeriesFactory {
  constructor() {
    Companion_getInstance_66();
  }
}
class JsonDataFrame extends AbstractDataFrame {
  constructor(array) {
    return new.target.o2k(array);
  }
  static o2k(array) {
    var $this = this.r2f();
    $this.j2k_1 = array;
    var columns = LinkedHashSet.m1();
    var types = HashMap.i7();
    var inductionVariable = 0;
    var last = $this.j2k_1.length;
    if (inductionVariable < last)
      do {
        var row = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        // Inline function 'kotlin.js.unsafeCast' call
        // Inline function 'kotlin.js.asDynamic' call
        var o = $this.j2k_1[row];
        var _iterator__ex2g4s = iterator(Object.keys(o));
        while (_iterator__ex2g4s.i1()) {
          var column = _iterator__ex2g4s.j1();
          if (!columns.q2(column)) {
            columns.c1(column);
            var value = o[column];
            var type = getClass($this, value);
            if (!(type == null)) {
              // Inline function 'kotlin.collections.set' call
              types.o6(column, type);
            }
          } else {
            var value_0 = o[column];
            var type_0 = getClass($this, value_0);
            if (!(type_0 == null)) {
              var currentType = types.c3(column);
              if (currentType == null) {
                // Inline function 'kotlin.collections.set' call
                types.o6(column, type_0);
              } else if (!equals(currentType, type_0)) {
                // Inline function 'kotlin.collections.set' call
                var value_1 = PrimitiveClasses_getInstance().sc();
                types.o6(column, value_1);
              }
            }
          }
        }
      }
       while (inductionVariable < last);
    var tmp = $this;
    // Inline function 'kotlin.collections.toTypedArray' call
    tmp.k2k_1 = copyToArray(columns);
    var tmp_0 = $this;
    // Inline function 'kotlin.arrayOfNulls' call
    var size = columns.k1();
    tmp_0.l2k_1 = Array(size);
    var index = 0;
    var _iterator__ex2g4s_0 = columns.h1();
    while (_iterator__ex2g4s_0.i1()) {
      var column_0 = _iterator__ex2g4s_0.j1();
      var type_1 = types.c3(column_0);
      $this.l2k_1[index] = !(type_1 == null) ? type_1 : PrimitiveClasses_getInstance().sc();
      index = index + 1 | 0;
    }
    var tmp_1 = $this;
    tmp_1.m2k_1 = lazy(JsonDataFrame$rowIndex$delegate$lambda($this));
    var tmp_2 = $this;
    tmp_2.n2k_1 = lazy(JsonDataFrame$columnIndex$delegate$lambda($this));
    return $this;
  }
  s2f() {
    var tmp0 = this.m2k_1;
    var tmp = KProperty1;
    // Inline function 'kotlin.getValue' call
    getPropertyCallableRef('rowIndex', 1, tmp, JsonDataFrame$_get_rowIndex_$ref_np9oyz(), null);
    return tmp0.z2();
  }
  t2f() {
    var tmp0 = this.n2k_1;
    var tmp = KProperty1;
    // Inline function 'kotlin.getValue' call
    getPropertyCallableRef('columnIndex', 1, tmp, JsonDataFrame$_get_columnIndex_$ref_23ske3(), null);
    return tmp0.z2();
  }
  static fromString(json) {
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var tmp$ret$1 = JSON.parse(json)['data'];
    return this.o2k(tmp$ret$1);
  }
  p2k(column) {
    var address = this.t2f().v2f(column);
    return this.k2k_1[address];
  }
  g2g(column) {
    return this.p2k((!(column == null) ? typeof column === 'string' : false) ? column : THROW_CCE());
  }
  a2i(column) {
    var address = this.t2f().v2f(column);
    return ensureNotNull(this.l2k_1[address]);
  }
  g2f(column) {
    return this.a2i((!(column == null) ? typeof column === 'string' : false) ? column : THROW_CCE());
  }
  e2g() {
    return this.j2k_1.length;
  }
  y2e() {
    return this.k2k_1.length;
  }
  y2h(row) {
    return PrimitiveClasses_getInstance().sc();
  }
  z2h(row) {
    return this.y2h((!(row == null) ? typeof row === 'number' : false) ? row : THROW_CCE());
  }
  b2i(row, column) {
    var jsonObject = this.j2k_1[row];
    if (!(jsonObject == null)) {
      var jsonValue = (!(jsonObject == null) ? jsonObject : THROW_CCE())[ensureNotNull(column)];
      var tmp;
      if (jsonValue == null) {
        tmp = null;
      } else {
        var tmp_0;
        if (this.a2i(column).equals(PrimitiveClasses_getInstance().bd())) {
          tmp_0 = isNumber(jsonValue) ? jsonValue : THROW_CCE();
        } else if (this.a2i(column).equals(PrimitiveClasses_getInstance().vc())) {
          tmp_0 = typeof jsonValue === 'boolean' ? jsonValue : THROW_CCE();
        } else {
          var tmp_1;
          try {
            tmp_1 = getObject(this, jsonValue);
          } catch ($p) {
            var tmp_2;
            if ($p instanceof ClassCastException) {
              var e = $p;
              printStackTrace(e);
              tmp_2 = null;
            } else {
              throw $p;
            }
            tmp_1 = tmp_2;
          }
          tmp_0 = tmp_1;
        }
        tmp = tmp_0;
      }
      return tmp;
    } else {
      return null;
    }
  }
  x2f(row, column) {
    var tmp = (!(row == null) ? typeof row === 'number' : false) ? row : THROW_CCE();
    return this.b2i(tmp, (!(column == null) ? typeof column === 'string' : false) ? column : THROW_CCE());
  }
}
class Scale {}
class AbsScale {
  q2k(value, min, max) {
    // Inline function 'kotlin.math.absoluteValue' call
    return Math.abs(value);
  }
  toString() {
    return 'Absolute value';
  }
}
class Algorithm {}
class AbstractAlgorithm {
  p1z() {
    return null;
  }
  iterator(model, root) {
    return model.breadthFirstIterator(root);
  }
  depthFirstLayout(shape, parent, children, sumSizes, horizontalVanishingPoint, verticalVanishingPoint, accessor, worker) {
    return false;
  }
  startLayout(bounds, model, root, worker) {
  }
  finishLayout(bounds, model, root) {
  }
  r2k() {
    return true;
  }
  s2k() {
    return true;
  }
  t2k() {
    return false;
  }
  u2k() {
    return true;
  }
  v2k() {
    return true;
  }
  w2k(children, start, end, accessor) {
    var sum = 0.0;
    var inductionVariable = start;
    if (inductionVariable <= end)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        sum = sum + accessor.getSize(children[i]);
      }
       while (!(i === end));
    return sum;
  }
  get properties() {
    return this.p1z();
  }
  get isRenderingLeafLabelsSupported() {
    return this.r2k();
  }
  get isRenderingParentLabelSupported() {
    return this.s2k();
  }
  get isColorParent() {
    return this.t2k();
  }
  get isChildContained() {
    return this.u2k();
  }
  get isSpaceFilling() {
    return this.v2k();
  }
}
class Companion_67 {
  constructor() {
    this.x2k_1 = 0.15;
    this.y2k_1 = 0.5;
  }
  z2k(shape, y, height) {
    var tmp;
    if (shape instanceof Rectangle) {
      var bounds = shape;
      tmp = Rectangle.from(bounds.a1w_1, y, bounds.c1w_1, height);
    } else {
      if (isInterface(shape, Rectangle2D)) {
        var bounds_0 = shape;
        // Inline function 'kotlin.math.ceil' call
        var x = bounds_0.g1h();
        var tmp$ret$0 = Math.ceil(x);
        var tmp_0 = numberToInt(tmp$ret$0);
        // Inline function 'kotlin.math.floor' call
        var x_0 = bounds_0.gm();
        var tmp$ret$1 = Math.floor(x_0);
        tmp = Rectangle.from(tmp_0, y, numberToInt(tmp$ret$1), height);
      } else {
        var bounds_1 = shape.i1h();
        var hh = 0.001;
        var topHit = Double_3.z1h(bounds_1.g1h(), y, bounds_1.gm(), hh);
        var bottomHit = Double_3.z1h(bounds_1.g1h(), (y + height | 0) - hh, bounds_1.gm(), hh);
        var shapeArea = Area.t1m(shape);
        var topArea = Area.t1m(topHit);
        topArea.u1m(shapeArea);
        var bottomArea = Area.t1m(bottomHit);
        bottomArea.u1m(shapeArea);
        var topBounds = topArea.i1h();
        var bottomBounds = bottomArea.i1h();
        var tmp0 = topBounds.p1h();
        // Inline function 'kotlin.math.max' call
        var b = bottomBounds.p1h();
        // Inline function 'kotlin.math.ceil' call
        var x_1 = Math.max(tmp0, b);
        var tmp$ret$3 = Math.ceil(x_1);
        var x_2 = numberToInt(tmp$ret$3);
        var tmp0_0 = topBounds.s1h();
        // Inline function 'kotlin.math.min' call
        var b_0 = bottomBounds.s1h();
        // Inline function 'kotlin.math.floor' call
        var x_3 = Math.min(tmp0_0, b_0);
        var tmp$ret$5 = Math.floor(x_3);
        var width = numberToInt(tmp$ret$5) - x_2 | 0;
        tmp = Rectangle.from(x_2, y, width, height);
      }
    }
    return tmp;
  }
  a2l(points) {
    var N = points.length;
    var cx = 0.0;
    var cy = 0.0;
    var area = calcSignedPolygonArea(this, points);
    var i;
    var j;
    var factor;
    i = 0;
    while (i < N) {
      j = (i + 1 | 0) % N | 0;
      factor = points[i].g1h() * points[j].h1h() - points[j].g1h() * points[i].h1h();
      cx = cx + (points[i].g1h() + points[j].g1h()) * factor;
      cy = cy + (points[i].h1h() + points[j].h1h()) * factor;
      i = i + 1 | 0;
    }
    area = area * 6.0;
    factor = 1 / area;
    cx = cx * factor;
    cy = cy * factor;
    return Double_2.c1l(cx, cy);
  }
  b2l(shape) {
    var points = this.c2l(shape);
    return this.a2l(points);
  }
  c2l(shape) {
    var pointList = ArrayList.n1(32);
    var pathIterator = shape.n1h();
    var lastMoveToIndex = -1;
    while (!pathIterator.m17()) {
      var coordinates = new Float64Array(6);
      switch (pathIterator.s1l(coordinates)) {
        case 0:
          pointList.c1(Double_2.c1l(coordinates[0], coordinates[1]));
          lastMoveToIndex = lastMoveToIndex + 1 | 0;
          break;
        case 1:
          pointList.c1(Double_2.c1l(coordinates[0], coordinates[1]));
          break;
        case 2:
          pointList.c1(Double_2.c1l(coordinates[0], coordinates[1]));
          pointList.c1(Double_2.c1l(coordinates[2], coordinates[3]));
          break;
        case 3:
          pointList.c1(Double_2.c1l(coordinates[0], coordinates[1]));
          pointList.c1(Double_2.c1l(coordinates[2], coordinates[3]));
          pointList.c1(Double_2.c1l(coordinates[4], coordinates[5]));
          break;
        case 4:
          if (lastMoveToIndex >= 0) {
            pointList.c1(pointList.l1(lastMoveToIndex));
          }

          break;
      }
      pathIterator.r1l();
    }
    // Inline function 'kotlin.collections.toTypedArray' call
    var points = copyToArray(pointList);
    return points;
  }
}
class Labeling {}
class AbstractLabeling {
  d2l(model, shape, node) {
    return shape;
  }
  e2l(model) {
    return 0.0;
  }
  f2l(model) {
    return 0.0;
  }
  g2l(g2, shape, bounds, node, view) {
    var model = ensureNotNull(view.h2l());
    if (!model.filter.qk(node) && !model.search.qk(node)) {
      var columns = model.settings.labelsColumns;
      // Inline function 'kotlin.collections.isNotEmpty' call
      if (!columns.p1()) {
        var initialY;
        var parent = ensureNotNull(model.getParent(node));
        var tmp;
        if (!model.isRoot(parent)) {
          var groupByColumnSettings = model.settings.getColumnSettings(ensureNotNull(model.getGroupByColumn(parent)));
          var labeling = ensureNotNull(groupByColumnSettings.getLabeling());
          tmp = bounds.b1w_1 + numberToInt(round(labeling.i2l(parent, node, view, model))) | 0;
        } else {
          tmp = bounds.b1w_1;
        }
        initialY = tmp;
        var y = initialY;
        var todo = columns.k1();
        // Inline function 'kotlin.run' call
        var topFields = this.j2l(model, columns, 1);
        if (!(topFields == null)) {
          var topHeight = this.k2l(g2, shape, bounds, node, view, model, topFields, true, y);
          if (topHeight > 0) {
            y = y + topHeight | 0;
            todo = todo - topFields.k1() | 0;
          } else {
            return Unit_instance;
          }
        }
        if (todo > 0) {
          var centerFields = this.j2l(model, columns, 0);
          if (!(centerFields == null)) {
            var centerHeight = this.k2l(g2, shape, bounds, node, view, model, centerFields, false, initialY);
            if (centerHeight > 0) {
              var center = bounds.b1w_1 + ((bounds.d1w_1 - centerHeight | 0) / 2 | 0) | 0;
              if (center > y) {
                y = center;
              }
              this.k2l(g2, shape, bounds, node, view, model, centerFields, true, y);
              y = y + centerHeight | 0;
              todo = todo - centerFields.k1() | 0;
            } else {
              return Unit_instance;
            }
          }
        }
        if (todo > 0) {
          var bottomFields = this.j2l(model, columns, 3);
          if (!(bottomFields == null)) {
            var bottomHeight = this.k2l(g2, shape, bounds, node, view, model, bottomFields, false, initialY);
            if (bottomHeight > 0) {
              var top = bounds.b1w_1 + (bounds.d1w_1 - bottomHeight | 0) | 0;
              if (top > y) {
                y = top;
              }
              this.k2l(g2, shape, bounds, node, view, model, bottomFields, true, y);
              y = y + bottomHeight | 0;
            } else {
              return Unit_instance;
            }
          }
        }
      }
    }
  }
  j2l(model, columns, alignement) {
    var list = null;
    var _iterator__ex2g4s = columns.h1();
    while (_iterator__ex2g4s.i1()) {
      var column = _iterator__ex2g4s.j1();
      if (model.settings.getColumnSettings(column).getLabelingVerticalAlignment() === alignement) {
        if (list == null) {
          list = ArrayList.q1();
        }
        list.c1(column);
      }
    }
    return list;
  }
  k2l(g2, shape, bounds, node, view, model, columns, paint, y) {
    var height = 0;
    var _iterator__ex2g4s = columns.h1();
    $l$loop: while (_iterator__ex2g4s.i1()) {
      var column = _iterator__ex2g4s.j1();
      if (!(column == null)) {
        var columnSettings = model.settings.getColumnSettings(column);
        var background = columnSettings.getLabelingEffectColor();
        var foreground = columnSettings.getLabelingForeground();
        if (!(foreground == null)) {
          var font = columnSettings.getLabelingFont();
          var shrink = ensureNotNull(columnSettings.getLabelingShrinkTextToFitShape());
          var expand = ensureNotNull(columnSettings.getLabelingResizeTextToFitShape());
          if (!shrink && !expand) {
            if (getFontSize(ensureNotNull(font)) <= bounds.hm() && bounds.gm() > 4) {
              var zoomFactor = view.s2l();
              var derivedFont;
              var tmp;
              if (!(zoomFactor === 1.0)) {
                var tmp_0 = getFontSize(font);
                // Inline function 'kotlin.math.sqrt' call
                var zoomedSize = tmp_0 * (1.0 + (Math.sqrt(zoomFactor) - 1.0) * 0.15);
                var tmp_1;
                if (!(zoomedSize === getFontSize(font))) {
                  tmp_1 = font.q29(zoomedSize);
                } else {
                  tmp_1 = font;
                }
                tmp = tmp_1;
              } else {
                tmp = font;
              }
              derivedFont = tmp;
              if (getFontSize(derivedFont) <= bounds.hm()) {
                var label = ensureNotNull(view.l2l()).m2l(view, column, node, Dimension.fm(bounds.c1w_1, bounds.d1w_1));
                if (!(label == null)) {
                  var nodeColor = model.getColor(node);
                  if (!(!(background == null) || nodeColor == null)) {
                    foreground = this.n2l(columnSettings, foreground, nodeColor);
                  }
                  label.setFont(derivedFont);
                  label.setForeground(foreground);
                  label.setBackground(background);
                  var size = g2.o2l(label, bounds.c1w_1, bounds.d1w_1);
                  var preferredHeight = size.t2l();
                  var cy = y + height | 0;
                  if (cy + preferredHeight <= bounds.h1h() + bounds.hm()) {
                    if (paint) {
                      var drawingArea = Companion_instance_67.z2k(shape, cy, numberToInt(preferredHeight));
                      this.r2l(g2, node, column, label, bounds, drawingArea);
                    }
                    if (!ensureNotNull(columnSettings.getLabelingFloat())) {
                      height = height + numberToInt(preferredHeight) | 0;
                    }
                  } else {
                    break $l$loop;
                  }
                }
              }
            }
          } else {
            if (bounds.gm() > 5 && bounds.hm() > 5 && (expand && bounds.hm() >= getFontSize(ensureNotNull(font)) || shrink)) {
              var elabel = ensureNotNull(view.l2l()).m2l(view, column, node, Dimension.fm(bounds.c1w_1, bounds.d1w_1));
              if (!(elabel == null)) {
                var innerWidth;
                var innerHeight;
                var insetWidth;
                var insetHeight;
                insetWidth = elabel.getInsetRight() + elabel.getInsetLeft() | 0;
                insetHeight = elabel.getInsetTop() + elabel.getInsetBottom() | 0;
                innerWidth = bounds.c1w_1 - insetWidth | 0;
                innerHeight = bounds.d1w_1 - insetHeight | 0;
                elabel.setFont(ensureNotNull(font));
                var nodeColor_0 = model.getColor(node);
                if (!(!(background == null) || nodeColor_0 == null)) {
                  foreground = this.n2l(columnSettings, foreground, nodeColor_0);
                }
                elabel.setForeground(foreground);
                elabel.setBackground(background);
                var pf = g2.o2l(elabel, bounds.c1w_1, bounds.d1w_1);
                var fontSize;
                var scaleFactor = 0.9;
                var tmp_2;
                if (!(columnSettings.getLabelingRendering() === Rendering_WordWrap_getInstance())) {
                  var legacy = true;
                  var tmp_3;
                  if (legacy) {
                    var preferredSize = pf.q2l();
                    var scaleX = bounds.gm() / preferredSize.gm();
                    var scaleY = bounds.hm() / preferredSize.hm();
                    // Inline function 'kotlin.math.min' call
                    var scale = Math.min(scaleX, scaleY);
                    tmp_3 = getFontSize(font) * scale * scaleFactor;
                  } else {
                    var preferredSize_0 = pf.q2l();
                    var w = preferredSize_0.gm() - insetWidth;
                    var h = preferredSize_0.hm() - insetHeight;
                    var scaleX_0 = innerWidth / w;
                    var scaleY_0 = innerHeight / h;
                    // Inline function 'kotlin.math.min' call
                    var scale_0 = Math.min(scaleX_0, scaleY_0);
                    // Inline function 'kotlin.math.floor' call
                    var x = getFontSize(font) * scale_0 * 1.0;
                    tmp_3 = Math.floor(x);
                  }
                  tmp_2 = tmp_3;
                } else {
                  tmp_2 = g2.p2l(elabel, pf, font, bounds, scaleFactor, expand);
                }
                fontSize = tmp_2;
                if (!shrink) {
                  var tmp0 = getFontSize(font);
                  // Inline function 'kotlin.math.max' call
                  var b = fontSize;
                  fontSize = Math.max(tmp0, b);
                }
                if (!expand) {
                  var tmp0_0 = getFontSize(font);
                  // Inline function 'kotlin.math.min' call
                  var b_0 = fontSize;
                  fontSize = Math.min(tmp0_0, b_0);
                }
                if (fontSize >= 5.0) {
                  var scaledFont = font.q29(fontSize);
                  elabel.setFont(scaledFont);
                  equals(columnSettings.getLabelingRendering(), Rendering_WordWrap_getInstance());
                  var preferredSize_1 = pf.q2l();
                  if (paint) {
                    var cy_0 = y + height | 0;
                    var drawingArea_0 = Companion_instance_67.z2k(shape, cy_0, preferredSize_1.dm_1);
                    this.r2l(g2, node, column, elabel, bounds, drawingArea_0);
                  }
                  if (!ensureNotNull(columnSettings.getLabelingFloat())) {
                    height = height + preferredSize_1.dm_1 | 0;
                  }
                }
              }
            }
          }
        }
      }
    }
    return height;
  }
  r2l(g2, node, column, label, bounds, drawingArea) {
    g2.u2l(label, drawingArea.a1w_1, drawingArea.b1w_1, drawingArea.c1w_1, drawingArea.d1w_1);
  }
  n2l(settings, foreground, nodeColor) {
    return ensureNotNull(settings.getLabelingContrastEnhancement()).z1x(foreground, nodeColor);
  }
  i2l(parent, node, view, model) {
    return 0.0;
  }
}
class Companion_68 {
  constructor() {
    this.w2l_1 = true;
  }
}
class Nesting {}
class AbstractNesting {
  y2l(treeMapModel, currentRoot, node, shape) {
    var tmp;
    if (true || !(node === currentRoot)) {
      var r;
      var nested;
      var columnSettings = treeMapModel.settings.getColumnSettings(treeMapModel.getGroupByColumn(node));
      var tmp_0;
      if (columnSettings.getAlgorithm().isChildContained) {
        tmp_0 = this.x2l(treeMapModel, shape, node, ensureNotNull(columnSettings.getNestingAmount()));
      } else {
        tmp_0 = shape;
      }
      nested = tmp_0;
      var tmp_1;
      if (columnSettings.getAlgorithm().isChildContained) {
        var label = ensureNotNull(columnSettings.getLabeling()).d2l(treeMapModel, shape, node);
        var tmp_2;
        var tmp_3;
        var tmp_4;
        if (!(label === nested)) {
          tmp_4 = !(label == null) ? isInterface(label, Rectangle2D) : false;
        } else {
          tmp_4 = false;
        }
        if (tmp_4) {
          tmp_3 = isInterface(nested, Rectangle2D);
        } else {
          tmp_3 = false;
        }
        if (tmp_3) {
          var n = nested;
          var l = label;
          var tmp0 = n.p1h();
          // Inline function 'kotlin.math.max' call
          var b = l.p1h();
          var x1 = Math.max(tmp0, b);
          var tmp0_0 = n.r1h();
          // Inline function 'kotlin.math.max' call
          var b_0 = l.r1h();
          var y1 = Math.max(tmp0_0, b_0);
          var tmp0_1 = n.s1h();
          // Inline function 'kotlin.math.min' call
          var b_1 = l.s1h();
          var x2 = Math.min(tmp0_1, b_1);
          var tmp0_2 = n.t1h();
          // Inline function 'kotlin.math.min' call
          var b_2 = l.t1h();
          var y2 = Math.min(tmp0_2, b_2);
          tmp_2 = Double_3.z1h(x1, y1, x2 - x1, y2 - y1);
        } else {
          tmp_2 = nested;
        }
        tmp_1 = tmp_2;
      } else {
        tmp_1 = nested;
      }
      r = tmp_1;
      tmp = r;
    } else {
      tmp = shape;
    }
    return tmp;
  }
}
class AbstractNodeRenderer {
  z2l(view, root, pass) {
    return ensureNotNull(view.h2l()).preorderEnumeration(root);
  }
}
class Companion_69 {
  constructor() {
    this.e2m_1 = 0.5;
  }
  f2m(bounds, font, elabel, pf, fontSize, shrink, expand) {
    elabel.setFont(font.q29(fontSize));
    var preferredSize = pf.q2l();
    var preferredWidth = preferredSize.gm() - elabel.getInsetLeft() - (-elabel.getInsetRight() | 0);
    var preferredHeight = preferredSize.hm() - elabel.getInsetTop() - (-elabel.getInsetBottom() | 0);
    var targetWidth = bounds.gm();
    var targetheight = bounds.hm();
    var tmp0 = targetWidth * fontSize / preferredWidth;
    // Inline function 'kotlin.math.min' call
    var b = targetheight * fontSize / preferredHeight;
    var s = Math.min(tmp0, b) * 0.9;
    if (!shrink) {
      // Inline function 'kotlin.math.max' call
      var b_0 = s;
      s = Math.max(fontSize, b_0);
    }
    if (!expand) {
      // Inline function 'kotlin.math.min' call
      var b_1 = s;
      s = Math.min(fontSize, b_1);
    }
    return font.q29(s);
  }
}
class AbstractRendering$getOrder$1 {
  constructor($view, $model) {
    this.g2m_1 = $view;
    this.h2m_1 = $model;
  }
  i2m(a, b) {
    var p1 = this.g2m_1.j2m(a);
    var p2 = this.g2m_1.j2m(b);
    var tmp;
    if (!(p1 == null)) {
      var tmp_0;
      if (!(p2 == null)) {
        var dimension = this.h2m_1.settings.getDimension();
        var tmp_1;
        if (!(dimension == null)) {
          var width = dimension.gm();
          var height = dimension.hm();
          var rx1 = p1.i1h().k1h() / width;
          var ry1 = p1.i1h().m1h() / height;
          var rx2 = p2.i1h().k1h() / width;
          var ry2 = p2.i1h().m1h() / height;
          tmp_1 = compare_0(rx1 + ry1, rx2 + ry2);
        } else {
          tmp_1 = compare_0(p1.i1h().k1h() + p1.i1h().m1h(), p2.i1h().k1h() + p2.i1h().m1h());
        }
        tmp_0 = tmp_1;
      } else {
        tmp_0 = 1;
      }
      tmp = tmp_0;
    } else {
      var tmp_2;
      if (!(p2 == null)) {
        tmp_2 = -1;
      } else {
        tmp_2 = 0;
      }
      tmp = tmp_2;
    }
    return tmp;
  }
  compare(a, b) {
    var tmp = (a == null ? true : !(a == null)) ? a : THROW_CCE();
    return this.i2m(tmp, (b == null ? true : !(b == null)) ? b : THROW_CCE());
  }
}
class Rendering_0 {}
class AbstractRendering {
  getPasses(model) {
    var heightColumn = model.settings.heightColumn;
    var tmp;
    if (!(heightColumn == null) && (model.isNumericType(heightColumn) || model.isTemporalType(heightColumn))) {
      tmp = 2;
    } else {
      tmp = 1;
    }
    return tmp;
  }
  getParentOrder(view, root, pass) {
    return pass === 0 ? ensureNotNull(view.h2l()).parentPreorderEnumeration(root) : emptyList();
  }
  getOrder(view, root, pass) {
    var model = ensureNotNull(view.h2l());
    var tmp;
    if (pass === 0) {
      tmp = model.preorderEnumeration(root);
    } else {
      var nodes = ArrayList.q1();
      var _iterator__ex2g4s = model.preorderEnumeration(root).h1();
      while (_iterator__ex2g4s.i1()) {
        var node = _iterator__ex2g4s.j1();
        if (model.hasNoChildren(node)) {
          nodes.c1(node);
        }
      }
      sortedWith_0(nodes, new AbstractRendering$getOrder$1(view, model));
      tmp = nodes;
    }
    return tmp;
  }
  paintParent(g, view, node, pass, bounds, shape) {
    var model = ensureNotNull(view.h2l());
    if (pass === 0 && !model.hasNoChildren(node)) {
      var depth = model.getLevel(node) - model.getLevel(ensureNotNull(model.currentRoot)) | 0;
      var algorithm = model.settings.getColumnSettings(model.getGroupByColumn(node)).getAlgorithm();
      if (ensureNotNull(model.settings.getDepth()).n2m(depth + 1 | 0) && algorithm.isCompatible(model.getShape(node)) && !algorithm.isColorParent) {
        var color = this.getNestingBackground(node, model);
        if (!(color == null)) {
          g.l2m(color);
        } else {
          g.l2m(view.k2m());
        }
        g.m2m(shape);
      } else {
        if (!(model.currentRoot === node)) {
          this.paintNode(g, view, node, pass, bounds, shape);
        }
      }
    }
  }
  getRenderedShape(view, model, node, shape) {
    if (!(node == null) && model.hasNoChildren(node)) {
      var heightColumn = model.settings.heightColumn;
      if (!(heightColumn == null) && (model.isNumericType(heightColumn) || model.isTemporalType(heightColumn))) {
        var minHeight = model.getNumericMin(heightColumn);
        var maxHeight = model.getNumericMax(heightColumn);
        var value = model.getValueAt(node, heightColumn);
        if (!(value == null) && !(maxHeight == null) && !(minHeight == null)) {
          var height;
          var tmp;
          if (isNumber(value)) {
            tmp = numberToDouble(value);
          } else {
            tmp = 0.0;
          }
          height = tmp;
          var range = maxHeight - minHeight;
          // Inline function 'kotlin.math.abs' call
          var x = (height - minHeight) / range;
          var ratio = Math.abs(x);
          if (isInterface(shape, Rectangle2D)) {
            var top = shape;
            var tmp_0 = view.s2l() * -model.settings.getMaximumHeight();
            var tmp0 = ensureNotNull(model.settings.getDimension()).gm();
            // Inline function 'kotlin.math.min' call
            var b = ensureNotNull(model.settings.getDimension()).hm();
            var maxSize = tmp_0 * Math.min(tmp0, b);
            var shift = numberToInt(maxSize * ratio);
            var at = RectangularTransform.s2m();
            at.o1j(shift, shift);
            return at.t2m(top);
          }
        }
      }
    }
    return shape;
  }
  paintBackground(g, view, node, pass, passes, bounds, shape) {
    var shape_0 = shape;
    if (pass === (passes - 1 | 0)) {
      var model = ensureNotNull(view.h2l());
      shape_0 = this.getRenderedShape(view, model, node, shape_0);
      var bounds_0 = computeBounds(this, shape_0);
      g.u2m();
      g.v2m(shape_0);
      var column = model.settings.backgroundColumn;
      if (!(column == null)) {
        if (bounds_0.gm() > 1 && bounds_0.hm() > 1) {
          var columnSettings = model.settings.getColumnSettings(column);
          var font = columnSettings.getLabelingFont();
          if (bounds_0.gm() > 5 && bounds_0.hm() >= getFontSize(ensureNotNull(font))) {
            var elabel = ensureNotNull(ensureNotNull(view.l2l()).m2l(view, column, node, Dimension.fm(bounds_0.c1w_1, bounds_0.d1w_1)));
            var pf = g.o2l(elabel, bounds_0.c1w_1, bounds_0.d1w_1);
            var innerWidth = (bounds_0.c1w_1 - elabel.getInsetRight() | 0) - elabel.getInsetLeft() | 0;
            var innerHeight = (bounds_0.d1w_1 - elabel.getInsetTop() | 0) - elabel.getInsetBottom() | 0;
            var background = model.settings.getColumnSettings(column).getLabelingEffectColor();
            var foreground = model.settings.getColumnSettings(column).getLabelingForeground();
            var nodeColor = model.getColor(node);
            if (!(foreground == null)) {
              if (!(!(background == null) || nodeColor == null)) {
                foreground = ensureNotNull(model.settings.getColumnSettings(column).getLabelingContrastEnhancement()).z1x(foreground, nodeColor);
              }
            }
            elabel.setFont(font);
            elabel.setForeground(ensureNotNull(foreground));
            elabel.setBackground(background);
            var preferredSize = pf.q2l();
            var fontSize;
            var tmp;
            if (!(columnSettings.getLabelingRendering() === Rendering_WordWrap_getInstance())) {
              var scaleX = innerWidth / (preferredSize.gm() - elabel.getInsetRight() - elabel.getInsetLeft());
              var scaleY = innerHeight / (preferredSize.hm() - elabel.getInsetTop() - elabel.getInsetBottom());
              // Inline function 'kotlin.math.min' call
              var scale = Math.min(scaleX, scaleY);
              var tmp0 = getFontSize(font);
              // Inline function 'kotlin.math.max' call
              var b = getFontSize(font) * scale * 1.0;
              tmp = Math.max(tmp0, b);
            } else {
              var tmp0_0 = getFontSize(font);
              // Inline function 'kotlin.math.max' call
              var b_0 = g.p2l(elabel, pf, font, Rectangle.from(0, 0, innerWidth, innerHeight), 0.9, true);
              tmp = Math.max(tmp0_0, b_0);
            }
            fontSize = tmp;
            if (fontSize >= getFontSize(font) / 4) {
              var scaledFont = font.q29(fontSize);
              elabel.setFont(scaledFont);
              if (!(columnSettings.getLabelingRendering() === Rendering_WordWrap_getInstance())) {
                scaledFont = Companion_instance_69.f2m(bounds_0, font, elabel, pf, fontSize, false, true);
                elabel.setFont(scaledFont);
              }
              preferredSize = pf.q2l();
              var y = 0;
              switch (model.settings.getColumnSettings(column).getLabelingVerticalAlignment()) {
                case 1:
                  y = bounds_0.b1w_1;
                  break;
                case 0:
                  var tmp_0;
                  if (bounds_0.d1w_1 > preferredSize.hm()) {
                    tmp_0 = bounds_0.b1w_1 + ((bounds_0.d1w_1 - preferredSize.dm_1 | 0) / 2 | 0) | 0;
                  } else {
                    tmp_0 = bounds_0.b1w_1;
                  }

                  y = tmp_0;
                  break;
                case 3:
                  var tmp_1;
                  if (bounds_0.d1w_1 > preferredSize.dm_1) {
                    tmp_1 = bounds_0.b1w_1 + (bounds_0.d1w_1 - preferredSize.dm_1 | 0) | 0;
                  } else {
                    tmp_1 = bounds_0.b1w_1;
                  }

                  y = tmp_1;
                  break;
              }
              var drawingArea = Companion_instance_67.z2k(shape_0, y, preferredSize.dm_1);
              g.u2l(elabel, drawingArea.a1w_1, drawingArea.b1w_1, drawingArea.c1w_1, drawingArea.d1w_1);
            }
          }
        }
      }
      g.w2m();
    }
  }
  getNestingBackground(node, model) {
    return model.settings.getColumnSettings(model.getGroupByColumn(node)).getNestingBackground();
  }
  paintLabel(g, view, node, pass, passes, bounds, shape) {
    var bounds_0 = bounds;
    var shape_0 = shape;
    if (pass === (passes - 1 | 0)) {
      var model = ensureNotNull(view.h2l());
      var algorithm;
      var parent = ensureNotNull(model.getParent(node));
      if (!(parent == null)) {
        var groupByColumn = model.getGroupByColumn(parent);
        var tmp;
        if (!(groupByColumn == null)) {
          var columnSettings = model.settings.getColumnSettings(groupByColumn);
          tmp = columnSettings.getAlgorithm();
        } else {
          tmp = model.settings.getDefaultColumnSettings().getAlgorithm();
        }
        algorithm = tmp;
        if (algorithm.isRenderingLeafLabelsSupported) {
          shape_0 = this.getRenderedShape(view, model, node, shape_0);
          g.u2m();
          g.v2m(shape_0);
          bounds_0 = computeBounds(this, shape_0);
          ensureNotNull(model.settings.getColumnSettings(model.getGroupByColumn(node)).getLabeling()).g2l(g, shape_0, bounds_0, node, view);
          g.w2m();
        }
      }
    }
  }
  paintParentBorder(g, node, bounds, shape, model) {
    if (bounds.gm() > 1 && bounds.hm() > 1) {
      if (!model.isRoot(node) && !model.hasNoChildren(node)) {
        if (!model.filter.qk(node) && !model.search.qk(node)) {
          var borderThickness = model.settings.getColumnSettings(model.getGroupByColumn(node)).getBorderThickness();
          var tmp;
          if (borderThickness > 0) {
            tmp = !(shape instanceof TextShape);
          } else {
            tmp = false;
          }
          if (tmp) {
            g.u2m();
            g.x2m(borderThickness);
            g.y2m(model.settings.getColumnSettings(model.getGroupByColumn(node)).getBorderColor());
            g.z2m(shape);
            g.w2m();
          }
        }
      }
    }
  }
  paintParentHighlight(g2, view, node, pass, bounds, shape) {
    var model = ensureNotNull(view.h2l());
    if (!model.isRoot(node) && !model.filter.qk(node) && !model.search.qk(node)) {
      if (model.highlighting.f13() && model.highlighting.g13(node)) {
        g2.u2m();
        g2.x2m(2.0);
        g2.y2m(model.settings.getProbingColor());
        g2.z2m(shape);
        g2.w2m();
      }
    }
  }
}
class Companion_70 {
  constructor() {
    this.a2n_1 = null;
  }
}
class TreeMap {}
class AbstractTreeMap {
  static e2n() {
    var $this = createThis(this);
    $this.b2n_1 = null;
    $this.c2n_1 = null;
    $this.d2n_1 = null;
    return $this;
  }
  f2n(view) {
    if (!(this.b2n_1 === view)) {
      if (!(this.b2n_1 == null)) {
        ensureNotNull(this.b2n_1).g2n(null);
      }
      this.b2n_1 = view;
      if (!(view == null)) {
        view.g2n(this.model);
        ensureNotNull(this.b2n_1).h2n(Companion_instance_70.a2n_1);
      }
    }
  }
  i2n(_set____db54di) {
    return this.f2n(_set____db54di);
  }
  j2n() {
    return this.b2n_1;
  }
  k2n(controller) {
    if (!(this.c2n_1 === controller)) {
      if (!(this.c2n_1 == null)) {
        ensureNotNull(this.c2n_1).l2n(null);
      }
      this.c2n_1 = controller;
      if (!(controller == null)) {
        controller.l2n(this.view);
      }
    }
  }
  m2n(_set____db54di) {
    return this.k2n(_set____db54di);
  }
  n2n() {
    return this.c2n_1;
  }
  o2n(model) {
    if (!(this.d2n_1 === model)) {
      this.d2n_1 = model;
      if (!(this.view == null)) {
        ensureNotNull(this.view).g2n(model);
      }
    }
  }
  g2n(_set____db54di) {
    return this.o2n(_set____db54di);
  }
  h2l() {
    return this.d2n_1;
  }
  setGroupBy(columns) {
    ensureNotNull(this.model).settings.setGroupBy(columns.slice());
  }
  setGroupByByNames(columnNames) {
    ensureNotNull(this.model).settings.setGroupByByNames(columnNames.slice());
  }
  setLabels(columns) {
    ensureNotNull(this.model).settings.setLabels(columns.slice());
  }
  setLabelsByNames(columnNames) {
    ensureNotNull(this.model).settings.setLabelsByNames(columnNames.slice());
  }
  setBackground(column) {
    ensureNotNull(this.model).settings.setBackground(column);
  }
  setBackgroundByName(columnName) {
    ensureNotNull(this.model).settings.setBackgroundByName(columnName);
  }
  setSize(column) {
    ensureNotNull(this.model).settings.setSize(column);
  }
  setSizeByName(columnName) {
    ensureNotNull(this.model).settings.setSizeByName(columnName);
  }
  setColor(column) {
    ensureNotNull(this.model).settings.setColor(column);
  }
  setColorByName(columnName) {
    ensureNotNull(this.model).settings.setColorByName(columnName);
  }
  setHeight(column) {
    ensureNotNull(this.model).settings.setHeight(column);
  }
  setHeightByName(columnName) {
    ensureNotNull(this.model).settings.setHeightByName(columnName);
  }
  setToolTip(columns) {
    ensureNotNull(this.model).settings.setToolTip(columns.slice());
  }
  setToolTipByNames(columnNames) {
    ensureNotNull(this.model).settings.setToolTipByNames(columnNames.slice());
  }
  setAlgorithm(algorithm) {
    ensureNotNull(this.model).settings.getDefaultColumnSettings().setAlgorithm(algorithm);
  }
  setAggregation(aggregation) {
    ensureNotNull(this.model).settings.getDefaultColumnSettings().setAggregation(aggregation);
  }
  setScale(scale) {
    ensureNotNull(this.model).settings.getDefaultColumnSettings().setScale(scale);
  }
  setNesting(nesting) {
    ensureNotNull(this.model).settings.getDefaultColumnSettings().setNesting(ensureNotNull(nesting));
  }
  setOrdering(ordering) {
    ensureNotNull(this.model).settings.getDefaultColumnSettings().setOrdering(ordering);
  }
  setDepth(depth) {
    ensureNotNull(this.model).settings.setDepth(depth);
  }
  setLabeling(labeling) {
    ensureNotNull(this.model).settings.getDefaultColumnSettings().setLabeling(labeling);
  }
  setRendering(rendering) {
    ensureNotNull(this.model).settings.p2n(rendering);
  }
  setLightSourceHeight(value) {
    ensureNotNull(this.model).settings.setLightSourceHeight(value);
  }
  setLightSourceAmbient(value) {
    ensureNotNull(this.model).settings.setLightSourceAmbient(value);
  }
  setLightSourceX(value) {
    ensureNotNull(this.model).settings.setLightSourceX(value);
  }
  setLightSourceY(value) {
    ensureNotNull(this.model).settings.setLightSourceY(value);
  }
  setLightSourceZ(value) {
    ensureNotNull(this.model).settings.setLightSourceZ(value);
  }
  setLabelingFont(font) {
    ensureNotNull(this.model).settings.getDefaultColumnSettings().setLabelingFont(font);
  }
  setLabelingForegroundColor(color) {
    ensureNotNull(this.model).settings.getDefaultColumnSettings().setLabelingForeground(color);
  }
  setLabelingBackgroundColor(color) {
    ensureNotNull(this.model).settings.getDefaultColumnSettings().setLabelingEffectColor(color);
  }
  setHeaderFont(font) {
    ensureNotNull(this.model).settings.getDefaultColumnSettings().setHeaderFont(font);
  }
  setHeaderForegroundColor(color) {
    ensureNotNull(this.model).settings.getDefaultColumnSettings().setHeaderForeground(color);
  }
  setHeaderBackgroundColor(color) {
    ensureNotNull(this.model).settings.getDefaultColumnSettings().setHeaderBackground(color);
  }
  get view() {
    return this.j2n();
  }
  set view(value) {
    this.f2n(value);
  }
  get controller() {
    return this.n2n();
  }
  set controller(value) {
    this.k2n(value);
  }
  get model() {
    return this.h2l();
  }
  set model(value) {
    this.o2n(value);
  }
  get component() {
    return this.q2n();
  }
}
class Companion_71 {
  constructor() {
    this.r2n_1 = 'algorithm';
    this.s2n_1 = 'aggregation';
    this.t2n_1 = 'scale';
    this.u2n_1 = 'nesting';
    this.v2n_1 = 'ordering';
    this.w2n_1 = 'orderingDirection';
    this.x2n_1 = 'orderingVerticalVanishingPoint';
    this.y2n_1 = 'orderingHorizontalVanishingPoint';
    this.z2n_1 = 'labeling';
    this.a2o_1 = 'labelingForeground';
    this.b2o_1 = 'labelingEffectColor';
    this.c2o_1 = 'labelingFont';
    this.d2o_1 = 'labelingEffect';
    this.e2o_1 = 'labelingHorizontalAlignment';
    this.f2o_1 = 'labelingVerticalAlignment';
    this.g2o_1 = 'labelingRendering';
    this.h2o_1 = 'labelingMinimumCharactersToDisplay';
    this.i2o_1 = 'labelingEffectOpacity';
    this.j2o_1 = 'labelingShrinkTextToFitShape';
    this.k2o_1 = 'labelingResizeTextToFitShape';
    this.l2o_1 = 'labelingFloat';
    this.m2o_1 = 'labelingContrastEnhancement';
    this.n2o_1 = 'nestingAmount';
    this.o2o_1 = 'nestingBackground';
    this.p2o_1 = 'headerForeground';
    this.q2o_1 = 'headerEffectColor';
    this.r2o_1 = 'headerBackground';
    this.s2o_1 = 'headerFont';
    this.t2o_1 = 'headerEffect';
    this.u2o_1 = 'headerHorizontalAlignment';
    this.v2o_1 = 'headerVerticalAlignment';
    this.w2o_1 = 'headerRendering';
    this.x2o_1 = 'headerMinimumCharactersToDisplay';
    this.y2o_1 = 'headerEffectOpacity';
    this.z2o_1 = 'headerInsets';
    this.a2p_1 = 'tooltipForeground';
    this.b2p_1 = 'tooltipFont';
    this.c2p_1 = 'tooltipRendering';
    this.d2p_1 = 'borderColor';
    this.e2p_1 = 'borderThickness';
    this.f2p_1 = 'format';
    this.g2p_1 = 'showLabel';
    this.h2p_1 = 'colormap';
    this.i2p_1 = 'overrideDefaults';
  }
}
class TreeMapColumnSettings {}
class AbstractTreeMapColumnSettings {
  setProperty(property, value) {
    if (property.equals(TreeMapColumnPropertyType_algorithm_getInstance())) {
      this.setAlgorithm((!(value == null) ? isInterface(value, Algorithm) : false) ? value : THROW_CCE());
    } else if (property.equals(TreeMapColumnPropertyType_aggregation_getInstance())) {
      this.setAggregation((!(value == null) ? isInterface(value, Aggregation) : false) ? value : THROW_CCE());
    } else if (property.equals(TreeMapColumnPropertyType_scale_getInstance())) {
      this.setScale((!(value == null) ? isInterface(value, Scale) : false) ? value : THROW_CCE());
    } else if (property.equals(TreeMapColumnPropertyType_nesting_getInstance())) {
      this.setNesting((!(value == null) ? isInterface(value, Nesting) : false) ? value : THROW_CCE());
    } else if (property.equals(TreeMapColumnPropertyType_ordering_getInstance())) {
      this.setOrdering((!(value == null) ? isInterface(value, Ordering) : false) ? value : THROW_CCE());
    } else if (property.equals(TreeMapColumnPropertyType_orderingDirection_getInstance())) {
      this.setOrderingDirection(value instanceof SortOrder ? value : THROW_CCE());
    } else if (property.equals(TreeMapColumnPropertyType_orderingHorizontalVanishingPoint_getInstance())) {
      this.setOrderingHorizontalVanishingPoint((!(value == null) ? typeof value === 'number' : false) ? value : THROW_CCE());
    } else if (property.equals(TreeMapColumnPropertyType_orderingVerticalVanishingPoint_getInstance())) {
      this.setOrderingVerticalVanishingPoint((!(value == null) ? typeof value === 'number' : false) ? value : THROW_CCE());
    } else if (property.equals(TreeMapColumnPropertyType_labeling_getInstance())) {
      this.setLabeling((!(value == null) ? isInterface(value, Labeling) : false) ? value : THROW_CCE());
    } else if (property.equals(TreeMapColumnPropertyType_labelingForeground_getInstance())) {
      this.setLabelingForeground(value instanceof CPColor ? value : THROW_CCE());
    } else if (property.equals(TreeMapColumnPropertyType_labelingEffectColor_getInstance())) {
      this.setLabelingEffectColor(value instanceof CPColor ? value : THROW_CCE());
    } else if (property.equals(TreeMapColumnPropertyType_labelingFont_getInstance())) {
      this.setLabelingFont(value instanceof CPFont ? value : THROW_CCE());
    } else if (property.equals(TreeMapColumnPropertyType_labelingEffect_getInstance())) {
      this.setLabelingEffect(value instanceof Effect ? value : THROW_CCE());
    } else if (property.equals(TreeMapColumnPropertyType_labelingHorizontalAlignment_getInstance())) {
      this.setLabelingHorizontalAlignment((!(value == null) ? typeof value === 'number' : false) ? value : THROW_CCE());
    } else if (property.equals(TreeMapColumnPropertyType_labelingVerticalAlignment_getInstance())) {
      this.setLabelingVerticalAlignment((!(value == null) ? typeof value === 'number' : false) ? value : THROW_CCE());
    } else if (property.equals(TreeMapColumnPropertyType_labelingRendering_getInstance())) {
      this.setLabelingRendering(value instanceof Rendering ? value : THROW_CCE());
    } else if (property.equals(TreeMapColumnPropertyType_labelingMinimumCharactersToDisplay_getInstance())) {
      this.setLabelingMinimumCharactersToDisplay((!(value == null) ? typeof value === 'number' : false) ? value : THROW_CCE());
    } else if (property.equals(TreeMapColumnPropertyType_labelingEffectOpacity_getInstance())) {
      this.setLabelingEffectOpacity((!(value == null) ? typeof value === 'number' : false) ? value : THROW_CCE());
    } else if (property.equals(TreeMapColumnPropertyType_labelingShrinkTextToFitShape_getInstance())) {
      this.setLabelingShrinkTextToFitShape((!(value == null) ? typeof value === 'boolean' : false) ? value : THROW_CCE());
    } else if (property.equals(TreeMapColumnPropertyType_labelingResizeTextToFitShape_getInstance())) {
      this.setLabelingResizeTextToFitShape((!(value == null) ? typeof value === 'boolean' : false) ? value : THROW_CCE());
    } else if (property.equals(TreeMapColumnPropertyType_labelingFloat_getInstance())) {
      this.setLabelingFloat((!(value == null) ? typeof value === 'boolean' : false) ? value : THROW_CCE());
    } else if (property.equals(TreeMapColumnPropertyType_nestingAmount_getInstance())) {
      this.setNestingAmount((!(value == null) ? typeof value === 'number' : false) ? value : THROW_CCE());
    } else if (property.equals(TreeMapColumnPropertyType_nestingBackground_getInstance())) {
      this.setNestingBackground(value instanceof CPColor ? value : THROW_CCE());
    } else if (property.equals(TreeMapColumnPropertyType_headerForeground_getInstance())) {
      this.setHeaderForeground(value instanceof CPColor ? value : THROW_CCE());
    } else if (property.equals(TreeMapColumnPropertyType_headerEffectColor_getInstance())) {
      this.setHeaderEffectColor(value instanceof CPColor ? value : THROW_CCE());
    } else if (property.equals(TreeMapColumnPropertyType_headerBackground_getInstance())) {
      this.setHeaderBackground(value instanceof CPColor ? value : THROW_CCE());
    } else if (property.equals(TreeMapColumnPropertyType_headerFont_getInstance())) {
      this.setHeaderFont(value instanceof CPFont ? value : THROW_CCE());
    } else if (property.equals(TreeMapColumnPropertyType_headerEffect_getInstance())) {
      this.setHeaderEffect(value instanceof Effect ? value : THROW_CCE());
    } else if (property.equals(TreeMapColumnPropertyType_headerHorizontalAlignment_getInstance())) {
      this.setHeaderHorizontalAlignment((!(value == null) ? typeof value === 'number' : false) ? value : THROW_CCE());
    } else if (property.equals(TreeMapColumnPropertyType_headerVerticalAlignment_getInstance())) {
      this.setHeaderVerticalAlignment((!(value == null) ? typeof value === 'number' : false) ? value : THROW_CCE());
    } else if (property.equals(TreeMapColumnPropertyType_headerRendering_getInstance())) {
      this.setHeaderRendering(value instanceof Rendering ? value : THROW_CCE());
    } else if (property.equals(TreeMapColumnPropertyType_headerMinimumCharactersToDisplay_getInstance())) {
      this.setHeaderMinimumCharactersToDisplay((!(value == null) ? typeof value === 'number' : false) ? value : THROW_CCE());
    } else if (property.equals(TreeMapColumnPropertyType_headerEffectOpacity_getInstance())) {
      this.setHeaderEffectOpacity((!(value == null) ? typeof value === 'number' : false) ? value : THROW_CCE());
    } else if (property.equals(TreeMapColumnPropertyType_tooltipForeground_getInstance())) {
      this.setTooltipForeground(value instanceof CPColor ? value : THROW_CCE());
    } else if (property.equals(TreeMapColumnPropertyType_tooltipFont_getInstance())) {
      this.setTooltipFont(value instanceof CPFont ? value : THROW_CCE());
    } else if (property.equals(TreeMapColumnPropertyType_tooltipRendering_getInstance())) {
      this.setTooltipRendering(value instanceof Rendering ? value : THROW_CCE());
    } else if (property.equals(TreeMapColumnPropertyType_borderColor_getInstance())) {
      this.setBorderColor(value instanceof CPColor ? value : THROW_CCE());
    } else if (property.equals(TreeMapColumnPropertyType_borderThickness_getInstance())) {
      this.setBorderThickness((!(value == null) ? typeof value === 'number' : false) ? value : THROW_CCE());
    } else if (property.equals(TreeMapColumnPropertyType_format_getInstance())) {
      this.setFormat((!(value == null) ? isInterface(value, CPFormat) : false) ? value : THROW_CCE());
    } else if (property.equals(TreeMapColumnPropertyType_showLabel_getInstance())) {
      this.setShowLabel((!(value == null) ? typeof value === 'boolean' : false) ? value : THROW_CCE());
    } else if (property.equals(TreeMapColumnPropertyType_colormap_getInstance())) {
      this.setColorMap((!(value == null) ? !(value == null) : false) ? value : THROW_CCE());
    } else {
      println('Unknonw property ' + property.toString());
    }
  }
  get properties() {
    return this.p1z();
  }
}
class Mode_1 extends Enum {}
class Range {
  constructor($outer, _amount, _center, _start, _extent, _minRange, _maxRange, _maxExtent) {
    this.j2q_1 = $outer;
    this.a2q_1 = _amount;
    this.b2q_1 = _center;
    this.c2q_1 = _start;
    this.d2q_1 = _extent;
    this.e2q_1 = _minRange;
    this.f2q_1 = _maxRange;
    this.g2q_1 = _maxExtent;
    this.h2q_1 = 0.0;
    this.i2q_1 = 0.0;
  }
  l2q() {
    return this.h2q_1;
  }
  m2q() {
    return this.i2q_1;
  }
  k2q() {
    var range = this.d2q_1;
    var tmp0 = this.g2q_1;
    // Inline function 'kotlin.math.min' call
    var b = range + range * this.a2q_1;
    var newRange = Math.min(tmp0, b);
    if (!(this.b2q_1 == null)) {
      this.h2q_1 = this.b2q_1 - newRange * ((this.b2q_1 - this.c2q_1) / range);
      this.i2q_1 = this.b2q_1 + newRange * ((this.c2q_1 + this.d2q_1 - this.b2q_1) / range);
    } else {
      this.h2q_1 = this.c2q_1;
      this.i2q_1 = this.c2q_1 + newRange;
    }
    if (this.h2q_1 < this.e2q_1) {
      this.i2q_1 = this.i2q_1 + (this.e2q_1 - this.h2q_1);
      this.h2q_1 = this.e2q_1;
    }
    if (this.i2q_1 > this.f2q_1) {
      this.h2q_1 = this.h2q_1 - (this.i2q_1 - this.f2q_1);
      this.i2q_1 = this.f2q_1;
    }
    var tmp = this;
    var tmp0_0 = this.e2q_1;
    // Inline function 'kotlin.math.max' call
    var b_0 = this.h2q_1;
    tmp.h2q_1 = Math.max(tmp0_0, b_0);
    var tmp_0 = this;
    var tmp0_1 = this.f2q_1;
    // Inline function 'kotlin.math.min' call
    var b_1 = this.i2q_1;
    tmp_0.i2q_1 = Math.min(tmp0_1, b_1);
    return this;
  }
}
class DefaultMouseListener {
  constructor($outer) {
    this.w2p_1 = $outer;
    this.r2p_1 = null;
    this.s2p_1 = null;
    this.t2p_1 = null;
    this.u2p_1 = null;
    this.v2p_1 = null;
  }
  n28(event) {
  }
  r28(event) {
    if (!(this.w2p_1.j2p_1 == null) && !(ensureNotNull(this.w2p_1.j2p_1).h2l() == null)) {
      this.v2p_1 = new Point(event.g1h(), event.h1h());
      if (event.g27() > 1) {
        ensureNotNull(this.w2p_1.j2p_1).v2r(ensureNotNull(this.v2p_1).r1v_1, ensureNotNull(this.v2p_1).s1v_1);
      } else {
        var bestrow = ensureNotNull(this.w2p_1.j2p_1).s2r(new Point(event.g1h(), event.h1h()));
        if (!(bestrow == null)) {
          if (!event.i27()) {
            if (!ensureNotNull(ensureNotNull(this.w2p_1.j2p_1).h2l()).selection.g13(bestrow) || ensureNotNull(ensureNotNull(this.w2p_1.j2p_1).h2l()).selection.h13() > 1) {
              ensureNotNull(ensureNotNull(this.w2p_1.j2p_1).h2l()).selection.i13();
              ensureNotNull(ensureNotNull(this.w2p_1.j2p_1).h2l()).selection.j13(bestrow);
              ensureNotNull(this.w2p_1.j2p_1).t2r(ensureNotNull(ensureNotNull(this.w2p_1.j2p_1).h2l()).selection.g13(bestrow));
            }
          } else {
            ensureNotNull(this.w2p_1.j2p_1).t2r(!ensureNotNull(ensureNotNull(this.w2p_1.j2p_1).h2l()).selection.g13(bestrow));
            if (ensureNotNull(this.w2p_1.j2p_1).u2r()) {
              ensureNotNull(ensureNotNull(this.w2p_1.j2p_1).h2l()).selection.k13(bestrow, true);
            } else {
              ensureNotNull(ensureNotNull(this.w2p_1.j2p_1).h2l()).selection.k13(bestrow, false);
            }
          }
        } else {
          ensureNotNull(ensureNotNull(this.w2p_1.j2p_1).h2l()).selection.i13();
        }
      }
    }
  }
  p28(event) {
    if (!(this.w2p_1.j2p_1 == null) && !(ensureNotNull(this.w2p_1.j2p_1).h2l() == null)) {
      if (!event.l27()) {
        if (!(this.s2p_1 == null)) {
          if (event.m27()) {
            ensureNotNull(ensureNotNull(this.w2p_1.j2p_1).h2l()).selection.i13();
            if (this.w2p_1.l2p_1) {
              addToSelection(this, ensureNotNull(this.s2p_1));
            } else {
              setSelection(this, this.s2p_1);
            }
            this.s2p_1 = null;
          }
        }
        if (!(this.t2p_1 == null)) {
          event.m27();
          this.t2p_1 = null;
        }
        ensureNotNull(this.w2p_1.j2p_1).y23().b24();
      } else {
        if (this.w2p_1.m2p_1) {
          var node = ensureNotNull(this.w2p_1.j2p_1).s2r(new Point(event.g1h(), event.h1h()));
          setSelection(this, node);
        }
      }
      this.r2p_1 = null;
    }
  }
  s28(event) {
    if (!(this.w2p_1.j2p_1 == null)) {
      if (!(ensureNotNull(this.w2p_1.j2p_1).h2l() == null)) {
        ensureNotNull(ensureNotNull(this.w2p_1.j2p_1).h2l()).probing.j13(ensureNotNull(this.w2p_1.j2p_1).s2r(new Point(event.g1h(), event.h1h())));
      }
    }
  }
  t28(event) {
    if (!(this.w2p_1.j2p_1 == null)) {
      if (!(ensureNotNull(this.w2p_1.j2p_1).h2l() == null)) {
        ensureNotNull(ensureNotNull(this.w2p_1.j2p_1).h2l()).probing.i13();
      }
    }
  }
  m28(event) {
    if (!(this.w2p_1.j2p_1 == null)) {
      if (!(ensureNotNull(this.w2p_1.j2p_1).h2l() == null)) {
        if (!(this.r2p_1 == null)) {
          switch (this.w2p_1.k2p_1.g3_1) {
            case 0:
              if (event.m27()) {
                if (event.j27() || event.k27()) {
                  ensureNotNull(ensureNotNull(this.w2p_1.j2p_1).h2l()).probing.i13();
                  if (this.w2p_1.l2p_1) {
                    if (!ensureNotNull(this.w2p_1.j2p_1).y23().y23().f13()) {
                      ensureNotNull(this.w2p_1.j2p_1).y23().z23(ensureNotNull(this.v2p_1).r1v_1, ensureNotNull(this.v2p_1).s1v_1);
                    }
                    ensureNotNull(this.w2p_1.j2p_1).y23().a24(event.g1h(), event.h1h());
                    var r = ensureNotNull(ensureNotNull(this.w2p_1.j2p_1).y23().c24());
                    var rect = Rectangle.from(numberToInt(r.g1h()), numberToInt(r.h1h()), numberToInt(r.gm()), numberToInt(r.hm()));
                    if (!(rect == null)) {
                      var toSelect = ensureNotNull(ensureNotNull(this.w2p_1.j2p_1).w2r(rect));
                      if (event.i27()) {
                        addToSelection_0(this, toSelect);
                      } else {
                        ensureNotNull(ensureNotNull(this.w2p_1.j2p_1).h2l()).selection.n13(toSelect);
                      }
                      this.s2p_1 = null;
                    }
                  }
                } else {
                  var observation = ensureNotNull(ensureNotNull(this.w2p_1.j2p_1).s2r(new Point(event.g1h(), event.h1h())));
                  ensureNotNull(ensureNotNull(this.w2p_1.j2p_1).h2l()).probing.j13(observation);
                  this.s2p_1 = null;
                  var isAlreadySelected = !(ensureNotNull(ensureNotNull(this.w2p_1.j2p_1).h2l()).selection == null) && ensureNotNull(ensureNotNull(this.w2p_1.j2p_1).h2l()).selection.g13(observation);
                  if (!isAlreadySelected && !event.h27()) {
                    ensureNotNull(ensureNotNull(this.w2p_1.j2p_1).h2l()).selection.i13();
                  }
                  if (event.h27()) {
                    if (this.w2p_1.l2p_1) {
                      addToSelection(this, observation);
                    } else {
                      setSelection(this, observation);
                    }
                  } else {
                    if (isAlreadySelected) {
                      this.s2p_1 = observation;
                    } else {
                      if (this.w2p_1.l2p_1) {
                        addToSelection(this, observation);
                      } else {
                        setSelection(this, observation);
                      }
                    }
                  }
                }
              }

              break;
            case 2:
              if (event.m27()) {
                var viewport = this.w2p_1.x2r();
                var world = this.w2p_1.y2r();
                var x1 = ensureNotNull(this.w2p_1.j2p_1).z2r().g1h().z15(ensureNotNull(this.r2p_1).g1h());
                var x2 = ensureNotNull(this.w2p_1.j2p_1).z2r().g1h().z15(event.g1h());
                var worldDiffX = x1 - x2;
                var xMin = viewport.p1h() + worldDiffX;
                var xMax = viewport.s1h() + worldDiffX;
                var y1 = ensureNotNull(this.w2p_1.j2p_1).z2r().h1h().z15(ensureNotNull(this.r2p_1).h1h());
                var y2 = ensureNotNull(this.w2p_1.j2p_1).z2r().h1h().z15(event.h1h());
                var worldDiffY = y1 - y2;
                var yMin = viewport.r1h() + worldDiffY;
                var yMax = viewport.r1h() + worldDiffY;
                if (xMin < world.p1h()) {
                  xMax = xMax + (world.p1h() - xMin);
                  xMin = world.p1h();
                }
                if (xMax > world.s1h()) {
                  xMin = xMin - (xMax - world.s1h());
                  xMax = world.s1h();
                }
                var tmp0 = world.p1h();
                // Inline function 'kotlin.math.max' call
                var b = xMin;
                xMin = Math.max(tmp0, b);
                var tmp0_0 = world.s1h();
                // Inline function 'kotlin.math.min' call
                var b_0 = xMax;
                xMax = Math.min(tmp0_0, b_0);
                if (yMin < world.r1h()) {
                  yMax = yMax + (world.r1h() - yMin);
                  yMin = world.r1h();
                }
                if (yMax > world.t1h()) {
                  yMin = yMin - (yMax - world.t1h());
                  yMax = world.t1h();
                }
                var tmp0_1 = world.r1h();
                // Inline function 'kotlin.math.max' call
                var b_1 = yMin;
                yMin = Math.max(tmp0_1, b_1);
                var tmp0_2 = world.t1h();
                // Inline function 'kotlin.math.min' call
                var b_2 = yMax;
                yMax = Math.min(tmp0_2, b_2);
                if (xMin < xMax && yMin < yMax) {
                  ensureNotNull(this.w2p_1.j2p_1).n2q(false, xMin, xMax, yMin, yMax);
                }
              }

              break;
            case 1:
              if (event.n27()) {
                zoom(this.w2p_1, event.h1h() - ensureNotNull(this.r2p_1).h1h() / 100.0, ensureNotNull(this.w2p_1.j2p_1).z2r().g1h().z15(event.g1h()), ensureNotNull(this.w2p_1.j2p_1).z2r().h1h().z15(event.h1h()));
                this.t2p_1 = null;
              }

              break;
            default:
              noWhenBranchMatchedException();
              break;
          }
        }
        this.r2p_1 = event;
      }
    }
  }
  u28(event) {
    var tmp0_safe_receiver = this.w2p_1.j2p_1;
    var closest = tmp0_safe_receiver == null ? null : tmp0_safe_receiver.s2r(new Point(event.g1h(), event.h1h()));
    var tmp1_safe_receiver = this.w2p_1.j2p_1;
    var tmp2_safe_receiver = tmp1_safe_receiver == null ? null : tmp1_safe_receiver.h2l();
    var tmp3_safe_receiver = tmp2_safe_receiver == null ? null : tmp2_safe_receiver.probing;
    if (tmp3_safe_receiver == null)
      null;
    else {
      tmp3_safe_receiver.j13(closest);
    }
  }
  x28(event) {
    if (!(this.w2p_1.j2p_1 == null)) {
      var amount = event.w28();
      zoom(this.w2p_1, amount / 500.0, ensureNotNull(this.w2p_1.j2p_1).z2r().g1h().z15(event.g1h()), ensureNotNull(this.w2p_1.j2p_1).z2r().h1h().z15(event.h1h()));
    }
  }
}
class AbstractTreeMapController$keyListener$1 {
  constructor(this$0, $view) {
    this.b2s_1 = this$0;
    this.c2s_1 = $view;
    this.a2s_1 = null;
  }
  y28(event) {
    if (event.d28() === 83) {
      if (this.a2s_1 == null) {
        this.a2s_1 = this.b2s_1.k2p_1;
      }
      this.b2s_1.k2p_1 = Mode_Selection_getInstance();
    }
    if (event.d28() === 90 || event.d28() === 16) {
      if (this.a2s_1 == null) {
        this.a2s_1 = this.b2s_1.k2p_1;
      }
      this.b2s_1.k2p_1 = Mode_Zooming_getInstance();
    }
    if (event.d28() === 90 || event.d28() === 32) {
      if (this.a2s_1 == null) {
        this.a2s_1 = this.b2s_1.k2p_1;
      }
      this.b2s_1.k2p_1 = Mode_Panning_getInstance();
    }
    if (event.d28() === 40) {
      this.c2s_1.d2s();
    }
    if (event.d28() === 38) {
      this.c2s_1.e2s();
    }
    if (event.d28() === 34) {
      this.c2s_1.f2s();
    }
    if (event.d28() === 33) {
      this.c2s_1.g2s();
    }
  }
}
class AbstractTreeMapController$setView$1 {
  constructor(this$0) {
    this.h2s_1 = this$0;
  }
  a29(event) {
    openPopupMenu(this.h2s_1, event);
  }
}
class AbstractTreeMapController$openPopupMenu$drillDownCommand$1 extends AbstractUICommand {
  static w2q(this$0, $x, $y, $box) {
    if ($box === VOID)
      $box = {};
    $box.t2q_1 = this$0;
    $box.u2q_1 = $x;
    $box.v2q_1 = $y;
    return this.gk('Drill down', $box);
  }
}
class AbstractTreeMapController$openPopupMenu$drillUpCommand$1 extends AbstractUICommand {
  static d2r(this$0, $box) {
    if ($box === VOID)
      $box = {};
    $box.c2r_1 = this$0;
    return this.gk('Drill up', $box);
  }
}
class AbstractTreeMapController$openPopupMenu$zoomInCommand$1 extends AbstractUICommand {
  static k2r(this$0, $box) {
    if ($box === VOID)
      $box = {};
    $box.j2r_1 = this$0;
    return this.gk('Zoom in', $box);
  }
}
class AbstractTreeMapController$openPopupMenu$zoomOutCommand$1 extends AbstractUICommand {
  static r2r(this$0, $box) {
    if ($box === VOID)
      $box = {};
    $box.q2r_1 = this$0;
    return this.gk('Zoom out', $box);
  }
}
class AbstractTreeMapController {
  constructor(view) {
    this.j2p_1 = null;
    this.k2p_1 = Mode_Selection_getInstance();
    this.l2p_1 = true;
    this.m2p_1 = false;
    this.n2p_1 = true;
    this.o2p_1 = false;
    this.p2p_1 = new DefaultMouseListener(this);
    var tmp = this;
    tmp.q2p_1 = new AbstractTreeMapController$keyListener$1(this, view);
    this.l2n(view);
  }
  z2p(center) {
    // Inline function 'kotlin.math.tanh' call
    var x = center * 3;
    return tanh(x);
  }
  l2n(view) {
    this.j2p_1 = view;
    if (!(view == null)) {
      view.s26(this.q2p_1);
      view.y1g(this.p2p_1);
      view.z1g(this.p2p_1);
      view.r26(this.p2p_1);
      view.t26(new AbstractTreeMapController$setView$1(this));
    }
  }
  x2r() {
    return Double_3.z1h(ensureNotNull(this.j2p_1).i2s().start, ensureNotNull(this.j2p_1).i2s().start, ensureNotNull(this.j2p_1).i2s().extent, ensureNotNull(this.j2p_1).i2s().extent);
  }
  y2r() {
    return Double_3.z1h(ensureNotNull(this.j2p_1).j2s().gn(), ensureNotNull(this.j2p_1).j2s().gn(), ensureNotNull(this.j2p_1).j2s().hn() - ensureNotNull(this.j2p_1).i2s().gn(), ensureNotNull(this.j2p_1).j2s().hn() - ensureNotNull(this.j2p_1).j2s().gn());
  }
}
class NodeField {
  constructor($outer, node, field) {
    this.n2u_1 = $outer;
    this.l2u_1 = node;
    this.m2u_1 = field;
  }
  equals(other) {
    if (this === other)
      return true;
    if (other == null || !getKClassFromExpression(this).equals(getKClassFromExpression(other)))
      return false;
    if (!(other instanceof NodeField))
      THROW_CCE();
    if (!equals(this.l2u_1, other.l2u_1))
      return false;
    if (!equals(this.m2u_1, other.m2u_1))
      return false;
    return true;
  }
  hashCode() {
    var tmp0_safe_receiver = this.l2u_1;
    var tmp1_elvis_lhs = tmp0_safe_receiver == null ? null : hashCode(tmp0_safe_receiver);
    var result = tmp1_elvis_lhs == null ? 0 : tmp1_elvis_lhs;
    var tmp = imul_0(31, result);
    // Inline function 'kotlin.hashCode' call
    var tmp0_safe_receiver_0 = this.m2u_1;
    var tmp1_elvis_lhs_0 = tmp0_safe_receiver_0 == null ? null : hashCode(tmp0_safe_receiver_0);
    result = tmp + (tmp1_elvis_lhs_0 == null ? 0 : tmp1_elvis_lhs_0) | 0;
    return result;
  }
}
class Worker {
  constructor($outer) {
    this.l2s_1 = $outer;
    this.k2s_1 = false;
  }
  o17() {
    return this.k2s_1;
  }
  o2u() {
    try {
      if (this.l2s_1.k2t_1 || this.l2s_1.l2t_1 || this.l2s_1.m2t_1) {
        if (!this.k2s_1) {
          this.p2u(0);
          var newRoot;
          var newCurrentRoot;
          if (this.l2s_1.k2t_1) {
            if (!this.k2s_1) {
              var groupByTreeMapColumns = this.l2s_1.settings.groupByColumns;
              var tmp;
              if (groupByTreeMapColumns == null || groupByTreeMapColumns.k1() === 0) {
                var tmp_0 = this.l2s_1.settings.sizeColumn;
                tmp = this.l2s_1.q2u((tmp_0 == null ? true : !(tmp_0 == null)) ? tmp_0 : THROW_CCE());
              } else {
                tmp = this.l2s_1.q2u(groupByTreeMapColumns.l1(0));
              }
              newRoot = tmp;
              newCurrentRoot = newRoot;
              this.l2s_1.r2u(newRoot, this);
              if (this.k2s_1) {
                this.l2s_1.k2t_1 = true;
                return Unit_instance;
              } else {
                this.l2s_1.s2u(newRoot);
                this.l2s_1.n2t_1 = true;
                this.l2s_1.k2t_1 = false;
                this.l2s_1.l2t_1 = true;
                this.l2s_1.h2t_1.ap(newCurrentRoot);
              }
            } else {
              newRoot = this.l2s_1.root;
              newCurrentRoot = this.l2s_1.h2t_1.z2();
            }
          } else {
            newRoot = this.l2s_1.root;
            newCurrentRoot = this.l2s_1.h2t_1.z2();
          }
          if (this.l2s_1.l2t_1) {
            if (!this.k2s_1 && !(newCurrentRoot == null) && !(this.l2s_1.settings.getDimension() == null)) {
              this.l2s_1.t2u(newCurrentRoot, this);
            }
            if (this.k2s_1) {
              this.l2s_1.l2t_1 = true;
              return Unit_instance;
            } else {
              this.l2s_1.o2t_1 = true;
              this.l2s_1.l2t_1 = false;
              this.l2s_1.m2t_1 = true;
            }
          }
          if (this.l2s_1.m2t_1) {
            if (!this.k2s_1 && !(newRoot == null)) {
              this.l2s_1.u2u();
              this.l2s_1.v2u(newRoot, this);
            }
            if (this.k2s_1) {
              this.l2s_1.m2t_1 = true;
              return Unit_instance;
            } else {
              this.l2s_1.p2t_1 = true;
              this.l2s_1.m2t_1 = false;
            }
          }
          if (!this.k2s_1) {
            this.l2s_1.s2u(newRoot);
            this.l2s_1.h2t_1.ap(newCurrentRoot);
            this.l2s_1.w2u();
            this.l2s_1.x2u(new TreeMapEvent(this.l2s_1.n2t_1, this.l2s_1.o2t_1, this.l2s_1.p2t_1));
            this.l2s_1.n2t_1 = false;
            this.l2s_1.o2t_1 = false;
            this.l2s_1.p2t_1 = false;
            this.p2u(100);
          }
        }
      }
    } catch ($p) {
      if ($p instanceof Error) {
        var e = $p;
        printStackTrace(e);
      } else {
        throw $p;
      }
    }
    return Unit_instance;
  }
  l17() {
    this.o2u();
    return Unit_instance;
  }
  n18() {
    this.k2s_1 = true;
    this.p2u(0);
  }
  p2u(progress) {
    this.l2s_1.p2u(progress);
  }
}
class Companion_72 {
  constructor() {
    this.y2u_1 = 40;
    this.z2u_1 = 'progress';
    this.a2v_1 = 'currentRoot';
  }
}
class AbstractTreeMapModel$colorMapListener$1 {
  constructor(this$0) {
    this.b2v_1 = this$0;
  }
  r19(event) {
    this.b2v_1.c2v();
  }
}
class AbstractTreeMapModel$colorProvider$1 {
  d2v(element) {
    return ensureNotNull(element.e2v());
  }
  f2v(element) {
    return this.d2v(element instanceof AbstractTreeMapNode ? element : THROW_CCE());
  }
}
class AbstractTreeMapModel$groupByColumns$1 {
  constructor(this$0) {
    this.g2v_1 = this$0;
  }
  h2v(column) {
    return column == null || !this.g2v_1.isEveryValueUnique(column) || this.g2v_1.v2t_1.d18(ensureNotNull(this.g2v_1.getColumnClass(column)));
  }
  rj(var1) {
    return this.h2v((var1 == null ? true : !(var1 == null)) ? var1 : THROW_CCE());
  }
}
class AbstractTreeMapModel$sizeColumns$1 {
  constructor(this$0) {
    this.i2v_1 = this$0;
  }
  h2v(column) {
    return column == null || this.i2v_1.isNumericType(column) || this.i2v_1.isTemporalType(column);
  }
  rj(var1) {
    return this.h2v((var1 == null ? true : !(var1 == null)) ? var1 : THROW_CCE());
  }
}
class AbstractTreeMapModel$colorColumns$1 {
  constructor(this$0) {
    this.j2v_1 = this$0;
  }
  h2v(column) {
    return column == null || !this.j2v_1.v2t_1.d18(ensureNotNull(this.j2v_1.getColumnClass(column)));
  }
  rj(var1) {
    return this.h2v((var1 == null ? true : !(var1 == null)) ? var1 : THROW_CCE());
  }
}
class AbstractTreeMapModel$heightColumns$1 {
  constructor(this$0) {
    this.k2v_1 = this$0;
  }
  h2v(column) {
    return column == null || this.k2v_1.isNumericType(column) || this.k2v_1.isTemporalType(column);
  }
  rj(var1) {
    return this.h2v((var1 == null ? true : !(var1 == null)) ? var1 : THROW_CCE());
  }
}
class AbstractTreeMapModel$labelsColumns$1 {
  constructor(this$0) {
    this.l2v_1 = this$0;
  }
  h2v(column) {
    return !(column == null) && !this.l2v_1.isVisualType(column);
  }
  rj(var1) {
    return this.h2v((var1 == null ? true : !(var1 == null)) ? var1 : THROW_CCE());
  }
}
class AbstractTreeMapModel$tooltipColumns$1 {
  constructor(this$0) {
    this.m2v_1 = this$0;
  }
  h2v(column) {
    return !(column == null) && !this.m2v_1.isVisualType(column);
  }
  rj(var1) {
    return this.h2v((var1 == null ? true : !(var1 == null)) ? var1 : THROW_CCE());
  }
}
class AbstractTreeMapModel$parentPreorderEnumeration$1 {
  constructor(this$0, $parent) {
    this.n2v_1 = this$0;
    this.o2v_1 = $parent;
  }
  h1() {
    return new ParentPreorderIterator(this.n2v_1, this.o2v_1);
  }
}
class AbstractTreeMapModel$preorderEnumeration$1 {
  constructor(this$0, $parent) {
    this.p2v_1 = this$0;
    this.q2v_1 = $parent;
  }
  h1() {
    return new PreorderIterator(this.p2v_1, this.q2v_1);
  }
}
class AbstractTreeMapModel$breadthFirstIterator$1 {
  constructor(this$0, $parent) {
    this.r2v_1 = this$0;
    this.s2v_1 = $parent;
  }
  h1() {
    return new BreadthFirstIterator(this.r2v_1, this.s2v_1);
  }
}
class AbstractTreeMapModel$depthFirstIterator$1 {
  constructor(this$0, $parent) {
    this.t2v_1 = this$0;
    this.u2v_1 = $parent;
  }
  h1() {
    return new PostorderIterator(this.t2v_1, this.u2v_1);
  }
}
class AbstractTreeMapModel$1 {
  constructor(this$0) {
    this.v2v_1 = this$0;
  }
  j18() {
    this.v2v_1.w2v();
  }
}
class AbstractTreeMapModel$2 {
  constructor(this$0) {
    this.x2v_1 = this$0;
  }
  y2v(event) {
    if (event.j2w()) {
      this.x2v_1.i2w();
    } else if (event.h2w()) {
      this.x2v_1.w2u();
      this.x2v_1.f2w();
    } else if (event.g2w()) {
      this.x2v_1.f2w();
    } else if (event.e2w()) {
      this.x2v_1.c2v();
    } else {
      this.x2v_1.x2u(new TreeMapEvent(false, false, false));
    }
  }
}
class AbstractTreeMapModel$3 {
  constructor(this$0) {
    this.k2w_1 = this$0;
  }
  l2w(event) {
    var node = event.n15_1;
    if (!(node == null)) {
      var toHighlight = ArrayList.q1();
      do {
        toHighlight.c1(ensureNotNull(node));
        node = this.k2w_1.getParent(node);
      }
       while (!(node == null));
      this.k2w_1.highlighting.n13(toHighlight);
    } else {
      this.k2w_1.highlighting.i13();
    }
  }
  x13(event) {
    return this.l2w(event);
  }
}
class AbstractTreeMapModel$4 {
  constructor(this$0) {
    this.m2w_1 = this$0;
  }
}
class AbstractTreeMapModel$5 {
  constructor(this$0) {
    this.n2w_1 = this$0;
  }
}
class AbstractTreeMapModel$6 {
  constructor(this$0) {
    this.o2w_1 = this$0;
  }
  p2w(event) {
    this.o2w_1.selection.i13();
    this.o2w_1.f2w();
  }
  vo(event) {
    return this.p2w(event);
  }
}
class TreeMapModel {}
class AbstractTreeMapModel {
  constructor() {
    this.m2s_1 = Companion_getInstance_56().e1b_1;
    this.n2s_1 = Companion_getInstance_57().k1z_1;
    this.o2s_1 = Companion_getInstance_32().b1b_1;
    this.p2s_1 = this.q2w();
    this.q2s_1 = new SimpleProperties();
    this.r2s_1 = HashMap.i7();
    this.s2s_1 = HashMap.i7();
    this.t2s_1 = SimpleSingleSelection.i15(null);
    this.u2s_1 = SimpleSelection.x14();
    this.v2s_1 = SimpleSelection.x14();
    this.w2s_1 = new SimpleFilter();
    this.x2s_1 = new SimpleFilter();
    this.a2t_1 = true;
    this.b2t_1 = true;
    this.c2t_1 = true;
    this.e2t_1 = CollectionFactory_instance.c17();
    var tmp = this;
    tmp.f2t_1 = new AbstractTreeMapModel$colorMapListener$1(this);
    this.g2t_1 = null;
    this.h2t_1 = this.properties.bz('currentRoot', null);
    this.i2t_1 = null;
    this.j2t_1 = null;
    this.k2t_1 = true;
    this.l2t_1 = true;
    this.m2t_1 = true;
    this.n2t_1 = false;
    this.o2t_1 = false;
    this.p2t_1 = false;
    this.q2t_1 = 0.0;
    this.r2t_1 = 0.0;
    this.s2t_1 = 0.0;
    this.t2t_1 = this.properties.bz('progress', 0);
    this.u2t_1 = 0.0;
    this.v2t_1 = Companion_getInstance_29().s17_1;
    var tmp_0 = this;
    tmp_0.x2t_1 = new AbstractTreeMapModel$colorProvider$1();
    this.y2t_1 = HashMap.i7();
    this.z2t_1 = HashMap.i7();
    this.a2u_1 = HashMap.i7();
    this.w2t_1 = Companion_getInstance_30().v18_1;
    this.y2s_1 = CollectionFactory_instance.nk();
    this.d2t_1 = this.a2t_1 ? Companion_getInstance_29().s17_1.v17(ensureNotNull(getKClassFromExpression(getSelf(this)).kc()), 0, 1) : null;
    var tmp_1 = this;
    tmp_1.z2s_1 = this.v2t_1.x17('TreeMapModelUpdater', 40, true, new AbstractTreeMapModel$1(this));
    var tmp_2 = this.settings;
    tmp_2.addTreeMapSettingsListener(new AbstractTreeMapModel$2(this));
    this.u2u();
    var tmp_3 = this.probing;
    tmp_3.u13(new AbstractTreeMapModel$3(this));
    var tmp_4 = this.filter;
    tmp_4.ok(new AbstractTreeMapModel$4(this));
    var tmp_5 = this.search;
    tmp_5.ok(new AbstractTreeMapModel$5(this));
    this.h2t_1.zo(new AbstractTreeMapModel$6(this));
  }
  r2w() {
    return this.m2s_1;
  }
  s2w() {
    return this.n2s_1;
  }
  t2w() {
    return this.o2s_1;
  }
  u2w() {
    return this.p2s_1;
  }
  p1z() {
    return this.q2s_1;
  }
  v2w() {
    return this.r2s_1;
  }
  w2w() {
    return this.s2s_1;
  }
  w24() {
    return this.t2s_1;
  }
  x2w() {
    return this.u2s_1;
  }
  x24() {
    return this.v2s_1;
  }
  y24() {
    return this.w2s_1;
  }
  y2w() {
    return this.x2s_1;
  }
  s2u(_set____db54di) {
    this.g2t_1 = _set____db54di;
  }
  z2w() {
    return this.g2t_1;
  }
  a2x(_set____db54di) {
    this.i2t_1 = _set____db54di;
  }
  b2x() {
    return this.i2t_1;
  }
  c2x(_set____db54di) {
    this.j2t_1 = _set____db54di;
  }
  d2x() {
    return this.j2t_1;
  }
  w2c() {
    return this.m2t_1 || this.l2t_1 || this.k2t_1;
  }
  e2x(_set____db54di) {
    this.q2t_1 = _set____db54di;
  }
  f2x() {
    return this.q2t_1;
  }
  g2x(_set____db54di) {
    this.r2t_1 = _set____db54di;
  }
  h2x() {
    return this.r2t_1;
  }
  i2x(_set____db54di) {
    this.s2t_1 = _set____db54di;
  }
  j2x() {
    return this.s2t_1;
  }
  k2x(_set____db54di) {
    this.u2t_1 = _set____db54di;
  }
  l2x() {
    return this.u2t_1;
  }
  m2x() {
    return this.v2t_1;
  }
  n2x() {
    return this.w2t_1;
  }
  o2x(colorProvider) {
    if (!(this.x2t_1 === colorProvider)) {
      this.x2t_1 = colorProvider;
      this.c2v();
    }
  }
  p2x(_set____db54di) {
    return this.o2x(_set____db54di);
  }
  q2x() {
    return this.x2t_1;
  }
  r2x() {
    var tmp = Iterables_instance;
    var tmp_0 = this.getTreeMapColumnsInclude(true);
    return tmp.qj(tmp_0, new AbstractTreeMapModel$groupByColumns$1(this));
  }
  s2x() {
    var tmp = Iterables_instance;
    var tmp_0 = this.getTreeMapColumnsInclude(true);
    return tmp.qj(tmp_0, new AbstractTreeMapModel$sizeColumns$1(this));
  }
  t2x() {
    var tmp = Iterables_instance;
    var tmp_0 = this.getTreeMapColumnsInclude(true);
    return tmp.qj(tmp_0, new AbstractTreeMapModel$colorColumns$1(this));
  }
  u2x() {
    var tmp = Iterables_instance;
    var tmp_0 = this.getTreeMapColumnsInclude(true);
    return tmp.qj(tmp_0, new AbstractTreeMapModel$heightColumns$1(this));
  }
  v2x() {
    var tmp = Iterables_instance;
    var tmp_0 = this.getTreeMapColumnsInclude(false);
    return tmp.qj(tmp_0, new AbstractTreeMapModel$labelsColumns$1(this));
  }
  w2x() {
    var tmp = Iterables_instance;
    var tmp_0 = this.getTreeMapColumnsInclude(false);
    return tmp.qj(tmp_0, new AbstractTreeMapModel$tooltipColumns$1(this));
  }
  getTreeMapColumnsInclude(includeNone) {
    var list = ArrayList.q1();
    if (includeNone) {
      list.c1(null);
    }
    var inductionVariable = 0;
    var last = this.columnCount;
    if (inductionVariable < last)
      do {
        var c = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        list.c1(this.getTreeMapColumn(c));
      }
       while (inductionVariable < last);
    return list;
  }
  isNumericType(column) {
    var type = this.getColumnClass(column);
    return !(type == null) && this.v2t_1.a18(type);
  }
  isTemporalType(column) {
    var type = this.getColumnClass(column);
    return !(type == null) && this.v2t_1.b18(type);
  }
  isVisualType(column) {
    var type = this.getColumnClass(column);
    return !(type == null) && this.v2t_1.c18(type);
  }
  x2x() {
    var groupBy;
    var label;
    var background;
    var color;
    var size;
    var height = null;
    var firstCategorical = null;
    var secondCategorical = null;
    var inductionVariable = 0;
    var last = this.columnCount;
    if (inductionVariable < last)
      $l$loop: do {
        var c = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        var column = this.getTreeMapColumn(c);
        if (equals(this.getColumnClass(ensureNotNull(column)), PrimitiveClasses_getInstance().dd())) {
          if (firstCategorical == null) {
            firstCategorical = column;
          } else {
            if (!this.isEveryValueUnique(column)) {
              secondCategorical = column;
            }
            break $l$loop;
          }
        }
      }
       while (inductionVariable < last);
    var inductionVariable_0 = 0;
    var last_0 = this.columnCount;
    if (inductionVariable_0 < last_0)
      $l$loop_0: do {
        var c_0 = inductionVariable_0;
        inductionVariable_0 = inductionVariable_0 + 1 | 0;
        var column_0 = this.getTreeMapColumn(c_0);
        if (this.v2t_1.d18(ensureNotNull(this.getColumnClass(ensureNotNull(column_0))))) {
          secondCategorical = column_0;
          break $l$loop_0;
        }
      }
       while (inductionVariable_0 < last_0);
    label = firstCategorical;
    groupBy = secondCategorical;
    var firstVisual = null;
    var inductionVariable_1 = 0;
    var last_1 = this.columnCount;
    if (inductionVariable_1 < last_1)
      $l$loop_1: do {
        var c_1 = inductionVariable_1;
        inductionVariable_1 = inductionVariable_1 + 1 | 0;
        var column_1 = this.getTreeMapColumn(c_1);
        if (!(column_1 == null) && this.isVisualType(column_1) && !this.v2t_1.z17(getKClass(CPColor), ensureNotNull(this.getColumnClass(column_1)))) {
          if (firstVisual == null) {
            firstVisual = column_1;
            break $l$loop_1;
          }
        }
      }
       while (inductionVariable_1 < last_1);
    background = firstVisual;
    var firstNumerical = null;
    var secondNumerical = null;
    var inductionVariable_2 = 0;
    var last_2 = this.columnCount;
    if (inductionVariable_2 < last_2)
      $l$loop_2: do {
        var c_2 = inductionVariable_2;
        inductionVariable_2 = inductionVariable_2 + 1 | 0;
        var column_2 = this.getTreeMapColumn(c_2);
        if (this.v2t_1.a18(ensureNotNull(this.getColumnClass(ensureNotNull(column_2))))) {
          if (firstNumerical == null) {
            firstNumerical = column_2;
          } else {
            secondNumerical = column_2;
            break $l$loop_2;
          }
        }
      }
       while (inductionVariable_2 < last_2);
    var firstColor = null;
    var inductionVariable_3 = 0;
    var last_3 = this.columnCount;
    if (inductionVariable_3 < last_3)
      $l$loop_3: do {
        var c_3 = inductionVariable_3;
        inductionVariable_3 = inductionVariable_3 + 1 | 0;
        var column_3 = this.getTreeMapColumn(c_3);
        if (this.v2t_1.z17(getKClass(CPColor), ensureNotNull(this.getColumnClass(ensureNotNull(column_3))))) {
          firstColor = column_3;
          break $l$loop_3;
        }
      }
       while (inductionVariable_3 < last_3);
    size = firstNumerical;
    var tmp;
    if (!(firstColor == null)) {
      tmp = firstColor;
    } else {
      var tmp_0;
      if (!(secondNumerical == null)) {
        tmp_0 = secondNumerical;
      } else {
        tmp_0 = firstNumerical;
      }
      tmp = tmp_0;
    }
    color = tmp;
    if (!(groupBy == null)) {
      var columns = listOf(groupBy);
      this.settings.y2x(columns);
    } else {
      this.i2w();
    }
    var columns_0 = listOfNotNull(label);
    this.settings.z2x(columns_0);
    this.settings.a2y(size);
    this.settings.b2y(height);
    this.settings.c2y(color);
    this.settings.d2y(background);
    var count = 0;
    // Inline function 'kotlin.run' call
    var i = 0;
    while (i < this.columnCount && count < 5) {
      var column_4 = this.getTreeMapColumn(i);
      if (this.v2t_1.z17(PrimitiveClasses_getInstance().dd(), ensureNotNull(this.getColumnClass(ensureNotNull(column_4)))) || this.isNumericType(column_4)) {
        this.settings.setShowPopup(this.getTreeMapColumn(i), true);
        count = count + 1 | 0;
      }
      i = i + 1 | 0;
    }
    var inductionVariable_4 = 0;
    var last_4 = this.columnCount;
    if (inductionVariable_4 < last_4)
      do {
        var i_0 = inductionVariable_4;
        inductionVariable_4 = inductionVariable_4 + 1 | 0;
        var column_5 = this.getTreeMapColumn(i_0);
        if (this.isNumericType(ensureNotNull(column_5))) {
          this.settings.getColumnSettings(column_5).setShowLabel(true);
        }
      }
       while (inductionVariable_4 < last_4);
  }
  i2w() {
    cancelDoUpdate(this);
    this.k2t_1 = true;
    if (this.b2t_1) {
      this.z2s_1.r15();
    } else {
      this.w2v();
    }
  }
  w2v() {
    var dimension = this.settings.getDimension();
    if (!(dimension == null) && dimension.gm() > 0 && dimension.hm() > 0) {
      if (!(this.workerFuture == null) && ensureNotNull(this.workerFuture).m17()) {
        try {
          ensureNotNull(this.workerFuture).zj();
        } catch ($p) {
          if ($p instanceof IllegalStateException) {
            var e = $p;
          } else {
            if ($p instanceof Exception) {
              var e_0 = $p;
              printStackTrace(e_0);
            } else {
              throw $p;
            }
          }
        }
      }
      cancelDoUpdate(this);
      this.a2x(new Worker(this));
      if (this.a2t_1 && !(this.d2t_1 == null)) {
        try {
          this.c2x(this.d2t_1.p17(this.worker));
        } catch ($p) {
          if ($p instanceof Error) {
            var t = $p;
            printStackTrace(t);
          } else {
            throw $p;
          }
        }
      } else {
        try {
          ensureNotNull(this.worker).o2u();
          this.a2x(null);
        } catch ($p) {
          if ($p instanceof Error) {
            var e_1 = $p;
            printStackTrace(e_1);
          } else {
            throw $p;
          }
        }
      }
    }
  }
  q2w() {
    return new DefaultTreeMapSettings(this, this.colorFactory, this.n2s_1, this.o2s_1);
  }
  w2u() {
    this.e2t_1.u4();
  }
  c2v() {
    cancelDoUpdate(this);
    this.m2t_1 = true;
    if (this.b2t_1) {
      this.z2s_1.r15();
    } else {
      this.w2v();
    }
  }
  u2u() {
    var lx = this.settings.getLightSourceX();
    var ly = this.settings.getLightSourceY();
    var lz = this.settings.getLightSourceZ();
    // Inline function 'kotlin.math.sqrt' call
    var x = lx * lx + ly * ly + lz * lz;
    var len = Math.sqrt(x);
    this.e2x(lx / len);
    this.g2x(ly / len);
    this.i2x(lz / len);
  }
  e2y() {
    var _iterator__ex2g4s = this.y2s_1.h1();
    while (_iterator__ex2g4s.i1()) {
      var treeMapListener = _iterator__ex2g4s.j1();
      treeMapListener.f2y();
    }
  }
  x2u(event) {
    var _iterator__ex2g4s = this.y2s_1.h1();
    while (_iterator__ex2g4s.i1()) {
      var treeMapListener = _iterator__ex2g4s.j1();
      treeMapListener.g2y(event);
    }
  }
  getTreeMapColumnsByIndices(columns) {
    // Inline function 'kotlin.collections.mapIndexed' call
    // Inline function 'kotlin.collections.mapIndexedTo' call
    var destination = ArrayList.n1(columns.length);
    var index = 0;
    var inductionVariable = 0;
    var last = columns.length;
    while (inductionVariable < last) {
      var item = columns[inductionVariable];
      inductionVariable = inductionVariable + 1 | 0;
      index = index + 1 | 0;
      var tmp$ret$0 = this.getTreeMapColumn(columns[item]);
      destination.c1(tmp$ret$0);
    }
    var mapIndexed = destination;
    return filterNotNull(mapIndexed);
  }
  getTreeMapColumns(columns) {
    return filterNotNull(toList(columns));
  }
  getTreeMapColumnsByNames(columnNames) {
    // Inline function 'kotlin.collections.mapIndexed' call
    // Inline function 'kotlin.collections.mapIndexedTo' call
    var destination = ArrayList.n1(columnNames.length);
    var index = 0;
    var inductionVariable = 0;
    var last = columnNames.length;
    while (inductionVariable < last) {
      var item = columnNames[inductionVariable];
      inductionVariable = inductionVariable + 1 | 0;
      index = index + 1 | 0;
      var tmp$ret$0 = this.getTreeMapColumnByName(item);
      destination.c1(tmp$ret$0);
    }
    var mapIndexed = destination;
    return filterNotNull(mapIndexed);
  }
  t2u(parent, worker) {
    this.k2x(0.0);
    this.h2y(parent, worker);
    this.w2u();
    var dimension = this.settings.getDimension();
    var tmp;
    if (!(dimension == null)) {
      var viewport = this.x2r();
      this.i2y(parent, viewport);
      tmp = this.j2y(parent, worker);
    } else {
      tmp = false;
    }
    return tmp;
  }
  x2r() {
    var d = ensureNotNull(this.settings.getDimension());
    var heightColumn = this.settings.heightColumn;
    var border = this.settings.getDefaultColumnSettings().getBorderThickness();
    var halfBorder = border / 2;
    var tmp;
    if (!(heightColumn == null) && (this.isNumericType(heightColumn) || this.isTemporalType(heightColumn))) {
      var tmp_0 = -this.settings.getMaximumHeight();
      var tmp0 = d.gm();
      // Inline function 'kotlin.math.min' call
      var b = d.hm();
      var tmp$ret$0 = Math.min(tmp0, b);
      var shift = numberToInt(tmp_0 * tmp$ret$0);
      var labeling = this.settings.getDefaultColumnSettings().getLabeling();
      var levels = this.settings.groupByColumns.k1();
      var xShift = -(shift + levels * ensureNotNull(labeling).f2l(this));
      // Inline function 'kotlin.math.min' call
      var b_0 = shift + levels * labeling.e2l(this);
      var yShift = -Math.min(0.0, b_0);
      tmp = Double_3.z1h(xShift + halfBorder, yShift + halfBorder, d.gm() - xShift - border, d.hm() - yShift - border);
    } else {
      tmp = Double_3.z1h(0 + halfBorder, 0 + halfBorder, d.gm() - border, d.hm() - border);
    }
    return tmp;
  }
  h2y(node, worker) {
    this.k2y(node, worker);
    this.l2y(node, worker);
    this.m2y(node, worker);
  }
  k2y(root, worker) {
    var sizeColumn = this.settings.sizeColumn;
    var min = this.getNumericMin(sizeColumn);
    var max = this.getNumericMax(sizeColumn);
    if (min == null || max == null) {
      min = 0.0;
      max = 1.0;
    }
    var scale = this.settings.getColumnSettings(sizeColumn).getScale();
    var hideFilterResults = ensureNotNull(this.settings.isHideFilterResults());
    var hideSearchResults = ensureNotNull(this.settings.isHideSearchResults());
    var _iterator__ex2g4s = this.r2s_1.n6().h1();
    while (_iterator__ex2g4s.i1()) {
      var node = _iterator__ex2g4s.j1();
      var size;
      if (hideFilterResults && this.filter.qk(node)) {
        size = 0.0;
      } else {
        if (hideSearchResults && this.search.qk(node)) {
          size = 0.0;
        } else {
          if (this.b2u(node)) {
            if (sizeColumn == null || this.isRoot(node)) {
              size = 1.0;
            } else {
              var o = this.getValueAt(node, sizeColumn);
              if (!(o == null)) {
                var tmp;
                if (isNumber(o)) {
                  tmp = ensureNotNull(scale).q2k(numberToDouble(o), min, max);
                } else {
                  tmp = 0.0;
                }
                size = tmp;
              } else {
                size = 0.0;
              }
            }
          } else {
            size = 0.0;
          }
        }
      }
      if (isInfinite(size) || isNaN_0(size)) {
        node.n2y(0.0);
      } else {
        // Inline function 'kotlin.math.max' call
        var b = size;
        var tmp$ret$0 = Math.max(0.0, b);
        node.n2y(tmp$ret$0);
        if (node.o2y()) {
          var tmp0 = this.maximumSize;
          // Inline function 'kotlin.math.max' call
          var b_0 = size;
          var tmp$ret$1 = Math.max(tmp0, b_0);
          this.k2x(tmp$ret$1);
        }
      }
    }
  }
  l2y(node, worker) {
    if (!node.z2y()) {
      if (worker == null || !worker.o17()) {
        var size;
        var sizeColumn = this.settings.sizeColumn;
        if (sizeColumn == null || this.settings.getColumnSettings(sizeColumn).getAggregation() === Companion_getInstance_74().r2y_1) {
          var sumSizes = new Float64Array(this.getChildCount(node));
          var c = 0;
          var _iterator__ex2g4s = this.getChildren(node).h1();
          while (_iterator__ex2g4s.i1()) {
            var child = _iterator__ex2g4s.j1();
            this.l2y(child, worker);
            var value = child.k1();
            sumSizes[c] = value;
            c = c + 1 | 0;
          }
          size = Companion_getInstance_74().r2y_1.p2y(sumSizes);
        } else {
          var _iterator__ex2g4s_0 = this.getChildren(node).h1();
          while (_iterator__ex2g4s_0.i1()) {
            var child_0 = _iterator__ex2g4s_0.j1();
            this.l2y(child_0, worker);
          }
          var columnIndex = sizeColumn;
          var count = 0;
          var _iterator__ex2g4s_1 = this.preorderEnumeration(node).h1();
          while (_iterator__ex2g4s_1.i1()) {
            var child_1 = _iterator__ex2g4s_1.j1();
            if (this.isLeaf(child_1) && !this.filter.qk(child_1)) {
              var tmp = this.getValueAt(child_1, columnIndex);
              var value_0 = (tmp == null ? true : isNumber(tmp)) ? tmp : THROW_CCE();
              if (!(value_0 == null)) {
                count = count + 1 | 0;
              }
            }
          }
          var sizes = new Float64Array(count);
          var i = 0;
          var _iterator__ex2g4s_2 = this.preorderEnumeration(node).h1();
          while (_iterator__ex2g4s_2.i1()) {
            var child_2 = _iterator__ex2g4s_2.j1();
            if (this.isLeaf(child_2) && !this.filter.qk(child_2)) {
              var tmp_0 = this.getValueAt(child_2, columnIndex);
              var value_1 = (tmp_0 == null ? true : isNumber(tmp_0)) ? tmp_0 : THROW_CCE();
              if (!(value_1 == null) && i < sizes.length) {
                sizes[i] = child_2.k1();
                i = i + 1 | 0;
              }
            }
          }
          var d = ensureNotNull(this.settings.getColumnSettings(sizeColumn).getAggregation()).p2y(sizes);
          size = d == null ? count : d;
        }
        if (size == null || isInfinite(size) || isNaN_0(size)) {
          node.n2y(0.0);
        } else {
          // Inline function 'kotlin.math.max' call
          var b = size;
          var tmp$ret$0 = Math.max(0.0, b);
          node.n2y(tmp$ret$0);
          if (node.o2y()) {
            var tmp0 = this.maximumSize;
            // Inline function 'kotlin.math.max' call
            var b_0 = size;
            var tmp$ret$1 = Math.max(tmp0, b_0);
            this.k2x(tmp$ret$1);
          }
        }
      }
    }
  }
  m2y(node, worker) {
    if (!node.z2y()) {
      if (worker == null || !worker.o17()) {
        var size;
        var sumSizes = new Float64Array(this.getChildCount(node));
        var c = 0;
        var _iterator__ex2g4s = this.getChildren(node).h1();
        while (_iterator__ex2g4s.i1()) {
          var child = _iterator__ex2g4s.j1();
          this.m2y(child, worker);
          var value = child.k1();
          sumSizes[c] = value;
          c = c + 1 | 0;
        }
        size = ensureNotNull(Companion_getInstance_74().r2y_1.p2y(sumSizes));
        node.a2z(size);
      }
    }
  }
  j2y(currentRoot, worker) {
    if (!worker.o17()) {
      var rootAlgorithm = this.settings.getColumnSettings(this.getGroupByColumn(currentRoot)).getAlgorithm();
      rootAlgorithm.startLayout(ensureNotNull(this.k2u(currentRoot)).i1h(), this, currentRoot, worker);
    }
    if (!worker.o17()) {
      var iterable = this.depthFirstIterator(currentRoot);
      var _iterator__ex2g4s = iterable.h1();
      while (_iterator__ex2g4s.i1()) {
        var node = _iterator__ex2g4s.j1();
        if (!worker.o17()) {
          if (!this.b2u(node)) {
            var columnSettings = this.settings.getColumnSettings(this.getGroupByColumn(node));
            var sortOrder = !(columnSettings.getOrderingDirection() == null) ? ensureNotNull(columnSettings.getOrderingDirection()) : SortOrder_Descending_getInstance();
            var arrayList = ArrayList.s(toList_0(this.getChildren(node)));
            // Inline function 'kotlin.collections.toTypedArray' call
            var array = copyToArray(arrayList);
            var sizes = array;
            sizes = columnSettings.getOrdering().b2z(this, sizes, sortOrder);
            // Inline function 'kotlin.collections.isNotEmpty' call
            // Inline function 'kotlin.collections.isEmpty' call
            if (!(sizes.length === 0)) {
              var algorithm = columnSettings.getAlgorithm();
              var horizontalVashingPoint = columnSettings.getOrderingHorizontalVanishingPoint();
              var verticalVashingPoint = columnSettings.getOrderingVerticalVanishingPoint();
              var tmp = currentRoot === node ? this.k2u(node) : null;
              var tmp_0 = sizes;
              var tmp_1 = this.getSumSize(node);
              var tmp_2 = horizontalVashingPoint == null ? 4 : horizontalVashingPoint;
              algorithm.depthFirstLayout(tmp, node, tmp_0, tmp_1, tmp_2, verticalVashingPoint == null ? 3 : verticalVashingPoint, this, worker);
            }
          }
        } else {
          return true;
        }
      }
    } else {
      return true;
    }
    if (!worker.o17()) {
      var iterable_0 = this.breadthFirstIterator(currentRoot);
      var progress = 0;
      var _iterator__ex2g4s_0 = iterable_0.h1();
      while (_iterator__ex2g4s_0.i1()) {
        var node_0 = _iterator__ex2g4s_0.j1();
        if (!worker.o17()) {
          if (!this.b2u(node_0)) {
            if (currentRoot === this.getParent(node_0)) {
              this.p2u(imul_0(progress, 99) / this.getChildCount(currentRoot) | 0);
              progress = progress + 1 | 0;
            }
            var arrayList_0 = ArrayList.s(toList_0(this.getChildren(node_0)));
            // Inline function 'kotlin.collections.toTypedArray' call
            var array_0 = copyToArray(arrayList_0);
            var sizes_0 = array_0;
            var columnSettings_0 = this.settings.getColumnSettings(this.getGroupByColumn(node_0));
            var sortOrder_0 = !(columnSettings_0.getOrderingDirection() == null) ? columnSettings_0.getOrderingDirection() : SortOrder_Descending_getInstance();
            sizes_0 = columnSettings_0.getOrdering().b2z(this, sizes_0, ensureNotNull(sortOrder_0));
            // Inline function 'kotlin.collections.isNotEmpty' call
            // Inline function 'kotlin.collections.isEmpty' call
            if (!(sizes_0.length === 0)) {
              var algorithm_0 = columnSettings_0.getAlgorithm();
              var shape = this.k2u(node_0);
              if (algorithm_0.isCompatible(shape)) {
                shape = ensureNotNull(columnSettings_0.getNesting()).y2l(this, currentRoot, node_0, ensureNotNull(shape));
                node_0.d2z(shape);
                var horizontalVashingPoint_0 = ensureNotNull(columnSettings_0.getOrderingHorizontalVanishingPoint());
                var verticalVashingPoint_0 = ensureNotNull(columnSettings_0.getOrderingVerticalVanishingPoint());
                algorithm_0.breadthFirstLayout(shape, node_0, sizes_0, this.getSumSize(node_0), horizontalVashingPoint_0, verticalVashingPoint_0, this, worker);
              } else {
                var indexedObject = sizes_0;
                var inductionVariable = 0;
                var last = indexedObject.length;
                while (inductionVariable < last) {
                  var child = indexedObject[inductionVariable];
                  inductionVariable = inductionVariable + 1 | 0;
                  child.c2z(null);
                }
              }
            }
          }
        } else {
          return true;
        }
      }
    } else {
      return true;
    }
    var tmp_3;
    if (!worker.o17()) {
      var rootAlgorithm_0 = this.settings.getColumnSettings(this.getChildrenGroupByColumn(currentRoot)).getAlgorithm();
      rootAlgorithm_0.finishLayout(Double_3.z1h(0.0, 0.0, ensureNotNull(this.settings.getDimension()).gm(), ensureNotNull(this.settings.getDimension()).hm()), this, currentRoot);
      tmp_3 = false;
    } else {
      tmp_3 = true;
    }
    return tmp_3;
  }
  getSumSize(node) {
    return node.e2z();
  }
  v2u(parent, worker) {
    var selected = this.settings.colorColumn;
    if (!(selected == null)) {
      var colorMap = this.getColorMapCurrent();
      var _iterator__ex2g4s = this.preorderEnumeration(parent).h1();
      while (_iterator__ex2g4s.i1()) {
        var node = _iterator__ex2g4s.j1();
        if (worker == null || !worker.o17()) {
          if (this.b2u(node)) {
            var object = this.getValueAt(node, selected);
            if (!(colorMap == null)) {
              var color = colorMap.getColor(object);
              this.setColor(node, color);
            } else {
              var tmp;
              if (!(object == null)) {
                tmp = object instanceof CPColor;
              } else {
                tmp = false;
              }
              if (tmp) {
                this.setColor(node, object);
              } else {
                this.setColor(node, this.colorFactory.z27());
              }
            }
          } else {
            var object_0;
            var tmp_0;
            if (this.v2t_1.z17(PrimitiveClasses_getInstance().tc(), ensureNotNull(this.getColumnClass(selected)))) {
              var sizes = getSizeWeightedValues(this, node, selected);
              tmp_0 = Companion_getInstance_74().s2y_1.p2y(sizes);
            } else {
              tmp_0 = this.getAggregateValue(node, selected);
            }
            object_0 = tmp_0;
            if (!(colorMap == null)) {
              var color_0 = colorMap.getColor(object_0);
              this.setColor(node, color_0);
            } else {
              var tmp_1;
              if (!(object_0 == null)) {
                tmp_1 = object_0 instanceof CPColor;
              } else {
                tmp_1 = false;
              }
              if (tmp_1) {
                this.setColor(node, object_0);
              } else {
                this.setColor(node, this.colorFactory.z27());
              }
            }
          }
        } else {
          return true;
        }
      }
    }
    return false;
  }
  getColorMapCurrent() {
    var column = this.settings.colorColumn;
    return this.getColorMap(column);
  }
  getColorMap(column) {
    var tmp;
    if (!(column == null)) {
      var columnSettings = this.settings.getColumnSettings(column);
      var colorMap = columnSettings.getColorMap();
      if (colorMap == null) {
        colorMap = this.createDefaultColorMap(column);
        columnSettings.setColorMap(colorMap);
      }
      tmp = colorMap;
    } else {
      tmp = null;
    }
    return tmp;
  }
  getCategoricalColorMap(column) {
    var colorMap = this.y2t_1.c3(column);
    if (colorMap == null) {
      colorMap = this.f2z(column);
      var tmp0 = this.y2t_1;
      // Inline function 'kotlin.collections.set' call
      var value = colorMap;
      tmp0.o6(column, value);
    }
    return colorMap;
  }
  getPredefinedColorMap(column) {
    var colorMap = this.z2t_1.c3(column);
    if (colorMap == null) {
      colorMap = this.o2s_1.k1b(this.getNumericMin(column), this.getNumericMax(column));
      var tmp0 = this.z2t_1;
      // Inline function 'kotlin.collections.set' call
      var value = colorMap;
      tmp0.o6(column, value);
    }
    return colorMap;
  }
  getCustomColorMap(column) {
    var colorMap = this.a2u_1.c3(column);
    if (colorMap == null) {
      colorMap = this.o2s_1.l1b(this.getNumericMin(column), this.getNumericMax(column));
      var tmp0 = this.a2u_1;
      // Inline function 'kotlin.collections.set' call
      var value = colorMap;
      tmp0.o6(column, value);
    }
    return colorMap;
  }
  g2z(node) {
    return node.k1();
  }
  getSize(node) {
    return this.g2z(node instanceof AbstractTreeMapNode ? node : THROW_CCE());
  }
  i2y(node, shape) {
    node.c2z(shape);
  }
  setShape(node, shape) {
    return this.i2y(node instanceof AbstractTreeMapNode ? node : THROW_CCE(), shape);
  }
  k2u(node) {
    return node.h2z();
  }
  getShape(node) {
    return this.k2u(node instanceof AbstractTreeMapNode ? node : THROW_CCE());
  }
  setNestedShape(node, shape) {
    node.d2z(shape);
  }
  getNestedShape(node) {
    return ensureNotNull(node.i2z());
  }
  j2z(node) {
    return ensureNotNull(node.f1h());
  }
  getBounds(node) {
    return this.j2z(node instanceof AbstractTreeMapNode ? node : THROW_CCE());
  }
  k2z(node) {
    return node.l2z();
  }
  getLevel(node) {
    return this.k2z(node instanceof AbstractTreeMapNode ? node : THROW_CCE());
  }
  getGroupByColumn(node) {
    return node.m2z();
  }
  getChildrenGroupByColumn(node) {
    return node.n2z();
  }
  b2u(node) {
    return node == null || node.o2y();
  }
  hasNoChildren(node) {
    return this.b2u(node instanceof AbstractTreeMapNode ? node : THROW_CCE());
  }
  isLeaf(node) {
    return node.z2y();
  }
  parentPreorderEnumeration(parent) {
    return new AbstractTreeMapModel$parentPreorderEnumeration$1(this, parent);
  }
  preorderEnumeration(parent) {
    return new AbstractTreeMapModel$preorderEnumeration$1(this, parent);
  }
  breadthFirstIterator(parent) {
    return new AbstractTreeMapModel$breadthFirstIterator$1(this, parent);
  }
  depthFirstIterator(parent) {
    return new AbstractTreeMapModel$depthFirstIterator$1(this, parent);
  }
  getAggregateValue(node, column) {
    var tmp;
    if (!(column == null)) {
      var columnIndex = column;
      var tmp_0;
      if (this.b2u(node)) {
        tmp_0 = this.getValueAt(node, columnIndex);
      } else {
        var key = new NodeField(this, node, column);
        var tmp_1;
        if (this.e2t_1.a3(key)) {
          tmp_1 = this.e2t_1.c3(key);
        } else {
          var tmp_2;
          if (this.v2t_1.z17(PrimitiveClasses_getInstance().tc(), ensureNotNull(this.getColumnClass(columnIndex)))) {
            var agg = this.settings.getColumnSettings(columnIndex).getAggregation();
            var tmp_3;
            if (agg === Companion_getInstance_74().r2y_1) {
              var count = 0;
              var _iterator__ex2g4s = this.getChildren(node).h1();
              while (_iterator__ex2g4s.i1()) {
                var child = _iterator__ex2g4s.j1();
                if (!this.filter.qk(child) && !this.search.qk(child)) {
                  count = count + 1 | 0;
                }
              }
              var sizes = new Float64Array(count);
              var i = 0;
              var _iterator__ex2g4s_0 = this.getChildren(node).h1();
              while (_iterator__ex2g4s_0.i1()) {
                var child_0 = _iterator__ex2g4s_0.j1();
                if (!this.filter.qk(child_0) && !this.search.qk(child_0)) {
                  var tmp_4 = this.getAggregateValue(child_0, column);
                  var value = (tmp_4 == null ? true : isNumber(tmp_4)) ? tmp_4 : THROW_CCE();
                  if (!(value == null)) {
                    sizes[i] = numberToDouble(value);
                  } else {
                    sizes[i] = NaN;
                  }
                  i = i + 1 | 0;
                }
              }
              var aggregate = agg.p2y(sizes);
              if (!(aggregate == null)) {
                // Inline function 'kotlin.collections.set' call
                this.e2t_1.o6(key, aggregate);
              }
              tmp_3 = aggregate;
            } else {
              var values;
              var tmp_5;
              if (ensureNotNull(agg).o2z()) {
                tmp_5 = getSizeWeightedValues(this, node, column);
              } else {
                tmp_5 = getValues(this, node, column);
              }
              values = tmp_5;
              var aggregate_0 = agg.p2y(values);
              if (!(aggregate_0 == null)) {
                // Inline function 'kotlin.collections.set' call
                this.e2t_1.o6(key, aggregate_0);
              }
              tmp_3 = aggregate_0;
            }
            tmp_2 = tmp_3;
          } else if (this.v2t_1.z17(PrimitiveClasses_getInstance().dd(), ensureNotNull(this.getColumnClass(columnIndex)))) {
            var aggregate_1 = null;
            var first = true;
            var _iterator__ex2g4s_1 = this.getChildren(node).h1();
            $l$loop: while (_iterator__ex2g4s_1.i1()) {
              var child_1 = _iterator__ex2g4s_1.j1();
              if (!this.filter.qk(child_1) && !this.search.qk(child_1)) {
                var tmp_6 = this.getAggregateValue(child_1, column);
                var value_0 = (tmp_6 == null ? true : typeof tmp_6 === 'string') ? tmp_6 : THROW_CCE();
                if (first) {
                  aggregate_1 = value_0;
                  first = false;
                } else {
                  if (!(aggregate_1 == null) && !(aggregate_1 == value_0)) {
                    aggregate_1 = null;
                    break $l$loop;
                  }
                }
              }
            }
            tmp_2 = aggregate_1;
          } else {
            tmp_2 = null;
          }
          tmp_1 = tmp_2;
        }
        tmp_0 = tmp_1;
      }
      tmp = tmp_0;
    } else {
      tmp = null;
    }
    return tmp;
  }
  getStringValue(node, column) {
    var tmp;
    if (!(column == null) && !(node == null)) {
      var value;
      if (this.b2u(node)) {
        value = this.getValueAt(node, column);
      } else {
        value = this.getAggregateValue(node, column);
      }
      var format = this.settings.getColumnSettings(column).getFormat();
      var tmp_0;
      if (!(format == null)) {
        var tmp_1;
        try {
          tmp_1 = format.zk(value, false);
        } catch ($p) {
          var tmp_2;
          if ($p instanceof IllegalArgumentException) {
            var e = $p;
            tmp_2 = ' ';
          } else {
            throw $p;
          }
          tmp_1 = tmp_2;
        }
        tmp_0 = tmp_1;
      } else {
        if (value == null) {
          value = ' ';
        }
        var string;
        var tmp_3;
        if (typeof value === 'string') {
          tmp_3 = value;
        } else {
          if (isNumber(value)) {
            tmp_3 = ensureNotNull(this.w2t_1.x18().zk(value, false));
          } else {
            tmp_3 = toString_1(value);
          }
        }
        string = tmp_3;
        tmp_0 = string;
      }
      tmp = tmp_0;
    } else {
      tmp = null;
    }
    return tmp;
  }
  p2z(currentRoot) {
    this.h2t_1.ap(currentRoot);
  }
  q2z(_set____db54di) {
    return this.p2z((_set____db54di == null ? true : _set____db54di instanceof AbstractTreeMapNode) ? _set____db54di : THROW_CCE());
  }
  r2z() {
    return this.h2t_1.z2();
  }
  f2w() {
    cancelDoUpdate(this);
    this.l2t_1 = true;
    if (this.b2t_1) {
      this.z2s_1.r15();
    } else {
      this.w2v();
    }
  }
  addListener(treeMapListener) {
    this.y2s_1.c1(treeMapListener);
  }
  removeListener(treeMapListener) {
    this.y2s_1.e3(treeMapListener);
  }
  getNode(position) {
    if (!(position == null)) {
      var currentRoot = this.currentRoot;
      if (!(currentRoot == null)) {
        var rectangle = this.k2u(currentRoot);
        if (!(rectangle == null) && rectangle.j1h(position)) {
          var node = visit(this, currentRoot, position);
          if (!(node == null) && !(node === currentRoot) && !this.filter.qk(node) && !this.search.qk(node)) {
            return node;
          }
        }
      }
    }
    return null;
  }
  waitUntilReady() {
    this.v2t_1.y17(80n);
    while (this.isDirty) {
      this.v2t_1.y17(50n);
      while (this.root == null || this.k2u(ensureNotNull(this.root)) == null) {
        this.v2t_1.y17(50n);
      }
      var workerFuture = this.workerFuture;
      while (workerFuture == null || !workerFuture.m17() || workerFuture.o17()) {
        try {
          ensureNotNull(workerFuture).zj();
        } catch ($p) {
          if ($p instanceof IllegalStateException) {
            var e = $p;
          } else {
            if ($p instanceof Exception) {
              var e_0 = $p;
              printStackTrace(e_0);
            } else {
              throw $p;
            }
          }
        }
        workerFuture = this.workerFuture;
      }
    }
  }
  getColor(node) {
    return this.colorProvider.f2v(node);
  }
  setColor(node, color) {
    node.s2z(color);
  }
  progressProperty() {
    return this.t2t_1;
  }
  p2u(progress) {
    this.t2t_1.ap(progress);
  }
  getFormatPattern(columnIndex) {
    var format = this.settings.getColumnSettings(this.getTreeMapColumn(columnIndex)).getFormat();
    var tmp;
    if (!(format == null)) {
      tmp = format.yk();
    } else {
      tmp = null;
    }
    return tmp;
  }
  setFormatPattern(columnIndex, pattern) {
    var column = this.getTreeMapColumn(columnIndex);
    if (!(column == null)) {
      if (this.isNumericType(column)) {
        this.settings.getColumnSettings(column).setFormat(this.w2t_1.z18(pattern));
      } else if (this.isTemporalType(column)) {
        this.settings.getColumnSettings(column).setFormat(this.w2t_1.y18(pattern));
      }
    }
  }
  get colorFactory() {
    return this.r2w();
  }
  get settings() {
    return this.u2w();
  }
  get properties() {
    return this.p1z();
  }
  get probing() {
    return this.w24();
  }
  get highlighting() {
    return this.x2w();
  }
  get selection() {
    return this.x24();
  }
  get filter() {
    return this.y24();
  }
  get search() {
    return this.y2w();
  }
  get root() {
    return this.z2w();
  }
  get worker() {
    return this.b2x();
  }
  get workerFuture() {
    return this.d2x();
  }
  get isDirty() {
    return this.w2c();
  }
  get normalizedLightSourceX() {
    return this.f2x();
  }
  get normalizedLightSourceY() {
    return this.h2x();
  }
  get normalizedLightSourceZ() {
    return this.j2x();
  }
  get maximumSize() {
    return this.l2x();
  }
  get colorProvider() {
    return this.q2x();
  }
  set colorProvider(value) {
    this.o2x(value);
  }
  get groupByColumns() {
    return this.r2x();
  }
  get sizeColumns() {
    return this.s2x();
  }
  get colorColumns() {
    return this.t2x();
  }
  get heightColumns() {
    return this.u2x();
  }
  get labelsColumns() {
    return this.v2x();
  }
  get tooltipColumns() {
    return this.w2x();
  }
  get currentRoot() {
    return this.r2z();
  }
  set currentRoot(value) {
    this.p2z(value);
  }
  get dataFrame() {
    return this.j2c();
  }
  get rowCount() {
    return this.e2g();
  }
  get columnCount() {
    return this.y2e();
  }
}
class AbstractTreeMapNode {
  constructor(model) {
    this.c2u_1 = 1.0;
    this.d2u_1 = null;
    this.f2u_1 = null;
    this.g2u_1 = null;
    this.h2u_1 = null;
    this.i2u_1 = null;
    this.j2u_1 = 0;
    this.e2u_1 = model;
    this.s2z(!(model == null) ? model.colorFactory.z27() : null);
  }
  n2y(_set____db54di) {
    this.c2u_1 = _set____db54di;
  }
  k1() {
    return this.c2u_1;
  }
  c2z(shape) {
    if (this.d2u_1 == null || !equals(ensureNotNull(this.d2u_1), shape)) {
      this.d2u_1 = shape;
      this.g2u_1 = null;
      if (!(this.h2u_1 == null)) {
        var cushionImage = ensureNotNull(this.h2u_1).zj();
        if (!(cushionImage == null)) {
          cushionImage.fb();
        }
        this.h2u_1 = null;
      }
    }
  }
  h2z() {
    return this.d2u_1;
  }
  s2z(c) {
    this.f2u_1 = c;
    this.g2u_1 = null;
    if (!(this.h2u_1 == null)) {
      var cushionImage = ensureNotNull(this.h2u_1).zj();
      if (!(cushionImage == null)) {
        cushionImage.fb();
      }
      this.h2u_1 = null;
    }
  }
  e2v() {
    return this.f2u_1;
  }
  d2z(value) {
  }
  i2z() {
    return this.h2z();
  }
  w2z(_set____db54di) {
    this.j2u_1 = _set____db54di;
  }
  l2z() {
    return this.j2u_1;
  }
  y2z() {
    return this.i2u_1;
  }
  z2z() {
    return this.i2u_1 == null;
  }
  d30(parent) {
    this.i2u_1 = parent;
    this.w2z(ensureNotNull(this.y2z()).l2z() + 1 | 0);
  }
  h30() {
    if (!(this.e2u_1.settings.backgroundColumn == null)) {
      var column = this.e2u_1.settings.backgroundColumn;
      if (!(column == null) && this.o2y()) {
        var tmp;
        if (!this.e2u_1.isNumericType(column)) {
          var value = this.e2u_1.getValueAt(this, column);
          tmp = value == null ? null : toString_1(value);
        } else {
          var value_0 = this.e2u_1.getValueAt(this, column);
          tmp = value_0 == null ? null : toString_1(value_0);
        }
        return tmp;
      }
    }
    var tmp_0;
    var tmp_1;
    if (!(this.e2u_1.settings.labelsColumns == null)) {
      // Inline function 'kotlin.collections.isNotEmpty' call
      tmp_1 = !this.e2u_1.settings.labelsColumns.p1();
    } else {
      tmp_1 = false;
    }
    if (tmp_1) {
      var column_0 = this.e2u_1.settings.labelsColumns.l1(0);
      var tmp_2;
      if (!(column_0 == null) || !this.o2y()) {
        var tmp_3;
        if (!(this.f30() == null)) {
          tmp_3 = toString_0(this.f30());
        } else {
          tmp_3 = null;
        }
        tmp_2 = tmp_3;
      } else if (!this.e2u_1.isNumericType(column_0)) {
        var value_1 = this.e2u_1.getValueAt(this, column_0);
        tmp_2 = value_1 == null ? null : toString_1(value_1);
      } else {
        var value_2 = this.e2u_1.getValueAt(this, column_0);
        tmp_2 = value_2 == null ? null : toString_1(value_2);
      }
      tmp_0 = tmp_2;
    } else {
      var tmp_4;
      if (!(this.f30() == null)) {
        tmp_4 = toString_0(this.f30());
      } else {
        tmp_4 = null;
      }
      tmp_0 = tmp_4;
    }
    return tmp_0;
  }
  f1h() {
    var tmp;
    if (!(this.h2z() == null)) {
      tmp = ensureNotNull(this.h2z()).i1h();
    } else {
      tmp = null;
    }
    return tmp;
  }
  toString() {
    return ensureNotNull(this.h30());
  }
  t2z() {
    var tmp;
    if (!(this.g2u_1 == null)) {
      tmp = this.g2u_1;
    } else {
      var data = null;
      var parent = this.y2z();
      if (!(parent == null) && !(this.h2z() == null)) {
        var bounds;
        var tmp_0 = this.h2z();
        if (tmp_0 instanceof Rectangle) {
          var tmp_1 = this.h2z();
          bounds = tmp_1 instanceof Rectangle ? tmp_1 : THROW_CCE();
        } else {
          var b = ensureNotNull(this.h2z()).i1h();
          bounds = Rectangle.from(numberToInt(b.g1h()), numberToInt(b.h1h()), numberToInt(b.gm()), numberToInt(b.hm()));
        }
        var top = bounds.b1w_1;
        var bottom = bounds.b1w_1 + bounds.d1w_1 | 0;
        var left = bounds.a1w_1;
        var right = bounds.a1w_1 + bounds.c1w_1 | 0;
        if (parent.y2z() == null) {
          data = Cushion.j30(this.e2u_1, left, right, bounds.c1w_1, top, bottom, bounds.d1w_1);
        } else {
          data = Cushion.i30(parent.t2z(), this.e2u_1, left, right, bounds.c1w_1, top, bottom, bounds.d1w_1);
        }
      }
      this.g2u_1 = data;
      tmp = data;
    }
    return tmp;
  }
  k30() {
    var tmp;
    if (this.h2u_1 == null) {
      var image = createCushionImage(this);
      var tmp_0;
      if (!(image == null)) {
        this.h2u_1 = new SoftReference(image);
        tmp_0 = image;
      } else {
        tmp_0 = null;
      }
      tmp = tmp_0;
    } else {
      var image_0 = ensureNotNull(this.h2u_1).zj();
      if (image_0 == null) {
        image_0 = createCushionImage(this);
        if (!(image_0 == null)) {
          this.h2u_1 = new SoftReference(image_0);
        } else {
          return null;
        }
      }
      tmp = image_0;
    }
    return tmp;
  }
  l30() {
    if (this.h2z() == null)
      return null;
    var bounds;
    var tmp = this.h2z();
    if (tmp instanceof Rectangle) {
      var tmp_0 = this.h2z();
      bounds = tmp_0 instanceof Rectangle ? tmp_0 : THROW_CCE();
    } else {
      var b = ensureNotNull(this.h2z()).i1h();
      bounds = Rectangle.from(numberToInt(b.g1h()), numberToInt(b.h1h()), numberToInt(b.gm()), numberToInt(b.hm()));
    }
    // Inline function 'kotlin.math.max' call
    var b_0 = bounds.c1w_1;
    var width = Math.max(1, b_0);
    // Inline function 'kotlin.math.max' call
    var b_1 = bounds.d1w_1;
    var height = Math.max(1, b_1);
    return ensureNotNull(this.t2z()).m30(this.e2u_1, this.e2v(), bounds.a1w_1, bounds.b1w_1, width, height);
  }
  n30() {
    return this;
  }
}
class TreeMapSettings {}
class AbstractTreeMapSettings {
  constructor() {
    this.o30_1 = CollectionFactory_instance.nk();
  }
  addTreeMapSettingsListener(listener) {
    this.o30_1.c1(listener);
  }
  removeTreeMapSettingsListener(listener) {
    this.o30_1.e3(listener);
  }
  removeTreeMapSettingsListeners() {
    this.o30_1.u4();
  }
  p30(event) {
    var _iterator__ex2g4s = this.o30_1.h1();
    while (_iterator__ex2g4s.i1()) {
      var listener = _iterator__ex2g4s.j1();
      listener.y2v(event);
    }
  }
  get properties() {
    return this.p1z();
  }
  get groupByColumns() {
    return this.r2x();
  }
  set groupByColumns(value) {
    this.y2x(value);
  }
  get sizeColumn() {
    return this.q30();
  }
  set sizeColumn(value) {
    this.a2y(value);
  }
  get colorColumn() {
    return this.r30();
  }
  set colorColumn(value) {
    this.c2y(value);
  }
  get labelsColumns() {
    return this.v2x();
  }
  set labelsColumns(value) {
    this.z2x(value);
  }
  get toolTipColumns() {
    return this.t30();
  }
  set toolTipColumns(value) {
    this.s30(value);
  }
  get backgroundColumn() {
    return this.u30();
  }
  set backgroundColumn(value) {
    this.d2y(value);
  }
  get heightColumn() {
    return this.v30();
  }
  set heightColumn(value) {
    this.b2y(value);
  }
  get rendering() {
    return this.w30();
  }
  set rendering(value) {
    this.p2n(value);
  }
  get renderingSelection() {
    return this.x30();
  }
  get maximumHeightInterval() {
    return this.y30();
  }
  get lightSourceHeightInterval() {
    return this.z30();
  }
  get lightSourceAmbientInterval() {
    return this.a31();
  }
  get lightSourceXInterval() {
    return this.b31();
  }
  get lightSourceYInterval() {
    return this.c31();
  }
  get lightSourceZInterval() {
    return this.d31();
  }
}
class Companion_73 {
  constructor() {
    this.e31_1 = 7;
    this.f31_1 = 20;
  }
}
class AbstractTreeMapToolTip {
  constructor(view) {
    this.h31_1 = null;
    this.i31_1 = null;
    this.j31_1 = 230;
    this.k31_1 = new ToolTipTreeMapRenderer();
    this.g31_1 = view;
  }
  l31(node) {
    if (!(this.h31_1 === node)) {
      this.h31_1 = node;
      if (this.h31_1 == null) {
        this.m31();
      }
    }
  }
  n31() {
    return this.h31_1;
  }
  o31() {
    if (this.i31_1 == null) {
      this.i31_1 = this.p31();
    }
    return this.i31_1;
  }
  q31() {
    return this.j31_1;
  }
  r31() {
    return this.k31_1;
  }
  s31() {
    return new Insets(2, 2, 2, 2);
  }
  t31(g) {
    var model = this.g31_1.h2l();
    if (!(model == null)) {
      if (!(this.n31() == null)) {
        var bounds = this.r31().v31(g, this.g31_1, model, ensureNotNull(this.n31()), this.q31(), 20, 7, false);
        var tmp;
        if (!(bounds == null)) {
          var insets = this.s31();
          tmp = Dimension.fm(((bounds.c1w_1 + 1 | 0) + insets.u1x_1 | 0) + insets.w1x_1 | 0, ((bounds.d1w_1 + 1 | 0) + insets.t1x_1 | 0) + insets.v1x_1 | 0);
        } else {
          tmp = null;
        }
        return tmp;
      }
    }
    return null;
  }
  w31() {
    var probingColor = ensureNotNull(this.g31_1.h2l()).settings.getProbingColor();
    var tmp;
    if (!(probingColor == null)) {
      tmp = alpha(probingColor, 0.5);
    } else {
      tmp = null;
    }
    return tmp;
  }
  x31(g) {
    var background = ensureNotNull(this.g31_1.h2l()).settings.getTooltipBackground();
    if (!(background == null)) {
      var insets = this.s31();
      var x = insets.u1x_1;
      var y = insets.t1x_1;
      var width = (this.gm() - insets.u1x_1 | 0) - insets.w1x_1 | 0;
      var height = (this.hm() - insets.t1x_1 | 0) - insets.v1x_1 | 0;
      g.l2m(background);
      g.y31(x, y, width, height, 10.0, 10.0);
      var borderColor = this.w31();
      if (!(borderColor == null)) {
        g.y2m(borderColor);
        var borderThickness = insets.u1x_1;
        g.x2m(borderThickness);
        var halfThickness = borderThickness / 2;
        g.z31(halfThickness, halfThickness, width, height, 10.0, 10.0);
      }
    }
  }
  a32(g) {
    var insets = this.s31();
    var x = insets.u1x_1;
    var y = insets.t1x_1;
    var width = (this.gm() - insets.u1x_1 | 0) - insets.w1x_1 | 0;
    var height = (this.hm() - insets.t1x_1 | 0) - insets.v1x_1 | 0;
    g.u2m();
    g.o1j(x, y);
    g.v2m(Double_3.z1h(0, 0, width, height));
    g.b32(true);
    this.r31().c32(g, this.g31_1, this.n31(), this.q31(), 20, 7, null);
    g.w2m();
  }
  d32() {
    var tmp;
    if (!(this.o31() == null)) {
      tmp = ensureNotNull(this.o31()).e32();
    } else {
      tmp = null;
    }
    return tmp;
  }
  p31() {
    return new DefaultTreeMapPopup(this.g31_1);
  }
  f32(node) {
    if (!(this.n31() === node)) {
      this.l31(node);
      var tooltipPosition = this.g32();
      var tooltipDimension = this.t31(null);
      if (!(tooltipPosition == null) && !(tooltipDimension == null)) {
        var popup = this.o31();
        if (!(popup == null)) {
          this.h32(tooltipPosition.r1v_1, tooltipPosition.s1v_1);
        }
      }
      if (node == null) {
        this.m31();
      }
      if (!(this.o31() == null)) {
        ensureNotNull(this.o31()).i32();
      }
    }
  }
  j32(p) {
    var p_0 = p;
    var model = ensureNotNull(this.g31_1.h2l());
    if (!(model == null)) {
      if (!(this.n31() == null)) {
        var shape = this.g31_1.k32(ensureNotNull(model.currentRoot));
        if (p_0 == null) {
          var nodeShape = this.g31_1.k32(ensureNotNull(this.n31()));
          if (!(nodeShape == null)) {
            p_0 = new Point(numberToInt(nodeShape.i1h().k1h()), numberToInt(nodeShape.i1h().m1h()));
          } else {
            return null;
          }
        }
        var mouseX = p_0.r1v_1;
        var mouseY = p_0.s1v_1;
        if (!(shape == null)) {
          var size = this.t31(null);
          if (!(size == null)) {
            var width = size.cm_1;
            var height = size.dm_1;
            var bounds = Rectangle.from(mouseX + 20 | 0, mouseY + 7 | 0, width, height);
            var d = this.g31_1.k1();
            if (mouseX > d.gm() - 20 - width)
              bounds.a1w_1 = mouseX - (20 + width | 0) | 0;
            if (mouseY > d.hm() - height - 7)
              bounds.b1w_1 = (d.dm_1 - height | 0) - 7 | 0;
            return new Point(bounds.a1w_1, bounds.b1w_1);
          }
        }
      }
    }
    return null;
  }
  h32(x, y) {
    var popup = this.o31();
    if (!(popup == null)) {
      popup.l32(x, y, this.g31_1.q2n());
    }
  }
  m31() {
    var popup = this.o31();
    if (!(popup == null)) {
      popup.m31();
    }
  }
}
class AbstractTreeMapView$probingListener$1 {
  constructor(this$0) {
    this.q33_1 = this$0;
  }
  r33(event) {
    var toolTip = this.q33_1.s33();
    if (!(toolTip == null)) {
      var node = ensureNotNull(this.q33_1.h2l()).probing.z13();
      ensureNotNull(this.q33_1.h33_1).f32(node);
    }
    this.q33_1.i32();
  }
  x13(event) {
    return this.r33(event);
  }
}
class AbstractTreeMapView$selectionListener$1 {
  constructor(this$0) {
    this.t33_1 = this$0;
  }
  u33(event) {
    var toolTip = this.t33_1.v33();
    if (!(toolTip == null)) {
      if (ensureNotNull(this.t33_1.h2l()).selection.f13() && ensureNotNull(this.t33_1.h2l()).selection.h13() === 1) {
        var node = ensureNotNull(this.t33_1.h2l()).selection.h1().j1();
        ensureNotNull(this.t33_1.v33()).f32(node);
      } else {
        ensureNotNull(this.t33_1.v33()).f32(null);
      }
    }
    this.t33_1.i32();
  }
  b14(event) {
    return this.u33(event);
  }
}
class AbstractTreeMapView$_treeMapListener$1 {
  constructor(this$0) {
    this.w33_1 = this$0;
  }
  f2y() {
  }
  g2y(event) {
    if (event.a34_1) {
      this.w33_1.y33();
      this.w33_1.i32();
    } else {
      this.w33_1.x33();
    }
  }
}
class AbstractTreeMapView$modelPropertyChangeListener$1 {
  constructor(this$0) {
    this.c34_1 = this$0;
  }
  d34(name, event) {
    if (!equals('progress', name)) {
      this.c34_1.i32();
    } else {
      this.c34_1.y33();
      this.c34_1.e34(300n);
    }
  }
  ey(name, event) {
    return this.d34((name == null ? true : typeof name === 'string') ? name : THROW_CCE(), event);
  }
}
class AbstractTreeMapView$filterListener$1 {
  constructor(this$0) {
    this.f34_1 = this$0;
  }
}
class AbstractTreeMapView$propertyChangeListener$1 {
  constructor(this$0) {
    this.g34_1 = this$0;
  }
  h34(name, event) {
    if (TreeMapPropertyType_dimension_getInstance().equals(name) || TreeMapPropertyType_heightField_getInstance().equals(name) || TreeMapPropertyType_groupByField_getInstance().equals(name)) {
      this.g34_1.j34();
    } else if (TreeMapPropertyType_dimensionFixed_getInstance().equals(name)) {
      this.g34_1.i34();
    }
    this.g34_1.i32();
  }
  ey(name, event) {
    return this.h34(name instanceof TreeMapPropertyType ? name : THROW_CCE(), event);
  }
}
class AbstractTreeMapView$treeMapSettingsListener$1 {
  constructor(this$0) {
    this.k34_1 = this$0;
  }
  y2v(event) {
    if (event.l34()) {
      this.k34_1.j34();
      this.k34_1.i32();
    }
  }
}
class AbstractTreeMapView$1 {
  constructor(this$0) {
    this.m34_1 = this$0;
  }
  n34(event) {
    this.m34_1.i32();
  }
  x13(event) {
    return this.n34(event);
  }
}
class AbstractTreeMapView$2 {
  constructor(this$0) {
    this.o34_1 = this$0;
  }
  v15(event) {
    this.o34_1.y33();
    this.o34_1.i32();
  }
}
class AbstractTreeMapView {
  constructor(headless) {
    this.n32_1 = headless;
    var tmp = this;
    tmp.w32_1 = new AbstractTreeMapView$probingListener$1(this);
    var tmp_0 = this;
    tmp_0.x32_1 = new AbstractTreeMapView$selectionListener$1(this);
    var tmp_1 = this;
    tmp_1.y32_1 = new AbstractTreeMapView$_treeMapListener$1(this);
    var tmp_2 = this;
    tmp_2.z32_1 = new AbstractTreeMapView$modelPropertyChangeListener$1(this);
    var tmp_3 = this;
    tmp_3.a33_1 = new AbstractTreeMapView$filterListener$1(this);
    var tmp_4 = this;
    tmp_4.b33_1 = new AbstractTreeMapView$propertyChangeListener$1(this);
    var tmp_5 = this;
    tmp_5.c33_1 = new AbstractTreeMapView$treeMapSettingsListener$1(this);
    this.d33_1 = null;
    this.e33_1 = DefaultTreeMapLabelRenderer.m35();
    this.f33_1 = DefaultTreeMapHeaderRenderer.l36();
    this.g33_1 = DefaultTreeMapTooltipRenderer.j37();
    this.h33_1 = new DefaultTreeMapToolTip(this);
    this.i33_1 = null;
    this.j33_1 = true;
    this.k33_1 = Progressive_Disabled_getInstance();
    this.l33_1 = false;
    this.m33_1 = true;
    this.o33_1 = true;
    this.r32_1 = ArrayList.q1();
    this.s32_1 = ArrayList.q1();
    this.t32_1 = ArrayList.q1();
    this.u32_1 = ArrayList.q1();
    this.v32_1 = HashMap.i7();
    this.r32_1.c1(new BackgroundRootNodeTreeMapRenderer());
    this.r32_1.c1(NodesTreeMapRenderer.m37(new BackgroundParentNodeRenderer(), 0));
    this.s32_1.c1(NodesTreeMapRenderer.m37(new LeafNodeRenderer(false), 0));
    this.s32_1.c1(NodesTreeMapRenderer.m37(new LeafNodeRenderer(false), 1));
    this.t32_1.c1(NodesTreeMapRenderer.m37(new LeafNodeRenderer(true), 0));
    this.t32_1.c1(NodesTreeMapRenderer.m37(new TextParentNodeRenderer(), 0));
    this.t32_1.c1(NodesTreeMapRenderer.m37(new BorderParentNodeRenderer(), 0));
    this.t32_1.c1(NodesTreeMapRenderer.m37(new HighlightParentNodeRenderer(), 0));
    this.u32_1.c1(NodesTreeMapRenderer.m37(new LeafNodeRenderer(true), 1));
    this.u32_1.c1(NodesTreeMapRenderer.m37(new TextParentNodeRenderer(), 1));
    this.u32_1.c1(NodesTreeMapRenderer.n37(new SelectionNodeRenderer()));
    this.o37(null);
    var width = 0;
    var height = 0;
    this.o32_1 = SimpleBoundedInterval.qp(0.0, width, 0.0, width);
    this.p32_1 = SimpleBoundedInterval.qp(0.0, height, 0.0, height);
    this.q32_1 = SimpleTwoDScreenTransform.u24(SimpleOneDScreenTransform.z16(this.o32_1, width), SimpleOneDScreenTransform.a17(this.p32_1, height, true, true), width, height, 1.0);
    this.n33_1 = new ScreenTransformRubberBand(this.q32_1);
    this.n33_1.w23_1.u13(new AbstractTreeMapView$1(this));
    new RangesScreenTransformCoordinator(this.o32_1, this.p32_1);
    this.q32_1.h24(new AbstractTreeMapView$2(this));
    this.o32_1.lp(10.0);
    this.p32_1.lp(10.0);
  }
  p37() {
    return this.n32_1;
  }
  i2s() {
    return this.o32_1;
  }
  j2s() {
    return this.p32_1;
  }
  z2r() {
    return this.q32_1;
  }
  q37() {
    return this.r32_1;
  }
  r37() {
    return this.t32_1;
  }
  s37() {
    return this.u32_1;
  }
  g2n(model) {
    if (!(this.d33_1 == null)) {
      ensureNotNull(this.d33_1).removeListener(this.y32_1);
      ensureNotNull(this.d33_1).settings.removeTreeMapSettingsListener(this.c33_1);
      ensureNotNull(this.d33_1).properties.gy(this.z32_1);
      ensureNotNull(this.d33_1).filter.pk(this.a33_1);
      ensureNotNull(this.d33_1).search.pk(this.a33_1);
      ensureNotNull(this.d33_1).settings.properties.gy(this.b33_1);
      ensureNotNull(this.d33_1).probing.v13(this.w32_1);
      ensureNotNull(this.d33_1).selection.d13(this.x32_1);
    }
    this.d33_1 = model;
    this.y33();
    if (!(this.d33_1 == null)) {
      ensureNotNull(this.d33_1).addListener(this.y32_1);
      ensureNotNull(this.d33_1).settings.addTreeMapSettingsListener(this.c33_1);
      ensureNotNull(this.d33_1).properties.hy(this.z32_1);
      ensureNotNull(this.d33_1).filter.ok(this.a33_1);
      ensureNotNull(this.d33_1).search.ok(this.a33_1);
      ensureNotNull(this.d33_1).settings.properties.hy(this.b33_1);
      ensureNotNull(this.d33_1).probing.u13(this.w32_1);
      ensureNotNull(this.d33_1).selection.c13(this.x32_1);
    }
    this.i34();
    this.j34();
  }
  h2l() {
    return this.d33_1;
  }
  l2l() {
    return this.e33_1;
  }
  t37() {
    return this.f33_1;
  }
  u37() {
    return this.g33_1;
  }
  o37(tooltip) {
    if (!(this.i33_1 === tooltip)) {
      this.i33_1 = tooltip;
      this.i32();
    }
  }
  v33() {
    return this.i33_1;
  }
  v37() {
    return this.j33_1;
  }
  w37() {
    return this.l33_1;
  }
  t2r(_set____db54di) {
    this.m33_1 = _set____db54di;
  }
  u2r() {
    return this.m33_1;
  }
  y23() {
    return this.n33_1;
  }
  f2c(_set____db54di) {
    this.o33_1 = _set____db54di;
  }
  x2p() {
    return Companion_instance_49.f1w(this.o32_1.start, this.p32_1.start, this.o32_1.start + this.o32_1.extent, this.p32_1.start + this.p32_1.extent);
  }
  x33() {
    this.f2c(true);
    this.i32();
  }
  y33() {
    this.f2c(true);
    if (!(this.v32_1 == null)) {
      this.v32_1.u4();
    }
  }
  j2m(node) {
    var tmp0_safe_receiver = this.v32_1;
    var shape = tmp0_safe_receiver == null ? null : tmp0_safe_receiver.c3(node);
    if (!(this.h2l() == null) && shape == null && !(node == null)) {
      shape = ensureNotNull(this.h2l()).getShape(node);
      if (!(shape == null)) {
        shape = this.x37(shape);
        var tmp0 = ensureNotNull(this.v32_1);
        // Inline function 'kotlin.collections.set' call
        var value = shape;
        tmp0.o6(node, value);
      }
    }
    return shape;
  }
  x37(shape) {
    var shape_0 = shape;
    var tmp;
    if (isInterface(shape_0, Rectangle2D)) {
      var r = shape_0;
      tmp = this.y37(r);
    } else {
      if (shape_0 instanceof TextShape) {
        var at = ScreenTransformHelper_instance.i1x(this.q32_1.g1h(), this.q32_1.h1h());
        tmp = shape_0.n1x(at);
      } else {
        var at_0 = ScreenTransformHelper_instance.i1x(this.q32_1.g1h(), this.q32_1.h1h());
        tmp = ensureNotNull(at_0.c1k(shape_0));
      }
    }
    shape_0 = tmp;
    return shape_0;
  }
  worldToScreenShape(shape) {
    return this.x37(shape);
  }
  k32(node) {
    var screenShape = this.j2m(node);
    if (!(screenShape == null)) {
      return ensureNotNull(ensureNotNull(this.h2l()).settings.rendering).getRenderedShape(this, ensureNotNull(this.h2l()), node, screenShape);
    } else {
      return Rectangle.from(0, 0, 0, 0);
    }
  }
  y2p() {
    return Companion_instance_49.f1w(this.o32_1.gn(), this.p32_1.gn(), this.o32_1.hn(), this.p32_1.hn());
  }
  z37(x) {
    return getXCoordinateAxis(this).a16(x);
  }
  a38(y) {
    return getYCoordinateAxis(this).a16(y);
  }
  n2q(animate, x1, x2, y1, y2) {
    this.o32_1.qo(x1, x2 - x1);
    this.p32_1.qo(y1, y2 - y1);
  }
  s2r(p) {
    if (!(this.h2l() == null) && !(p == null)) {
      var currentRoot = ensureNotNull(this.h2l()).currentRoot;
      if (!(currentRoot == null)) {
        var rectangle = this.k32(currentRoot);
        if (!(rectangle == null) && this.p33(p, rectangle)) {
          var node = visit_0(this, ensureNotNull(this.h2l()), currentRoot, p);
          if (!(node == null) && !(node === currentRoot) && !ensureNotNull(this.h2l()).filter.qk(node) && !ensureNotNull(this.h2l()).search.qk(node)) {
            return node;
          }
        }
      }
    }
    return null;
  }
  p33(p, shape) {
    var tmp;
    if (shape instanceof TextShape) {
      tmp = shape.i1h().j1h(p);
    } else {
      tmp = shape.j1h(p);
    }
    return tmp;
  }
  w2r(rect) {
    if (!(this.h2l() == null) && !(rect == null)) {
      var list = ArrayList.q1();
      var currentRoot = ensureNotNull(ensureNotNull(this.h2l()).currentRoot);
      if (this.k32(currentRoot).l1h(rect)) {
        if (ensureNotNull(this.h2l()).hasNoChildren(currentRoot)) {
          list.c1(ensureNotNull(currentRoot));
        }
        visit_1(this, ensureNotNull(this.h2l()), ensureNotNull(currentRoot), rect, list);
      }
      return list;
    }
    return null;
  }
  b38(rectangle) {
    var x1 = numberToInt(round(this.q32_1.g1h().b16(rectangle.p1h())));
    var x2 = numberToInt(round(this.q32_1.g1h().b16(rectangle.s1h())));
    var y1 = numberToInt(round(this.q32_1.h1h().b16(rectangle.r1h())));
    var y2 = numberToInt(round(this.q32_1.h1h().b16(rectangle.t1h())));
    var width = x2 - x1 | 0;
    var height = y2 - y1 | 0;
    var tmp;
    if (width < 0 || height < 0) {
      tmp = Rectangle.from(x1, y1, 0, 0);
    } else {
      tmp = Rectangle.from(x1, y1, width, height);
    }
    return tmp;
  }
  y37(r) {
    var x1 = this.q32_1.g1h().b16(r.p1h());
    var x2 = this.q32_1.g1h().b16(r.s1h());
    var y1 = this.q32_1.h1h().b16(r.r1h());
    var y2 = this.q32_1.h1h().b16(r.t1h());
    var width = x2 - x1;
    var height = y2 - y1;
    var tmp;
    if (width < 0 || height < 0) {
      tmp = Double_3.z1h(x1, y1, 0.0, 0.0);
    } else {
      tmp = Double_3.z1h(x1, y1, width, height);
    }
    return tmp;
  }
  s2l() {
    var zoomFactorX = this.o32_1.pp() / this.o32_1.extent;
    var zoomFactorY = this.p32_1.pp() / this.p32_1.extent;
    // Inline function 'kotlin.math.min' call
    return Math.min(zoomFactorX, zoomFactorY);
  }
  s33() {
    return this.h33_1;
  }
  i32() {
    this.e34(0n);
  }
  v2r(x, y) {
    var model = ensureNotNull(this.h2l());
    var root = ensureNotNull(model.currentRoot);
    model.probing.i13();
    var location = new Point(x, y);
    if (!(location == null)) {
      var v = ArrayList.q1();
      var _iterator__ex2g4s = model.breadthFirstIterator(root).h1();
      $l$loop_0: while (_iterator__ex2g4s.i1()) {
        var treeMapNode = _iterator__ex2g4s.j1();
        if (this.p33(location, this.k32(treeMapNode))) {
          if (model.hasNoChildren(treeMapNode)) {
            var world = this.y2p();
            this.n2q(false, world.p1h(), world.s1h(), world.r1h(), world.t1h());
            model.q2z(model.root);
            break $l$loop_0;
          }
          v.c1(treeMapNode);
          if (v.k1() > 1) {
            var world_0 = this.y2p();
            this.n2q(false, world_0.p1h(), world_0.s1h(), world_0.r1h(), world_0.t1h());
            model.q2z(v.l1(1));
            break $l$loop_0;
          }
        }
      }
    }
  }
  d2s() {
    var model = ensureNotNull(this.h2l());
    var node = model.probing.z13();
    if (!(node == null)) {
      $l$loop: while (!(model.getParent(ensureNotNull(node)) === model.currentRoot)) {
        node = model.getParent(ensureNotNull(node));
        if (node == null) {
          break $l$loop;
        }
      }
    }
    if (!(node == null)) {
      if (!model.hasNoChildren(node)) {
        var xRange = this.o32_1;
        var yRange = this.p32_1;
        this.n2q(false, xRange.gn(), xRange.hn(), yRange.gn(), yRange.hn());
        model.q2z(node);
      }
    }
  }
  e2s() {
    var model = ensureNotNull(this.h2l());
    model.probing.i13();
    if (!model.isRoot(ensureNotNull(model.currentRoot))) {
      var xRange = this.o32_1;
      var yRange = this.p32_1;
      this.n2q(false, xRange.gn(), xRange.hn(), yRange.gn(), yRange.hn());
      var root = model.getParent(ensureNotNull(model.currentRoot));
      model.q2z(ensureNotNull(root));
    }
  }
  f2s() {
    var model = ensureNotNull(this.h2l());
    var node = model.probing.z13();
    if (!(node == null)) {
      $l$loop: while (!(model.getParent(ensureNotNull(node)) === model.currentRoot)) {
        node = model.getParent(ensureNotNull(node));
        if (node == null) {
          break $l$loop;
        }
      }
    }
    if (!(node == null) && !model.hasNoChildren(node)) {
      var rect = model.getBounds(node);
      var world = this.y2p();
      var xExtent = rect.gm();
      var yExtent = rect.hm();
      var xRangeRatio = xExtent / world.gm();
      var yRangeRatio = yExtent / world.hm();
      // Inline function 'kotlin.math.max' call
      var rangeRatio = Math.max(xRangeRatio, yRangeRatio);
      xExtent = rangeRatio * world.gm();
      yExtent = rangeRatio * world.hm();
      var x1 = rect.g1h();
      var x2 = x1 + xExtent;
      var y1 = world.t1h() - (rect.h1h() + yExtent);
      var y2 = world.t1h() - rect.h1h();
      if (x1 < world.p1h()) {
        x1 = world.p1h();
        x2 = x1 + xExtent;
      }
      if (x2 > world.s1h()) {
        x1 = world.s1h() - xExtent;
        x2 = world.s1h();
      }
      if (y1 < world.r1h()) {
        y1 = world.r1h();
        y2 = y1 + yExtent;
      }
      if (y2 > world.t1h()) {
        y1 = world.t1h() - yExtent;
        y2 = world.t1h();
      }
      this.n2q(true, x1, x2, y1, y2);
    }
  }
  g2s() {
    var world = this.y2p();
    this.n2q(true, world.p1h(), world.s1h(), world.r1h(), world.t1h());
  }
}
class Aggregation {}
class Companion_74 {
  constructor() {
    Companion_instance_74 = this;
    this.q2y_1 = new NoneAggregation();
    this.r2y_1 = new SumAggregation_0();
    this.s2y_1 = new SizeWeightedAggregation();
    this.t2y_1 = new AverageAggregation();
    this.u2y_1 = new CountAggregation();
    this.v2y_1 = new MinAggregation();
    this.w2y_1 = new MaxAggregation();
    this.x2y_1 = new StdDevAggregation();
    this.y2y_1 = new AggregationFactory([this.q2y_1, this.r2y_1, this.s2y_1, this.t2y_1, this.u2y_1, this.v2y_1, this.w2y_1, this.x2y_1]);
  }
  c38() {
    return this.y2y_1;
  }
}
class AggregationFactory {
  constructor(entries) {
    Companion_getInstance_74();
    this.d38_1 = ArrayList.q1();
    addAll(this.d38_1, entries);
  }
  e38() {
    return Companion_getInstance_74().r2y_1;
  }
}
class Companion_75 {
  constructor() {
    Companion_instance_75 = this;
    this.BINARY_TREE = new BinaryTreeAlgorithm();
    this.SLICE = new SliceAndDiceAlgorithm();
    this.SQUARIFIED = new SquarifiedAlgorithm();
    this.SQUARIFIEDPLUS = new SquarifiedPlusAlgorithm();
    this.STRIP = new StripAlgorithm();
    this.PIVOT_BY_SPLIT_SIZE = new PivotByAlgorithm();
    this.SPLIT = new SplitAlgorithm();
    this.CIRCULAR = new CircularAlgorithm();
    this.CIRCLEPACKING = new CirclePackingAlgorithm();
    this.PIE = new PieAlgorithm();
    this.BAR = new BarAlgorithm();
    this.MATRIX = new MatrixAlgorithm();
    this.SUNBURST = new SunburstAlgorithm();
    this.ICICLE = new IcicleAlgorithm();
    this.f38_1 = new AlgorithmFactory([this.BINARY_TREE, this.SLICE, this.SQUARIFIED, this.SQUARIFIEDPLUS, this.STRIP, this.PIVOT_BY_SPLIT_SIZE, this.SPLIT, this.CIRCULAR, this.BAR, this.PIE, this.SUNBURST, this.MATRIX, this.ICICLE]);
    this.instance = this.f38_1;
  }
  g38() {
    return this.BINARY_TREE;
  }
  h38() {
    return this.SLICE;
  }
  i38() {
    return this.SQUARIFIED;
  }
  j38() {
    return this.SQUARIFIEDPLUS;
  }
  k38() {
    return this.STRIP;
  }
  l38() {
    return this.PIVOT_BY_SPLIT_SIZE;
  }
  m38() {
    return this.SPLIT;
  }
  n38() {
    return this.CIRCULAR;
  }
  o38() {
    return this.CIRCLEPACKING;
  }
  p38() {
    return this.PIE;
  }
  q38() {
    return this.BAR;
  }
  r38() {
    return this.MATRIX;
  }
  s38() {
    return this.SUNBURST;
  }
  t38() {
    return this.ICICLE;
  }
  o21() {
    return this.instance;
  }
}
class AlgorithmFactory {
  constructor(entries) {
    Companion_getInstance_75();
    this.u38_1 = ArrayList.q1();
    addAll(this.u38_1, entries);
  }
  add(entry) {
    this.u38_1.c1(entry);
  }
  getDefault() {
    return Companion_getInstance_75().SQUARIFIEDPLUS;
  }
  getAlgorithms() {
    return this.u38_1;
  }
  get(name) {
    var _iterator__ex2g4s = this.u38_1.h1();
    while (_iterator__ex2g4s.i1()) {
      var algorithm = _iterator__ex2g4s.j1();
      if (equals(toString_1(algorithm), name)) {
        return algorithm;
      }
    }
    return this.getDefault();
  }
  find(name) {
    var _iterator__ex2g4s = this.u38_1.h1();
    while (_iterator__ex2g4s.i1()) {
      var algorithm = _iterator__ex2g4s.j1();
      if (equals(toString_1(algorithm), name)) {
        return algorithm;
      }
    }
    return this.getDefault();
  }
}
class AverageAggregation {
  p2y(values) {
    var count = 0;
    var sum = 0.0;
    var inductionVariable = 0;
    var last = values.length;
    while (inductionVariable < last) {
      var value = values[inductionVariable];
      inductionVariable = inductionVariable + 1 | 0;
      if (isFinite_0(value)) {
        count = count + 1 | 0;
        sum = sum + value;
      }
    }
    return sum / count;
  }
  o2z() {
    return false;
  }
  toString() {
    return 'Average';
  }
}
class BackgroundParentNodeRenderer extends AbstractNodeRenderer {
  a2m(view) {
    return true;
  }
  z2l(view, root, pass) {
    return ensureNotNull(ensureNotNull(view.h2l()).settings.rendering).getParentOrder(view, root, pass);
  }
  c2m(view, node) {
    var model = ensureNotNull(view.h2l());
    return !model.isRoot(node) && !model.hasNoChildren(node);
  }
  b2m(model) {
    return ensureNotNull(model.settings.rendering).getPasses(model);
  }
  d2m(g, view, node, pass, passes, bounds, shape) {
    var model = view.h2l();
    if (!(model == null) && bounds.gm() > 0 && bounds.hm() > 0) {
      var rendering = ensureNotNull(model.settings.rendering);
      rendering.paintParent(g, view, node, pass, bounds, shape);
    }
    return true;
  }
}
class BackgroundRootNodeTreeMapRenderer {
  v38(g, view, progress) {
    var model = view.h2l();
    if (!((model == null ? null : model.currentRoot) == null)) {
      var shape = view.k32(ensureNotNull(model.currentRoot));
      if (!(shape == null)) {
        var background = model.settings.getBackground();
        if (background == null) {
          background = view.k2m();
          if (background == null) {
            background = colorOf_4(_UByte___init__impl__g9hnc4(-17), _UByte___init__impl__g9hnc4(-17), _UByte___init__impl__g9hnc4(-17));
          }
        }
        if (!(background == null)) {
          g.l2m(background);
          var d = view.k1();
          g.w38(0.0, 0.0, d.gm(), d.hm());
        }
      }
    }
  }
}
class Orientation extends Enum {}
class BarAlgorithm extends AbstractAlgorithm {
  constructor(marginProportion, orientation) {
    marginProportion = marginProportion === VOID ? 0.0 : marginProportion;
    orientation = orientation === VOID ? Orientation_Horizontal_getInstance() : orientation;
    super();
    this.x38_1 = marginProportion;
    this.y38_1 = orientation;
  }
  iterator(model, root) {
    return model.depthFirstIterator(root);
  }
  breadthFirstLayout(shape, parent, children, sumSizes, horizontalVanishingPoint, verticalVanishingPoint, accessor, worker) {
    var bounds = shape.i1h();
    var maxSize = 0.0;
    var count = 0;
    var inductionVariable = 0;
    var last = children.length;
    while (inductionVariable < last) {
      var child = children[inductionVariable];
      inductionVariable = inductionVariable + 1 | 0;
      if (accessor.getSize(child) > maxSize) {
        maxSize = accessor.getSize(child);
      }
      if (accessor.getSize(child) > 0) {
        count = count + 1 | 0;
      }
    }
    switch (this.y38_1.g3_1) {
      case 0:
        var margin = bounds.hm() * this.x38_1 / count;
        var size = bounds.hm() * (1.0 - this.x38_1) / count;
        var start = bounds.r1h() + margin / 2;
        var inductionVariable_0 = 0;
        var last_0 = children.length;
        while (inductionVariable_0 < last_0) {
          var child_0 = children[inductionVariable_0];
          inductionVariable_0 = inductionVariable_0 + 1 | 0;
          if (accessor.getSize(child_0) > 0) {
            var w = bounds.gm() * accessor.getSize(child_0) / maxSize;
            accessor.setShape(child_0, Double_3.z1h(0.0, start, w, size));
            start = start + (size + margin);
          } else {
            accessor.setShape(child_0, null);
          }
        }

        break;
      case 1:
        var margin_0 = bounds.gm() * this.x38_1 / count;
        var size_0 = bounds.gm() * (1.0 - this.x38_1) / count;
        var start_0 = bounds.p1h() + margin_0 / 2;
        var inductionVariable_1 = 0;
        var last_1 = children.length;
        while (inductionVariable_1 < last_1) {
          var child_1 = children[inductionVariable_1];
          inductionVariable_1 = inductionVariable_1 + 1 | 0;
          if (accessor.getSize(child_1) > 0) {
            var h = bounds.hm() * accessor.getSize(child_1) / maxSize;
            accessor.setShape(child_1, Double_3.z1h(start_0, bounds.t1h() - h, size_0, h));
            start_0 = start_0 + (size_0 + margin_0);
          } else {
            accessor.setShape(child_1, null);
          }
        }

        break;
      default:
        noWhenBranchMatchedException();
        break;
    }
    return false;
  }
  isCompatible(shape) {
    return !(shape == null) ? isInterface(shape, Rectangle2D) : false;
  }
  v2k() {
    return false;
  }
  toString() {
    return 'Bar';
  }
}
class BinaryTreeAlgorithm extends AbstractAlgorithm {
  constructor(vertical) {
    vertical = vertical === VOID ? true : vertical;
    super();
    this.z38_1 = vertical;
  }
  breadthFirstLayout(shape, parent, children, sumSizes, horizontalVanishingPoint, verticalVanishingPoint, accessor, worker) {
    var bounds = shape.i1h();
    this.a39(children, 0, children.length - 1 | 0, bounds, this.z38_1, accessor);
    return false;
  }
  a39(items, start, end, bounds, vertical, accessor) {
    if (start < end) {
      var total = this.w2k(items, start, end, accessor);
      var middle = (start + end | 0) / 2 | 0;
      var first = this.w2k(items, start, middle, accessor);
      var share = first / total;
      var x = bounds.g1h();
      var y = bounds.h1h();
      var w = bounds.gm();
      var h = bounds.hm();
      var r1;
      var r2;
      if (vertical) {
        r1 = Double_3.z1h(x, y, w * share, h);
        r2 = Double_3.z1h(x + w * share, y, w * (1 - share), h);
      } else {
        r1 = Double_3.z1h(x, y, w, h * share);
        r2 = Double_3.z1h(x, y + h * share, w, h * (1 - share));
      }
      this.a39(items, start, middle, r1, !vertical, accessor);
      this.a39(items, middle + 1 | 0, end, r2, !vertical, accessor);
    } else {
      accessor.setShape(items[start], bounds);
    }
  }
  isCompatible(shape) {
    return !(shape == null) ? isInterface(shape, Rectangle2D) : false;
  }
  b39() {
    return 'Binary Tree';
  }
  toString() {
    return this.b39();
  }
}
class BorderParentNodeRenderer extends AbstractNodeRenderer {
  a2m(view) {
    return true;
  }
  z2l(view, root, pass) {
    return ensureNotNull(ensureNotNull(view.h2l()).settings.rendering).getParentOrder(view, root, pass);
  }
  c2m(view, node) {
    return !ensureNotNull(view.h2l()).hasNoChildren(node);
  }
  b2m(model) {
    return ensureNotNull(model.settings.rendering).getPasses(model);
  }
  d2m(g, view, node, pass, passes, bounds, shape) {
    var model = ensureNotNull(view.h2l());
    if (bounds.gm() > 0 && bounds.hm() > 0) {
      var rendering = ensureNotNull(model.settings.rendering);
      rendering.paintParentBorder(g, node, bounds, shape, model);
    }
    return true;
  }
}
class Queue {
  constructor($outer) {
    this.e39_1 = $outer;
    this.c39_1 = null;
    this.d39_1 = null;
  }
  f39(anObject) {
    if (this.c39_1 == null) {
      this.d39_1 = new QNode(this.e39_1, anObject, null);
      this.c39_1 = this.d39_1;
    } else {
      ensureNotNull(this.d39_1).h39_1 = new QNode(this.e39_1, anObject, null);
      this.d39_1 = ensureNotNull(this.d39_1).h39_1;
    }
  }
  j39() {
    var head = this.c39_1;
    if (!(head == null)) {
      var retval = head.g39_1;
      var oldHead = head;
      this.c39_1 = head.h39_1;
      if (head == null) {
        this.d39_1 = null;
      } else {
        oldHead.h39_1 = null;
      }
      return retval;
    } else {
      throw NoSuchElementException.g1('No more elements');
    }
  }
  k39() {
    var head = this.c39_1;
    if (!(head == null)) {
      return head.g39_1;
    } else {
      throw NoSuchElementException.g1('No more elements');
    }
  }
  p1() {
    return this.c39_1 == null;
  }
}
class QNode {
  constructor($outer, _object, next) {
    this.i39_1 = $outer;
    this.g39_1 = _object;
    this.h39_1 = next;
  }
}
class BreadthFirstIterator {
  constructor(model, rootNode) {
    this.m39_1 = model;
    var v = ArrayList.n1(1);
    v.c1(rootNode);
    this.l39_1 = new Queue(this);
    this.l39_1.f39(v.h1());
  }
  i1() {
    return !this.l39_1.p1() && this.l39_1.k39().i1();
  }
  j1() {
    var enumer = this.l39_1.k39();
    var node = enumer.j1();
    var children = this.m39_1.getChildren(node).h1();
    if (!enumer.i1()) {
      this.l39_1.j39();
    }
    if (children.i1()) {
      this.l39_1.f39(children);
    }
    return node;
  }
  t4() {
    throw UnsupportedOperationException.q3();
  }
}
class Circle {
  static z39() {
    var $this = createThis(this);
    init_com_treemap_CirclePackingAlgorithm_Circle($this);
    return $this;
  }
  static q39(cx, cy, r) {
    var $this = createThis(this);
    init_com_treemap_CirclePackingAlgorithm_Circle($this);
    $this.n39_1 = cx;
    $this.o39_1 = cy;
    $this.p39_1 = r;
    return $this;
  }
  b3a() {
    return Double_3.z1h(this.n39_1 - this.p39_1, this.o39_1 - this.p39_1, this.p39_1 * 2.0, this.p39_1 * 2);
  }
  c3a(c2) {
    var cmp = this.p39_1 - c2.p39_1;
    return cmp < 0 ? 1 : cmp > 0 ? -1 : 0;
  }
  d(other) {
    return this.c3a(other instanceof Circle ? other : THROW_CCE());
  }
  equals(other) {
    if (this === other)
      return true;
    if (other == null || !getKClassFromExpression(this).equals(getKClassFromExpression(other)))
      return false;
    if (!(other instanceof Circle))
      THROW_CCE();
    if (!(this.n39_1 === other.n39_1))
      return false;
    if (!(this.o39_1 === other.o39_1))
      return false;
    if (!(this.p39_1 === other.p39_1))
      return false;
    return true;
  }
  hashCode() {
    var result = getNumberHashCode(this.n39_1);
    result = imul_0(31, result) + getNumberHashCode(this.o39_1) | 0;
    result = imul_0(31, result) + getNumberHashCode(this.p39_1) | 0;
    return result;
  }
  toString() {
    return toString_1(getKClassFromExpression(this)) + '[x:' + this.n39_1 + ',y:' + this.o39_1 + ',r:' + this.p39_1 + ']';
  }
}
class Complex {
  constructor(x, y) {
    this.r39_1 = x;
    this.s39_1 = y;
  }
  x39() {
    return this.r39_1;
  }
  y39() {
    return this.s39_1;
  }
  u39(that) {
    return new Complex(this.r39_1 + that.r39_1, this.s39_1 + that.s39_1);
  }
  v39(that) {
    return new Complex(this.r39_1 - that.r39_1, this.s39_1 - that.s39_1);
  }
  t39(that) {
    return new Complex(this.r39_1 * that.r39_1 - this.s39_1 * that.s39_1, this.r39_1 * that.s39_1 + this.s39_1 * that.r39_1);
  }
  w39(that) {
    return new Complex((this.r39_1 * that.r39_1 + this.s39_1 * that.s39_1) / (that.r39_1 * that.r39_1 + that.s39_1 * that.s39_1), (this.s39_1 * that.r39_1 - this.r39_1 * that.s39_1) / (that.r39_1 * that.r39_1 + that.s39_1 * that.s39_1));
  }
  d3a() {
    var tmp0 = this.s39_1;
    // Inline function 'kotlin.math.atan2' call
    var x = this.r39_1;
    return Math.atan2(tmp0, x);
  }
  e3a() {
    // Inline function 'kotlin.math.sqrt' call
    var x = this.r39_1 * this.r39_1 + this.s39_1 * this.s39_1;
    return Math.sqrt(x);
  }
  cw() {
    // Inline function 'kotlin.math.sqrt' call
    var x = this.e3a();
    var r = Math.sqrt(x);
    var theta = this.d3a() / 2;
    // Inline function 'kotlin.math.cos' call
    var tmp = r * Math.cos(theta);
    // Inline function 'kotlin.math.sin' call
    var tmp$ret$2 = Math.sin(theta);
    return new Complex(tmp, r * tmp$ret$2);
  }
  equals(o) {
    if (o instanceof Complex) {
      var that = o;
      return that.r39_1 === this.r39_1 && that.s39_1 === this.s39_1;
    }
    return false;
  }
  hashCode() {
    var bits = doubleToLongBits(this.r39_1);
    var tmp = bits;
    // Inline function 'kotlin.Long.times' call
    var this_0 = doubleToLongBits(this.s39_1);
    bits = tmp ^ multiply_0(this_0, fromInt_0(31));
    return convertToInt(bits) ^ convertToInt(shiftRight(bits, 32));
  }
  toString() {
    var tmp;
    if (this.s39_1 >= 0) {
      tmp = '(' + this.r39_1 + '+' + this.s39_1 + 'i)';
    } else {
      tmp = '(' + this.r39_1 + '' + this.s39_1 + 'i)';
    }
    return tmp;
  }
  a3a() {
    return isNaN_0(this.r39_1) || isNaN_0(this.s39_1);
  }
}
class Companion_76 {
  constructor() {
    this.f3a_1 = true;
  }
  g3a(circles) {
    var tmp;
    switch (circles.k1()) {
      case 0:
        tmp = circles;
        break;
      case 1:
        var circle = circles.l1(0);
        circle.n39_1 = 0.0;
        circle.o39_1 = 0.0;
        tmp = circles;
        break;
      default:
        var placed_circles = ArrayList.q1();
        var _eps = 2.220446049250313E-16;
        var _iterator__ex2g4s = circles.h1();
        $l$loop: while (_iterator__ex2g4s.i1()) {
          var value = _iterator__ex2g4s.j1();
          println('Processing ' + value.toString());
          var radius = value.p39_1;
          var n_circles = placed_circles.k1();
          if (n_circles <= 1) {
            var x = n_circles === 0 ? radius : -radius;
            var circle_0;
            if (false) {
              circle_0 = Circle.q39(x, 0.0, radius);
            } else {
              circle_0 = value;
              circle_0.n39_1 = x;
              circle_0.o39_1 = 0.0;
              circle_0.p39_1 = radius;
            }
            placed_circles.c1(circle_0);
            println('Initial ' + circle_0.toString());
            continue $l$loop;
          }
          var mhd = null;
          var lead_candidate = null;
          var _iterator__ex2g4s_0 = Itertools_instance.h3a(placed_circles, 2).h1();
          while (_iterator__ex2g4s_0.i1()) {
            var c = _iterator__ex2g4s_0.j1();
            var c1 = c.l1(0);
            var c2 = c.l1(1);
            var indexedObject = get_placement_candidates(this, radius, c1, c2, _eps);
            var inductionVariable = 0;
            var last = indexedObject.length;
            $l$loop_1: while (inductionVariable < last) {
              var cand = indexedObject[inductionVariable];
              inductionVariable = inductionVariable + 1 | 0;
              if (!(cand == null)) {
                var other_placed_circles = ArrayList.s(placed_circles);
                if (!(c1 == null)) {
                  other_placed_circles.e3(c1);
                }
                if (!(c2 == null)) {
                  other_placed_circles.e3(c2);
                }
                var overlap = false;
                var _iterator__ex2g4s_1 = other_placed_circles.h1();
                $l$loop_0: while (_iterator__ex2g4s_1.i1()) {
                  var pc = _iterator__ex2g4s_1.j1();
                  var dist = distance(this, pc, cand);
                  if (dist < -_eps) {
                    overlap = true;
                    break $l$loop_0;
                  }
                }
                if (overlap) {
                  continue $l$loop_1;
                }
                var hd = get_hole_degree(this, cand, placed_circles, c1, c2);
                if (mhd == null || hd > mhd) {
                  mhd = hd;
                  lead_candidate = cand;
                }
              }
            }
          }
          if (lead_candidate == null) {
            println('cannot place circle for value ' + value.toString());
            var _iterator__ex2g4s_2 = circles.h1();
            while (_iterator__ex2g4s_2.i1()) {
              var circle_1 = _iterator__ex2g4s_2.j1();
              println('Circle: ' + circle_1.toString());
            }
            lead_candidate = value;
          }
          println('Placing ' + lead_candidate.toString());
          placed_circles.c1(lead_candidate);
        }

        tmp = placed_circles;
        break;
    }
    return tmp;
  }
}
class CirclePackingAlgorithm {
  constructor() {
    this.i3a_1 = 0;
    this.j3a_1 = 0;
    this.k3a_1 = true;
    this.l3a_1 = true;
    this.m3a_1 = false;
    this.n3a_1 = true;
    this.o3a_1 = false;
  }
  p1z() {
    return null;
  }
  iterator(model, root) {
    return model.depthFirstIterator(root);
  }
  startLayout(bounds, model, root, worker) {
  }
  depthFirstLayout(shape, parent, children, sumSizes, horizontalVanishingPoint, verticalVanishingPoint, accessor, worker) {
    var circles = ArrayList.q1();
    var inductionVariable = 0;
    var last = children.length;
    while (inductionVariable < last) {
      var child = children[inductionVariable];
      inductionVariable = inductionVariable + 1 | 0;
      var circle = Circle.z39();
      if (accessor.hasNoChildren(child)) {
        var tmp = circle;
        // Inline function 'kotlin.math.sqrt' call
        var x = accessor.getSize(child) / 3.141592653589793;
        // Inline function 'kotlin.math.max' call
        var b = Math.sqrt(x);
        tmp.p39_1 = Math.max(0.0, b);
      } else {
        var s = accessor.getShape(child);
        if (!(s == null)) {
          if (isInterface(s, Ellipse2D)) {
            var b_0 = s;
            circle.p39_1 = b_0.gm() / 2;
          } else {
            var tmp_0 = circle;
            // Inline function 'kotlin.math.sqrt' call
            var x_0 = accessor.getSize(child) / 3.141592653589793;
            // Inline function 'kotlin.math.max' call
            var b_1 = Math.sqrt(x_0);
            tmp_0.p39_1 = Math.max(0.0, b_1);
          }
        } else {
          var tmp_1 = circle;
          // Inline function 'kotlin.math.sqrt' call
          var x_1 = accessor.getSize(child) / 3.141592653589793;
          // Inline function 'kotlin.math.max' call
          var b_2 = Math.sqrt(x_1);
          tmp_1.p39_1 = Math.max(0.0, b_2);
        }
      }
      circles.c1(circle);
    }
    var sorted = ArrayList.s(circles);
    sort(sorted);
    var placed_circles = Companion_instance_76.g3a(sorted);
    var inductionVariable_0 = 0;
    var last_0 = placed_circles.k1() - 1 | 0;
    if (inductionVariable_0 <= last_0)
      do {
        var i = inductionVariable_0;
        inductionVariable_0 = inductionVariable_0 + 1 | 0;
        var circle_0 = placed_circles.l1(i);
        var t = sorted.l1(i);
        t.n39_1 = circle_0.n39_1;
        t.o39_1 = circle_0.o39_1;
        t.p39_1 = circle_0.p39_1;
      }
       while (inductionVariable_0 <= last_0);
    var boundingCircle_0 = boundingCircle(Companion_instance_76, circles);
    var _iterator__ex2g4s = circles.h1();
    while (_iterator__ex2g4s.i1()) {
      var child_0 = _iterator__ex2g4s.j1();
      child_0.n39_1 = child_0.n39_1 - boundingCircle_0.n39_1;
      child_0.o39_1 = child_0.o39_1 - boundingCircle_0.o39_1;
    }
    boundingCircle_0 = boundingCircle(Companion_instance_76, circles);
    if (shape == null) {
      if (!(boundingCircle_0 == null) && !isNaN_3(boundingCircle_0.p39_1)) {
        var b_3 = boundingCircle_0.b3a();
        accessor.setShape(parent, new Double_0(b_3.g1h(), b_3.h1h(), b_3.gm(), b_3.hm()));
      } else {
        accessor.setShape(parent, null);
      }
    }
    var inductionVariable_1 = 0;
    var last_1 = children.length - 1 | 0;
    if (inductionVariable_1 <= last_1)
      do {
        var i_0 = inductionVariable_1;
        inductionVariable_1 = inductionVariable_1 + 1 | 0;
        var circle_1 = circles.l1(i_0);
        var child_1 = children[i_0];
        if (!isNaN_3(circle_1.p39_1) && circle_1.p39_1 > 0) {
          var b_4 = circle_1.b3a();
          accessor.setShape(child_1, new Double_0(b_4.g1h(), b_4.h1h(), b_4.gm(), b_4.hm()));
        } else {
          accessor.setShape(child_1, null);
        }
      }
       while (inductionVariable_1 <= last_1);
    return false;
  }
  breadthFirstLayout(shape, parent, children, sumSizes, horizontalVanishingPoint, verticalVanishingPoint, accessor, worker) {
    var bounds = shape.i1h();
    var cb = computeBoundingBox(this, children, accessor);
    if (!(cb == null)) {
      var tmp0 = bounds.gm();
      // Inline function 'kotlin.math.min' call
      var b = bounds.hm();
      var size = Math.min(tmp0, b);
      var xs = size / cb.gm();
      var ys = size / cb.hm();
      var inductionVariable = 0;
      var last = children.length;
      while (inductionVariable < last) {
        var node = children[inductionVariable];
        inductionVariable = inductionVariable + 1 | 0;
        var tx = -cb.p1h() * xs + bounds.g1h();
        var ty = -cb.r1h() * ys + bounds.h1h();
        var tmp0_subject = this.j3a_1;
        if (tmp0_subject === 0)
          tx = tx + (bounds.gm() - size) / 2;
        else if (tmp0_subject === 2)
          tx = tx + (bounds.gm() - size);
        var tmp1_subject = this.i3a_1;
        if (tmp1_subject === 0)
          ty = ty + (bounds.hm() - size) / 2;
        else if (tmp1_subject === 3)
          ty = ty + (bounds.hm() - size);
        var at = AffineTransform.m1j(xs, 0.0, 0.0, ys, tx, ty);
        var s = accessor.getShape(node);
        if (!(s == null)) {
          var b1 = s.i1h();
          var x = ensureNotNull(at.c1k(Double_3.z1h(b1.g1h(), b1.h1h(), b1.gm(), b1.hm())));
          var b_0 = x.i1h();
          accessor.setShape(node, new Double_0(b_0.g1h(), b_0.h1h(), b_0.gm(), b_0.hm()));
        } else {
          accessor.setShape(node, null);
        }
      }
    } else {
      var inductionVariable_0 = 0;
      var last_0 = children.length;
      while (inductionVariable_0 < last_0) {
        var node_0 = children[inductionVariable_0];
        inductionVariable_0 = inductionVariable_0 + 1 | 0;
        accessor.setShape(node_0, null);
      }
    }
    return false;
  }
  finishLayout(bounds, model, root) {
  }
  isCompatible(shape) {
    var tmp;
    if (!(shape == null) ? isInterface(shape, Rectangle2D) : false) {
      tmp = true;
    } else {
      tmp = !(shape == null) ? isInterface(shape, Ellipse2D) : false;
    }
    return tmp;
  }
  r2k() {
    return this.k3a_1;
  }
  s2k() {
    return this.l3a_1;
  }
  t2k() {
    return this.m3a_1;
  }
  u2k() {
    return this.n3a_1;
  }
  v2k() {
    return this.o3a_1;
  }
  toString() {
    return 'CirclePackging';
  }
  get properties() {
    return this.p1z();
  }
  get isRenderingLeafLabelsSupported() {
    return this.r2k();
  }
  get isRenderingParentLabelSupported() {
    return this.s2k();
  }
  get isColorParent() {
    return this.t2k();
  }
  get isChildContained() {
    return this.u2k();
  }
  get isSpaceFilling() {
    return this.v2k();
  }
}
class Pair_0 {
  static v3a(ca, cb) {
    var $this = createThis(this);
    init_com_treemap_CircularAlgorithm_Pair($this);
    $this.p3a_1 = ca;
    $this.q3a_1 = cb;
    return $this;
  }
  static w3a(ca, cb, innerSoddyRadius) {
    var $this = createThis(this);
    init_com_treemap_CircularAlgorithm_Pair($this);
    $this.p3a_1 = ca;
    $this.q3a_1 = cb;
    $this.r3a_1 = innerSoddyRadius;
    return $this;
  }
}
class Circle_0 {
  static g3b() {
    var $this = createThis(this);
    init_com_treemap_CircularAlgorithm_Circle($this);
    return $this;
  }
  static f3b(cx, cy, r) {
    var $this = createThis(this);
    init_com_treemap_CircularAlgorithm_Circle($this);
    $this.s3a_1 = cx;
    $this.t3a_1 = cy;
    $this.u3a_1 = r;
    return $this;
  }
  y3a(that, error) {
    var dist = (this.s3a_1 - that.s3a_1) * (this.s3a_1 - that.s3a_1) + (this.t3a_1 - that.t3a_1) * (this.t3a_1 - that.t3a_1);
    return dist < (this.u3a_1 + that.u3a_1) * (this.u3a_1 + that.u3a_1) - error;
  }
  x3a(that) {
    var dist = (this.s3a_1 - that.s3a_1) * (this.s3a_1 - that.s3a_1) + (this.t3a_1 - that.t3a_1) * (this.t3a_1 - that.t3a_1);
    // Inline function 'kotlin.math.sqrt' call
    return Math.sqrt(dist) - that.u3a_1;
  }
  b3a() {
    return Double_3.z1h(this.s3a_1 - this.u3a_1, this.t3a_1 - this.u3a_1, this.u3a_1 * 2.0, this.u3a_1 * 2);
  }
  h3b(c2) {
    var cmp = this.u3a_1 - c2.u3a_1;
    return cmp < 0 ? 1 : cmp > 0 ? -1 : 0;
  }
  d(other) {
    return this.h3b(other instanceof Circle_0 ? other : THROW_CCE());
  }
  toString() {
    return toString_1(getKClassFromExpression(this)) + '[x:' + this.s3a_1 + ',y:' + this.t3a_1 + ',r:' + this.u3a_1 + ']';
  }
}
class Complex_0 {
  constructor(x, y) {
    this.z3a_1 = x;
    this.a3b_1 = y;
  }
  x39() {
    return this.z3a_1;
  }
  y39() {
    return this.a3b_1;
  }
  c3b(that) {
    return new Complex_0(this.z3a_1 + that.z3a_1, this.a3b_1 + that.a3b_1);
  }
  d3b(that) {
    return new Complex_0(this.z3a_1 - that.z3a_1, this.a3b_1 - that.a3b_1);
  }
  b3b(that) {
    return new Complex_0(this.z3a_1 * that.z3a_1 - this.a3b_1 * that.a3b_1, this.z3a_1 * that.a3b_1 + this.a3b_1 * that.z3a_1);
  }
  e3b(that) {
    return new Complex_0((this.z3a_1 * that.z3a_1 + this.a3b_1 * that.a3b_1) / (that.z3a_1 * that.z3a_1 + that.a3b_1 * that.a3b_1), (this.a3b_1 * that.z3a_1 - this.z3a_1 * that.a3b_1) / (that.z3a_1 * that.z3a_1 + that.a3b_1 * that.a3b_1));
  }
  d3a() {
    var tmp0 = this.a3b_1;
    // Inline function 'kotlin.math.atan2' call
    var x = this.z3a_1;
    return Math.atan2(tmp0, x);
  }
  e3a() {
    // Inline function 'kotlin.math.sqrt' call
    var x = this.z3a_1 * this.z3a_1 + this.a3b_1 * this.a3b_1;
    return Math.sqrt(x);
  }
  cw() {
    // Inline function 'kotlin.math.sqrt' call
    var x = this.e3a();
    var r = Math.sqrt(x);
    var theta = this.d3a() / 2;
    // Inline function 'kotlin.math.cos' call
    var tmp = r * Math.cos(theta);
    // Inline function 'kotlin.math.sin' call
    var tmp$ret$2 = Math.sin(theta);
    return new Complex_0(tmp, r * tmp$ret$2);
  }
  equals(o) {
    if (o instanceof Complex_0) {
      var that = o;
      return that.z3a_1 === this.z3a_1 && that.a3b_1 === this.a3b_1;
    }
    return false;
  }
  hashCode() {
    var bits = doubleToLongBits(this.z3a_1);
    var tmp = bits;
    // Inline function 'kotlin.Long.times' call
    var this_0 = doubleToLongBits(this.a3b_1);
    bits = tmp ^ multiply_0(this_0, fromInt_0(31));
    return convertToInt(bits) ^ convertToInt(shiftRight(bits, 32));
  }
  toString() {
    var tmp;
    if (this.a3b_1 >= 0) {
      tmp = '(' + this.z3a_1 + '+' + this.a3b_1 + 'i)';
    } else {
      tmp = '(' + this.z3a_1 + '' + this.a3b_1 + 'i)';
    }
    return tmp;
  }
  a3a() {
    return isNaN_3(this.z3a_1) || isNaN_3(this.a3b_1);
  }
}
class Companion_77 {}
class CircularAlgorithm extends AbstractAlgorithm {
  constructor() {
    super();
    this.i3b_1 = 0;
    this.j3b_1 = 0;
  }
  p1z() {
    return null;
  }
  iterator(model, root) {
    return model.depthFirstIterator(root);
  }
  startLayout(bounds, model, root, worker) {
  }
  depthFirstLayout(shape, parent, children, sumSizes, horizontalVanishingPoint, verticalVanishingPoint, accessor, worker) {
    var equalSize = true;
    var lastRadius = null;
    var circles = ArrayList.q1();
    var inductionVariable = 0;
    var last = children.length;
    while (inductionVariable < last) {
      var child = children[inductionVariable];
      inductionVariable = inductionVariable + 1 | 0;
      var circle = Circle_0.g3b();
      if (accessor.hasNoChildren(child)) {
        var tmp = circle;
        // Inline function 'kotlin.math.sqrt' call
        var x = accessor.getSize(child) / 3.141592653589793;
        // Inline function 'kotlin.math.max' call
        var b = Math.sqrt(x);
        tmp.u3a_1 = Math.max(0.0, b);
      } else {
        var s = ensureNotNull(accessor.getShape(child));
        if (!(s == null)) {
          if (isInterface(s, Ellipse2D)) {
            var b_0 = s;
            circle.u3a_1 = b_0.gm() / 2;
          } else {
            var tmp_0 = circle;
            // Inline function 'kotlin.math.sqrt' call
            var x_0 = accessor.getSize(child) / 3.141592653589793;
            // Inline function 'kotlin.math.max' call
            var b_1 = Math.sqrt(x_0);
            tmp_0.u3a_1 = Math.max(0.0, b_1);
          }
        } else {
          var tmp_1 = circle;
          // Inline function 'kotlin.math.sqrt' call
          var x_1 = accessor.getSize(child) / 3.141592653589793;
          // Inline function 'kotlin.math.max' call
          var b_2 = Math.sqrt(x_1);
          tmp_1.u3a_1 = Math.max(0.0, b_2);
        }
      }
      if (equalSize) {
        if (lastRadius == null) {
          lastRadius = circle.u3a_1;
        } else {
          if (!(lastRadius === circle.u3a_1)) {
            equalSize = false;
          }
        }
      }
      circles.c1(circle);
    }
    if (equalSize && circles.k1() > 1 && circles.k1() <= EqualCirclesInCircle_getInstance().k3b_1.length) {
      var coordinates = EqualCirclesInCircle_getInstance().k3b_1[circles.k1() - 1 | 0];
      var radii = EqualCirclesInCircle_getInstance().l3b_1[circles.k1() - 1 | 0];
      var scale = ensureNotNull(lastRadius);
      var inductionVariable_0 = 0;
      var last_0 = circles.k1() - 1 | 0;
      if (inductionVariable_0 <= last_0)
        do {
          var i = inductionVariable_0;
          inductionVariable_0 = inductionVariable_0 + 1 | 0;
          var circle_0 = circles.l1(i);
          circle_0.s3a_1 = coordinates[imul_0(i, 2)] / radii * scale;
          circle_0.t3a_1 = coordinates[imul_0(i, 2) + 1 | 0] / radii * scale;
        }
         while (inductionVariable_0 <= last_0);
    } else {
      pairPack(Companion_instance_77, circles);
    }
    var boundingCircle = boundingCircle_0(Companion_instance_77, circles);
    var _iterator__ex2g4s = circles.h1();
    while (_iterator__ex2g4s.i1()) {
      var child_0 = _iterator__ex2g4s.j1();
      child_0.s3a_1 = child_0.s3a_1 - boundingCircle.s3a_1;
      child_0.t3a_1 = child_0.t3a_1 - boundingCircle.t3a_1;
    }
    boundingCircle = boundingCircle_0(Companion_instance_77, circles);
    if (shape == null) {
      if (!(boundingCircle == null) && !isNaN_3(boundingCircle.u3a_1)) {
        var b_3 = boundingCircle.b3a();
        accessor.setShape(parent, new Double_0(b_3.g1h(), b_3.h1h(), b_3.gm(), b_3.hm()));
      } else {
        accessor.setShape(parent, null);
      }
    }
    var inductionVariable_1 = 0;
    var last_1 = children.length - 1 | 0;
    if (inductionVariable_1 <= last_1)
      do {
        var i_0 = inductionVariable_1;
        inductionVariable_1 = inductionVariable_1 + 1 | 0;
        var circle_1 = circles.l1(i_0);
        var child_1 = children[i_0];
        if (!isNaN_3(circle_1.u3a_1) && circle_1.u3a_1 > 0) {
          var b_4 = circle_1.b3a();
          accessor.setShape(child_1, new Double_0(b_4.g1h(), b_4.h1h(), b_4.gm(), b_4.hm()));
        } else {
          accessor.setShape(child_1, null);
        }
      }
       while (inductionVariable_1 <= last_1);
    return false;
  }
  breadthFirstLayout(shape, parent, children, sumSizes, horizontalVanishingPoint, verticalVanishingPoint, accessor, worker) {
    var bounds = shape.i1h();
    var cb = computeBoundingBox_0(this, children, accessor);
    if (!(cb == null)) {
      var tmp0 = bounds.gm();
      // Inline function 'kotlin.math.min' call
      var b = bounds.hm();
      var size = Math.min(tmp0, b);
      var xs = size / cb.gm();
      var ys = size / cb.hm();
      var inductionVariable = 0;
      var last = children.length;
      while (inductionVariable < last) {
        var node = children[inductionVariable];
        inductionVariable = inductionVariable + 1 | 0;
        var tx = -cb.p1h() * xs + bounds.g1h();
        var ty = -cb.r1h() * ys + bounds.h1h();
        var tmp0_subject = this.j3b_1;
        if (tmp0_subject === 0)
          tx = tx + (bounds.gm() - size) / 2;
        else if (tmp0_subject === 2)
          tx = tx + (bounds.gm() - size);
        var tmp1_subject = this.i3b_1;
        if (tmp1_subject === 0)
          ty = ty + (bounds.hm() - size) / 2;
        else if (tmp1_subject === 3)
          ty = ty + (bounds.hm() - size);
        var at = AffineTransform.m1j(xs, 0.0, 0.0, ys, tx, ty);
        var s = accessor.getShape(node);
        if (!(s == null)) {
          var b1 = s.i1h();
          var x = ensureNotNull(at.c1k(b1));
          var b_0 = x.i1h();
          accessor.setShape(node, new Double_0(b_0.g1h(), b_0.h1h(), b_0.gm(), b_0.hm()));
        } else {
          accessor.setShape(node, null);
        }
      }
    } else {
      var inductionVariable_0 = 0;
      var last_0 = children.length;
      while (inductionVariable_0 < last_0) {
        var node_0 = children[inductionVariable_0];
        inductionVariable_0 = inductionVariable_0 + 1 | 0;
        accessor.setShape(node_0, null);
      }
    }
    return false;
  }
  finishLayout(bounds, model, root) {
  }
  isCompatible(shape) {
    var tmp;
    if (!(shape == null) ? isInterface(shape, Rectangle2D) : false) {
      tmp = true;
    } else {
      tmp = !(shape == null) ? isInterface(shape, Ellipse2D) : false;
    }
    return tmp;
  }
  r2k() {
    return true;
  }
  s2k() {
    return true;
  }
  t2k() {
    return true;
  }
  u2k() {
    return false;
  }
  v2k() {
    return false;
  }
  b39() {
    return 'Circular';
  }
  toString() {
    return this.b39();
  }
}
class AscendingTreeMapNodeComparator {
  constructor(model, universal) {
    this.m3b_1 = model;
    this.n3b_1 = universal;
  }
  i2m(a, b) {
    var column = this.m3b_1.settings.colorColumn;
    return this.n3b_1.compare(this.m3b_1.getAggregateValue(a, column), this.m3b_1.getAggregateValue(b, column));
  }
  compare(a, b) {
    var tmp = (a == null ? true : !(a == null)) ? a : THROW_CCE();
    return this.i2m(tmp, (b == null ? true : !(b == null)) ? b : THROW_CCE());
  }
}
class DescendingTreeMapNodeComparator {
  constructor(model, universal) {
    this.o3b_1 = model;
    this.p3b_1 = universal;
  }
  i2m(a, b) {
    var column = this.o3b_1.settings.colorColumn;
    return this.p3b_1.compare(this.o3b_1.getAggregateValue(b, column), this.o3b_1.getAggregateValue(a, column));
  }
  compare(a, b) {
    var tmp = (a == null ? true : !(a == null)) ? a : THROW_CCE();
    return this.i2m(tmp, (b == null ? true : !(b == null)) ? b : THROW_CCE());
  }
}
class Companion_78 {
  q3b(model, nodes, sortOrder) {
    // Inline function 'kotlin.collections.copyOf' call
    // Inline function 'kotlin.js.asDynamic' call
    var copy = nodes.slice();
    var universal = new UniversalComparator();
    var comparator;
    var tmp;
    switch (sortOrder.g3_1) {
      case 0:
        tmp = new AscendingTreeMapNodeComparator(model, universal);
        break;
      case 1:
        tmp = new DescendingTreeMapNodeComparator(model, universal);
        break;
      default:
        noWhenBranchMatchedException();
        break;
    }
    comparator = tmp;
    sortedWith(copy, comparator);
    return copy;
  }
}
class Ordering {}
class ColorOrdering {
  b2z(model, nodes, sortOrder) {
    return Companion_instance_78.q3b(model, nodes, sortOrder);
  }
  toString() {
    return 'By color';
  }
}
class SurroundLabeling extends AbstractLabeling {
  constructor() {
    super();
    this.x3b_1 = null;
    this.y3b_1 = 0.0;
    this.z3b_1 = 0.0;
  }
  e2l(model) {
    var font = ensureNotNull(model).settings.getDefaultColumnSettings().getHeaderFont();
    return numberToDouble(!(font == null) ? getFontSize(font) + 2 : 0);
  }
  f2l(model) {
    return 3.0;
  }
  d2l(model, shape, node) {
    var tmp;
    var tmp_0;
    if (!ensureNotNull(model).isRoot(node)) {
      var tmp_1 = model.getShape(node);
      tmp_0 = !(tmp_1 == null) ? isInterface(tmp_1, Rectangle2D) : false;
    } else {
      tmp_0 = false;
    }
    if (tmp_0) {
      var rectangle = (!(shape == null) ? isInterface(shape, Rectangle2D) : false) ? shape : THROW_CCE();
      var preferredHeight = this.a3c(model, null, rectangle, node);
      var allocatedHeight = computeAllocatedHeight(this, preferredHeight, rectangle);
      var thickness = computeThickness(this, model, rectangle, node);
      var width = rectangle.gm() - 2 * thickness;
      var height = rectangle.hm() - (thickness + allocatedHeight);
      var tmp_2;
      if (width > 0 && height > 0) {
        tmp_2 = Double_3.z1h(rectangle.g1h() + thickness, rectangle.h1h() + allocatedHeight, width, height);
      } else {
        tmp_2 = rectangle;
      }
      tmp = tmp_2;
    } else {
      tmp = shape;
    }
    return tmp;
  }
  a3c(model, g2, rectangle, node) {
    var height = 0.0;
    var columnSettings = model.settings.getColumnSettings(model.getGroupByColumn(node));
    var headerFont = columnSettings.getHeaderFont();
    if (!(headerFont == null) && !(model.getLabelName(node) == null)) {
      try {
        if (!(rectangle == null) && rectangle.hm() > 3) {
          var headerRenderer = DefaultTreeMapHeaderRenderer.l36();
          headerRenderer.setFont(headerFont);
          var elabel = headerRenderer.q3h(model, node, Dimension.fm(numberToInt(rectangle.gm()), numberToInt(rectangle.hm())));
          var pf = ensureNotNull(this.x3b_1).g3u(elabel, g2, numberToInt(rectangle.gm()), numberToInt(rectangle.hm()));
          return pf.t2l();
        }
      } catch ($p) {
        if ($p instanceof NullPointerException) {
          var e = $p;
          printStackTrace(e);
          height = 0.0;
        } else {
          throw $p;
        }
      }
    } else {
      height = 0.0;
    }
    return height;
  }
  v2l(g2, bounds, node, view, pass, passes) {
    if (pass === 0) {
      var model = ensureNotNull(view.h2l());
      var column = model.getGroupByColumn(node);
      var columnSettings = model.settings.getColumnSettings(column);
      var headerFont = columnSettings.getHeaderFont();
      if (!(headerFont == null) && !(model.getLabelName(node) == null)) {
        var shape = ensureNotNull(model.getShape(node));
        var rectangle = shape.i1h();
        var position;
        if (isInterface(shape, Arc2D)) {
          position = Companion_instance_67.b2l(shape);
        } else {
          position = null;
        }
        var preferedHeight = this.a3c(model, g2, rectangle, node);
        var height = computeAllocatedHeight(this, preferedHeight, rectangle);
        if (!(rectangle == null) || (!(position == null) && height > 0)) {
          var screenRectangle = view.y37(rectangle);
          var fontSize = getFontSize(headerFont) * view.s2l();
          var rect;
          var elabel;
          if (fontSize >= 5.0) {
            var foreground = this.u3b(node, model);
            elabel = ensureNotNull(view.t37()).q3h(model, node, Dimension.fm(bounds.c1w_1, bounds.d1w_1));
            var pf = g2.o2l(elabel, bounds.c1w_1, bounds.d1w_1);
            var insets = ensureNotNull(columnSettings.getHeaderInsets());
            elabel.setInsets(numberToInt(insets.t1x_1 * view.s2l()), numberToInt(insets.u1x_1 * view.s2l()), numberToInt(insets.v1x_1 * view.s2l()), numberToInt(insets.w1x_1 * view.s2l()));
            var background = this.w3b(node, model);
            var derivedFont;
            var tmp;
            if (!(fontSize === getFontSize(headerFont))) {
              tmp = headerFont.q29(fontSize);
            } else {
              tmp = headerFont;
            }
            derivedFont = tmp;
            elabel.setFont(derivedFont);
            elabel.setForeground(ensureNotNull(foreground));
            elabel.setBackground(ensureNotNull(background));
            var size = pf.q2l();
            if (!(position == null)) {
              var tmp0 = size.gm();
              // Inline function 'kotlin.math.min' call
              var b = screenRectangle.gm();
              var w = Math.min(tmp0, b);
              if (isInterface(shape, Arc2D)) {
                var arc = shape;
                var startPoint = arc.a1l();
                var endPoint = arc.b1l();
                var s = Double_2.c1l(view.z37(startPoint.g1h()), view.a38(startPoint.h1h()));
                var e = Double_2.c1l(view.z37(endPoint.g1h()), view.a38(endPoint.h1h()));
                var tmp0_0 = s.t1v(e);
                // Inline function 'kotlin.math.min' call
                var b_0 = w;
                w = Math.min(tmp0_0, b_0);
              }
              var tmp0_1 = size.hm();
              // Inline function 'kotlin.math.min' call
              var b_1 = screenRectangle.hm();
              var h = Math.min(tmp0_1, b_1);
              var x = view.z37(position.g1h()) - w / 2;
              var y = view.a38(position.h1h()) - h / 2;
              rect = Double_3.z1h(x, y, w, h).u1h(bounds);
            } else {
              var nestedShapeWorld = model.getNestedShape(node);
              var nestedShapeWorldBounds = ensureNotNull(nestedShapeWorld).i1h();
              var preferredHeight = this.a3c(model, null, rectangle, node);
              var allocatedHeight = computeAllocatedHeight(this, preferredHeight, rectangle);
              var thickness = computeThickness(this, model, rectangle, node);
              rect = view.y37(Double_3.z1h(nestedShapeWorldBounds.g1h() + thickness, rectangle.h1h(), nestedShapeWorldBounds.gm() - 2 * thickness, allocatedHeight));
            }
          } else {
            elabel = null;
            var nestedShapeWorld_0 = model.getNestedShape(node);
            var nestedShapeWorldBounds_0 = ensureNotNull(nestedShapeWorld_0).i1h();
            var preferredHeight_0 = this.a3c(model, null, rectangle, node);
            var allocatedHeight_0 = computeAllocatedHeight(this, preferredHeight_0, rectangle);
            var thickness_0 = computeThickness(this, model, rectangle, node);
            rect = view.y37(Double_3.z1h(nestedShapeWorldBounds_0.g1h() + thickness_0, rectangle.h1h(), nestedShapeWorldBounds_0.gm() - 2 * thickness_0, allocatedHeight_0));
          }
          if (isInterface(shape, Rectangle2D)) {
            var backgroundColor = this.v3b(node, model);
            g2.l2m(backgroundColor);
            g2.w38(rect.g1h(), rect.h1h(), rect.gm(), rect.hm());
          }
          if (!(elabel == null) && rect.gm() > 8) {
            var b_2 = rect.i1h();
            elabel.setDesiredWidth(numberToInt(b_2.gm() - elabel.getInsetLeft() - elabel.getInsetRight()));
            elabel.setDesiredHeight(numberToInt(b_2.hm() - elabel.getInsetTop() - elabel.getInsetBottom()));
            var font = ensureNotNull(elabel.getFont());
            var pf_0 = g2.o2l(elabel, numberToInt(b_2.gm()), numberToInt(b_2.hm()));
            var shrink = true;
            var expand = false;
            var tmp_0;
            if (!(columnSettings.getHeaderRendering() === Rendering_WordWrap_getInstance())) {
              var preferredSize = pf_0.q2l();
              var scaleY = (b_2.hm() - elabel.getInsetTop() - elabel.getInsetBottom()) / (preferredSize.hm() - elabel.getInsetTop() - elabel.getInsetBottom());
              tmp_0 = getFontSize(headerFont) * view.s2l() * scaleY * 1;
            } else {
              tmp_0 = g2.p2l(elabel, pf_0, font, b_2, 0.99, expand);
            }
            fontSize = tmp_0;
            if (!shrink) {
              var tmp0_2 = getFontSize(font);
              // Inline function 'kotlin.math.max' call
              var b_3 = fontSize;
              fontSize = Math.max(tmp0_2, b_3);
            }
            if (!expand) {
              var tmp0_3 = getFontSize(font);
              // Inline function 'kotlin.math.min' call
              var b_4 = fontSize;
              fontSize = Math.min(tmp0_3, b_4);
            }
            var derivedFont_0;
            var tmp_1;
            if (!(fontSize === getFontSize(ensureNotNull(elabel.getFont())))) {
              tmp_1 = ensureNotNull(elabel.getFont()).q29(fontSize);
            } else {
              tmp_1 = ensureNotNull(elabel.getFont());
            }
            derivedFont_0 = tmp_1;
            elabel.setFont(derivedFont_0);
            g2.u2l(elabel, numberToInt(b_2.g1h()), numberToInt(b_2.h1h()), numberToInt(b_2.gm()), numberToInt(b_2.hm()));
          }
        }
      }
    }
  }
  v3b(node, model) {
    return model.settings.getColumnSettings(model.getGroupByColumn(node)).getHeaderBackground();
  }
  u3b(node, model) {
    return model.settings.getColumnSettings(model.getGroupByColumn(node)).getHeaderForeground();
  }
  w3b(node, model) {
    return model.settings.getColumnSettings(model.getGroupByColumn(node)).getHeaderEffectColor();
  }
  toString() {
    return 'Surround';
  }
}
class ColoredSurroundLabeling extends SurroundLabeling {
  u3b(node, model) {
    var foreground = model.settings.getColumnSettings(model.getGroupByColumn(node)).getHeaderForeground();
    var background = this.v3b(node, model);
    if (!(background == null)) {
      foreground = ensureNotNull(model.settings.getColumnSettings(model.getGroupByColumn(node)).getLabelingContrastEnhancement()).z1x(ensureNotNull(foreground), background);
    }
    return foreground;
  }
  w3b(node, model) {
    return model.settings.getColumnSettings(model.getGroupByColumn(node)).getHeaderEffectColor();
  }
  v3b(node, model) {
    return model.getColor(node);
  }
  toString() {
    return 'Surround (Colored)';
  }
}
class CombinationGenerator {
  b3c(n, r) {
    var rfact = 1;
    var nfact = 1;
    var nrfact = 1;
    var temp1 = n - r | 0;
    var temp2 = r;
    if (r > (n - r | 0)) {
      temp1 = r;
      temp2 = n - r | 0;
    }
    var inductionVariable = 1;
    if (inductionVariable <= n)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        if (i <= temp2) {
          rfact = imul_0(rfact, i);
          nrfact = imul_0(nrfact, i);
        } else if (i <= temp1) {
          nrfact = imul_0(nrfact, i);
        }
        nfact = imul_0(nfact, i);
      }
       while (!(i === n));
    return nfact / imul_0(rfact, nrfact);
  }
  c3c(temp, n, r) {
    var m = r;
    var maxVal = n;
    while (temp[m - 1 | 0] === maxVal) {
      m = m - 1 | 0;
      maxVal = maxVal - 1 | 0;
    }
    var _index_0__fvwizt = m - 1 | 0;
    temp[_index_0__fvwizt] = temp[_index_0__fvwizt] + 1 | 0;
    var inductionVariable = m;
    if (inductionVariable < r)
      do {
        var j = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        temp[j] = temp[j - 1 | 0] + 1 | 0;
      }
       while (inductionVariable < r);
    return temp;
  }
}
class CountAggregation {
  p2y(values) {
    var count = 0;
    var inductionVariable = 0;
    var last = values.length;
    while (inductionVariable < last) {
      var value = values[inductionVariable];
      inductionVariable = inductionVariable + 1 | 0;
      if (isFinite_0(value)) {
        count = count + 1 | 0;
      }
    }
    return count;
  }
  o2z() {
    return false;
  }
  toString() {
    return 'Count';
  }
}
class Cushion {
  static j30(model, left, right, width, top, bottom, height) {
    var $this = createThis(this);
    init_com_treemap_Cushion($this);
    var h4 = 4 * model.settings.getLightSourceHeight();
    var wf;
    var tmp;
    if (width <= 0) {
      tmp = 0.0;
    } else {
      tmp = h4 / width;
    }
    wf = tmp;
    $this.u2z_1[2] = wf * (right + left | 0);
    $this.u2z_1[0] = -wf;
    var hf;
    var tmp_0;
    if (height <= 0) {
      tmp_0 = 0.0;
    } else {
      tmp_0 = h4 / height;
    }
    hf = tmp_0;
    $this.u2z_1[3] = +(hf * (bottom + top | 0));
    $this.u2z_1[1] = -hf;
    return $this;
  }
  static i30(master, model, left, right, width, top, bottom, height) {
    var $this = createThis(this);
    init_com_treemap_Cushion($this);
    if (!(master == null)) {
      var h4 = 4 * ensureNotNull(model).settings.getLightSourceHeight();
      var wf;
      var tmp;
      if (width <= 0) {
        tmp = 0.0;
      } else {
        tmp = h4 / width;
      }
      wf = tmp;
      $this.u2z_1[2] = master.u2z_1[2] + wf * (right + left | 0);
      $this.u2z_1[0] = master.u2z_1[0] - wf;
      var hf;
      var tmp_0;
      if (height <= 0) {
        tmp_0 = 0.0;
      } else {
        tmp_0 = h4 / height;
      }
      hf = tmp_0;
      $this.u2z_1[3] = master.u2z_1[3] + hf * (bottom + top | 0);
      $this.u2z_1[1] = master.u2z_1[1] - hf;
    }
    return $this;
  }
  v2z(model, color, x, y, width, height, raster) {
    if (!(color == null)) {
      var bottom = y + height | 0;
      var right = x + width | 0;
      // Inline function 'kotlin.UByte.toDouble' call
      // Inline function 'kotlin.UByte.toInt' call
      var this_0 = getURed(color);
      var tmp$ret$0 = _UByte___get_data__impl__jof9qr(this_0) & 255;
      var colR = uintToDouble(tmp$ret$0);
      // Inline function 'kotlin.UByte.toDouble' call
      // Inline function 'kotlin.UByte.toInt' call
      var this_1 = getUGreen(color);
      var tmp$ret$2 = _UByte___get_data__impl__jof9qr(this_1) & 255;
      var colG = uintToDouble(tmp$ret$2);
      // Inline function 'kotlin.UByte.toDouble' call
      // Inline function 'kotlin.UByte.toInt' call
      var this_2 = getUBlue(color);
      var tmp$ret$4 = _UByte___get_data__impl__jof9qr(this_2) & 255;
      var colB = uintToDouble(tmp$ret$4);
      var ia = ensureNotNull(model).settings.getLightSourceAmbient();
      var is = 1 - model.settings.getLightSourceAmbient();
      var lx = model.normalizedLightSourceX;
      var ly = model.normalizedLightSourceY;
      var lz = model.normalizedLightSourceZ;
      var s0 = 2 * this.u2z_1[0];
      var s1 = 2 * this.u2z_1[1];
      var s2 = this.u2z_1[2];
      var s3 = this.u2z_1[3];
      if (!raster.d2a()) {
        var base = 0;
        var data = new Int32Array(imul_0(width, height));
        var inductionVariable = y;
        if (inductionVariable < bottom)
          do {
            var iy = inductionVariable;
            inductionVariable = inductionVariable + 1 | 0;
            var ny = -(s1 * (iy + 0.5) + s3);
            var inductionVariable_0 = x;
            if (inductionVariable_0 < right)
              do {
                var ix = inductionVariable_0;
                inductionVariable_0 = inductionVariable_0 + 1 | 0;
                var nx = -(s0 * (ix + 0.5) + s2);
                var tmp = nx * lx + ny * ly + lz;
                // Inline function 'kotlin.math.sqrt' call
                var x_0 = nx * nx + ny * ny + 1.0;
                // Inline function 'kotlin.math.min' call
                var b = tmp / Math.sqrt(x_0);
                var cosa = Math.min(1.0, b);
                // Inline function 'kotlin.math.max' call
                var b_0 = is * cosa + ia;
                // Inline function 'kotlin.math.min' call
                var b_1 = Math.max(0.0, b_0);
                var pixel = Math.min(1.0, b_1);
                var red = numberToInt(colR * pixel);
                var green = numberToInt(colG * pixel);
                var blue = numberToInt(colB * pixel);
                // Inline function 'kotlin.UByte.toInt' call
                var this_3 = getUAlpha(color);
                var alpha = _UByte___get_data__impl__jof9qr(this_3) & 255;
                data[base] = (((alpha << 24) + (red << 16) | 0) + (green << 8) | 0) + blue | 0;
                base = base + 1 | 0;
              }
               while (inductionVariable_0 < right);
          }
           while (inductionVariable < bottom);
        raster.c2a(0, 0, width, height, data);
      } else {
        var base_0 = 0;
        var data_0 = new Int32Array(imul_0(width, height) << 2);
        var inductionVariable_1 = y;
        if (inductionVariable_1 < bottom)
          do {
            var iy_0 = inductionVariable_1;
            inductionVariable_1 = inductionVariable_1 + 1 | 0;
            var ny_0 = -(s1 * (iy_0 + 0.5) + s3);
            var inductionVariable_2 = x;
            if (inductionVariable_2 < right)
              do {
                var ix_0 = inductionVariable_2;
                inductionVariable_2 = inductionVariable_2 + 1 | 0;
                var nx_0 = -(s0 * (ix_0 + 0.5) + s2);
                var tmp_0 = nx_0 * lx + ny_0 * ly + lz;
                // Inline function 'kotlin.math.sqrt' call
                var x_1 = nx_0 * nx_0 + ny_0 * ny_0 + 1.0;
                // Inline function 'kotlin.math.min' call
                var b_2 = tmp_0 / Math.sqrt(x_1);
                var cosa_0 = Math.min(1.0, b_2);
                // Inline function 'kotlin.math.max' call
                var b_3 = is * cosa_0 + ia;
                // Inline function 'kotlin.math.min' call
                var b_4 = Math.max(0.0, b_3);
                var pixel_0 = Math.min(1.0, b_4);
                var red_0 = numberToInt(colR * pixel_0);
                var green_0 = numberToInt(colG * pixel_0);
                var blue_0 = numberToInt(colB * pixel_0);
                // Inline function 'kotlin.UByte.toInt' call
                var this_4 = getUAlpha(color);
                var alpha_0 = _UByte___get_data__impl__jof9qr(this_4) & 255;
                var _unary__edvuaz = base_0;
                base_0 = _unary__edvuaz + 1 | 0;
                data_0[_unary__edvuaz] = red_0;
                var _unary__edvuaz_0 = base_0;
                base_0 = _unary__edvuaz_0 + 1 | 0;
                data_0[_unary__edvuaz_0] = green_0;
                var _unary__edvuaz_1 = base_0;
                base_0 = _unary__edvuaz_1 + 1 | 0;
                data_0[_unary__edvuaz_1] = blue_0;
                var _unary__edvuaz_2 = base_0;
                base_0 = _unary__edvuaz_2 + 1 | 0;
                data_0[_unary__edvuaz_2] = alpha_0;
              }
               while (inductionVariable_2 < right);
          }
           while (inductionVariable_1 < bottom);
        raster.c2a(0, 0, width, height, data_0);
      }
    }
  }
  m30(model, color, x, y, width, height) {
    var tmp;
    if (!(color == null)) {
      var bottom = y + height | 0;
      var right = x + width | 0;
      // Inline function 'kotlin.UByte.toDouble' call
      // Inline function 'kotlin.UByte.toInt' call
      var this_0 = getURed(color);
      var tmp$ret$0 = _UByte___get_data__impl__jof9qr(this_0) & 255;
      var colR = uintToDouble(tmp$ret$0);
      // Inline function 'kotlin.UByte.toDouble' call
      // Inline function 'kotlin.UByte.toInt' call
      var this_1 = getUGreen(color);
      var tmp$ret$2 = _UByte___get_data__impl__jof9qr(this_1) & 255;
      var colG = uintToDouble(tmp$ret$2);
      // Inline function 'kotlin.UByte.toDouble' call
      // Inline function 'kotlin.UByte.toInt' call
      var this_2 = getUBlue(color);
      var tmp$ret$4 = _UByte___get_data__impl__jof9qr(this_2) & 255;
      var colB = uintToDouble(tmp$ret$4);
      var ia = model.settings.getLightSourceAmbient();
      var is = 1 - model.settings.getLightSourceAmbient();
      var lx = model.normalizedLightSourceX;
      var ly = model.normalizedLightSourceY;
      var lz = model.normalizedLightSourceZ;
      var s0 = 2 * this.u2z_1[0];
      var s1 = 2 * this.u2z_1[1];
      var s2 = this.u2z_1[2];
      var s3 = this.u2z_1[3];
      var iy = (y + bottom | 0) / 2 | 0;
      var ix = (x + right | 0) / 2 | 0;
      var nx = -(s0 * (ix + 0.5) + s2);
      var ny = -(s1 * (iy + 0.5) + s3);
      var tmp_0 = nx * lx + ny * ly + lz;
      // Inline function 'kotlin.math.sqrt' call
      var x_0 = nx * nx + ny * ny + 1.0;
      // Inline function 'kotlin.math.min' call
      var b = tmp_0 / Math.sqrt(x_0);
      var cosa = Math.min(1.0, b);
      // Inline function 'kotlin.math.max' call
      var b_0 = is * cosa + ia;
      // Inline function 'kotlin.math.min' call
      var b_1 = Math.max(0.0, b_0);
      var pixel = Math.min(1.0, b_1);
      var red = numberToInt(colR * pixel);
      var green = numberToInt(colG * pixel);
      var blue = numberToInt(colB * pixel);
      tmp = colorOf_1(red, green, blue);
    } else {
      tmp = null;
    }
    return tmp;
  }
}
class CushionRendering extends AbstractRendering {
  constructor() {
    super();
    this.h3c_1 = false;
  }
  paintNode(g, view, node, pass, bounds, shape) {
    var completed = true;
    var model = ensureNotNull(view.h2l());
    if (pass === 0) {
      if (!model.filter.qk(node) && !model.search.qk(node)) {
        if (shape instanceof TextShape) {
          var textShape = shape;
          var cushionColor = model.getCushionColor(node);
          var color = !(cushionColor == null) ? cushionColor : model.getColor(node);
          if (!(color == null)) {
            g.l2m(color);
            if (textShape.m1x()) {
              g.m2m(shape);
            } else {
              g.l3c(ensureNotNull(textShape.l1x_1));
              var bounds2D = textShape.i1h();
              g.m3c(textShape.j1x_1, bounds2D.g1h(), bounds2D.t1h());
            }
          }
        } else {
          var image;
          var tmp;
          var tmp_0;
          var tmp_1;
          if (isInterface(shape, Rectangle2D)) {
            tmp_1 = bounds.gm() > 4;
          } else {
            tmp_1 = false;
          }
          if (tmp_1) {
            tmp_0 = bounds.hm() > 4;
          } else {
            tmp_0 = false;
          }
          if (tmp_0) {
            tmp = true;
          } else {
            var tmp_2;
            var tmp_3;
            if (!isInterface(shape, Rectangle2D)) {
              tmp_3 = bounds.gm() > 6;
            } else {
              tmp_3 = false;
            }
            if (tmp_3) {
              tmp_2 = bounds.hm() > 6;
            } else {
              tmp_2 = false;
            }
            tmp = tmp_2;
          }
          var cushionEnabled = tmp;
          var tmp_4;
          if (cushionEnabled) {
            var tmp_5;
            try {
              tmp_5 = model.getCushionImage(node);
            } catch ($p) {
              var tmp_6;
              if ($p instanceof Error) {
                var e = $p;
                printStackTrace(e);
                tmp_6 = null;
              } else {
                throw $p;
              }
              tmp_5 = tmp_6;
            }
            tmp_4 = tmp_5;
          } else {
            tmp_4 = null;
          }
          image = tmp_4;
          if (!(image == null)) {
            completed = paintCushion(this, g, view, image, bounds, shape);
          } else {
            var cushionColor_0 = model.getCushionColor(node);
            var color_0 = !(cushionColor_0 == null) ? cushionColor_0 : model.getColor(node);
            if (!(color_0 == null)) {
              g.l2m(color_0);
              g.m2m(shape);
            }
          }
        }
      } else {
        var color_1 = view.k2m();
        if (!(color_1 == null)) {
          g.l2m(color_1);
          g.m2m(shape);
        }
      }
    } else if (pass === 1) {
      if (isInterface(shape, Rectangle2D)) {
        if (!model.filter.qk(node) && !model.search.qk(node)) {
          var bottom = shape;
          var tmp_7 = this.getRenderedShape(view, model, node, shape);
          var top = isInterface(tmp_7, Rectangle2D) ? tmp_7 : THROW_CCE();
          var image_0;
          var cushionEnabled_0 = bounds.gm() > 4 && bounds.hm() > 4;
          var tmp_8;
          if (cushionEnabled_0) {
            var tmp_9;
            try {
              tmp_9 = model.getCushionImage(node);
            } catch ($p) {
              var tmp_10;
              if ($p instanceof Error) {
                var e_0 = $p;
                printStackTrace(e_0);
                tmp_10 = null;
              } else {
                throw $p;
              }
              tmp_9 = tmp_10;
            }
            tmp_8 = tmp_9;
          } else {
            tmp_8 = null;
          }
          image_0 = tmp_8;
          if (!(image_0 == null)) {
            var b = top.i1h();
            completed = paintCushion(this, g, view, image_0, Rectangle.from(numberToInt(b.g1h()), numberToInt(b.h1h()), numberToInt(b.gm()), numberToInt(b.hm())), top);
          } else {
            var cushionColor_1 = model.getCushionColor(node);
            g.l2m(!(cushionColor_1 == null) ? cushionColor_1 : model.getColor(node));
            g.m2m(shape);
          }
          var color_2 = ensureNotNull(model.getColor(node));
          var g2 = g.i3c();
          g2.r1x();
          g2.m1v(top.p1h(), top.t1h());
          g2.n1v(bottom.g1h(), bottom.t1h());
          g2.n1v(bottom.s1h(), bottom.t1h());
          g2.n1v(top.s1h(), top.t1h());
          g2.q1v();
          g2.q1x(darker(color_2));
          g2.s1x();
          g2.r1x();
          g2.m1v(top.s1h(), top.t1h());
          g2.n1v(bottom.s1h(), bottom.t1h());
          g2.n1v(bottom.s1h(), bottom.r1h());
          g2.n1v(top.s1h(), top.r1h());
          g2.q1v();
          g2.q1x(darker(color_2));
          g2.s1x();
          if (this.h3c_1) {
            g.y2m(g.r2w().a28());
            g.j3c(top.g1h(), top.h1h(), top.gm(), top.hm());
            g.k3c(numberToInt(top.p1h()), numberToInt(top.t1h()), numberToInt(bottom.g1h()), numberToInt(bottom.t1h()));
            g.k3c(numberToInt(top.s1h()), numberToInt(top.t1h()), numberToInt(bottom.s1h()), numberToInt(bottom.t1h()));
            g.k3c(numberToInt(top.s1h()), numberToInt(top.r1h()), numberToInt(bottom.s1h()), numberToInt(bottom.r1h()));
          }
        }
      }
    }
    return completed;
  }
  paintBorder(g2, view, node, pass, bounds, shape) {
  }
  toString() {
    return 'Cushion';
  }
}
class DefaultAlgorithmFactory_0 {
  constructor() {
    DefaultAlgorithmFactory_instance = this;
    this.instance = Companion_getInstance_75().instance;
  }
  o21() {
    return this.instance;
  }
}
class DefaultTreeMap extends AbstractTreeMap {
  static q3c() {
    var $this = this.e2n();
    $this.f2n($this.r3c());
    $this.k2n($this.s3c($this.view));
    return $this;
  }
  static t3c(model) {
    var $this = this.q3c();
    $this.o2n(model);
    return $this;
  }
  q2n() {
    return ensureNotNull(this.view).q2n();
  }
  u3c(dataFrame) {
    this.o2n(this.v3c(dataFrame));
  }
  v3c(dataFrame) {
    return new DefaultTreeMapModel(dataFrame);
  }
  r3c() {
    return new DefaultTreeMapView();
  }
  s3c(view) {
    return new DefaultTreeMapController(ensureNotNull(view));
  }
  get component() {
    return this.q2n();
  }
}
class Companion_79 {
  constructor() {
    this.w3c_1 = 'Tahoma, Trebuchet MS, Arial, Helvetica, sans-serif';
  }
  getDefaultTooltipFont(fontFactory) {
    return findFont(this, 'Tahoma, Trebuchet MS, Arial, Helvetica, sans-serif', 0, 12.0, fontFactory.l1z(), fontFactory);
  }
  getDefaultLabelingFont(fontFactory) {
    return findFont(this, 'Tahoma, Trebuchet MS, Arial, Helvetica, sans-serif', 0, 12.0, fontFactory.l1z(), fontFactory);
  }
  getDefaultHeaderFont(fontFactory) {
    return findFont(this, 'Tahoma, Trebuchet MS, Arial, Helvetica, sans-serif', 0, 13.0, fontFactory.l1z(), fontFactory);
  }
}
class DefaultTreeMapColumnSettings extends AbstractTreeMapColumnSettings {
  constructor(colorFactory, fontFactory, colorMapFactory) {
    super();
    this.x3c_1 = new EnumProperties(values_2());
    this.borderThickness = SimpleBoundedInterval.qp(0.0, 0.0, 10.0);
    this.format = null;
    this.colorMap = null;
    this.y3c_1 = colorFactory;
    this.z3c_1 = fontFactory;
    this._algorithm = this.x3c_1.cz(TreeMapColumnPropertyType_algorithm_getInstance(), new MutableAlgorithmProperty(Companion_getInstance_75().instance.getDefault()));
    this.algorithm = PropertySingleSelection.s14(this._algorithm);
    this._aggregation = this.x3c_1.bz(TreeMapColumnPropertyType_aggregation_getInstance(), Companion_getInstance_74().c38().e38());
    this._scale = this.x3c_1.bz(TreeMapColumnPropertyType_scale_getInstance(), Companion_getInstance_93().k3d_1.m3d());
    this._nesting = this.x3c_1.bz(TreeMapColumnPropertyType_nesting_getInstance(), Companion_getInstance_86().c38().e38());
    this._ordering = this.x3c_1.bz(TreeMapColumnPropertyType_ordering_getInstance(), Companion_getInstance_88().c38().e38());
    this.orderingDirection = this.x3c_1.bz(TreeMapColumnPropertyType_orderingDirection_getInstance(), SortOrder_Descending_getInstance());
    this.orderingHorizontalVanishingPoint = this.x3c_1.bz(TreeMapColumnPropertyType_orderingHorizontalVanishingPoint_getInstance(), 4);
    this.orderingVerticalVanishingPoint = this.x3c_1.bz(TreeMapColumnPropertyType_orderingVerticalVanishingPoint_getInstance(), 3);
    this._labeling = this.x3c_1.bz(TreeMapColumnPropertyType_labeling_getInstance(), Companion_getInstance_84().c38().e38());
    this._labelingFont = this.x3c_1.bz(TreeMapColumnPropertyType_labelingFont_getInstance(), Companion_instance_79.getDefaultLabelingFont(fontFactory));
    this._labelingForeground = this.x3c_1.bz(TreeMapColumnPropertyType_labelingForeground_getInstance(), colorOf_1(32, 32, 32));
    this._labelingBackground = this.x3c_1.bz(TreeMapColumnPropertyType_labelingEffectColor_getInstance(), null);
    this.labelingEffect = this.x3c_1.bz(TreeMapColumnPropertyType_labelingEffect_getInstance(), null);
    this.labelingHorizontalAlignment = this.x3c_1.bz(TreeMapColumnPropertyType_labelingHorizontalAlignment_getInstance(), 2);
    this.labelingVerticalAlignment = this.x3c_1.bz(TreeMapColumnPropertyType_labelingVerticalAlignment_getInstance(), 1);
    this.labelingRendering = this.x3c_1.bz(TreeMapColumnPropertyType_labelingRendering_getInstance(), Rendering_Clip_getInstance());
    this.labelingMinimumCharactersToDisplay = this.x3c_1.bz(TreeMapColumnPropertyType_labelingMinimumCharactersToDisplay_getInstance(), 1);
    this.labelingEffectOpacity = this.x3c_1.bz(TreeMapColumnPropertyType_labelingEffectOpacity_getInstance(), null);
    this.labelingShrinkTextToFitShape = this.x3c_1.bz(TreeMapColumnPropertyType_labelingShrinkTextToFitShape_getInstance(), false);
    this.labelingResizeTextToFitShape = this.x3c_1.bz(TreeMapColumnPropertyType_labelingResizeTextToFitShape_getInstance(), false);
    this.labelingFloat = this.x3c_1.bz(TreeMapColumnPropertyType_labelingFloat_getInstance(), false);
    this.labelingContrastEnhancement = this.x3c_1.bz(TreeMapColumnPropertyType_labelingContrastEnhancement_getInstance(), Brightness_getInstance());
    this.nestingAmount = this.x3c_1.bz(TreeMapColumnPropertyType_nestingAmount_getInstance(), 1.0);
    this.nestingBackground = this.x3c_1.bz(TreeMapColumnPropertyType_nestingBackground_getInstance(), colorOf_1(180, 180, 180));
    this._headerFont = this.x3c_1.bz(TreeMapColumnPropertyType_headerFont_getInstance(), Companion_instance_79.getDefaultHeaderFont(fontFactory));
    this._headerForeground = this.x3c_1.bz(TreeMapColumnPropertyType_headerForeground_getInstance(), colorOf_1(64, 64, 64));
    this._headerEffectColor = this.x3c_1.bz(TreeMapColumnPropertyType_headerEffectColor_getInstance(), colorOf_1(255, 255, 255));
    this._headerBackground = this.x3c_1.bz(TreeMapColumnPropertyType_headerBackground_getInstance(), colorOf_1(204, 204, 204));
    this.headerEffect = this.x3c_1.bz(TreeMapColumnPropertyType_headerEffect_getInstance(), null);
    this.headerHorizontalAlignment = this.x3c_1.bz(TreeMapColumnPropertyType_headerHorizontalAlignment_getInstance(), 0);
    this.headerVerticalAlignment = this.x3c_1.bz(TreeMapColumnPropertyType_headerVerticalAlignment_getInstance(), 0);
    this.headerRendering = this.x3c_1.bz(TreeMapColumnPropertyType_headerRendering_getInstance(), Rendering_Clip_getInstance());
    this.headerMinimumCharactersToDisplay = this.x3c_1.bz(TreeMapColumnPropertyType_headerMinimumCharactersToDisplay_getInstance(), 1);
    this.headerEffectOpacity = this.x3c_1.bz(TreeMapColumnPropertyType_headerEffectOpacity_getInstance(), null);
    this.headerInsets = this.x3c_1.bz(TreeMapColumnPropertyType_headerInsets_getInstance(), new Insets(1, 1, 0, 1));
    this.tooltipFont = this.x3c_1.bz(TreeMapColumnPropertyType_tooltipFont_getInstance(), Companion_instance_79.getDefaultLabelingFont(fontFactory));
    this.tooltipForeground = this.x3c_1.bz(TreeMapColumnPropertyType_tooltipForeground_getInstance(), colorOf_1(32, 32, 32));
    this.tooltipShowLabel = this.x3c_1.bz(TreeMapColumnPropertyType_showLabel_getInstance(), false);
    this.tooltipRendering = this.x3c_1.bz(TreeMapColumnPropertyType_tooltipRendering_getInstance(), Rendering_Truncate_getInstance());
    this._borderThickness = this.x3c_1.cz(TreeMapColumnPropertyType_borderThickness_getInstance(), new BoundedIntervalProperty(this.borderThickness, StartEnd_Start_getInstance()));
    this.borderColor = this.x3c_1.bz(TreeMapColumnPropertyType_borderColor_getInstance(), colorOf_1(96, 96, 96));
    this.format = this.x3c_1.bz(TreeMapColumnPropertyType_format_getInstance(), null);
    this.colorMap = this.x3c_1.cz(TreeMapColumnPropertyType_colormap_getInstance(), new MutableColorMapProperty(null));
    this.reset();
  }
  p1z() {
    return this.x3c_1;
  }
  f3e() {
    return this.algorithm;
  }
  g3e() {
    return this.borderThickness;
  }
  h3e(_set____db54di) {
    this.labelingEffect = _set____db54di;
  }
  i3e() {
    return this.labelingEffect;
  }
  j3e(_set____db54di) {
    this.labelingHorizontalAlignment = _set____db54di;
  }
  k3e() {
    return this.labelingHorizontalAlignment;
  }
  l3e(_set____db54di) {
    this.labelingVerticalAlignment = _set____db54di;
  }
  m3e() {
    return this.labelingVerticalAlignment;
  }
  n3e(_set____db54di) {
    this.labelingRendering = _set____db54di;
  }
  o3e() {
    return this.labelingRendering;
  }
  p3e(_set____db54di) {
    this.headerEffect = _set____db54di;
  }
  q3e() {
    return this.headerEffect;
  }
  r3e(_set____db54di) {
    this.headerHorizontalAlignment = _set____db54di;
  }
  s3e() {
    return this.headerHorizontalAlignment;
  }
  t3e(_set____db54di) {
    this.headerVerticalAlignment = _set____db54di;
  }
  u3e() {
    return this.headerVerticalAlignment;
  }
  v3e(_set____db54di) {
    this.headerRendering = _set____db54di;
  }
  w3e() {
    return this.headerRendering;
  }
  x3e(_set____db54di) {
    this.tooltipRendering = _set____db54di;
  }
  y3e() {
    return this.tooltipRendering;
  }
  z3e(_set____db54di) {
    this._algorithm = _set____db54di;
  }
  a3f() {
    return this._algorithm;
  }
  b3f(_set____db54di) {
    this._aggregation = _set____db54di;
  }
  c3f() {
    return this._aggregation;
  }
  d3f(_set____db54di) {
    this._scale = _set____db54di;
  }
  e3f() {
    return this._scale;
  }
  f3f(_set____db54di) {
    this._nesting = _set____db54di;
  }
  g3f() {
    return this._nesting;
  }
  h3f(_set____db54di) {
    this._ordering = _set____db54di;
  }
  i3f() {
    return this._ordering;
  }
  j3f(_set____db54di) {
    this.orderingDirection = _set____db54di;
  }
  k3f() {
    return this.orderingDirection;
  }
  l3f(_set____db54di) {
    this.orderingHorizontalVanishingPoint = _set____db54di;
  }
  m3f() {
    return this.orderingHorizontalVanishingPoint;
  }
  n3f(_set____db54di) {
    this.orderingVerticalVanishingPoint = _set____db54di;
  }
  o3f() {
    return this.orderingVerticalVanishingPoint;
  }
  p3f(_set____db54di) {
    this._labeling = _set____db54di;
  }
  q3f() {
    return this._labeling;
  }
  r3f(_set____db54di) {
    this._labelingFont = _set____db54di;
  }
  s3f() {
    return this._labelingFont;
  }
  t3f(_set____db54di) {
    this._labelingForeground = _set____db54di;
  }
  u3f() {
    return this._labelingForeground;
  }
  v3f(_set____db54di) {
    this._labelingBackground = _set____db54di;
  }
  w3f() {
    return this._labelingBackground;
  }
  x3f(_set____db54di) {
    this.labelingMinimumCharactersToDisplay = _set____db54di;
  }
  y3f() {
    return this.labelingMinimumCharactersToDisplay;
  }
  z3f(_set____db54di) {
    this.labelingEffectOpacity = _set____db54di;
  }
  a3g() {
    return this.labelingEffectOpacity;
  }
  b3g(_set____db54di) {
    this.labelingShrinkTextToFitShape = _set____db54di;
  }
  c3g() {
    return this.labelingShrinkTextToFitShape;
  }
  d3g(_set____db54di) {
    this.labelingResizeTextToFitShape = _set____db54di;
  }
  e3g() {
    return this.labelingResizeTextToFitShape;
  }
  f3g(_set____db54di) {
    this.labelingFloat = _set____db54di;
  }
  g3g() {
    return this.labelingFloat;
  }
  h3g(_set____db54di) {
    this.labelingContrastEnhancement = _set____db54di;
  }
  i3g() {
    return this.labelingContrastEnhancement;
  }
  j3g(_set____db54di) {
    this.nestingAmount = _set____db54di;
  }
  k3g() {
    return this.nestingAmount;
  }
  l3g(_set____db54di) {
    this.nestingBackground = _set____db54di;
  }
  m3g() {
    return this.nestingBackground;
  }
  n3g(_set____db54di) {
    this._headerFont = _set____db54di;
  }
  o3g() {
    return this._headerFont;
  }
  p3g(_set____db54di) {
    this._headerForeground = _set____db54di;
  }
  q3g() {
    return this._headerForeground;
  }
  r3g(_set____db54di) {
    this._headerEffectColor = _set____db54di;
  }
  s3g() {
    return this._headerEffectColor;
  }
  t3g(_set____db54di) {
    this._headerBackground = _set____db54di;
  }
  u3g() {
    return this._headerBackground;
  }
  v3g(_set____db54di) {
    this.headerMinimumCharactersToDisplay = _set____db54di;
  }
  w3g() {
    return this.headerMinimumCharactersToDisplay;
  }
  x3g(_set____db54di) {
    this.headerEffectOpacity = _set____db54di;
  }
  y3g() {
    return this.headerEffectOpacity;
  }
  z3g(_set____db54di) {
    this.headerInsets = _set____db54di;
  }
  a3h() {
    return this.headerInsets;
  }
  b3h(_set____db54di) {
    this.tooltipFont = _set____db54di;
  }
  c3h() {
    return this.tooltipFont;
  }
  d3h(_set____db54di) {
    this.tooltipForeground = _set____db54di;
  }
  e3h() {
    return this.tooltipForeground;
  }
  f3h(_set____db54di) {
    this.tooltipShowLabel = _set____db54di;
  }
  g3h() {
    return this.tooltipShowLabel;
  }
  h3h(_set____db54di) {
    this.borderColor = _set____db54di;
  }
  i3h() {
    return this.borderColor;
  }
  j3h(_set____db54di) {
    this._borderThickness = _set____db54di;
  }
  k3h() {
    return this._borderThickness;
  }
  l3h(_set____db54di) {
    this.format = _set____db54di;
  }
  m3h() {
    return this.format;
  }
  n3h(_set____db54di) {
    this.colorMap = _set____db54di;
  }
  o3h() {
    return this.colorMap;
  }
  getAlgorithmProperty() {
    return this._algorithm;
  }
  getAlgorithm() {
    return ensureNotNull(this._algorithm.z2());
  }
  setAlgorithm(algorithm) {
    this._algorithm.ap(algorithm);
  }
  getAlgorithmSelection() {
    return this.algorithm;
  }
  getAggregationProperty() {
    return this._aggregation;
  }
  getAggregation() {
    return this._aggregation.z2();
  }
  setAggregation(aggregation) {
    this._aggregation.ap(aggregation);
  }
  getScaleProperty() {
    return this._scale;
  }
  getScale() {
    return ensureNotNull(this._scale.z2());
  }
  setScale(scale) {
    this._scale.ap(scale);
  }
  getNestingProperty() {
    return this._nesting;
  }
  getNesting() {
    return this._nesting.z2();
  }
  setNesting(nesting) {
    this._nesting.ap(nesting);
  }
  getOrderingProperty() {
    return this._ordering;
  }
  getOrdering() {
    return ensureNotNull(this._ordering.z2());
  }
  setOrdering(ordering) {
    this._ordering.ap(ordering);
  }
  getOrderingDirectionProperty() {
    return this.orderingDirection;
  }
  getOrderingDirection() {
    return ensureNotNull(this.orderingDirection.z2());
  }
  setOrderingDirection(sortOrder) {
    this.orderingDirection.ap(sortOrder);
  }
  getOrderingVerticalVanishingPointProperty() {
    return this.orderingVerticalVanishingPoint;
  }
  getOrderingVerticalVanishingPoint() {
    return this.orderingVerticalVanishingPoint.z2();
  }
  setOrderingVerticalVanishingPoint(verticalVanishingPoint) {
    this.orderingVerticalVanishingPoint.ap(verticalVanishingPoint);
  }
  getOrderingHorizontalVanishingPointProperty() {
    return this.orderingHorizontalVanishingPoint;
  }
  getOrderingHorizontalVanishingPoint() {
    return this.orderingHorizontalVanishingPoint.z2();
  }
  setOrderingHorizontalVanishingPoint(horizontalVanishingPoint) {
    this.orderingHorizontalVanishingPoint.ap(horizontalVanishingPoint);
  }
  getLabelingProperty() {
    return this._labeling;
  }
  getLabeling() {
    return this._labeling.z2();
  }
  setLabeling(labeling) {
    this._labeling.ap(labeling);
  }
  getLabelingFontProperty() {
    return this._labelingFont;
  }
  getLabelingFont() {
    return this._labelingFont.z2();
  }
  setLabelingFont(font) {
    this._labelingFont.ap(font);
  }
  getLabelingForegroundProperty() {
    return this._labelingForeground;
  }
  getLabelingForeground() {
    return this._labelingForeground.z2();
  }
  setLabelingForeground(color) {
    this._labelingForeground.ap(color);
  }
  getLabelingEffectColorProperty() {
    return this._labelingBackground;
  }
  getLabelingEffectColor() {
    return this._labelingBackground.z2();
  }
  setLabelingEffectColor(color) {
    this._labelingBackground.ap(color);
  }
  getLabelingEffectProperty() {
    return this.labelingEffect;
  }
  getLabelingEffect() {
    return this.labelingEffect.z2();
  }
  setLabelingEffect(effect) {
    this.labelingEffect.ap(effect);
  }
  getLabelingHorizontalAlignmentProperty() {
    return this.labelingHorizontalAlignment;
  }
  getLabelingHorizontalAlignment() {
    return this.labelingHorizontalAlignment.z2();
  }
  setLabelingHorizontalAlignment(alignment) {
    this.labelingHorizontalAlignment.ap(alignment);
  }
  getLabelingVerticalAlignmentProperty() {
    return this.labelingVerticalAlignment;
  }
  getLabelingVerticalAlignment() {
    return this.labelingVerticalAlignment.z2();
  }
  setLabelingVerticalAlignment(alignment) {
    this.labelingVerticalAlignment.ap(alignment);
  }
  getLabelingRenderingProperty() {
    return this.labelingRendering;
  }
  getLabelingRendering() {
    return this.labelingRendering.z2();
  }
  setLabelingRendering(rendering) {
    this.labelingRendering.ap(rendering);
  }
  getLabelingMinimumCharactersToDisplayProperty() {
    return this.labelingMinimumCharactersToDisplay;
  }
  getLabelingMinimumCharactersToDisplay() {
    return this.labelingMinimumCharactersToDisplay.z2();
  }
  setLabelingMinimumCharactersToDisplay(minimumCharactersToDisplay) {
    this.labelingMinimumCharactersToDisplay.ap(minimumCharactersToDisplay);
  }
  getLabelingEffectOpacityProperty() {
    return this.labelingEffectOpacity;
  }
  getLabelingEffectOpacity() {
    return this.labelingEffectOpacity.z2();
  }
  setLabelingEffectOpacity(opacity) {
    this.labelingEffectOpacity.ap(opacity);
  }
  getLabelingShrinkTextToFitShapeProperty() {
    return this.labelingShrinkTextToFitShape;
  }
  getLabelingShrinkTextToFitShape() {
    return this.labelingShrinkTextToFitShape.z2();
  }
  setLabelingShrinkTextToFitShape(labelingShrinkTextToFitShape) {
    this.labelingShrinkTextToFitShape.ap(labelingShrinkTextToFitShape);
  }
  getLabelingResizeTextToFitShapeProperty() {
    return this.labelingResizeTextToFitShape;
  }
  getLabelingResizeTextToFitShape() {
    return this.labelingResizeTextToFitShape.z2();
  }
  setLabelingResizeTextToFitShape(labelingResizeTextToFitShape) {
    this.labelingResizeTextToFitShape.ap(labelingResizeTextToFitShape);
  }
  getLabelingFloatProperty() {
    return this.labelingFloat;
  }
  getLabelingFloat() {
    return this.labelingFloat.z2();
  }
  setLabelingFloat(labelingFloat) {
    this.labelingFloat.ap(labelingFloat);
  }
  getLabelingContrastEnhancementProperty() {
    return this.labelingContrastEnhancement;
  }
  getLabelingContrastEnhancement() {
    return this.labelingContrastEnhancement.z2();
  }
  setLabelingContrastEnhancement(contrastEnhancement) {
    this.labelingContrastEnhancement.ap(contrastEnhancement);
  }
  getNestingAmountProperty() {
    return this.nestingAmount;
  }
  getNestingAmount() {
    return this.nestingAmount.z2();
  }
  setNestingAmount(amount) {
    this.nestingAmount.ap(amount);
  }
  getNestingBackgroundProperty() {
    return this.nestingBackground;
  }
  getNestingBackground() {
    return this.nestingBackground.z2();
  }
  setNestingBackground(color) {
    this.nestingBackground.ap(color);
  }
  getHeaderFontProperty() {
    return this._headerFont;
  }
  getHeaderFont() {
    return this._headerFont.z2();
  }
  setHeaderFont(font) {
    this._headerFont.ap(font);
  }
  getHeaderForegroundProperty() {
    return this._headerForeground;
  }
  getHeaderForeground() {
    return this._headerForeground.z2();
  }
  setHeaderForeground(color) {
    this._headerForeground.ap(color);
  }
  getHeaderBackgroundProperty() {
    return this._headerBackground;
  }
  getHeaderBackground() {
    return this._headerBackground.z2();
  }
  setHeaderBackground(color) {
    this._headerBackground.ap(color);
  }
  getHeaderEffectColorProperty() {
    return this._headerEffectColor;
  }
  getHeaderEffectColor() {
    return this._headerEffectColor.z2();
  }
  setHeaderEffectColor(color) {
    this._headerEffectColor.ap(color);
  }
  getHeaderEffectProperty() {
    return this.headerEffect;
  }
  getHeaderEffect() {
    return this.headerEffect.z2();
  }
  setHeaderEffect(effect) {
    this.headerEffect.ap(effect);
  }
  getHeaderHorizontalAlignmentProperty() {
    return this.headerHorizontalAlignment;
  }
  getHeaderHorizontalAlignment() {
    return this.headerHorizontalAlignment.z2();
  }
  setHeaderHorizontalAlignment(alignment) {
    this.headerHorizontalAlignment.ap(alignment);
  }
  getHeaderVerticalAlignmentProperty() {
    return this.headerVerticalAlignment;
  }
  getHeaderVerticalAlignment() {
    return this.headerVerticalAlignment.z2();
  }
  setHeaderVerticalAlignment(alignment) {
    this.headerVerticalAlignment.ap(alignment);
  }
  getHeaderRenderingProperty() {
    return this.headerRendering;
  }
  getHeaderRendering() {
    return this.headerRendering.z2();
  }
  setHeaderRendering(rendering) {
    this.headerRendering.ap(rendering);
  }
  getHeaderMinimumCharactersToDisplayProperty() {
    return this.headerMinimumCharactersToDisplay;
  }
  getHeaderMinimumCharactersToDisplay() {
    return this.headerMinimumCharactersToDisplay.z2();
  }
  setHeaderMinimumCharactersToDisplay(minimumCharactersToDisplay) {
    this.headerMinimumCharactersToDisplay.ap(minimumCharactersToDisplay);
  }
  getHeaderEffectOpacityProperty() {
    return this.headerEffectOpacity;
  }
  getHeaderEffectOpacity() {
    return this.headerEffectOpacity.z2();
  }
  setHeaderEffectOpacity(opacity) {
    this.headerEffectOpacity.ap(opacity);
  }
  getHeaderInsetsProperty() {
    return this.headerInsets;
  }
  getHeaderInsets() {
    return this.headerInsets.z2();
  }
  setHeaderInsets(insets) {
    this.headerInsets.ap(insets);
  }
  getTooltipFontProperty() {
    return this.tooltipFont;
  }
  getTooltipFont() {
    return this.tooltipFont.z2();
  }
  setTooltipFont(font) {
    this.tooltipFont.ap(font);
  }
  getTooltipForegroundProperty() {
    return this.tooltipForeground;
  }
  getTooltipForeground() {
    return this.tooltipForeground.z2();
  }
  setTooltipForeground(color) {
    this.tooltipForeground.ap(color);
  }
  getTooltipRenderingProperty() {
    return this.tooltipRendering;
  }
  getTooltipRendering() {
    return this.tooltipRendering.z2();
  }
  setTooltipRendering(rendering) {
    this.tooltipRendering.ap(rendering);
  }
  getBorderColorProperty() {
    return this.borderColor;
  }
  getBorderColor() {
    return this.borderColor.z2();
  }
  setBorderColor(color) {
    this.borderColor.ap(color);
  }
  getBorderThicknessInterval() {
    return this.borderThickness;
  }
  getBorderThickness() {
    return this.borderThickness.start;
  }
  setBorderThickness(value) {
    this.borderThickness.start = value;
  }
  getFormatProperty() {
    return ensureNotNull(this.format);
  }
  getFormat() {
    return ensureNotNull(this.format).z2();
  }
  setFormat(format) {
    ensureNotNull(this.format).ap(format);
  }
  getShowLabelProperty() {
    return this.tooltipShowLabel;
  }
  getShowLabel() {
    return this.tooltipShowLabel.z2();
  }
  setShowLabel(show) {
    this.tooltipShowLabel.ap(show);
  }
  getColorMapProperty() {
    return this.colorMap;
  }
  getColorMap() {
    return ensureNotNull(this.colorMap).z2();
  }
  setColorMap(colorMap) {
    ensureNotNull(this.colorMap).ap(colorMap);
  }
  getProperty(key) {
    return ensureNotNull(this.x3c_1.fz(key).z2());
  }
  isDefaults() {
    return true;
  }
  getOverrideDefaultsProperty() {
    return null;
  }
  isOverrideDefaults() {
    return false;
  }
  setOverrideDefaults(overrideDefaults) {
    if (overrideDefaults) {
      throw UnsupportedOperationException.y8('Default settings cannot be overridden');
    }
  }
  getPropertyOverride(key) {
    return this.getProperty(key);
  }
  reset() {
    this.setAlgorithm(Companion_getInstance_75().instance.getDefault());
    this.setAggregation(Companion_getInstance_74().c38().e38());
    this.setScale(Companion_getInstance_93().k3d_1.m3d());
    this.setNesting(Companion_getInstance_86().c38().e38());
    this.setOrdering(Companion_getInstance_88().c38().e38());
    this.setOrderingDirection(SortOrder_Descending_getInstance());
    this.setOrderingHorizontalVanishingPoint(4);
    this.setOrderingVerticalVanishingPoint(3);
    this.setLabeling(Companion_getInstance_84().c38().e38());
    this.setLabelingForeground(colorOf_1(32, 32, 32));
    this.setLabelingEffectColor(null);
    this.setLabelingEffect(null);
    this.setLabelingHorizontalAlignment(2);
    this.setLabelingVerticalAlignment(1);
    this.setLabelingRendering(Rendering_Clip_getInstance());
    this.setLabelingMinimumCharactersToDisplay(1);
    this.setLabelingEffectOpacity(null);
    this.setLabelingShrinkTextToFitShape(false);
    this.setLabelingResizeTextToFitShape(false);
    this.setLabelingFloat(false);
    this.setLabelingContrastEnhancement(Brightness_getInstance());
    this.setNestingAmount(1.0);
    this.setNestingBackground(colorOf_1(180, 180, 180));
    this.setHeaderForeground(colorOf_1(64, 64, 64));
    this.setHeaderEffectColor(colorOf_1(255, 255, 255));
    this.setHeaderBackground(colorOf_1(204, 204, 204));
    this.setHeaderEffect(null);
    this.setHeaderHorizontalAlignment(0);
    this.setHeaderVerticalAlignment(0);
    this.setHeaderRendering(Rendering_Clip_getInstance());
    this.setHeaderMinimumCharactersToDisplay(1);
    this.setHeaderEffectOpacity(null);
    this.setHeaderInsets(new Insets(1, 1, 0, 1));
    this.setTooltipForeground(colorOf_1(32, 32, 32));
    this.setShowLabel(false);
    this.setTooltipRendering(Rendering_Truncate_getInstance());
    this.setBorderThickness(0.5);
    this.setBorderColor(colorOf_1(96, 96, 96));
    this.setFormat(null);
    this.setHeaderFont(Companion_instance_79.getDefaultHeaderFont(this.z3c_1));
    this.setLabelingFont(Companion_instance_79.getDefaultLabelingFont(this.z3c_1));
    this.setTooltipFont(Companion_instance_79.getDefaultLabelingFont(this.z3c_1));
  }
  createDefaultColorMap(column) {
    return null;
  }
  get properties() {
    return this.p1z();
  }
}
class DefaultTreeMapController extends AbstractTreeMapController {}
class Companion_80 {
  constructor() {
    Companion_instance_80 = this;
    this.p3h_1 = new Insets(0, 0, 0, 0);
  }
}
class DefaultTreeMapHeaderRenderer extends EnhancedLabel {
  static l36() {
    Companion_getInstance_80();
    var $this = this.j1z();
    $this.k36_1 = null;
    $this.isOpaque = false;
    $this.setName('TreeMap.headerRenderer');
    $this.setInsets(Companion_getInstance_80().p3h_1.t1x_1, Companion_getInstance_80().p3h_1.u1x_1, Companion_getInstance_80().p3h_1.v1x_1, Companion_getInstance_80().p3h_1.w1x_1);
    $this.setEffect(Emphasize_getInstance());
    $this.setHorizontalAlignment(0);
    $this.setVerticalAlignment(1);
    $this.setRendering(Rendering_Clip_getInstance());
    return $this;
  }
  q3h(model, node, dimension) {
    var value = model.getLabelName(node);
    this.r3h(value);
    var settings = model.settings.getColumnSettings(model.getGroupByColumn(node));
    var effect = settings.getHeaderEffect();
    if (!(effect == null)) {
      this.setEffect(effect);
    }
    var horizontalAlignment = settings.getHeaderHorizontalAlignment();
    if (horizontalAlignment == null)
      null;
    else {
      // Inline function 'kotlin.let' call
      this.setHorizontalAlignment(horizontalAlignment);
    }
    var verticalAlignment = settings.getHeaderVerticalAlignment();
    if (verticalAlignment == null)
      null;
    else {
      // Inline function 'kotlin.let' call
      this.setVerticalAlignment(verticalAlignment);
    }
    var rendering = settings.getHeaderRendering();
    if (!(rendering == null)) {
      this.setRendering(rendering);
    }
    var minimumCharactersToDisplay = settings.getHeaderMinimumCharactersToDisplay();
    if (minimumCharactersToDisplay == null)
      null;
    else {
      // Inline function 'kotlin.let' call
      this.setMinimumCharactersToDisplay(minimumCharactersToDisplay);
    }
    var effectOpacity = settings.getHeaderEffectOpacity();
    if (effectOpacity == null)
      null;
    else {
      // Inline function 'kotlin.let' call
      this.setEffectOpacity(effectOpacity);
    }
    var insets = settings.getHeaderInsets();
    if (!(insets == null)) {
      this.setInsets(insets.t1x_1, insets.u1x_1, insets.v1x_1, insets.w1x_1);
    } else {
      this.setInsets(0, 0, 0, 0);
    }
    this.setDesiredWidth(dimension.cm_1);
    this.setDesiredHeight(dimension.dm_1);
    return this;
  }
  r3h(value) {
    var tmp1_elvis_lhs = value == null ? null : toString_1(value);
    this.setText(tmp1_elvis_lhs == null ? '' : tmp1_elvis_lhs);
  }
  setName(name) {
    this.k36_1 = name;
  }
  getName() {
    return this.k36_1;
  }
}
class Companion_81 {
  constructor() {
    Companion_instance_81 = this;
    this.s3h_1 = new Insets(0, 2, 0, 1);
  }
}
class DefaultTreeMapLabelRenderer extends EnhancedLabel {
  static m35() {
    Companion_getInstance_81();
    var $this = this.j1z();
    $this.isOpaque = false;
    $this.setName('TreeMap.labelRenderer');
    $this.setEffect(Plain_getInstance());
    $this.setHorizontalAlignment(2);
    $this.setRendering(Rendering_Clip_getInstance());
    return $this;
  }
  m2l(view, column, node, dimension) {
    var value = ensureNotNull(view.h2l()).getStringValue(node, column);
    this.setInsets(Companion_getInstance_81().s3h_1.t1x_1, Companion_getInstance_81().s3h_1.u1x_1, Companion_getInstance_81().s3h_1.v1x_1, Companion_getInstance_81().s3h_1.w1x_1);
    this.setText(value);
    this.q1z(ensureNotNull(view.h2l()).getColumnClass(column) === getKClass(HtmlString));
    var settings = ensureNotNull(view.h2l()).settings.getColumnSettings(column);
    var effect = settings.getLabelingEffect();
    if (!(effect == null)) {
      this.setEffect(effect);
    }
    var horizontalAlignment = settings.getLabelingHorizontalAlignment();
    if (horizontalAlignment == null)
      null;
    else {
      // Inline function 'kotlin.let' call
      this.setHorizontalAlignment(horizontalAlignment);
    }
    var verticalAlignment = settings.getLabelingVerticalAlignment();
    if (verticalAlignment == null)
      null;
    else {
      // Inline function 'kotlin.let' call
      this.setVerticalAlignment(verticalAlignment);
    }
    var rendering = settings.getLabelingRendering();
    if (!(rendering == null)) {
      this.setRendering(rendering);
    }
    var minimumCharactersToDisplay = settings.getLabelingMinimumCharactersToDisplay();
    if (minimumCharactersToDisplay == null)
      null;
    else {
      // Inline function 'kotlin.let' call
      this.setMinimumCharactersToDisplay(minimumCharactersToDisplay);
    }
    var effectOpacity = settings.getLabelingEffectOpacity();
    if (effectOpacity == null)
      null;
    else {
      // Inline function 'kotlin.let' call
      this.setEffectOpacity(effectOpacity);
    }
    this.setDesiredWidth(dimension.cm_1);
    this.setDesiredHeight(dimension.dm_1);
    return this;
  }
}
class DefaultTreeMapModel$dataFrameListener$1 {
  constructor(this$0) {
    this.t3h_1 = this$0;
  }
  l2g(event) {
    var groupByTreeMapColumns = this.t3h_1.settings.groupByColumns;
    this.t3h_1.m3j_1.u4();
    this.t3h_1.l3j_1.u4();
    this.t3h_1.w2u();
    this.t3h_1.e2y();
    var affectedColumns = event.d2h_1;
    if (affectedColumns == null) {
      this.t3h_1.i2w();
      return Unit_instance;
    } else {
      if (!(groupByTreeMapColumns == null)) {
        var _iterator__ex2g4s = groupByTreeMapColumns.h1();
        while (_iterator__ex2g4s.i1()) {
          var column = _iterator__ex2g4s.j1();
          if (!(column == null)) {
            var _iterator__ex2g4s_0 = affectedColumns.h1();
            while (_iterator__ex2g4s_0.i1()) {
              var column_0 = _iterator__ex2g4s_0.j1();
              if (column_0 === column_0) {
                this.t3h_1.i2w();
                return Unit_instance;
              }
            }
          }
        }
      }
    }
    this.t3h_1.f2w();
  }
  g2c(event) {
    return this.l2g(event);
  }
}
class DefaultTreeMapModel extends AbstractTreeMapModel {
  constructor(dataFrame) {
    super();
    this.j3j_1 = null;
    this.k3j_1 = HashMap.i7();
    this.l3j_1 = HashMap.i7();
    this.m3j_1 = HashMap.i7();
    var tmp = this;
    tmp.dataFrameListener = new DefaultTreeMapModel$dataFrameListener$1(this);
    this.n3j(dataFrame);
    this.x2x();
  }
  n3j(dataFrame) {
    if (!(this.j3j_1 === dataFrame)) {
      var tmp0_safe_receiver = this.j3j_1;
      if (tmp0_safe_receiver == null)
        null;
      else {
        tmp0_safe_receiver.h2g(this.dataFrameListener);
      }
      this.j3j_1 = dataFrame;
      var tmp1_safe_receiver = this.j3j_1;
      if (tmp1_safe_receiver == null)
        null;
      else {
        tmp1_safe_receiver.i2c(this.dataFrameListener);
      }
      this.e2y();
      this.i2w();
    }
  }
  j2c() {
    return this.j3j_1;
  }
  o3j() {
    return this.dataFrameListener;
  }
  getLabelName(node) {
    return node.h30();
  }
  getParent(node) {
    return node.y2z();
  }
  isRoot(node) {
    return node.z2z();
  }
  getChildCount(node) {
    return node.x2z();
  }
  getChildren(parent) {
    return ensureNotNull(parent.a30());
  }
  getChildrenOfTypeParent(parent) {
    return ensureNotNull(parent.b30());
  }
  getCushionImage(node) {
    return node.k30();
  }
  getCushionColor(node) {
    return node.l30();
  }
  q2u(childrenGroupByColumn) {
    return new ParentTreeMapNode('root', this, null, childrenGroupByColumn);
  }
  createLeafNode(row) {
    var tmp;
    if (this.r2s_1.a3(row)) {
      tmp = ensureNotNull(this.r2s_1.c3(row));
    } else {
      var tmp_0 = new LeafTreeMapNode(row, this);
      var node = tmp_0 instanceof AbstractTreeMapNode ? tmp_0 : THROW_CCE();
      this.r2s_1.o6(row, node);
      tmp = node;
    }
    return tmp;
  }
  getNodeForRow(row) {
    return ensureNotNull(this.r2s_1.c3(row));
  }
  createParentNode(name, groupByColumn, childrenGroupByColumn) {
    return new ParentTreeMapNode(name, this, groupByColumn, childrenGroupByColumn);
  }
  findChild(parent, name) {
    return parent.e30(name);
  }
  addChildToParent(parent, child) {
    parent.c30(child);
  }
  r2u(parent, worker) {
    var groupByTreeMapColumns;
    if (!(this.settings.groupByColumns == null)) {
      var count = 0;
      var inductionVariable = 0;
      var last = this.settings.groupByColumns.k1();
      if (inductionVariable < last)
        do {
          var i = inductionVariable;
          inductionVariable = inductionVariable + 1 | 0;
          var column = this.settings.groupByColumns.l1(i);
          if (!(column == null)) {
            count = count + 1 | 0;
          }
        }
         while (inductionVariable < last);
      if (count === this.settings.groupByColumns.k1()) {
        groupByTreeMapColumns = toMutableList_0(this.settings.groupByColumns);
      } else {
        var filter1 = filterNotNull(this.settings.groupByColumns);
        groupByTreeMapColumns = toMutableList_0(filter1);
        var index = 0;
        var inductionVariable_0 = 0;
        var last_0 = this.settings.groupByColumns.k1();
        if (inductionVariable_0 < last_0)
          do {
            var i_0 = inductionVariable_0;
            inductionVariable_0 = inductionVariable_0 + 1 | 0;
            var column_0 = this.settings.groupByColumns.l1(i_0);
            if (!(column_0 == null)) {
              groupByTreeMapColumns.p4(index, column_0);
              index = index + 1 | 0;
            }
          }
           while (inductionVariable_0 < last_0);
      }
    } else {
      groupByTreeMapColumns = toMutableList_0(this.settings.groupByColumns);
    }
    if (!(this.j3j_1 == null)) {
      var _iterator__ex2g4s = ensureNotNull(this.j3j_1).o2d().h1();
      while (_iterator__ex2g4s.i1()) {
        var row = _iterator__ex2g4s.j1();
        if (!ensureNotNull(worker).o17()) {
          var pathList;
          var groupByList;
          var childrenGroupByList;
          if (groupByTreeMapColumns == null || groupByTreeMapColumns.k1() === 0) {
            pathList = emptyList();
            groupByList = emptyList();
            childrenGroupByList = emptyList();
          } else {
            pathList = ArrayList.n1(groupByTreeMapColumns.k1());
            groupByList = ArrayList.n1(groupByTreeMapColumns.k1());
            childrenGroupByList = ArrayList.n1(groupByTreeMapColumns.k1());
            var inductionVariable_1 = 0;
            var last_1 = groupByTreeMapColumns.k1() - 1 | 0;
            if (inductionVariable_1 <= last_1)
              do {
                var i_1 = inductionVariable_1;
                inductionVariable_1 = inductionVariable_1 + 1 | 0;
                var column_1 = groupByTreeMapColumns.l1(i_1);
                var groupByColumn = i_1 < (groupByTreeMapColumns.k1() - 1 | 0) ? groupByTreeMapColumns.l1(i_1 + 1 | 0) : null;
                var index_0 = ensureNotNull(column_1);
                var value = ensureNotNull(this.j3j_1).x2f(row, index_0);
                if (!(value == null) && this.v2t_1.d18(getKClassFromExpression(value))) {
                  var objects = isArray(value) ? value : THROW_CCE();
                  addAll(pathList, requireNoNulls(objects));
                  var inductionVariable_2 = 0;
                  var last_2 = objects.length - 1 | 0;
                  if (inductionVariable_2 <= last_2)
                    do {
                      var j = inductionVariable_2;
                      inductionVariable_2 = inductionVariable_2 + 1 | 0;
                      if (!(column_1 == null) && !(groupByColumn == null)) {
                        groupByList.c1(column_1);
                        childrenGroupByList.c1(groupByColumn);
                      }
                    }
                     while (inductionVariable_2 <= last_2);
                } else {
                  if (!(value == null)) {
                    var settings = this.settings.getColumnSettings(column_1);
                    if (!(settings.getFormat() == null)) {
                      var s = ensureNotNull(ensureNotNull(settings.getFormat()).zk(value, false));
                      pathList.c1(s);
                    } else {
                      pathList.c1(value);
                    }
                    groupByList.c1(column_1);
                    childrenGroupByList.c1(groupByColumn);
                  }
                }
              }
               while (inductionVariable_1 <= last_1);
          }
          this.addChild(ensureNotNull(parent), pathList, groupByList, childrenGroupByList, row);
        } else {
          return true;
        }
      }
    }
    return false;
  }
  addChild(parent, path, groupBy, childrenGroupBy, row) {
    var parent_0 = parent;
    var groupByIterator = groupBy.h1();
    var childrenGroupByIterator = childrenGroupBy.h1();
    var _iterator__ex2g4s = path.h1();
    while (_iterator__ex2g4s.i1()) {
      var name = _iterator__ex2g4s.j1();
      var g = groupByIterator.j1();
      var c = childrenGroupByIterator.j1();
      var node;
      if (this.b2u(parent_0) || this.findChild(parent_0, name) == null) {
        node = this.createParentNode(ensureNotNull(name), g, c);
        this.addChildToParent(parent_0, node);
      } else {
        var tmp = this.findChild(parent_0, name);
        node = tmp instanceof AbstractTreeMapNode ? tmp : THROW_CCE();
      }
      parent_0 = node;
    }
    this.addChildToParent(parent_0, this.createLeafNode(row));
  }
  getTreeMapColumn(columnIndex) {
    var tmp;
    if (columnIndex >= 0 && columnIndex <= ensureNotNull(this.j3j_1).y2e()) {
      tmp = ensureNotNull(this.j3j_1).z2e(columnIndex);
    } else {
      tmp = null;
    }
    return tmp;
  }
  getTreeMapColumnByName(columnName) {
    var _iterator__ex2g4s = ensureNotNull(this.j3j_1).a2g().h1();
    while (_iterator__ex2g4s.i1()) {
      var c = _iterator__ex2g4s.j1();
      if (equals_0(ensureNotNull(this.j3j_1).g2g(c), columnName)) {
        return this.getTreeMapColumn(ensureNotNull(this.j3j_1).d2g(c));
      }
    }
    return null;
  }
  e2g() {
    var df = this.j3j_1;
    return !(df == null) ? df.e2g() : 0;
  }
  y2e() {
    var df = this.j3j_1;
    return !(df == null) ? df.y2e() : 0;
  }
  columns() {
    return ensureNotNull(this.j3j_1).a2g();
  }
  getColumnName(columnIndex) {
    return !(this.j3j_1 == null) ? ensureNotNull(this.j3j_1).g2g(columnIndex) : null;
  }
  getColumnClass(columnIndex) {
    return ensureNotNull(this.j3j_1).g2f(columnIndex);
  }
  getValueAt(node, columnIndex) {
    var row = node.g30();
    var tmp;
    if (!(row == null)) {
      tmp = ensureNotNull(this.j3j_1).x2f(row, columnIndex);
    } else {
      tmp = null;
    }
    return tmp;
  }
  isEveryValueUnique(column) {
    var isEveryValueUnique = this.getColumnClass(ensureNotNull(column)).equals(PrimitiveClasses_getInstance().ad()) || this.getColumnClass(column).equals(PrimitiveClasses_getInstance().bd());
    if (!isEveryValueUnique) {
      isEveryValueUnique = true;
      var values = HashSet.c9();
      var series = ensureNotNull(this.j3j_1).z2f(column);
      var _iterator__ex2g4s = ensureNotNull(this.j3j_1).o2d().h1();
      $l$loop: while (_iterator__ex2g4s.i1()) {
        var row = _iterator__ex2g4s.j1();
        var value = ensureNotNull(series).c3(row);
        if (values.q2(value)) {
          isEveryValueUnique = false;
          break $l$loop;
        } else {
          values.c1(value);
        }
      }
    }
    return isEveryValueUnique;
  }
  getNumericMax(columnIndex) {
    var tmp;
    if (!(columnIndex == null)) {
      if (!this.l3j_1.a3(columnIndex)) {
        var max = DataFrameHelper_instance.f2h(ensureNotNull(this.j3j_1), columnIndex).z2g_1;
        if (!(max == null)) {
          var tmp0 = this.l3j_1;
          // Inline function 'kotlin.collections.set' call
          var value = numberToDouble(max);
          tmp0.o6(columnIndex, value);
        } else {
          // Inline function 'kotlin.collections.set' call
          this.l3j_1.o6(columnIndex, null);
        }
      }
      return this.l3j_1.c3(columnIndex);
    } else {
      tmp = null;
    }
    return tmp;
  }
  getNumericMin(columnIndex) {
    var tmp;
    if (!(columnIndex == null)) {
      if (!this.m3j_1.a3(columnIndex)) {
        var min = DataFrameHelper_instance.f2h(ensureNotNull(this.j3j_1), columnIndex).y2g_1;
        if (!(min == null)) {
          var tmp0 = this.m3j_1;
          // Inline function 'kotlin.collections.set' call
          var value = numberToDouble(min);
          tmp0.o6(columnIndex, value);
        } else {
          // Inline function 'kotlin.collections.set' call
          this.m3j_1.o6(columnIndex, null);
        }
      }
      return this.m3j_1.c3(columnIndex);
    } else {
      tmp = null;
    }
    return tmp;
  }
  setNumericMax(columnIndex, max) {
    this.l3j_1.o6(ensureNotNull(columnIndex), max);
    this.f2w();
  }
  setNumericMin(columnIndex, min) {
    this.m3j_1.o6(ensureNotNull(columnIndex), min);
    this.f2w();
  }
  createDefaultColorMap(column) {
    var stat = DataFrameHelper_instance.f2h(ensureNotNull(this.j3j_1), column);
    return DataFrameColorMapFactory_instance.p3j(this.o2s_1, this.j3j_1, column, stat.y2g_1, stat.z2g_1);
  }
  f2z(column) {
    return DataFrameColorMapFactory_instance.q3j(this.o2s_1, this.j3j_1, ensureNotNull(column));
  }
  get dataFrame() {
    return this.j2c();
  }
  set dataFrame(value) {
    this.n3j(value);
  }
  get rowCount() {
    return this.e2g();
  }
  get columnCount() {
    return this.y2e();
  }
  get root() {
    return this.z2w();
  }
  set root(value) {
    this.s2u(value);
  }
  get worker() {
    return this.b2x();
  }
  set worker(value) {
    this.a2x(value);
  }
  get workerFuture() {
    return this.d2x();
  }
  set workerFuture(value) {
    this.c2x(value);
  }
  get normalizedLightSourceX() {
    return this.f2x();
  }
  set normalizedLightSourceX(value) {
    this.e2x(value);
  }
  get normalizedLightSourceY() {
    return this.h2x();
  }
  set normalizedLightSourceY(value) {
    this.g2x(value);
  }
  get normalizedLightSourceZ() {
    return this.j2x();
  }
  set normalizedLightSourceZ(value) {
    this.i2x(value);
  }
  get maximumSize() {
    return this.l2x();
  }
  set maximumSize(value) {
    this.k2x(value);
  }
}
class DefaultTreeMapPopup {
  constructor(view) {
    this.s3j_1 = null;
    this.t3j_1 = null;
    this.r3j_1 = view;
  }
  l32(x, y, owner) {
    this.s3j_1 = new Point(x, y);
    this.t3j_1 = owner;
  }
  m31() {
    this.s3j_1 = null;
    this.t3j_1 = null;
  }
  i32() {
    if (!(this.t3j_1 == null)) {
      this.r3j_1.i32();
    }
  }
  e32() {
    return this.s3j_1;
  }
}
class DefaultTreeMapSettings$columnPropertyChangeListener$1 {
  constructor(this$0) {
    this.w3k_1 = this$0;
  }
  x3k(name, event) {
    if (TreeMapColumnPropertyType_nestingBackground_getInstance().equals(name) || TreeMapColumnPropertyType_headerBackground_getInstance().equals(name) || TreeMapColumnPropertyType_headerForeground_getInstance().equals(name) || TreeMapColumnPropertyType_headerEffectColor_getInstance().equals(name) || TreeMapColumnPropertyType_labelingFont_getInstance().equals(name) || TreeMapColumnPropertyType_labelingEffectColor_getInstance().equals(name) || TreeMapColumnPropertyType_labelingForeground_getInstance().equals(name) || TreeMapColumnPropertyType_labelingShrinkTextToFitShape_getInstance().equals(name) || TreeMapColumnPropertyType_labelingResizeTextToFitShape_getInstance().equals(name) || TreeMapColumnPropertyType_labelingFloat_getInstance().equals(name) || TreeMapColumnPropertyType_tooltipFont_getInstance().equals(name) || TreeMapColumnPropertyType_tooltipForeground_getInstance().equals(name) || TreeMapColumnPropertyType_borderColor_getInstance().equals(name) || TreeMapColumnPropertyType_showLabel_getInstance().equals(name)) {
      scheduleUpdate(this.w3k_1);
    } else if (TreeMapColumnPropertyType_aggregation_getInstance().equals(name)) {
      scheduleUpdateLayoutAndAggregationCache(this.w3k_1);
    } else if (TreeMapColumnPropertyType_labeling_getInstance().equals(name)) {
      scheduleUpdateLayoutAndDimension(this.w3k_1);
    } else if (TreeMapColumnPropertyType_algorithm_getInstance().equals(name) || TreeMapColumnPropertyType_scale_getInstance().equals(name) || TreeMapColumnPropertyType_labeling_getInstance().equals(name) || TreeMapColumnPropertyType_nesting_getInstance().equals(name) || TreeMapColumnPropertyType_nestingAmount_getInstance().equals(name) || TreeMapColumnPropertyType_ordering_getInstance().equals(name) || TreeMapColumnPropertyType_orderingDirection_getInstance().equals(name) || TreeMapColumnPropertyType_orderingHorizontalVanishingPoint_getInstance().equals(name) || TreeMapColumnPropertyType_orderingVerticalVanishingPoint_getInstance().equals(name) || TreeMapColumnPropertyType_headerFont_getInstance().equals(name) || TreeMapColumnPropertyType_format_getInstance().equals(name) || TreeMapColumnPropertyType_borderThickness_getInstance().equals(name) || TreeMapColumnPropertyType_headerFont_getInstance().equals(name) || TreeMapColumnPropertyType_headerRendering_getInstance().equals(name)) {
      scheduleUpdateLayout(this.w3k_1);
    } else if (TreeMapColumnPropertyType_colormap_getInstance().equals(name)) {
      scheduleUpdateColors(this.w3k_1);
    } else {
      scheduleUpdate(this.w3k_1);
    }
  }
  ey(name, event) {
    return this.x3k(name instanceof TreeMapColumnPropertyType ? name : THROW_CCE(), event);
  }
}
class DefaultTreeMapSettings$propertyChangeListener$1 {
  constructor(this$0) {
    this.y3k_1 = this$0;
  }
  h34(name, event) {
    if (TreeMapPropertyType_depth_getInstance().equals(name) || TreeMapPropertyType_rendering_getInstance().equals(name) || TreeMapPropertyType_background_getInstance().equals(name) || TreeMapPropertyType_tooltipBackground_getInstance().equals(name)) {
      scheduleUpdate(this.y3k_1);
    } else if (TreeMapPropertyType_dimension_getInstance().equals(name) || TreeMapPropertyType_sizeField_getInstance().equals(name) || TreeMapPropertyType_heightField_getInstance().equals(name) || TreeMapPropertyType_backgroundField_getInstance().equals(name) || TreeMapPropertyType_labelsField_getInstance().equals(name) || TreeMapPropertyType_hideFilterResults_getInstance().equals(name) || TreeMapPropertyType_hideSearchResults_getInstance().equals(name)) {
      scheduleUpdateLayout(this.y3k_1);
    } else if (TreeMapPropertyType_colorField_getInstance().equals(name) || TreeMapPropertyType_lightSourceHeight_getInstance().equals(name) || TreeMapPropertyType_lightSourceAmbient_getInstance().equals(name) || TreeMapPropertyType_lightSourceX_getInstance().equals(name) || TreeMapPropertyType_lightSourceY_getInstance().equals(name) || TreeMapPropertyType_lightSourceZ_getInstance().equals(name)) {
      scheduleUpdateColors(this.y3k_1);
    } else if (TreeMapPropertyType_groupByField_getInstance().equals(name)) {
      scheduleUpdateGroupBy(this.y3k_1);
    } else {
      scheduleUpdate(this.y3k_1);
    }
  }
  ey(name, event) {
    return this.h34(name instanceof TreeMapPropertyType ? name : THROW_CCE(), event);
  }
}
class DefaultTreeMapSettings extends AbstractTreeMapSettings {
  constructor(model, colorFactory, fontFactory, colorMapFactory) {
    super();
    this.v3j_1 = new EnumProperties(values_3());
    this.w3j_1 = this.v3j_1.bz(TreeMapPropertyType_dimensionFixed_getInstance(), false);
    this.x3j_1 = this.v3j_1.bz(TreeMapPropertyType_dimension_getInstance(), null);
    this.y3j_1 = this.v3j_1.bz(TreeMapPropertyType_progressive_getInstance(), null);
    this.groupByFields = this.v3j_1.bz(TreeMapPropertyType_groupByField_getInstance(), emptyList());
    this.z3j_1 = PropertyDelegates_instance.k10(this.groupByFields);
    this.labelsFields = this.v3j_1.bz(TreeMapPropertyType_labelsField_getInstance(), emptyList());
    this.a3k_1 = PropertyDelegates_instance.k10(this.labelsFields);
    this.toolTipFields = this.v3j_1.bz(TreeMapPropertyType_toolTipField_getInstance(), emptyList());
    this.b3k_1 = PropertyDelegates_instance.k10(this.toolTipFields);
    this.sizeField = this.v3j_1.bz(TreeMapPropertyType_sizeField_getInstance(), null);
    this.c3k_1 = PropertyDelegates_instance.k10(this.sizeField);
    this.d3k_1 = this.v3j_1.bz(TreeMapPropertyType_colorField_getInstance(), null);
    this.e3k_1 = PropertyDelegates_instance.k10(this.d3k_1);
    this.backgroundField = this.v3j_1.bz(TreeMapPropertyType_backgroundField_getInstance(), null);
    this.f3k_1 = PropertyDelegates_instance.k10(this.backgroundField);
    this.heightField = this.v3j_1.bz(TreeMapPropertyType_heightField_getInstance(), null);
    this.g3k_1 = PropertyDelegates_instance.k10(this.heightField);
    this._depth = this.v3j_1.bz(TreeMapPropertyType_depth_getInstance(), null);
    this._rendering = this.v3j_1.bz(TreeMapPropertyType_rendering_getInstance(), null);
    this.h3k_1 = PropertyDelegates_instance.k10(this._rendering);
    this.groupByVariables = PropertySelection.i14(this.groupByFields);
    this.sizeVariable = PropertySingleSelection.s14(this.sizeField);
    this.colorVariable = PropertySingleSelection.s14(this.d3k_1);
    this.labelVariable = PropertySelection.i14(this.labelsFields);
    this.toolTipVariable = PropertySelection.i14(this.toolTipFields);
    this.backgroundVariable = PropertySingleSelection.s14(this.backgroundField);
    this.heightVariable = PropertySingleSelection.s14(this.heightField);
    this.progressive = PropertySingleSelection.s14(this.y3j_1);
    this.depth = PropertySingleSelection.s14(this._depth);
    this.i3k_1 = PropertySingleSelection.s14(this._rendering);
    this.j3k_1 = SimpleBoundedInterval.qp(0.03, 0.0, 0.5);
    this.maximumHeight = this.v3j_1.cz(TreeMapPropertyType_maximumHeight_getInstance(), this.j3k_1.xm());
    this.k3k_1 = SimpleBoundedInterval.qp(0.25, 0.0, 2.0);
    this.lightSourceHeight = this.v3j_1.cz(TreeMapPropertyType_lightSourceHeight_getInstance(), this.k3k_1.xm());
    this.l3k_1 = SimpleBoundedInterval.qp(0.5, 0.0, 1.0);
    this.lightSourceAmbient = this.v3j_1.cz(TreeMapPropertyType_lightSourceAmbient_getInstance(), this.l3k_1.xm());
    this.m3k_1 = SimpleBoundedInterval.qp(-1.0, -4.0, 4.0);
    this.lightSourceX = this.v3j_1.cz(TreeMapPropertyType_lightSourceX_getInstance(), this.m3k_1.xm());
    this.n3k_1 = SimpleBoundedInterval.qp(-1.0, -4.0, 4.0);
    this.lightSourceY = this.v3j_1.cz(TreeMapPropertyType_lightSourceY_getInstance(), this.n3k_1.xm());
    this.o3k_1 = SimpleBoundedInterval.qp(10.0, 0.0, 100.0);
    this.lightSourceZ = this.v3j_1.cz(TreeMapPropertyType_lightSourceZ_getInstance(), this.o3k_1.xm());
    this.hideSearchResults = this.v3j_1.bz(TreeMapPropertyType_hideSearchResults_getInstance(), null);
    this.hideFilterResults = this.v3j_1.bz(TreeMapPropertyType_hideFilterResults_getInstance(), null);
    this.q3k_1 = HashMap.i7();
    var tmp = this;
    tmp.u3k_1 = new DefaultTreeMapSettings$columnPropertyChangeListener$1(this);
    var tmp_0 = this;
    tmp_0.v3k_1 = new DefaultTreeMapSettings$propertyChangeListener$1(this);
    this._model = model;
    this.r3k_1 = colorFactory;
    this.s3k_1 = fontFactory;
    this.t3k_1 = colorMapFactory;
    this._background = this.v3j_1.bz(TreeMapPropertyType_background_getInstance(), null);
    this._tooltipBackground = this.v3j_1.bz(TreeMapPropertyType_tooltipBackground_getInstance(), colorOf_0(_UByte___init__impl__g9hnc4(-24), _UByte___init__impl__g9hnc4(-24), _UByte___init__impl__g9hnc4(-24), _UByte___init__impl__g9hnc4(-56)));
    this._probingColor = this.v3j_1.bz(TreeMapPropertyType_probingColor_getInstance(), colorOf_0(_UByte___init__impl__g9hnc4(0), _UByte___init__impl__g9hnc4(0), _UByte___init__impl__g9hnc4(0), _UByte___init__impl__g9hnc4(-16)));
    this._selectionColor = this.v3j_1.bz(TreeMapPropertyType_selectionColor_getInstance(), colorOf_4(_UByte___init__impl__g9hnc4(-1), _UByte___init__impl__g9hnc4(102), _UByte___init__impl__g9hnc4(0)));
    this.resetToDefaults();
    this.v3j_1.hy(this.v3k_1);
    this.p3k_1 = this.createDefaultTreeMapColumnSettings();
    this.p3k_1.properties.hy(this.u3k_1);
  }
  p1z() {
    return this.v3j_1;
  }
  z3k() {
    return this._model;
  }
  a3l(_set____db54di) {
    this.groupByFields = _set____db54di;
  }
  b3l() {
    return this.groupByFields;
  }
  y2x(_set____db54di) {
    var tmp = KMutableProperty1;
    var tmp_0 = DefaultTreeMapSettings$_get_groupByColumns_$ref_g2pwnd_0();
    return this.z3j_1.ef(this, getPropertyCallableRef('groupByColumns', 1, tmp, tmp_0, DefaultTreeMapSettings$_set_groupByColumns_$ref_hv5egz_0()), _set____db54di);
  }
  r2x() {
    var tmp = KMutableProperty1;
    var tmp_0 = DefaultTreeMapSettings$_get_groupByColumns_$ref_g2pwnd();
    return this.z3j_1.cf(this, getPropertyCallableRef('groupByColumns', 1, tmp, tmp_0, DefaultTreeMapSettings$_set_groupByColumns_$ref_hv5egz()));
  }
  c3l(_set____db54di) {
    this.labelsFields = _set____db54di;
  }
  d3l() {
    return this.labelsFields;
  }
  z2x(_set____db54di) {
    var tmp = KMutableProperty1;
    var tmp_0 = DefaultTreeMapSettings$_get_labelsColumns_$ref_7mfqv6_0();
    return this.a3k_1.ef(this, getPropertyCallableRef('labelsColumns', 1, tmp, tmp_0, DefaultTreeMapSettings$_set_labelsColumns_$ref_e3d5f6_0()), _set____db54di);
  }
  v2x() {
    var tmp = KMutableProperty1;
    var tmp_0 = DefaultTreeMapSettings$_get_labelsColumns_$ref_7mfqv6();
    return this.a3k_1.cf(this, getPropertyCallableRef('labelsColumns', 1, tmp, tmp_0, DefaultTreeMapSettings$_set_labelsColumns_$ref_e3d5f6()));
  }
  e3l(_set____db54di) {
    this.toolTipFields = _set____db54di;
  }
  f3l() {
    return this.toolTipFields;
  }
  s30(_set____db54di) {
    var tmp = KMutableProperty1;
    var tmp_0 = DefaultTreeMapSettings$_get_toolTipColumns_$ref_cs2zs4_0();
    return this.b3k_1.ef(this, getPropertyCallableRef('toolTipColumns', 1, tmp, tmp_0, DefaultTreeMapSettings$_set_toolTipColumns_$ref_ob5r2o_0()), _set____db54di);
  }
  t30() {
    var tmp = KMutableProperty1;
    var tmp_0 = DefaultTreeMapSettings$_get_toolTipColumns_$ref_cs2zs4();
    return this.b3k_1.cf(this, getPropertyCallableRef('toolTipColumns', 1, tmp, tmp_0, DefaultTreeMapSettings$_set_toolTipColumns_$ref_ob5r2o()));
  }
  g3l(_set____db54di) {
    this.sizeField = _set____db54di;
  }
  h3l() {
    return this.sizeField;
  }
  a2y(_set____db54di) {
    var tmp = KMutableProperty1;
    var tmp_0 = DefaultTreeMapSettings$_get_sizeColumn_$ref_1nuosn_0();
    return this.c3k_1.ef(this, getPropertyCallableRef('sizeColumn', 1, tmp, tmp_0, DefaultTreeMapSettings$_set_sizeColumn_$ref_nv8r8t_0()), _set____db54di);
  }
  q30() {
    var tmp = KMutableProperty1;
    var tmp_0 = DefaultTreeMapSettings$_get_sizeColumn_$ref_1nuosn();
    return this.c3k_1.cf(this, getPropertyCallableRef('sizeColumn', 1, tmp, tmp_0, DefaultTreeMapSettings$_set_sizeColumn_$ref_nv8r8t()));
  }
  c2y(_set____db54di) {
    var tmp = KMutableProperty1;
    var tmp_0 = DefaultTreeMapSettings$_get_colorColumn_$ref_x1yx25_0();
    return this.e3k_1.ef(this, getPropertyCallableRef('colorColumn', 1, tmp, tmp_0, DefaultTreeMapSettings$_set_colorColumn_$ref_rvexef_0()), _set____db54di);
  }
  r30() {
    var tmp = KMutableProperty1;
    var tmp_0 = DefaultTreeMapSettings$_get_colorColumn_$ref_x1yx25();
    return this.e3k_1.cf(this, getPropertyCallableRef('colorColumn', 1, tmp, tmp_0, DefaultTreeMapSettings$_set_colorColumn_$ref_rvexef()));
  }
  i3l(_set____db54di) {
    this.backgroundField = _set____db54di;
  }
  j3l() {
    return this.backgroundField;
  }
  d2y(_set____db54di) {
    var tmp = KMutableProperty1;
    var tmp_0 = DefaultTreeMapSettings$_get_backgroundColumn_$ref_91hr0a_0();
    return this.f3k_1.ef(this, getPropertyCallableRef('backgroundColumn', 1, tmp, tmp_0, DefaultTreeMapSettings$_set_backgroundColumn_$ref_mzkf0m_0()), _set____db54di);
  }
  u30() {
    var tmp = KMutableProperty1;
    var tmp_0 = DefaultTreeMapSettings$_get_backgroundColumn_$ref_91hr0a();
    return this.f3k_1.cf(this, getPropertyCallableRef('backgroundColumn', 1, tmp, tmp_0, DefaultTreeMapSettings$_set_backgroundColumn_$ref_mzkf0m()));
  }
  k3l(_set____db54di) {
    this.heightField = _set____db54di;
  }
  l3l() {
    return this.heightField;
  }
  b2y(_set____db54di) {
    var tmp = KMutableProperty1;
    var tmp_0 = DefaultTreeMapSettings$_get_heightColumn_$ref_dr9vz3_0();
    return this.g3k_1.ef(this, getPropertyCallableRef('heightColumn', 1, tmp, tmp_0, DefaultTreeMapSettings$_set_heightColumn_$ref_s6pwx9_0()), _set____db54di);
  }
  v30() {
    var tmp = KMutableProperty1;
    var tmp_0 = DefaultTreeMapSettings$_get_heightColumn_$ref_dr9vz3();
    return this.g3k_1.cf(this, getPropertyCallableRef('heightColumn', 1, tmp, tmp_0, DefaultTreeMapSettings$_set_heightColumn_$ref_s6pwx9()));
  }
  m3l(_set____db54di) {
    this._depth = _set____db54di;
  }
  n3l() {
    return this._depth;
  }
  o3l(_set____db54di) {
    this._rendering = _set____db54di;
  }
  p3l() {
    return this._rendering;
  }
  p2n(_set____db54di) {
    var tmp = KMutableProperty1;
    var tmp_0 = DefaultTreeMapSettings$_get_rendering_$ref_x240cw_0();
    return this.h3k_1.ef(this, getPropertyCallableRef('rendering', 1, tmp, tmp_0, DefaultTreeMapSettings$_set_rendering_$ref_mr8j3w_0()), _set____db54di);
  }
  w30() {
    var tmp = KMutableProperty1;
    var tmp_0 = DefaultTreeMapSettings$_get_rendering_$ref_x240cw();
    return this.h3k_1.cf(this, getPropertyCallableRef('rendering', 1, tmp, tmp_0, DefaultTreeMapSettings$_set_rendering_$ref_mr8j3w()));
  }
  q3l() {
    return this.groupByVariables;
  }
  r3l() {
    return this.sizeVariable;
  }
  s3l() {
    return this.colorVariable;
  }
  t3l() {
    return this.labelVariable;
  }
  u3l() {
    return this.toolTipVariable;
  }
  v3l() {
    return this.backgroundVariable;
  }
  w3l() {
    return this.heightVariable;
  }
  x3l() {
    return this.progressive;
  }
  y3l() {
    return this.depth;
  }
  x30() {
    return this.i3k_1;
  }
  y30() {
    return this.j3k_1;
  }
  z3l() {
    return this.maximumHeight;
  }
  a3m(_set____db54di) {
    this.k3k_1 = _set____db54di;
  }
  z30() {
    return this.k3k_1;
  }
  b3m() {
    return this.lightSourceHeight;
  }
  a31() {
    return this.l3k_1;
  }
  c3m() {
    return this.lightSourceAmbient;
  }
  b31() {
    return this.m3k_1;
  }
  d3m() {
    return this.lightSourceX;
  }
  c31() {
    return this.n3k_1;
  }
  e3m() {
    return this.lightSourceY;
  }
  d31() {
    return this.o3k_1;
  }
  f3m() {
    return this.lightSourceZ;
  }
  g3m(_set____db54di) {
    this._background = _set____db54di;
  }
  h3m() {
    return this._background;
  }
  i3m(_set____db54di) {
    this._tooltipBackground = _set____db54di;
  }
  j3m() {
    return this._tooltipBackground;
  }
  k3m(_set____db54di) {
    this._probingColor = _set____db54di;
  }
  l3m() {
    return this._probingColor;
  }
  m3m(_set____db54di) {
    this._selectionColor = _set____db54di;
  }
  n3m() {
    return this._selectionColor;
  }
  o3m(_set____db54di) {
    this.hideSearchResults = _set____db54di;
  }
  p3m() {
    return this.hideSearchResults;
  }
  q3m(_set____db54di) {
    this.hideFilterResults = _set____db54di;
  }
  r3m() {
    return this.hideFilterResults;
  }
  getGroupByColumnsSelection() {
    return this.groupByVariables;
  }
  getSizeColumnSelection() {
    return this.sizeVariable;
  }
  getColorColumnSelection() {
    return this.colorVariable;
  }
  getLabelColumnsSelection() {
    return this.labelVariable;
  }
  getTooltipColumnsSelection() {
    return this.toolTipVariable;
  }
  getBackgroundColumnSelection() {
    return this.backgroundVariable;
  }
  getHeightColumnSelection() {
    return this.heightVariable;
  }
  getDepthSelection() {
    return this.depth;
  }
  getProgressiveSelection() {
    return this.progressive;
  }
  getHideFilterResultsSelection() {
    return this.hideFilterResults;
  }
  getHideSearchResultsSelection() {
    return this.hideSearchResults;
  }
  createDefaultTreeMapColumnSettings() {
    return new DefaultTreeMapColumnSettings(this.r3k_1, this.s3k_1, this.t3k_1);
  }
  createOverridingTreeMapColumnSettings(defaultSettings, model, field) {
    return new OverridingTreeMapColumnSettings(defaultSettings);
  }
  getDefaultColumnSettings() {
    return this.p3k_1;
  }
  getColumnSettings(field) {
    var tmp;
    if (!(field == null)) {
      if (!this.q3k_1.a3(field)) {
        var treeMapColumnSettings = this.createOverridingTreeMapColumnSettings(this.getDefaultColumnSettings(), this._model, field);
        treeMapColumnSettings.properties.hy(this.u3k_1);
        // Inline function 'kotlin.collections.set' call
        this.q3k_1.o6(field, treeMapColumnSettings);
      }
      tmp = ensureNotNull(this.q3k_1.c3(field));
    } else {
      tmp = this.getDefaultColumnSettings();
    }
    return tmp;
  }
  getDimensionFixed() {
    return this.w3j_1.z2();
  }
  setDimensionFixed(fixed) {
    this.w3j_1.ap(fixed);
  }
  getDimension() {
    return this.x3j_1.z2();
  }
  setDimension(dimension) {
    this.x3j_1.ap(dimension);
  }
  getProgressive() {
    return this.y3j_1.z2();
  }
  setProgressive(progressive) {
    this.y3j_1.ap(progressive);
  }
  getMaximumHeight() {
    return this.j3k_1.start;
  }
  setMaximumHeight(height) {
    this.j3k_1.start = height;
  }
  isHideFilterResults() {
    return this.hideFilterResults.z2();
  }
  isHideSearchResults() {
    return this.hideSearchResults.z2();
  }
  setGroupBy(columns) {
    var fields = this._model.getTreeMapColumnsByIndices(columns.slice());
    this.y2x(fields);
  }
  setGroupByByNames(columnNames) {
    var fields = this._model.getTreeMapColumnsByNames(columnNames.slice());
    this.y2x(fields);
  }
  setLabels(columns) {
    var fields = this._model.getTreeMapColumnsByIndices(columns.slice());
    this.z2x(fields);
  }
  setLabelsByNames(columnNames) {
    var fields = this._model.getTreeMapColumnsByNames(columnNames.slice());
    this.z2x(fields);
  }
  setToolTip(columns) {
    var fields = this._model.getTreeMapColumnsByIndices(columns.slice());
    this.s30(fields);
  }
  setToolTipByNames(columns) {
    var fields = this._model.getTreeMapColumnsByNames(columns.slice());
    this.s30(fields);
  }
  getShowPopup(field) {
    var tmp;
    if (!(this.toolTipFields == null)) {
      var inductionVariable = 0;
      var last = this.toolTipFields.z2().k1();
      if (inductionVariable < last)
        do {
          var i = inductionVariable;
          inductionVariable = inductionVariable + 1 | 0;
          var toolTipField = this.toolTipFields.z2().l1(i);
          if (toolTipField === field) {
            return true;
          }
        }
         while (inductionVariable < last);
      tmp = false;
    } else {
      tmp = false;
    }
    return tmp;
  }
  setShowPopup(field, show) {
    if (!(this.getShowPopup(field) === show)) {
      if (show) {
        if (!(field == null)) {
          var fields = toMutableList_0(this.toolTipFields.z2());
          fields.c1(field);
          this.s30(fields);
        }
      } else {
        var fields_0 = toMutableList_0(this.toolTipFields.z2());
        // Inline function 'kotlin.collections.remove' call
        (isInterface(fields_0, MutableCollection) ? fields_0 : THROW_CCE()).e3(field);
        this.s30(fields_0);
      }
    }
  }
  setBackground(column) {
    var field = this._model.getTreeMapColumn(column);
    this.d2y(field);
  }
  setBackgroundByName(columnName) {
    var field = ensureNotNull(this._model.getTreeMapColumnByName(columnName));
    this.d2y(field);
  }
  setSize(column) {
    var field = this._model.getTreeMapColumn(column);
    this.a2y(field);
  }
  setSizeByName(columnName) {
    var field = ensureNotNull(this._model.getTreeMapColumnByName(columnName));
    this.a2y(field);
  }
  setColor(column) {
    var field = this._model.getTreeMapColumn(column);
    this.c2y(field);
  }
  setColorByName(columnName) {
    var field = ensureNotNull(this._model.getTreeMapColumnByName(columnName));
    this.c2y(field);
  }
  setHeight(column) {
    var field = this._model.getTreeMapColumn(column);
    this.b2y(field);
  }
  setHeightByName(columnName) {
    var field = ensureNotNull(this._model.getTreeMapColumnByName(columnName));
    this.b2y(field);
  }
  getDepth() {
    return this._depth.z2();
  }
  setDepth(depth) {
    this._depth.ap(depth);
  }
  setHideFilterResults(hideFilterResults) {
    this.hideFilterResults.ap(hideFilterResults);
  }
  setHideSearchResults(hideSearchResults) {
    this.hideSearchResults.ap(hideSearchResults);
  }
  getLightSourceHeight() {
    return this.k3k_1.start;
  }
  setLightSourceHeight(value) {
    this.k3k_1.start = value;
  }
  getLightSourceAmbient() {
    return this.l3k_1.start;
  }
  setLightSourceAmbient(value) {
    this.l3k_1.start = value;
  }
  getLightSourceX() {
    return this.m3k_1.start;
  }
  setLightSourceX(value) {
    this.m3k_1.start = value;
  }
  getLightSourceY() {
    return this.n3k_1.start;
  }
  setLightSourceY(value) {
    this.n3k_1.start = value;
  }
  getLightSourceZ() {
    return this.o3k_1.start;
  }
  setLightSourceZ(value) {
    this.o3k_1.start = value;
  }
  getBackgroundProperty() {
    return this._background;
  }
  getBackground() {
    return this._background.z2();
  }
  setBackgroundColor(color) {
    this._background.ap(color);
  }
  getTooltipBackgroundProperty() {
    return this._tooltipBackground;
  }
  getTooltipBackground() {
    return this._tooltipBackground.z2();
  }
  setTooltipBackground(color) {
    this._tooltipBackground.ap(color);
  }
  getProbingColorProperty() {
    return this._probingColor;
  }
  getProbingColor() {
    return this._probingColor.z2();
  }
  setProbingColor(color) {
    this._probingColor.ap(color);
  }
  getSelectionColorProperty() {
    return this._selectionColor;
  }
  getSelectionColor() {
    return this._selectionColor.z2();
  }
  setSelectionColor(color) {
    this._selectionColor.ap(color);
  }
  getValue(key) {
    return this.v3j_1.ky(key);
  }
  resetToDefaults() {
    this.setDimensionFixed(false);
    this.setProgressive(Progressive_Disabled_getInstance());
    this.setDepth(Companion_getInstance_83().c3n_1.m3d());
    this.p2n(Companion_getInstance_92().instance.getDefault());
    this.setMaximumHeight(0.03);
    this.setBackgroundColor(null);
    this.setTooltipBackground(colorOf_0(_UByte___init__impl__g9hnc4(-24), _UByte___init__impl__g9hnc4(-24), _UByte___init__impl__g9hnc4(-24), _UByte___init__impl__g9hnc4(-56)));
    this.setProbingColor(colorOf_0(_UByte___init__impl__g9hnc4(0), _UByte___init__impl__g9hnc4(0), _UByte___init__impl__g9hnc4(0), _UByte___init__impl__g9hnc4(-16)));
    this.setSelectionColor(colorOf_4(_UByte___init__impl__g9hnc4(-1), _UByte___init__impl__g9hnc4(102), _UByte___init__impl__g9hnc4(0)));
    this.setHideSearchResults(true);
    this.setHideFilterResults(true);
  }
  save(dataFrame, elementFactory, root) {
    var configuration = elementFactory.e3n('Configuration');
    var groupBy = elementFactory.e3n('GroupBy');
    var _iterator__ex2g4s = this.groupByVariables.h1();
    while (_iterator__ex2g4s.i1()) {
      var variable = _iterator__ex2g4s.j1();
      if (!(variable == null)) {
        var v = elementFactory.e3n('Variable');
        v.g3n(elementFactory.f3n('name', ensureNotNull(this._model.getColumnName(variable))));
        v.g3n(elementFactory.f3n('index', dataFrame.d2g(variable).toString()));
        groupBy.h3n(v);
      }
    }
    configuration.h3n(groupBy);
    var size = elementFactory.e3n('Size');
    if (!(this.sizeVariable.z13() == null)) {
      size.g3n(elementFactory.f3n('variableName', ensureNotNull(this._model.getColumnName(ensureNotNull(this.sizeVariable.z13())))));
      size.g3n(elementFactory.f3n('variableIndex', dataFrame.d2g(ensureNotNull(this.sizeVariable.z13())).toString()));
    }
    configuration.h3n(size);
    var color = elementFactory.e3n('Color');
    if (!(this.colorVariable.z13() == null)) {
      color.g3n(elementFactory.f3n('variableName', ensureNotNull(this._model.getColumnName(ensureNotNull(this.colorVariable.z13())))));
      color.g3n(elementFactory.f3n('variableIndex', dataFrame.d2g(ensureNotNull(this.colorVariable.z13())).toString()));
    }
    configuration.h3n(color);
    var height = elementFactory.e3n('Height');
    if (!(this.heightVariable.z13() == null)) {
      height.g3n(elementFactory.f3n('variableName', ensureNotNull(this._model.getColumnName(ensureNotNull(this.heightVariable.z13())))));
      height.g3n(elementFactory.f3n('variableIndex', dataFrame.d2g(ensureNotNull(this.heightVariable.z13())).toString()));
    }
    configuration.h3n(height);
    var label = elementFactory.e3n('Label');
    var _iterator__ex2g4s_0 = this.labelVariable.h1();
    while (_iterator__ex2g4s_0.i1()) {
      var variable_0 = _iterator__ex2g4s_0.j1();
      if (!(variable_0 == null)) {
        var v_0 = elementFactory.e3n('Variable');
        v_0.g3n(elementFactory.f3n('name', ensureNotNull(this._model.getColumnName(variable_0))));
        v_0.g3n(elementFactory.f3n('index', dataFrame.d2g(variable_0).toString()));
        label.h3n(v_0);
      }
    }
    configuration.h3n(label);
    var tooltip = elementFactory.e3n('Tooltip');
    var _iterator__ex2g4s_1 = this.toolTipVariable.h1();
    while (_iterator__ex2g4s_1.i1()) {
      var variable_1 = _iterator__ex2g4s_1.j1();
      if (!(variable_1 == null)) {
        var v_1 = elementFactory.e3n('Variable');
        v_1.g3n(elementFactory.f3n('name', ensureNotNull(this._model.getColumnName(variable_1))));
        v_1.g3n(elementFactory.f3n('index', dataFrame.d2g(variable_1).toString()));
        tooltip.h3n(v_1);
      }
    }
    configuration.h3n(tooltip);
    var background = elementFactory.e3n('Background');
    if (!(this.backgroundVariable.z13() == null)) {
      background.g3n(elementFactory.f3n('variableName', ensureNotNull(this._model.getColumnName(ensureNotNull(this.backgroundVariable.z13())))));
      background.g3n(elementFactory.f3n('variableIndex', dataFrame.d2g(ensureNotNull(this.backgroundVariable.z13())).toString()));
    }
    configuration.h3n(background);
    root.h3n(configuration);
  }
  get properties() {
    return this.p1z();
  }
  get groupByColumns() {
    return this.r2x();
  }
  set groupByColumns(value) {
    this.y2x(value);
  }
  get labelsColumns() {
    return this.v2x();
  }
  set labelsColumns(value) {
    this.z2x(value);
  }
  get toolTipColumns() {
    return this.t30();
  }
  set toolTipColumns(value) {
    this.s30(value);
  }
  get sizeColumn() {
    return this.q30();
  }
  set sizeColumn(value) {
    this.a2y(value);
  }
  get colorColumn() {
    return this.r30();
  }
  set colorColumn(value) {
    this.c2y(value);
  }
  get backgroundColumn() {
    return this.u30();
  }
  set backgroundColumn(value) {
    this.d2y(value);
  }
  get heightColumn() {
    return this.v30();
  }
  set heightColumn(value) {
    this.b2y(value);
  }
  get rendering() {
    return this.w30();
  }
  set rendering(value) {
    this.p2n(value);
  }
  get renderingSelection() {
    return this.x30();
  }
  get maximumHeightInterval() {
    return this.y30();
  }
  get lightSourceHeightInterval() {
    return this.z30();
  }
  set lightSourceHeightInterval(value) {
    this.a3m(value);
  }
  get lightSourceAmbientInterval() {
    return this.a31();
  }
  get lightSourceXInterval() {
    return this.b31();
  }
  get lightSourceYInterval() {
    return this.c31();
  }
  get lightSourceZInterval() {
    return this.d31();
  }
}
class DefaultTreeMapToolTip extends AbstractTreeMapToolTip {
  constructor(view) {
    super(view);
    this.n3n_1 = 0;
    this.o3n_1 = 0;
  }
  gm() {
    return this.n3n_1;
  }
  hm() {
    return this.o3n_1;
  }
  m32(d) {
    this.n3n_1 = d.cm_1;
    this.o3n_1 = d.dm_1;
  }
  g32() {
    return this.j32(null);
  }
  n21() {
    return ToolTipType_Painted_getInstance();
  }
}
class Companion_82 {
  constructor() {
    Companion_instance_82 = this;
    this.p3n_1 = new Insets(0, 2, 0, 1);
  }
}
class DefaultTreeMapTooltipRenderer extends EnhancedLabel {
  static j37() {
    Companion_getInstance_82();
    var $this = this.j1z();
    $this.isOpaque = false;
    $this.setName('TreeMap.tooltipRenderer');
    $this.setInsets(Companion_getInstance_82().p3n_1.t1x_1, Companion_getInstance_82().p3n_1.u1x_1, Companion_getInstance_82().p3n_1.v1x_1, Companion_getInstance_82().p3n_1.w1x_1);
    $this.setEffect(Plain_getInstance());
    $this.setHorizontalAlignment(2);
    $this.setRendering(Rendering_WordWrap_getInstance());
    return $this;
  }
  q3n(view, column, node, dimension) {
    var model = ensureNotNull(view.h2l());
    var value = model.getStringValue(node, column);
    this.setText(value);
    this.q1z(model.getColumnClass(column) === getKClass(HtmlString));
    var settings = model.settings.getColumnSettings(column);
    var rendering = settings.getTooltipRendering();
    if (!(rendering == null)) {
      this.setRendering(rendering);
    }
    if (model.isNumericType(column)) {
      this.setHorizontalAlignment(4);
    } else {
      this.setHorizontalAlignment(2);
    }
    this.setDesiredWidth(dimension.cm_1);
    this.setDesiredHeight(dimension.dm_1);
    return this;
  }
}
class DefaultTreeMapView$timer$3$1 {
  constructor(this$0) {
    this.v3o_1 = this$0;
  }
  j18() {
    this.v3o_1.q2n().q26();
  }
}
class DefaultTreeMapView$1 {
  constructor(this$0) {
    this.x3o_1 = this$0;
  }
  d27(width, height) {
    this.x3o_1.i34();
    this.x3o_1.j34();
  }
}
class DefaultTreeMapView$2 {
  y3o(view, tg, width, height) {
    var width_0 = numberToInt(width);
    var height_0 = numberToInt(height);
    if (width_0 > 0 && height_0 > 0) {
      var current = Companion_getInstance_29().s17_1.e18();
      var _iterator__ex2g4s = view.q37().h1();
      while (_iterator__ex2g4s.i1()) {
        var renderer = _iterator__ex2g4s.j1();
        renderer.v38(tg, view, null);
      }
      var paintingForPrint = false;
      var _iterator__ex2g4s_0 = view.r37().h1();
      while (_iterator__ex2g4s_0.i1()) {
        var renderer_0 = _iterator__ex2g4s_0.j1();
        renderer_0.v38(tg, view, null);
      }
      var _iterator__ex2g4s_1 = view.s37().h1();
      while (_iterator__ex2g4s_1.i1()) {
        var renderer_1 = _iterator__ex2g4s_1.j1();
        renderer_1.v38(tg, view, null);
      }
      // Inline function 'kotlin.run' call
      var toolTip = view.s33();
      if (!(toolTip == null) && (paintingForPrint || toolTip.n21() === ToolTipType_Painted_getInstance())) {
        var tooltipPosition = toolTip.d32();
        var tooltipDimension = toolTip.t31(tg);
        if (!(tooltipPosition == null) && !(tooltipDimension == null)) {
          toolTip.m32(tooltipDimension);
          tg.u2m();
          tg.o1j(tooltipPosition.g1h(), tooltipPosition.h1h());
          tg.v2m(Double_3.z1h(0.0, 0.0, tooltipDimension.gm(), tooltipDimension.hm()));
          toolTip.x31(tg);
          toolTip.a32(tg);
          tg.w2m();
        }
      }
      // Inline function 'kotlin.run' call
      var toolTip_0 = view.v33();
      if (!(toolTip_0 == null) && (paintingForPrint || toolTip_0.n21() === ToolTipType_Painted_getInstance())) {
        var tooltipPosition_0 = toolTip_0.g32();
        var tooltipDimension_0 = toolTip_0.t31(tg);
        if (!(tooltipPosition_0 == null) && !(tooltipDimension_0 == null)) {
          toolTip_0.m32(tooltipDimension_0);
          tg.u2m();
          tg.o1j(tooltipPosition_0.g1h(), tooltipPosition_0.h1h());
          tg.v2m(Double_3.z1h(0.0, 0.0, tooltipDimension_0.gm(), tooltipDimension_0.hm()));
          toolTip_0.x31(tg);
          toolTip_0.a32(tg);
          tg.w2m();
        }
      }
      if (view.y23().y23().f13()) {
        tg.u2m();
        tg.y2m(Companion_getInstance_56().e1b_1.b28());
        // Inline function 'kotlin.doubleArrayOf' call
        var dashPattern = new Float64Array([10.0, 2.0, 2.0, 2.0]);
        tg.x2m(1.0);
        tg.z3o(dashPattern);
        var r = ensureNotNull(view.y23().c24());
        tg.z2m(Double_3.z1h(r.g1h(), r.h1h(), r.gm(), r.hm()));
        tg.w2m();
      }
      if (view.w37()) {
        tg.u2m();
        var duration = subtract_0(Companion_getInstance_29().s17_1.e18(), current);
        tg.a3p(colorOf_4(_UByte___init__impl__g9hnc4(-1), _UByte___init__impl__g9hnc4(0), _UByte___init__impl__g9hnc4(0)));
        tg.l3c(Companion_getInstance_57().k1z_1.l1z().s29(Weight_BOLD_getInstance()));
        tg.m3c(duration.toString() + ' ms', 5.0, height_0 - 5.0);
        tg.w2m();
      }
    }
  }
}
class DefaultTreeMapView extends AbstractTreeMapView {
  constructor() {
    super(new Headless());
    var tmp = this;
    tmp.t3o_1 = lazy(DefaultTreeMapView$component$delegate$lambda(this));
    var tmp_0 = this;
    tmp_0.u3o_1 = lazy(DefaultTreeMapView$timer$delegate$lambda(this));
    var tmp_1 = this.q2n();
    tmp_1.p26(new DefaultTreeMapView$1(this));
    var tmp_2 = this.q2n();
    tmp_2.i3p(new DefaultTreeMapView$2());
    this.i34();
    this.j34();
  }
  q2n() {
    var tmp0 = this.t3o_1;
    var tmp = KProperty1;
    // Inline function 'kotlin.getValue' call
    getPropertyCallableRef('component', 1, tmp, DefaultTreeMapView$_get_component_$ref_7cm7en(), null);
    return tmp0.z2();
  }
  w3o() {
    var tmp0 = this.u3o_1;
    var tmp = KProperty1;
    // Inline function 'kotlin.getValue' call
    getPropertyCallableRef('timer', 1, tmp, DefaultTreeMapView$_get_timer_$ref_3t3e87(), null);
    return tmp0.z2();
  }
  g2n(model) {
    Companion_getInstance_84().z3d_1.x3b_1 = new Headless();
    Companion_getInstance_84().a3e_1.x3b_1 = new Headless();
    super.g2n(model);
  }
  h2l() {
    return super.h2l();
  }
  e34(delay) {
    this.w3o().r15();
  }
  j34() {
    var m = !(this.h2l() == null) && !(ensureNotNull(this.h2l()).settings.getDimension() == null) ? ensureNotNull(ensureNotNull(this.h2l()).settings.getDimension()) : Dimension.fm(0, 0);
    var width;
    var height;
    var w;
    var h;
    var v = Dimension.fm(numberToInt(this.q2n().n26()), numberToInt(this.q2n().o26()));
    var tmp0 = m.gm();
    // Inline function 'kotlin.math.max' call
    var b = v.gm();
    // Inline function 'kotlin.math.max' call
    var b_0 = Math.max(tmp0, b);
    width = Math.max(0.0, b_0);
    var tmp0_0 = m.hm();
    // Inline function 'kotlin.math.max' call
    var b_1 = v.hm();
    // Inline function 'kotlin.math.max' call
    var b_2 = Math.max(tmp0_0, b_1);
    height = Math.max(0.0, b_2);
    // Inline function 'kotlin.math.max' call
    var b_3 = v.cm_1;
    w = Math.max(0, b_3);
    // Inline function 'kotlin.math.max' call
    var b_4 = v.dm_1;
    h = Math.max(0, b_4);
    this.o32_1.rp(0.0, width);
    this.p32_1.rp(0.0, height);
    this.o32_1.mp(w);
    this.p32_1.mp(h);
    this.o32_1.qo(0.0, this.o32_1.pp());
    this.p32_1.qo(height - this.p32_1.pp(), this.p32_1.pp());
    this.q32_1.i24(w, h);
  }
  h2n(licenseModel) {
  }
  i34() {
    if (!(this.h2l() == null)) {
      if (this.v37() && !ensureNotNull(ensureNotNull(this.h2l()).settings.getDimensionFixed())) {
        var dimension = Dimension.fm(numberToInt(this.q2n().n26()), numberToInt(this.q2n().o26()));
        ensureNotNull(this.h2l()).settings.setDimension(dimension);
      }
    }
  }
  k2m() {
    return null;
  }
  k1() {
    return Dimension.fm(numberToInt(this.q2n().n26()), numberToInt(this.q2n().o26()));
  }
  y1g(l) {
    this.q2n().y1g(l);
  }
  z1g(l) {
    this.q2n().z1g(l);
  }
  r26(l) {
    this.q2n().r26(l);
  }
  s26(l) {
    this.q2n().s26(l);
  }
  t26(l) {
    this.q2n().t26(l);
  }
}
class Companion_83 {
  constructor() {
    Companion_instance_83 = this;
    this.s3m_1 = new InfiniteDepth();
    this.t3m_1 = new ThresholdDepth(1);
    this.u3m_1 = new ThresholdDepth(2);
    this.v3m_1 = new ThresholdDepth(3);
    this.w3m_1 = new ThresholdDepth(4);
    this.x3m_1 = new ThresholdDepth(5);
    this.y3m_1 = new ThresholdDepth(6);
    this.z3m_1 = new ThresholdDepth(7);
    this.a3n_1 = new ThresholdDepth(8);
    this.b3n_1 = new ThresholdDepth(9);
    this.c3n_1 = new DepthFactory([this.s3m_1, this.t3m_1, this.u3m_1, this.v3m_1, this.w3m_1, this.x3m_1, this.y3m_1, this.z3m_1, this.a3n_1, this.b3n_1]);
  }
}
class DepthFactory {
  constructor(entries) {
    Companion_getInstance_83();
    this.d3n_1 = ArrayList.q1();
    addAll(this.d3n_1, entries);
  }
  m3d() {
    return Companion_getInstance_83().s3m_1;
  }
}
class EqualCirclesInCircle {
  constructor() {
    EqualCirclesInCircle_instance = this;
    var tmp = this;
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_0 = new Float32Array([0.0, 0.0]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_1 = new Float32Array([-0.5, 0.0, 0.5, 0.0]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_2 = new Float32Array([-0.4641016, -0.2679492, 0.4641016, -0.2679492, 0.0, 0.5358984]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_3 = new Float32Array([-0.41421357, -0.41421357, 0.41421357, -0.41421357, -0.41421357, 0.41421357, 0.41421357, 0.41421357]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_4 = new Float32Array([-0.3701919, -0.5095255, 0.3701919, -0.5095255, -0.5989831, 0.1946214, 0.5989831, 0.1946214, 0.0, 0.62980807]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_5 = new Float32Array([-0.33333334, -0.57735026, 0.33333334, -0.57735026, -0.6666667, 0.0, 0.6666667, 0.0, -0.33333334, 0.57735026, 0.33333334, 0.57735026]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_6 = new Float32Array([-0.33333334, -0.57735026, 0.33333334, -0.57735026, -0.6666667, 0.0, 0.0, 0.0, 0.6666667, 0.0, -0.33333334, 0.57735026, 0.33333334, 0.57735026]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_7 = new Float32Array([-0.30259338, -0.6283417, 0.30259338, -0.6283417, -0.67992115, -0.15518758, 0.67992115, -0.15518758, 0.0, 0.0, -0.54525447, 0.4348259, 0.54525447, 0.4348259, 0.0, 0.6974066]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_8 = new Float32Array([-0.27676865, -0.6681786, 0.27676865, -0.6681786, -0.6681786, -0.27676865, 0.6681786, -0.27676865, 0.0, 0.0, -0.6681786, 0.27676865, 0.6681786, 0.27676865, -0.27676865, 0.6681786, 0.27676865, 0.6681786]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_9 = new Float32Array([-0.26225892, -0.6895521, 0.26225892, -0.6895521, -0.65420747, -0.3409904, 0.65420747, -0.3409904, 0.0, -0.23530635, -0.71546066, 0.1799386, 0.71546066, 0.1799386, 0.0, 0.28921148, -0.41505563, 0.6099104, 0.41505563, 0.6099104]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_10 = new Float32Array([-0.2548547, -0.70020753, 0.2548547, -0.70020753, -0.64531475, -0.37257266, 0.64531475, -0.37257266, -0.2548547, -0.04493776, 0.2548547, -0.04493776, -0.73382485, 0.12939313, 0.73382485, 0.12939313, 0.0, 0.39648354, -0.47897017, 0.57081443, 0.47897017, 0.57081443]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_11 = new Float32Array([0.0, -0.75183654, -0.4685099, -0.5880107, 0.4685099, -0.5880107, -0.24816348, -0.14327724, 0.24816348, -0.14327724, -0.7434872, -0.11173612, 0.7434872, -0.11173612, 0.0, 0.2865545, -0.6511095, 0.37591827, 0.6511095, 0.37591827, -0.27497727, 0.69974685, 0.27497727, 0.69974685]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_12 = new Float32Array([0.0, -0.76393205, -0.449028, -0.618034, 0.449028, -0.618034, 0.0, -0.29179606, -0.72654253, -0.23606798, 0.72654253, -0.23606798, -0.27751455, 0.090169944, 0.27751455, 0.090169944, -0.72654253, 0.23606798, 0.72654253, 0.23606798, 0.0, 0.47213596, -0.449028, 0.618034, 0.449028, 0.618034]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_13 = new Float32Array([-0.23103073, -0.73344296, 0.23103073, -0.73344296, -0.6096758, -0.46862474, 0.6096758, -0.46862474, 0.0, -0.333286, -0.76819026, -0.034604043, 0.76819026, -0.034604043, -0.30836722, 0.010822211, 0.30836722, 0.010822211, 0.0, 0.3549304, -0.64934057, 0.41191083, 0.64934057, 0.41191083, -0.29603884, 0.70970047, 0.29603884, 0.70970047]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_14 = new Float32Array([-0.22117254, -0.746763, 0.22117254, -0.746763, -0.6418677, -0.44111004, 0.6418677, -0.44111004, -0.22117254, -0.30441788, 0.22117254, -0.30441788, -0.77855986, -0.02041486, 0.77855986, -0.02041486, -0.35786468, 0.116277285, 0.35786468, 0.116277285, 0.0, 0.3762812, -0.6178686, 0.474142, 0.6178686, 0.474142, -0.26000392, 0.7341459, 0.26000392, 0.7341459]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_15 = new Float32Array([0.0, -0.78333527, -0.41642413, -0.6634795, 0.41642413, -0.6634795, -0.7054167, -0.34058985, 0.7054167, -0.34058985, -0.21666475, -0.27894002, 0.21666475, -0.27894002, -0.7785419, 0.08652506, 0.7785419, 0.08652506, -0.3478278, 0.13406205, 0.3478278, 0.13406205, 0.0, 0.3925002, -0.6134226, 0.48716208, 0.6134226, 0.48716208, -0.26058733, 0.7387208, 0.26058733, 0.7387208]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_16 = new Float32Array([-0.20867966, -0.763309, 0.20867966, -0.763309, -0.5679899, -0.55097675, 0.5679899, -0.55097675, 0.0, -0.40186524, -0.3593102, -0.18953298, 0.3593102, -0.18953298, -0.775452, -0.15767702, 0.775452, -0.15767702, 0.0, 0.022799296, -0.74781543, 0.25876626, 0.74781543, 0.25876626, -0.33086324, 0.27719727, 0.33086324, 0.27719727, -0.0, 0.53159523, -0.38574672, 0.6909322, 0.38574672, 0.6909322]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_17 = new Float32Array([-0.20560464, -0.767327, 0.20560464, -0.767327, -0.56172234, -0.56172234, 0.56172234, -0.56172234, -0.20560464, -0.3561177, 0.20560464, -0.3561177, -0.767327, -0.20560464, 0.767327, -0.20560464, -0.4112093, 0.0, 0.4112093, 0.0, -0.767327, 0.20560464, 0.767327, 0.20560464, -0.20560464, 0.3561177, 0.20560464, 0.3561177, -0.56172234, 0.56172234, 0.56172234, 0.56172234, -0.20560464, 0.767327, 0.20560464, 0.767327]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_18 = new Float32Array([-0.20560464, -0.767327, 0.20560464, -0.767327, -0.56172234, -0.56172234, 0.56172234, -0.56172234, -0.20560464, -0.3561177, 0.20560464, -0.3561177, -0.767327, -0.20560464, 0.767327, -0.20560464, -0.4112093, 0.0, 0.0, 0.0, 0.4112093, 0.0, -0.767327, 0.20560464, 0.767327, 0.20560464, -0.20560464, 0.3561177, 0.20560464, 0.3561177, -0.56172234, 0.56172234, 0.56172234, 0.56172234, -0.20560464, 0.767327, 0.20560464, 0.767327]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_19 = new Float32Array([-0.19522402, -0.7807381, 0.19522402, -0.7807381, -0.53971946, -0.5969651, 0.53971946, -0.5969651, -0.19522402, -0.39029008, 0.19522402, -0.39029008, -0.7571738, -0.27267614, 0.7571738, -0.27267614, -0.42198148, -0.0724368, 0.42198148, -0.0724368, 0.0, 0.0, -0.7964017, 0.115796275, 0.7964017, 0.115796275, -0.30080065, 0.2987301, 0.30080065, 0.2987301, -0.6481696, 0.47701216, 0.6481696, 0.47701216, 0.0, 0.54766506, -0.34736893, 0.72594714, 0.34736893, 0.72594714]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_20 = new Float32Array([-0.19039215, -0.7869026, 0.19039215, -0.7869026, -0.5290594, -0.61283034, 0.5290594, -0.61283034, 0.0, -0.45713374, -0.7506924, -0.30319265, 0.7506924, -0.30319265, -0.33866727, -0.28306144, 0.33866727, -0.28306144, 0.0, 0.0, -0.80626327, 0.07351488, 0.80626327, 0.07351488, -0.4257408, 0.08763368, 0.4257408, 0.08763368, -0.19039215, 0.3869791, 0.19039215, 0.3869791, -0.683479, 0.43396002, 0.683479, 0.43396002, -0.40950105, 0.698408, 0.40950105, 0.698408, 0.0, 0.7772235]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_21 = new Float32Array([-0.0861123, -0.8116115, 0.27884403, -0.76705575, -0.43359375, -0.69146585, 0.5872142, -0.5668404, -0.69308543, -0.4310001, 0.16102736, -0.41877776, -0.20627783, -0.40249214, 0.7764202, -0.2515954, 0.42072973, -0.15852211, -0.44657195, -0.12421697, -0.008521454, -0.09253932, -0.8119284, -0.083071, 0.80806625, 0.11470617, 0.40514088, 0.20881331, -0.40064925, 0.24056986, 0.042861454, 0.27151853, -0.7660057, 0.28171584, 0.67573035, 0.4577303, -0.19928, 0.54818773, -0.56463647, 0.5893337, 0.40626764, 0.7078666, 0.054360516, 0.81435466]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_22 = new Float32Array([-0.16034868, -0.8038267, 0.20021126, -0.79483616, -0.4898617, -0.65717924, 0.52200603, -0.63194835, -0.17509694, -0.44345635, 0.2200437, -0.43470982, -0.72452706, -0.38328788, 0.7427293, -0.34670192, -0.42458308, -0.18299334, 0.440767, -0.14946336, 0.015796514, -0.13744327, -0.8189085, -0.035183813, 0.81964433, 0.0056734183, -0.42321372, 0.17767608, 0.40858343, 0.20976989, 0.048111383, 0.22177817, -0.75473183, 0.3197326, 0.7378588, 0.35695025, -0.21290486, 0.47068545, 0.1603279, 0.5645489, -0.544423, 0.61274195, 0.513208, 0.6391139, -0.10068833, 0.8134562]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_23 = new Float32Array([0.11770021, -0.81460166, -0.23523109, -0.7887303, 0.4488734, -0.6898854, -0.5446775, -0.617054, 0.023343535, -0.47353473, 0.6970677, -0.43763667, -0.3093029, -0.35280293, 0.3545167, -0.34881848, -0.75343454, -0.33130884, 0.8164018, -0.10448625, 0.15598781, -0.055874646, -0.47331947, -0.039229352, -0.82291144, 0.0156822, 0.49536428, 0.044392135, -0.15438978, 0.11411233, 0.7848155, 0.24797954, 0.30718815, 0.35718057, -0.7402646, 0.35977423, -0.38701096, 0.38079044, -0.034352448, 0.4633757, 0.6081479, 0.55460376, -0.3717211, 0.7343382, 0.3190579, 0.75870365, -0.029013293, 0.82254934]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_24 = new Float32Array([0.119223475, -0.8175246, -0.22764783, -0.79418963, -0.5342085, -0.6302238, 0.5726889, -0.5954731, 0.24084036, -0.49183527, -0.10603095, -0.4685003, -0.74617434, -0.3546613, 0.7669519, -0.30715716, -0.40453178, -0.2902828, 0.10621345, -0.17130473, 0.4535601, -0.15665857, -0.63110644, -0.026600901, -0.20094946, -0.008469945, 0.8254072, 0.035548564, 0.09365106, 0.17612354, 0.44099772, 0.1907697, -0.42752415, 0.25521192, -0.7733724, 0.29061297, 0.73770374, 0.3719595, -0.14507905, 0.4579161, 0.1990334, 0.5074222, -0.5853469, 0.583035, 0.5193717, 0.6425059, -0.29367125, 0.77221626, 0.05163279, 0.8243523]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_25 = new Float32Array([-0.038242128, -0.8275366, 0.3004004, -0.77203554, -0.37032267, -0.7410401, 0.58749706, -0.5840604, -0.6388593, -0.527388, -0.05106595, -0.48461577, 0.28599226, -0.42018843, -0.3577257, -0.33060628, 0.77378464, -0.2958659, -0.7977736, -0.22324103, 0.16437186, -0.09930277, 0.5069913, -0.0800408, -0.17378387, -0.040908966, -0.51664, -0.026459323, 0.827298, 0.043096423, -0.816406, 0.14057206, 0.045864508, 0.22274558, 0.4128512, 0.25581527, -0.38962898, 0.29233107, 0.7388547, 0.3746638, -0.68939495, 0.45936248, 0.19935839, 0.52966374, -0.14379573, 0.5317578, 0.52363086, 0.6419423, -0.44331455, 0.69977933, 0.029594833, 0.82789093]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_26 = new Float32Array([-0.16930793, -0.81325525, 0.16930793, -0.81325525, -0.47979107, -0.6781223, 0.47979107, -0.6781223, -0.059421573, -0.49296525, 0.71055067, -0.43031043, 0.26954076, -0.41268772, -0.7279351, -0.4001997, -0.39293686, -0.35083488, 0.50030035, -0.16487586, -0.11405054, -0.1587851, -0.8271667, -0.07645011, 0.8271667, -0.07645011, -0.49216843, -0.027085287, 0.19453721, -0.01937811, -0.08048666, 0.17816322, 0.4566312, 0.19502205, -0.78895366, 0.26000267, 0.78895366, 0.26000267, -0.39720964, 0.29794323, 0.22262767, 0.43977302, -0.107363485, 0.5157108, -0.6196458, 0.5532526, 0.6196458, 0.5532526, -0.3473756, 0.7545724, 0.3473756, 0.7545724, 0.017384442, 0.83051014]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_27 = new Float32Array([0.10739565, -0.8262805, -0.44784173, -0.70325834, 0.44784173, -0.70325834, -0.13469408, -0.59146184, 0.18490662, -0.49972692, -0.6870604, -0.47231606, 0.6870604, -0.47231606, -0.37408397, -0.36004117, -0.05433852, -0.26881206, 0.4241253, -0.26878464, -0.81700337, -0.16625275, 0.81700337, -0.16625275, -0.5040269, -0.053977866, 0.18428145, -0.037251238, -0.18428145, 0.037251238, 0.5040269, 0.053977866, -0.81700337, 0.16625275, 0.81700337, 0.16625275, -0.4241253, 0.26878464, 0.05433852, 0.26881206, 0.37408397, 0.36004117, -0.6870604, 0.47231606, 0.6870604, 0.47231606, -0.18490662, 0.49972692, 0.13469408, 0.59146184, -0.44784173, 0.70325834, 0.44784173, 0.70325834, -0.107132696, 0.82663286]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_28 = new Float32Array([0.054795023, -0.83530104, -0.27204946, -0.791553, 0.36953768, -0.75111395, -0.6097868, -0.5734896, 0.64191437, -0.53728604, 0.020558335, -0.5112976, -0.30212387, -0.46627992, 0.33530098, -0.42711052, -0.7825411, -0.2972536, 0.79841375, -0.25152683, -0.4748782, -0.19004391, -0.14927362, -0.1785523, 0.17465979, -0.14365892, 0.5030025, -0.1135781, -0.8367519, 0.024012001, 0.8339652, 0.07233503, -0.529089, 0.1312217, -0.20348439, 0.14271331, 0.120449014, 0.17760667, 0.4550303, 0.20966442, 0.7431831, 0.38523915, -0.3762387, 0.41894934, -0.70822024, 0.42270303, 0.26074067, 0.4716622, -0.062978104, 0.5084937, 0.5398196, 0.63978523, -0.38229802, 0.7447003, 0.25468132, 0.7974132, -0.06903744, 0.83424467]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_29 = new Float32Array([-0.1613491, -0.82298344, 0.1613491, -0.82298344, -0.46015838, -0.7011345, 0.46015838, -0.7011345, -0.1729397, -0.50049347, 0.1729397, -0.50049347, -0.6908377, -0.47547725, 0.6908377, -0.47547725, -0.42261782, -0.2960553, 0.42261782, -0.2960553, 0.0, -0.22804898, -0.81923324, -0.17942198, 0.81923324, -0.17942198, -0.55101335, 0.0, -0.22831514, 0.0, 0.22831514, 0.0, 0.55101335, 0.0, -0.81923324, 0.17942198, 0.81923324, 0.17942198, 0.0, 0.22804898, -0.42261782, 0.2960553, 0.42261782, 0.2960553, -0.6908377, 0.47547725, 0.6908377, 0.47547725, -0.1729397, 0.50049347, 0.1729397, 0.50049347, -0.46015838, 0.7011345, 0.46015838, 0.7011345, -0.1613491, 0.82298344, 0.1613491, 0.82298344]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_30 = new Float32Array([-0.27530003, -0.79472274, 0.27530003, -0.79472274, -0.55060005, -0.6357782, 0.0, -0.6357782, 0.55060005, -0.6357782, -0.27530003, -0.4768336, 0.27530003, -0.4768336, -0.55060005, -0.3178891, 0.0, -0.3178891, 0.55060005, -0.3178891, -0.8259001, -0.15894455, -0.27530003, -0.15894455, 0.27530003, -0.15894455, 0.8259001, -0.15894455, -0.55060005, 0.0, 0.0, 0.0, 0.55060005, 0.0, 0.27530003, 0.15894455, -0.8259001, 0.15894455, -0.27530003, 0.15894455, 0.8259001, 0.15894455, -0.55060005, 0.3178891, 0.0, 0.3178891, 0.55060005, 0.3178891, -0.27530003, 0.4768336, 0.27530003, 0.4768336, -0.55060005, 0.6357782, 0.0, 0.6357782, 0.55060005, 0.6357782, -0.27530003, 0.79472274, 0.27530003, 0.79472274]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_31 = new Float32Array([0.0046014143, -0.84445345, -0.3014526, -0.7888277, 0.31003106, -0.78549576, -0.5756095, -0.6178969, 0.6011625, -0.5930653, 0.008168486, -0.53340596, -0.29788554, -0.4777802, 0.31359813, -0.47444823, -0.76027244, -0.36757135, 0.7751013, -0.33517277, -0.48254848, -0.22745466, 0.48753694, -0.21655568, -0.14493822, -0.20691049, 0.16606557, -0.20059167, -0.8417744, -0.06737022, 0.843867, -0.031800795, -0.5451871, 0.07724139, 0.5500945, 0.08815702, -0.23442392, 0.09100827, 0.23932268, 0.10172717, -0.8090564, 0.24197233, 0.79812884, 0.2758862, -0.0021098705, 0.2978741, -0.40268865, 0.35375085, 0.3824328, 0.37792054, -0.66655797, 0.5184818, 0.6440929, 0.5461384, -0.1697453, 0.55990773, 0.14100024, 0.5740675, -0.43361458, 0.7246387, 0.4026604, 0.7422853, -0.022259008, 0.8436182]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_32 = new Float32Array([0.00831911, -0.8457976, -0.29537773, -0.79258734, 0.31091055, -0.786624, -0.5598268, -0.6340636, 0.57219034, -0.62292933, 0.08753886, -0.5478256, -0.21615797, -0.49461535, 0.35848567, -0.40068305, -0.74988997, -0.3912899, 0.75744146, -0.37646404, -0.45536584, -0.30008337, -0.018195283, -0.25819927, 0.54373676, -0.15421778, -0.8403129, -0.09652424, 0.2416938, -0.092305444, 0.84230214, -0.07726453, -0.25742227, -0.063690804, -0.5544501, 0.018998705, 0.5154697, 0.15280676, 0.16586477, 0.20654745, -0.8190809, 0.21106687, -0.14205885, 0.22223641, 0.81403506, 0.22976, -0.44200656, 0.30608675, 0.3790392, 0.42930236, -0.68901503, 0.4906129, 0.6776046, 0.5062556, -0.22038914, 0.5204435, 0.08777215, 0.530429, -0.46739763, 0.70496964, 0.41841274, 0.73510104, -0.18101561, 0.82624215, 0.1271457, 0.83622766]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_33 = new Float32Array([0.037210736, -0.8479199, -0.26255155, -0.8071056, 0.33224526, -0.7810031, 0.58601767, -0.6133853, -0.03810108, -0.5500557, -0.37708646, -0.5270967, -0.67907995, -0.50912, 0.30957606, -0.47932556, 0.764711, -0.36819804, -0.21052143, -0.27455103, 0.09195874, -0.26916867, -0.5125149, -0.25657433, -0.8145084, -0.23859762, 0.49173498, -0.23778601, 0.84527284, -0.076593824, 0.27411765, -0.027629107, -0.3459499, -0.0040286607, -0.039849035, 0.0031361917, -0.6479434, 0.013948056, 0.5680459, 0.05495938, 0.8184399, 0.2247419, 0.14230986, 0.24467576, -0.1990054, 0.26041517, -0.8034862, 0.27342764, -0.50099885, 0.2783919, 0.4372275, 0.3277409, 0.6876214, 0.49752343, 0.21904442, 0.5373104, -0.6565417, 0.5378715, -0.08347157, 0.5400134, -0.3703694, 0.63599706, 0.46943834, 0.70709294, 0.15871978, 0.833763, -0.1437962, 0.836466]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_34 = new Float32Array([0.09608062, -0.8452399, -0.20195572, -0.826363, 0.3840532, -0.7590554, -0.47510362, -0.7056476, 0.62271893, -0.5795542, 0.16607827, -0.5549257, -0.13195807, -0.5360488, -0.6935851, -0.4925461, -0.40510598, -0.4153334, 0.404744, -0.37542453, 0.7846426, -0.32863048, 0.04112943, -0.2836882, -0.8210719, -0.22249225, -0.23497589, -0.16989957, -0.53259283, -0.1452795, 0.5637096, -0.12261644, 0.26704475, -0.088382624, 0.84986913, -0.037207253, -0.009060566, 0.025405992, -0.8473723, 0.07498093, -0.55784255, 0.1522847, 0.5242008, 0.1733921, -0.26107597, 0.18562531, 0.22753593, 0.20762591, 0.8103603, 0.25880128, -0.7692449, 0.3632137, -0.024479486, 0.36784524, -0.32154876, 0.47807476, 0.238936, 0.5089183, 0.67098504, 0.5229159, -0.59631807, 0.60668504, -0.073455215, 0.6624354, 0.4489195, 0.7225879, -0.3499027, 0.77539027, 0.17153043, 0.83321023]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_35 = new Float32Array([0.119019054, -0.8434243, -0.17724122, -0.8331361, 0.40086377, -0.7515573, -0.4520341, -0.7219386, 0.634156, -0.56866187, 0.07727307, -0.54993963, -0.21895532, -0.5387712, -0.6720767, -0.5233001, 0.35911778, -0.4580726, -0.43899795, -0.34013274, 0.7906394, -0.31689027, -0.06114985, -0.2877473, -0.81071764, -0.2612797, 0.5179602, -0.20060602, 0.22156566, -0.19547898, -0.28140208, -0.089056, -0.57763886, -0.078112334, 0.85136086, -0.02673703, 6.4628146E-4, 0.0021839316, -0.8509951, 0.036571395, 0.5786816, 0.089547224, 0.28228706, 0.09467427, -0.21724206, 0.2031831, -0.51356924, 0.21132001, 0.8034605, 0.28280988, 0.06439873, 0.29567343, -0.7869255, 0.32600373, 0.41833794, 0.3638902, -0.3517057, 0.46737155, 0.65788037, 0.54103935, 0.18919149, 0.5645652, -0.6275437, 0.5759506, -0.10092875, 0.62544405, 0.43261802, 0.73373824, -0.35973018, 0.7711782, 0.09685404, 0.84625614]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_36 = new Float32Array([-0.14795591, -0.83909965, 0.14795591, -0.83909965, -0.42602205, -0.73789185, 0.42602205, -0.73789185, -0.65270364, -0.54768336, -0.096571356, -0.54768336, 0.19934045, -0.54768336, 0.65270364, -0.54768336, -0.3746375, -0.4464756, 0.42602205, -0.35747495, -0.80065954, -0.29141626, 0.051384546, -0.29141626, 0.80065954, -0.29141626, -0.5225934, -0.19020845, -0.22668159, -0.19020845, 0.27806613, -0.1012078, 0.57397795, -0.1012078, -0.8520441, 0.0, 0.0, 0.0, 0.8520441, 0.0, -0.57397795, 0.1012078, -0.27806613, 0.1012078, 0.22668159, 0.19020845, 0.5225934, 0.19020845, -0.80065954, 0.29141626, -0.051384546, 0.29141626, 0.80065954, 0.29141626, -0.42602205, 0.35747495, 0.3746375, 0.4464756, -0.65270364, 0.54768336, -0.19934045, 0.54768336, 0.096571356, 0.54768336, 0.65270364, 0.54768336, -0.42602205, 0.73789185, 0.42602205, 0.73789185, -0.14795591, 0.83909965, 0.14795591, 0.83909965]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_37 = new Float32Array([0.09193262, -0.8514119, -0.19481204, -0.8339077, 0.36833152, -0.77310133, -0.4596333, -0.7225587, 0.60327977, -0.60778886, 0.0740497, -0.5646906, -0.21269497, -0.54718643, -0.67272913, -0.52989554, 0.3475722, -0.47685933, 0.77033716, -0.37407807, -0.43625593, -0.3667719, -0.04482107, -0.30315924, -0.8101185, -0.27760002, 0.5146296, -0.24314855, 0.22870146, -0.215328, -0.2738831, -0.12978253, -0.57364535, -0.11447634, 0.8507037, -0.098269954, -1.3082715E-12, -4.968819E-12, -0.8563402, 0.0059356242, 0.5938487, 0.03299134, 0.30792052, 0.060811903, -0.4112725, 0.12251303, 0.8353352, 0.18859711, -0.15986364, 0.26151836, 0.12656416, 0.2836095, -0.8061926, 0.28880328, 0.48024943, 0.3006898, -0.5344641, 0.38203707, 0.7259612, 0.45424014, 0.28865108, 0.5207945, -0.28305525, 0.5210424, 0.00382569, 0.5676192, 0.53489023, 0.6687647, -0.53420097, 0.6693154, 0.2836247, 0.808029, -0.28279212, 0.80832076, 4.411181E-4, 0.8563607]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_38 = new Float32Array([-0.0993953, -0.8525399, 0.18362486, -0.8384424, -0.37158158, -0.7737124, 0.4466303, -0.7329564, -0.60326624, -0.6105519, 0.08846039, -0.5715288, -0.19428179, -0.5526605, 0.660954, -0.54757977, 0.35146582, -0.46604282, -0.42596644, -0.3895, -0.76919615, -0.38084248, -0.017376093, -0.3086642, 0.80323505, -0.30251804, 0.526195, -0.24295345, 0.24562934, -0.20317824, -0.25896728, -0.16056676, -0.5702057, -0.14558569, -0.85128534, -0.10962205, 0.85796523, -0.024482522, 3.6580235E-12, -6.8038127E-12, 0.58092517, 0.035082083, 0.30035952, 0.07485729, -0.40320653, 0.08334753, -0.6842862, 0.11931117, -0.1709939, 0.24575579, 0.819179, 0.25622156, 0.10971478, 0.28450873, 0.49447846, 0.30494523, -0.4828739, 0.3552892, -0.7639535, 0.39125282, 0.2910746, 0.50224197, 0.691104, 0.50899804, -0.25066125, 0.51769745, 0.022570392, 0.5928215, -0.5949195, 0.61868775, 0.48770013, 0.7062948, -0.3610405, 0.77868706, 0.20883611, 0.81069607, -0.08780888, 0.8538111]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_39 = new Float32Array([-0.041784517, -0.8586103, 0.23709527, -0.82628286, -0.31620747, -0.7993562, 0.4906859, -0.7058221, -0.55690295, -0.65484095, -0.12768048, -0.591326, 0.15384805, -0.55295706, 0.69193876, -0.5100767, -0.73819786, -0.4404787, 0.41121155, -0.43655866, -0.37102538, -0.4357823, -0.07544393, -0.31548125, 0.8193878, -0.25992528, 0.19837128, -0.2534794, -0.5631451, -0.22098944, 0.5472411, -0.19096762, -0.84075475, -0.17913397, -0.29440382, -0.13976681, 0.32057163, -7.224559E-4, -1.1981002E-11, -1.1363408E-12, 0.85943896, 0.017950412, -0.5760251, 0.059462164, 0.58729225, 0.08690807, -0.8536347, 0.10131764, -0.28950062, 0.14093758, 0.20297909, 0.25421086, 0.80782026, 0.29391146, -0.07069297, 0.31684154, -0.49785435, 0.329107, 0.46969968, 0.34184137, -0.775464, 0.37096247, -0.28105956, 0.50748587, 0.26044914, 0.5290129, 0.6700375, 0.5385232, -0.013222925, 0.59164363, -0.6145804, 0.6010395, 0.46078694, 0.7256948, -0.38814414, 0.76700824, 0.17879316, 0.8312622, -0.1203075, 0.85116607]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_40 = new Float32Array([0.05568636, -0.86045915, -0.21853198, -0.8341071, 0.32422063, -0.7989818, -0.47044417, -0.72261554, 0.55966085, -0.6559502, -0.037009973, -0.6010415, 0.2315243, -0.53956413, -0.67433685, -0.5373646, -0.2966234, -0.508895, 0.73797494, -0.44596398, 0.4669645, -0.39653254, 0.012880751, -0.33011523, -0.5005161, -0.32364404, -0.8093981, -0.29726344, -0.24255823, -0.22695974, 0.26198542, -0.21248446, 0.840962, -0.19045703, 0.5664655, -0.1295489, -0.45677444, -0.051657304, -0.861842, -0.02681978, 0.07008105, -0.014841246, -0.19881655, 0.045027018, 0.33719727, 0.052531198, 0.8581097, 0.08449038, -0.64790493, 0.1467344, 0.5922461, 0.1566476, -0.38994703, 0.24341872, 0.15921082, 0.28654414, -0.116910815, 0.31267497, 0.7876679, 0.35081363, 0.44140488, 0.38716236, -0.7661905, 0.39552876, -0.31223458, 0.50771195, 0.22556104, 0.55833936, 0.6368267, 0.5813284, -0.04842153, 0.5870391, -0.6023429, 0.61698776, 0.42098284, 0.75250536, -0.37701255, 0.7754692, 0.16216815, 0.84687215, -0.11319949, 0.85479635]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_41 = new Float32Array([-0.1263724, -0.85459316, 0.14583738, -0.85148746, -0.38603336, -0.77283746, 0.40356547, -0.76382875, -0.6073611, -0.6143387, 0.62121934, -0.6003216, 0.19878675, -0.58445907, -0.09791589, -0.58069813, -0.35943323, -0.50191265, 0.41644064, -0.42095187, -0.7683776, -0.39483586, 0.7771859, -0.37720224, 0.08361508, -0.33779472, -0.18490095, -0.2929957, -0.5202019, -0.2819861, 0.5724072, -0.19783252, 0.30120698, -0.17420508, -0.8530939, -0.13612568, 0.83395475, -0.10652843, 0.050738245, -0.06755977, -0.33727247, -0.06740596, -0.6057554, -0.022409057, 0.5932305, 0.073597394, 0.32203028, 0.09722485, -0.85309774, 0.13610181, 0.8460909, 0.17444086, -0.06635371, 0.17819881, -0.33727628, 0.20482153, -0.6057592, 0.24981844, 0.16588984, 0.32022256, 0.49693877, 0.32822597, 0.7497992, 0.42906946, -0.16162671, 0.4332103, -0.4325493, 0.45983303, -0.7010322, 0.50482994, 0.32619172, 0.5402478, 0.05904872, 0.59261596, 0.57905215, 0.6410913, -0.19013768, 0.7039407, -0.46106026, 0.7305634, 0.29768077, 0.8109782, 0.030537749, 0.86334634]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_42 = new Float32Array([-0.0017293628, -0.8652264, 0.26460782, -0.82377326, -0.2678987, -0.8227089, 0.5052647, -0.7023726, -0.5080684, -0.70034724, -0.13043319, -0.59085315, 0.13905251, -0.5852576, 0.6968854, -0.5128064, -0.6989298, -0.5100165, 0.3797094, -0.46385697, -0.43781424, -0.44011998, -0.19244939, -0.32854068, 0.077036306, -0.32294512, 0.82087314, -0.27347213, 0.55186707, -0.25645494, -0.6747922, -0.24155568, -0.41176233, -0.17183815, 0.29736435, -0.16767308, -0.16581477, -0.060316075, -0.8638167, -0.049400594, 0.86519474, -0.0075972527, 0.59618866, 0.0094199125, 0.09445966, 0.009762945, -0.60289323, 0.018221907, 0.34541363, 0.10837548, -0.35664222, 0.13004869, -0.09636777, 0.2001277, -0.8371017, 0.21881603, 0.8255489, 0.25901493, 0.5565428, 0.2760321, -0.57617825, 0.28643852, 0.155274, 0.30134016, 0.36828053, 0.46893406, -0.10892891, 0.46937865, -0.37847257, 0.46964967, 0.7057831, 0.5004896, -0.67977726, 0.535278, 0.12979262, 0.5945421, 0.51752084, 0.69339156, -0.21252793, 0.71821815, -0.48207158, 0.71848917, 0.27903295, 0.8189996, 0.013464794, 0.86512333]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_43 = new Float32Array([0.034600705, -0.86594075, -0.23038705, -0.83544743, 0.3254817, -0.8031888, -0.47354984, -0.7258107, 0.5543298, -0.6661599, 0.13335586, -0.61815906, -0.13163191, -0.58766574, -0.6718524, -0.5474166, -0.3747947, -0.47802898, 0.73066527, -0.46602458, 0.39633387, -0.45125148, 0.14880264, -0.35187018, -0.116185114, -0.32137686, -0.8065092, -0.31716478, 0.5726693, -0.2511161, 0.83778346, -0.22174187, -0.3593479, -0.21174012, 0.3251381, -0.15173481, -0.6140401, -0.13249211, 0.062284376, -0.099555016, -0.8655336, -0.043613754, -0.18799768, -0.0073203044, 0.60042286, 0.014172598, 0.865537, 0.043546844, -0.44268987, 0.071927704, 0.3528916, 0.11355389, 0.01702095, 0.16331297, -0.72161156, 0.18096319, -0.24697497, 0.25315693, 0.5446214, 0.298994, 0.81129664, 0.30471027, -0.5017815, 0.3320364, 0.21510682, 0.34194764, -0.041716672, 0.42350185, -0.7425298, 0.44687817, -0.3217458, 0.5288497, 0.4135255, 0.5312917, 0.68020076, 0.537008, 0.15636918, 0.6021365, -0.5714552, 0.65152866, -0.10397158, 0.68287164, 0.35189274, 0.7918835, -0.34624556, 0.7944587, 0.09411428, 0.8615063]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_44 = new Float32Array([-0.022583244, -0.8642128, -0.2831912, -0.8204515, 0.2831912, -0.8204515, -0.5168216, -0.6973043, 0.10055345, -0.62968504, 0.6176784, -0.6097633, -0.16004406, -0.5868211, 0.3570809, -0.56689936, -0.70615435, -0.50449455, -0.39367446, -0.46367395, 0.17444316, -0.3761329, 0.52450097, -0.36264727, 0.7899837, -0.35929722, -0.08615436, -0.33326894, -0.5763122, -0.27290753, -0.8369097, -0.23004355, -0.31978476, -0.2101218, 0.3418632, -0.17188083, 0.08126567, -0.12901686, 0.59839064, -0.109095104, 0.8622941, -0.09892847, -0.6694897, -0.025791468, -0.15236472, -0.0058697094, -0.41296223, 0.036994252, 0.33169654, 0.09202261, 0.07109904, 0.13488656, 0.588224, 0.15480833, -0.85212743, 0.16497496, 0.85212743, 0.16497496, -0.5956, 0.22776069, -0.2455422, 0.24124633, 0.23851907, 0.33913866, -0.022078436, 0.38200262, 0.49504653, 0.40192437, 0.76043093, 0.41285095, -0.42817995, 0.43201277, -0.74360687, 0.44745678, -0.20471619, 0.57276905, 0.31240878, 0.5926908, 0.051811263, 0.6355548, -0.5689362, 0.6554765, 0.5689362, 0.6554765, -0.34547248, 0.7962328, 0.2192313, 0.83980685, -0.083822526, 0.8637954]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_45 = new Float32Array([-0.030625433, -0.8687445, 0.22905825, -0.83856255, -0.28753915, -0.82035124, 0.46802437, -0.73253536, -0.51844585, -0.6977598, -0.101975836, -0.6172376, 0.15770786, -0.58705574, 0.66465914, -0.5602527, -0.3392266, -0.50742584, 0.39667395, -0.48102856, -0.59436727, -0.44759485, -0.08598473, -0.3535011, 0.18536866, -0.32709143, 0.59330875, -0.30874586, -0.8138252, -0.30552167, -0.32655647, -0.24630128, 0.8402307, -0.22286153, -0.5810572, -0.18650213, 0.3838501, -0.15230536, -0.12573008, -0.07892349, 0.13556424, -0.07044754, -0.8678602, -0.049735073, 0.6167972, -0.0336369, -0.3640213, 0.028611874, 0.8684947, 0.037037898, -0.62187386, 0.07172367, 0.33356154, 0.1042441, -0.002423308, 0.151602, -0.84340006, 0.2105499, 0.56650865, 0.22291256, -0.26078528, 0.26879698, 0.8182062, 0.29358736, -0.52113086, 0.31296507, 0.20926887, 0.3342395, -0.040887672, 0.41018865, -0.74265707, 0.45179132, 0.44221598, 0.45290798, -0.35321695, 0.5133434, 0.6939135, 0.5235828, 0.14475991, 0.5945242, -0.5747431, 0.65216964, -0.13331933, 0.6547351, 0.5068586, 0.7062218, -0.3548455, 0.7935613, 0.2739599, 0.8249854, 0.016282445, 0.8691316]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_46 = new Float32Array([0.08836861, -0.86603945, -0.1702658, -0.853723, 0.33918527, -0.8017398, -0.41516805, -0.7645366, 0.5599952, -0.6665124, 0.08166319, -0.60719883, -0.6255285, -0.6054316, -0.17697121, -0.5948823, 0.33247986, -0.54289913, 0.73126376, -0.4723205, -0.4042896, -0.47090733, -0.77593285, -0.39466637, -0.037786726, -0.37654513, 0.50370055, -0.34804022, 0.21323802, -0.31306264, -0.55469394, -0.2601421, -0.2651051, -0.25257015, 0.8378395, -0.23634367, -0.85769254, -0.14898609, -0.044080425, -0.11769415, 0.38277242, -0.117354855, 0.6377067, -0.072056375, -0.37757215, -0.019343613, -0.6364536, -0.014461814, 0.16922948, 0.029078932, 0.8694522, 0.043431718, -0.8635745, 0.1098746, -0.062656574, 0.14428444, 0.39686763, 0.15246576, 0.6535638, 0.18638511, -0.307056, 0.22979675, -0.5659375, 0.23467855, 0.16189058, 0.3025816, -0.7930584, 0.35901496, 0.49584073, 0.39173084, -0.095154755, 0.4011644, 0.7615741, 0.4217088, -0.41961592, 0.46297848, 0.28469658, 0.5416028, -0.65238255, 0.57639426, 0.038810723, 0.6227422, 0.60385096, 0.6270545, -0.22006397, 0.6279708, -0.45284826, 0.74336535, 0.39270684, 0.77692646, 0.14682098, 0.85806584, -0.112053715, 0.8632945]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_47 = new Float32Array([0.11484223, -0.8640528, -0.14182386, -0.86003596, 0.3615483, -0.7931322, -0.38618988, -0.78143024, 0.57689816, -0.65342516, -0.5970625, -0.6350529, 0.02743304, -0.6226956, -0.22585034, -0.5809687, 0.27413914, -0.5517751, 0.7422149, -0.45704803, -0.75615335, -0.43359888, -0.4499277, -0.4247081, 0.48948896, -0.41206807, 0.03971346, -0.36629206, -0.21356992, -0.32456508, 0.2769171, -0.26816943, -0.6090185, -0.22325405, 0.8431611, -0.22103219, 0.59043515, -0.17605221, -0.8572413, -0.15783946, -0.37940902, -0.108479924, -0.1238769, -0.08404737, 0.1313627, -0.05672786, 0.38560772, -0.0213288, -0.6178216, 0.033292476, 0.8709819, 0.034153275, 0.61933297, 0.08481319, -0.86604434, 0.098707065, -0.33445054, 0.14424987, -0.019916486, 0.15065637, 0.2960494, 0.21923912, -0.5515146, 0.28127837, 0.8232644, 0.28637668, 0.52977467, 0.3253811, -0.7997374, 0.34669295, -0.18131447, 0.35026675, 0.095770776, 0.37980714, -0.39837852, 0.48729524, 0.34740198, 0.5082305, 0.7041471, 0.5137633, -0.664071, 0.56461096, -0.13574685, 0.60288745, 0.11887534, 0.63546276, 0.5239607, 0.69659245, -0.47081137, 0.7335616, 0.29833245, 0.8190077, -0.23671928, 0.83889204, 0.017902916, 0.87146735]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_48 = new Float32Array([-0.13746409, -0.862319, 0.12291223, -0.8588754, 0.37438133, -0.7888784, -0.37943745, -0.78645897, 0.5852626, -0.6480418, -0.58941036, -0.6442716, -0.016556535, -0.6394127, 0.23005944, -0.58036685, -0.25564137, -0.53804755, 0.7467848, -0.45255154, 0.4409407, -0.43953028, -0.7505061, -0.4366798, -0.49453214, -0.40910363, -0.04263847, -0.3871716, 0.20397751, -0.32812575, -0.2741408, -0.2836703, 0.5923232, -0.23608692, 0.8453257, -0.21889466, -0.6438788, -0.20416115, -0.06875489, -0.13493402, 0.36206463, -0.12984735, -0.8688484, -0.08713744, -0.40730858, -0.067864366, 0.14507541, 0.0013834721, 0.5980052, 0.017677499, 0.87257475, 0.03322307, -0.63227814, 0.04915935, -0.20192267, 0.0808719, 0.36721924, 0.12368625, -0.8572477, 0.16618307, -0.42689222, 0.19789562, 0.011907628, 0.2171894, 0.57286423, 0.27206415, 0.8262338, 0.28253886, -0.6518618, 0.31491932, -0.21306194, 0.3342131, 0.23369262, 0.34041885, -0.4380315, 0.45123684, 7.683578E-4, 0.47053063, 0.4568415, 0.4975516, 0.71021104, 0.5080263, -0.66300106, 0.56826055, -0.2242012, 0.58755434, 0.22229308, 0.5939513, -0.010370913, 0.7238718, -0.4685373, 0.7366649, 0.44570222, 0.7508928, -0.23534048, 0.84089553, 0.2111538, 0.8472925]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_49 = new Float32Array([-0.09866021, -0.8685892, 0.15286723, -0.8607048, -0.3424864, -0.80429107, 0.39172643, -0.7814931, -0.55741787, -0.67339915, 0.598123, -0.6375186, -0.16503987, -0.6258508, 0.08648756, -0.6179663, 0.3253468, -0.53875464, -0.3799713, -0.49495885, -0.7261557, -0.48670217, 0.7549527, -0.44071242, 0.023775022, -0.3742547, 0.5130961, -0.3711885, -0.54870915, -0.30826187, -0.21751073, -0.30277464, 0.26263425, -0.29504302, -0.8354277, -0.25489807, 0.6942339, -0.19649646, -0.026519433, -0.12768081, 0.45038354, -0.12747689, -0.38624856, -0.116077654, -0.63391525, -0.07147478, 0.21189767, -0.047148187, 0.8739381, -0.020329997, -0.87416786, 0.003404447, 0.63152134, 0.04721516, -0.20071302, 0.053936403, 0.39303547, 0.12754385, -0.44152755, 0.12942682, 0.037704077, 0.13446902, -0.68919426, 0.1740297, 0.83514994, 0.23896602, 0.5842898, 0.29439402, -0.25599203, 0.2994409, 0.21884188, 0.30916107, -0.5147822, 0.37253255, -0.020279778, 0.3875769, -0.7709884, 0.41201696, 0.40854564, 0.47451127, 0.7070405, 0.5140767, -0.2955503, 0.5479632, 0.18877265, 0.5971002, -0.6216689, 0.6145803, -0.059838064, 0.6360993, 0.5312964, 0.69419396, -0.4208312, 0.7662129, 0.31152335, 0.8167829, -0.18511897, 0.8543489, 0.065934196, 0.87168443]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_50 = new Float32Array([-0.10570153, -0.86902356, 0.14338292, -0.86360645, -0.3462247, -0.8040542, 0.3808541, -0.7882416, -0.55870545, -0.6739606, 0.58747804, -0.64903337, -0.16969803, -0.6282397, 0.10825184, -0.61658263, 0.34627923, -0.54150903, -0.38217878, -0.49814615, -0.72593397, -0.48927972, 0.7465193, -0.45725667, -0.039904997, -0.41557524, 0.51708657, -0.36013296, 0.19792499, -0.34135053, -0.5494073, -0.3134652, -0.25238574, -0.28548166, -0.83436555, -0.26496968, 0.84509635, -0.22844458, -0.033481028, -0.16651472, 0.36810607, -0.15938677, 0.6156636, -0.13132086, -0.40870637, -0.09148094, -0.6578388, -0.089155145, 0.16469577, -0.0155234365, 0.8745746, 0.027163815, -0.18980163, 0.027486002, -0.8747935, 0.03333189, 0.39099023, 0.088703394, 0.6385477, 0.1167693, -0.4022824, 0.15757959, -0.66023934, 0.15997665, 0.008375166, 0.17847729, 0.8311944, 0.2747556, 0.25554597, 0.29781404, -0.20643555, 0.3124799, 0.52637357, 0.3398797, -0.5292802, 0.37192503, -0.78650755, 0.382321, 0.041551225, 0.4254019, 0.72013456, 0.49777606, 0.3551263, 0.5261913, -0.33611044, 0.5292713, -0.6438348, 0.5931707, -0.10643912, 0.6258296, 0.14113154, 0.65377915, 0.5507475, 0.6804792, -0.45066506, 0.750517, 0.33675274, 0.808067, -0.22099376, 0.8470753, 0.026576905, 0.8750248]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_51 = new Float32Array([-0.04579474, -0.8751124, 0.20059901, -0.853041, -0.28853902, -0.8274444, 0.4310066, -0.762989, -0.50828904, -0.71383554, 0.100751, -0.6267063, -0.14662214, -0.62482, 0.62706643, -0.61213285, -0.6875324, -0.5433397, 0.3311586, -0.5366543, -0.36637214, -0.5112112, 0.773154, -0.41249457, 0.5272184, -0.38579816, -0.10399247, -0.38051644, 0.1433677, -0.37487042, -0.811985, -0.32954407, -0.56359756, -0.32924357, -0.32405216, -0.26747763, 0.3577307, -0.2056012, 0.8576274, -0.17998378, 0.6116918, -0.15328734, 0.12346052, -0.12613727, -0.12388707, -0.122112714, -0.87172884, -0.08948635, -0.62434846, -0.08943874, -0.3848031, -0.027672822, 0.38628, 0.040126223, 0.8737547, 0.0668703, 0.6278191, 0.093566746, 0.116203934, 0.121136606, -0.13114366, 0.12516116, -0.8620028, 0.1577027, -0.6146225, 0.15775032, -0.36024535, 0.21848555, 0.30964464, 0.27533686, 0.8202507, 0.30839536, 0.55118376, 0.3287774, -0.15339106, 0.3715391, -0.783582, 0.39232412, -0.53620166, 0.39237174, 0.092911944, 0.39460114, 0.36004362, 0.5175289, 0.70137924, 0.5253438, -0.33629906, 0.53809744, -0.10363561, 0.62214947, -0.6109959, 0.6281743, 0.14331092, 0.63679314, 0.5266135, 0.7004264, -0.4110933, 0.77390003, 0.30988076, 0.8196907, -0.17842984, 0.85795206, 0.06845304, 0.87363213]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_52 = new Float32Array([-0.0025203018, -0.8750278, 0.24006088, -0.8442784, -0.24582773, -0.8426173, 0.366858, -0.6352132, -0.122101024, -0.63172054, -0.6111176, -0.6300559, -0.36660635, -0.6300184, 0.12240371, -0.6299363, 0.61131084, -0.62986845, -0.7639875, -0.43133682, 0.7420223, -0.4232193, -0.48895833, -0.41824737, 6.4154374E-5, -0.4182318, -0.2444471, -0.41820988, 0.24457538, -0.41813487, 0.48908663, -0.41809735, -0.61124647, -0.20651318, -0.36673522, -0.20647566, -0.122223966, -0.20643815, 0.12228728, -0.20640066, 0.36679852, -0.20636316, 0.61130977, -0.20632565, -0.8555394, -0.19618253, 0.8555995, -0.19592008, -0.4890233, 0.005258534, -0.24451207, 0.0052960366, -8.182018E-7, 0.005333539, 0.24451043, 0.0053710416, 0.48902166, 0.005408544, -0.73331624, 0.015589171, 0.7333114, 0.01581412, -0.36680016, 0.21703024, -0.12228892, 0.21706773, 0.12222233, 0.21710524, 0.36673358, 0.21714275, -0.8464291, 0.23236376, 0.8463578, 0.23262338, -0.60511047, 0.2717472, 0.6050271, 0.2719328, -0.24457702, 0.42880192, -6.577444E-5, 0.42883945, 0.24444547, 0.42887694, 0.7277296, 0.4834304, -0.48288733, 0.4835189, 0.48273897, 0.483667, -0.73154175, 0.485055, -0.122353874, 0.6405736, 0.12215737, 0.6406111, -0.49048892, 0.72791195, 0.4902656, 0.7280624, -0.2706617, 0.8349715, 0.27040556, 0.8350545, 0.0041644815, 0.8547889]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_53 = new Float32Array([-0.21112317, -0.85235006, 0.21112317, -0.85235006, -0.44101226, -0.7579577, 0.4410039, -0.75795656, 0.0, -0.730458, -0.21112317, -0.60856605, 0.21112317, -0.60856605, -0.6338826, -0.607673, 0.6338826, -0.607673, -0.42224634, -0.48667398, 0.0, -0.48667398, 0.42224634, -0.48667398, -0.21112317, -0.36478198, 0.21112317, -0.36478198, -0.6338826, -0.36388895, 0.6338826, -0.36388895, -0.42224634, -0.24288996, 0.0, -0.24288996, 0.42224634, -0.24288996, -0.8444014, -0.24095613, 0.8444014, -0.24095613, -0.21112317, -0.12099793, 0.21112317, -0.12099793, -0.6327652, -0.11995712, 0.6327652, -0.11995712, 0.0, 8.940921E-4, -0.421642, 0.0019349055, 0.421642, 0.0019349055, -0.877555, 0.004107874, 0.8775665, 0.0041112485, -0.6327652, 0.12382693, -0.21051884, 0.12382693, 0.21051884, 0.12382693, 0.6327652, 0.12382693, -0.421642, 0.24571896, 0.421642, 0.24571896, 0.0, 0.24675976, -0.8421671, 0.24865282, 0.8421671, 0.24865282, -0.6310439, 0.37054485, 0.6310439, 0.37054485, -0.19307497, 0.39559764, 0.19307497, 0.39559764, -0.41805807, 0.48947665, 0.41805807, 0.48947665, 0.0, 0.5444355, -0.62745994, 0.6143025, 0.62745994, 0.6143025, -0.2249831, 0.63831455, 0.2249831, 0.63831455, -0.434385, 0.76314044, 0.434385, 0.76314044, -0.12250156, 0.8689237, 0.122465566, 0.8689288]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_54 = new Float32Array([-0.21094011, -0.85250425, 0.21094011, -0.85250425, -0.43884337, -0.760099, 0.43884337, -0.760099, 0.0, -0.73071796, -0.6328203, -0.6089316, -0.21094011, -0.6089316, 0.21094011, -0.6089316, 0.6328203, -0.6089316, -0.42188022, -0.4871453, 0.0, -0.4871453, 0.42188022, -0.4871453, -0.6328203, -0.36535898, -0.21094011, -0.36535898, 0.21094011, -0.36535898, 0.6328203, -0.36535898, -0.84376043, -0.24357265, -0.42188022, -0.24357265, 0.0, -0.24357265, 0.42188022, -0.24357265, 0.84376043, -0.24357265, -0.6328203, -0.121786326, -0.21094011, -0.121786326, 0.21094011, -0.121786326, 0.6328203, -0.121786326, 0.87768674, -1.1E-29, -0.87768674, -8.0E-30, -0.42188022, 0.0, 0.0, 0.0, 0.42188022, 0.0, -0.6328203, 0.121786326, -0.21094011, 0.121786326, 0.21094011, 0.121786326, 0.6328203, 0.121786326, -0.84376043, 0.24357265, -0.42188022, 0.24357265, 0.0, 0.24357265, 0.42188022, 0.24357265, 0.84376043, 0.24357265, -0.6328203, 0.36535898, -0.21094011, 0.36535898, 0.21094011, 0.36535898, 0.6328203, 0.36535898, -0.42188022, 0.4871453, 0.0, 0.4871453, 0.42188022, 0.4871453, -0.6328203, 0.6089316, -0.21094011, 0.6089316, 0.21094011, 0.6089316, 0.6328203, 0.6089316, 0.0, 0.73071796, 0.43884337, 0.760099, -0.43884337, 0.760099, -0.21094011, 0.85250425, 0.21094011, 0.85250425]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_55 = new Float32Array([-0.07408615, -0.8775969, 0.1641589, -0.8652843, -0.30689535, -0.82551825, 0.39035922, -0.78948385, -0.5171869, -0.7128694, 0.58791804, -0.6557572, -0.02663111, -0.64380145, 0.21161394, -0.63148886, -0.25944027, -0.5917227, -0.7025476, -0.5311233, 0.40917274, -0.49776217, -0.46973187, -0.47907394, 0.74233997, -0.4739161, -0.043662407, -0.40584716, 0.19458264, -0.39353457, -0.27379382, -0.34298357, -0.8193153, -0.32309058, 0.56359464, -0.3159211, -0.5864996, -0.27104124, 0.8422947, -0.25730276, 0.34900457, -0.21169351, 0.10271908, -0.17336784, -0.13461904, -0.14922422, -0.39056152, -0.13495086, 0.65335375, -0.09488806, -0.875968, -0.091352, -0.64304304, -0.03709617, 0.8804484, -0.021810506, 0.43876368, 0.009339535, 0.20262562, 0.04326777, -0.18235627, 0.08451379, -0.42029566, 0.10175188, -0.8683489, 0.14708929, 0.6212341, 0.16301723, 0.024985386, 0.20250423, -0.63638854, 0.20282695, 0.8540016, 0.21528202, 0.34566292, 0.2352559, -0.28853506, 0.30062732, -0.79331684, 0.3825095, 0.5321273, 0.38431403, 0.16738577, 0.39390546, -0.50462794, 0.4017024, -0.08010012, 0.4166755, 0.7648948, 0.43657884, 0.35379747, 0.54277784, -0.32432747, 0.55792034, -0.66155624, 0.58138496, 0.61966586, 0.62584287, 0.13144602, 0.6297457, -0.105897166, 0.65383965, -0.48125574, 0.7376029, 0.4289707, 0.7691874, -0.26564443, 0.8397012, 0.20680097, 0.8560949, -0.030542212, 0.88018876]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_56 = new Float32Array([0.09996409, -0.8759317, -0.1367487, -0.8709472, -0.36359873, -0.803147, 0.4770538, -0.74139655, 0.24602619, -0.68958884, -0.56422484, -0.6774212, -0.014075568, -0.66844016, -0.24546945, -0.5923801, 0.6586336, -0.5853053, 0.4064068, -0.5154169, -0.72872543, -0.49619395, 0.17537917, -0.46360922, -0.4963956, -0.4505799, -0.05978598, -0.43612924, 0.7917958, -0.3876965, -0.28111327, -0.35203388, 0.5607682, -0.3358888, -0.8344963, -0.2843678, 0.32974058, -0.2840811, 0.09691255, -0.24017063, -0.6021665, -0.23875377, -0.12971584, -0.16999923, 0.7211488, -0.16171686, -0.38700908, -0.13765542, 0.4901212, -0.10990916, 0.25909355, -0.05810146, -0.8800806, -0.052032113, -0.64775074, -0.006418078, 0.030664746, 0.004172705, 0.8815294, 0.012455071, -0.20036286, 0.055980407, 0.6505018, 0.06426277, -0.43386874, 0.09513137, 0.41947415, 0.11607047, 0.19104534, 0.17834464, -0.86208075, 0.18436643, -0.62875414, 0.22958387, -0.039982274, 0.23015234, 0.8438359, 0.25228596, -0.27983794, 0.2934679, 0.5927098, 0.29386652, 0.36168218, 0.34567422, 0.13325337, 0.4079484, -0.77922046, 0.4123889, -0.49090686, 0.42208305, -0.097774245, 0.45975608, 0.73996943, 0.47926447, 0.5089418, 0.5310722, -0.30680165, 0.57095563, 0.27425206, 0.5981513, -0.6413732, 0.6048881, 0.043224458, 0.649959, -0.45726797, 0.7537607, 0.44735342, 0.7596868, -0.24018306, 0.8482696, 0.22904892, 0.8513435, -0.005775334, 0.8815985]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_57 = new Float32Array([-0.0037970617, -0.88268363, 0.22887018, -0.85250413, -0.23619606, -0.8505035, 0.44536826, -0.76209706, -0.45190832, -0.75823724, 0.026157178, -0.6499873, 0.2588244, -0.6198078, 0.630402, -0.6178496, -0.20624182, -0.61780715, -0.6426813, -0.6050666, -0.42195407, -0.5255409, 0.4438582, -0.47556025, 0.77089936, -0.42995235, 0.12395599, -0.42783028, -0.77937734, -0.4143861, -0.10945566, -0.4040847, -0.5586501, -0.33486038, -0.32516792, -0.31181842, 0.58435553, -0.28766304, 0.31680042, -0.2583027, 0.8569343, -0.21167998, 0.086211346, -0.19626994, -0.86101204, -0.19443014, -0.14569438, -0.16070889, -0.64028484, -0.11490444, -0.39487916, -0.085781, 0.4776512, -0.0787156, 0.24878122, -0.027107637, 0.88242877, 0.021547122, 0.021443617, 0.030879112, -0.8818182, 0.039261866, -0.21071988, 0.06471634, 0.6541776, 0.07582654, -0.66109097, 0.118787564, 0.40791002, 0.14529559, -0.42874786, 0.15136878, 0.1805724, 0.20328234, 0.8455816, 0.25325197, -0.053337377, 0.25325865, -0.84032583, 0.2701801, 0.5844364, 0.29983774, -0.28812358, 0.33917096, -0.52062935, 0.37063622, 0.34536663, 0.37142205, 0.11802903, 0.4294088, 0.748996, 0.46706513, -0.73946637, 0.48201072, -0.10857659, 0.49019322, 0.521893, 0.5259642, -0.37550965, 0.5569059, 0.2847047, 0.5980605, 0.057367075, 0.6560472, -0.5863652, 0.65978837, -0.16923854, 0.7168317, 0.46123108, 0.75260264, -0.39183867, 0.7909534, 0.23979697, 0.84639, -0.003294871, 0.88268566]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_58 = new Float32Array([-0.058117796, -0.8817061, 0.17413238, -0.86629164, -0.28633523, -0.8359399, 0.39429966, -0.7907661, -0.49468416, -0.7321686, -0.042038236, -0.6446061, 0.19123892, -0.63416, 0.6381598, -0.61117536, -0.29816955, -0.60347974, -0.66870743, -0.57759297, 0.41140622, -0.55863446, -0.4736602, -0.45057204, -0.14003639, -0.43268266, 0.092538044, -0.42336178, 0.77561116, -0.42333272, -0.79632986, -0.38293874, 0.5484418, -0.3702726, 0.31270534, -0.3478363, -0.31552705, -0.27977496, -0.6012826, -0.25591782, 0.8592437, -0.20611544, -0.09535976, -0.20424944, 0.13721468, -0.19492856, -0.86869574, -0.1617128, 0.4492704, -0.15934826, -0.44314945, -0.08512072, 0.66647, -0.07566986, -0.6736485, -0.03469187, -0.21971908, -0.00749451, 0.012855341, 0.0018263682, 0.24922526, 0.009109119, 0.8832542, 0.025403978, -0.8806375, 0.07183667, 0.47328088, 0.07217115, -0.397228, 0.14306553, 0.6904805, 0.15584955, -0.6246041, 0.1928436, -0.11090372, 0.19895943, 0.12486593, 0.20586404, 0.35215136, 0.27093077, -0.8309097, 0.30061993, -0.2888188, 0.3490393, 0.56935096, 0.35460916, 0.8085327, 0.3564522, -0.5172773, 0.39938346, -0.04930867, 0.42342275, 0.18332367, 0.4311648, -0.7235829, 0.50715977, 0.40052328, 0.5148432, 0.6874032, 0.5552118, -0.35974187, 0.570732, -0.13720223, 0.6389511, 0.09543011, 0.64669317, -0.5660475, 0.67850834, 0.5185755, 0.7154459, -0.36799052, 0.80334693, 0.31376436, 0.82603586, -0.14545088, 0.87156606, 0.08718147, 0.8793081]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_59 = new Float32Array([0.04565883, -0.88316303, -0.18492542, -0.86479145, 0.2731192, -0.84111094, -0.40285754, -0.78725314, 0.4818935, -0.7415122, -0.05372304, -0.6742854, -0.5932272, -0.655853, 0.17373735, -0.6322333, -0.27165517, -0.5967471, 0.6576979, -0.59118116, 0.38251165, -0.5326346, -0.74300987, -0.47958112, -0.46202487, -0.46534696, -0.09451582, -0.44659582, 0.13294457, -0.4045437, 0.7908729, -0.3957042, 0.55999357, -0.38151363, -0.2854138, -0.3159644, 0.34171885, -0.30494496, -0.61180747, -0.28907508, -0.8422895, -0.2694626, -0.07644573, -0.21596214, 0.86643237, -0.1770781, 0.15107669, -0.1739405, 0.63555306, -0.16288751, -0.43519643, -0.13969252, 0.41727838, -0.08631887, -0.6528711, -0.061434146, -0.88335305, -0.041821655, -0.22652127, -0.039886285, 9.6092286E-4, 0.0020477604, 0.22794947, 0.0465765, 0.88271284, 0.053663217, 0.6518336, 0.06785381, -0.41429573, 0.095196515, 0.43527657, 0.14915372, -0.6334979, 0.16906811, -0.14584635, 0.18080524, -0.86397994, 0.1886806, 0.081142195, 0.22533397, 0.8386004, 0.28073305, 0.6083259, 0.30264813, -0.33581135, 0.31278974, 0.32547772, 0.35274848, -0.55501354, 0.38666135, -0.7854956, 0.40627384, -0.11055143, 0.4124709, 0.11739786, 0.45378995, 0.72974473, 0.4995341, 0.49852708, 0.5062429, -0.36518842, 0.5422317, -0.65326965, 0.5960709, 0.2932701, 0.6129021, -0.15567698, 0.64027023, 0.07209078, 0.6806244, 0.48826817, 0.73733026, -0.4763487, 0.7450863, -0.26683727, 0.84312487, 0.25726917, 0.84396666, -0.0390695, 0.88347906]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_60 = new Float32Array([-0.11545614, -0.8769765, 0.11545614, -0.8769765, -0.3385003, -0.817212, 0.3385003, -0.817212, -0.53847617, -0.7017558, 0.53847617, -0.7017558, -0.11545614, -0.64606416, 0.11545614, -0.64606416, -0.3385003, -0.58629966, 0.3385003, -0.58629966, -0.7017558, -0.53847617, 0.7017558, -0.53847617, 0.0, -0.44608828, -0.5017799, -0.42302004, 0.5017799, -0.42302004, -0.22304414, -0.38632378, 0.22304414, -0.38632378, -0.817212, -0.3385003, 0.817212, -0.3385003, -0.6172361, -0.22304414, -0.38632378, -0.22304414, -0.059764497, -0.22304414, 0.38632378, -0.22304414, 0.6172361, -0.22304414, 0.16327964, -0.16327964, -0.8769765, -0.11545614, 0.8769765, -0.11545614, -0.22304414, -0.059764497, -0.6770006, 0.0, -0.44608828, 0.0, 0.0, 0.0, 0.44608828, 0.0, 0.6770006, 0.0, 0.22304414, 0.059764497, -0.8769765, 0.11545614, 0.8769765, 0.11545614, -0.16327964, 0.16327964, -0.6172361, 0.22304414, -0.38632378, 0.22304414, 0.059764497, 0.22304414, 0.38632378, 0.22304414, 0.6172361, 0.22304414, -0.817212, 0.3385003, 0.817212, 0.3385003, -0.22304414, 0.38632378, 0.22304414, 0.38632378, -0.5017799, 0.42302004, 0.5017799, 0.42302004, 0.0, 0.44608828, -0.7017558, 0.53847617, 0.7017558, 0.53847617, -0.3385003, 0.58629966, 0.3385003, 0.58629966, -0.11545614, 0.64606416, 0.11545614, 0.64606416, -0.53847617, 0.7017558, 0.53847617, 0.7017558, -0.3385003, 0.817212, 0.3385003, 0.817212, -0.11545614, 0.8769765, 0.11545614, 0.8769765]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_61 = new Float32Array([0.06428452, -0.8844135, -0.16187319, -0.8718468, 0.28624785, -0.83927464, -0.37746912, -0.8023944, 0.48953426, -0.73937535, -0.5684362, -0.680588, 0.13129008, -0.6680446, -0.09486764, -0.6554779, 0.6608799, -0.59123385, -0.31046355, -0.58602554, 0.33657405, -0.5723173, -0.72231436, -0.51437503, 0.029094316, -0.46590292, -0.50143063, -0.46421912, 0.50791967, -0.42417577, 0.78910494, -0.40451595, -0.1883584, -0.39262348, 0.23453647, -0.36999902, -0.8290635, -0.31460053, -0.38179538, -0.2718844, -0.60817975, -0.2644446, -0.009314247, -0.24267656, 0.6361447, -0.23745787, 0.41032973, -0.2197707, 0.865843, -0.19140448, 0.1958995, -0.14679876, -0.20556797, -0.12958497, -0.88171846, -0.09429916, -0.43445036, -0.05158306, -0.6608347, -0.044143237, 0.010260011, -0.017017348, 0.66449517, -0.012732519, 0.43868023, 0.004954646, 0.8860871, 0.034195635, 0.22424999, 0.07792659, -0.21701041, 0.096632406, -0.87684363, 0.13215496, -0.42957556, 0.17487106, -0.65595996, 0.18231088, -0.019505775, 0.20752493, 0.6269246, 0.2106364, 0.4011096, 0.22832358, 0.84851646, 0.25756457, 0.18667935, 0.30129552, -0.8147572, 0.3499863, -0.31742474, 0.3716639, -0.5438091, 0.37910372, 0.5339905, 0.41719997, -0.09627328, 0.4206258, 0.75558245, 0.4641281, 0.10991185, 0.51439637, 0.33604988, 0.52731234, -0.69951004, 0.544982, -0.25246134, 0.58865464, -0.47884572, 0.5960945, 0.61334866, 0.6404086, -0.045024704, 0.6796232, 0.21213673, 0.7169192, 0.4310956, 0.7749041, -0.38136333, 0.8005509, -0.16610742, 0.87104994, 0.059986565, 0.8847154]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_62 = new Float32Array([0.022389863, -0.88726133, -0.20135774, -0.864401, 0.24469966, -0.8531448, -0.41217482, -0.7860318, 0.45129567, -0.76424223, 0.04617245, -0.6636099, -0.59652346, -0.65718627, -0.17757514, -0.6407496, 0.26848224, -0.62949336, 0.628911, -0.62626266, -0.38839224, -0.5623803, 0.44749057, -0.49332583, -0.7425654, -0.48613852, -0.04590369, -0.45840862, 0.76613986, -0.44806662, 0.1790332, -0.4198355, -0.5374233, -0.39393055, -0.25672078, -0.3800394, 0.59007436, -0.30811182, -0.8409223, -0.2838726, 0.36648855, -0.28350627, 0.019438192, -0.24319705, 0.85416985, -0.2410973, -0.40575185, -0.21158963, -0.63551843, -0.19111966, -0.18784241, -0.15590253, 0.20930736, -0.12263471, 0.67811, -0.10113833, 0.45454586, -0.07654857, -0.8852781, -0.06337737, 0.88734794, -0.018645514, -0.0050353287, -0.017572168, -0.45686653, 0.0074374634, -0.6806482, 0.02996172, -0.23895708, 0.06312457, 0.29736468, 0.084323, 0.5152741, 0.1400101, 0.73990804, 0.1511987, -0.8727844, 0.16118774, 0.10122853, 0.19439657, -0.39613825, 0.22399613, -0.61991996, 0.24652039, -0.116278954, 0.2516336, 0.35809296, 0.30088165, 0.5837412, 0.3577212, 0.8088957, 0.36526945, -0.8042434, 0.3754019, 0.1619568, 0.41095525, -0.27346012, 0.41250518, -0.4972418, 0.43502942, -0.055550676, 0.46819228, 0.4159991, 0.51821196, 0.69110656, 0.5568714, -0.68405664, 0.5655091, 0.21986295, 0.6282855, -0.21555397, 0.6298355, -0.47961035, 0.65924966, 0.0023554787, 0.68552256, 0.5289369, 0.71271294, 0.33280078, 0.8227865, -0.32748985, 0.8249148, 0.11529329, 0.88002354, -0.109617926, 0.8807485]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_63 = new Float32Array([0.09187021, -0.88365453, -0.13123931, -0.87867045, 0.30918288, -0.8328814, -0.34606785, -0.81824356, 0.50698656, -0.7295547, -0.53906, -0.7061868, 0.14904304, -0.6679372, -0.09668335, -0.65130126, -0.32006305, -0.5965987, 0.6728002, -0.5801943, 0.3500185, -0.5709239, -0.69803834, -0.5495707, 0.04527638, -0.47036397, -0.17383416, -0.4280169, 0.5158321, -0.42156348, 0.7961611, -0.39422444, -0.3929447, -0.38566986, 0.24625184, -0.3733507, -0.61211085, -0.34361157, -0.83339155, -0.30201328, -0.027605265, -0.25943515, 0.63919306, -0.23559366, 0.41243434, -0.22192766, -0.24671581, -0.21708809, 0.8692856, -0.18337967, -0.46582636, -0.17474103, 0.17337018, -0.16242188, -0.6849925, -0.13268274, -0.10048691, -0.04850632, -0.8875593, -0.039037723, 0.53905946, -0.036154546, -0.31989223, -0.0059040417, 0.3198934, 0.005904154, -0.5390584, 0.03615426, 0.8875594, 0.039036095, 0.100488536, 0.048506934, 0.6849933, 0.1326827, -0.1733693, 0.16242224, 0.46582723, 0.17474139, -0.8692859, 0.18337807, 0.24671684, 0.21708922, -0.41243434, 0.22192766, -0.63919324, 0.23559274, 0.027606146, 0.2594355, 0.83339155, 0.30201328, 0.6121124, 0.34361178, -0.24625169, 0.3733508, 0.39294633, 0.38567048, -0.7961619, 0.39422297, -0.5158326, 0.4215628, 0.17383444, 0.4280178, -0.045276243, 0.47036406, 0.6980373, 0.549572, -0.35001928, 0.57092357, -0.67280126, 0.58019304, 0.32006395, 0.59659904, 0.09668401, 0.651301, -0.14904383, 0.6679368, 0.53905874, 0.7061878, -0.5069879, 0.7295538, 0.34606636, 0.8182442, -0.3091844, 0.83288085, 0.1312377, 0.8786707, -0.091871835, 0.88365436]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_64 = new Float32Array([0.0882225, -0.88471544, -0.13349794, -0.87902385, 0.30445296, -0.835352, -0.34691092, -0.8186314, 0.5017376, -0.73400545, -0.538736, -0.7072964, 0.15358776, -0.67277265, -0.06813268, -0.66708106, -0.28154567, -0.6066887, 0.66779953, -0.5869824, 0.35366264, -0.56682897, -0.697036, -0.5519469, -0.47337073, -0.49535358, 0.15979625, -0.45106608, -0.06610664, -0.44293794, 0.52469903, -0.4175286, 0.792305, -0.40343204, -0.2810392, -0.38489574, -0.81196016, -0.36225033, -0.59623975, -0.31070375, 0.33080822, -0.30983132, 0.07537947, -0.24596573, 0.6492045, -0.23397821, -0.1436102, -0.21081066, -0.40403318, -0.19808544, 0.867506, -0.19477645, -0.8763568, -0.15001124, 0.45531365, -0.12628095, -0.66063637, -0.09846468, 0.23602486, -0.09304284, -0.25555968, -0.019343525, 0.66607994, -0.010855181, -1.6511754E-12, 2.094794E-12, -0.4736784, 0.020862935, 0.888723, 0.025999894, -0.88621855, 0.07156289, 0.44872323, 0.09541461, -0.67049813, 0.12310945, 0.22034998, 0.12819606, -0.17266396, 0.18637632, 0.6347402, 0.21620385, -0.3992552, 0.22979721, 0.8546356, 0.24515828, 0.038288824, 0.2548692, 0.36145267, 0.29931703, -0.8338675, 0.30455318, -0.59607494, 0.33204374, -0.25030774, 0.3941353, 0.5474696, 0.4201063, 0.17939149, 0.42599016, 0.76736504, 0.4490607, -0.03935495, 0.4626282, -0.44712746, 0.49638182, -0.7281111, 0.5102537, 0.37217414, 0.5573471, -0.2621392, 0.6187407, 0.63234204, 0.6250185, 0.16853464, 0.6475178, -0.5791636, 0.67459184, -0.050211802, 0.68415576, 0.45796904, 0.762082, -0.39417535, 0.7969507, 0.25509703, 0.8517218, -0.18465792, 0.86971605, 0.036350586, 0.88835984]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_65 = new Float32Array([0.11038514, -0.8831935, -0.2770902, -0.84583485, 0.32351926, -0.82918686, -0.073537394, -0.76271373, -0.47961032, -0.7442648, 0.5169115, -0.72458136, 0.1227624, -0.66367203, -0.2938113, -0.6266015, -0.6545635, -0.60312706, 0.33398074, -0.60260093, 0.6787605, -0.5757601, -0.08740955, -0.5432817, -0.46605912, -0.4899503, 0.4958298, -0.45377976, 0.10889024, -0.44423994, -0.2615918, -0.40910488, 0.79919004, -0.3918047, -0.65832525, -0.38328916, 0.304932, -0.3446885, -0.065292016, -0.31006318, -0.8476493, -0.271489, -0.46389937, -0.2700908, 0.6162593, -0.2698243, 0.13074975, -0.21051173, -0.25943205, -0.18924539, 0.87085104, -0.1839404, -0.6561655, -0.16342965, 0.42536148, -0.16073306, -0.063132256, -0.09020367, 0.68792033, -0.06196001, -0.8883381, -0.055416573, -0.46766117, -0.050252862, 0.25117925, -0.026556278, -0.24705479, 0.030276073, 0.8893707, 0.03514838, -0.68408406, 0.054660752, 0.45447087, 0.057201594, 0.064165734, 0.089067325, 0.6514596, 0.15486592, -0.87481844, 0.1640375, -0.42109996, 0.16463064, 0.26504323, 0.19299595, -0.13085073, 0.21692945, 0.8536188, 0.2520923, -0.61718094, 0.26410487, 0.46838543, 0.27663097, 0.06886567, 0.3088872, -0.30489588, 0.35128403, -0.8079153, 0.3734816, 0.6705753, 0.37390348, 0.26255736, 0.41293716, -0.10517949, 0.44324178, -0.50097686, 0.45075825, 0.4659344, 0.49648744, 0.0885122, 0.54729176, -0.69171125, 0.56013495, 0.6631716, 0.5936489, -0.34256294, 0.60323083, 0.29188925, 0.630842, -0.13059257, 0.6616383, -0.5332973, 0.7126076, 0.4969749, 0.7383317, 0.063099116, 0.76568824, -0.3386136, 0.82309407, 0.26647615, 0.8492385, -0.123856656, 0.8814052]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_66 = new Float32Array([-0.16300398, -0.8758982, 0.21429479, -0.86478066, -0.37095097, -0.81003904, 0.41824692, -0.78570074, 0.022424368, -0.7610256, -0.55666274, -0.69562525, -0.16977234, -0.65787625, 0.2082141, -0.64673847, 0.61574733, -0.6439124, -0.37283188, -0.5782132, 0.41144103, -0.56750345, 0.016343676, -0.5429834, -0.70900744, -0.5395149, 0.7537557, -0.47499505, -0.17585304, -0.43983403, 0.23650292, -0.4304537, -0.52517664, -0.4221028, 0.43972984, -0.35121867, 0.044632494, -0.32669863, -0.71877384, -0.32160667, -0.34390637, -0.30077487, 0.846583, -0.27760595, 0.63076717, -0.24593754, -0.14311455, -0.21551833, 0.24084544, -0.21236995, -0.5375036, -0.20027871, -0.8747391, -0.16911335, 0.44407237, -0.13313495, 0.04897502, -0.10861489, -0.3173467, -0.08427093, 0.8886652, -0.063576825, -0.69346887, -0.047785413, 0.6715901, -0.030365843, 0.27383938, 0.0032472394, -0.12637283, 0.021125253, -0.4948843, 0.04245618, 0.48415273, 0.08127807, -0.88649815, 0.08777783, 0.073790416, 0.10829563, -0.30391046, 0.14785236, 0.8774798, 0.15426315, -0.6723281, 0.16931465, 0.66494143, 0.20332244, 0.26130408, 0.22101372, -0.10539275, 0.23824091, -0.48215607, 0.27615082, 0.4651746, 0.29857787, -0.832479, 0.3174061, 0.08348607, 0.3473471, 0.81369716, 0.36285642, -0.28293037, 0.36496803, 0.281803, 0.43817532, -0.6763314, 0.4697127, -0.094051555, 0.4740742, -0.45946118, 0.49309394, 0.4856735, 0.5157395, 0.70114064, 0.54969966, 0.10385329, 0.56579685, -0.2792224, 0.615949, 0.3027755, 0.65529174, -0.588145, 0.6692184, -0.07453326, 0.6913262, 0.506646, 0.73285586, -0.40790623, 0.7920735, 0.22970495, 0.8608156, -0.2032171, 0.8674507, 0.013653119, 0.8908319]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_67 = new Float32Array([-0.00801405, -0.89161897, 0.20729832, -0.86722314, -0.22285312, -0.8633569, 0.53523755, -0.7131405, -0.54636365, -0.70465267, 0.32071283, -0.68258375, 0.101894, -0.67789674, -0.33158666, -0.67592263, -0.11478321, -0.67553926, 0.6914556, -0.56297225, -0.70020574, -0.55205125, 0.42893717, -0.49485505, 0.21227425, -0.4914275, -0.0044029607, -0.48907, -0.43776998, -0.487032, -0.22108017, -0.48671252, 0.60264564, -0.3653176, -0.6097136, -0.35516104, 0.8189638, -0.35262853, -0.82562006, -0.3367494, 0.32357654, -0.30550236, 0.10597729, -0.30260077, -0.11069992, -0.3002433, -0.3297274, -0.29919642, 0.6469266, -0.15320027, 0.87984115, -0.14466572, -0.6478677, -0.14185646, -0.8824705, -0.1276499, 0.43303475, -0.11848905, 0.21635754, -0.11613156, -3.1966926E-4, -0.11377407, -0.21699688, -0.111416586, -0.4336741, -0.109059095, 0.7566943, 0.033630177, -0.75416464, 0.046970244, 0.3267378, 0.07033766, 0.54342175, 0.07196269, 0.11006058, 0.07269515, -0.10661663, 0.07505264, -0.32329383, 0.07741013, -0.53997105, 0.07976762, 0.8635387, 0.2221477, -0.8598119, 0.23616125, 0.43367246, 0.25880396, 0.6503518, 0.26095417, 0.21699524, 0.26116148, -0.21291359, 0.26387936, -0.4295908, 0.26623684, -0.64619035, 0.27249867, 0.0022136471, 0.28985712, 0.3273755, 0.4476307, 0.77002746, 0.44880116, 0.54405487, 0.44978088, -0.31921056, 0.45270607, -0.76338136, 0.4579371, -0.5358101, 0.4589679, 0.1125939, 0.47632635, -0.104083315, 0.47868383, 0.24483585, 0.6479848, -0.23414433, 0.6520006, 0.60071343, 0.65893245, -0.589631, 0.6688676, 7.3942466E-4, 0.67134076, 0.4240275, 0.7843783, -0.41087583, 0.7913467, 0.22229904, 0.8634997, -0.20785479, 0.86709, 0.0074418793, 0.8916239]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_68 = new Float32Array([-0.19065687, -0.87151146, 0.19065687, -0.87151146, -0.39432627, -0.800226, 0.39518195, -0.79961383, 0.0, -0.7705149, 0.57730734, -0.680146, -0.58163553, -0.67644835, -0.18279402, -0.6558995, 0.18279402, -0.6558995, -0.38641888, -0.5845745, 0.38536075, -0.5816226, 0.0, -0.5412841, 0.72370714, -0.5216611, -0.62167877, -0.46444154, -0.22283721, -0.44389272, 0.19065687, -0.44028756, 0.5317605, -0.42313775, -0.42646208, -0.37256774, -0.81362534, -0.3659182, -0.040043194, -0.3292773, 0.7130576, -0.30616882, 0.35458714, -0.30001208, -0.63232833, -0.24894926, -0.23348677, -0.22840041, 0.15061367, -0.22828074, 0.53588414, -0.18304314, 0.87663925, -0.16548699, -0.8776774, -0.15988983, -0.43711165, -0.15707543, -0.050692752, -0.113785, 0.31454393, -0.08800527, -0.6963803, -0.042920902, 0.6994659, -0.042361308, -0.27300376, -0.016294891, 0.12388708, 0.012991291, 0.49584097, 0.02896367, -0.47662863, 0.05503009, -0.8900769, 0.057569306, 0.89017916, 0.058616426, -0.073194325, 0.10079371, 0.3051841, 0.12996022, -0.65942264, 0.1696455, 0.65942264, 0.1696455, -0.26514092, 0.19931707, 0.12239009, 0.24457563, -0.85007954, 0.27064204, -0.4687658, 0.27064204, 0.4687658, 0.27064204, 0.85007954, 0.27064204, -0.081057176, 0.31640568, -0.6672855, 0.38525745, 0.28597176, 0.38525745, 0.6672855, 0.38525745, -0.27300376, 0.41492903, 0.08252451, 0.45708752, -0.47662863, 0.486254, 0.47662863, 0.486254, -0.10942207, 0.5556109, -0.65942264, 0.6008694, 0.65942264, 0.6008694, 0.31101957, 0.6245435, -0.31304696, 0.62693584, 0.10056777, 0.672087, -0.4958529, 0.7416096, 0.49489492, 0.7420445, -0.09137881, 0.7706104, 0.30037, 0.8400358, -0.29500368, 0.84193534, 0.08991822, 0.8875793]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_69 = new Float32Array([0.055261098, -0.8912869, -0.15837993, -0.8788412, -0.3629252, -0.81592363, 0.41379124, -0.7913425, 0.20615378, -0.7395345, -0.54662764, -0.70614755, -0.04078116, -0.7000455, 0.59046775, -0.66817766, -0.24801, -0.63537186, 0.35483953, -0.58561915, -0.69893724, -0.5558173, 0.11803349, -0.5444576, -0.49259263, -0.49907845, 0.7412096, -0.49805063, -0.089356944, -0.4916282, 0.53012204, -0.4628453, -0.29229838, -0.42371535, 0.2670786, -0.39043874, -0.8111068, -0.37356648, 0.059604652, -0.3379798, -0.6047622, -0.31682763, 0.8384215, -0.30740112, 0.62733394, -0.2721958, -0.14333679, -0.27006695, -0.40446794, -0.2414645, 0.41624635, -0.23699047, 0.20877239, -0.18453154, -0.87669444, -0.16986167, 0.0058309524, -0.11661869, -0.67034984, -0.11312282, 0.76336646, -0.106991254, -0.25550637, -0.087816104, 0.5522789, -0.07178592, -0.4700556, -0.0377597, 0.3448049, -0.019326996, -0.89193344, 0.04359829, 0.14504154, 0.05743228, 0.890625, 0.06506292, -0.06724004, 0.08452308, 0.6795374, 0.10026825, -0.6855889, 0.10033715, -0.27736744, 0.1250676, 0.47206348, 0.15272717, -0.48529464, 0.17570026, 0.27230012, 0.22948645, -0.8559487, 0.2545544, 0.060018536, 0.25657725, 0.849571, 0.27509138, -0.15010887, 0.2971218, 0.6212312, 0.30617544, -0.35803607, 0.34775445, -0.5708995, 0.37353182, 0.42146787, 0.38293472, 0.20055528, 0.43110505, -0.7708067, 0.45089144, -0.011468584, 0.46014404, 0.75972605, 0.4693213, -0.21939577, 0.5107767, -0.44155174, 0.5447887, 0.5599627, 0.5460806, 0.34948793, 0.5847815, -0.6413973, 0.6213337, -0.05619293, 0.6694217, 0.15757413, 0.67947304, -0.26412013, 0.7200543, 0.48824129, 0.74770755, -0.4750568, 0.75615287, 0.2963275, 0.842399, -0.12655544, 0.8839852, 0.0873956, 0.8887115]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_70 = new Float32Array([-0.075178936, -0.89062816, 0.13710076, -0.8832179, -0.28321278, -0.8477387, 0.36540365, -0.8156902, -0.47525167, -0.7569718, 0.5475593, -0.70643413, -0.010923708, -0.68817115, 0.201356, -0.6807608, -0.272213, -0.6356147, -0.64044994, -0.6234535, 0.38351166, -0.5715047, 0.6987906, -0.55728096, -0.45284125, -0.52385145, -0.10895151, -0.49973512, 0.10332819, -0.4923248, 0.53474295, -0.42235154, -0.6354237, -0.411104, -0.28957975, -0.38797188, 0.81055653, -0.37665436, 0.2999816, -0.3733778, -0.83117783, -0.32865453, 0.09294658, -0.28016967, -0.47069755, -0.27700377, -0.11867062, -0.26184633, 0.45344728, -0.22611547, 0.6657996, -0.22120978, -0.6664517, -0.1945543, 0.87654483, -0.17475556, -0.2981965, -0.14832082, 0.2570231, -0.14527532, -0.8852576, -0.123245284, 0.058162924, -0.07062806, -0.4939506, -0.06587138, 0.47347835, -0.014653083, 0.68583065, -0.0097473925, -0.14321533, -0.0030678639, -0.6897047, 0.016578065, 0.8930288, 0.037012864, 0.27024657, 0.06672166, -0.33896944, 0.079381585, -0.8893409, 0.08912446, 0.015982643, 0.13755073, -0.5347236, 0.16183102, 0.43952695, 0.19502497, 0.6518793, 0.19993065, -0.17977147, 0.22000016, -0.73435974, 0.23437743, 0.8590774, 0.24669091, 0.1877773, 0.2624674, -0.3755256, 0.3024496, -0.010491098, 0.34830347, -0.57516176, 0.374996, 0.35705766, 0.39077073, 0.56941, 0.3956764, -0.20624521, 0.43075293, 0.7766081, 0.44243667, -0.77654004, 0.4425562, 0.16130355, 0.47322017, -0.4488059, 0.54573494, -0.03329477, 0.55948484, 0.334254, 0.60195214, 0.65027857, 0.61319506, -0.65018415, 0.61329514, -0.25700668, 0.6370073, 0.13849989, 0.6844016, 0.48722342, 0.7493222, -0.47609293, 0.756401, -0.08740534, 0.764886, 0.2947684, 0.8433882, -0.28295225, 0.8478257, 0.084389314, 0.8898027]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_71 = new Float32Array([-0.086609535, -0.89024365, 0.12444907, -0.88574684, -0.29284355, -0.84514946, 0.32857525, -0.8319094, -0.48276472, -0.75297624, 0.5143981, -0.7317305, -0.031170994, -0.6865465, 0.17988761, -0.6820497, -0.23740502, -0.6414523, -0.6457935, -0.61885846, 0.6715664, -0.59079057, -0.42732617, -0.5492791, 0.4263782, -0.53984916, 0.01414343, -0.48036078, 0.22520204, -0.47586393, -0.7728483, -0.45026714, -0.19209059, -0.43526658, 0.79132515, -0.4169406, 0.5812241, -0.39636156, -0.56957495, -0.39329433, 0.38004795, -0.3323763, -0.37064323, -0.3226393, -0.034197554, -0.27486357, 0.17686105, -0.2703667, -0.8568516, -0.25659367, 0.7471775, -0.2105019, -0.6535782, -0.19962089, 0.536212, -0.17997761, -0.22003438, -0.17471051, 0.33170697, -0.12687908, -0.4498709, -0.12580411, 0.115414076, -0.06840081, 0.8925985, -0.05747031, -0.893124, -0.048626687, -0.087553665, -0.010348651, 0.6848861, -0.008794825, -0.6898506, 0.008346114, -0.29613557, 0.022202076, 0.47675243, 0.02650857, 0.27025998, 0.07508683, -0.49566355, 0.09115521, 0.06420485, 0.13640049, 0.88120675, 0.15332861, -0.8796449, 0.16204906, 0.6758152, 0.20211671, -0.18813564, 0.2035911, -0.66447186, 0.21792158, 0.42442492, 0.231027, -0.38766363, 0.2725442, 0.21905075, 0.27988812, -0.019282028, 0.3302971, 0.82069504, 0.3556608, -0.81716514, 0.36369786, 0.56942695, 0.38445568, -0.55647194, 0.3993106, -0.23945151, 0.4236073, 0.3640528, 0.4333168, 0.14190978, 0.4763957, -0.0601896, 0.5374022, 0.71448046, 0.53810096, -0.7091652, 0.54508686, -0.40896797, 0.5503355, 0.5090549, 0.5867455, 0.28691185, 0.6298244, -0.23017663, 0.66258353, 0.08481246, 0.6908309, -0.56166124, 0.6961118, 0.4319139, 0.7832531, -0.3828699, 0.80835986, 0.23631307, 0.8626651, -0.18275079, 0.87557817, 0.027548434, 0.8940224]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_72 = new Float32Array([0.0104987, -0.89512044, -0.19796881, -0.87301725, 0.21839045, -0.8681339, -0.39557943, -0.8030366, 0.41430533, -0.79353756, -0.04951946, -0.6942596, -0.59213144, -0.6713604, 0.15650156, -0.65369904, 0.56660247, -0.6491344, -0.39752147, -0.5934096, 0.36412832, -0.58999515, -0.19415776, -0.5425131, 0.7301241, -0.51793796, -0.74052536, -0.50296426, 0.011724857, -0.49376923, 0.21502782, -0.44263068, -0.5405291, -0.44012526, -0.33716536, -0.38922873, 0.42322552, -0.38886145, -0.13291344, -0.3420227, 0.6253972, -0.33341888, 0.8347859, -0.32323888, -0.8371948, -0.3169474, 0.070389524, -0.2908841, 0.27412504, -0.24149695, -0.4874579, -0.23731819, -0.2840942, -0.18642168, 0.4762967, -0.18605438, -0.6864246, -0.17129163, -0.0798423, -0.13921563, 0.6775581, -0.12739362, 0.8870716, -0.120227925, -0.8879513, -0.113548696, 0.12346067, -0.08807705, 0.32719618, -0.03868988, -0.53229237, -0.029198349, -0.32816193, 0.018530235, 0.52845764, 0.01997087, -0.12391003, 0.06573628, 0.8907091, 0.08937652, -0.89001125, 0.09607719, 0.07939294, 0.11687486, -0.6815278, 0.11802952, 0.690826, 0.15257466, 0.28312844, 0.16626203, -0.47607765, 0.17275995, -0.2719472, 0.22048853, 0.49406195, 0.22676592, -0.06769531, 0.2676946, 0.84549874, 0.29407942, -0.84326166, 0.30043405, 0.13560766, 0.31883317, -0.62531304, 0.31998783, 0.3393432, 0.36822033, -0.41871348, 0.37439477, -0.21458304, 0.42212337, 0.5514261, 0.42840073, -0.01033113, 0.46932942, 0.75392, 0.48265457, -0.7502664, 0.48831466, 0.19297184, 0.520468, -0.5471265, 0.54009736, 0.39670736, 0.56985515, -0.34299606, 0.58782595, 0.6209952, 0.64476025, 0.04703305, 0.67096424, -0.16147389, 0.69269234, 0.24970399, 0.72455287, -0.49797466, 0.7438898, 0.45401412, 0.7715063, -0.31131217, 0.8393066, 0.117701404, 0.8874104, -0.091912545, 0.89045095]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_73 = new Float32Array([0.005234809, -0.89308643, -0.20338301, -0.8723206, 0.23038347, -0.86558145, -0.54321164, -0.71220005, -0.33465356, -0.71024543, 0.35712656, -0.6999418, -0.093438655, -0.69508475, 0.5656237, -0.6945341, 0.115102254, -0.69176966, -0.69319326, -0.56726617, 0.71091217, -0.544896, -0.22470921, -0.5330096, -0.44062534, -0.53060615, 0.24184534, -0.52613, 0.45669192, -0.51667416, 0.007960866, -0.5128255, -0.8055906, -0.39157575, -0.5906069, -0.38567227, 0.6019804, -0.36703604, 0.81765574, -0.36571422, -0.330681, -0.3533703, -0.122144066, -0.34981316, 0.13286406, -0.34579405, 0.3414107, -0.34286234, -0.8743097, -0.19465446, -0.6657724, -0.19112033, -0.45723507, -0.1875862, 0.0027591193, -0.18278176, 0.4629866, -0.17339376, -0.2293317, -0.17089668, 0.67153245, -0.17040744, 0.8800669, -0.16670379, 0.23421648, -0.1635086, -0.7731017, -0.012288784, -0.56456435, -0.008754655, -0.35602707, -0.005220526, -0.10442851, -0.0038652539, 0.10411154, -4.9629546E-4, 0.35612744, 0.0057191243, 0.5646733, 0.008705434, 0.77320766, 0.012409078, -0.23112388, 0.16181089, -0.88005465, 0.16676809, 0.2260225, 0.16873142, -0.6715174, 0.17030221, -0.46298003, 0.17383634, -0.0030760877, 0.1784202, 0.45718393, 0.1881688, 0.6657298, 0.1911551, 0.8742642, 0.19485876, -0.3383164, 0.34104663, -0.12977146, 0.34409636, 0.118834876, 0.3476479, 0.32736817, 0.35141146, -0.81762904, 0.36577398, -0.6021125, 0.36698282, 0.59248775, 0.38643926, 0.8033385, 0.39507467, -0.00786049, 0.5133241, -0.45445678, 0.51428556, -0.2409063, 0.5254689, 0.43896198, 0.5276134, 0.2198422, 0.53012484, -0.71087235, 0.544948, 0.6904988, 0.5705429, -0.11538647, 0.6920374, -0.565573, 0.6945754, 0.09314683, 0.69580096, -0.35704663, 0.6987078, 0.331436, 0.7063268, 0.53983253, 0.7147648, -0.23152682, 0.86527634, 0.20474064, 0.8720029, -0.014560036, 0.87817633]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_74 = new Float32Array([0.10338878, -0.8906282, -0.103393055, -0.89062774, 0.3046715, -0.8432574, -0.30467555, -0.843256, 0.4897492, -0.75103503, -0.4897528, -0.75103265, 0.11403695, -0.6841207, -0.1140439, -0.68412036, 0.3153197, -0.63675, -0.3153264, -0.6367486, 0.6487778, -0.6188661, -0.64878076, -0.618863, -3.205394E-6, -0.5116285, 0.4755159, -0.50599873, -0.4755199, -0.505994, 0.20127952, -0.46425772, -0.2012857, -0.46425676, 0.7732988, -0.45378053, -0.773301, -0.4537768, 0.6000369, -0.34091315, -0.60004014, -0.34090787, 0.36147577, -0.33350646, -0.3614792, -0.33350214, 0.103382185, -0.2821181, -0.10339964, -0.2821111, 0.8566892, -0.26455903, -0.85669047, -0.26455492, 0.47654063, -0.15995829, -0.47031802, -0.15630217, 0.6834273, -0.15169166, -0.6834296, -0.15168598, 0.26357841, -0.15136686, -0.26359314, -0.15135649, -2.6436999E-6, -0.10303629, 0.8945134, -0.06126602, -0.8945137, -0.061261725, 0.57371616, 0.02358581, -0.5737185, 0.023591505, 0.36697543, 0.027707944, 0.16019359, 0.027714971, -0.16019614, 0.027718322, -0.36697796, 0.02772535, 0.88475984, 0.14528565, -0.8847591, 0.1452899, 9.213632E-8, 0.15846959, 0.6771132, 0.20266062, -0.67710334, 0.20267333, 0.47037244, 0.20678274, 0.2635906, 0.20678978, -0.26358098, 0.20680015, -0.4703628, 0.20680718, 0.10339709, 0.33754438, -0.10338474, 0.33755141, 0.827947, 0.34410977, -0.8279454, 0.34411377, 0.3669876, 0.3858646, -0.57377696, 0.38587907, -0.3669658, 0.385882, 0.5737707, 0.3858856, 0.2067737, 0.51663095, -0.20676957, 0.5166333, 2.0733512E-6, 0.51868606, 0.7270969, 0.5246312, -0.7270944, 0.5246347, 0.4001107, 0.5899763, -0.4001016, 0.5899916, 0.5875736, 0.67724824, -0.5875703, 0.67725104, 0.103457786, 0.69772696, -0.10332403, 0.69780177, 0.41184354, 0.796425, -0.41181132, 0.7964416, 0.2184394, 0.8695931, -0.21840423, 0.8696019, 0.0022355954, 0.88002634]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_75 = new Float32Array([-0.030815199, -0.8966915, 0.17407827, -0.88017154, -0.23409119, -0.8661446, -0.42507988, -0.7901344, 0.512045, -0.7367599, 0.3069271, -0.72331035, 0.07518961, -0.69996256, -0.13006815, -0.6888498, -0.5937564, -0.6726504, 0.66629124, -0.60088366, -0.40767404, -0.5853142, 0.42113367, -0.5523978, 0.20803845, -0.54310143, -0.731267, -0.51985943, -0.013815009, -0.51467246, -0.21907277, -0.5035597, 0.78556424, -0.43346745, -0.5451846, -0.43252328, 0.5753799, -0.4165216, 0.32415885, -0.37115178, 0.11903383, -0.3578113, -0.356883, -0.34921765, -0.8303938, -0.33978134, -0.11952169, -0.32371584, -0.6443114, -0.2524452, 0.8636034, -0.24329878, 0.65857476, -0.22855127, 0.45371953, -0.21156396, 0.23314953, -0.18683806, 0.023319656, -0.17589639, -0.25461257, -0.16878136, -0.4600368, -0.16135678, -0.88593376, -0.14186835, 0.77588725, -0.057395276, -0.6998514, -0.05453219, 0.5708586, -0.042647768, 0.3627102, -0.027250253, -0.11052323, -0.019882534, 0.13743535, -0.004923146, -0.3101525, 0.029131647, -0.5155767, 0.03655622, -0.89497155, 0.06349124, 0.89000297, 0.11357796, 0.6849743, 0.12832548, 0.47984928, 0.14166595, -0.68659896, 0.15059854, 0.003592463, 0.15109071, 0.26699603, 0.15466467, -0.22010797, 0.21391861, -0.4265305, 0.2268632, -0.85703284, 0.26551822, 0.84079504, 0.31315958, 0.1439578, 0.32134724, 0.3841351, 0.32358086, 0.6357664, 0.3279071, -0.6036751, 0.3386886, -0.062404487, 0.34576645, -0.30043277, 0.4031332, -0.774109, 0.45360827, 0.5071566, 0.48826224, 0.2660582, 0.49184284, -0.48011872, 0.5029691, 0.73892933, 0.5071395, 0.061297767, 0.50993705, -0.14272928, 0.5349811, -0.65055263, 0.61788875, -0.32241526, 0.6348169, 0.3841085, 0.66012347, 0.58898675, 0.67683065, 0.17934805, 0.6782177, -0.024679001, 0.7032617, -0.49284914, 0.74973655, -0.3092763, 0.84223115, 0.29739833, 0.8464983, -0.109469734, 0.8905176, 0.096549444, 0.891997]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_76 = new Float32Array([-0.053816576, -0.8963337, 0.149991, -0.88533217, -0.25484368, -0.8610256, 0.3460492, -0.8285893, -0.4427041, -0.781232, 0.5242285, -0.7290369, -0.08317808, -0.6943524, 0.15286572, -0.6812481, -0.60769194, -0.66107553, -0.28322446, -0.6538554, 0.34892392, -0.6245053, -0.4482123, -0.5336989, 0.5679068, -0.52966094, 0.02562055, -0.52166355, -0.741283, -0.5067641, -0.17442584, -0.48116657, 0.76375884, -0.47221056, 0.22167875, -0.46492073, 0.413754, -0.395887, -0.5818033, -0.37938753, -0.33716482, -0.35015237, 0.61607933, -0.3313229, -0.83657515, -0.32627046, 0.061447352, -0.32072824, 0.8507723, -0.2872044, -0.13859904, -0.28023124, 0.25750554, -0.26398543, -0.47997895, -0.2024967, 0.4619265, -0.19754896, -0.68375766, -0.19097304, 0.6975571, -0.14418678, -0.28598937, -0.13904113, -0.88665086, -0.12695903, 0.11002641, -0.12248941, 0.8936636, -0.08761122, -0.09001997, -0.08199241, 0.3060846, -0.06574658, -0.4991317, 7.069661E-4, 0.49814975, 0.0033152758, -0.7029104, 0.012230631, 0.6942563, 0.05989083, -0.30514213, 0.064162545, 0.15903547, 0.07579888, -0.89402026, 0.083893724, -0.041040797, 0.11614795, 0.8903628, 0.11646638, 0.35110062, 0.14486073, -0.45709106, 0.20043465, 0.5472072, 0.20143628, -0.6608698, 0.21195832, -0.20272687, 0.24071191, 0.74331367, 0.25801185, 0.18646456, 0.27821937, -0.8519796, 0.2836214, -0.014008283, 0.31845418, 0.37882793, 0.3470729, -0.3546758, 0.376984, -0.57481104, 0.3970325, 0.5749345, 0.40364844, -0.16357094, 0.45861077, 0.771041, 0.460224, -0.7659209, 0.4686956, 0.2420108, 0.49853125, 0.038626097, 0.51565504, 0.43811733, 0.5551068, -0.4491805, 0.55789125, 0.6471913, 0.62245786, -0.6402903, 0.62955433, -0.2652169, 0.6462991, 0.14666736, 0.69055015, -0.066040605, 0.69087905, 0.48990405, 0.75253195, -0.47840837, 0.759892, 0.30730557, 0.84372604, -0.29444474, 0.84829986, 0.108829945, 0.89132845, -0.09526846, 0.8928798]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_77 = new Float32Array([0.028559715, -0.8981026, 0.22931963, -0.8688017, -0.32055017, -0.8394352, 0.41838837, -0.79520756, -0.12956157, -0.7709777, -0.500705, -0.74612224, 0.05959248, -0.69760305, 0.5861268, -0.6810721, 0.26031202, -0.6680268, -0.3239224, -0.63657635, -0.6553329, -0.6147704, -0.108982444, -0.5690504, 0.42802513, -0.5538541, -0.48197493, -0.509366, 0.08021386, -0.49576688, 0.6172188, -0.4805818, -0.77655065, -0.45207635, -0.26703238, -0.44182882, 0.27065492, -0.42580056, 0.8039706, -0.40129197, -0.077838674, -0.3685565, 0.4598486, -0.35252824, -0.4250849, -0.3146184, -0.6279706, -0.31392044, 0.11135502, -0.29528418, -0.8581782, -0.2663345, 0.6685404, -0.25022325, -0.23589121, -0.2413461, 0.30179608, -0.22531787, 0.8735058, -0.21069308, -0.046697512, -0.16807379, 0.49098977, -0.15204555, -0.5067125, -0.1288766, -0.7095981, -0.12817861, 0.14249618, -0.09480148, -0.31751877, -0.05560428, -0.8971231, -0.050735176, 0.6996816, -0.049740538, 0.33293724, -0.024835158, 0.8985079, -0.009352626, -0.11406944, 0.023300475, 0.52213097, 0.048437156, -0.49522626, 0.073684886, -0.69811195, 0.07438287, 0.07512426, 0.09657279, -0.27764514, 0.1433258, -0.88563687, 0.1518263, 0.2673846, 0.16716988, 0.67510027, 0.18171684, 0.87770224, 0.19246465, -0.08309859, 0.22542986, 0.45657828, 0.24044219, -0.43858847, 0.26850596, -0.6414741, 0.26920393, 0.11088301, 0.29628357, -0.2504223, 0.34437805, -0.8289991, 0.34664738, 0.6095476, 0.37372187, 0.31306586, 0.3840262, 0.8121496, 0.3844697, -0.045851562, 0.4251143, -0.5425723, 0.4463522, 0.14408642, 0.49643508, 0.4694578, 0.52048, -0.73009723, 0.52379566, -0.21072955, 0.5433443, 0.7051919, 0.5568737, -0.40644866, 0.59679633, 0.29788172, 0.62876076, -0.5939736, 0.67423975, 0.10638664, 0.69578856, 0.5622821, 0.70088714, -0.09595547, 0.7106464, -0.4098238, 0.79965514, 0.390706, 0.8091679, -0.21997558, 0.87121445, 0.19921093, 0.87619567, -0.018768152, 0.898355]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_78 = new Float32Array([0.0, -0.89904153, 0.23828673, -0.86688817, -0.25331548, -0.86261636, 0.42574108, -0.7918461, -0.4728883, -0.7646256, -0.10442667, -0.7262251, 0.097450085, -0.7221972, -0.29698935, -0.66547924, 0.62038994, -0.6506858, -0.63160384, -0.63980645, 0.42782724, -0.58993995, 0.2263038, -0.56534874, 0.025265016, -0.53362423, -0.17459625, -0.5048854, -0.37656376, -0.47883013, 0.57671607, -0.4535487, -0.7785928, -0.44952077, 0.7785928, -0.44952077, -0.57671607, -0.44549283, 0.34994546, -0.40364748, 0.1500842, -0.3749087, -0.04977708, -0.34616986, -0.24963835, -0.31743106, -0.4494996, -0.28869227, 0.67416614, -0.27670434, -0.68114275, -0.2726764, 0.47476465, -0.24493197, 0.8698906, -0.22708173, 0.27490336, -0.21619315, -0.8737054, -0.21193054, 0.0750421, -0.18745434, -0.124819174, -0.15871553, -0.32468045, -0.12997672, -0.52454174, -0.10123791, 0.60266876, -0.0867002, -0.7248166, -0.0755393, 0.39972255, -0.05747762, 0.19986127, -0.02873881, 0.89862937, -0.02722046, 0.0, 0.0, -0.89862937, 0.02722046, -0.19986127, 0.02873881, -0.39972255, 0.05747762, 0.7248166, 0.0755393, -0.6026776, 0.08668601, 0.52454174, 0.10123791, 0.32468045, 0.12997672, 0.124819174, 0.15871553, -0.0750421, 0.18745434, 0.8737054, 0.21193054, -0.27490336, 0.21619315, -0.8698906, 0.22708173, -0.47476465, 0.24493197, 0.68114275, 0.2726764, -0.67416614, 0.27670434, 0.4494996, 0.28869227, 0.24963835, 0.31743106, 0.04977708, 0.34616986, -0.1500842, 0.3749087, -0.34994546, 0.40364748, 0.57671607, 0.44549283, -0.7785928, 0.44952077, 0.7785928, 0.44952077, -0.57671607, 0.4535487, 0.37656346, 0.47883108, 0.17459625, 0.5048854, -0.025265016, 0.53362423, -0.2262972, 0.56535685, -0.42782724, 0.58993995, 0.63160384, 0.63980645, -0.62038994, 0.6506858, 0.29698935, 0.66547924, -0.097450085, 0.7221972, 0.10442667, 0.7262251, 0.4728883, 0.7646256, -0.42574108, 0.7918461, 0.25331548, 0.86261636, -0.23828673, 0.86688817, 0.0, 0.89904153]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_79 = new Float32Array([0.042689875, -0.8986671, -0.15753488, -0.8857809, 0.24662426, -0.86521757, -0.34992477, -0.82884115, 0.43224153, -0.78904516, -0.5249115, -0.73067975, 0.116819814, -0.7122247, -0.08335158, -0.6967088, 0.6312176, -0.6410751, -0.31059253, -0.63209516, -0.67379224, -0.5961787, 0.43688884, -0.58845997, 0.23934679, -0.55334383, -0.4839854, -0.5311451, 0.039813712, -0.5269518, -0.15908235, -0.50056314, 0.7800045, -0.44835034, 0.57936877, -0.44719616, -0.7891625, -0.43202722, 0.36852932, -0.39982548, 0.16234069, -0.36807087, -0.03651771, -0.34139985, -0.43488726, -0.33660617, -0.23541377, -0.31501117, -0.6331565, -0.30586016, 0.6806862, -0.27401766, -0.86528456, -0.24638928, 0.48376375, -0.2355786, 0.87308866, -0.21712033, 0.28486767, -0.20918994, 0.08600927, -0.18251891, -0.11284913, -0.1558479, -0.51168716, -0.14616919, -0.3117452, -0.12945925, -0.7104491, -0.11878839, 0.6118859, -0.07862373, 0.40716895, -0.050135218, -0.8983724, -0.048497394, 0.20831056, -0.0234642, 0.89949584, -0.01822673, 0.009452151, 0.0032068205, -0.18944392, 0.029595478, -0.5883761, 0.040441606, -0.38834, 0.055984136, 0.72896034, 0.08747875, 0.52947026, 0.1089195, 0.33061182, 0.13559052, -0.88678056, 0.15180647, 0.13175343, 0.16226155, -0.067142636, 0.1886502, -0.26603872, 0.21503885, -0.6713846, 0.22310412, 0.8696436, 0.23053198, -0.4713485, 0.23864664, 0.67541426, 0.28084064, 0.45313883, 0.29447144, 0.25428042, 0.32114246, -0.8310855, 0.34456038, 0.055158645, 0.34770492, -0.14373742, 0.37409356, -0.3490472, 0.39770138, -0.55052537, 0.42576346, 0.57449275, 0.45425016, 0.7754771, 0.45595303, 0.37797177, 0.4946917, 0.17768563, 0.50658584, -0.7340572, 0.5201779, -0.0192535, 0.5449393, -0.21933039, 0.5599476, -0.41826794, 0.5860216, 0.6231914, 0.6488894, -0.6005212, 0.66992486, 0.28812933, 0.67409164, -0.106294386, 0.7257151, 0.09434427, 0.7260855, 0.46388718, 0.77086556, -0.43711886, 0.7863537, -0.2519768, 0.863674, 0.23631242, 0.86805874, -0.006295819, 0.8996585]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_80 = new Float32Array([-0.058984082, -0.8981738, 0.14059092, -0.88906103, -0.28504312, -0.8537832, 0.3586518, -0.82556903, -0.5165101, -0.73712295, 0.53192425, -0.7261212, -0.1405607, -0.71580476, 0.20367028, -0.6994978, -0.33229476, -0.6596685, 0.026770413, -0.60665566, -0.6671923, -0.60419357, 0.3772504, -0.5981774, 0.67899215, -0.59090185, -0.48252237, -0.5279685, -0.15142104, -0.5163172, 0.2021155, -0.4997209, 0.7926104, -0.42657253, 0.57251287, -0.4218593, -0.32089922, -0.41053262, 0.025215644, -0.40687874, -0.672206, -0.4044735, 0.37414348, -0.39813545, -0.4949121, -0.31238607, -0.14889535, -0.30890638, -0.846317, -0.30650112, 0.19990659, -0.29995015, 0.66745764, -0.24607898, 0.8671817, -0.24122867, -0.32290822, -0.21075979, 0.023006724, -0.207108, -0.6744149, -0.20470278, 0.37193456, -0.19836472, -0.497121, -0.11261532, -0.89307964, -0.112268075, -0.15100613, -0.10896143, 0.19186032, -0.10032931, 0.5407882, -0.09158602, 0.8990324, -0.044000994, -0.32511714, -0.010989044, -0.7211776, -0.010469722, 0.017847458, -0.002182733, 0.3638883, 0.0012561295, 0.7086892, 0.016684283, -0.5063549, 0.086954124, -0.89581877, 0.087530315, -0.15626355, 0.095789656, 0.19289319, 0.10541924, 0.53178936, 0.10952643, 0.88659346, 0.15539435, -0.6803678, 0.1851007, -0.3343511, 0.1885804, 0.015638536, 0.19758801, 0.36237818, 0.21541825, 0.6977845, 0.22069676, -0.85438067, 0.2832473, -0.50836396, 0.28672698, -0.15847246, 0.2955604, 0.18393056, 0.30524963, 0.53430223, 0.33553043, 0.8147023, 0.3826951, -0.6823768, 0.38487354, -0.3363601, 0.38835326, 0.010387938, 0.40422532, 0.35095063, 0.4148741, -0.51037294, 0.48649982, -0.16751082, 0.4951388, 0.18280679, 0.522767, 0.51134, 0.5339894, 0.71021855, 0.5529783, -0.68438584, 0.5846464, 1.7194457E-4, 0.6037469, -0.36455205, 0.62306297, 0.3431962, 0.64188236, -0.1780331, 0.69464445, -0.5385649, 0.7212095, 0.16056137, 0.7228622, 0.5216906, 0.7335062, -0.35732752, 0.8240317, 0.3220094, 0.8405387, -0.13551039, 0.8898496, 0.06411342, 0.89782226]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_81 = new Float32Array([-0.08883093, -0.8961136, 0.254314, -0.86384887, -0.2834679, -0.85472596, 0.4378247, -0.78690535, 0.07342751, -0.7809238, -0.46426323, -0.77160233, -0.10745897, -0.69799876, 0.5999566, -0.67153746, 0.23568596, -0.66573405, -0.3020423, -0.6563597, -0.6223887, -0.6508016, 0.4190971, -0.5885535, 0.054799475, -0.582809, -0.46016783, -0.535559, 0.73279274, -0.5233787, -0.12608701, -0.49988392, 0.21705791, -0.46761924, -0.64177877, -0.45275992, 0.5519333, -0.4403947, -0.3044525, -0.411667, 0.036171436, -0.38469416, -0.82184714, -0.36807302, 0.37585315, -0.34770024, -0.4856401, -0.3294019, 0.714927, -0.32519364, -0.14219408, -0.29647723, 0.19496666, -0.2647752, -0.67448497, -0.2343536, 0.53853047, -0.23310277, -0.32308057, -0.21355216, 0.8760533, -0.20842542, -0.8826186, -0.17859133, 0.016601147, -0.17655823, 0.3572251, -0.14958543, -0.50426817, -0.13128708, 0.706348, -0.10451863, -0.16428533, -0.093633175, 0.17885959, -0.06136847, -0.7352565, -0.0448719, 0.5199024, -0.034987953, 0.90043926, -0.010936662, -0.34549916, -0.010860763, -0.00202689, 0.021556586, 0.341464, 0.053709183, -0.53361595, 0.0655255, -0.8977478, 0.06999373, 0.73073405, 0.092970125, -0.18291338, 0.104481645, 0.16023156, 0.13674635, -0.7124422, 0.1528046, 0.51204914, 0.16384567, -0.36379987, 0.1874067, -0.020654928, 0.2196714, 0.86888033, 0.23639911, 0.32249, 0.2519361, -0.54744315, 0.26403317, 0.67147183, 0.28292927, -0.8503929, 0.29621348, -0.20154141, 0.30259645, 0.14160351, 0.33486116, 0.48863107, 0.36145154, -0.3822367, 0.38593733, -0.039282966, 0.4177862, 0.78027225, 0.44953945, 0.30359438, 0.45042694, -0.5660522, 0.46214977, -0.76457584, 0.47574598, -0.21997824, 0.50112706, 0.12193185, 0.5344321, 0.46998388, 0.55956453, -0.40086472, 0.58405215, 0.66249347, 0.60992855, 0.28495264, 0.64854044, -0.6190906, 0.6539398, -0.16579607, 0.69259715, 0.0322385, 0.7120598, 0.48634234, 0.7578797, -0.46035644, 0.77393955, 0.30802172, 0.84618735, -0.27914318, 0.85614806, 0.114660546, 0.893176, -0.08429948, 0.8965512]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_82 = new Float32Array([0.07039221, -0.8984016, 0.26459494, -0.86143434, -0.26916477, -0.8600179, 0.44607833, -0.78300357, -0.45021504, -0.7806324, -0.08821673, -0.78039956, 0.09328049, -0.7020412, 0.6060787, -0.66689515, 0.28746942, -0.6650016, -0.25191292, -0.6630823, -0.6173288, -0.65522915, -0.43296322, -0.5836967, -0.07096489, -0.5834639, 0.44746974, -0.5488931, 0.11053233, -0.50510556, -0.75400513, -0.4935147, 0.6289669, -0.47053477, -0.23039624, -0.46656185, -0.5647604, -0.43635094, 0.29202956, -0.4267472, 0.8108771, -0.39313975, -0.048076607, -0.38710356, 0.47352678, -0.34838885, -0.38818276, -0.34745988, 0.13342062, -0.30874518, -0.7325898, -0.29698822, 0.6554369, -0.27099386, -0.20668554, -0.26910153, 0.31491783, -0.23038684, -0.5467917, -0.22945786, 0.87708956, -0.206868, -0.025188325, -0.19074316, -0.88481057, -0.17085297, 0.49744666, -0.1521513, -0.3652945, -0.1510995, 0.15630889, -0.11238481, 0.7216494, -0.08472209, -0.18379726, -0.07274114, -0.719375, -0.062629394, 0.3378061, -0.03402645, -0.5239034, -0.033097476, -0.002300043, 0.0056172134, 0.8964532, 0.011452028, -0.90077436, 0.026191259, 0.5193033, 0.044331905, -0.34240618, 0.04526088, 0.17919718, 0.08397557, 0.70495576, 0.11226166, -0.16233821, 0.12685005, -0.6964867, 0.133731, 0.36069438, 0.16233392, -0.5010151, 0.1632629, 0.020516569, 0.20198594, 0.876021, 0.21134718, -0.8733885, 0.22197504, 0.5421916, 0.24069229, -0.32094714, 0.24485208, 0.20201379, 0.28034428, -0.6270692, 0.31883225, -0.13944994, 0.32321042, 0.7182927, 0.3305237, 0.383511, 0.35870266, 0.04340485, 0.3983463, -0.803971, 0.4070763, -0.29805887, 0.44121245, 0.22490206, 0.47670466, 0.5381027, 0.48192066, -0.5189606, 0.48434302, -0.114294, 0.51929784, 0.7303847, 0.52784336, -0.6958625, 0.5725871, 0.37949377, 0.5999227, -0.37736374, 0.62229806, 0.5919649, 0.6721452, 0.19677494, 0.6753886, -0.19546515, 0.6997201, 0.001997422, 0.70919675, -0.5542656, 0.71054214, 0.4332897, 0.7901522, -0.3474067, 0.8269501, 0.2505709, 0.8656181, -0.1416692, 0.8899496, 0.055793375, 0.8994262]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_83 = new Float32Array([-0.16175698, -0.886842, 0.17978399, -0.8833639, -0.35058632, -0.8305079, 0.36742693, -0.82319593, 0.00801243, -0.78679997, -0.5244966, -0.7327805, 0.5408295, -0.7208578, -0.1638763, -0.68979996, 0.17766468, -0.68632185, -0.35270566, -0.6334658, 0.36530763, -0.6261539, -0.6760053, -0.59638155, 0.0058931145, -0.5897579, 0.6888708, -0.58147323, -0.50168836, -0.5044921, 0.51200634, -0.4945881, -0.16583037, -0.49275622, 0.1757106, -0.4892781, -0.6777404, -0.3993357, -0.337354, -0.3957526, 0.003939044, -0.3927142, 0.34548002, -0.3892361, 0.6860685, -0.38443974, -0.849264, -0.3023321, -0.5085925, -0.29824644, -0.1675846, -0.29571056, 0.17395638, -0.29223248, 0.5143786, -0.28773072, 0.8555811, -0.28396314, -0.6801161, -0.20124283, -0.33882305, -0.19820441, 0.0021848185, -0.19566855, 0.34285495, -0.19072713, 0.6838912, -0.18725416, -0.89466536, -0.110580236, -0.5103467, -0.101200804, -0.16905364, -0.0981624, 0.17108338, -0.09416321, 0.8968403, -0.091277555, 0.51236755, -0.090250544, -0.72551745, -0.009490961, -0.34057727, -0.001158786, -1.5507634E-4, 0.0033429465, 0.72515035, 0.0054314355, 0.34059596, 0.006313369, -0.89626575, 0.09402839, -0.51210093, 0.09584483, -0.1716787, 0.10034656, 0.16935751, 0.10381953, 0.51010853, 0.10678995, 0.8940178, 0.11404146, -0.68832535, 0.18402082, -0.34320235, 0.19735017, 0.68463784, 0.1982754, -0.002166129, 0.20082314, 0.3388701, 0.2042961, -0.5155578, 0.29286796, -0.8525585, 0.29291317, -0.17368977, 0.29782674, 0.16734646, 0.30129972, 0.5089321, 0.3038399, 0.845977, 0.31141132, -0.6840445, 0.39505562, -0.0041771815, 0.39830333, 0.6751625, 0.40965828, -0.3259975, 0.4228564, 0.31679806, 0.42972976, -0.511304, 0.48987547, 0.50053126, 0.50094897, -0.15648493, 0.52333295, 0.14527443, 0.52673334, -0.6797906, 0.5920631, 0.66690695, 0.6065387, -0.36641917, 0.6234361, 0.35280895, 0.6313644, -0.0070333094, 0.651763, -0.1929828, 0.7169769, 0.1773994, 0.7211506, -0.5349058, 0.7256238, 0.51918465, 0.73695415, -0.35894573, 0.8266779, 0.34302497, 0.83274794, -0.10836354, 0.89493656, 0.08867801, 0.89710104]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_84 = new Float32Array([-0.17055643, -0.8853259, 0.17055643, -0.8853259, -0.35857654, -0.82723296, 0.36271286, -0.82480764, 0.0, -0.7871584, -0.53285205, -0.7267043, 0.53711647, -0.72415286, 0.17963165, -0.68874514, -0.17134441, -0.68853736, -0.35936454, -0.6304444, 0.3662986, -0.626441, -7.879889E-4, -0.5903699, -0.68143654, -0.59036916, 0.68143654, -0.59036916, -0.506655, -0.49993816, 0.5106186, -0.4926573, 0.16976844, -0.49220234, -0.17108175, -0.4917474, 0.34032488, -0.39403486, -5.253259E-4, -0.3935799, -0.68169916, -0.3935792, 0.68169916, -0.3935792, -0.34137553, -0.39312497, 0.5108813, -0.29586735, 0.1700311, -0.2954124, -0.17081909, -0.29495746, -0.85199296, -0.29495674, 0.85199296, -0.29495674, -0.5116693, -0.2945025, 0.34058753, -0.1972449, -2.6266294E-4, -0.19678995, -0.34111285, -0.196335, -0.681963, -0.19588006, 0.6862866, -0.18880701, -0.895693, -0.10308008, 0.511144, -0.099077396, 0.17029376, -0.09862245, 0.8957445, -0.09834743, -0.17055643, -0.0981675, -0.5114066, -0.097712554, -0.7256631, -0.004003385, 0.3408502, -4.5494558E-4, 0.0, 0.0, -0.3408502, 4.5494558E-4, 0.7256631, 0.004003385, 0.5114066, 0.097712554, 0.17055643, 0.0981675, -0.8957442, 0.09835026, -0.17029376, 0.09862245, -0.511144, 0.099077396, 0.895693, 0.10308008, -0.6862866, 0.18880701, 0.681963, 0.19588006, 0.34111285, 0.196335, 2.6266294E-4, 0.19678995, -0.34058753, 0.1972449, 0.5116693, 0.2945025, -0.85199296, 0.29495674, 0.85199296, 0.29495674, 0.17081909, 0.29495746, -0.1700311, 0.2954124, -0.5108813, 0.29586735, 0.34137553, 0.39312497, -0.68169916, 0.3935792, 0.68169916, 0.3935792, 5.253259E-4, 0.3935799, -0.34032488, 0.39403486, 0.17108175, 0.4917474, -0.16976844, 0.49220234, -0.5106186, 0.4926573, 0.506655, 0.49993816, -0.68143654, 0.59036916, 0.68143654, 0.59036916, 7.879889E-4, 0.5903699, -0.3662986, 0.626441, 0.35936454, 0.6304444, 0.17134441, 0.68853736, -0.17963165, 0.68874514, -0.53711647, 0.72415286, 0.5328435, 0.7267106, 0.0, 0.7871584, -0.36269534, 0.8247773, 0.35857654, 0.82723296, -0.17055643, 0.8853259, 0.17055643, 0.8853259]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_85 = new Float32Array([0.1251658, -0.8941826, -0.2108705, -0.87793094, 0.31347948, -0.8467347, -0.3937266, -0.8125321, -0.038164575, -0.7891277, 0.48729128, -0.760116, -0.55836844, -0.7095448, 0.13882709, -0.7004645, -0.2027614, -0.6839011, 0.32662797, -0.6510259, 0.6385605, -0.6383335, -0.38561746, -0.61850226, -0.0295092, -0.59512144, -0.6971796, -0.5737331, 0.47789717, -0.52924335, 0.14319475, -0.5063144, -0.19277035, -0.489959, -0.5252163, -0.48350033, 0.6527036, -0.4446499, 0.31723386, -0.42015326, -0.020066407, -0.40115193, -0.35704383, -0.38638502, -0.68934184, -0.37969208, 0.8277689, -0.3605935, 0.4920403, -0.33555982, 0.1563877, -0.31108564, -0.18493254, -0.29591796, -0.8575324, -0.28260812, -0.52116936, -0.28257677, 0.66684675, -0.25096637, 0.331377, -0.22646973, -0.012228601, -0.2071109, -0.34920603, -0.192344, -0.6893599, -0.18549283, 0.88573027, -0.17524563, 0.50618345, -0.14187627, 0.17071368, -0.11737962, -0.17548975, -0.10194843, -0.8981291, -0.09269959, -0.5211875, -0.08837752, 0.7253225, -0.06578013, 0.34552014, -0.032786164, 0.006436971, -0.01381076, -0.34922415, 0.0018552478, -0.7288513, 0.00464864, 0.90271676, 0.018209288, 0.523829, 0.051519662, 0.18607855, 0.0808643, -0.17734167, 0.09224198, -0.89717746, 0.10149733, -0.51352346, 0.10567044, 0.70271754, 0.127099, 0.36316568, 0.16060975, -0.004152756, 0.18009955, -0.68639535, 0.19415018, -0.3415601, 0.19590321, 0.8779426, 0.21082182, 0.5379721, 0.24520321, 0.21570589, 0.2869781, -0.8547214, 0.29099888, -0.52333367, 0.29962173, -0.15944487, 0.3141897, 0.717824, 0.32070982, 0.0397994, 0.3692597, -0.35137033, 0.38985452, -0.6916598, 0.39647043, 0.3719671, 0.40228543, 0.5628919, 0.43779695, 0.20137025, 0.5042035, -0.19516008, 0.50523084, -0.5048212, 0.5131617, 0.7428031, 0.5132959, -0.008114742, 0.5574553, 0.4366756, 0.58538693, -0.6830547, 0.59047896, -0.3483061, 0.62817997, 0.6158603, 0.66026145, -0.14686507, 0.6933291, 0.27825016, 0.69770217, -0.5409894, 0.7228828, 0.086298056, 0.7271596, 0.45402122, 0.78042555, -0.3738973, 0.8218454, 0.207785, 0.8786663, -0.18950838, 0.8827886, 0.0036474087, 0.902893]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_86 = new Float32Array([-0.02399154, -0.9031862, 0.16837472, -0.88767725, -0.21526316, -0.8774866, -0.39671323, -0.8117509, 0.4795969, -0.7657073, 0.28877613, -0.73685014, -0.0944109, -0.723502, 0.09795536, -0.70799303, -0.2768317, -0.6605103, 0.631277, -0.6463824, -0.4730324, -0.6344921, -0.6647026, -0.611957, 0.41195464, -0.5849593, 0.22113387, -0.5561022, 0.030313103, -0.52724504, -0.16148064, -0.50578654, 0.7541547, -0.49756575, -0.35315084, -0.48325145, 0.5636348, -0.46563444, -0.5493515, -0.45723325, -0.7795064, -0.45682675, 0.3415353, -0.40527514, 0.15071452, -0.37641796, -0.04010625, -0.34756082, -0.2377998, -0.32852772, 0.84262335, -0.32604724, -0.42947, -0.30599263, -0.6641553, -0.302103, 0.65093136, -0.2935164, -0.85874456, -0.28085342, 0.4619367, -0.2544481, 0.27111593, -0.22559091, 0.08029517, -0.19673376, -0.12309451, -0.17332461, -0.31476474, -0.15078953, 0.7746709, -0.14541566, -0.51500756, -0.1329937, -0.7070552, -0.1139411, 0.58567625, -0.106347345, -0.89880186, -0.09206592, 0.39151737, -0.07476386, 0.20069659, -0.0459067, -0.0026930878, -0.022497563, 0.9035031, -0.0017230894, -0.20331575, 0.014726553, -0.40030226, 0.022209408, 0.7147759, 0.038631175, -0.5911938, 0.052908983, -0.78398407, 0.063053966, 0.5152569, 0.07333688, 0.31899393, 0.12696019, 0.11770833, 0.1283295, -0.07311244, 0.15718666, 0.88325757, 0.19020247, -0.30659413, 0.19092245, -0.6791052, 0.2250593, 0.6925142, 0.2303347, -0.8725345, 0.23453027, -0.4885086, 0.2553618, 0.4872728, 0.26428765, 0.21436082, 0.2953732, -0.16800937, 0.3252339, 0.024864778, 0.3319321, 0.82271266, 0.3734499, -0.61004966, 0.40527204, -0.80281985, 0.41448906, 0.36616126, 0.41454506, -0.37592408, 0.41629866, 0.55684376, 0.44430205, 0.18777923, 0.4882082, -0.195149, 0.5163065, -0.0022748495, 0.5230047, 0.7246308, 0.53965837, -0.50023633, 0.5639741, -0.6926642, 0.5800776, 0.4182595, 0.60037047, -0.32981798, 0.6545439, 0.24000444, 0.67433286, 0.5934871, 0.68124443, -0.1427664, 0.70205194, 0.050107744, 0.7087501, -0.4934629, 0.7568456, 0.43340984, 0.7927653, -0.3146676, 0.8469387, 0.2551548, 0.8667277, -0.12761605, 0.8944468, 0.0652581, 0.901145]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_87 = new Float32Array([-0.024015637, -0.9038252, 0.1670881, -0.88857096, -0.21403965, -0.87844396, 0.35067964, -0.833367, -0.39444053, -0.8135683, 0.5185048, -0.7406953, 0.020348873, -0.7173175, -0.5571076, -0.71211505, 0.21141617, -0.70161337, -0.16967514, -0.69193625, -0.35007602, -0.6270606, 0.6630183, -0.6147223, 0.39408898, -0.5948391, -0.69472736, -0.57864547, 0.030638602, -0.5235996, -0.5112112, -0.5231915, 0.22207369, -0.51019824, -0.16027036, -0.5004555, 0.7777228, -0.46111172, 0.58632827, -0.43843058, -0.34067127, -0.43557987, -0.8011126, -0.4191603, 0.38138244, -0.40354905, -0.6175964, -0.36370635, 0.1197331, -0.348088, -0.071188115, -0.33069777, 0.8574613, -0.2867698, -0.4470703, -0.2761039, -0.251589, -0.2658221, 0.6644551, -0.2631934, -0.87148017, -0.24082991, 0.46636868, -0.23170415, 0.27363497, -0.2311503, -0.687964, -0.18537594, 0.08026813, -0.16048242, -0.10995289, -0.1366225, 0.78115684, -0.11089779, -0.51743793, -0.097773515, -0.32592228, -0.08910795, 0.5910582, -0.086081825, 0.39684612, -0.053042617, -0.90266645, -0.05167192, 0.20838873, -0.017869506, -0.7191503, 0.0037820586, 0.016500244, 0.020313017, 0.9033955, 0.03678785, -0.17372078, 0.044172924, 0.7116343, 0.067763746, -0.5486242, 0.09138448, 0.52153563, 0.09257971, -0.35710856, 0.10005005, 0.33307824, 0.12775283, -0.89326936, 0.13980922, 0.14462085, 0.16292593, -0.70975316, 0.19526319, -0.047267642, 0.20110846, 0.875331, 0.22643414, -0.23350485, 0.2465951, 0.6861995, 0.25778058, -0.46746546, 0.26621225, 0.45776772, 0.27337515, 0.26931036, 0.30854824, -0.83907866, 0.33678436, 0.08085296, 0.34372136, -0.651855, 0.37802297, -0.10538424, 0.38920802, 0.80791205, 0.40590006, 0.58245724, 0.41899747, -0.29295096, 0.42885727, 0.39399984, 0.45417058, -0.48116562, 0.46530682, 0.20554246, 0.48934367, 0.019305255, 0.53483033, -0.7090494, 0.5610042, 0.7041698, 0.5671169, -0.16826145, 0.5744796, 0.51571244, 0.60229003, -0.35850686, 0.6126437, 0.32725504, 0.63746315, -0.5444547, 0.65929925, 0.15198852, 0.71514827, -0.03971174, 0.71723187, -0.23086193, 0.7556825, 0.45194456, 0.78308547, -0.41680977, 0.80233806, 0.27667803, 0.8607706, -0.102733776, 0.89828867, 0.088972196, 0.8997559]);
    // Inline function 'kotlin.floatArrayOf' call
    var tmp_88 = new Float32Array([-0.007576515, -0.9047347, 0.18199395, -0.8862733, -0.19681121, -0.8831011, 0.36349902, -0.82853526, -0.37732387, -0.82233137, 0.528895, -0.7340792, 0.06960423, -0.7306056, -0.54111475, -0.7251186, -0.11963046, -0.7089721, 0.25159264, -0.6744095, -0.30014312, -0.64820236, 0.6708521, -0.6070911, -0.68092525, -0.59577096, 0.4169886, -0.57995343, -0.46393403, -0.55098957, 0.10548125, -0.5435478, -0.08960896, -0.5208857, -0.27012163, -0.46011597, 0.27378395, -0.45437396, 0.7830792, -0.45319876, 0.5589457, -0.4529654, -0.7905593, -0.44002065, 0.026767263, -0.37010652, -0.43391252, -0.3629032, -0.62379587, -0.34800032, 0.41574106, -0.3273859, -0.15543555, -0.3080473, 0.6711728, -0.29907304, 0.19506997, -0.28093266, 0.8606028, -0.27922213, -0.8651584, -0.2647701, -0.31922644, -0.21083452, -0.5085116, -0.18765263, -0.011340555, -0.18349041, 0.52796817, -0.17349355, -0.69839495, -0.17274976, 0.33799887, -0.15350683, 0.7105573, -0.11272218, 0.15696216, -0.094316535, 0.8999873, -0.092871256, -0.17558247, -0.08575777, -0.9014164, -0.07778577, -0.3557241, -0.023896819, -0.54476964, -6.68313E-4, -0.009208556, 0.0069649317, -0.734653, 0.01423455, 0.52954715, 0.01696717, 0.34013087, 0.036948502, 0.71005726, 0.07774443, 0.15909415, 0.0961388, 0.89948726, 0.09759536, -0.1709087, 0.10761701, -0.89772666, 0.11264575, -0.35203433, 0.1665347, -0.5410799, 0.18976322, -0.0022840353, 0.19730629, 0.48918477, 0.20310867, -0.73096323, 0.20466608, 0.29991025, 0.22439092, 0.6696949, 0.26388595, 0.8591249, 0.28373685, -0.2104473, 0.29393524, 0.13961647, 0.32726797, -0.4438955, 0.35357097, -0.6339131, 0.36961544, -0.82569563, 0.36990395, 0.40941378, 0.38023302, -0.04235769, 0.38351017, 0.59110475, 0.4373834, 0.78053623, 0.45755374, -0.29065737, 0.46668977, 0.24912001, 0.48311007, -0.72996163, 0.53456354, 0.067147665, 0.53935814, -0.46524018, 0.54283845, -0.12256778, 0.5562647, 0.4164059, 0.58042866, 0.66585237, 0.61257064, -0.30649146, 0.65806705, 0.25019908, 0.67357427, -0.60187817, 0.67553306, 0.06822672, 0.72982234, 0.5228589, 0.7383906, -0.12148873, 0.7467289, -0.44712135, 0.7865651, 0.3566941, 0.83148754, -0.27254963, 0.86273915, 0.17472175, 0.8877356, -0.014993695, 0.9046421]);
    // Inline function 'kotlin.floatArrayOf' call
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    tmp.k3b_1 = [tmp_0, tmp_1, tmp_2, tmp_3, tmp_4, tmp_5, tmp_6, tmp_7, tmp_8, tmp_9, tmp_10, tmp_11, tmp_12, tmp_13, tmp_14, tmp_15, tmp_16, tmp_17, tmp_18, tmp_19, tmp_20, tmp_21, tmp_22, tmp_23, tmp_24, tmp_25, tmp_26, tmp_27, tmp_28, tmp_29, tmp_30, tmp_31, tmp_32, tmp_33, tmp_34, tmp_35, tmp_36, tmp_37, tmp_38, tmp_39, tmp_40, tmp_41, tmp_42, tmp_43, tmp_44, tmp_45, tmp_46, tmp_47, tmp_48, tmp_49, tmp_50, tmp_51, tmp_52, tmp_53, tmp_54, tmp_55, tmp_56, tmp_57, tmp_58, tmp_59, tmp_60, tmp_61, tmp_62, tmp_63, tmp_64, tmp_65, tmp_66, tmp_67, tmp_68, tmp_69, tmp_70, tmp_71, tmp_72, tmp_73, tmp_74, tmp_75, tmp_76, tmp_77, tmp_78, tmp_79, tmp_80, tmp_81, tmp_82, tmp_83, tmp_84, tmp_85, tmp_86, tmp_87, tmp_88, new Float32Array([0.0540326, -0.9035638, -0.13541766, -0.89499116, 0.24111113, -0.87247497, -0.31892383, -0.8471332, 0.41760617, -0.80308914, -0.4890081, -0.76172054, 0.042606458, -0.7142642, -0.1468438, -0.7056916, 0.57577056, -0.6984521, 0.22968498, -0.6831753, -0.33034995, -0.65783364, -0.63698596, -0.64311427, 0.40613303, -0.6136701, 0.7086618, -0.5631568, -0.47832784, -0.53922737, 0.07133355, -0.5268085, -0.11811671, -0.51823586, -0.7570036, -0.49627882, 0.25827622, -0.49491295, 0.53902423, -0.47837478, -0.30162287, -0.47037792, 0.81044656, -0.40314198, -0.59834546, -0.3923919, 0.39116743, -0.35961762, 0.02060998, -0.3440737, -0.1688169, -0.33499894, -0.84379286, -0.3276594, -0.42164052, -0.32354245, 0.640809, -0.31835994, 0.20755266, -0.31217813, 0.8766572, -0.22543138, -0.68513477, -0.22377247, 0.49295223, -0.1996028, -0.29060474, -0.18644933, 0.086489126, -0.1661552, -0.10325349, -0.15704858, -0.5084298, -0.154923, 0.30933747, -0.1521633, -0.89354426, -0.1446575, 0.7070196, -0.14064938, -0.7348861, -0.040770575, 0.9043873, -0.037825588, 0.5591628, -0.021892222, -0.37739402, -0.017829908, 0.18885009, -0.005713005, -6.194301E-4, 0.0024228594, -0.19004278, 0.011570845, 0.37576142, 0.026365679, -0.5601307, 0.03288697, -0.9040622, 0.0449285, 0.73537785, 0.048201736, 0.89171183, 0.15555431, -0.30746323, 0.16075748, -0.69850427, 0.16256982, 0.09975947, 0.16332336, 0.5056053, 0.16458818, -0.089663886, 0.17247133, 0.28692025, 0.19391309, -0.4925262, 0.21007197, 0.6833962, 0.23058267, -0.87485933, 0.23231068, -0.20571391, 0.3224623, 0.41676414, 0.3321356, 0.83973026, 0.33793524, -0.6308998, 0.33975482, 0.16169846, 0.34256747, -0.38948762, 0.36928234, -0.024598287, 0.38192335, 0.5945551, 0.3981301, -0.80725485, 0.40949568, 0.294963, 0.47749507, -0.5278612, 0.4989652, 0.75088906, 0.5054827, -0.25320584, 0.5060635, 0.11148, 0.5254417, 0.47275394, 0.5434896, -0.07358002, 0.56688666, -0.70421624, 0.56870604, -0.39391133, 0.63321245, 0.6290879, 0.65084213, 0.31988397, 0.6654946, -0.21428552, 0.6940356, -0.57026637, 0.7029533, 0.13640097, 0.7134413, 0.47967324, 0.7676332, -0.042897888, 0.77522165, -0.3785267, 0.82223153, 0.2902093, 0.85726815, -0.19890086, 0.8830547, 0.10025489, 0.89960885])];
    var tmp_89 = this;
    // Inline function 'kotlin.floatArrayOf' call
    tmp_89.l3b_1 = new Float32Array([1.0, 0.5, 0.4641016, 0.41421357, 0.3701919, 0.33333334, 0.33333334, 0.30259338, 0.27676865, 0.26225892, 0.2548547, 0.24816348, 0.23606798, 0.23103073, 0.22117254, 0.21666475, 0.20867966, 0.20560464, 0.20560464, 0.19522402, 0.19039215, 0.18383303, 0.18033601, 0.17693913, 0.17382766, 0.17158026, 0.16930793, 0.16625275, 0.16290365, 0.1613491, 0.15894455, 0.15553398, 0.15416151, 0.15126403, 0.14931677, 0.14821944, 0.14795591, 0.14363922, 0.14168552, 0.1403736, 0.1377408, 0.13611375, 0.1347719, 0.13336824, 0.13204959, 0.13071588, 0.12946375, 0.12834875, 0.126793, 0.1258255, 0.12457167, 0.123690166, 0.12225562, 0.12189202, 0.121786326, 0.1192815, 0.11838264, 0.11730819, 0.116380565, 0.11565748, 0.11545614, 0.113253295, 0.112456195, 0.11158259, 0.110896744, 0.10993506, 0.109063484, 0.10834502, 0.10787764, 0.10700162, 0.1062045, 0.105553254, 0.104818, 0.10428363, 0.10339092, 0.10277918, 0.102052145, 0.10144344, 0.10095847, 0.1003195, 0.09989148, 0.09949433, 0.098844916, 0.09852672, 0.098395064, 0.097099625, 0.09649521, 0.095855795, 0.095233634, 0.09482206, 0.09463628]);
  }
}
class Exp10Scale {
  q2k(value, min, max) {
    // Inline function 'kotlin.math.pow' call
    return Math.pow(value, 10.0);
  }
  toString() {
    return 'Exp10';
  }
}
class ExpScale {
  q2k(value, min, max) {
    // Inline function 'kotlin.math.exp' call
    return Math.exp(value);
  }
  toString() {
    return 'Exp';
  }
}
class ExpandLabeling extends AbstractLabeling {
  v2l(g, bounds, node, view, pass, passes) {
    if (pass === (passes - 1 | 0)) {
      if (bounds.gm() > 20 && bounds.hm() > 16) {
        var model = ensureNotNull(view.h2l());
        g.u2m();
        g.j3p(0.5);
        var elabel = ensureNotNull(view.t37()).q3h(model, node, Dimension.fm(bounds.c1w_1, bounds.d1w_1));
        var pf = g.o2l(elabel, bounds.c1w_1, bounds.d1w_1);
        var column = model.getGroupByColumn(node);
        var headerFont = model.settings.getColumnSettings(column).getHeaderFont();
        elabel.setFont(ensureNotNull(headerFont));
        var size = pf.q2l();
        var scalex = bounds.gm() / size.gm();
        var scaley = bounds.hm() / size.hm();
        // Inline function 'kotlin.math.min' call
        var scale = Math.min(scalex, scaley);
        var tmp0 = getFontSize(headerFont);
        // Inline function 'kotlin.math.max' call
        var b = getFontSize(headerFont) * scale;
        var fontSize = Math.max(tmp0, b);
        var foreground = model.settings.getColumnSettings(column).getHeaderForeground();
        var background = model.settings.getColumnSettings(column).getHeaderEffectColor();
        var derivedFont = headerFont.q29(fontSize);
        elabel.setFont(derivedFont);
        elabel.setForeground(ensureNotNull(foreground));
        elabel.setBackground(ensureNotNull(background));
        size = pf.q2l();
        var position;
        var shape = model.getShape(node);
        if (!(shape == null) ? isInterface(shape, Arc2D) : false) {
          position = Companion_instance_67.b2l(shape);
        } else {
          position = null;
        }
        var rect;
        if (!(position == null)) {
          var w = size.cm_1;
          if (!(shape == null) ? isInterface(shape, Arc2D) : false) {
            var arc = shape;
            var startPoint = arc.a1l();
            var endPoint = arc.b1l();
            var s = Double_2.c1l(view.z37(startPoint.g1h()), view.a38(startPoint.h1h()));
            var e = Double_2.c1l(view.z37(endPoint.g1h()), view.a38(endPoint.h1h()));
            var tmp0_0 = numberToInt(s.t1v(e));
            // Inline function 'kotlin.math.min' call
            var b_0 = w;
            w = Math.min(tmp0_0, b_0);
          }
          var h = size.dm_1;
          var x = view.z37(position.g1h()) - (w / 2 | 0) | 0;
          var y = view.a38(position.h1h()) - (h / 2 | 0) | 0;
          rect = Rectangle.from(x, y, w, h).e1w(bounds);
        } else {
          rect = bounds;
        }
        g.u2l(elabel, rect.a1w_1, rect.b1w_1, rect.c1w_1, rect.d1w_1);
        g.w2m();
      }
    }
  }
  toString() {
    return 'Expand';
  }
}
class FixedNesting extends AbstractNesting {
  x2l(model, shape, node, amount) {
    var tmp;
    var tmp_0;
    if (!model.isRoot(node)) {
      tmp_0 = isInterface(shape, Rectangle2D);
    } else {
      tmp_0 = false;
    }
    if (tmp_0) {
      var rectangle = shape;
      var tmp_1;
      if (rectangle.gm() > amount * 2 + 1 && rectangle.hm() >= amount * 2 + 1) {
        tmp_1 = Double_3.z1h(rectangle.g1h() + amount, rectangle.h1h() + amount, rectangle.gm() - amount * 2, rectangle.hm() - amount * 2);
      } else {
        tmp_1 = shape;
      }
      tmp = tmp_1;
    } else {
      tmp = shape;
    }
    return tmp;
  }
  toString() {
    return 'Fixed';
  }
}
class FlatRendering extends AbstractRendering {
  constructor() {
    super();
    this.drawBorder = true;
  }
  k3p(_set____db54di) {
    this.drawBorder = _set____db54di;
  }
  l3p() {
    return this.drawBorder;
  }
  paintNode(g, view, node, pass, bounds, shape) {
    var model = ensureNotNull(view.h2l());
    if (pass === 0) {
      var color;
      var tmp;
      if (!model.filter.qk(node) && !model.search.qk(node)) {
        tmp = model.getColor(node);
      } else {
        tmp = view.k2m();
      }
      color = tmp;
      if (!(color == null)) {
        g.l2m(color);
        if (shape instanceof TextShape) {
          var textShape = shape;
          if (textShape.m1x()) {
            g.m2m(shape);
          } else {
            var bounds2D = textShape.i1h();
            g.m3c(textShape.j1x_1, bounds2D.g1h(), bounds2D.t1h());
          }
        } else {
          g.m2m(shape);
        }
      }
    } else if (pass === 1)
      if (!model.filter.qk(node) && !model.search.qk(node)) {
        var color_0 = ensureNotNull(model.getColor(node));
        if (isInterface(shape, Rectangle2D)) {
          var bottom = shape;
          var tmp_0 = this.getRenderedShape(view, model, node, shape);
          var top = isInterface(tmp_0, Rectangle2D) ? tmp_0 : THROW_CCE();
          g.l2m(color_0);
          g.w38(top.g1h(), top.h1h(), top.gm(), top.hm());
          if (bounds.gm() > 1 && bounds.hm() > 1) {
            var g2 = g.i3c();
            g2.r1x();
            g2.m1v(top.p1h(), top.t1h());
            g2.n1v(bottom.g1h(), bottom.t1h());
            g2.n1v(bottom.s1h(), bottom.t1h());
            g2.n1v(top.s1h(), top.t1h());
            g2.q1v();
            g2.q1x(darker(color_0));
            g2.s1x();
            g2.r1x();
            g2.m1v(top.s1h(), top.t1h());
            g2.n1v(bottom.s1h(), bottom.t1h());
            g2.n1v(bottom.s1h(), bottom.r1h());
            g2.n1v(top.s1h(), top.r1h());
            g2.q1v();
            g2.q1x(darker(color_0));
            g2.s1x();
            if (this.drawBorder) {
              g.y2m(g.r2w().a28());
              g.j3c(top.g1h(), top.h1h(), top.gm(), top.hm());
              g.k3c(numberToInt(top.p1h()), numberToInt(top.t1h()), numberToInt(bottom.g1h()), numberToInt(bottom.t1h()));
              g.k3c(numberToInt(top.s1h()), numberToInt(top.t1h()), numberToInt(bottom.s1h()), numberToInt(bottom.t1h()));
              g.k3c(numberToInt(top.s1h()), numberToInt(top.r1h()), numberToInt(bottom.s1h()), numberToInt(bottom.r1h()));
            }
          }
        }
      }
    return true;
  }
  paintBorder(g2, view, node, pass, bounds, shape) {
    if (this.drawBorder && pass === 0 && bounds.gm() > 1 && bounds.hm() > 1) {
      var model = ensureNotNull(view.h2l());
      if (model.hasNoChildren(node)) {
        if (!model.filter.qk(node) && !model.search.qk(node)) {
          var columnSettings = model.settings.getColumnSettings(model.getGroupByColumn(node));
          var borderThickness = columnSettings.getBorderThickness();
          var tmp;
          if (borderThickness > 0) {
            tmp = !(shape instanceof TextShape);
          } else {
            tmp = false;
          }
          if (tmp) {
            g2.u2m();
            g2.x2m(borderThickness);
            g2.y2m(columnSettings.getBorderColor());
            g2.z2m(shape);
            g2.w2m();
          }
        }
      }
    }
  }
  toString() {
    return 'Flat';
  }
}
class FlatNoBorderRendering extends FlatRendering {
  constructor() {
    super();
    this.drawBorder = false;
  }
  toString() {
    return 'Flat (No Border)';
  }
}
class AscendingTreeMapNodeComparator_0 {
  constructor(model, universal) {
    this.m3p_1 = model;
    this.n3p_1 = universal;
  }
  i2m(a, b) {
    var column = this.m3p_1.settings.heightColumn;
    return this.n3p_1.compare(this.m3p_1.getAggregateValue(a, column), this.m3p_1.getAggregateValue(b, column));
  }
  compare(a, b) {
    var tmp = (a == null ? true : !(a == null)) ? a : THROW_CCE();
    return this.i2m(tmp, (b == null ? true : !(b == null)) ? b : THROW_CCE());
  }
}
class DescendingTreeMapNodeComparator_0 {
  constructor(model, universal) {
    this.o3p_1 = model;
    this.p3p_1 = universal;
  }
  i2m(a, b) {
    var column = this.o3p_1.settings.heightColumn;
    return this.p3p_1.compare(this.o3p_1.getAggregateValue(b, column), this.o3p_1.getAggregateValue(a, column));
  }
  compare(a, b) {
    var tmp = (a == null ? true : !(a == null)) ? a : THROW_CCE();
    return this.i2m(tmp, (b == null ? true : !(b == null)) ? b : THROW_CCE());
  }
}
class HeightOrdering {
  b2z(model, nodes, sortOrder) {
    // Inline function 'kotlin.collections.copyOf' call
    // Inline function 'kotlin.js.asDynamic' call
    var copy = nodes.slice();
    var universal = new UniversalComparator();
    var comparator;
    var tmp;
    switch (sortOrder.g3_1) {
      case 0:
        tmp = new AscendingTreeMapNodeComparator_0(model, universal);
        break;
      case 1:
        tmp = new DescendingTreeMapNodeComparator_0(model, universal);
        break;
      default:
        throw IllegalArgumentException.hb();
    }
    comparator = tmp;
    sortWith(copy, comparator);
    return copy;
  }
  toString() {
    return 'By height';
  }
}
class HighlightParentNodeRenderer extends AbstractNodeRenderer {
  a2m(view) {
    var model = ensureNotNull(view.h2l());
    return model.highlighting.f13();
  }
  z2l(view, root, pass) {
    var model = ensureNotNull(view.h2l());
    return model.highlighting;
  }
  c2m(view, node) {
    return !ensureNotNull(view.h2l()).hasNoChildren(node);
  }
  b2m(model) {
    return ensureNotNull(model.settings.rendering).getPasses(model);
  }
  d2m(g, view, node, pass, passes, bounds, shape) {
    var model = ensureNotNull(view.h2l());
    if (bounds.gm() > 0 && bounds.hm() > 0) {
      var rendering = ensureNotNull(model.settings.rendering);
      rendering.paintParentHighlight(g, view, node, pass, bounds, shape);
    }
    return true;
  }
}
class IcicleRectangle2D extends Double_3 {
  static v3p(x, y, w, h, fullWidth) {
    var $this = this.z1h(x, y, w, h);
    $this.u3p_1 = fullWidth;
    return $this;
  }
}
class IcicleAlgorithm extends AbstractAlgorithm {
  constructor() {
    super();
    this.w3p_1 = 0;
  }
  startLayout(bounds, model, root, worker) {
    super.startLayout(bounds, model, root, worker);
    this.w3p_1 = getMaxDepthToLeaf(this, model, root) - model.getLevel(root) | 0;
  }
  breadthFirstLayout(shape, parent, children, sumSizes, horizontalVanishingPoint, verticalVanishingPoint, accessor, worker) {
    if (shape instanceof IcicleRectangle2D) {
      var bounds = shape.i1h();
      var width = bounds.gm();
      var sumShares = 0.0;
      var inductionVariable = 0;
      var last = children.length;
      while (inductionVariable < last) {
        var child = children[inductionVariable];
        inductionVariable = inductionVariable + 1 | 0;
        var r;
        var share = accessor.getSize(child) / sumSizes;
        r = IcicleRectangle2D.v3p(bounds.g1h() + width, bounds.h1h() + bounds.hm() * sumShares, width, bounds.hm() * share, bounds.gm());
        accessor.setShape(child, r);
        sumShares = sumShares + share;
      }
    } else {
      var bounds_0 = shape.i1h();
      var width_0 = bounds_0.gm() / this.w3p_1;
      var sumShares_0 = 0.0;
      var inductionVariable_0 = 0;
      var last_0 = children.length;
      while (inductionVariable_0 < last_0) {
        var child_0 = children[inductionVariable_0];
        inductionVariable_0 = inductionVariable_0 + 1 | 0;
        var r_0;
        var share_0 = accessor.getSize(child_0) / sumSizes;
        r_0 = IcicleRectangle2D.v3p(bounds_0.g1h(), bounds_0.h1h() + bounds_0.hm() * sumShares_0, width_0, bounds_0.hm() * share_0, width_0);
        accessor.setShape(child_0, r_0);
        sumShares_0 = sumShares_0 + share_0;
      }
    }
    return false;
  }
  r2k() {
    return true;
  }
  s2k() {
    return true;
  }
  t2k() {
    return true;
  }
  u2k() {
    return false;
  }
  v2k() {
    return false;
  }
  isCompatible(shape) {
    return !(shape == null) ? isInterface(shape, Rectangle2D) : false;
  }
  toString() {
    return 'Icicle';
  }
}
class InfiniteDepth {
  n2m(depth) {
    return true;
  }
  toString() {
    return 'Infinite';
  }
}
class InverseScale {
  q2k(value, min, max) {
    return 1.0 / value;
  }
  toString() {
    return 'Inverse';
  }
}
class Itertools$combinations$1$iterator$1 {
  constructor($list, $r) {
    this.a3q_1 = $list;
    this.b3q_1 = $r;
    this.x3p_1 = -1;
    this.y3p_1 = CombinationGenerator_instance.b3c($list.k1(), $r);
    this.z3p_1 = new Int32Array($r);
  }
  i1() {
    this.x3p_1 = this.x3p_1 + 1 | 0;
    return this.x3p_1 < this.y3p_1;
  }
  j1() {
    if (this.x3p_1 === 0) {
      var inductionVariable = 0;
      var last = this.z3p_1.length - 1 | 0;
      if (inductionVariable <= last)
        do {
          var i = inductionVariable;
          inductionVariable = inductionVariable + 1 | 0;
          this.z3p_1[i] = i + 1 | 0;
        }
         while (inductionVariable <= last);
    } else
      this.z3p_1 = CombinationGenerator_instance.c3c(this.z3p_1, this.a3q_1.k1(), this.b3q_1);
    var result = ArrayList.q1();
    var indexedObject = this.z3p_1;
    var inductionVariable_0 = 0;
    var last_0 = indexedObject.length;
    while (inductionVariable_0 < last_0) {
      var aCurrCombination = indexedObject[inductionVariable_0];
      inductionVariable_0 = inductionVariable_0 + 1 | 0;
      result.c1(this.a3q_1.l1(aCurrCombination - 1 | 0));
    }
    return result;
  }
  t4() {
    // Inline function 'kotlin.TODO' call
    var reason = 'Not yet implemented';
    throw NotImplementedError.ui('An operation is not implemented: ' + reason);
  }
}
class Itertools$combinations$1 {
  constructor($list, $r) {
    this.c3q_1 = $list;
    this.d3q_1 = $r;
  }
  h1() {
    return new Itertools$combinations$1$iterator$1(this.c3q_1, this.d3q_1);
  }
}
class Itertools {
  h3a(list, r) {
    return new Itertools$combinations$1(list, r);
  }
}
class Companion_84 {
  constructor() {
    Companion_instance_84 = this;
    this.y3d_1 = new OverlayLabeling();
    this.z3d_1 = new SurroundLabeling();
    this.a3e_1 = new ColoredSurroundLabeling();
    this.b3e_1 = new NoneLabeling();
    this.c3e_1 = new ExpandLabeling();
    this.d3e_1 = new LabelingFactory([this.y3d_1, this.z3d_1, this.a3e_1, this.b3e_1, this.c3e_1]);
  }
  c38() {
    return this.d3e_1;
  }
}
class LabelingFactory {
  constructor(entries) {
    Companion_getInstance_84();
    this.e3e_1 = ArrayList.q1();
    addAll(this.e3e_1, entries);
  }
  e38() {
    return Companion_getInstance_84().z3d_1;
  }
}
class LeafNodeRenderer extends AbstractNodeRenderer {
  constructor(drawText) {
    super();
    this.e3q_1 = drawText;
  }
  a2m(view) {
    return true;
  }
  z2l(view, root, pass) {
    return ensureNotNull(ensureNotNull(view.h2l()).settings.rendering).getOrder(view, root, pass);
  }
  c2m(view, node) {
    return ensureNotNull(view.h2l()).hasNoChildren(node);
  }
  b2m(model) {
    return ensureNotNull(model.settings.rendering).getPasses(model);
  }
  d2m(g, view, node, pass, passes, bounds, shape) {
    var completed = true;
    var model = ensureNotNull(view.h2l());
    if (bounds.gm() > 0 && bounds.hm() > 0) {
      var settings = model.settings;
      var rendering = ensureNotNull(settings.rendering);
      completed = rendering.paintNode(g, view, node, pass, bounds, shape);
      if (this.e3q_1 && bounds.gm() > 4 && bounds.hm() > 4) {
        if (!(settings.backgroundColumn == null)) {
          rendering.paintBackground(g, view, node, pass, passes, bounds, shape);
        }
        // Inline function 'kotlin.collections.isNotEmpty' call
        if (!settings.labelsColumns.p1()) {
          rendering.paintLabel(g, view, node, pass, passes, bounds, shape);
        }
      }
      rendering.paintBorder(g, view, node, pass, bounds, shape);
    }
    return completed;
  }
}
class LeafTreeMapNode extends AbstractTreeMapNode {
  constructor(row, model) {
    super(model);
    this.n3q_1 = row;
  }
  a2z(value) {
    throw IllegalStateException.gb();
  }
  e2z() {
    return this.k1();
  }
  g30() {
    return this.n3q_1;
  }
  x2z() {
    return 0;
  }
  m2z() {
    return null;
  }
  n2z() {
    return null;
  }
  a30() {
    return emptyList();
  }
  b30() {
    return emptyList();
  }
  c30(newChild) {
    throw UnsupportedOperationException.q3();
  }
  e30(name) {
    return null;
  }
  o2y() {
    return true;
  }
  z2y() {
    return true;
  }
  f30() {
    return this.n3q_1;
  }
  equals(other) {
    if (this === other)
      return true;
    if (other == null || !getKClassFromExpression(this).equals(getKClassFromExpression(other)))
      return false;
    var that = other instanceof LeafTreeMapNode ? other : THROW_CCE();
    return !(this.e2u_1 === that.e2u_1) ? false : this.n3q_1 === that.n3q_1 || equals(this.n3q_1, that.n3q_1);
  }
  hashCode() {
    // Inline function 'kotlin.hashCode' call
    var tmp0_safe_receiver = this.n3q_1;
    var tmp1_elvis_lhs = tmp0_safe_receiver == null ? null : hashCode(tmp0_safe_receiver);
    return tmp1_elvis_lhs == null ? 0 : tmp1_elvis_lhs;
  }
  o3q(other) {
    var tmp;
    if (other instanceof AbstractTreeMapNode) {
      var tmp_0 = this.n3q_1;
      tmp = compareTo((!(tmp_0 == null) ? isComparable(tmp_0) : false) ? tmp_0 : THROW_CCE(), ensureNotNull(other.g30()));
    } else {
      tmp = compareTo(this.hashCode(), hashCode(other));
    }
    return tmp;
  }
  d(other) {
    return this.o3q(other instanceof AbstractTreeMapNode ? other : THROW_CCE());
  }
}
class Log1pScale {
  q2k(value, min, max) {
    // Inline function 'kotlin.math.ln' call
    var x = 1 + value;
    return Math.log(x);
  }
  toString() {
    return 'Ln(1+x)';
  }
}
class LogScale {
  q2k(value, min, max) {
    // Inline function 'kotlin.math.ln' call
    return Math.log(value);
  }
  toString() {
    return 'Log';
  }
}
class Companion_85 {}
class MatrixAlgorithm extends AbstractAlgorithm {
  breadthFirstLayout(shape, parent, children, sumSize, horizontalVanishingPoint, verticalVanishingPoint, accessor, worker) {
    if (children.length === 0) {
      return true;
    }
    if (children.length === 1) {
      accessor.setShape(children[0], shape);
      return true;
    }
    var bounds = shape.i1h();
    var size = this.p3q(bounds.gm(), bounds.hm(), children.length);
    var x = bounds.g1h();
    var y = bounds.h1h();
    var col = 0;
    var row = 0;
    var inductionVariable = 0;
    var last = children.length;
    while (inductionVariable < last) {
      var child = children[inductionVariable];
      inductionVariable = inductionVariable + 1 | 0;
      accessor.setShape(child, Double_3.z1h(x, y, size, size));
      col = col + 1 | 0;
      x = bounds.g1h() + size * col;
      if (size * (col + 1 | 0) > bounds.gm()) {
        x = bounds.g1h();
        row = row + 1 | 0;
        y = bounds.h1h() + size * row;
        col = 0;
      }
    }
    return false;
  }
  p3q(width, height, count) {
    // Inline function 'kotlin.math.sqrt' call
    var x = width * count / height;
    // Inline function 'kotlin.math.ceil' call
    var x_0 = Math.sqrt(x);
    var cols = Math.ceil(x_0);
    // Inline function 'kotlin.math.ceil' call
    var x_1 = count / cols;
    var rows = Math.ceil(x_1);
    var p1 = width / cols;
    var p2 = height / rows;
    // Inline function 'kotlin.math.min' call
    return Math.min(p1, p2);
  }
  isCompatible(shape) {
    return !(shape == null) ? isInterface(shape, Rectangle2D) : false;
  }
  v2k() {
    return false;
  }
  toString() {
    return getName(Companion_instance_85);
  }
}
class MaxAggregation {
  p2y(values) {
    var max = -1.7976931348623157E308;
    var inductionVariable = 0;
    var last = values.length;
    while (inductionVariable < last) {
      var value = values[inductionVariable];
      inductionVariable = inductionVariable + 1 | 0;
      if (isFinite_0(value)) {
        if (value > max) {
          max = value;
        }
      }
    }
    return max;
  }
  o2z() {
    return false;
  }
  toString() {
    return 'Max';
  }
}
class MaxScale {
  q2k(value, min, max) {
    return max - value;
  }
  toString() {
    return 'Max - x';
  }
}
class MinAggregation {
  p2y(values) {
    var min = 1.7976931348623157E308;
    var inductionVariable = 0;
    var last = values.length;
    while (inductionVariable < last) {
      var value = values[inductionVariable];
      inductionVariable = inductionVariable + 1 | 0;
      if (isFinite_0(value)) {
        if (value < min) {
          min = value;
        }
      }
    }
    return min;
  }
  o2z() {
    return false;
  }
  toString() {
    return 'Min';
  }
}
class MinScale {
  q2k(value, min, max) {
    return value - min;
  }
  toString() {
    return 'x - Min';
  }
}
class MutableAlgorithmOverrideProperty extends OverrideProperty {
  constructor(overrideDefaults, defaultProperty) {
    super(overrideDefaults, defaultProperty);
    this.w3q_1 = defaultProperty;
  }
  e10() {
    return this.w3q_1;
  }
  g10() {
    var overrideProperty = new MutableAlgorithmProperty(this.w3q_1.z2());
    return this.h10(overrideProperty);
  }
}
class MutableAlgorithmProperty$propertiesListener$1 {
  constructor(this$0, $algorithm) {
    this.x3q_1 = this$0;
    this.y3q_1 = $algorithm;
  }
  d34(name, event) {
    this.x3q_1.ay(new PropertyEvent(null, this.y3q_1));
  }
  ey(name, event) {
    return this.d34((name == null ? true : typeof name === 'string') ? name : THROW_CCE(), event);
  }
}
class MutableAlgorithmProperty extends AbstractMutableProperty {
  constructor(algorithm) {
    super();
    var tmp = this;
    tmp.b3r_1 = new MutableAlgorithmProperty$propertiesListener$1(this, algorithm);
    this.c3r_1 = algorithm;
  }
  d3r(value) {
    if (!(this.c3r_1 == null)) {
      if (!(ensureNotNull(this.c3r_1).properties == null)) {
        ensureNotNull(ensureNotNull(this.c3r_1).properties).gy(this.b3r_1);
      }
    }
    var old = this.c3r_1;
    this.c3r_1 = value;
    if (!(this.c3r_1 == null)) {
      if (!(ensureNotNull(this.c3r_1).properties == null)) {
        ensureNotNull(ensureNotNull(this.c3r_1).properties).iy(this.b3r_1);
      }
    }
    this.ay(new PropertyEvent(old, this.c3r_1));
  }
  ap(_set____db54di) {
    return this.d3r((_set____db54di == null ? true : isInterface(_set____db54di, Algorithm)) ? _set____db54di : THROW_CCE());
  }
  z2() {
    return this.c3r_1;
  }
}
class Companion_86 {
  constructor() {
    Companion_instance_86 = this;
    this.n3d_1 = new NoneNesting();
    this.o3d_1 = new FixedNesting();
    this.p3d_1 = new ProportionalNesting();
    this.q3d_1 = new NestingFactory([this.n3d_1, this.o3d_1, this.p3d_1]);
  }
  c38() {
    return this.q3d_1;
  }
}
class NestingFactory {
  constructor(entries) {
    Companion_getInstance_86();
    this.r3d_1 = ArrayList.q1();
    addAll(this.r3d_1, entries);
  }
  e38() {
    return Companion_getInstance_86().p3d_1;
  }
}
class Companion_87 {
  constructor() {
    this.g3r_1 = true;
  }
}
class NodesTreeMapRenderer {
  static m37(nodeRenderer, selectedPass) {
    var $this = createThis(this);
    $this.k37_1 = nodeRenderer;
    $this.l37_1 = selectedPass;
    return $this;
  }
  static n37(nodeRenderer) {
    return this.m37(nodeRenderer, -1);
  }
  v38(g2, view, progress) {
    if (progress == null || !progress.o17()) {
      var model = view.h2l();
      if (!(model == null)) {
        var root = model.currentRoot;
        if (!(root == null)) {
          if (this.k37_1.a2m(view)) {
            var passes = this.k37_1.b2m(model);
            if (this.l37_1 >= 0) {
              if (this.l37_1 < passes) {
                paint(this, g2, view, model, root, this.l37_1, passes, progress);
              }
            } else {
              var inductionVariable = 0;
              if (inductionVariable < passes)
                do {
                  var pass = inductionVariable;
                  inductionVariable = inductionVariable + 1 | 0;
                  paint(this, g2, view, model, root, pass, passes, progress);
                }
                 while (inductionVariable < passes);
            }
          }
        }
      }
    }
  }
}
class NoneAggregation {
  p2y(values) {
    return null;
  }
  o2z() {
    return false;
  }
  toString() {
    return 'None';
  }
}
class NoneLabeling extends AbstractLabeling {
  v2l(g2, bounds, node, view, pass, passes) {
  }
  toString() {
    return 'None';
  }
}
class NoneNesting extends AbstractNesting {
  x2l(model, shape, node, amount) {
    return shape;
  }
  toString() {
    return 'None';
  }
}
class NumericTransformScale {
  constructor(transform) {
    this.h3r_1 = transform;
  }
  q2k(value, min, max) {
    return this.h3r_1.q12_1(value);
  }
  hashCode() {
    return this.h3r_1.hashCode();
  }
  equals(obj) {
    var tmp;
    if (obj instanceof NumericTransformScale) {
      tmp = obj.h3r_1.equals(this.h3r_1);
    } else {
      tmp = false;
    }
    return tmp;
  }
  toString() {
    // Inline function 'kotlin.text.uppercase' call
    // Inline function 'kotlin.js.asDynamic' call
    return substring(this.h3r_1.p12_1, 0, 1).toUpperCase() + replace(substring_0(this.h3r_1.p12_1, 1), '_', ' ');
  }
}
class SortOrder extends Enum {}
class Companion_88 {
  constructor() {
    Companion_instance_88 = this;
    this.s3d_1 = new SizeOrdering();
    this.t3d_1 = new OriginalOrdering();
    this.u3d_1 = new ColorOrdering();
    this.v3d_1 = new HeightOrdering();
    this.w3d_1 = new OrderingFactory([this.t3d_1, this.s3d_1, this.u3d_1, this.v3d_1]);
  }
  c38() {
    return this.w3d_1;
  }
}
class OrderingFactory {
  constructor(entries) {
    Companion_getInstance_88();
    this.x3d_1 = ArrayList.q1();
    addAll(this.x3d_1, entries);
  }
  e38() {
    return Companion_getInstance_88().s3d_1;
  }
}
class Companion_89 {
  i3r(data) {
    var left = 0;
    var right = data.length - 1 | 0;
    while (left < right) {
      var temp = data[left];
      data[left] = data[right];
      data[right] = temp;
      left = left + 1 | 0;
      right = right - 1 | 0;
    }
  }
}
class OriginalOrdering {
  b2z(model, nodes, sortOrder) {
    var tmp;
    switch (sortOrder.g3_1) {
      case 0:
        // Inline function 'kotlin.collections.copyOf' call

        // Inline function 'kotlin.js.asDynamic' call

        var copy = nodes.slice();
        Companion_instance_89.i3r(copy);
        tmp = copy;
        break;
      case 1:
        tmp = nodes;
        break;
      default:
        throw IllegalArgumentException.hb();
    }
    return tmp;
  }
  toString() {
    return 'Original';
  }
}
class OriginalScale {
  q2k(value, min, max) {
    return value;
  }
  toString() {
    return 'Original';
  }
}
class OverlayLabeling extends AbstractLabeling {
  v2l(g2, bounds, node, view, pass, passes) {
    if (pass === (passes - 1 | 0)) {
      var model = ensureNotNull(view.h2l());
      var columnSettings = model.settings.getColumnSettings(model.getGroupByColumn(node));
      var headerFont = columnSettings.getHeaderFont();
      var fontSize = getFontSize(ensureNotNull(headerFont)) * (1.0 + (view.s2l() - 1.0) * 0.15);
      var label = ensureNotNull(view.t37()).q3h(model, node, Dimension.fm(bounds.c1w_1, bounds.d1w_1));
      var foreground = columnSettings.getHeaderForeground();
      var background = columnSettings.getHeaderEffectColor();
      var derivedFont;
      var tmp;
      if (!(fontSize === getFontSize(headerFont))) {
        tmp = headerFont.q29(fontSize);
      } else {
        tmp = headerFont;
      }
      derivedFont = tmp;
      label.setFont(derivedFont);
      label.setForeground(ensureNotNull(foreground));
      if (!(background == null)) {
        label.setBackground(brighter(background));
      }
      var position;
      var shape = model.getShape(node);
      if (!(shape == null) ? isInterface(shape, Arc2D) : false) {
        position = Companion_instance_67.b2l(shape);
      } else {
        position = null;
      }
      var rect;
      if (!(position == null)) {
        var size = g2.o2l(label, bounds.c1w_1, bounds.d1w_1).q2l();
        var w = size.cm_1;
        if (!(shape == null) ? isInterface(shape, Arc2D) : false) {
          var arc = shape;
          var startPoint = arc.a1l();
          var endPoint = arc.b1l();
          var s = Double_2.c1l(view.z37(startPoint.g1h()), view.a38(startPoint.h1h()));
          var e = Double_2.c1l(view.z37(endPoint.g1h()), view.a38(endPoint.h1h()));
          var tmp0 = numberToInt(s.t1v(e));
          // Inline function 'kotlin.math.min' call
          var b = w;
          w = Math.min(tmp0, b);
        }
        var h = size.dm_1;
        var x = view.z37(position.g1h()) - (w / 2 | 0) | 0;
        var y = view.a38(position.h1h()) - (h / 2 | 0) | 0;
        rect = Rectangle.from(x, y, w, h).e1w(bounds);
      } else {
        var rectangle = ensureNotNull(model.getNestedShape(node));
        rect = view.b38(rectangle.i1h());
      }
      g2.u2l(label, rect.a1w_1, rect.b1w_1, rect.c1w_1, rect.d1w_1);
    }
  }
  i2l(parent, node, view, model) {
    if (!model.isRoot(parent)) {
      var parentColumnSettings = model.settings.getColumnSettings(model.getGroupByColumn(parent));
      var headerVerticalAlignment = parentColumnSettings.getHeaderVerticalAlignment();
      if (headerVerticalAlignment === 1 && ensureNotNull(model.getNestedShape(parent)).i1h().h1h() === model.getBounds(node).h1h()) {
        var headerFont = ensureNotNull(parentColumnSettings.getHeaderFont());
        var headerZoomedSize = getFontSize(headerFont) * (1.0 + (view.s2l() - 1.0) * 0.15);
        if (!(getFontSize(headerFont) === headerZoomedSize)) {
          headerFont = headerFont.q29(headerZoomedSize);
        }
        return getFontSize(headerFont);
      }
    }
    return 0.0;
  }
  toString() {
    return 'Overlay';
  }
}
class OverridingTreeMapColumnSettings$1 extends OverrideProperties {
  constructor(this$0) {
    super(this$0.j3r_1.properties, this$0.l3r_1);
  }
  r3r(name, overrideDefaults, defaultProperty) {
    var property;
    if (TreeMapColumnPropertyType_colormap_getInstance().equals(name)) {
      var tmp = new MutableColorMapOverrideProperty(overrideDefaults, isInterface(defaultProperty, MutableProperty) ? defaultProperty : THROW_CCE());
      property = tmp instanceof OverrideProperty ? tmp : THROW_CCE();
    } else {
      var tmp_0;
      var tmp_1 = defaultProperty.z2();
      if (!(tmp_1 == null) ? isInterface(tmp_1, Algorithm) : false) {
        tmp_0 = true;
      } else {
        tmp_0 = TreeMapColumnPropertyType_algorithm_getInstance().equals(name);
      }
      if (tmp_0) {
        var tmp_2 = new MutableAlgorithmOverrideProperty(overrideDefaults, isInterface(defaultProperty, MutableProperty) ? defaultProperty : THROW_CCE());
        property = tmp_2 instanceof OverrideProperty ? tmp_2 : THROW_CCE();
      } else {
        property = protoOf(OverrideProperties).vz.call(this, name, overrideDefaults, defaultProperty);
      }
    }
    return property;
  }
  vz(name, overrideDefaults, defaultProperty) {
    return this.r3r(name instanceof TreeMapColumnPropertyType ? name : THROW_CCE(), overrideDefaults, defaultProperty);
  }
}
class OverridingTreeMapColumnSettings extends AbstractTreeMapColumnSettings {
  constructor(defaultSettings) {
    super();
    this.j3r_1 = defaultSettings;
    this.l3r_1 = new SimpleProperty(true);
    var tmp = this;
    tmp.k3r_1 = new OverridingTreeMapColumnSettings$1(this);
  }
  p1z() {
    return this.k3r_1;
  }
  isDefaults() {
    return false;
  }
  isOverrideDefaults() {
    return this.l3r_1.z2();
  }
  getOverrideDefaultsProperty() {
    return this.l3r_1;
  }
  setOverrideDefaults(overrideDefaults) {
    this.l3r_1.ap(overrideDefaults);
  }
  getAlgorithmProperty() {
    var tmp = this.k3r_1.fz(TreeMapColumnPropertyType_algorithm_getInstance());
    return isInterface(tmp, MutableProperty) ? tmp : THROW_CCE();
  }
  getAlgorithm() {
    return ensureNotNull(this.getAlgorithmProperty().z2());
  }
  setAlgorithm(algorithm) {
    this.setProperty(TreeMapColumnPropertyType_algorithm_getInstance(), algorithm);
  }
  getAggregationProperty() {
    var tmp = this.k3r_1.fz(TreeMapColumnPropertyType_aggregation_getInstance());
    return isInterface(tmp, MutableProperty) ? tmp : THROW_CCE();
  }
  getAggregation() {
    return this.getAggregationProperty().z2();
  }
  setAggregation(aggregation) {
    this.setProperty(TreeMapColumnPropertyType_aggregation_getInstance(), aggregation);
  }
  getScaleProperty() {
    var tmp = this.k3r_1.fz(TreeMapColumnPropertyType_scale_getInstance());
    return isInterface(tmp, MutableProperty) ? tmp : THROW_CCE();
  }
  getScale() {
    return this.getScaleProperty().z2();
  }
  setScale(scale) {
    this.setProperty(TreeMapColumnPropertyType_scale_getInstance(), scale);
  }
  getNestingProperty() {
    var tmp = this.k3r_1.fz(TreeMapColumnPropertyType_nesting_getInstance());
    return isInterface(tmp, MutableProperty) ? tmp : THROW_CCE();
  }
  getNesting() {
    return this.getNestingProperty().z2();
  }
  setNesting(nesting) {
    this.setProperty(TreeMapColumnPropertyType_nesting_getInstance(), nesting);
  }
  getOrderingProperty() {
    var tmp = this.k3r_1.fz(TreeMapColumnPropertyType_ordering_getInstance());
    return isInterface(tmp, MutableProperty) ? tmp : THROW_CCE();
  }
  getOrdering() {
    return ensureNotNull(this.getOrderingProperty().z2());
  }
  setOrdering(ordering) {
    this.setProperty(TreeMapColumnPropertyType_ordering_getInstance(), ordering);
  }
  getOrderingDirectionProperty() {
    var tmp = this.k3r_1.fz(TreeMapColumnPropertyType_orderingDirection_getInstance());
    return isInterface(tmp, MutableProperty) ? tmp : THROW_CCE();
  }
  getOrderingDirection() {
    return this.getOrderingDirectionProperty().z2();
  }
  setOrderingDirection(ordering) {
    this.setProperty(TreeMapColumnPropertyType_orderingDirection_getInstance(), ordering);
  }
  getOrderingVerticalVanishingPointProperty() {
    var tmp = this.k3r_1.fz(TreeMapColumnPropertyType_orderingVerticalVanishingPoint_getInstance());
    return isInterface(tmp, MutableProperty) ? tmp : THROW_CCE();
  }
  getOrderingVerticalVanishingPoint() {
    return this.getOrderingVerticalVanishingPointProperty().z2();
  }
  setOrderingVerticalVanishingPoint(verticalVanishingPoint) {
    this.setProperty(TreeMapColumnPropertyType_orderingVerticalVanishingPoint_getInstance(), verticalVanishingPoint);
  }
  getOrderingHorizontalVanishingPointProperty() {
    var tmp = this.k3r_1.fz(TreeMapColumnPropertyType_orderingHorizontalVanishingPoint_getInstance());
    return isInterface(tmp, MutableProperty) ? tmp : THROW_CCE();
  }
  getOrderingHorizontalVanishingPoint() {
    return this.getOrderingHorizontalVanishingPointProperty().z2();
  }
  setOrderingHorizontalVanishingPoint(horizontalVanishingPoint) {
    this.setProperty(TreeMapColumnPropertyType_orderingHorizontalVanishingPoint_getInstance(), horizontalVanishingPoint);
  }
  getLabelingProperty() {
    var tmp = this.k3r_1.fz(TreeMapColumnPropertyType_labeling_getInstance());
    return isInterface(tmp, MutableProperty) ? tmp : THROW_CCE();
  }
  getLabeling() {
    return this.getLabelingProperty().z2();
  }
  setLabeling(labeling) {
    this.setProperty(TreeMapColumnPropertyType_labeling_getInstance(), labeling);
  }
  getLabelingFontProperty() {
    var tmp = this.k3r_1.fz(TreeMapColumnPropertyType_labelingFont_getInstance());
    return isInterface(tmp, MutableProperty) ? tmp : THROW_CCE();
  }
  getLabelingFont() {
    return ensureNotNull(this.getLabelingFontProperty().z2());
  }
  setLabelingFont(font) {
    this.setProperty(TreeMapColumnPropertyType_labelingFont_getInstance(), font);
  }
  getLabelingForegroundProperty() {
    var tmp = this.k3r_1.fz(TreeMapColumnPropertyType_labelingForeground_getInstance());
    return isInterface(tmp, MutableProperty) ? tmp : THROW_CCE();
  }
  getLabelingForeground() {
    return ensureNotNull(this.getLabelingForegroundProperty().z2());
  }
  setLabelingForeground(color) {
    this.setProperty(TreeMapColumnPropertyType_labelingForeground_getInstance(), color);
  }
  getLabelingEffectColorProperty() {
    var tmp = this.k3r_1.fz(TreeMapColumnPropertyType_labelingEffectColor_getInstance());
    return isInterface(tmp, MutableProperty) ? tmp : THROW_CCE();
  }
  getLabelingEffectColor() {
    return this.getLabelingEffectColorProperty().z2();
  }
  setLabelingEffectColor(color) {
    this.setProperty(TreeMapColumnPropertyType_labelingEffectColor_getInstance(), color);
  }
  getLabelingEffectProperty() {
    var tmp = this.k3r_1.fz(TreeMapColumnPropertyType_labelingEffect_getInstance());
    return isInterface(tmp, MutableProperty) ? tmp : THROW_CCE();
  }
  getLabelingEffect() {
    return this.getLabelingEffectProperty().z2();
  }
  setLabelingEffect(effect) {
    this.setProperty(TreeMapColumnPropertyType_labelingEffect_getInstance(), effect);
  }
  getLabelingHorizontalAlignmentProperty() {
    var tmp = this.k3r_1.fz(TreeMapColumnPropertyType_labelingHorizontalAlignment_getInstance());
    return isInterface(tmp, MutableProperty) ? tmp : THROW_CCE();
  }
  getLabelingHorizontalAlignment() {
    return ensureNotNull(this.getLabelingHorizontalAlignmentProperty().z2());
  }
  setLabelingHorizontalAlignment(alignment) {
    this.setProperty(TreeMapColumnPropertyType_labelingHorizontalAlignment_getInstance(), alignment);
  }
  getLabelingVerticalAlignmentProperty() {
    var tmp = this.k3r_1.fz(TreeMapColumnPropertyType_labelingVerticalAlignment_getInstance());
    return isInterface(tmp, MutableProperty) ? tmp : THROW_CCE();
  }
  getLabelingVerticalAlignment() {
    return this.getLabelingVerticalAlignmentProperty().z2();
  }
  setLabelingVerticalAlignment(alignment) {
    this.setProperty(TreeMapColumnPropertyType_labelingVerticalAlignment_getInstance(), alignment);
  }
  getLabelingRenderingProperty() {
    var tmp = this.k3r_1.fz(TreeMapColumnPropertyType_labelingRendering_getInstance());
    return isInterface(tmp, MutableProperty) ? tmp : THROW_CCE();
  }
  getLabelingRendering() {
    return ensureNotNull(this.getLabelingRenderingProperty().z2());
  }
  setLabelingRendering(rendering) {
    this.setProperty(TreeMapColumnPropertyType_labelingRendering_getInstance(), rendering);
  }
  getLabelingMinimumCharactersToDisplayProperty() {
    var tmp = this.k3r_1.fz(TreeMapColumnPropertyType_labelingMinimumCharactersToDisplay_getInstance());
    return isInterface(tmp, MutableProperty) ? tmp : THROW_CCE();
  }
  getLabelingMinimumCharactersToDisplay() {
    return ensureNotNull(this.getLabelingMinimumCharactersToDisplayProperty().z2());
  }
  setLabelingMinimumCharactersToDisplay(minimumCharactersToDisplay) {
    this.setProperty(TreeMapColumnPropertyType_labelingMinimumCharactersToDisplay_getInstance(), minimumCharactersToDisplay);
  }
  getLabelingEffectOpacityProperty() {
    var tmp = this.k3r_1.fz(TreeMapColumnPropertyType_labelingEffectOpacity_getInstance());
    return isInterface(tmp, MutableProperty) ? tmp : THROW_CCE();
  }
  getLabelingEffectOpacity() {
    return this.getLabelingEffectOpacityProperty().z2();
  }
  setLabelingEffectOpacity(opacity) {
    this.setProperty(TreeMapColumnPropertyType_labelingEffectOpacity_getInstance(), opacity);
  }
  getLabelingShrinkTextToFitShapeProperty() {
    var tmp = this.k3r_1.fz(TreeMapColumnPropertyType_labelingShrinkTextToFitShape_getInstance());
    return isInterface(tmp, MutableProperty) ? tmp : THROW_CCE();
  }
  getLabelingShrinkTextToFitShape() {
    return ensureNotNull(this.getLabelingShrinkTextToFitShapeProperty().z2());
  }
  setLabelingShrinkTextToFitShape(labelingShrinkTextToFitShape) {
    this.setProperty(TreeMapColumnPropertyType_labelingShrinkTextToFitShape_getInstance(), labelingShrinkTextToFitShape);
  }
  getLabelingResizeTextToFitShapeProperty() {
    var tmp = this.k3r_1.fz(TreeMapColumnPropertyType_labelingResizeTextToFitShape_getInstance());
    return isInterface(tmp, MutableProperty) ? tmp : THROW_CCE();
  }
  getLabelingResizeTextToFitShape() {
    return ensureNotNull(this.getLabelingResizeTextToFitShapeProperty().z2());
  }
  setLabelingResizeTextToFitShape(labelingResizeTextToFitShape) {
    this.setProperty(TreeMapColumnPropertyType_labelingResizeTextToFitShape_getInstance(), labelingResizeTextToFitShape);
  }
  getLabelingFloatProperty() {
    var tmp = this.k3r_1.fz(TreeMapColumnPropertyType_labelingFloat_getInstance());
    return isInterface(tmp, MutableProperty) ? tmp : THROW_CCE();
  }
  getLabelingFloat() {
    return ensureNotNull(this.getLabelingFloatProperty().z2());
  }
  setLabelingFloat(labelingFloat) {
    this.setProperty(TreeMapColumnPropertyType_labelingFloat_getInstance(), labelingFloat);
  }
  getLabelingContrastEnhancementProperty() {
    var tmp = this.k3r_1.fz(TreeMapColumnPropertyType_labelingContrastEnhancement_getInstance());
    return isInterface(tmp, MutableProperty) ? tmp : THROW_CCE();
  }
  getLabelingContrastEnhancement() {
    return ensureNotNull(this.getLabelingContrastEnhancementProperty().z2());
  }
  setLabelingContrastEnhancement(contrastEnhancement) {
    this.setProperty(TreeMapColumnPropertyType_labelingContrastEnhancement_getInstance(), contrastEnhancement);
  }
  getNestingAmountProperty() {
    var tmp = this.k3r_1.fz(TreeMapColumnPropertyType_nestingAmount_getInstance());
    return isInterface(tmp, MutableProperty) ? tmp : THROW_CCE();
  }
  getNestingAmount() {
    return ensureNotNull(this.getNestingAmountProperty().z2());
  }
  setNestingAmount(amount) {
    this.setProperty(TreeMapColumnPropertyType_nestingAmount_getInstance(), amount);
  }
  getNestingBackgroundProperty() {
    var tmp = this.k3r_1.fz(TreeMapColumnPropertyType_nestingBackground_getInstance());
    return isInterface(tmp, MutableProperty) ? tmp : THROW_CCE();
  }
  getNestingBackground() {
    return ensureNotNull(this.getNestingBackgroundProperty().z2());
  }
  setNestingBackground(color) {
    this.setProperty(TreeMapColumnPropertyType_nestingBackground_getInstance(), color);
  }
  getHeaderFontProperty() {
    var tmp = this.k3r_1.fz(TreeMapColumnPropertyType_headerFont_getInstance());
    return isInterface(tmp, MutableProperty) ? tmp : THROW_CCE();
  }
  getHeaderFont() {
    return ensureNotNull(this.getHeaderFontProperty().z2());
  }
  setHeaderFont(font) {
    this.setProperty(TreeMapColumnPropertyType_headerFont_getInstance(), font);
  }
  getHeaderForegroundProperty() {
    var tmp = this.k3r_1.fz(TreeMapColumnPropertyType_headerForeground_getInstance());
    return isInterface(tmp, MutableProperty) ? tmp : THROW_CCE();
  }
  getHeaderForeground() {
    return ensureNotNull(this.getHeaderForegroundProperty().z2());
  }
  setHeaderForeground(color) {
    this.setProperty(TreeMapColumnPropertyType_headerForeground_getInstance(), color);
  }
  getHeaderBackgroundProperty() {
    var tmp = this.k3r_1.fz(TreeMapColumnPropertyType_headerBackground_getInstance());
    return isInterface(tmp, MutableProperty) ? tmp : THROW_CCE();
  }
  getHeaderBackground() {
    return ensureNotNull(this.getHeaderBackgroundProperty().z2());
  }
  setHeaderBackground(color) {
    this.setProperty(TreeMapColumnPropertyType_headerBackground_getInstance(), color);
  }
  getHeaderEffectColorProperty() {
    var tmp = this.k3r_1.fz(TreeMapColumnPropertyType_headerEffectColor_getInstance());
    return isInterface(tmp, MutableProperty) ? tmp : THROW_CCE();
  }
  getHeaderEffectColor() {
    return ensureNotNull(this.getHeaderEffectColorProperty().z2());
  }
  setHeaderEffectColor(color) {
    this.setProperty(TreeMapColumnPropertyType_headerEffectColor_getInstance(), color);
  }
  getHeaderEffectProperty() {
    var tmp = this.k3r_1.fz(TreeMapColumnPropertyType_headerEffect_getInstance());
    return isInterface(tmp, MutableProperty) ? tmp : THROW_CCE();
  }
  getHeaderEffect() {
    return this.getHeaderEffectProperty().z2();
  }
  setHeaderEffect(effect) {
    this.setProperty(TreeMapColumnPropertyType_headerEffect_getInstance(), effect);
  }
  getHeaderHorizontalAlignmentProperty() {
    var tmp = this.k3r_1.fz(TreeMapColumnPropertyType_headerHorizontalAlignment_getInstance());
    return isInterface(tmp, MutableProperty) ? tmp : THROW_CCE();
  }
  getHeaderHorizontalAlignment() {
    return this.getHeaderHorizontalAlignmentProperty().z2();
  }
  setHeaderHorizontalAlignment(alignment) {
    this.setProperty(TreeMapColumnPropertyType_headerHorizontalAlignment_getInstance(), alignment);
  }
  getHeaderVerticalAlignmentProperty() {
    var tmp = this.k3r_1.fz(TreeMapColumnPropertyType_headerVerticalAlignment_getInstance());
    return isInterface(tmp, MutableProperty) ? tmp : THROW_CCE();
  }
  getHeaderVerticalAlignment() {
    return this.getHeaderVerticalAlignmentProperty().z2();
  }
  setHeaderVerticalAlignment(alignment) {
    this.setProperty(TreeMapColumnPropertyType_headerVerticalAlignment_getInstance(), alignment);
  }
  getHeaderRenderingProperty() {
    var tmp = this.k3r_1.fz(TreeMapColumnPropertyType_headerRendering_getInstance());
    return isInterface(tmp, MutableProperty) ? tmp : THROW_CCE();
  }
  getHeaderRendering() {
    return this.getHeaderRenderingProperty().z2();
  }
  setHeaderRendering(rendering) {
    this.setProperty(TreeMapColumnPropertyType_headerRendering_getInstance(), rendering);
  }
  getHeaderMinimumCharactersToDisplayProperty() {
    var tmp = this.k3r_1.fz(TreeMapColumnPropertyType_headerMinimumCharactersToDisplay_getInstance());
    return isInterface(tmp, MutableProperty) ? tmp : THROW_CCE();
  }
  getHeaderMinimumCharactersToDisplay() {
    return this.getHeaderMinimumCharactersToDisplayProperty().z2();
  }
  setHeaderMinimumCharactersToDisplay(minimumCharactersToDisplay) {
    this.setProperty(TreeMapColumnPropertyType_headerMinimumCharactersToDisplay_getInstance(), minimumCharactersToDisplay);
  }
  getHeaderEffectOpacityProperty() {
    var tmp = this.k3r_1.fz(TreeMapColumnPropertyType_headerEffectOpacity_getInstance());
    return isInterface(tmp, MutableProperty) ? tmp : THROW_CCE();
  }
  getHeaderEffectOpacity() {
    return this.getHeaderEffectOpacityProperty().z2();
  }
  setHeaderEffectOpacity(opacity) {
    this.setProperty(TreeMapColumnPropertyType_headerEffectOpacity_getInstance(), opacity);
  }
  getHeaderInsetsProperty() {
    var tmp = this.k3r_1.fz(TreeMapColumnPropertyType_headerInsets_getInstance());
    return isInterface(tmp, MutableProperty) ? tmp : THROW_CCE();
  }
  getHeaderInsets() {
    return this.getHeaderInsetsProperty().z2();
  }
  setHeaderInsets(insets) {
    this.setProperty(TreeMapColumnPropertyType_headerInsets_getInstance(), insets);
  }
  getTooltipFontProperty() {
    var tmp = this.k3r_1.fz(TreeMapColumnPropertyType_tooltipFont_getInstance());
    return isInterface(tmp, MutableProperty) ? tmp : THROW_CCE();
  }
  getTooltipFont() {
    return ensureNotNull(this.getTooltipFontProperty().z2());
  }
  setTooltipFont(font) {
    this.setProperty(TreeMapColumnPropertyType_tooltipFont_getInstance(), font);
  }
  getTooltipForegroundProperty() {
    var tmp = this.k3r_1.fz(TreeMapColumnPropertyType_tooltipForeground_getInstance());
    return isInterface(tmp, MutableProperty) ? tmp : THROW_CCE();
  }
  getTooltipForeground() {
    return this.getTooltipForegroundProperty().z2();
  }
  setTooltipForeground(color) {
    this.setProperty(TreeMapColumnPropertyType_tooltipForeground_getInstance(), color);
  }
  getTooltipRenderingProperty() {
    var tmp = this.k3r_1.fz(TreeMapColumnPropertyType_tooltipRendering_getInstance());
    return isInterface(tmp, MutableProperty) ? tmp : THROW_CCE();
  }
  getTooltipRendering() {
    return this.getTooltipRenderingProperty().z2();
  }
  setTooltipRendering(rendering) {
    this.setProperty(TreeMapColumnPropertyType_tooltipRendering_getInstance(), rendering);
  }
  getBorderColorProperty() {
    var tmp = this.k3r_1.fz(TreeMapColumnPropertyType_borderColor_getInstance());
    return isInterface(tmp, MutableProperty) ? tmp : THROW_CCE();
  }
  getBorderColor() {
    return this.getBorderColorProperty().z2();
  }
  setBorderColor(color) {
    this.setProperty(TreeMapColumnPropertyType_borderColor_getInstance(), color);
  }
  getBorderThicknessInterval() {
    return null;
  }
  getBorderThicknessProperty() {
    var tmp = this.k3r_1.fz(TreeMapColumnPropertyType_borderThickness_getInstance());
    return isInterface(tmp, MutableProperty) ? tmp : THROW_CCE();
  }
  getBorderThickness() {
    return this.getBorderThicknessProperty().z2();
  }
  setBorderThickness(value) {
    this.setProperty(TreeMapColumnPropertyType_borderThickness_getInstance(), value);
  }
  getShowLabelProperty() {
    var tmp = this.k3r_1.fz(TreeMapColumnPropertyType_showLabel_getInstance());
    return isInterface(tmp, MutableProperty) ? tmp : THROW_CCE();
  }
  getShowLabel() {
    return this.getShowLabelProperty().z2();
  }
  getFormatProperty() {
    var tmp = this.k3r_1.fz(TreeMapColumnPropertyType_format_getInstance());
    return isInterface(tmp, MutableProperty) ? tmp : THROW_CCE();
  }
  setShowLabel(show) {
    this.setPropertyOverride(TreeMapColumnPropertyType_showLabel_getInstance(), show);
  }
  getFormat() {
    return this.getFormatProperty().z2();
  }
  getColorMapProperty() {
    var tmp = this.k3r_1.fz(TreeMapColumnPropertyType_colormap_getInstance());
    return isInterface(tmp, MutableProperty) ? tmp : THROW_CCE();
  }
  setFormat(format) {
    this.setPropertyOverride(TreeMapColumnPropertyType_format_getInstance(), format);
  }
  getColorMap() {
    return this.getColorMapProperty().z2();
  }
  setColorMap(colorMap) {
    this.setPropertyOverride(TreeMapColumnPropertyType_colormap_getInstance(), colorMap);
  }
  getProperty(key) {
    return this.k3r_1.fz(key).z2();
  }
  getPropertyOverride(key) {
    return this.k3r_1.fz(key).j10();
  }
  setProperty(key, value) {
    this.k3r_1.fz(key).ap(value);
  }
  setPropertyOverride(key, value) {
    this.k3r_1.fz(key).ap(value);
  }
  reset() {
    var keys = ArrayList.q1();
    if (!this.l3r_1.z2()) {
      this.j3r_1.reset();
    } else {
      this.k3r_1.nx();
    }
  }
  get properties() {
    return this.p1z();
  }
}
class ParentPreorderIterator {
  constructor(hierarchy, rootNode) {
    this.s3r_1 = hierarchy;
    var v = ArrayList.n1(1);
    v.c1(rootNode);
    this.t3r_1 = ArrayList.q1();
    var tmp0 = this.t3r_1;
    // Inline function 'com.macrofocus.common.collection.push' call
    var item = v.h1();
    tmp0.c1(item);
  }
  i1() {
    return !empty(this.t3r_1) && ensureNotNull(peek(this.t3r_1)).i1();
  }
  j1() {
    var enumer = ensureNotNull(peek(this.t3r_1));
    var node = enumer.j1();
    var children = this.s3r_1.getChildrenOfTypeParent(node).h1();
    if (!enumer.i1()) {
      pop(this.t3r_1);
    }
    if (children.i1()) {
      // Inline function 'com.macrofocus.common.collection.push' call
      this.t3r_1.c1(children);
    }
    return node;
  }
  t4() {
    throw UnsupportedOperationException.q3();
  }
}
class ParentTreeMapNode extends AbstractTreeMapNode {
  constructor(name, model, groupByColumn, childrenGroupByColumn) {
    super(model);
    this.c3s_1 = name;
    this.d3s_1 = 1.0;
    this.e3s_1 = null;
    this.f3s_1 = null;
    this.g3s_1 = null;
    this.j3s_1 = null;
    this.k3s_1 = null;
    this.l3s_1 = null;
    this.h3s_1 = groupByColumn;
    this.i3s_1 = childrenGroupByColumn;
  }
  a2z(_set____db54di) {
    this.d3s_1 = _set____db54di;
  }
  e2z() {
    return this.d3s_1;
  }
  m2z() {
    return this.h3s_1;
  }
  n2z() {
    return !(this.i3s_1 == null) ? this.i3s_1 : this.e2u_1.settings.sizeColumn;
  }
  d2z(value) {
    this.j3s_1 = value;
    super.d2z(value);
  }
  i2z() {
    return !(this.j3s_1 == null) ? this.j3s_1 : this.h2z();
  }
  g30() {
    throw IllegalStateException.gb();
  }
  x2z() {
    return !(this.e3s_1 == null) ? ensureNotNull(this.e3s_1).k1() : 0;
  }
  o2y() {
    return this.e3s_1 == null;
  }
  z2y() {
    return false;
  }
  a30() {
    return ensureNotNull(!(this.e3s_1 == null) ? this.e3s_1 : emptyList());
  }
  b30() {
    return ensureNotNull(!(this.f3s_1 == null) ? this.f3s_1 : emptyList());
  }
  c30(child) {
    if (this.e3s_1 == null) {
      this.e3s_1 = LinkedHashSet.m1();
    }
    var tmp;
    if (!(child instanceof LeafTreeMapNode)) {
      tmp = true;
    } else {
      tmp = !ensureNotNull(this.e3s_1).q2(child);
    }
    if (tmp) {
      ensureNotNull(this.e3s_1).c1(child);
    }
    child.d30(this.n30());
    if (child instanceof ParentTreeMapNode) {
      if (this.f3s_1 == null) {
        this.f3s_1 = ArrayList.q1();
      }
      ensureNotNull(this.f3s_1).c1(child);
      if (!(this.g3s_1 == null)) {
        var index = ensureNotNull(this.g3s_1).zj();
        if (!(index == null)) {
          // Inline function 'kotlin.collections.set' call
          var key = child.f30();
          index.o6(key, child);
        }
      }
    }
  }
  m3s() {
    var tmp;
    if (this.g3s_1 == null) {
      var index = this.n2i();
      this.g3s_1 = new SoftReference(index);
      tmp = index;
    } else {
      var index_0 = ensureNotNull(this.g3s_1).zj();
      if (index_0 == null) {
        index_0 = this.n2i();
        this.g3s_1 = new SoftReference(index_0);
      }
      tmp = index_0;
    }
    return tmp;
  }
  n2i() {
    var index = HashMap.i7();
    var _iterator__ex2g4s = ensureNotNull(this.e3s_1).h1();
    while (_iterator__ex2g4s.i1()) {
      var child = _iterator__ex2g4s.j1();
      if (child instanceof ParentTreeMapNode) {
        // Inline function 'kotlin.collections.set' call
        var key = child.f30();
        index.o6(key, child);
      }
    }
    return index;
  }
  e30(name) {
    // Inline function 'kotlin.collections.get' call
    var this_0 = this.m3s();
    return (isInterface(this_0, KtMap) ? this_0 : THROW_CCE()).c3(name);
  }
  f30() {
    return this.c3s_1;
  }
}
class PieAlgorithm extends AbstractAlgorithm {
  iterator(model, root) {
    return model.depthFirstIterator(root);
  }
  breadthFirstLayout(shape, parent, children, sumSizes, horizontalVanishingPoint, verticalVanishingPoint, accessor, worker) {
    var bounds = shape.i1h();
    var tmp0 = bounds.gm();
    // Inline function 'kotlin.math.min' call
    var b = bounds.hm();
    var size = Math.min(tmp0, b);
    var shiftX = (bounds.gm() - size) / 2;
    var shiftY = (bounds.hm() - size) / 2;
    bounds = Double_3.z1h(bounds.g1h() + shiftX, bounds.h1h() + shiftY, size, size);
    var startAngle = 90.0;
    var inductionVariable = 0;
    var last = children.length;
    while (inductionVariable < last) {
      var child = children[inductionVariable];
      inductionVariable = inductionVariable + 1 | 0;
      var arcAngle = accessor.getSize(child) * 360 / sumSizes;
      accessor.setShape(child, Double.t1k(bounds, startAngle, -arcAngle, 2));
      startAngle = startAngle - arcAngle;
    }
    return false;
  }
  isCompatible(shape) {
    var tmp;
    if (!(shape == null) ? isInterface(shape, Rectangle2D) : false) {
      tmp = true;
    } else {
      tmp = !(shape == null) ? isInterface(shape, Ellipse2D) : false;
    }
    return tmp;
  }
  v2k() {
    return false;
  }
  toString() {
    return 'Pie';
  }
}
class SplitSize {
  n3s(children, accessor) {
    var index = 0;
    var ratio;
    var bestRatio = 0.0;
    var first = true;
    var leftSize = 0.0;
    var rightSize = this.o3s(children, 0, children.length - 1 | 0, accessor);
    var inductionVariable = 0;
    var last = children.length - 1 | 0;
    if (inductionVariable <= last)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        var tmp0 = leftSize / rightSize;
        // Inline function 'kotlin.math.max' call
        var b = rightSize / leftSize;
        ratio = Math.max(tmp0, b);
        if (first || ratio < bestRatio) {
          first = false;
          bestRatio = ratio;
          index = i;
        }
        leftSize = leftSize + accessor.getSize(ensureNotNull(children[i]));
        rightSize = rightSize - accessor.getSize(ensureNotNull(children[i]));
      }
       while (inductionVariable <= last);
    return index;
  }
  o3s(children, start, end, accessor) {
    var sum = 0.0;
    var inductionVariable = start;
    if (inductionVariable <= end)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        sum = sum + accessor.getSize(ensureNotNull(children[i]));
      }
       while (!(i === end));
    return sum;
  }
  toString() {
    return 'Split Size';
  }
}
class PivotByAlgorithm extends AbstractAlgorithm {
  constructor(type) {
    type = type === VOID ? new SplitSize() : type;
    super();
    this.p3s_1 = type;
  }
  breadthFirstLayout(shape, parent, children, sumSizes, horizontalVanishingPoint, verticalVanishingPoint, accessor, worker) {
    var bounds = shape.i1h();
    var area = bounds.gm() * bounds.hm();
    // Inline function 'kotlin.math.sqrt' call
    var x = area / sumSizes;
    var scaleFactor = Math.sqrt(x);
    var scaledBounds = Double_3.z1h(0.0, 0.0, bounds.gm() / scaleFactor, bounds.hm() / scaleFactor);
    var results = this.q3s(children, scaledBounds, accessor);
    var inductionVariable = 0;
    var last = children.length - 1 | 0;
    if (inductionVariable <= last)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        var r = ensureNotNull(results[i]);
        accessor.setShape(children[i], Double_3.z1h(r.g1h() * scaleFactor + bounds.g1h(), r.h1h() * scaleFactor + bounds.h1h(), r.gm() * scaleFactor, r.hm() * scaleFactor));
      }
       while (inductionVariable <= last);
    return false;
  }
  q3s(children, bounds, accessor) {
    var aspectRatio = ensureNotNull(bounds).gm() / bounds.hm();
    var tmp;
    if (children.length === 1) {
      // Inline function 'kotlin.arrayOfNulls' call
      var rectangles = Array(1);
      rectangles[0] = bounds;
      tmp = rectangles;
    } else if (children.length === 2) {
      // Inline function 'kotlin.arrayOfNulls' call
      var rectangles_0 = Array(2);
      var ratio = accessor.getSize(ensureNotNull(children[0])) / (accessor.getSize(ensureNotNull(children[0])) + accessor.getSize(ensureNotNull(children[1])));
      if (aspectRatio >= 1) {
        var w = ratio * bounds.gm();
        rectangles_0[0] = Double_3.z1h(bounds.g1h(), bounds.h1h(), w, bounds.hm());
        rectangles_0[1] = Double_3.z1h(bounds.g1h() + w, bounds.h1h(), bounds.gm() - w, bounds.hm());
      } else {
        var h = ratio * bounds.hm();
        rectangles_0[0] = Double_3.z1h(bounds.g1h(), bounds.h1h(), bounds.gm(), h);
        rectangles_0[1] = Double_3.z1h(bounds.g1h(), bounds.h1h() + h, bounds.gm(), bounds.hm() - h);
      }
      tmp = rectangles_0;
    } else {
      var rp;
      var pivotIndex = this.p3s_1.n3s(children, accessor);
      var pivotSize = children[pivotIndex];
      var d = (children.length - pivotIndex | 0) - 1 | 0;
      var l1 = copyFromSize(children, 0, pivotIndex);
      var l1Size = this.w2k(l1, 0, l1.length - 1 | 0, accessor);
      var box2;
      var r1;
      if (aspectRatio >= 1) {
        var h_0 = bounds.hm();
        var w_0 = l1Size / h_0;
        r1 = Double_3.z1h(bounds.g1h(), bounds.h1h(), w_0, h_0);
        box2 = Double_3.z1h(r1.g1h() + r1.gm(), bounds.h1h(), bounds.gm() - r1.gm(), bounds.hm());
      } else {
        var w_1 = bounds.gm();
        var h_1 = l1Size / w_1;
        r1 = Double_3.z1h(bounds.g1h(), bounds.h1h(), w_1, h_1);
        box2 = Double_3.z1h(r1.g1h(), r1.h1h() + r1.hm(), bounds.gm(), bounds.hm() - r1.hm());
      }
      var l2 = null;
      var l3 = null;
      var r2 = null;
      var r3 = null;
      if (d >= 3) {
        var first = true;
        var bestAspectRatio = 0.0;
        var bestWidth = 0.0;
        var bestHeight = 0.0;
        var bestIndex = 0;
        var inductionVariable = pivotIndex + 1 | 0;
        var last = children.length;
        if (inductionVariable < last)
          do {
            var i = inductionVariable;
            inductionVariable = inductionVariable + 1 | 0;
            var l2Size = this.w2k(children, pivotIndex + 1 | 0, i, accessor);
            var l3Size = this.w2k(children, i + 1 | 0, children.length - 1 | 0, accessor);
            var ratio_0 = (accessor.getSize(ensureNotNull(pivotSize)) + l2Size) / (accessor.getSize(pivotSize) + l2Size + l3Size);
            var w_2;
            var h_2;
            if (aspectRatio >= 1) {
              w_2 = ratio_0 * box2.gm();
              ratio_0 = accessor.getSize(pivotSize) / (accessor.getSize(pivotSize) + l2Size);
              h_2 = ratio_0 * box2.hm();
            } else {
              h_2 = ratio_0 * box2.hm();
              ratio_0 = accessor.getSize(pivotSize) / (accessor.getSize(pivotSize) + l2Size);
              w_2 = ratio_0 * box2.gm();
            }
            var pivotAspectRatio = w_2 / h_2;
            if (first) {
              first = false;
              bestAspectRatio = pivotAspectRatio;
              bestWidth = w_2;
              bestHeight = h_2;
              bestIndex = i;
            } else {
              // Inline function 'kotlin.math.abs' call
              var x = pivotAspectRatio - 1;
              var tmp_0 = Math.abs(x);
              // Inline function 'kotlin.math.abs' call
              var x_0 = bestAspectRatio - 1;
              if (tmp_0 < Math.abs(x_0)) {
                bestAspectRatio = pivotAspectRatio;
                bestWidth = w_2;
                bestHeight = h_2;
                bestIndex = i;
              }
            }
          }
           while (inductionVariable < last);
        l2 = copyFromSize(children, pivotIndex + 1 | 0, bestIndex - pivotIndex | 0);
        if (((children.length - 1 | 0) - bestIndex | 0) > 0) {
          l3 = copyFromSize(children, bestIndex + 1 | 0, (children.length - 1 | 0) - bestIndex | 0);
        } else {
          l3 = null;
        }
        if (aspectRatio >= 1) {
          rp = Double_3.z1h(box2.g1h(), box2.h1h(), bestWidth, bestHeight);
          r2 = Double_3.z1h(box2.g1h(), box2.h1h() + bestHeight, bestWidth, box2.hm() - bestHeight);
          if (!(l3 == null)) {
            r3 = Double_3.z1h(box2.g1h() + bestWidth, box2.h1h(), box2.gm() - bestWidth, box2.hm());
          }
        } else {
          rp = Double_3.z1h(box2.g1h(), box2.h1h(), bestWidth, bestHeight);
          r2 = Double_3.z1h(box2.g1h() + bestWidth, box2.h1h(), box2.gm() - bestWidth, bestHeight);
          if (!(l3 == null)) {
            r3 = Double_3.z1h(box2.g1h(), box2.h1h() + bestHeight, box2.gm(), box2.hm() - bestHeight);
          }
        }
      } else if (d > 0) {
        l2 = copyFromSize(children, pivotIndex + 1 | 0, d);
        var ratio_1 = accessor.getSize(ensureNotNull(pivotSize)) / (accessor.getSize(pivotSize) + this.w2k(l2, 0, l2.length - 1 | 0, accessor));
        if (aspectRatio >= 1) {
          var h_3 = ratio_1 * box2.hm();
          rp = Double_3.z1h(box2.g1h(), box2.h1h(), box2.gm(), h_3);
          r2 = Double_3.z1h(box2.g1h(), box2.h1h() + h_3, box2.gm(), box2.hm() - h_3);
        } else {
          var w_3 = ratio_1 * box2.gm();
          rp = Double_3.z1h(box2.g1h(), box2.h1h(), w_3, box2.hm());
          r2 = Double_3.z1h(box2.g1h() + w_3, box2.h1h(), box2.gm() - w_3, box2.hm());
        }
      } else {
        rp = box2;
      }
      var l1rectangles;
      var l2rectangles;
      var l3rectangles;
      if (l1.length > 1) {
        l1rectangles = this.q3s(l1, r1, accessor);
      } else if (l1.length === 1) {
        // Inline function 'kotlin.arrayOfNulls' call
        l1rectangles = Array(1);
        l1rectangles[0] = r1;
      } else {
        l1rectangles = null;
      }
      if (!(l2 == null)) {
        if (l2.length > 1) {
          l2rectangles = this.q3s(l2, r2, accessor);
        } else if (l2.length === 1) {
          // Inline function 'kotlin.arrayOfNulls' call
          l2rectangles = Array(1);
          l2rectangles[0] = r2;
        } else {
          l2rectangles = null;
        }
      } else {
        l2rectangles = null;
      }
      if (!(l3 == null)) {
        if (l3.length > 1) {
          l3rectangles = this.q3s(l3, r3, accessor);
        } else if (l3.length === 1) {
          // Inline function 'kotlin.arrayOfNulls' call
          l3rectangles = Array(1);
          l3rectangles[0] = r3;
        } else {
          l3rectangles = null;
        }
      } else {
        l3rectangles = null;
      }
      var count = l1.length + 1 | 0;
      if (!(l2 == null)) {
        count = count + l2.length | 0;
      }
      if (!(l3 == null)) {
        count = count + l3.length | 0;
      }
      // Inline function 'kotlin.arrayOfNulls' call
      var size = count;
      var rectangles_1 = Array(size);
      var i_0 = 0;
      if (!(l1rectangles == null)) {
        arraycopy(l1rectangles, 0, rectangles_1, 0, l1rectangles.length);
        i_0 = l1rectangles.length;
      }
      rectangles_1[i_0] = rp;
      i_0 = i_0 + 1 | 0;
      if (!(l2rectangles == null)) {
        arraycopy(l2rectangles, 0, rectangles_1, i_0, l2rectangles.length);
        i_0 = i_0 + l2rectangles.length | 0;
      }
      if (!(l3rectangles == null)) {
        arraycopy(l3rectangles, 0, rectangles_1, i_0, l3rectangles.length);
      }
      var tmp_1;
      if (rectangles_1.length >= 3 && rectangles_1.length <= 5) {
        tmp_1 = this.r3s(children, bounds, rectangles_1, accessor);
      } else {
        tmp_1 = rectangles_1;
      }
      tmp = tmp_1;
    }
    return tmp;
  }
  r3s(children, bounds, rectangles, accessor) {
    var bestRectangles = rectangles;
    switch (children.length) {
      case 3:
        var newRectangles = tryLayout3(this, children, bounds, accessor);
        if (this.s3s(newRectangles) < this.s3s(bestRectangles)) {
          bestRectangles = newRectangles;
        }

        break;
      case 4:
        var newRectangles_0 = tryLayout4Quad(this, children, bounds, accessor);
        if (this.s3s(newRectangles_0) < this.s3s(bestRectangles)) {
          bestRectangles = newRectangles_0;
        }

        newRectangles_0 = tryLayout4Snake(this, children, bounds, accessor);
        if (this.s3s(newRectangles_0) < this.s3s(bestRectangles)) {
          bestRectangles = newRectangles_0;
        }

        break;
      case 5:
        var newRectangles_1 = tryLayout5(this, children, bounds, accessor);
        if (this.s3s(newRectangles_1) < this.s3s(bestRectangles)) {
          bestRectangles = newRectangles_1;
        }

        break;
    }
    return bestRectangles;
  }
  s3s(rectangles) {
    var sum = 0.0;
    var count = 0;
    var inductionVariable = 0;
    var last = rectangles.length - 1 | 0;
    if (inductionVariable <= last)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        var width = ensureNotNull(rectangles[i]).gm();
        var height = ensureNotNull(rectangles[i]).hm();
        if (!(width === 0.0) && !(height === 0.0)) {
          var tmp0 = width / height;
          // Inline function 'kotlin.math.max' call
          var b = height / width;
          var aspectRatio = Math.max(tmp0, b);
          sum = sum + aspectRatio;
          count = count + 1 | 0;
        }
      }
       while (inductionVariable <= last);
    return sum / count;
  }
  isCompatible(shape) {
    return !(shape == null) ? isInterface(shape, Rectangle2D) : false;
  }
  b39() {
    return 'Pivot by ' + toString_1(this.p3s_1);
  }
  toString() {
    return this.b39();
  }
}
class PostorderIterator {
  constructor(hierarchy, rootNode) {
    this.u3s_1 = null;
    this.w3s_1 = hierarchy;
    this.t3s_1 = rootNode;
    var iterable = hierarchy.getChildren(ensureNotNull(this.t3s_1));
    this.u3s_1 = iterable.h1();
    this.v3s_1 = emptyList().h1();
  }
  i1() {
    return !(this.t3s_1 == null);
  }
  j1() {
    var retval;
    if (this.v3s_1.i1()) {
      retval = this.v3s_1.j1();
    } else if (ensureNotNull(this.u3s_1).i1()) {
      this.v3s_1 = new PostorderIterator(this.w3s_1, ensureNotNull(this.u3s_1).j1());
      retval = this.v3s_1.j1();
    } else {
      retval = ensureNotNull(this.t3s_1);
      this.t3s_1 = null;
    }
    return retval;
  }
  t4() {
    throw UnsupportedOperationException.q3();
  }
}
class PreorderIterator {
  constructor(hierarchy, rootNode) {
    this.x3s_1 = hierarchy;
    var v = ArrayList.n1(1);
    v.c1(rootNode);
    this.y3s_1 = ArrayList.q1();
    var tmp0 = this.y3s_1;
    // Inline function 'com.macrofocus.common.collection.push' call
    var item = v.h1();
    tmp0.c1(item);
  }
  i1() {
    return !empty(this.y3s_1) && ensureNotNull(peek(this.y3s_1)).i1();
  }
  j1() {
    var enumer = ensureNotNull(peek(this.y3s_1));
    var node = enumer.j1();
    var children = this.x3s_1.getChildren(node).h1();
    if (!enumer.i1()) {
      pop(this.y3s_1);
    }
    if (children.i1()) {
      // Inline function 'com.macrofocus.common.collection.push' call
      this.y3s_1.c1(children);
    }
    return node;
  }
  t4() {
    throw UnsupportedOperationException.q3();
  }
}
class Progressive extends Enum {}
class Type extends Enum {}
class Companion_90 {
  constructor() {
    Companion_instance_90 = this;
    this.z3s_1 = Type_EqualBorderWidth_getInstance();
  }
}
class ProportionalNesting extends AbstractNesting {
  constructor() {
    Companion_getInstance_90();
    super();
  }
  x2l(model, shape, node, amount) {
    var tmp;
    var tmp_0;
    if (!model.isRoot(node)) {
      tmp_0 = isInterface(shape, Rectangle2D);
    } else {
      tmp_0 = false;
    }
    if (tmp_0) {
      var rectangle = shape;
      var proportion = amount / 100;
      var tmp_1;
      switch (Companion_getInstance_90().z3s_1.g3_1) {
        case 0:
          var x = rectangle.g1h() + rectangle.gm() * proportion;
          var y = rectangle.h1h() + rectangle.hm() * proportion;
          var width = rectangle.gm() * (1.0 - 2 * proportion);
          var height = rectangle.hm() * (1.0 - 2 * proportion);
          tmp_1 = Double_3.z1h(x, y, width, height);
          break;
        case 1:
          var a = rectangle.gm() * rectangle.hm();
          var b = (1.0 - proportion) * a;
          var tmp_2 = rectangle.gm();
          // Inline function 'kotlin.math.sqrt' call

          var x_0 = b / a;
          var width_0 = tmp_2 * Math.sqrt(x_0);
          var tmp_3 = rectangle.hm();
          // Inline function 'kotlin.math.sqrt' call

          var x_1 = b / a;
          var height_0 = tmp_3 * Math.sqrt(x_1);
          var x_2 = rectangle.g1h() + (rectangle.gm() - width_0) / 2.0;
          var y_0 = rectangle.h1h() + (rectangle.hm() - height_0) / 2.0;
          var scaled = Double_3.z1h(x_2, y_0, width_0, height_0);
          tmp_1 = scaled;
          break;
        case 2:
          var a_0 = rectangle.gm() * rectangle.hm();
          var b_0 = (1.0 - proportion) * a_0;
          var w = rectangle.gm();
          var h = rectangle.hm();
          // Inline function 'kotlin.math.sqrt' call

          var x_3 = 4 * b_0 + h * h - 2 * h * w + w * w;
          var x_4 = (-Math.sqrt(x_3) + h + w) / 4;
          var scaled_0 = Double_3.z1h(rectangle.g1h() + x_4, rectangle.h1h() + x_4, rectangle.gm() - 2 * x_4, rectangle.hm() - 2 * x_4);
          tmp_1 = scaled_0;
          break;
        default:
          tmp_1 = shape;
          break;
      }
      tmp = tmp_1;
    } else {
      tmp = shape;
    }
    return tmp;
  }
  toString() {
    return 'Proportional';
  }
}
class Companion_91 {}
class RectangularTransform {
  static s2m() {
    var $this = createThis(this);
    init_com_treemap_RectangularTransform($this);
    return $this;
  }
  t2m(src) {
    return Double_3.z1h(src.g1h() * this.q2m_1 + this.o2m_1, src.h1h() * this.r2m_1 + this.p2m_1, src.gm() * this.q2m_1, src.hm() * this.r2m_1);
  }
  o1j(tx, ty) {
    this.o2m_1 = tx * this.q2m_1 + this.o2m_1;
    this.p2m_1 = ty * this.r2m_1 + this.p2m_1;
  }
}
class Companion_92 {
  constructor() {
    Companion_instance_92 = this;
    this.CUSHION = new CushionRendering();
    this.FLAT = new FlatRendering();
    this.FLAT_NO_BORDER = new FlatNoBorderRendering();
    this.instance = new RenderingFactory([this.FLAT, this.CUSHION, this.FLAT_NO_BORDER]);
  }
  a3t() {
    return this.CUSHION;
  }
  b3t() {
    return this.FLAT;
  }
  c3t() {
    return this.FLAT_NO_BORDER;
  }
  o21() {
    return this.instance;
  }
}
class RenderingFactory {
  constructor(entries) {
    Companion_getInstance_92();
    this.d3t_1 = ArrayList.q1();
    addAll(this.d3t_1, entries);
  }
  add(entry) {
    this.d3t_1.c1(entry);
  }
  getDefault() {
    return Companion_getInstance_92().CUSHION;
  }
  getRenderings() {
    return this.d3t_1;
  }
  get(name) {
    var _iterator__ex2g4s = this.d3t_1.h1();
    while (_iterator__ex2g4s.i1()) {
      var rendering = _iterator__ex2g4s.j1();
      if (equals(toString_1(rendering), name)) {
        return rendering;
      }
    }
    return this.getDefault();
  }
}
class Companion_93 {
  constructor() {
    Companion_instance_93 = this;
    this.a3d_1 = new OriginalScale();
    this.b3d_1 = new AbsScale();
    this.c3d_1 = new Exp10Scale();
    this.d3d_1 = new ExpScale();
    this.e3d_1 = new InverseScale();
    this.f3d_1 = new LogScale();
    this.g3d_1 = new Log1pScale();
    this.h3d_1 = new MinScale();
    this.i3d_1 = new MaxScale();
    this.j3d_1 = new XPlus1Scale();
    this.k3d_1 = new ScaleFactory([this.a3d_1, this.b3d_1, this.j3d_1, this.c3d_1, this.d3d_1, this.e3d_1, this.f3d_1, this.g3d_1, new NumericTransformScale(NumericTransform_PSEUDO_LOG_getInstance()), this.h3d_1, this.i3d_1, new NumericTransformScale(NumericTransform_SQRT_getInstance())]);
  }
}
class ScaleFactory {
  constructor(entries) {
    Companion_getInstance_93();
    this.l3d_1 = ArrayList.q1();
    addAll(this.l3d_1, entries);
  }
  m3d() {
    return Companion_getInstance_93().b3d_1;
  }
}
class SelectionNodeRenderer extends AbstractNodeRenderer {
  a2m(view) {
    var model = ensureNotNull(view.h2l());
    return model.highlighting.f13() || model.selection.f13();
  }
  z2l(view, root, pass) {
    var model = ensureNotNull(view.h2l());
    return Iterables_instance.sj([model.highlighting, model.selection]);
  }
  b2m(model) {
    return 1;
  }
  c2m(view, node) {
    var model = ensureNotNull(view.h2l());
    return model.hasNoChildren(node) && (model.highlighting.f13() && model.highlighting.g13(node) || (model.selection.f13() && model.selection.g13(node)));
  }
  d2m(g, view, node, pass, passes, bounds, shape) {
    var model = ensureNotNull(view.h2l());
    if (model.hasNoChildren(node)) {
      if (bounds.gm() > 0 && bounds.hm() > 0) {
        if (model.highlighting.f13() && model.highlighting.g13(node)) {
          g.u2m();
          g.y2m(model.settings.getProbingColor());
          g.x2m(2.0);
          g.z2m(view.k32(node));
          g.w2m();
        }
        if (model.selection.f13() && model.selection.g13(node)) {
          g.u2m();
          g.y2m(model.settings.getSelectionColor());
          g.x2m(1.0);
          g.z2m(view.k32(node));
          g.w2m();
        }
      }
    }
    return true;
  }
}
class DescendingTreeMapNodeComparator_1 {
  constructor(model) {
    this.e3t_1 = model;
  }
  i2m(a, b) {
    return compareTo(this.e3t_1.getSize(b), this.e3t_1.getSize(a));
  }
  compare(a, b) {
    var tmp = (a == null ? true : !(a == null)) ? a : THROW_CCE();
    return this.i2m(tmp, (b == null ? true : !(b == null)) ? b : THROW_CCE());
  }
}
class AscendingTreeMapNodeComparator_1 {
  constructor(model) {
    this.f3t_1 = model;
  }
  i2m(a, b) {
    return compareTo(this.f3t_1.getSize(a), this.f3t_1.getSize(b));
  }
  compare(a, b) {
    var tmp = (a == null ? true : !(a == null)) ? a : THROW_CCE();
    return this.i2m(tmp, (b == null ? true : !(b == null)) ? b : THROW_CCE());
  }
}
class SizeOrdering {
  b2z(model, nodes, sortOrder) {
    // Inline function 'kotlin.collections.copyOf' call
    // Inline function 'kotlin.js.asDynamic' call
    var copy = nodes.slice();
    var comparator;
    var tmp;
    switch (sortOrder.g3_1) {
      case 0:
        tmp = new AscendingTreeMapNodeComparator_1(model);
        break;
      case 1:
        tmp = new DescendingTreeMapNodeComparator_1(model);
        break;
      default:
        noWhenBranchMatchedException();
        break;
    }
    comparator = tmp;
    sortWith(copy, comparator);
    return copy;
  }
  toString() {
    return 'By size';
  }
}
class SumAggregation_0 {
  p2y(values) {
    var sum = null;
    var inductionVariable = 0;
    var last = values.length;
    while (inductionVariable < last) {
      var value = values[inductionVariable];
      inductionVariable = inductionVariable + 1 | 0;
      if (isFinite_0(value)) {
        if (!(sum == null)) {
          sum = sum + value;
        } else {
          sum = value;
        }
      }
    }
    return sum;
  }
  o2z() {
    return false;
  }
  toString() {
    return 'Sum';
  }
}
class SizeWeightedAggregation extends SumAggregation_0 {
  o2z() {
    return true;
  }
  toString() {
    return 'Size-Weighted';
  }
}
class AlternateOrientationStrategy {
  g3t(bounds, parent, accessor) {
    return ((accessor.getLevel(parent) + 1 | 0) % 2 | 0) === 0;
  }
}
class SliceAndDiceAlgorithm extends AbstractAlgorithm {
  constructor(orientationStrategy) {
    orientationStrategy = orientationStrategy === VOID ? new AlternateOrientationStrategy() : orientationStrategy;
    super();
    this.h3t_1 = orientationStrategy;
  }
  breadthFirstLayout(shape, parent, children, sumSizes, horizontalVanishingPoint, verticalVanishingPoint, accessor, worker) {
    var bounds = shape.i1h();
    var sumShares = 0.0;
    var inductionVariable = 0;
    var last = children.length;
    while (inductionVariable < last) {
      var child = children[inductionVariable];
      inductionVariable = inductionVariable + 1 | 0;
      var r;
      var share = accessor.getSize(child) / sumSizes;
      var tmp;
      if (this.h3t_1.g3t(bounds, parent, accessor)) {
        tmp = Double_3.z1h(bounds.g1h(), bounds.h1h() + bounds.hm() * sumShares, bounds.gm(), bounds.hm() * share);
      } else {
        tmp = Double_3.z1h(bounds.g1h() + bounds.gm() * sumShares, bounds.h1h(), bounds.gm() * share, bounds.hm());
      }
      r = tmp;
      accessor.setShape(child, r);
      sumShares = sumShares + share;
    }
    return false;
  }
  isCompatible(shape) {
    return !(shape == null) ? isInterface(shape, Rectangle2D) : false;
  }
  b39() {
    return 'Slice-and-dice';
  }
  toString() {
    return this.b39();
  }
}
class Companion_94 {}
class SplitAlgorithm extends AbstractAlgorithm {
  breadthFirstLayout(shape, parent, children, sumSizes, horizontalVanishingPoint, verticalVanishingPoint, accessor, worker) {
    var bounds = shape.i1h();
    var items = ArrayList.q1();
    var inductionVariable = 0;
    var last = children.length;
    while (inductionVariable < last) {
      var child = children[inductionVariable];
      inductionVariable = inductionVariable + 1 | 0;
      items.c1(child);
    }
    splitLayout(this, items, bounds, accessor);
    return false;
  }
  isCompatible(shape) {
    return !(shape == null) ? isInterface(shape, Rectangle2D) : false;
  }
  toString() {
    return getName_0(Companion_instance_94);
  }
}
class Companion_95 {
  constructor() {
    this.k3t_1 = 'desiredAspectRatio';
  }
}
class SquarifiedAlgorithm extends AbstractAlgorithm {
  constructor() {
    super();
    this.i3t_1 = new SimpleProperties();
    this.j3t_1 = this.i3t_1.bz('desiredAspectRatio', 1.0);
  }
  p1z() {
    return this.i3t_1;
  }
  breadthFirstLayout(shape, parent, children, sumSize, horizontalVanishingPoint, verticalVanishingPoint, accessor, worker) {
    var bounds = shape.i1h();
    var hvp = horizontalVanishingPoint === 0 ? 4 : horizontalVanishingPoint;
    var vvp = verticalVanishingPoint === 0 ? 3 : verticalVanishingPoint;
    var sizeFactor = bounds.gm() * bounds.hm() / sumSize;
    var current = 0;
    while (current < children.length) {
      var last = current;
      var totalArea = 0.0;
      var previousWorstAspectRatio = Infinity;
      var desiredSize = 0.0;
      var horizontalSplit = bounds.gm() > bounds.hm() * this.j3t_1.z2();
      var shortestSide = horizontalSplit ? bounds.hm() : bounds.gm();
      $l$loop: while (last < children.length) {
        var lastArea = accessor.getSize(children[last]) * sizeFactor;
        totalArea = totalArea + lastArea;
        desiredSize = totalArea / shortestSide;
        var currentArea = accessor.getSize(children[current]) * sizeFactor;
        var lastWorstAspectRatio = computeAspectRatio(this, lastArea, desiredSize);
        var currentWorstAspectRatio = computeAspectRatio(this, currentArea, desiredSize);
        var worstAspectRatio;
        var tmp;
        if (!isInfinite(currentWorstAspectRatio)) {
          // Inline function 'kotlin.math.max' call
          tmp = Math.max(currentWorstAspectRatio, lastWorstAspectRatio);
        } else {
          tmp = lastWorstAspectRatio;
        }
        worstAspectRatio = tmp;
        if (worstAspectRatio > previousWorstAspectRatio) {
          totalArea = totalArea - lastArea;
          desiredSize = totalArea / shortestSide;
          last = last - 1 | 0;
          break $l$loop;
        }
        if (!isNaN_0(worstAspectRatio)) {
          previousWorstAspectRatio = worstAspectRatio;
        }
        last = last + 1 | 0;
      }
      if (last === children.length) {
        last = last - 1 | 0;
      }
      // Inline function 'kotlin.run' call
      var x = bounds.g1h();
      var y = bounds.h1h();
      var inductionVariable = current;
      var last_0 = last;
      if (inductionVariable <= last_0)
        do {
          var i = inductionVariable;
          inductionVariable = inductionVariable + 1 | 0;
          var size = accessor.getSize(children[i]) * sizeFactor / desiredSize;
          if (accessor.getSize(children[i]) === 1.0) {
            println(toString_0(children[i]) + ': ' + size + ', ' + accessor.getSize(children[i]) + ', ' + sizeFactor + ', ' + desiredSize);
          }
          if (horizontalSplit) {
            switch (hvp) {
              case 2:
                accessor.setShape(children[i], Double_3.z1h(x + bounds.gm() - desiredSize, y, desiredSize, size));
                break;
              case 4:
                accessor.setShape(children[i], Double_3.z1h(x, y, desiredSize, size));
                break;
              default:
                throw IllegalArgumentException.hb();
            }
            y = y + size;
          } else {
            switch (vvp) {
              case 1:
                switch (hvp) {
                  case 2:
                    accessor.setShape(children[i], Double_3.z1h(x + bounds.gm() - size, y + bounds.hm() - desiredSize, size, desiredSize));
                    x = x - size;
                    break;
                  case 4:
                    accessor.setShape(children[i], Double_3.z1h(x, y + bounds.hm() - desiredSize, size, desiredSize));
                    x = x + size;
                    break;
                  default:
                    throw IllegalArgumentException.hb();
                }

                break;
              case 3:
                switch (hvp) {
                  case 2:
                    accessor.setShape(children[i], Double_3.z1h(x + bounds.gm() - size, y, size, desiredSize));
                    x = x - size;
                    break;
                  case 4:
                    accessor.setShape(children[i], Double_3.z1h(x, y, size, desiredSize));
                    x = x + size;
                    break;
                  default:
                    throw IllegalArgumentException.hb();
                }

                break;
              default:
                throw IllegalArgumentException.hb();
            }
          }
        }
         while (!(i === last_0));
      current = last + 1 | 0;
      if (horizontalSplit) {
        var tmp_0;
        switch (hvp) {
          case 2:
            var tmp_1 = bounds.g1h();
            var tmp_2 = bounds.h1h();
            // Inline function 'kotlin.math.max' call

            var b = bounds.gm() - desiredSize;
            var tmp$ret$3 = Math.max(0.0, b);
            tmp_0 = Double_3.z1h(tmp_1, tmp_2, tmp$ret$3, bounds.hm());
            break;
          case 4:
            var tmp_3 = bounds.g1h() + desiredSize;
            var tmp_4 = bounds.h1h();
            // Inline function 'kotlin.math.max' call

            var b_0 = bounds.gm() - desiredSize;
            var tmp$ret$4 = Math.max(0.0, b_0);
            tmp_0 = Double_3.z1h(tmp_3, tmp_4, tmp$ret$4, bounds.hm());
            break;
          default:
            throw IllegalArgumentException.hb();
        }
        bounds = tmp_0;
        if (horizontalVanishingPoint === 0) {
          hvp = hvp === 2 ? 4 : 2;
        }
      } else {
        var tmp_5;
        switch (vvp) {
          case 1:
            var tmp_6 = bounds.g1h();
            var tmp_7 = bounds.h1h();
            var tmp_8 = bounds.gm();
            // Inline function 'kotlin.math.max' call

            var b_1 = bounds.hm() - desiredSize;
            var tmp$ret$5 = Math.max(0.0, b_1);
            tmp_5 = Double_3.z1h(tmp_6, tmp_7, tmp_8, tmp$ret$5);
            break;
          case 3:
            var tmp_9 = bounds.g1h();
            var tmp_10 = bounds.h1h() + desiredSize;
            var tmp_11 = bounds.gm();
            // Inline function 'kotlin.math.max' call

            var b_2 = bounds.hm() - desiredSize;
            var tmp$ret$6 = Math.max(0.0, b_2);
            tmp_5 = Double_3.z1h(tmp_9, tmp_10, tmp_11, tmp$ret$6);
            break;
          default:
            throw IllegalArgumentException.hb();
        }
        bounds = tmp_5;
        if (verticalVanishingPoint === 0) {
          vvp = vvp === 3 ? 1 : 3;
        }
      }
    }
    return false;
  }
  isCompatible(shape) {
    return !(shape == null) ? isInterface(shape, Rectangle2D) : false;
  }
  toString() {
    return getName_1(Companion_instance_95);
  }
}
class Companion_96 {}
class SquarifiedPlusAlgorithm extends AbstractAlgorithm {
  constructor() {
    super();
    this.l3t_1 = new SimpleProperties();
    this.m3t_1 = this.l3t_1.bz('desiredAspectRatio', 1.0);
  }
  p1z() {
    return this.l3t_1;
  }
  breadthFirstLayout(shape, parent, children, sumSize, horizontalVanishingPoint, verticalVanishingPoint, accessor, worker) {
    var bounds = shape.i1h();
    var hvp = horizontalVanishingPoint === 0 ? 4 : horizontalVanishingPoint;
    var vvp = verticalVanishingPoint === 0 ? 3 : verticalVanishingPoint;
    var sizeFactor = bounds.gm() * bounds.hm() / sumSize;
    var current = 0;
    while (current < children.length) {
      var last = current;
      var totalArea = 0.0;
      var previousWorstAspectRatio = Infinity;
      var desiredSize = 0.0;
      var horizontalSplit = bounds.gm() > bounds.hm() * this.m3t_1.z2();
      var shortestSide = horizontalSplit ? bounds.hm() : bounds.gm();
      var longestSide = horizontalSplit ? bounds.gm() : bounds.hm();
      $l$loop: while (last < children.length) {
        var lastArea = accessor.getSize(children[last]) * sizeFactor;
        totalArea = totalArea + lastArea;
        desiredSize = totalArea / shortestSide;
        var currentArea = accessor.getSize(children[current]) * sizeFactor;
        var lastWorstAspectRatio = computeAspectRatio_0(this, lastArea, desiredSize);
        var currentWorstAspectRatio = computeAspectRatio_0(this, currentArea, desiredSize);
        var worstAspectRatio;
        var tmp;
        if (!isInfinite(currentWorstAspectRatio)) {
          // Inline function 'kotlin.math.max' call
          tmp = Math.max(currentWorstAspectRatio, lastWorstAspectRatio);
        } else {
          tmp = lastWorstAspectRatio;
        }
        worstAspectRatio = tmp;
        if (worstAspectRatio > previousWorstAspectRatio) {
          totalArea = totalArea - lastArea;
          desiredSize = totalArea / shortestSide;
          last = last - 1 | 0;
          // Inline function 'kotlin.run' call
          var alternativeDesiredSize = totalArea / longestSide;
          var actualAR = bestAspectRatio(this, children, current, last, desiredSize, sizeFactor, accessor);
          var alternativeAR = bestAspectRatio(this, children, current, last, alternativeDesiredSize, sizeFactor, accessor);
          if (willImprove(this, actualAR, alternativeAR)) {
            desiredSize = alternativeDesiredSize;
            horizontalSplit = !horizontalSplit;
          }
          break $l$loop;
        }
        if (!isNaN_0(worstAspectRatio)) {
          previousWorstAspectRatio = worstAspectRatio;
        }
        last = last + 1 | 0;
      }
      if (last === children.length) {
        last = last - 1 | 0;
      }
      // Inline function 'kotlin.run' call
      var x = bounds.g1h();
      var y = bounds.h1h();
      var inductionVariable = current;
      var last_0 = last;
      if (inductionVariable <= last_0)
        do {
          var i = inductionVariable;
          inductionVariable = inductionVariable + 1 | 0;
          var size = accessor.getSize(children[i]) * sizeFactor / desiredSize;
          if (horizontalSplit) {
            var tmp0_subject = hvp;
            if (tmp0_subject === 2) {
              accessor.setShape(children[i], Double_3.z1h(x + bounds.gm() - desiredSize, y, desiredSize, size));
            } else if (tmp0_subject === 4) {
              accessor.setShape(children[i], Double_3.z1h(x, y, desiredSize, size));
            }
            y = y + size;
          } else {
            switch (vvp) {
              case 1:
                switch (hvp) {
                  case 2:
                    accessor.setShape(children[i], Double_3.z1h(x + bounds.gm() - size, y + bounds.hm() - desiredSize, size, desiredSize));
                    x = x - size;
                    break;
                  case 4:
                    accessor.setShape(children[i], Double_3.z1h(x, y + bounds.hm() - desiredSize, size, desiredSize));
                    x = x + size;
                    break;
                  default:
                    throw IllegalArgumentException.hb();
                }

                break;
              case 3:
                switch (hvp) {
                  case 2:
                    accessor.setShape(children[i], Double_3.z1h(x + bounds.gm() - size, y, size, desiredSize));
                    x = x - size;
                    break;
                  case 4:
                    accessor.setShape(children[i], Double_3.z1h(x, y, size, desiredSize));
                    x = x + size;
                    break;
                  default:
                    throw IllegalArgumentException.hb();
                }

                break;
              default:
                throw IllegalArgumentException.hb();
            }
          }
        }
         while (!(i === last_0));
      current = last + 1 | 0;
      if (horizontalSplit) {
        var tmp_0;
        switch (hvp) {
          case 2:
            var tmp_1 = bounds.g1h();
            var tmp_2 = bounds.h1h();
            // Inline function 'kotlin.math.max' call

            var b = bounds.gm() - desiredSize;
            var tmp$ret$5 = Math.max(0.0, b);
            tmp_0 = Double_3.z1h(tmp_1, tmp_2, tmp$ret$5, bounds.hm());
            break;
          case 4:
            var tmp_3 = bounds.g1h() + desiredSize;
            var tmp_4 = bounds.h1h();
            // Inline function 'kotlin.math.max' call

            var b_0 = bounds.gm() - desiredSize;
            var tmp$ret$6 = Math.max(0.0, b_0);
            tmp_0 = Double_3.z1h(tmp_3, tmp_4, tmp$ret$6, bounds.hm());
            break;
          default:
            throw IllegalArgumentException.hb();
        }
        bounds = tmp_0;
        if (horizontalVanishingPoint === 0) {
          hvp = hvp === 2 ? 4 : 2;
        }
      } else {
        var tmp_5;
        switch (vvp) {
          case 1:
            var tmp_6 = bounds.g1h();
            var tmp_7 = bounds.h1h();
            var tmp_8 = bounds.gm();
            // Inline function 'kotlin.math.max' call

            var b_1 = bounds.hm() - desiredSize;
            var tmp$ret$7 = Math.max(0.0, b_1);
            tmp_5 = Double_3.z1h(tmp_6, tmp_7, tmp_8, tmp$ret$7);
            break;
          case 3:
            var tmp_9 = bounds.g1h();
            var tmp_10 = bounds.h1h() + desiredSize;
            var tmp_11 = bounds.gm();
            // Inline function 'kotlin.math.max' call

            var b_2 = bounds.hm() - desiredSize;
            var tmp$ret$8 = Math.max(0.0, b_2);
            tmp_5 = Double_3.z1h(tmp_9, tmp_10, tmp_11, tmp$ret$8);
            break;
          default:
            throw IllegalArgumentException.hb();
        }
        bounds = tmp_5;
        if (verticalVanishingPoint === 0) {
          vvp = vvp === 3 ? 1 : 3;
        }
      }
    }
    return false;
  }
  isCompatible(shape) {
    return !(shape == null) ? isInterface(shape, Rectangle2D) : false;
  }
  toString() {
    return getName_2(Companion_instance_96);
  }
}
class StdDevAggregation {
  p2y(values) {
    var count = 0;
    var sum = 0.0;
    var inductionVariable = 0;
    var last = values.length;
    while (inductionVariable < last) {
      var value = values[inductionVariable];
      inductionVariable = inductionVariable + 1 | 0;
      if (isFinite_0(value)) {
        count = count + 1 | 0;
        sum = sum + value;
      }
    }
    var tmp;
    if (count < 2) {
      tmp = 0.0;
    } else {
      var average = sum / count;
      var stddev = 0.0;
      var inductionVariable_0 = 0;
      var last_0 = values.length;
      while (inductionVariable_0 < last_0) {
        var value_0 = values[inductionVariable_0];
        inductionVariable_0 = inductionVariable_0 + 1 | 0;
        if (isFinite_0(value_0)) {
          var tmp_0 = stddev;
          // Inline function 'kotlin.math.pow' call
          var this_0 = value_0 - average;
          stddev = tmp_0 + Math.pow(this_0, 2.0);
        }
      }
      // Inline function 'kotlin.math.sqrt' call
      var x = stddev / count;
      tmp = Math.sqrt(x);
    }
    return tmp;
  }
  o2z() {
    return false;
  }
  toString() {
    return 'StdDev';
  }
}
class StripAlgorithm extends AbstractAlgorithm {
  constructor(lookAhead) {
    lookAhead = lookAhead === VOID ? true : lookAhead;
    super();
    this.n3t_1 = lookAhead;
  }
  breadthFirstLayout(shape, parent, children, sumSizes, horizontalVanishingPoint, verticalVanishingPoint, accessor, worker) {
    var bounds = shape.i1h();
    var area = bounds.gm() * bounds.hm();
    // Inline function 'kotlin.math.sqrt' call
    var x = area / sumSizes;
    var scaleFactor = Math.sqrt(x);
    var scaledBounds = Double_3.z1h(bounds.g1h() / scaleFactor, bounds.h1h() / scaleFactor, bounds.gm() / scaleFactor, bounds.hm() / scaleFactor);
    var finishedIndex = 0;
    var count;
    var yOffset = 0.0;
    while (finishedIndex < children.length) {
      count = this.o3t(children, scaledBounds, finishedIndex, accessor);
      if (this.n3t_1) {
        if ((finishedIndex + count | 0) < children.length) {
          var countSecondStrip = this.o3t(children, scaledBounds, finishedIndex + count | 0, accessor);
          var aspectRatioFirstPlusSecond = this.p3t(children, finishedIndex, count + countSecondStrip | 0, accessor);
          this.q3t(children, scaledBounds, finishedIndex, count + countSecondStrip | 0, accessor);
          var aspectRatioTogether = this.p3t(children, finishedIndex, count + countSecondStrip | 0, accessor);
          if (aspectRatioTogether < aspectRatioFirstPlusSecond) {
            count = count + countSecondStrip | 0;
          } else {
            this.q3t(children, scaledBounds, finishedIndex, count, accessor);
          }
        }
      }
      var inductionVariable = finishedIndex;
      var last = finishedIndex + count | 0;
      if (inductionVariable < last)
        do {
          var i = inductionVariable;
          inductionVariable = inductionVariable + 1 | 0;
          var child = children[i];
          var rectangle = accessor.getBounds(child);
          accessor.setShape(child, Double_3.z1h(rectangle.g1h(), rectangle.h1h() + yOffset, rectangle.gm(), rectangle.hm()));
        }
         while (inductionVariable < last);
      var height = accessor.getBounds(children[finishedIndex]).hm();
      yOffset = yOffset + height;
      scaledBounds = Double_3.z1h(scaledBounds.g1h(), scaledBounds.h1h() + height, scaledBounds.gm(), scaledBounds.hm() - height);
      finishedIndex = finishedIndex + count | 0;
    }
    var inductionVariable_0 = 0;
    var last_0 = children.length;
    while (inductionVariable_0 < last_0) {
      var child_0 = children[inductionVariable_0];
      inductionVariable_0 = inductionVariable_0 + 1 | 0;
      var childBounds = accessor.getBounds(child_0);
      accessor.setShape(child_0, Double_3.z1h(childBounds.g1h() * scaleFactor + bounds.g1h(), childBounds.h1h() * scaleFactor + bounds.h1h(), childBounds.gm() * scaleFactor, childBounds.hm() * scaleFactor));
    }
    return false;
  }
  o3t(children, box, index, accessor) {
    var count = 0;
    var previousAspectRatio;
    var aspectRatio = 1.7976931348623157E308;
    do {
      previousAspectRatio = aspectRatio;
      count = count + 1 | 0;
      this.q3t(children, box, index, count, accessor);
      aspectRatio = this.p3t(children, index, count, accessor);
    }
     while (aspectRatio < previousAspectRatio && (index + count | 0) < children.length);
    if (aspectRatio >= previousAspectRatio) {
      count = count - 1 | 0;
      this.q3t(children, box, index, count, accessor);
    }
    return count;
  }
  q3t(children, box, index, numItems, accessor) {
    var totalSize = this.w2k(children, index, (index + numItems | 0) - 1 | 0, accessor);
    var height = totalSize / box.gm();
    var x = 0.0;
    var inductionVariable = 0;
    if (inductionVariable < numItems)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        var child = children[i + index | 0];
        var width = accessor.getSize(child) / height;
        accessor.setShape(child, Double_3.z1h(x, 0.0, width, height));
        x = x + width;
      }
       while (inductionVariable < numItems);
  }
  p3t(children, index, count, accessor) {
    var sum = 0.0;
    var inductionVariable = 0;
    if (inductionVariable < count)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        var child = children[i + index | 0];
        var width = accessor.getBounds(child).gm();
        var height = accessor.getBounds(child).hm();
        var tmp0 = width / height;
        // Inline function 'kotlin.math.max' call
        var b = height / width;
        var aspectRatio = Math.max(tmp0, b);
        sum = sum + aspectRatio;
      }
       while (inductionVariable < count);
    return sum / count;
  }
  isCompatible(shape) {
    return !(shape == null) ? isInterface(shape, Rectangle2D) : false;
  }
  b39() {
    return 'Strip';
  }
  toString() {
    return this.b39();
  }
}
class Arc extends Double_1 {
  static d3u(x, y, startAngle, arcAngle, outerRadius, innerRadius, stripRadius) {
    var $this = this.t1u(1, 20);
    $this.w3t_1 = x;
    $this.x3t_1 = y;
    $this.y3t_1 = startAngle;
    $this.z3t_1 = arcAngle;
    $this.a3u_1 = outerRadius;
    $this.b3u_1 = innerRadius;
    $this.c3u_1 = stripRadius;
    var segAngle_a;
    var segAngle_b;
    var theta_a;
    var theta_b;
    var angle;
    var angleMid;
    var segs;
    var ax;
    var ay;
    var bx;
    var _by;
    var cx;
    var cy;
    var dx;
    var dy;
    _by = 0.0;
    bx = _by;
    // Inline function 'kotlin.math.abs' call
    var x_0 = $this.z3t_1;
    if (Math.abs(x_0) > 360) {
      $this.z3t_1 = 360.0;
    }
    // Inline function 'kotlin.math.abs' call
    var x_1 = $this.z3t_1;
    // Inline function 'kotlin.math.ceil' call
    var x_2 = Math.abs(x_1) / 45;
    segs = Math.ceil(x_2);
    segAngle_a = $this.z3t_1 / segs;
    segAngle_b = -$this.z3t_1 / segs;
    theta_a = -(segAngle_a / 180) * 3.141592653589793;
    theta_b = -(segAngle_b / 180) * 3.141592653589793;
    angle = -($this.y3t_1 / 180) * 3.141592653589793;
    if (segs > 0) {
      // Inline function 'kotlin.math.sin' call
      var x_3 = -$this.y3t_1 / 180 * 3.141592653589793;
      var tmp$ret$3 = Math.sin(x_3);
      ax = $this.w3t_1 + tmp$ret$3 * $this.a3u_1;
      // Inline function 'kotlin.math.cos' call
      var x_4 = $this.y3t_1 / 180 * 3.141592653589793;
      var tmp$ret$4 = Math.cos(x_4);
      ay = $this.x3t_1 + tmp$ret$4 * $this.a3u_1;
      $this.m1v(ax, ay);
      var i = 0;
      while (i < segs) {
        angle = angle + theta_a;
        angleMid = angle - theta_a / 2;
        // Inline function 'kotlin.math.sin' call
        var x_5 = angle;
        var tmp$ret$5 = Math.sin(x_5);
        bx = $this.w3t_1 + tmp$ret$5 * $this.a3u_1;
        // Inline function 'kotlin.math.cos' call
        var x_6 = angle;
        var tmp$ret$6 = Math.cos(x_6);
        _by = $this.x3t_1 + tmp$ret$6 * $this.a3u_1;
        // Inline function 'kotlin.math.sin' call
        var x_7 = angleMid;
        var tmp = Math.sin(x_7);
        // Inline function 'kotlin.math.cos' call
        var x_8 = theta_a / 2;
        var tmp$ret$8 = Math.cos(x_8);
        cx = $this.w3t_1 + tmp * ($this.a3u_1 / tmp$ret$8);
        // Inline function 'kotlin.math.cos' call
        var x_9 = angleMid;
        var tmp_0 = Math.cos(x_9);
        // Inline function 'kotlin.math.cos' call
        var x_10 = theta_a / 2;
        var tmp$ret$10 = Math.cos(x_10);
        cy = $this.x3t_1 + tmp_0 * ($this.a3u_1 / tmp$ret$10);
        $this.o1v(cx, cy, bx, _by);
        i = i + 1 | 0;
      }
      $this.y3t_1 = $this.y3t_1 + $this.z3t_1;
      angle = -($this.y3t_1 / 180) * 3.141592653589793;
      // Inline function 'kotlin.math.sin' call
      var x_11 = -$this.y3t_1 / 180 * 3.141592653589793;
      var tmp$ret$11 = Math.sin(x_11);
      dx = $this.w3t_1 + tmp$ret$11 * $this.b3u_1;
      // Inline function 'kotlin.math.cos' call
      var x_12 = $this.y3t_1 / 180 * 3.141592653589793;
      var tmp$ret$12 = Math.cos(x_12);
      dy = $this.x3t_1 + tmp$ret$12 * $this.b3u_1;
      if ($this.z3t_1 < 360) {
        $this.n1v(dx, dy);
      } else {
        $this.m1v(dx, dy);
      }
      if ($this.b3u_1 > 0) {
        var i_0 = 0;
        while (i_0 < segs) {
          angle = angle + theta_b;
          angleMid = angle - theta_b / 2;
          // Inline function 'kotlin.math.sin' call
          var x_13 = angle;
          var tmp$ret$13 = Math.sin(x_13);
          bx = $this.w3t_1 + tmp$ret$13 * $this.b3u_1;
          // Inline function 'kotlin.math.cos' call
          var x_14 = angle;
          var tmp$ret$14 = Math.cos(x_14);
          _by = $this.x3t_1 + tmp$ret$14 * $this.b3u_1;
          // Inline function 'kotlin.math.sin' call
          var x_15 = angleMid;
          var tmp_1 = Math.sin(x_15);
          // Inline function 'kotlin.math.cos' call
          var x_16 = theta_b / 2;
          var tmp$ret$16 = Math.cos(x_16);
          cx = $this.w3t_1 + tmp_1 * ($this.b3u_1 / tmp$ret$16);
          // Inline function 'kotlin.math.cos' call
          var x_17 = angleMid;
          var tmp_2 = Math.cos(x_17);
          // Inline function 'kotlin.math.cos' call
          var x_18 = theta_b / 2;
          var tmp$ret$18 = Math.cos(x_18);
          cy = $this.x3t_1 + tmp_2 * ($this.b3u_1 / tmp$ret$18);
          $this.o1v(cx, cy, bx, _by);
          i_0 = i_0 + 1 | 0;
        }
      }
      if ($this.z3t_1 < 360) {
        $this.n1v(ax, ay);
      }
    }
    return $this;
  }
}
class SunburstAlgorithm extends AbstractAlgorithm {
  constructor() {
    super();
    this.e3u_1 = 0;
  }
  startLayout(bounds, model, root, worker) {
    super.startLayout(bounds, model, root, worker);
    this.e3u_1 = getMaxDepthToLeaf_0(this, model, root) - model.getLevel(root) | 0;
  }
  iterator(model, root) {
    return model.depthFirstIterator(root);
  }
  breadthFirstLayout(shape, parent, children, sumSizes, horizontalVanishingPoint, verticalVanishingPoint, accessor, worker) {
    var centerX;
    var centerY;
    var startAngle;
    var arcAngle;
    var outerRadius;
    var innerRadius;
    var stripeRadius;
    if (shape instanceof Arc) {
      var arc = shape;
      centerX = arc.w3t_1;
      centerY = arc.x3t_1;
      startAngle = arc.y3t_1;
      arcAngle = arc.z3t_1;
      outerRadius = arc.a3u_1;
      innerRadius = arc.b3u_1 + arc.c3u_1;
      stripeRadius = arc.c3u_1;
    } else {
      var bounds = shape.i1h();
      var tmp0 = bounds.gm();
      // Inline function 'kotlin.math.min' call
      var b = bounds.hm();
      var size = Math.min(tmp0, b);
      var shiftX = (bounds.gm() - size) / 2;
      var shiftY = (bounds.hm() - size) / 2;
      bounds = Double_3.z1h(bounds.g1h() + shiftX, bounds.h1h() + shiftY, size, size);
      centerX = bounds.k1h();
      centerY = bounds.m1h();
      startAngle = 180.0;
      arcAngle = 360.0;
      stripeRadius = size / this.e3u_1 / 2;
      outerRadius = size / 2;
      innerRadius = 0.0;
    }
    var currentSize = 0.0;
    var inductionVariable = 0;
    var last = children.length;
    while (inductionVariable < last) {
      var child = children[inductionVariable];
      inductionVariable = inductionVariable + 1 | 0;
      var s = startAngle + currentSize * arcAngle / sumSizes;
      var a = accessor.getSize(child) * arcAngle / sumSizes;
      accessor.setShape(child, Arc.d3u(centerX, centerY, s, a, outerRadius, innerRadius, stripeRadius));
      currentSize = currentSize + accessor.getSize(child);
    }
    return false;
  }
  r2k() {
    return false;
  }
  s2k() {
    return false;
  }
  t2k() {
    return true;
  }
  u2k() {
    return false;
  }
  v2k() {
    return false;
  }
  isCompatible(shape) {
    var tmp;
    var tmp_0;
    if (!(shape == null) ? isInterface(shape, Rectangle2D) : false) {
      tmp_0 = true;
    } else {
      tmp_0 = !(shape == null) ? isInterface(shape, Ellipse2D) : false;
    }
    if (tmp_0) {
      tmp = true;
    } else {
      tmp = shape instanceof Arc;
    }
    return tmp;
  }
  toString() {
    return 'Sunburst';
  }
}
class Companion_97 {
  constructor() {
    this.f3u_1 = 5.0;
  }
}
class TextParentNodeRenderer extends AbstractNodeRenderer {
  a2m(view) {
    return true;
  }
  b2m(model) {
    var heightColumn = model.settings.heightColumn;
    var tmp;
    if (!(heightColumn == null) && (model.isNumericType(heightColumn) || model.isTemporalType(heightColumn))) {
      tmp = 2;
    } else {
      tmp = 1;
    }
    return tmp;
  }
  c2m(view, node) {
    var model = ensureNotNull(view.h2l());
    return !model.isRoot(node) && !model.hasNoChildren(node);
  }
  d2m(g, view, node, pass, passes, bounds, shape) {
    if (bounds.gm() > 0 && bounds.hm() > 0) {
      g.u2m();
      g.v2m(bounds);
      var model = ensureNotNull(view.h2l());
      var algorithm = model.settings.getColumnSettings(model.getGroupByColumn(ensureNotNull(model.getParent(node)))).getAlgorithm();
      if (algorithm.isRenderingParentLabelSupported) {
        ensureNotNull(model.settings.getColumnSettings(model.getGroupByColumn(node)).getLabeling()).v2l(g, bounds, node, view, pass, passes);
      }
      g.w2m();
    }
    return true;
  }
}
class ThresholdDepth {
  constructor(_max) {
    this.h3u_1 = _max;
  }
  n2m(depth) {
    return depth <= this.h3u_1;
  }
  toString() {
    return this.h3u_1.toString();
  }
}
class Companion_98 {
  constructor() {
    this.i3u_1 = 2;
    this.j3u_1 = 1;
  }
}
class ToolTipTreeMapRenderer {
  constructor() {
    this.u31_1 = EnhancedLabel.j1z();
    this.u31_1.setInsets(Companion_getInstance_82().p3n_1.t1x_1, Companion_getInstance_82().p3n_1.u1x_1, Companion_getInstance_82().p3n_1.v1x_1, Companion_getInstance_82().p3n_1.w1x_1);
  }
  c32(g, view, node, width, leftShift, topShift, progress) {
    var model = ensureNotNull(view.h2l());
    if (!(node == null)) {
      var shape = view.k32(ensureNotNull(model.currentRoot));
      if (!(shape == null)) {
        this.v31(g, view, model, node, width, leftShift, topShift, true);
      }
    }
  }
  v31(g, view, model, node, width, leftShift, topShift, paint) {
    var labelColumn = model.settings.toolTipColumns;
    var tmp;
    if (!(labelColumn == null) && labelColumn.k1() >= 0) {
      var height = 0;
      var _iterator__ex2g4s = labelColumn.h1();
      while (_iterator__ex2g4s.i1()) {
        var column = _iterator__ex2g4s.j1();
        if (!(column == null)) {
          var valueLabel = ensureNotNull(view.u37()).q3n(view, column, node, Dimension.fm(width, 1000));
          if (!(valueLabel == null)) {
            var font = ensureNotNull(model.settings.getColumnSettings(column).getTooltipFont());
            var boldFont = font.s29(Weight_BOLD_getInstance());
            valueLabel.setFont(boldFont);
            valueLabel.setForeground(ensureNotNull(model.settings.getColumnSettings(column).getTooltipForeground()));
            valueLabel.setBackground(null);
            var valueWidth = (width - 2 | 0) - 1 | 0;
            var labelSize;
            if (ensureNotNull(model.settings.getColumnSettings(column).getShowLabel()) && model.settings.getColumnSettings(column).getTooltipRendering() === Rendering_WordWrap_getInstance()) {
              this.u31_1.setFont(font);
              this.u31_1.setForeground(ensureNotNull(model.settings.getColumnSettings(column).getTooltipForeground()));
              this.u31_1.setBackground(null);
              this.u31_1.setText(plus_0(model.getColumnName(column), ': '));
              labelSize = view.p37().g3u(this.u31_1, g, valueWidth, 1000).q2l();
            } else {
              labelSize = Dimension.fm(0, 0);
            }
            var pf = view.p37().g3u(valueLabel, g, valueWidth - labelSize.cm_1 | 0, 1000);
            height = height + numberToInt(pf.t2l()) | 0;
          }
        }
      }
      var bounds = Rectangle.from(0, 0, width, height);
      if (height <= 0) {
        return null;
      }
      var top = bounds.b1w_1;
      var _iterator__ex2g4s_0 = labelColumn.h1();
      $l$loop: while (_iterator__ex2g4s_0.i1()) {
        var column_0 = _iterator__ex2g4s_0.j1();
        if (!(column_0 == null)) {
          var valueLabel_0 = ensureNotNull(view.u37()).q3n(view, column_0, node, Dimension.fm(width, 1000));
          if (!(valueLabel_0 == null)) {
            var font_0 = ensureNotNull(model.settings.getColumnSettings(column_0).getTooltipFont());
            var boldFont_0 = font_0.s29(Weight_BOLD_getInstance());
            valueLabel_0.setFont(boldFont_0);
            valueLabel_0.setForeground(ensureNotNull(model.settings.getColumnSettings(column_0).getTooltipForeground()));
            valueLabel_0.setBackground(null);
            var valueWidth_0 = (bounds.c1w_1 - 2 | 0) - 1 | 0;
            var labelSize_0;
            if (ensureNotNull(model.settings.getColumnSettings(column_0).getShowLabel())) {
              this.u31_1.setFont(font_0);
              this.u31_1.setForeground(ensureNotNull(model.settings.getColumnSettings(column_0).getTooltipForeground()));
              this.u31_1.setBackground(null);
              this.u31_1.setText(toString_0(model.getColumnName(column_0)) + ': ');
              labelSize_0 = view.p37().g3u(this.u31_1, g, valueWidth_0, 1000).q2l();
            } else {
              labelSize_0 = Dimension.fm(0, 0);
            }
            var pf_0 = view.p37().g3u(valueLabel_0, g, valueWidth_0 - labelSize_0.cm_1 | 0, 1000);
            var valueSize = pf_0.q2l();
            if (top + valueSize.hm() <= bounds.h1h() + bounds.hm()) {
              var x = bounds.a1w_1 + 2 | 0;
              if (ensureNotNull(model.settings.getColumnSettings(column_0).getShowLabel())) {
                var rect = Rectangle.from(x, top, labelSize_0.cm_1, labelSize_0.dm_1);
                if (paint && !(g == null)) {
                  g.u2l(this.u31_1, rect.a1w_1, rect.b1w_1, rect.c1w_1, rect.d1w_1);
                }
                if (model.isNumericType(column_0)) {
                  x = x + labelSize_0.cm_1 | 0;
                  valueWidth_0 = valueWidth_0 - labelSize_0.cm_1 | 0;
                } else {
                  x = x + labelSize_0.cm_1 | 0;
                  valueWidth_0 = valueWidth_0 - labelSize_0.cm_1 | 0;
                }
              }
              var rect_0 = Rectangle.from(x, top, valueWidth_0, valueSize.dm_1);
              if (paint && !(g == null)) {
                g.u2l(valueLabel_0, rect_0.a1w_1, rect_0.b1w_1, rect_0.c1w_1, rect_0.d1w_1);
              }
              top = top + valueSize.dm_1 | 0;
            } else {
              break $l$loop;
            }
          }
        }
      }
      tmp = bounds;
    } else {
      tmp = null;
    }
    return tmp;
  }
}
class TreeMapColumnPropertyType extends Enum {
  get name() {
    return this.h3();
  }
  get ordinal() {
    return this.i3();
  }
}
class TreeMapEvent {
  constructor(isGroupByChanged, isLayoutChanged, isColorsChanged) {
    this.z33_1 = isGroupByChanged;
    this.a34_1 = isLayoutChanged;
    this.b34_1 = isColorsChanged;
  }
  toString() {
    return 'TreeMapEvent{groupByChanged=' + this.z33_1 + ', layoutChanged=' + this.a34_1 + ', colorsChanged=' + this.b34_1 + toString(_Char___init__impl__6a9atx(125));
  }
}
class TreeMapPropertyType extends Enum {
  get name() {
    return this.h3();
  }
  get ordinal() {
    return this.i3();
  }
}
class TreeMapSettingsEvent {
  constructor(updateGroupBy, updateLayout, updateColors, clearAggregationCache, updateDimension) {
    this.z2v_1 = updateGroupBy;
    this.a2w_1 = updateLayout;
    this.b2w_1 = updateColors;
    this.c2w_1 = clearAggregationCache;
    this.d2w_1 = updateDimension;
  }
  j2w() {
    return this.z2v_1;
  }
  g2w() {
    return this.a2w_1;
  }
  e2w() {
    return this.b2w_1;
  }
  h2w() {
    return this.c2w_1;
  }
  l34() {
    return this.d2w_1;
  }
  toString() {
    return 'TreeMapSettingsEvent{updateGroupBy=' + this.z2v_1 + ', updateLayout=' + this.a2w_1 + ', updateColors=' + this.b2w_1 + ', clearAggregationCache=' + this.c2w_1 + toString(_Char___init__impl__6a9atx(125));
  }
}
class ToolTipType extends Enum {}
class XPlus1Scale {
  q2k(value, min, max) {
    return value + 1;
  }
  toString() {
    return 'x + 1';
  }
}
class DataFrameColorMapFactory {
  p3j(factory, dataFrame, column, min, max) {
    var tmp;
    if (!(min == null) && !(max == null)) {
      tmp = factory.k1b(min, max);
    } else {
      tmp = this.q3j(factory, dataFrame, column);
    }
    return tmp;
  }
  q3j(factory, dataFrame, column) {
    var tmp;
    if (!(dataFrame == null) && !(column == null)) {
      var values = SortedSet.wj(new UniversalComparator());
      var valueCount = 0;
      var _iterator__ex2g4s = dataFrame.o2d().h1();
      while (_iterator__ex2g4s.i1()) {
        var row = _iterator__ex2g4s.j1();
        var value = dataFrame.x2f(row, column);
        var tmp_0;
        if (!(value == null)) {
          tmp_0 = isComparable(value);
        } else {
          tmp_0 = false;
        }
        if (tmp_0) {
          values.c1(value);
          valueCount = valueCount + 1 | 0;
        }
      }
      if (valueCount === 0) {
        values = LinkedHashSet.m1();
        var _iterator__ex2g4s_0 = dataFrame.o2d().h1();
        while (_iterator__ex2g4s_0.i1()) {
          var row_0 = _iterator__ex2g4s_0.j1();
          var value_0 = dataFrame.x2f(row_0, column);
          if (!(value_0 == null)) {
            values.c1(value_0);
            valueCount = valueCount + 1 | 0;
          }
        }
      }
      tmp = factory.i1b(values);
    } else {
      tmp = factory.i1b(emptySet());
    }
    return tmp;
  }
}
class Companion_99 {
  constructor() {
    this.o3u_1 = 5.0;
    this.p3u_1 = 5;
  }
}
class AbstractTGraphics {
  constructor() {
    this.q3u_1 = null;
  }
  p2l(elabel, pf, font, bounds, scaleFactor, expand) {
    var height;
    var size;
    var maxFontSize = this.r3u(elabel, font, ensureNotNull(elabel).getDesiredWidth()) * scaleFactor;
    var fontSize = maxFontSize;
    var scaledFont = ensureNotNull(elabel.getFont()).q29(fontSize);
    elabel.setFont(scaledFont);
    size = ensureNotNull(pf).q2l();
    height = size.hm() - elabel.getInsetTop() - elabel.getInsetBottom();
    var i = 0;
    $l$loop_1: while (height > elabel.getDesiredHeight() && i < 5) {
      i = i + 1 | 0;
      // Inline function 'kotlin.math.sqrt' call
      var x = elabel.getDesiredHeight() / height;
      var scale = Math.sqrt(x);
      var newFontSize = getFontSize(ensureNotNull(elabel.getFont())) * scale;
      if (newFontSize > maxFontSize) {
        newFontSize = maxFontSize;
      }
      fontSize = newFontSize;
      var oldFontSize = getFontSize(ensureNotNull(elabel.getFont()));
      scaledFont = ensureNotNull(elabel.getFont()).q29(fontSize);
      if (getFontSize(scaledFont) === oldFontSize) {
        break $l$loop_1;
      }
      elabel.setFont(scaledFont);
      if (fontSize < 5.0) {
        break $l$loop_1;
      }
      var newSize = pf.q2l();
      size = newSize;
      height = size.hm() - elabel.getInsetTop() - elabel.getInsetBottom();
    }
    return fontSize;
  }
  r3u(elabel, font, maxWidth) {
    this.l3c(ensureNotNull(font));
    var words = split(ensureNotNull(ensureNotNull(elabel).getText()), [' ']);
    var width = 0.0;
    var longest = null;
    var _iterator__ex2g4s = words.h1();
    while (_iterator__ex2g4s.i1()) {
      var word = _iterator__ex2g4s.j1();
      var preferredWidth = this.s3u(word);
      if (preferredWidth > width) {
        longest = word;
        width = preferredWidth;
      }
    }
    var maxFontSize;
    var fontSize = getFontSize(font) * maxWidth / width;
    maxFontSize = fontSize;
    return maxFontSize;
  }
  d3c(img, x, y, w, h, width, height, bounds, shape) {
    this.u2m();
    this.v2m(shape);
    var b = this.g3c(img, x, y, w, h);
    this.w2m();
    return b;
  }
  e3r(shape) {
    if (!(shape == null) ? isInterface(shape, Rectangle2D) : false) {
      this.q3u_1 = shape.f1h();
    }
  }
  f3r(bounds) {
    return this.q3u_1 == null || ensureNotNull(this.q3u_1).l1h(ensureNotNull(bounds));
  }
}
class JsTreeMap extends DefaultTreeMap {
  constructor(elementId, model) {
    return new.target.w3u(elementId, model);
  }
  static w3u(elementId, model) {
    var $this = this.t3c(model);
    var tmp = document;
    // Inline function 'web.dom.ElementId' call
    // Inline function 'js.reflect.unsafeCast' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var root = createRoot(ensureNotNull(tmp.getElementById(elementId)));
    var tmp_0 = get_TreeMapComponent();
    root.render(create(tmp_0, JsTreeMap$lambda(model)));
    return $this;
  }
}
class CanvasRenderingContext2DTGraphics$sizeLabel$1 {
  constructor(this$0, $label, $width) {
    this.i3v_1 = this$0;
    this.j3v_1 = $label;
    this.k3v_1 = $width;
  }
  t2l() {
    var tmp;
    if (this.j3v_1.getRendering().g3_1 === 2) {
      this.i3v_1.y3u_1.font = ensureNotNull(this.j3v_1.getFont()).toString();
      tmp = paintWordWrapText(this.i3v_1, this.i3v_1, this.j3v_1, this.j3v_1.getText(), this.k3v_1, 0, 0, ensureNotNull(this.j3v_1.getForeground()), ensureNotNull(this.j3v_1.getBackground()), false).hm();
    } else {
      tmp = this.i3v_1.h3v(this.j3v_1);
    }
    return tmp;
  }
  q2l() {
    this.i3v_1.y3u_1.font = ensureNotNull(this.j3v_1.getFont()).toString();
    return this.j3v_1.getRendering().g3_1 === 2 ? paintWordWrapText(this.i3v_1, this.i3v_1, this.j3v_1, this.j3v_1.getText(), this.k3v_1, 0, 0, ensureNotNull(this.j3v_1.getForeground()), ensureNotNull(this.j3v_1.getBackground()), false) : Dimension.fm(numberToInt(this.i3v_1.y3u_1.measureText(ensureNotNull(this.j3v_1.getText())).width), this.i3v_1.h3v(this.j3v_1));
  }
}
class CanvasRenderingContext2DTGraphics extends AbstractTGraphics {
  constructor(gc) {
    super();
    this.y3u_1 = gc;
    this.z3u_1 = Companion_getInstance_56().e1b_1;
    this.c3v_1 = new CPFont('SansSerif', 12.0);
    this.d3v_1 = AffineTransform.j1j();
    this.e3v_1 = this.z3u_1.b28();
    this.a3v_1 = this.z3u_1.b28();
    this.f3v_1 = new Float64Array(6);
    this.b3v_1 = 0.5;
  }
  r2w() {
    return this.z3u_1;
  }
  l3c(_set____db54di) {
    this.c3v_1 = _set____db54di;
  }
  u2l(label, x, y, w, h) {
    var y_0 = y;
    if (label.isOpaque) {
      this.y3u_1.fillStyle = ensureNotNull(label.getBackground()).p19();
      this.y3u_1.fillRect(x, y_0, w, h);
    }
    var text = label.getText();
    if (!(text == null)) {
      // Inline function 'web.canvas.alphabetic' call
      // Inline function 'js.reflect.unsafeCast' call
      // Inline function 'kotlin.js.unsafeCast' call
      // Inline function 'kotlin.js.asDynamic' call
      var tmp$ret$3 = 'alphabetic';
      this.y3u_1.textBaseline = tmp$ret$3;
      this.y3u_1.font = ensureNotNull(label.getFont()).toString();
      var javaScriptColor = ensureNotNull(label.getForeground()).p19();
      this.y3u_1.fillStyle = javaScriptColor;
      if (label.getRendering().g3_1 === 2) {
        if (!(label.getVerticalAlignment() === 1)) {
          var d = this.o2l(label, w, h).q2l();
          switch (label.getVerticalAlignment()) {
            case 0:
              y_0 = y_0 + numberToInt((h - d.hm()) / 2) | 0;
              break;
            case 3:
              y_0 = y_0 + numberToInt(h - d.hm()) | 0;
              break;
            default:
              break;
          }
        }
        paintWordWrapText(this, this, label, label.getText(), w, x, y_0, ensureNotNull(label.getForeground()), ensureNotNull(label.getBackground()), true);
      } else {
        if (!(label.getMinimumCharactersToDisplay() == null)) {
          var minimumCharactersToDisplay = ensureNotNull(label.getMinimumCharactersToDisplay());
          if (text.length > minimumCharactersToDisplay) {
            var s = substring(text, 0, minimumCharactersToDisplay);
            var textMetrics = this.y3u_1.measureText(s);
            if (!(textMetrics == null)) {
              var width = textMetrics.width;
              if (width > ((w - label.getInsetLeft() | 0) - label.getInsetRight() | 0)) {
                return Unit_instance;
              }
            }
          }
        }
        this.g3v(label, x, y_0, w, text);
      }
    }
  }
  g3v(label, x, y, w, text) {
    switch (label.getHorizontalAlignment()) {
      case 10:
      case 2:
        // Inline function 'web.canvas.left' call

        // Inline function 'js.reflect.unsafeCast' call

        // Inline function 'kotlin.js.unsafeCast' call

        // Inline function 'kotlin.js.asDynamic' call

        this.y3u_1.textAlign = 'left';
        this.y3u_1.fillText(text, x + label.getInsetLeft() | 0, (y + label.getInsetTop() | 0) + this.l3v(label) | 0);
        break;
      case 11:
      case 4:
        // Inline function 'web.canvas.right' call

        // Inline function 'js.reflect.unsafeCast' call

        // Inline function 'kotlin.js.unsafeCast' call

        // Inline function 'kotlin.js.asDynamic' call

        this.y3u_1.textAlign = 'right';
        this.y3u_1.fillText(text, (x + w | 0) - label.getInsetRight() | 0, (y + label.getInsetTop() | 0) + this.l3v(label) | 0);
        break;
      case 0:
        // Inline function 'web.canvas.left' call

        // Inline function 'js.reflect.unsafeCast' call

        // Inline function 'kotlin.js.unsafeCast' call

        // Inline function 'kotlin.js.asDynamic' call

        this.y3u_1.textAlign = 'left';
        // Inline function 'kotlin.math.max' call

        var b = (((w - label.getInsetLeft() | 0) - label.getInsetRight() | 0) - this.y3u_1.measureText(text).width) / 2;
        var width = Math.max(0.0, b);
        this.y3u_1.fillText(text, x + width + label.getInsetLeft(), (y + label.getInsetTop() | 0) + this.l3v(label) | 0);
        break;
    }
  }
  o2l(label, width, height) {
    return new CanvasRenderingContext2DTGraphics$sizeLabel$1(this, label, width);
  }
  l3v(label) {
    return imul_0(3, this.h3v(label)) / 4 | 0;
  }
  h3v(label) {
    return numberToInt(ensureNotNull(label.getFont()).r29() * 100 / 96 * 130 / 100);
  }
  u2m() {
    this.y3u_1.save();
  }
  w2m() {
    this.y3u_1.restore();
  }
  j3p(alpha) {
    this.y3u_1.globalAlpha = alpha;
  }
  l2m(c) {
    this.y3u_1.fillStyle = ensureNotNull(c).p19();
  }
  y2m(c) {
    this.y3u_1.strokeStyle = ensureNotNull(c).p19();
  }
  a3p(c) {
    this.a3v_1 = ensureNotNull(c);
    var javaScriptColor = this.a3v_1.p19();
    this.y3u_1.fillStyle = javaScriptColor;
    this.y3u_1.strokeStyle = javaScriptColor;
  }
  x2m(lw) {
    this.y3u_1.lineWidth = lw;
  }
  z3o(dashPattern) {
    this.y3u_1.setLineDash(toTypedArray(ensureNotNull(dashPattern)));
  }
  f3c(bilinear) {
  }
  e3c() {
    return false;
  }
  b32(antialias) {
  }
  z2m(s) {
    if (s instanceof Rectangle) {
      this.y3u_1.strokeRect(s.g1h(), s.h1h(), s.gm(), s.hm());
    } else {
      if (!(s == null) ? isInterface(s, Rectangle2D) : false) {
        this.y3u_1.strokeRect(s.g1h(), s.h1h(), s.gm(), s.hm());
      } else {
        this.m3v(ensureNotNull(s));
        this.y3u_1.stroke();
      }
    }
  }
  m3v(s) {
    this.y3u_1.beginPath();
    var iterator = s.o1h(null);
    while (!iterator.m17()) {
      var segType = iterator.s1l(this.f3v_1);
      switch (segType) {
        case 0:
          this.y3u_1.moveTo(this.f3v_1[0], this.f3v_1[1]);
          break;
        case 1:
          this.y3u_1.lineTo(this.f3v_1[0], this.f3v_1[1]);
          break;
        case 2:
          this.y3u_1.quadraticCurveTo(this.f3v_1[0], this.f3v_1[1], this.f3v_1[2], this.f3v_1[3]);
          break;
        case 3:
          this.y3u_1.bezierCurveTo(this.f3v_1[0], this.f3v_1[1], this.f3v_1[2], this.f3v_1[3], this.f3v_1[4], this.f3v_1[5]);
          break;
        case 4:
          this.y3u_1.closePath();
          break;
        default:
          throw RuntimeException.o9('Unrecognised segment type ' + segType);
      }
      iterator.r1l();
    }
  }
  m2m(s) {
    if (s instanceof Rectangle) {
      this.y3u_1.fillRect(s.g1h(), s.h1h(), s.gm(), s.hm());
    } else {
      if (!(s == null) ? isInterface(s, Rectangle2D) : false) {
        this.y3u_1.fillRect(s.g1h(), s.h1h(), s.gm(), s.hm());
      } else {
        this.m3v(ensureNotNull(s));
        this.y3u_1.fill();
      }
    }
  }
  s3u(text) {
    return this.y3u_1.measureText(ensureNotNull(text)).width;
  }
  m3c(str, x, y) {
    if (str == null) {
      throw NullPointerException.ic("Null 'str' argument.");
    } else {
      this.y3u_1.fillText(str, x, y);
    }
  }
  o1j(tx, ty) {
    ensureNotNull(this.d3v_1).o1j(tx, ty);
    this.y3u_1.translate(tx, ty);
  }
  n3v(t) {
    var tx = ensureNotNull(this.d3v_1);
    tx.r1j(ensureNotNull(t));
    this.o3v(tx);
  }
  applyTransform(t) {
    return this.n3v(t);
  }
  o3v(t) {
    var t_0 = t;
    if (t_0 == null) {
      this.d3v_1 = AffineTransform.j1j();
      t_0 = this.d3v_1;
    } else {
      this.d3v_1 = AffineTransform.k1j(t_0);
    }
    this.y3u_1.setTransform(ensureNotNull(t_0).g1i_1, t_0.h1i_1, t_0.i1i_1, t_0.j1i_1, t_0.k1i_1, t_0.l1i_1);
  }
  v2m(s) {
    if (!(s == null) ? isInterface(s, Rectangle2D) : false) {
      var r = s;
      this.y3u_1.beginPath();
      // Inline function 'kotlin.math.floor' call
      var x = r.g1h();
      var tmp = Math.floor(x);
      // Inline function 'kotlin.math.floor' call
      var x_0 = r.h1h();
      var tmp_0 = Math.floor(x_0);
      // Inline function 'kotlin.math.ceil' call
      var x_1 = r.gm();
      var tmp_1 = Math.ceil(x_1);
      // Inline function 'kotlin.math.ceil' call
      var x_2 = r.hm();
      var tmp$ret$3 = Math.ceil(x_2);
      this.y3u_1.rect(tmp, tmp_0, tmp_1, tmp$ret$3);
    } else {
      this.m3v(ensureNotNull(s));
    }
    this.y3u_1.clip();
  }
  k3c(x1, y1, x2, y2) {
    this.y3u_1.beginPath();
    this.y3u_1.moveTo(x1, y1);
    this.y3u_1.lineTo(x2, y2);
    this.y3u_1.closePath();
    this.y3u_1.stroke();
  }
  j3c(x, y, width, height) {
    this.y3u_1.strokeRect(x, y, width, height);
  }
  w38(x, y, width, height) {
    this.y3u_1.fillRect(x, y, width, height);
  }
  z31(x, y, width, height, arcWidth, arcHeight) {
    this.z2m(Double_4.g1x(x, y, width, height, arcWidth, arcHeight));
  }
  y31(x, y, width, height, arcWidth, arcHeight) {
    this.m2m(Double_4.g1x(x, y, width, height, arcWidth, arcHeight));
  }
  p3v(img, x, y) {
    var completed;
    var nativeImage = ensureNotNull(img).b2a();
    if (nativeImage instanceof ImageData) {
      this.y3u_1.putImageData(nativeImage, x, y);
      completed = true;
    } else {
      completed = img.e2a();
      var tmp = img.b2a();
      this.y3u_1.drawImage(!(tmp == null) ? tmp : THROW_CCE(), x, y);
    }
    return completed;
  }
  g3c(img, x, y, w, h) {
    var tmp;
    if (ensureNotNull(img).t29_1 === w && img.u29_1 === h) {
      tmp = this.p3v(img, x, y);
    } else {
      var completed = img.e2a();
      var tmp_0 = img.b2a();
      this.y3u_1.drawImage(!(tmp_0 == null) ? tmp_0 : THROW_CCE(), x, y, w, h);
      tmp = completed;
    }
    return tmp;
  }
  i3c() {
    var tmp = this.y3u_1;
    return new CanvasRenderingContext2DIGraphics(tmp instanceof CanvasRenderingContext2D ? tmp : THROW_CCE());
  }
}
class Headless$sizeLabel$1 {
  constructor($l) {
    this.q3v_1 = $l;
  }
  t2l() {
    return numberToInt(ensureNotNull(this.q3v_1.getFont()).r29() * 100 / 96 * 130 / 100);
  }
  q2l() {
    return Dimension.fm(0, numberToInt(ensureNotNull(this.q3v_1.getFont()).r29() * 100 / 96 * 130 / 100));
  }
}
class Headless {
  g3u(l, g, width, height) {
    var tmp;
    if (!(g == null)) {
      tmp = g.o2l(l, width, height);
    } else {
      tmp = new Headless$sizeLabel$1(l);
    }
    return tmp;
  }
}
class TreeMapCanvas$addLayer$1 {
  constructor($d, this$0) {
    this.t3v_1 = $d;
    this.u3v_1 = this$0;
    this.r3v_1 = 0;
    this.s3v_1 = 0;
  }
  u26(width, height) {
    this.r3v_1 = width;
    this.s3v_1 = height;
  }
  x26(g) {
    this.t3v_1.y3o(this.u3v_1.h3p_1, new CanvasRenderingContext2DTGraphics(g), this.r3v_1, this.s3v_1);
  }
}
class TreeMapCanvas extends CPCanvas {
  constructor(view) {
    super();
    this.h3p_1 = view;
  }
  i3p(d) {
    this.m26(new TreeMapCanvas$addLayer$1(d, this));
  }
}
//endregion
function throwIrLinkageError(message) {
  throw IrLinkageError.g(message);
}
function throwUninitializedPropertyAccessException(name) {
  throw UninitializedPropertyAccessException.o('lateinit property ' + name + ' has not been initialized');
}
function toMutableList(_this__u8e3s4) {
  return ArrayList.s(asCollection(_this__u8e3s4));
}
function requireNoNulls(_this__u8e3s4) {
  var inductionVariable = 0;
  var last = _this__u8e3s4.length;
  while (inductionVariable < last) {
    var element = _this__u8e3s4[inductionVariable];
    inductionVariable = inductionVariable + 1 | 0;
    if (element == null) {
      throw IllegalArgumentException.w('null element found in ' + toString_1(_this__u8e3s4) + '.');
    }
  }
  return isArray(_this__u8e3s4) ? _this__u8e3s4 : THROW_CCE();
}
function toList(_this__u8e3s4) {
  switch (_this__u8e3s4.length) {
    case 0:
      return emptyList();
    case 1:
      return listOf(_this__u8e3s4[0]);
    default:
      return toMutableList(_this__u8e3s4);
  }
}
function contains_0(_this__u8e3s4, element) {
  return indexOf(_this__u8e3s4, element) >= 0;
}
function indexOf(_this__u8e3s4, element) {
  if (element == null) {
    var inductionVariable = 0;
    var last = _this__u8e3s4.length - 1 | 0;
    if (inductionVariable <= last)
      do {
        var index = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        if (_this__u8e3s4[index] == null) {
          return index;
        }
      }
       while (inductionVariable <= last);
  } else {
    var inductionVariable_0 = 0;
    var last_0 = _this__u8e3s4.length - 1 | 0;
    if (inductionVariable_0 <= last_0)
      do {
        var index_0 = inductionVariable_0;
        inductionVariable_0 = inductionVariable_0 + 1 | 0;
        if (equals(element, _this__u8e3s4[index_0])) {
          return index_0;
        }
      }
       while (inductionVariable_0 <= last_0);
  }
  return -1;
}
function singleOrNull(_this__u8e3s4) {
  return _this__u8e3s4.length === 1 ? _this__u8e3s4[0] : null;
}
function joinToString(_this__u8e3s4, separator, prefix, postfix, limit, truncated, transform) {
  separator = separator === VOID ? ', ' : separator;
  prefix = prefix === VOID ? '' : prefix;
  postfix = postfix === VOID ? '' : postfix;
  limit = limit === VOID ? -1 : limit;
  truncated = truncated === VOID ? '...' : truncated;
  transform = transform === VOID ? null : transform;
  return joinTo(_this__u8e3s4, StringBuilder.y(), separator, prefix, postfix, limit, truncated, transform).toString();
}
function sortedWith(_this__u8e3s4, comparator) {
  return asList(sortedArrayWith(_this__u8e3s4, comparator));
}
function joinToString_0(_this__u8e3s4, separator, prefix, postfix, limit, truncated, transform) {
  separator = separator === VOID ? ', ' : separator;
  prefix = prefix === VOID ? '' : prefix;
  postfix = postfix === VOID ? '' : postfix;
  limit = limit === VOID ? -1 : limit;
  truncated = truncated === VOID ? '...' : truncated;
  transform = transform === VOID ? null : transform;
  return joinTo_0(_this__u8e3s4, StringBuilder.y(), separator, prefix, postfix, limit, truncated, transform).toString();
}
function lastIndexOf(_this__u8e3s4, element) {
  if (element == null) {
    var inductionVariable = _this__u8e3s4.length - 1 | 0;
    if (0 <= inductionVariable)
      do {
        var index = inductionVariable;
        inductionVariable = inductionVariable + -1 | 0;
        if (_this__u8e3s4[index] == null) {
          return index;
        }
      }
       while (0 <= inductionVariable);
  } else {
    var inductionVariable_0 = _this__u8e3s4.length - 1 | 0;
    if (0 <= inductionVariable_0)
      do {
        var index_0 = inductionVariable_0;
        inductionVariable_0 = inductionVariable_0 + -1 | 0;
        if (equals(element, _this__u8e3s4[index_0])) {
          return index_0;
        }
      }
       while (0 <= inductionVariable_0);
  }
  return -1;
}
function get_lastIndex(_this__u8e3s4) {
  return _this__u8e3s4.length - 1 | 0;
}
function joinTo(_this__u8e3s4, buffer, separator, prefix, postfix, limit, truncated, transform) {
  separator = separator === VOID ? ', ' : separator;
  prefix = prefix === VOID ? '' : prefix;
  postfix = postfix === VOID ? '' : postfix;
  limit = limit === VOID ? -1 : limit;
  truncated = truncated === VOID ? '...' : truncated;
  transform = transform === VOID ? null : transform;
  buffer.z(prefix);
  var count = 0;
  var inductionVariable = 0;
  var last = _this__u8e3s4.length;
  $l$loop: while (inductionVariable < last) {
    var element = _this__u8e3s4[inductionVariable];
    inductionVariable = inductionVariable + 1 | 0;
    count = count + 1 | 0;
    if (count > 1) {
      buffer.z(separator);
    }
    if (limit < 0 || count <= limit) {
      appendElement(buffer, element, transform);
    } else
      break $l$loop;
  }
  if (limit >= 0 && count > limit) {
    buffer.z(truncated);
  }
  buffer.z(postfix);
  return buffer;
}
function sortedArrayWith(_this__u8e3s4, comparator) {
  // Inline function 'kotlin.collections.isEmpty' call
  if (_this__u8e3s4.length === 0)
    return _this__u8e3s4;
  // Inline function 'kotlin.collections.copyOf' call
  // Inline function 'kotlin.collections.copyOf' call
  // Inline function 'kotlin.js.asDynamic' call
  // Inline function 'kotlin.apply' call
  var this_0 = _this__u8e3s4.slice();
  sortWith(this_0, comparator);
  return this_0;
}
function joinTo_0(_this__u8e3s4, buffer, separator, prefix, postfix, limit, truncated, transform) {
  separator = separator === VOID ? ', ' : separator;
  prefix = prefix === VOID ? '' : prefix;
  postfix = postfix === VOID ? '' : postfix;
  limit = limit === VOID ? -1 : limit;
  truncated = truncated === VOID ? '...' : truncated;
  transform = transform === VOID ? null : transform;
  buffer.z(prefix);
  var count = 0;
  var inductionVariable = 0;
  var last = _this__u8e3s4.length;
  $l$loop: while (inductionVariable < last) {
    var element = _this__u8e3s4[inductionVariable];
    inductionVariable = inductionVariable + 1 | 0;
    count = count + 1 | 0;
    if (count > 1) {
      buffer.z(separator);
    }
    if (limit < 0 || count <= limit) {
      if (!(transform == null))
        buffer.z(transform(element));
      else
        buffer.z(element.toString());
    } else
      break $l$loop;
  }
  if (limit >= 0 && count > limit) {
    buffer.z(truncated);
  }
  buffer.z(postfix);
  return buffer;
}
function toSet(_this__u8e3s4) {
  switch (_this__u8e3s4.length) {
    case 0:
      return emptySet();
    case 1:
      return setOf(_this__u8e3s4[0]);
    default:
      return toCollection(_this__u8e3s4, LinkedHashSet.b1(mapCapacity(_this__u8e3s4.length)));
  }
}
function toCollection(_this__u8e3s4, destination) {
  var inductionVariable = 0;
  var last = _this__u8e3s4.length;
  while (inductionVariable < last) {
    var item = _this__u8e3s4[inductionVariable];
    inductionVariable = inductionVariable + 1 | 0;
    destination.c1(item);
  }
  return destination;
}
function single(_this__u8e3s4) {
  var tmp;
  switch (_this__u8e3s4.length) {
    case 0:
      throw NoSuchElementException.g1('Array is empty.');
    case 1:
      tmp = _this__u8e3s4[0];
      break;
    default:
      throw IllegalArgumentException.w('Array has more than one element.');
  }
  return tmp;
}
function joinToString_1(_this__u8e3s4, separator, prefix, postfix, limit, truncated, transform) {
  separator = separator === VOID ? ', ' : separator;
  prefix = prefix === VOID ? '' : prefix;
  postfix = postfix === VOID ? '' : postfix;
  limit = limit === VOID ? -1 : limit;
  truncated = truncated === VOID ? '...' : truncated;
  transform = transform === VOID ? null : transform;
  return joinTo_1(_this__u8e3s4, StringBuilder.y(), separator, prefix, postfix, limit, truncated, transform).toString();
}
function joinTo_1(_this__u8e3s4, buffer, separator, prefix, postfix, limit, truncated, transform) {
  separator = separator === VOID ? ', ' : separator;
  prefix = prefix === VOID ? '' : prefix;
  postfix = postfix === VOID ? '' : postfix;
  limit = limit === VOID ? -1 : limit;
  truncated = truncated === VOID ? '...' : truncated;
  transform = transform === VOID ? null : transform;
  buffer.z(prefix);
  var count = 0;
  var _iterator__ex2g4s = _this__u8e3s4.h1();
  $l$loop: while (_iterator__ex2g4s.i1()) {
    var element = _iterator__ex2g4s.j1();
    count = count + 1 | 0;
    if (count > 1) {
      buffer.z(separator);
    }
    if (limit < 0 || count <= limit) {
      appendElement(buffer, element, transform);
    } else
      break $l$loop;
  }
  if (limit >= 0 && count > limit) {
    buffer.z(truncated);
  }
  buffer.z(postfix);
  return buffer;
}
function first(_this__u8e3s4) {
  if (isInterface(_this__u8e3s4, KtList))
    return first_0(_this__u8e3s4);
  else {
    var iterator = _this__u8e3s4.h1();
    if (!iterator.i1())
      throw NoSuchElementException.g1('Collection is empty.');
    return iterator.j1();
  }
}
function last(_this__u8e3s4) {
  if (isInterface(_this__u8e3s4, KtList))
    return last_0(_this__u8e3s4);
  else {
    var iterator = _this__u8e3s4.h1();
    if (!iterator.i1())
      throw NoSuchElementException.g1('Collection is empty.');
    var last = iterator.j1();
    while (iterator.i1())
      last = iterator.j1();
    return last;
  }
}
function toList_0(_this__u8e3s4) {
  if (isInterface(_this__u8e3s4, Collection)) {
    var tmp;
    switch (_this__u8e3s4.k1()) {
      case 0:
        tmp = emptyList();
        break;
      case 1:
        var tmp_0;
        if (isInterface(_this__u8e3s4, KtList)) {
          tmp_0 = _this__u8e3s4.l1(0);
        } else {
          tmp_0 = _this__u8e3s4.h1().j1();
        }

        tmp = listOf(tmp_0);
        break;
      default:
        tmp = toMutableList_0(_this__u8e3s4);
        break;
    }
    return tmp;
  }
  return optimizeReadOnlyList(toMutableList_1(_this__u8e3s4));
}
function toSet_0(_this__u8e3s4) {
  if (isInterface(_this__u8e3s4, Collection)) {
    var tmp;
    switch (_this__u8e3s4.k1()) {
      case 0:
        tmp = emptySet();
        break;
      case 1:
        var tmp_0;
        if (isInterface(_this__u8e3s4, KtList)) {
          tmp_0 = _this__u8e3s4.l1(0);
        } else {
          tmp_0 = _this__u8e3s4.h1().j1();
        }

        tmp = setOf(tmp_0);
        break;
      default:
        tmp = toCollection_0(_this__u8e3s4, LinkedHashSet.b1(mapCapacity(_this__u8e3s4.k1())));
        break;
    }
    return tmp;
  }
  return optimizeReadOnlySet(toCollection_0(_this__u8e3s4, LinkedHashSet.m1()));
}
function plus(_this__u8e3s4, element) {
  var result = ArrayList.n1(_this__u8e3s4.k1() + 1 | 0);
  result.o1(_this__u8e3s4);
  result.c1(element);
  return result;
}
function minus(_this__u8e3s4, element) {
  var result = ArrayList.n1(collectionSizeOrDefault(_this__u8e3s4, 10));
  var removed = false;
  // Inline function 'kotlin.collections.filterTo' call
  var _iterator__ex2g4s = _this__u8e3s4.h1();
  while (_iterator__ex2g4s.i1()) {
    var element_0 = _iterator__ex2g4s.j1();
    var tmp;
    if (!removed && equals(element_0, element)) {
      removed = true;
      tmp = false;
    } else {
      tmp = true;
    }
    if (tmp) {
      result.c1(element_0);
    }
  }
  return result;
}
function first_0(_this__u8e3s4) {
  if (_this__u8e3s4.p1())
    throw NoSuchElementException.g1('List is empty.');
  return _this__u8e3s4.l1(0);
}
function last_0(_this__u8e3s4) {
  if (_this__u8e3s4.p1())
    throw NoSuchElementException.g1('List is empty.');
  return _this__u8e3s4.l1(get_lastIndex_0(_this__u8e3s4));
}
function single_0(_this__u8e3s4) {
  var tmp;
  switch (_this__u8e3s4.k1()) {
    case 0:
      throw NoSuchElementException.g1('List is empty.');
    case 1:
      tmp = _this__u8e3s4.l1(0);
      break;
    default:
      throw IllegalArgumentException.w('List has more than one element.');
  }
  return tmp;
}
function toMutableList_0(_this__u8e3s4) {
  return ArrayList.s(_this__u8e3s4);
}
function sortedWith_0(_this__u8e3s4, comparator) {
  if (isInterface(_this__u8e3s4, Collection)) {
    if (_this__u8e3s4.k1() <= 1)
      return toList_0(_this__u8e3s4);
    // Inline function 'kotlin.collections.toTypedArray' call
    var tmp = copyToArray(_this__u8e3s4);
    // Inline function 'kotlin.apply' call
    var this_0 = isArray(tmp) ? tmp : THROW_CCE();
    sortWith(this_0, comparator);
    return asList(this_0);
  }
  // Inline function 'kotlin.apply' call
  var this_1 = toMutableList_1(_this__u8e3s4);
  sortWith_0(this_1, comparator);
  return this_1;
}
function filterNotNull(_this__u8e3s4) {
  return filterNotNullTo(_this__u8e3s4, ArrayList.q1());
}
function toMutableList_1(_this__u8e3s4) {
  if (isInterface(_this__u8e3s4, Collection))
    return toMutableList_0(_this__u8e3s4);
  return toCollection_0(_this__u8e3s4, ArrayList.q1());
}
function toCollection_0(_this__u8e3s4, destination) {
  var _iterator__ex2g4s = _this__u8e3s4.h1();
  while (_iterator__ex2g4s.i1()) {
    var item = _iterator__ex2g4s.j1();
    destination.c1(item);
  }
  return destination;
}
function toMutableSet(_this__u8e3s4) {
  var tmp;
  if (isInterface(_this__u8e3s4, Collection)) {
    tmp = LinkedHashSet.r1(_this__u8e3s4);
  } else {
    tmp = toCollection_0(_this__u8e3s4, LinkedHashSet.m1());
  }
  return tmp;
}
function filterNotNullTo(_this__u8e3s4, destination) {
  var _iterator__ex2g4s = _this__u8e3s4.h1();
  while (_iterator__ex2g4s.i1()) {
    var element = _iterator__ex2g4s.j1();
    if (!(element == null)) {
      destination.c1(element);
    }
  }
  return destination;
}
function single_1(_this__u8e3s4) {
  if (isInterface(_this__u8e3s4, KtList))
    return single_0(_this__u8e3s4);
  else {
    var iterator = _this__u8e3s4.h1();
    if (!iterator.i1())
      throw NoSuchElementException.g1('Collection is empty.');
    var single = iterator.j1();
    if (iterator.i1())
      throw IllegalArgumentException.w('Collection has more than one element.');
    return single;
  }
}
function union(_this__u8e3s4, other) {
  var set = toMutableSet(_this__u8e3s4);
  addAll_0(set, other);
  return set;
}
function until(_this__u8e3s4, to) {
  if (to <= -2147483648)
    return Companion_getInstance_10().s1_1;
  return numberRangeToNumber(_this__u8e3s4, to - 1 | 0);
}
function downTo(_this__u8e3s4, to) {
  return Companion_instance_11.t1(_this__u8e3s4, to, -1);
}
function coerceAtMost(_this__u8e3s4, maximumValue) {
  return _this__u8e3s4 > maximumValue ? maximumValue : _this__u8e3s4;
}
function coerceAtLeast(_this__u8e3s4, minimumValue) {
  return _this__u8e3s4 < minimumValue ? minimumValue : _this__u8e3s4;
}
function contains_1(_this__u8e3s4, value) {
  // Inline function 'kotlin.let' call
  var it = toIntExactOrNull(value);
  return !(it == null) ? _this__u8e3s4.u1(it) : false;
}
function toIntExactOrNull(_this__u8e3s4) {
  return (-2147483648n <= _this__u8e3s4 ? _this__u8e3s4 <= 2147483647n : false) ? convertToInt(_this__u8e3s4) : null;
}
function coerceIn(_this__u8e3s4, minimumValue, maximumValue) {
  if (minimumValue > maximumValue)
    throw IllegalArgumentException.w('Cannot coerce value to an empty range: maximum ' + maximumValue + ' is less than minimum ' + minimumValue + '.');
  if (_this__u8e3s4 < minimumValue)
    return minimumValue;
  if (_this__u8e3s4 > maximumValue)
    return maximumValue;
  return _this__u8e3s4;
}
function asIterable(_this__u8e3s4) {
  // Inline function 'kotlin.collections.Iterable' call
  return new asIterable$$inlined$Iterable$1(_this__u8e3s4);
}
function dropLast(_this__u8e3s4, n) {
  // Inline function 'kotlin.require' call
  if (!(n >= 0)) {
    var message = 'Requested character count ' + n + ' is less than zero.';
    throw IllegalArgumentException.w(toString_1(message));
  }
  return take(_this__u8e3s4, coerceAtLeast(_this__u8e3s4.length - n | 0, 0));
}
function take(_this__u8e3s4, n) {
  // Inline function 'kotlin.require' call
  if (!(n >= 0)) {
    var message = 'Requested character count ' + n + ' is less than zero.';
    throw IllegalArgumentException.w(toString_1(message));
  }
  return substring(_this__u8e3s4, 0, coerceAtMost(n, _this__u8e3s4.length));
}
function init_kotlin_KotlinNothingValueException(_this__u8e3s4) {
  captureStack(_this__u8e3s4, _this__u8e3s4.y1_1);
}
function _Char___init__impl__6a9atx(value) {
  return value;
}
function _get_value__a43j40($this) {
  return $this;
}
function _Char___init__impl__6a9atx_0(code) {
  // Inline function 'kotlin.UShort.toInt' call
  var tmp$ret$0 = _UShort___get_data__impl__g0245(code) & 65535;
  return _Char___init__impl__6a9atx(tmp$ret$0);
}
function Char__compareTo_impl_ypi4mb($this, other) {
  return _get_value__a43j40($this) - _get_value__a43j40(other) | 0;
}
function Char__compareTo_impl_ypi4mb_0($this, other) {
  return Char__compareTo_impl_ypi4mb($this.d2_1, other instanceof Char ? other.d2_1 : THROW_CCE());
}
function Char__plus_impl_qi7pgj($this, other) {
  return numberToChar(_get_value__a43j40($this) + other | 0);
}
function Char__minus_impl_a2frrh($this, other) {
  return _get_value__a43j40($this) - _get_value__a43j40(other) | 0;
}
function Char__toInt_impl_vasixd($this) {
  return _get_value__a43j40($this);
}
function toString($this) {
  // Inline function 'kotlin.js.unsafeCast' call
  return String.fromCharCode(_get_value__a43j40($this));
}
function Char__equals_impl_x6719k($this, other) {
  if (!(other instanceof Char))
    return false;
  return _get_value__a43j40($this) === _get_value__a43j40(other.d2_1);
}
function Char__hashCode_impl_otmys($this) {
  return _get_value__a43j40($this);
}
var Companion_instance;
function Companion_getInstance() {
  if (Companion_instance === VOID)
    new Companion();
  return Companion_instance;
}
var Companion_instance_0;
function Companion_getInstance_0() {
  return Companion_instance_0;
}
function fromJsArray(array) {
  return Companion_instance_0.p2(array);
}
var Companion_instance_1;
function Companion_getInstance_1() {
  return Companion_instance_1;
}
function fromJsSet(set) {
  return Companion_instance_1.x2(set);
}
var Companion_instance_2;
function Companion_getInstance_2() {
  return Companion_instance_2;
}
function toString_0(_this__u8e3s4) {
  var tmp1_elvis_lhs = _this__u8e3s4 == null ? null : toString_1(_this__u8e3s4);
  return tmp1_elvis_lhs == null ? 'null' : tmp1_elvis_lhs;
}
function plus_0(_this__u8e3s4, other) {
  var tmp = _this__u8e3s4 == null ? 'null' : _this__u8e3s4;
  var tmp2_elvis_lhs = other == null ? null : toString_1(other);
  return tmp + (tmp2_elvis_lhs == null ? 'null' : tmp2_elvis_lhs);
}
function abs(_this__u8e3s4) {
  var tmp;
  // Inline function 'kotlin.js.internal.isNegative' call
  if (_this__u8e3s4 < 0) {
    // Inline function 'kotlin.js.internal.unaryMinus' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    tmp = -_this__u8e3s4;
  } else {
    tmp = _this__u8e3s4;
  }
  return tmp;
}
function implement(interfaces) {
  var maxSize = 1;
  var masks = [];
  var inductionVariable = 0;
  var last = interfaces.length;
  while (inductionVariable < last) {
    var i = interfaces[inductionVariable];
    inductionVariable = inductionVariable + 1 | 0;
    var currentSize = maxSize;
    var tmp0_elvis_lhs = i.prototype.$imask$;
    var imask = tmp0_elvis_lhs == null ? i.$imask$ : tmp0_elvis_lhs;
    if (!(imask == null)) {
      masks.push(imask);
      currentSize = imask.length;
    }
    var iid = i.$metadata$.iid;
    var tmp;
    if (iid == null) {
      tmp = null;
    } else {
      // Inline function 'kotlin.let' call
      tmp = bitMaskWith(iid);
    }
    var iidImask = tmp;
    if (!(iidImask == null)) {
      masks.push(iidImask);
      currentSize = Math.max(currentSize, iidImask.length);
    }
    if (currentSize > maxSize) {
      maxSize = currentSize;
    }
  }
  return compositeBitMask(maxSize, masks);
}
function bitMaskWith(activeBit) {
  var numberIndex = activeBit >> 5;
  var intArray = new Int32Array(numberIndex + 1 | 0);
  var positionInNumber = activeBit & 31;
  var numberWithSettledBit = 1 << positionInNumber;
  intArray[numberIndex] = intArray[numberIndex] | numberWithSettledBit;
  return intArray;
}
function compositeBitMask(capacity, masks) {
  var tmp = 0;
  var tmp_0 = new Int32Array(capacity);
  while (tmp < capacity) {
    var tmp_1 = tmp;
    var result = 0;
    var inductionVariable = 0;
    var last = masks.length;
    while (inductionVariable < last) {
      var mask = masks[inductionVariable];
      inductionVariable = inductionVariable + 1 | 0;
      if (tmp_1 < mask.length) {
        result = result | mask[tmp_1];
      }
    }
    tmp_0[tmp_1] = result;
    tmp = tmp + 1 | 0;
  }
  return tmp_0;
}
function isBitSet(_this__u8e3s4, possibleActiveBit) {
  var numberIndex = possibleActiveBit >> 5;
  if (numberIndex > _this__u8e3s4.length)
    return false;
  var positionInNumber = possibleActiveBit & 31;
  var numberWithSettledBit = 1 << positionInNumber;
  return !((_this__u8e3s4[numberIndex] & numberWithSettledBit) === 0);
}
function arrayIterator(array) {
  return new arrayIterator$1(array);
}
function booleanArray(size) {
  var tmp0 = 'BooleanArray';
  // Inline function 'withType' call
  var array = fillArrayVal(Array(size), false);
  array.$type$ = tmp0;
  // Inline function 'kotlin.js.unsafeCast' call
  return array;
}
function fillArrayVal(array, initValue) {
  var inductionVariable = 0;
  var last = array.length - 1 | 0;
  if (inductionVariable <= last)
    do {
      var i = inductionVariable;
      inductionVariable = inductionVariable + 1 | 0;
      array[i] = initValue;
    }
     while (!(i === last));
  return array;
}
function charArray(size) {
  var tmp0 = 'CharArray';
  // Inline function 'withType' call
  var array = new Uint16Array(size);
  array.$type$ = tmp0;
  // Inline function 'kotlin.js.unsafeCast' call
  return array;
}
function booleanArrayOf(arr) {
  var tmp0 = 'BooleanArray';
  // Inline function 'kotlin.js.asDynamic' call
  // Inline function 'withType' call
  var array = arr.slice();
  array.$type$ = tmp0;
  // Inline function 'kotlin.js.unsafeCast' call
  return array;
}
function charArrayOf(arr) {
  var tmp0 = 'CharArray';
  // Inline function 'withType' call
  var array = new Uint16Array(arr);
  array.$type$ = tmp0;
  // Inline function 'kotlin.js.unsafeCast' call
  return array;
}
function get_buf() {
  _init_properties_bitUtils_kt__nfcg4k();
  return buf;
}
var buf;
function get_bufFloat64() {
  _init_properties_bitUtils_kt__nfcg4k();
  return bufFloat64;
}
var bufFloat64;
var bufFloat32;
function get_bufInt32() {
  _init_properties_bitUtils_kt__nfcg4k();
  return bufInt32;
}
var bufInt32;
function get_lowIndex() {
  _init_properties_bitUtils_kt__nfcg4k();
  return lowIndex;
}
var lowIndex;
function get_highIndex() {
  _init_properties_bitUtils_kt__nfcg4k();
  return highIndex;
}
var highIndex;
function doubleToRawBits(value) {
  _init_properties_bitUtils_kt__nfcg4k();
  get_bufFloat64()[0] = value;
  return longFromTwoInts(get_bufInt32()[get_lowIndex()], get_bufInt32()[get_highIndex()]);
}
function getNumberHashCode(obj) {
  _init_properties_bitUtils_kt__nfcg4k();
  // Inline function 'kotlin.js.jsBitwiseOr' call
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  if ((obj | 0) === obj) {
    return numberToInt(obj);
  }
  get_bufFloat64()[0] = obj;
  return imul_0(get_bufInt32()[get_highIndex()], 31) + get_bufInt32()[get_lowIndex()] | 0;
}
var properties_initialized_bitUtils_kt_i2bo3e;
function _init_properties_bitUtils_kt__nfcg4k() {
  if (!properties_initialized_bitUtils_kt_i2bo3e) {
    properties_initialized_bitUtils_kt_i2bo3e = true;
    buf = new ArrayBuffer(8);
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    bufFloat64 = new Float64Array(get_buf());
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    bufFloat32 = new Float32Array(get_buf());
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    bufInt32 = new Int32Array(get_buf());
    // Inline function 'kotlin.run' call
    get_bufFloat64()[0] = -1.0;
    lowIndex = !(get_bufInt32()[0] === 0) ? 1 : 0;
    highIndex = 1 - get_lowIndex() | 0;
  }
}
function get_ZERO() {
  _init_properties_boxedLong_kt__v24qrw();
  return ZERO;
}
var ZERO;
function get_ONE() {
  _init_properties_boxedLong_kt__v24qrw();
  return ONE;
}
var ONE;
var NEG_ONE;
function get_MAX_VALUE() {
  _init_properties_boxedLong_kt__v24qrw();
  return MAX_VALUE;
}
var MAX_VALUE;
function get_MIN_VALUE() {
  _init_properties_boxedLong_kt__v24qrw();
  return MIN_VALUE;
}
var MIN_VALUE;
function get_TWO_PWR_24_() {
  _init_properties_boxedLong_kt__v24qrw();
  return TWO_PWR_24_;
}
var TWO_PWR_24_;
var longArrayClass;
function compare(_this__u8e3s4, other) {
  _init_properties_boxedLong_kt__v24qrw();
  if (equalsLong(_this__u8e3s4, other)) {
    return 0;
  }
  var thisNeg = isNegative(_this__u8e3s4);
  var otherNeg = isNegative(other);
  return thisNeg && !otherNeg ? -1 : !thisNeg && otherNeg ? 1 : isNegative(subtract(_this__u8e3s4, other)) ? -1 : 1;
}
function toNumber(_this__u8e3s4) {
  _init_properties_boxedLong_kt__v24qrw();
  return highBits(_this__u8e3s4) * 4.294967296E9 + getLowBitsUnsigned(_this__u8e3s4);
}
function toStringImpl(_this__u8e3s4, radix) {
  _init_properties_boxedLong_kt__v24qrw();
  if (isZero(_this__u8e3s4)) {
    return '0';
  }
  if (isNegative(_this__u8e3s4)) {
    if (equalsLong(_this__u8e3s4, get_MIN_VALUE())) {
      var radixLong = fromInt(radix);
      var div = divide(_this__u8e3s4, radixLong);
      var rem = convertToInt(subtract(multiply(div, radixLong), _this__u8e3s4));
      var tmp = toStringImpl(div, radix);
      // Inline function 'kotlin.js.asDynamic' call
      // Inline function 'kotlin.js.unsafeCast' call
      return tmp + rem.toString(radix);
    } else {
      return '-' + toStringImpl(negate(_this__u8e3s4), radix);
    }
  }
  var digitsPerTime = radix === 2 ? 31 : radix <= 10 ? 9 : radix <= 21 ? 7 : radix <= 35 ? 6 : 5;
  var radixToPower = fromNumber(Math.pow(radix, digitsPerTime));
  var rem_0 = _this__u8e3s4;
  var result = '';
  while (true) {
    var remDiv = divide(rem_0, radixToPower);
    var intval = convertToInt(subtract(rem_0, multiply(remDiv, radixToPower)));
    // Inline function 'kotlin.js.asDynamic' call
    // Inline function 'kotlin.js.unsafeCast' call
    var digits = intval.toString(radix);
    rem_0 = remDiv;
    if (isZero(rem_0)) {
      return digits + result;
    } else {
      while (digits.length < digitsPerTime) {
        digits = '0' + digits;
      }
      result = digits + result;
    }
  }
}
function equalsLong(_this__u8e3s4, other) {
  _init_properties_boxedLong_kt__v24qrw();
  return highBits(_this__u8e3s4) === highBits(other) && lowBits(_this__u8e3s4) === lowBits(other);
}
function fromInt(value) {
  _init_properties_boxedLong_kt__v24qrw();
  return longFromTwoInts(value, value < 0 ? -1 : 0);
}
function isNegative(_this__u8e3s4) {
  _init_properties_boxedLong_kt__v24qrw();
  return highBits(_this__u8e3s4) < 0;
}
function subtract(_this__u8e3s4, other) {
  _init_properties_boxedLong_kt__v24qrw();
  return add(_this__u8e3s4, negate_0(other));
}
function getLowBitsUnsigned(_this__u8e3s4) {
  _init_properties_boxedLong_kt__v24qrw();
  return lowBits(_this__u8e3s4) >= 0 ? lowBits(_this__u8e3s4) : 4.294967296E9 + lowBits(_this__u8e3s4);
}
function isZero(_this__u8e3s4) {
  _init_properties_boxedLong_kt__v24qrw();
  return highBits(_this__u8e3s4) === 0 && lowBits(_this__u8e3s4) === 0;
}
function multiply(_this__u8e3s4, other) {
  _init_properties_boxedLong_kt__v24qrw();
  if (isZero(_this__u8e3s4)) {
    return get_ZERO();
  } else if (isZero(other)) {
    return get_ZERO();
  }
  if (equalsLong(_this__u8e3s4, get_MIN_VALUE())) {
    return isOdd(other) ? get_MIN_VALUE() : get_ZERO();
  } else if (equalsLong(other, get_MIN_VALUE())) {
    return isOdd(_this__u8e3s4) ? get_MIN_VALUE() : get_ZERO();
  }
  if (isNegative(_this__u8e3s4)) {
    var tmp;
    if (isNegative(other)) {
      tmp = multiply(negate(_this__u8e3s4), negate(other));
    } else {
      tmp = negate(multiply(negate(_this__u8e3s4), other));
    }
    return tmp;
  } else if (isNegative(other)) {
    return negate(multiply(_this__u8e3s4, negate(other)));
  }
  if (lessThan(_this__u8e3s4, get_TWO_PWR_24_()) && lessThan(other, get_TWO_PWR_24_())) {
    return fromNumber(toNumber(_this__u8e3s4) * toNumber(other));
  }
  var a48 = highBits(_this__u8e3s4) >>> 16 | 0;
  var a32 = highBits(_this__u8e3s4) & 65535;
  var a16 = lowBits(_this__u8e3s4) >>> 16 | 0;
  var a00 = lowBits(_this__u8e3s4) & 65535;
  var b48 = highBits(other) >>> 16 | 0;
  var b32 = highBits(other) & 65535;
  var b16 = lowBits(other) >>> 16 | 0;
  var b00 = lowBits(other) & 65535;
  var c48 = 0;
  var c32 = 0;
  var c16 = 0;
  var c00 = 0;
  c00 = c00 + imul_0(a00, b00) | 0;
  c16 = c16 + (c00 >>> 16 | 0) | 0;
  c00 = c00 & 65535;
  c16 = c16 + imul_0(a16, b00) | 0;
  c32 = c32 + (c16 >>> 16 | 0) | 0;
  c16 = c16 & 65535;
  c16 = c16 + imul_0(a00, b16) | 0;
  c32 = c32 + (c16 >>> 16 | 0) | 0;
  c16 = c16 & 65535;
  c32 = c32 + imul_0(a32, b00) | 0;
  c48 = c48 + (c32 >>> 16 | 0) | 0;
  c32 = c32 & 65535;
  c32 = c32 + imul_0(a16, b16) | 0;
  c48 = c48 + (c32 >>> 16 | 0) | 0;
  c32 = c32 & 65535;
  c32 = c32 + imul_0(a00, b32) | 0;
  c48 = c48 + (c32 >>> 16 | 0) | 0;
  c32 = c32 & 65535;
  c48 = c48 + (((imul_0(a48, b00) + imul_0(a32, b16) | 0) + imul_0(a16, b32) | 0) + imul_0(a00, b48) | 0) | 0;
  c48 = c48 & 65535;
  return longFromTwoInts(c16 << 16 | c00, c48 << 16 | c32);
}
function negate(_this__u8e3s4) {
  _init_properties_boxedLong_kt__v24qrw();
  return add_0(invert(_this__u8e3s4), 1n);
}
function fromNumber(value) {
  _init_properties_boxedLong_kt__v24qrw();
  if (isNaN_0(value)) {
    return get_ZERO();
  } else if (value <= -9.223372036854776E18) {
    return get_MIN_VALUE();
  } else if (value + 1 >= 9.223372036854776E18) {
    return get_MAX_VALUE();
  } else if (value < 0) {
    return negate(fromNumber(-value));
  } else {
    var twoPwr32 = 4.294967296E9;
    // Inline function 'kotlin.js.jsBitwiseOr' call
    var tmp = value % twoPwr32 | 0;
    // Inline function 'kotlin.js.jsBitwiseOr' call
    var tmp$ret$1 = value / twoPwr32 | 0;
    return longFromTwoInts(tmp, tmp$ret$1);
  }
}
function add(_this__u8e3s4, other) {
  _init_properties_boxedLong_kt__v24qrw();
  var a48 = highBits(_this__u8e3s4) >>> 16 | 0;
  var a32 = highBits(_this__u8e3s4) & 65535;
  var a16 = lowBits(_this__u8e3s4) >>> 16 | 0;
  var a00 = lowBits(_this__u8e3s4) & 65535;
  var b48 = highBits(other) >>> 16 | 0;
  var b32 = highBits(other) & 65535;
  var b16 = lowBits(other) >>> 16 | 0;
  var b00 = lowBits(other) & 65535;
  var c48 = 0;
  var c32 = 0;
  var c16 = 0;
  var c00 = 0;
  c00 = c00 + (a00 + b00 | 0) | 0;
  c16 = c16 + (c00 >>> 16 | 0) | 0;
  c00 = c00 & 65535;
  c16 = c16 + (a16 + b16 | 0) | 0;
  c32 = c32 + (c16 >>> 16 | 0) | 0;
  c16 = c16 & 65535;
  c32 = c32 + (a32 + b32 | 0) | 0;
  c48 = c48 + (c32 >>> 16 | 0) | 0;
  c32 = c32 & 65535;
  c48 = c48 + (a48 + b48 | 0) | 0;
  c48 = c48 & 65535;
  return longFromTwoInts(c16 << 16 | c00, c48 << 16 | c32);
}
function isOdd(_this__u8e3s4) {
  _init_properties_boxedLong_kt__v24qrw();
  return (lowBits(_this__u8e3s4) & 1) === 1;
}
function lessThan(_this__u8e3s4, other) {
  _init_properties_boxedLong_kt__v24qrw();
  return compare(_this__u8e3s4, other) < 0;
}
function invert(_this__u8e3s4) {
  _init_properties_boxedLong_kt__v24qrw();
  return longFromTwoInts(~lowBits(_this__u8e3s4), ~highBits(_this__u8e3s4));
}
function longArrayClass$lambda(it) {
  _init_properties_boxedLong_kt__v24qrw();
  return !(it == null) ? isLongArray(it) : false;
}
var properties_initialized_boxedLong_kt_lfwt2;
function _init_properties_boxedLong_kt__v24qrw() {
  if (!properties_initialized_boxedLong_kt_lfwt2) {
    properties_initialized_boxedLong_kt_lfwt2 = true;
    ZERO = fromInt(0);
    ONE = fromInt(1);
    NEG_ONE = fromInt(-1);
    MAX_VALUE = longFromTwoInts(-1, 2147483647);
    MIN_VALUE = longFromTwoInts(0, -2147483648);
    TWO_PWR_24_ = fromInt(16777216);
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp = Array;
    longArrayClass = new PrimitiveKClassImpl(tmp, 'LongArray', longArrayClass$lambda);
  }
}
function charSequenceGet(a, index) {
  var tmp;
  if (isString(a)) {
    tmp = charCodeAt(a, index);
  } else {
    tmp = a.b(index);
  }
  return tmp;
}
function isString(a) {
  return typeof a === 'string';
}
function charCodeAt(_this__u8e3s4, index) {
  // Inline function 'kotlin.js.asDynamic' call
  return _this__u8e3s4.charCodeAt(index);
}
function charSequenceLength(a) {
  var tmp;
  if (isString(a)) {
    // Inline function 'kotlin.js.asDynamic' call
    // Inline function 'kotlin.js.unsafeCast' call
    tmp = a.length;
  } else {
    tmp = a.a();
  }
  return tmp;
}
function charSequenceSubSequence(a, startIndex, endIndex) {
  var tmp;
  if (isString(a)) {
    tmp = substring(a, startIndex, endIndex);
  } else {
    tmp = a.c(startIndex, endIndex);
  }
  return tmp;
}
function contentEqualsInternal(_this__u8e3s4, other) {
  // Inline function 'kotlin.js.asDynamic' call
  var a = _this__u8e3s4;
  // Inline function 'kotlin.js.asDynamic' call
  var b = other;
  if (a === b)
    return true;
  if (a == null || b == null || !isArrayish(b) || a.length != b.length)
    return false;
  var inductionVariable = 0;
  var last = a.length;
  if (inductionVariable < last)
    do {
      var i = inductionVariable;
      inductionVariable = inductionVariable + 1 | 0;
      if (!equals(a[i], b[i])) {
        return false;
      }
    }
     while (inductionVariable < last);
  return true;
}
function contentHashCodeInternal(_this__u8e3s4) {
  // Inline function 'kotlin.js.asDynamic' call
  var a = _this__u8e3s4;
  if (a == null)
    return 0;
  var result = 1;
  var inductionVariable = 0;
  var last = a.length;
  if (inductionVariable < last)
    do {
      var i = inductionVariable;
      inductionVariable = inductionVariable + 1 | 0;
      result = imul_0(result, 31) + hashCode(a[i]) | 0;
    }
     while (inductionVariable < last);
  return result;
}
function arrayToString(array) {
  return joinToString(array, ', ', '[', ']', VOID, VOID, arrayToString$lambda);
}
function arrayToString$lambda(it) {
  return toString_1(it);
}
function createJsReadonlyArrayViewFrom(list) {
  var tmp = createJsReadonlyArrayViewFrom$lambda(list);
  var tmp_0 = createJsReadonlyArrayViewFrom$lambda_0(list);
  // Inline function 'kotlin.js.asDynamic' call
  var tmp_1 = UNSUPPORTED_OPERATION$ref();
  // Inline function 'kotlin.js.asDynamic' call
  var tmp_2 = UNSUPPORTED_OPERATION$ref_0();
  // Inline function 'kotlin.js.asDynamic' call
  var tmp$ret$2 = UNSUPPORTED_OPERATION$ref_1();
  return createJsArrayViewWith(tmp, tmp_0, tmp_1, tmp_2, tmp$ret$2);
}
function createJsArrayViewWith(listSize, listGet, listSet, listDecreaseSize, listIncreaseSize) {
  var arrayView = new Array();
  var tmp = Object;
  // Inline function 'kotlin.js.asDynamic' call
  var tmp$ret$0 = JsArrayView;
  tmp.setPrototypeOf(arrayView, tmp$ret$0.prototype);
  return new Proxy(arrayView, {get: function (target, prop, receiver) {
    if (prop === 'length')
      return listSize();
    var type = typeof prop;
    var index = type === 'string' || type === 'number' ? +prop : undefined;
    if (!isNaN(index))
      return listGet(index);
    return target[prop];
  }, has: function (target, key) {
    return !isNaN(key) && key < listSize();
  }, set: function (obj, prop, value) {
    if (prop === 'length') {
      var size = listSize();
      var newSize = type === 'string' || type === 'number' ? +prop : undefined;
      if (isNaN(newSize))
        throw new RangeError('invalid array length');
      if (newSize < size)
        listDecreaseSize(size - newSize);
      else
        listIncreaseSize(newSize - size);
      return true;
    }
    var type = typeof prop;
    var index = type === 'string' || type === 'number' ? +prop : undefined;
    if (isNaN(index))
      return false;
    listSet(index, value);
    return true;
  }});
}
function UNSUPPORTED_OPERATION() {
  throw UnsupportedOperationException.q3();
}
function createJsReadonlySetViewFrom(set) {
  var tmp = createJsReadonlySetViewFrom$lambda(set);
  // Inline function 'kotlin.js.asDynamic' call
  var tmp_0 = UNSUPPORTED_OPERATION$ref_2();
  // Inline function 'kotlin.js.asDynamic' call
  var tmp_1 = UNSUPPORTED_OPERATION$ref_3();
  // Inline function 'kotlin.js.asDynamic' call
  var tmp_2 = UNSUPPORTED_OPERATION$ref_4();
  var tmp_3 = createJsReadonlySetViewFrom$lambda_0(set);
  var tmp_4 = createJsReadonlySetViewFrom$lambda_1(set);
  var tmp_5 = createJsReadonlySetViewFrom$lambda_2(set);
  return createJsSetViewWith(tmp, tmp_0, tmp_1, tmp_2, tmp_3, tmp_4, tmp_5, createJsReadonlySetViewFrom$lambda_3);
}
function createJsSetViewWith(setSize, setAdd, setRemove, setClear, setContains, valuesIterator, entriesIterator, forEach) {
  // Inline function 'kotlin.also' call
  var this_0 = objectCreate(protoOf(JsSetView));
  this_0[Symbol.iterator] = valuesIterator;
  defineProp(this_0, 'size', setSize, VOID, true);
  var setView = this_0;
  return Object.assign(setView, {add: function (value) {
    setAdd(value);
    return this;
  }, 'delete': setRemove, clear: setClear, has: setContains, keys: valuesIterator, values: valuesIterator, entries: entriesIterator, forEach: function (cb, thisArg) {
    forEach(cb, setView, thisArg);
  }});
}
function createJsIteratorFrom(iterator, transform) {
  var tmp;
  if (transform === VOID) {
    tmp = createJsIteratorFrom$lambda;
  } else {
    tmp = transform;
  }
  transform = tmp;
  var iteratorNext = createJsIteratorFrom$lambda_0(iterator);
  var iteratorHasNext = createJsIteratorFrom$lambda_1(iterator);
  var jsIterator = {next: function () {
    var result = {done: !iteratorHasNext()};
    if (!result.done)
      result.value = transform(iteratorNext());
    return result;
  }};
  jsIterator[Symbol.iterator] = function () {
    return this;
  };
  return jsIterator;
}
function forEach(cb, collection, thisArg) {
  thisArg = thisArg === VOID ? undefined : thisArg;
  var iterator = collection.entries();
  var result = iterator.next();
  while (!result.done) {
    var value = result.value;
    // Inline function 'kotlin.js.asDynamic' call
    cb.call(thisArg, value[1], value[0], collection);
    result = iterator.next();
  }
}
function createListFrom(array) {
  // Inline function 'kotlin.js.asDynamic' call
  // Inline function 'kotlin.js.unsafeCast' call
  var tmp$ret$1 = array.slice();
  return ArrayList.r3(tmp$ret$1).s3();
}
function createSetFrom(set) {
  // Inline function 'kotlin.collections.buildSetInternal' call
  // Inline function 'kotlin.apply' call
  var this_0 = LinkedHashSet.m1();
  forEach(createSetFrom$lambda(this_0), set);
  return this_0.s3();
}
function createJsReadonlyArrayViewFrom$lambda($list) {
  return () => $list.k1();
}
function createJsReadonlyArrayViewFrom$lambda_0($list) {
  return (i) => $list.l1(i);
}
function UNSUPPORTED_OPERATION$ref() {
  var l = () => {
    UNSUPPORTED_OPERATION();
    return Unit_instance;
  };
  l.callableName = 'UNSUPPORTED_OPERATION';
  return l;
}
function UNSUPPORTED_OPERATION$ref_0() {
  var l = () => {
    UNSUPPORTED_OPERATION();
    return Unit_instance;
  };
  l.callableName = 'UNSUPPORTED_OPERATION';
  return l;
}
function UNSUPPORTED_OPERATION$ref_1() {
  var l = () => {
    UNSUPPORTED_OPERATION();
    return Unit_instance;
  };
  l.callableName = 'UNSUPPORTED_OPERATION';
  return l;
}
function createJsReadonlySetViewFrom$lambda($set) {
  return () => $set.k1();
}
function UNSUPPORTED_OPERATION$ref_2() {
  var l = () => {
    UNSUPPORTED_OPERATION();
    return Unit_instance;
  };
  l.callableName = 'UNSUPPORTED_OPERATION';
  return l;
}
function UNSUPPORTED_OPERATION$ref_3() {
  var l = () => {
    UNSUPPORTED_OPERATION();
    return Unit_instance;
  };
  l.callableName = 'UNSUPPORTED_OPERATION';
  return l;
}
function UNSUPPORTED_OPERATION$ref_4() {
  var l = () => {
    UNSUPPORTED_OPERATION();
    return Unit_instance;
  };
  l.callableName = 'UNSUPPORTED_OPERATION';
  return l;
}
function createJsReadonlySetViewFrom$lambda_0($set) {
  return (v) => $set.q2(v);
}
function createJsReadonlySetViewFrom$lambda_1($set) {
  return () => createJsIteratorFrom($set.h1());
}
function createJsReadonlySetViewFrom$lambda$lambda(it) {
  // Inline function 'kotlin.arrayOf' call
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  return [it, it];
}
function createJsReadonlySetViewFrom$lambda_2($set) {
  return () => {
    var tmp = $set.h1();
    return createJsIteratorFrom(tmp, createJsReadonlySetViewFrom$lambda$lambda);
  };
}
function createJsReadonlySetViewFrom$lambda_3(callback, set, thisArg) {
  forEach(callback, set, thisArg);
  return Unit_instance;
}
function createJsIteratorFrom$lambda(it) {
  return it;
}
function createJsIteratorFrom$lambda_0($iterator) {
  return () => $iterator.j1();
}
function createJsIteratorFrom$lambda_1($iterator) {
  return () => $iterator.i1();
}
function createSetFrom$lambda($$this$buildSetInternal) {
  return (_unused_var__etf5q3, value, _unused_var__etf5q3_0) => {
    $$this$buildSetInternal.c1(value);
    return Unit_instance;
  };
}
function compareTo(a, b) {
  var tmp;
  switch (typeof a) {
    case 'number':
      var tmp_0;
      if (typeof b === 'number') {
        tmp_0 = doubleCompareTo(a, b);
      } else {
        if (!(b == null) ? typeof b === 'bigint' : false) {
          tmp_0 = doubleCompareTo(a, toNumber_0(b));
        } else {
          tmp_0 = primitiveCompareTo(a, b);
        }
      }

      tmp = tmp_0;
      break;
    case 'string':
    case 'boolean':
    case 'bigint':
      tmp = primitiveCompareTo(a, b);
      break;
    default:
      tmp = compareToDoNotIntrinsicify(a, b);
      break;
  }
  return tmp;
}
function doubleCompareTo(a, b) {
  var tmp;
  if (a < b) {
    tmp = -1;
  } else if (a > b) {
    tmp = 1;
  } else if (a === b) {
    var tmp_0;
    if (a !== 0) {
      tmp_0 = 0;
    } else {
      // Inline function 'kotlin.js.asDynamic' call
      var ia = 1 / a;
      var tmp_1;
      // Inline function 'kotlin.js.asDynamic' call
      if (ia === 1 / b) {
        tmp_1 = 0;
      } else {
        if (ia < 0) {
          tmp_1 = -1;
        } else {
          tmp_1 = 1;
        }
      }
      tmp_0 = tmp_1;
    }
    tmp = tmp_0;
  } else if (a !== a) {
    tmp = b !== b ? 0 : 1;
  } else {
    tmp = -1;
  }
  return tmp;
}
function primitiveCompareTo(a, b) {
  return a < b ? -1 : a > b ? 1 : 0;
}
function compareToDoNotIntrinsicify(a, b) {
  return a.d(b);
}
function identityHashCode(obj) {
  return getObjectHashCode(obj);
}
function getObjectHashCode(obj) {
  // Inline function 'kotlin.js.jsIn' call
  if (!('kotlinHashCodeValue$' in obj)) {
    var hash = calculateRandomHash();
    var descriptor = new Object();
    descriptor.value = hash;
    descriptor.enumerable = false;
    Object.defineProperty(obj, 'kotlinHashCodeValue$', descriptor);
  }
  // Inline function 'kotlin.js.unsafeCast' call
  return obj['kotlinHashCodeValue$'];
}
function calculateRandomHash() {
  // Inline function 'kotlin.js.jsBitwiseOr' call
  return Math.random() * 4.294967296E9 | 0;
}
function objectCreate(proto) {
  proto = proto === VOID ? null : proto;
  return Object.create(proto);
}
function defineProp(obj, name, getter, setter, enumerable) {
  return Object.defineProperty(obj, name, {configurable: true, get: getter, set: setter, enumerable: enumerable});
}
function equals(obj1, obj2) {
  if (obj1 == null) {
    return obj2 == null;
  }
  if (obj2 == null) {
    return false;
  }
  if (typeof obj1 === 'object' && typeof obj1.equals === 'function') {
    return obj1.equals(obj2);
  }
  if (obj1 !== obj1) {
    return obj2 !== obj2;
  }
  if (typeof obj1 === 'number' && typeof obj2 === 'number') {
    var tmp;
    if (obj1 === obj2) {
      var tmp_0;
      if (obj1 !== 0) {
        tmp_0 = true;
      } else {
        // Inline function 'kotlin.js.asDynamic' call
        var tmp_1 = 1 / obj1;
        // Inline function 'kotlin.js.asDynamic' call
        tmp_0 = tmp_1 === 1 / obj2;
      }
      tmp = tmp_0;
    } else {
      tmp = false;
    }
    return tmp;
  }
  return obj1 === obj2;
}
function hashCode(obj) {
  if (obj == null)
    return 0;
  var typeOf = typeof obj;
  var tmp;
  switch (typeOf) {
    case 'object':
      tmp = 'function' === typeof obj.hashCode ? obj.hashCode() : getObjectHashCode(obj);
      break;
    case 'function':
      tmp = getObjectHashCode(obj);
      break;
    case 'number':
      tmp = getNumberHashCode(obj);
      break;
    case 'boolean':
      // Inline function 'kotlin.js.unsafeCast' call

      tmp = getBooleanHashCode(obj);
      break;
    case 'string':
      tmp = getStringHashCode(String(obj));
      break;
    case 'bigint':
      // Inline function 'kotlin.js.unsafeCast' call

      tmp = getBigIntHashCode(obj);
      break;
    case 'symbol':
      tmp = getSymbolHashCode(obj);
      break;
    default:
      tmp = function () {
        throw new Error('Unexpected typeof `' + typeOf + '`');
      }();
      break;
  }
  return tmp;
}
function toString_1(o) {
  var tmp;
  if (o == null) {
    tmp = 'null';
  } else if (isArrayish(o)) {
    tmp = '[...]';
  } else if (!(typeof o.toString === 'function')) {
    tmp = anyToString(o);
  } else {
    // Inline function 'kotlin.js.unsafeCast' call
    tmp = o.toString();
  }
  return tmp;
}
function getBooleanHashCode(value) {
  return value ? 1231 : 1237;
}
function getStringHashCode(str) {
  var hash = 0;
  var length = str.length;
  var inductionVariable = 0;
  var last = length - 1 | 0;
  if (inductionVariable <= last)
    do {
      var i = inductionVariable;
      inductionVariable = inductionVariable + 1 | 0;
      // Inline function 'kotlin.js.asDynamic' call
      var code = str.charCodeAt(i);
      hash = imul_0(hash, 31) + code | 0;
    }
     while (!(i === last));
  return hash;
}
function getBigIntHashCode(value) {
  var shiftNumber = BigInt(32);
  var mask = BigInt(4.294967295E9);
  var bigNumber = abs(value);
  var hashCode = 0;
  var tmp;
  // Inline function 'kotlin.js.internal.isNegative' call
  if (value < 0) {
    tmp = -1;
  } else {
    tmp = 1;
  }
  var signum = tmp;
  $l$loop: while (true) {
    // Inline function 'kotlin.js.internal.isZero' call
    if (!!(bigNumber == 0)) {
      break $l$loop;
    }
    // Inline function 'kotlin.js.internal.and' call
    // Inline function 'kotlin.js.jsBitwiseAnd' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    // Inline function 'kotlin.js.internal.toNumber' call
    var self_0 = bigNumber & mask;
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var chunk = Number(self_0);
    hashCode = imul_0(31, hashCode) + chunk | 0;
    // Inline function 'kotlin.js.internal.shr' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    bigNumber = bigNumber >> shiftNumber;
  }
  return imul_0(hashCode, signum);
}
function getSymbolHashCode(value) {
  var hashCodeMap = symbolIsSharable(value) ? getSymbolMap() : getSymbolWeakMap();
  var cachedHashCode = hashCodeMap.get(value);
  if (cachedHashCode !== VOID)
    return cachedHashCode;
  var hash = calculateRandomHash();
  hashCodeMap.set(value, hash);
  return hash;
}
function anyToString(o) {
  return Object.prototype.toString.call(o);
}
function symbolIsSharable(symbol) {
  return Symbol.keyFor(symbol) != VOID;
}
function getSymbolMap() {
  if (symbolMap === VOID) {
    symbolMap = new Map();
  }
  return symbolMap;
}
function getSymbolWeakMap() {
  if (symbolWeakMap === VOID) {
    symbolWeakMap = new WeakMap();
  }
  return symbolWeakMap;
}
var symbolMap;
var symbolWeakMap;
function boxIntrinsic(x) {
  var message = 'Should be lowered';
  throw IllegalStateException.w3(toString_1(message));
}
function unboxIntrinsic(x) {
  var message = 'Should be lowered';
  throw IllegalStateException.w3(toString_1(message));
}
function captureStack(instance, constructorFunction) {
  if (Error.captureStackTrace != null) {
    Error.captureStackTrace(instance, constructorFunction);
  } else {
    // Inline function 'kotlin.js.asDynamic' call
    instance.stack = (new Error()).stack;
  }
}
function protoOf(constructor) {
  return constructor.prototype;
}
function createThis(ctor, box) {
  var self_0 = Object.create(ctor.prototype);
  boxApply(self_0, box);
  return self_0;
}
function boxApply(self_0, box) {
  if (box !== VOID) {
    Object.assign(self_0, box);
  }
}
function createExternalThis(ctor, superExternalCtor, parameters, box) {
  var tmp;
  if (box === VOID) {
    tmp = ctor;
  } else {
    var newCtor = class  extends ctor {}
    Object.assign(newCtor.prototype, box);
    newCtor.constructor = ctor;
    tmp = newCtor;
  }
  var selfCtor = tmp;
  return Reflect.construct(superExternalCtor, parameters, selfCtor);
}
function isUndefined(value) {
  return value === VOID;
}
function setupCauseParameter(cause) {
  return {cause: cause};
}
function setPropertiesToThrowableInstance(this_, message, cause) {
  this_.name = Object.getPrototypeOf(this_).constructor.name;
  if (message == null) {
    var tmp;
    if (isUndefined(message)) {
      var tmp1_elvis_lhs = cause == null ? null : cause.toString();
      tmp = tmp1_elvis_lhs == null ? VOID : tmp1_elvis_lhs;
    } else {
      tmp = VOID;
    }
    this_.message = tmp;
  }
}
function ensureNotNull(v) {
  var tmp;
  if (v == null) {
    THROW_NPE();
  } else {
    tmp = v;
  }
  return tmp;
}
function THROW_NPE() {
  throw NullPointerException.a4();
}
function noWhenBranchMatchedException() {
  throw NoWhenBranchMatchedException.e4();
}
function THROW_CCE() {
  throw ClassCastException.i4();
}
function throwKotlinNothingValueException() {
  throw KotlinNothingValueException.z1();
}
function THROW_IAE(msg) {
  throw IllegalArgumentException.w(msg);
}
function get_longArrayClass() {
  _init_properties_longAsBigInt_kt__j3nkxv();
  return longArrayClass_0;
}
var longArrayClass_0;
function negate_0(_this__u8e3s4) {
  _init_properties_longAsBigInt_kt__j3nkxv();
  var tmp = BigInt;
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  // Inline function 'kotlin.js.internal.unaryMinus' call
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  var tmp$ret$4 = -_this__u8e3s4;
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  return tmp.asIntN(64, tmp$ret$4);
}
function add_0(_this__u8e3s4, other) {
  _init_properties_longAsBigInt_kt__j3nkxv();
  // Inline function 'kotlin.js.internal.longAsBigInt.wrappingArithmetic' call
  var tmp = BigInt;
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  // Inline function 'kotlin.js.internal.plus' call
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  var tmp$ret$7 = _this__u8e3s4 + other;
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  return tmp.asIntN(64, tmp$ret$7);
}
function subtract_0(_this__u8e3s4, other) {
  _init_properties_longAsBigInt_kt__j3nkxv();
  // Inline function 'kotlin.js.internal.longAsBigInt.wrappingArithmetic' call
  var tmp = BigInt;
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  // Inline function 'kotlin.js.internal.minus' call
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  var tmp$ret$7 = _this__u8e3s4 - other;
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  return tmp.asIntN(64, tmp$ret$7);
}
function multiply_0(_this__u8e3s4, other) {
  _init_properties_longAsBigInt_kt__j3nkxv();
  // Inline function 'kotlin.js.internal.longAsBigInt.wrappingArithmetic' call
  var tmp = BigInt;
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  // Inline function 'kotlin.js.internal.times' call
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  var tmp$ret$7 = _this__u8e3s4 * other;
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  return tmp.asIntN(64, tmp$ret$7);
}
function divide(_this__u8e3s4, other) {
  _init_properties_longAsBigInt_kt__j3nkxv();
  // Inline function 'kotlin.js.internal.longAsBigInt.wrappingArithmetic' call
  var tmp = BigInt;
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  // Inline function 'kotlin.js.internal.div' call
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  var tmp$ret$7 = _this__u8e3s4 / other;
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  return tmp.asIntN(64, tmp$ret$7);
}
function modulo(_this__u8e3s4, other) {
  _init_properties_longAsBigInt_kt__j3nkxv();
  // Inline function 'kotlin.js.internal.longAsBigInt.wrappingArithmetic' call
  var tmp = BigInt;
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  // Inline function 'kotlin.js.internal.rem' call
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  var tmp$ret$7 = _this__u8e3s4 % other;
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  return tmp.asIntN(64, tmp$ret$7);
}
function shiftLeft(_this__u8e3s4, numBits) {
  _init_properties_longAsBigInt_kt__j3nkxv();
  // Inline function 'kotlin.js.internal.longAsBigInt.wrappingArithmetic' call
  var tmp = BigInt;
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  // Inline function 'kotlin.js.internal.shl' call
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  var tmp$ret$7 = _this__u8e3s4 << fromInt_0(sanitizeBitShiftRHS(numBits));
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  return tmp.asIntN(64, tmp$ret$7);
}
function sanitizeBitShiftRHS(numBits) {
  _init_properties_longAsBigInt_kt__j3nkxv();
  return numBits & 63;
}
function shiftRight(_this__u8e3s4, numBits) {
  _init_properties_longAsBigInt_kt__j3nkxv();
  // Inline function 'kotlin.js.internal.longAsBigInt.wrappingArithmetic' call
  var tmp = BigInt;
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  // Inline function 'kotlin.js.internal.shr' call
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  var tmp$ret$7 = _this__u8e3s4 >> fromInt_0(sanitizeBitShiftRHS(numBits));
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  return tmp.asIntN(64, tmp$ret$7);
}
function shiftRightUnsigned(_this__u8e3s4, numBits) {
  _init_properties_longAsBigInt_kt__j3nkxv();
  // Inline function 'kotlin.js.internal.longAsBigInt.wrappingArithmetic' call
  var tmp = BigInt;
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  var rhs = fromInt_0(sanitizeBitShiftRHS(numBits));
  // Inline function 'kotlin.js.internal.shr' call
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  var tmp$ret$7 = BigInt.asUintN(64, _this__u8e3s4) >> rhs;
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  return tmp.asIntN(64, tmp$ret$7);
}
function numberToLong(value) {
  _init_properties_longAsBigInt_kt__j3nkxv();
  var tmp0_elvis_lhs = (!(value == null) ? typeof value === 'bigint' : false) ? value : null;
  var tmp;
  if (tmp0_elvis_lhs == null) {
    // Inline function 'kotlin.js.unsafeCast' call
    tmp = fromNumber_0(value);
  } else {
    tmp = tmp0_elvis_lhs;
  }
  return tmp;
}
function fromNumber_0(value) {
  _init_properties_longAsBigInt_kt__j3nkxv();
  var tmp;
  if (isNaN_0(value)) {
    tmp = 0n;
  } else if (value <= -9.223372036854776E18) {
    tmp = -9223372036854775808n;
  } else if (value + 1 >= 9.223372036854776E18) {
    tmp = 9223372036854775807n;
  } else {
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    tmp = BigInt(trunc(value));
  }
  return tmp;
}
function fromInt_0(value) {
  _init_properties_longAsBigInt_kt__j3nkxv();
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  return BigInt(value);
}
function convertToByte(_this__u8e3s4) {
  _init_properties_longAsBigInt_kt__j3nkxv();
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  return truncating(_this__u8e3s4, 8);
}
function truncating(_this__u8e3s4, bitSize) {
  _init_properties_longAsBigInt_kt__j3nkxv();
  var tmp = BigInt;
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  // Inline function 'kotlin.js.internal.toNumber' call
  var self_0 = tmp.asIntN(bitSize, _this__u8e3s4);
  // Inline function 'kotlin.js.unsafeCast' call
  return Number(self_0);
}
function toNumber_0(_this__u8e3s4) {
  _init_properties_longAsBigInt_kt__j3nkxv();
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  // Inline function 'kotlin.js.internal.toNumber' call
  var self_0 = _this__u8e3s4;
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  return Number(self_0);
}
function convertToShort(_this__u8e3s4) {
  _init_properties_longAsBigInt_kt__j3nkxv();
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  return truncating(_this__u8e3s4, 16);
}
function convertToInt(_this__u8e3s4) {
  _init_properties_longAsBigInt_kt__j3nkxv();
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  return truncating(_this__u8e3s4, 32);
}
function longFromTwoInts(low, high) {
  _init_properties_longAsBigInt_kt__j3nkxv();
  return shiftLeft(fromInt_0(high), 32) | fromInt_0(low) & 4294967295n;
}
function lowBits(_this__u8e3s4) {
  _init_properties_longAsBigInt_kt__j3nkxv();
  return convertToInt(_this__u8e3s4);
}
function highBits(_this__u8e3s4) {
  _init_properties_longAsBigInt_kt__j3nkxv();
  return convertToInt(shiftRight(_this__u8e3s4, 32));
}
function isLongArray(a) {
  _init_properties_longAsBigInt_kt__j3nkxv();
  // Inline function 'kotlin.js.jsInstanceOf' call
  return a instanceof BigInt64Array;
}
function toStringImpl_0(_this__u8e3s4, radix) {
  _init_properties_longAsBigInt_kt__j3nkxv();
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  return _this__u8e3s4.toString(radix);
}
function longArrayClass$lambda_0(it) {
  _init_properties_longAsBigInt_kt__j3nkxv();
  return !(it == null) ? isLongArray(it) : false;
}
var properties_initialized_longAsBigInt_kt_s7aby9;
function _init_properties_longAsBigInt_kt__j3nkxv() {
  if (!properties_initialized_longAsBigInt_kt_s7aby9) {
    properties_initialized_longAsBigInt_kt_s7aby9 = true;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp = BigInt64Array;
    longArrayClass_0 = new PrimitiveKClassImpl(tmp, 'LongArray', longArrayClass$lambda_0);
  }
}
function createMetadata(kind, name, defaultConstructor, associatedObjectKey, associatedObjects, suspendArity) {
  var undef = VOID;
  var iid = kind === 'interface' ? generateInterfaceId() : VOID;
  return {kind: kind, simpleName: name, associatedObjectKey: associatedObjectKey, associatedObjects: associatedObjects, suspendArity: suspendArity, $kClass$: undef, defaultConstructor: defaultConstructor, iid: iid};
}
function generateInterfaceId() {
  if (globalInterfaceId === VOID) {
    globalInterfaceId = 0;
  }
  // Inline function 'kotlin.js.unsafeCast' call
  globalInterfaceId = globalInterfaceId + 1 | 0;
  // Inline function 'kotlin.js.unsafeCast' call
  return globalInterfaceId;
}
var globalInterfaceId;
function initMetadataForClass(ctor, name, defaultConstructor, parent, interfaces, suspendArity, associatedObjectKey, associatedObjects) {
  var kind = 'class';
  initMetadataFor(kind, ctor, name, defaultConstructor, parent, interfaces, suspendArity, associatedObjectKey, associatedObjects);
}
function initMetadataFor(kind, ctor, name, defaultConstructor, parent, interfaces, suspendArity, associatedObjectKey, associatedObjects) {
  if (!(parent == null)) {
    ctor.prototype = Object.create(parent.prototype);
    ctor.prototype.constructor = ctor;
  }
  var metadata = createMetadata(kind, name, defaultConstructor, associatedObjectKey, associatedObjects, suspendArity);
  ctor.$metadata$ = metadata;
  if (!(interfaces == null)) {
    var receiver = !equals(metadata.iid, VOID) ? ctor : ctor.prototype;
    receiver.$imask$ = implement(interfaces);
  }
}
function initMetadataForObject(ctor, name, defaultConstructor, parent, interfaces, suspendArity, associatedObjectKey, associatedObjects) {
  var kind = 'object';
  initMetadataFor(kind, ctor, name, defaultConstructor, parent, interfaces, suspendArity, associatedObjectKey, associatedObjects);
}
function initMetadataForInterface(ctor, name, defaultConstructor, parent, interfaces, suspendArity, associatedObjectKey, associatedObjects) {
  var kind = 'interface';
  initMetadataFor(kind, ctor, name, defaultConstructor, parent, interfaces, suspendArity, associatedObjectKey, associatedObjects);
}
function initMetadataForLambda(ctor, parent, interfaces, suspendArity) {
  initMetadataForClass(ctor, 'Lambda', VOID, parent, interfaces, suspendArity, VOID, VOID);
}
function initMetadataForCoroutine(ctor, parent, interfaces, suspendArity) {
  initMetadataForClass(ctor, 'Coroutine', VOID, parent, interfaces, suspendArity, VOID, VOID);
}
function initMetadataForFunctionReference(ctor, parent, interfaces, suspendArity) {
  initMetadataForClass(ctor, 'FunctionReference', VOID, parent, interfaces, suspendArity, VOID, VOID);
}
function initMetadataForCompanion(ctor, parent, interfaces, suspendArity) {
  initMetadataForObject(ctor, 'Companion', VOID, parent, interfaces, suspendArity, VOID, VOID);
}
function taggedArrayCopy(array) {
  var res = array.slice();
  res.$type$ = array.$type$;
  // Inline function 'kotlin.js.unsafeCast' call
  return res;
}
function toByte(a) {
  // Inline function 'kotlin.js.unsafeCast' call
  return a << 24 >> 24;
}
function numberToInt(a) {
  var tmp;
  if (!(a == null) ? typeof a === 'bigint' : false) {
    tmp = convertToInt(a);
  } else {
    tmp = doubleToInt(a);
  }
  return tmp;
}
function doubleToInt(a) {
  var tmp;
  if (a > 2147483647) {
    tmp = 2147483647;
  } else if (a < -2147483648) {
    tmp = -2147483648;
  } else {
    // Inline function 'kotlin.js.jsBitwiseOr' call
    tmp = a | 0;
  }
  return tmp;
}
function numberToDouble(a) {
  // Inline function 'kotlin.js.unsafeCast' call
  return Number(a);
}
function toShort(a) {
  // Inline function 'kotlin.js.unsafeCast' call
  return a << 16 >> 16;
}
function numberToChar(a) {
  // Inline function 'kotlin.toUShort' call
  var this_0 = numberToInt(a);
  var tmp$ret$0 = _UShort___init__impl__jigrne(toShort(this_0));
  return _Char___init__impl__6a9atx_0(tmp$ret$0);
}
function numberRangeToNumber(start, endInclusive) {
  return new IntRange(start, endInclusive);
}
function get_propertyRefClassMetadataCache() {
  _init_properties_reflectRuntime_kt__5r4uu3();
  return propertyRefClassMetadataCache;
}
var propertyRefClassMetadataCache;
function metadataObject() {
  _init_properties_reflectRuntime_kt__5r4uu3();
  return createMetadata('class', VOID, VOID, VOID, VOID, VOID);
}
function getPropertyCallableRef(name, paramCount, superType, getter, setter, linkageError) {
  _init_properties_reflectRuntime_kt__5r4uu3();
  getter.get = getter;
  getter.set = setter;
  if (!(linkageError == null)) {
    throwLinkageErrorInCallableName(getter, linkageError);
  } else {
    getter.callableName = name;
  }
  // Inline function 'kotlin.js.unsafeCast' call
  return getPropertyRefClass(getter, getKPropMetadata(paramCount, setter), getInterfaceMaskFor(getter, superType));
}
function throwLinkageErrorInCallableName(function_0, linkageError) {
  _init_properties_reflectRuntime_kt__5r4uu3();
  defineProp(function_0, 'callableName', throwLinkageErrorInCallableName$lambda(linkageError), VOID, true);
}
function getPropertyRefClass(obj, metadata, imask) {
  _init_properties_reflectRuntime_kt__5r4uu3();
  obj.$metadata$ = metadata;
  obj.constructor = obj;
  obj.$imask$ = imask;
  return obj;
}
function getKPropMetadata(paramCount, setter) {
  _init_properties_reflectRuntime_kt__5r4uu3();
  return get_propertyRefClassMetadataCache()[paramCount][setter == null ? 0 : 1];
}
function getInterfaceMaskFor(obj, superType) {
  _init_properties_reflectRuntime_kt__5r4uu3();
  var tmp0_elvis_lhs = obj.$imask$;
  var tmp;
  if (tmp0_elvis_lhs == null) {
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var tmp$ret$2 = [superType];
    tmp = implement(tmp$ret$2);
  } else {
    tmp = tmp0_elvis_lhs;
  }
  return tmp;
}
function throwLinkageErrorInCallableName$lambda($linkageError) {
  return () => {
    throwIrLinkageError($linkageError);
  };
}
var properties_initialized_reflectRuntime_kt_inkhwd;
function _init_properties_reflectRuntime_kt__5r4uu3() {
  if (!properties_initialized_reflectRuntime_kt_inkhwd) {
    properties_initialized_reflectRuntime_kt_inkhwd = true;
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var tmp = [metadataObject(), metadataObject()];
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var tmp_0 = [metadataObject(), metadataObject()];
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    propertyRefClassMetadataCache = [tmp, tmp_0, [metadataObject(), metadataObject()]];
  }
}
function isArrayish(o) {
  return isJsArray(o) || isView(o);
}
function isJsArray(obj) {
  // Inline function 'kotlin.js.unsafeCast' call
  return Array.isArray(obj);
}
function isInterface(obj, iface) {
  return isInterfaceImpl(obj, iface.$metadata$.iid);
}
function isInterfaceImpl(obj, iface) {
  // Inline function 'kotlin.js.unsafeCast' call
  var tmp0_elvis_lhs = obj.$imask$;
  var tmp;
  if (tmp0_elvis_lhs == null) {
    return false;
  } else {
    tmp = tmp0_elvis_lhs;
  }
  var mask = tmp;
  return isBitSet(mask, iface);
}
function isArray(obj) {
  var tmp;
  if (isJsArray(obj)) {
    // Inline function 'kotlin.js.asDynamic' call
    tmp = !obj.$type$;
  } else {
    tmp = false;
  }
  return tmp;
}
function isNumber(a) {
  var tmp;
  if (typeof a === 'number') {
    tmp = true;
  } else {
    tmp = !(a == null) ? typeof a === 'bigint' : false;
  }
  return tmp;
}
function isComparable(value) {
  var type = typeof value;
  return type === 'string' || type === 'boolean' || isNumber(value) || isInterface(value, Comparable);
}
function isCharSequence(value) {
  return typeof value === 'string' || isInterface(value, CharSequence);
}
function isBooleanArray(a) {
  return isJsArray(a) && a.$type$ === 'BooleanArray';
}
function isByteArray(a) {
  // Inline function 'kotlin.js.jsInstanceOf' call
  return a instanceof Int8Array;
}
function isShortArray(a) {
  // Inline function 'kotlin.js.jsInstanceOf' call
  return a instanceof Int16Array;
}
function isCharArray(a) {
  var tmp;
  // Inline function 'kotlin.js.jsInstanceOf' call
  if (a instanceof Uint16Array) {
    tmp = a.$type$ === 'CharArray';
  } else {
    tmp = false;
  }
  return tmp;
}
function isIntArray(a) {
  // Inline function 'kotlin.js.jsInstanceOf' call
  return a instanceof Int32Array;
}
function isFloatArray(a) {
  // Inline function 'kotlin.js.jsInstanceOf' call
  return a instanceof Float32Array;
}
function isDoubleArray(a) {
  // Inline function 'kotlin.js.jsInstanceOf' call
  return a instanceof Float64Array;
}
function get_VOID() {
  _init_properties_void_kt__3zg9as();
  return VOID;
}
var VOID;
var properties_initialized_void_kt_e4ret2;
function _init_properties_void_kt__3zg9as() {
  if (!properties_initialized_void_kt_e4ret2) {
    properties_initialized_void_kt_e4ret2 = true;
    VOID = void 0;
  }
}
function asList(_this__u8e3s4) {
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  return ArrayList.r3(_this__u8e3s4);
}
function contentEquals(_this__u8e3s4, other) {
  return contentEqualsInternal(_this__u8e3s4, other);
}
function contentHashCode(_this__u8e3s4) {
  return contentHashCodeInternal(_this__u8e3s4);
}
function contentToString(_this__u8e3s4) {
  var tmp1_elvis_lhs = _this__u8e3s4 == null ? null : joinToString(_this__u8e3s4, ', ', '[', ']');
  return tmp1_elvis_lhs == null ? 'null' : tmp1_elvis_lhs;
}
function contentEquals_0(_this__u8e3s4, other) {
  return contentEqualsInternal(_this__u8e3s4, other);
}
function contentHashCode_0(_this__u8e3s4) {
  return contentHashCodeInternal(_this__u8e3s4);
}
function contentToString_0(_this__u8e3s4) {
  var tmp1_elvis_lhs = _this__u8e3s4 == null ? null : joinToString_0(_this__u8e3s4, ', ', '[', ']');
  return tmp1_elvis_lhs == null ? 'null' : tmp1_elvis_lhs;
}
function sortWith(_this__u8e3s4, comparator) {
  if (_this__u8e3s4.length > 1) {
    sortArrayWith(_this__u8e3s4, comparator);
  }
}
function copyOfRange(_this__u8e3s4, fromIndex, toIndex) {
  Companion_instance_6.k4(fromIndex, toIndex, _this__u8e3s4.length);
  // Inline function 'kotlin.js.asDynamic' call
  return _this__u8e3s4.slice(fromIndex, toIndex);
}
function copyOfRange_0(_this__u8e3s4, fromIndex, toIndex) {
  Companion_instance_6.k4(fromIndex, toIndex, _this__u8e3s4.length);
  // Inline function 'kotlin.js.asDynamic' call
  return _this__u8e3s4.slice(fromIndex, toIndex);
}
function copyOf(_this__u8e3s4, newSize) {
  // Inline function 'kotlin.require' call
  if (!(newSize >= 0)) {
    var message = 'Invalid new array size: ' + newSize + '.';
    throw IllegalArgumentException.w(toString_1(message));
  }
  return fillFrom(_this__u8e3s4, new Int32Array(newSize));
}
function copyOf_0(_this__u8e3s4, newSize) {
  // Inline function 'kotlin.require' call
  if (!(newSize >= 0)) {
    var message = 'Invalid new array size: ' + newSize + '.';
    throw IllegalArgumentException.w(toString_1(message));
  }
  return arrayCopyResize(_this__u8e3s4, newSize, null);
}
function toTypedArray(_this__u8e3s4) {
  return [].slice.call(_this__u8e3s4);
}
function decodeVarLenBase64(base64, fromBase64, resultLength) {
  var result = new Int32Array(resultLength);
  var index = 0;
  var int = 0;
  var shift = 0;
  var inductionVariable = 0;
  var last = base64.length;
  while (inductionVariable < last) {
    var char = charCodeAt(base64, inductionVariable);
    inductionVariable = inductionVariable + 1 | 0;
    // Inline function 'kotlin.code' call
    var sixBit = fromBase64[Char__toInt_impl_vasixd(char)];
    int = int | (sixBit & 31) << shift;
    if (sixBit < 32) {
      var _unary__edvuaz = index;
      index = _unary__edvuaz + 1 | 0;
      result[_unary__edvuaz] = int;
      int = 0;
      shift = 0;
    } else {
      shift = shift + 5 | 0;
    }
  }
  return result;
}
function digitToIntImpl(_this__u8e3s4) {
  // Inline function 'kotlin.code' call
  var ch = Char__toInt_impl_vasixd(_this__u8e3s4);
  var index = binarySearchRange(Digit_getInstance().l4_1, ch);
  var diff = ch - Digit_getInstance().l4_1[index] | 0;
  return diff < 10 ? diff : -1;
}
function binarySearchRange(array, needle) {
  var bottom = 0;
  var top = array.length - 1 | 0;
  var middle = -1;
  var value = 0;
  while (bottom <= top) {
    middle = (bottom + top | 0) / 2 | 0;
    value = array[middle];
    if (needle > value)
      bottom = middle + 1 | 0;
    else if (needle === value)
      return middle;
    else
      top = middle - 1 | 0;
  }
  return middle - (needle < value ? 1 : 0) | 0;
}
var Digit_instance;
function Digit_getInstance() {
  if (Digit_instance === VOID)
    new Digit();
  return Digit_instance;
}
function isLetterImpl(_this__u8e3s4) {
  return !(getLetterType(_this__u8e3s4) === 0);
}
function getLetterType(_this__u8e3s4) {
  // Inline function 'kotlin.code' call
  var ch = Char__toInt_impl_vasixd(_this__u8e3s4);
  var index = binarySearchRange(Letter_getInstance().m4_1, ch);
  var rangeStart = Letter_getInstance().m4_1[index];
  var rangeEnd = (rangeStart + Letter_getInstance().n4_1[index] | 0) - 1 | 0;
  var code = Letter_getInstance().o4_1[index];
  if (ch > rangeEnd) {
    return 0;
  }
  var lastTwoBits = code & 3;
  if (lastTwoBits === 0) {
    var shift = 2;
    var threshold = rangeStart;
    var inductionVariable = 0;
    if (inductionVariable <= 1)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        threshold = threshold + (code >> shift & 127) | 0;
        if (threshold > ch) {
          return 3;
        }
        shift = shift + 7 | 0;
        threshold = threshold + (code >> shift & 127) | 0;
        if (threshold > ch) {
          return 0;
        }
        shift = shift + 7 | 0;
      }
       while (inductionVariable <= 1);
    return 3;
  }
  if (code <= 7) {
    return lastTwoBits;
  }
  var distance = ch - rangeStart | 0;
  var shift_0 = code <= 31 ? distance % 2 | 0 : distance;
  return code >> imul_0(2, shift_0) & 3;
}
var Letter_instance;
function Letter_getInstance() {
  if (Letter_instance === VOID)
    new Letter();
  return Letter_instance;
}
function isWhitespaceImpl(_this__u8e3s4) {
  // Inline function 'kotlin.code' call
  var ch = Char__toInt_impl_vasixd(_this__u8e3s4);
  return (9 <= ch ? ch <= 13 : false) || (28 <= ch ? ch <= 32 : false) || ch === 160 || (ch > 4096 && (ch === 5760 || (8192 <= ch ? ch <= 8202 : false) || ch === 8232 || ch === 8233 || ch === 8239 || ch === 8287 || ch === 12288));
}
function isNaN_0(_this__u8e3s4) {
  return !(_this__u8e3s4 === _this__u8e3s4);
}
function isInfinite(_this__u8e3s4) {
  return _this__u8e3s4 === Infinity || _this__u8e3s4 === -Infinity;
}
function toBits(_this__u8e3s4) {
  return doubleToRawBits(isNaN_0(_this__u8e3s4) ? NaN : _this__u8e3s4);
}
function isFinite_0(_this__u8e3s4) {
  return !isInfinite(_this__u8e3s4) && !isNaN_0(_this__u8e3s4);
}
function takeHighestOneBit(_this__u8e3s4) {
  var tmp;
  if (_this__u8e3s4 === 0) {
    tmp = 0;
  } else {
    // Inline function 'kotlin.countLeadingZeroBits' call
    tmp = 1 << (31 - clz32(_this__u8e3s4) | 0);
  }
  return tmp;
}
function toRawBits(_this__u8e3s4) {
  return doubleToRawBits(_this__u8e3s4);
}
function isNaN_1(_this__u8e3s4) {
  return !(_this__u8e3s4 === _this__u8e3s4);
}
function isInfinite_0(_this__u8e3s4) {
  return _this__u8e3s4 === Infinity || _this__u8e3s4 === -Infinity;
}
var Unit_instance;
function Unit_getInstance() {
  return Unit_instance;
}
function ulongCompare(v1, v2) {
  return compareTo(v1 ^ -9223372036854775808n, v2 ^ -9223372036854775808n);
}
function uintToDouble(value) {
  return (value & 2147483647) + ((value >>> 31 | 0) << 30) * 2;
}
function ulongToString(value, base) {
  if (value >= 0n)
    return toString_2(value, base);
  // Inline function 'kotlin.Long.div' call
  var this_0 = shiftRightUnsigned(value, 1);
  var tmp$ret$0 = divide(this_0, fromInt_0(base));
  var quotient = shiftLeft(tmp$ret$0, 1);
  // Inline function 'kotlin.Long.times' call
  var this_1 = quotient;
  var tmp$ret$1 = multiply_0(this_1, fromInt_0(base));
  var rem = subtract_0(value, tmp$ret$1);
  if (rem >= fromInt_0(base)) {
    // Inline function 'kotlin.Long.minus' call
    var this_2 = rem;
    rem = subtract_0(this_2, fromInt_0(base));
    // Inline function 'kotlin.Long.plus' call
    var this_3 = quotient;
    quotient = add_0(this_3, fromInt_0(1));
  }
  return toString_2(quotient, base) + toString_2(rem, base);
}
function doubleToUInt(value) {
  var tmp;
  if (isNaN_0(value)) {
    tmp = _UInt___init__impl__l7qpdl(0);
  } else {
    // Inline function 'kotlin.UInt.toDouble' call
    var this_0 = _UInt___init__impl__l7qpdl(0);
    if (value <= uintToDouble(_UInt___get_data__impl__f0vqqw(this_0))) {
      tmp = _UInt___init__impl__l7qpdl(0);
    } else {
      // Inline function 'kotlin.UInt.toDouble' call
      var this_1 = _UInt___init__impl__l7qpdl(-1);
      if (value >= uintToDouble(_UInt___get_data__impl__f0vqqw(this_1))) {
        tmp = _UInt___init__impl__l7qpdl(-1);
      } else {
        if (value <= 2147483647) {
          // Inline function 'kotlin.toUInt' call
          var this_2 = numberToInt(value);
          tmp = _UInt___init__impl__l7qpdl(this_2);
        } else {
          // Inline function 'kotlin.toUInt' call
          var this_3 = numberToInt(value - 2147483647);
          var tmp0 = _UInt___init__impl__l7qpdl(this_3);
          // Inline function 'kotlin.toUInt' call
          var this_4 = 2147483647;
          // Inline function 'kotlin.UInt.plus' call
          var other = _UInt___init__impl__l7qpdl(this_4);
          tmp = _UInt___init__impl__l7qpdl(_UInt___get_data__impl__f0vqqw(tmp0) + _UInt___get_data__impl__f0vqqw(other) | 0);
        }
      }
    }
  }
  return tmp;
}
function collectionToArray(collection) {
  return collectionToArrayCommonImpl(collection);
}
function terminateCollectionToArray(collectionSize, array) {
  return array;
}
function sortWith_0(_this__u8e3s4, comparator) {
  collectionsSort(_this__u8e3s4, comparator);
}
function listOf(element) {
  // Inline function 'kotlin.arrayOf' call
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  var tmp$ret$2 = [element];
  return ArrayList.r3(tmp$ret$2);
}
function setOf(element) {
  return hashSetOf([element]);
}
function sort(_this__u8e3s4) {
  collectionsSort(_this__u8e3s4, naturalOrder());
}
function arrayCopy(source, destination, destinationOffset, startIndex, endIndex) {
  Companion_instance_6.k4(startIndex, endIndex, source.length);
  var rangeSize = endIndex - startIndex | 0;
  Companion_instance_6.k4(destinationOffset, destinationOffset + rangeSize | 0, destination.length);
  if (isView(destination) && isView(source)) {
    // Inline function 'kotlin.js.asDynamic' call
    var subrange = source.subarray(startIndex, endIndex);
    // Inline function 'kotlin.js.asDynamic' call
    destination.set(subrange, destinationOffset);
  } else {
    if (!(source === destination) || destinationOffset <= startIndex) {
      var inductionVariable = 0;
      if (inductionVariable < rangeSize)
        do {
          var index = inductionVariable;
          inductionVariable = inductionVariable + 1 | 0;
          destination[destinationOffset + index | 0] = source[startIndex + index | 0];
        }
         while (inductionVariable < rangeSize);
    } else {
      var inductionVariable_0 = rangeSize - 1 | 0;
      if (0 <= inductionVariable_0)
        do {
          var index_0 = inductionVariable_0;
          inductionVariable_0 = inductionVariable_0 + -1 | 0;
          destination[destinationOffset + index_0 | 0] = source[startIndex + index_0 | 0];
        }
         while (0 <= inductionVariable_0);
    }
  }
}
function copyToArray(collection) {
  var tmp;
  // Inline function 'kotlin.js.asDynamic' call
  if (collection.toArray !== undefined) {
    // Inline function 'kotlin.js.asDynamic' call
    // Inline function 'kotlin.js.unsafeCast' call
    tmp = collection.toArray();
  } else {
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    tmp = collectionToArray(collection);
  }
  return tmp;
}
function checkIndexOverflow(index) {
  if (index < 0) {
    throwIndexOverflow();
  }
  return index;
}
function mapCapacity(expectedSize) {
  return expectedSize;
}
function collectionsSort(list, comparator) {
  if (list.k1() <= 1)
    return Unit_instance;
  var array = copyToArray(list);
  sortArrayWith(array, comparator);
  var inductionVariable = 0;
  var last = array.length;
  if (inductionVariable < last)
    do {
      var i = inductionVariable;
      inductionVariable = inductionVariable + 1 | 0;
      list.p4(i, array[i]);
    }
     while (inductionVariable < last);
}
function AbstractMutableList$removeAll$lambda($elements) {
  return (it) => $elements.q2(it);
}
function AbstractMutableList$retainAll$lambda($elements) {
  return (it) => !$elements.q2(it);
}
function arrayOfUninitializedElements(capacity) {
  // Inline function 'kotlin.require' call
  if (!(capacity >= 0)) {
    var message = 'capacity must be non-negative.';
    throw IllegalArgumentException.w(toString_1(message));
  }
  // Inline function 'kotlin.arrayOfNulls' call
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  return Array(capacity);
}
function resetRange(_this__u8e3s4, fromIndex, toIndex) {
  // Inline function 'kotlin.js.nativeFill' call
  // Inline function 'kotlin.js.asDynamic' call
  _this__u8e3s4.fill(null, fromIndex, toIndex);
}
function copyOfUninitializedElements(_this__u8e3s4, newSize) {
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  return copyOf_0(_this__u8e3s4, newSize);
}
function resetAt(_this__u8e3s4, index) {
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  _this__u8e3s4[index] = null;
}
var Companion_instance_3;
function Companion_getInstance_3() {
  if (Companion_instance_3 === VOID)
    new Companion_3();
  return Companion_instance_3;
}
function increaseLength($this, amount) {
  var previous = $this.k1();
  // Inline function 'kotlin.js.asDynamic' call
  $this.q_1.length = $this.k1() + amount | 0;
  return previous;
}
function rangeCheck($this, index) {
  // Inline function 'kotlin.apply' call
  Companion_instance_6.q5(index, $this.k1());
  return index;
}
function insertionRangeCheck($this, index) {
  // Inline function 'kotlin.apply' call
  Companion_instance_6.f5(index, $this.k1());
  return index;
}
var _stableSortingIsSupported;
function sortArrayWith(array, comparator) {
  if (getStableSortingIsSupported()) {
    var comparison = sortArrayWith$lambda(comparator);
    // Inline function 'kotlin.js.asDynamic' call
    array.sort(comparison);
  } else {
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    mergeSort(array, 0, get_lastIndex(array), comparator);
  }
}
function getStableSortingIsSupported() {
  var tmp0_safe_receiver = _stableSortingIsSupported;
  if (tmp0_safe_receiver == null)
    null;
  else {
    // Inline function 'kotlin.let' call
    return tmp0_safe_receiver;
  }
  _stableSortingIsSupported = false;
  // Inline function 'kotlin.js.unsafeCast' call
  var array = [];
  var inductionVariable = 0;
  if (inductionVariable < 600)
    do {
      var index = inductionVariable;
      inductionVariable = inductionVariable + 1 | 0;
      // Inline function 'kotlin.js.asDynamic' call
      array.push(index);
    }
     while (inductionVariable < 600);
  var comparison = getStableSortingIsSupported$lambda;
  // Inline function 'kotlin.js.asDynamic' call
  array.sort(comparison);
  var inductionVariable_0 = 1;
  var last = array.length;
  if (inductionVariable_0 < last)
    do {
      var index_0 = inductionVariable_0;
      inductionVariable_0 = inductionVariable_0 + 1 | 0;
      var a = array[index_0 - 1 | 0];
      var b = array[index_0];
      if ((a & 3) === (b & 3) && a >= b)
        return false;
    }
     while (inductionVariable_0 < last);
  _stableSortingIsSupported = true;
  return true;
}
function mergeSort(array, start, endInclusive, comparator) {
  // Inline function 'kotlin.arrayOfNulls' call
  var size = array.length;
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  var buffer = Array(size);
  var result = mergeSort_0(array, buffer, start, endInclusive, comparator);
  if (!(result === array)) {
    var inductionVariable = start;
    if (inductionVariable <= endInclusive)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        array[i] = result[i];
      }
       while (!(i === endInclusive));
  }
}
function mergeSort_0(array, buffer, start, end, comparator) {
  if (start === end) {
    return array;
  }
  var median = (start + end | 0) / 2 | 0;
  var left = mergeSort_0(array, buffer, start, median, comparator);
  var right = mergeSort_0(array, buffer, median + 1 | 0, end, comparator);
  var target = left === buffer ? array : buffer;
  var leftIndex = start;
  var rightIndex = median + 1 | 0;
  var inductionVariable = start;
  if (inductionVariable <= end)
    do {
      var i = inductionVariable;
      inductionVariable = inductionVariable + 1 | 0;
      if (leftIndex <= median && rightIndex <= end) {
        var leftValue = left[leftIndex];
        var rightValue = right[rightIndex];
        if (comparator.compare(leftValue, rightValue) <= 0) {
          target[i] = leftValue;
          leftIndex = leftIndex + 1 | 0;
        } else {
          target[i] = rightValue;
          rightIndex = rightIndex + 1 | 0;
        }
      } else if (leftIndex <= median) {
        target[i] = left[leftIndex];
        leftIndex = leftIndex + 1 | 0;
      } else {
        target[i] = right[rightIndex];
        rightIndex = rightIndex + 1 | 0;
      }
    }
     while (!(i === end));
  return target;
}
function sortArrayWith$lambda($comparator) {
  return (a, b) => $comparator.compare(a, b);
}
function getStableSortingIsSupported$lambda(a, b) {
  return (a & 3) - (b & 3) | 0;
}
function init_kotlin_collections_HashMap(_this__u8e3s4) {
  _this__u8e3s4.g7_1 = null;
}
function init_kotlin_collections_HashSet(_this__u8e3s4) {
}
function computeHashSize($this, capacity) {
  return takeHighestOneBit(imul_0(coerceAtLeast(capacity, 1), 3));
}
function computeShift($this, hashSize) {
  // Inline function 'kotlin.countLeadingZeroBits' call
  return clz32(hashSize) + 1 | 0;
}
function checkForComodification($this) {
  if (!($this.l9_1.q7_1 === $this.n9_1))
    throw ConcurrentModificationException.k9('The backing map has been modified after this entry was obtained.');
}
function _get_capacity__a9k9f3($this) {
  return $this.j7_1.length;
}
function _get_hashSize__tftcho($this) {
  return $this.m7_1.length;
}
function registerModification($this) {
  $this.q7_1 = $this.q7_1 + 1 | 0;
}
function ensureExtraCapacity($this, n) {
  if (shouldCompact($this, n)) {
    compact($this, true);
  } else {
    ensureCapacity($this, $this.o7_1 + n | 0);
  }
}
function shouldCompact($this, extraCapacity) {
  var spareCapacity = _get_capacity__a9k9f3($this) - $this.o7_1 | 0;
  var gaps = $this.o7_1 - $this.k1() | 0;
  return spareCapacity < extraCapacity && (gaps + spareCapacity | 0) >= extraCapacity && gaps >= (_get_capacity__a9k9f3($this) / 4 | 0);
}
function ensureCapacity($this, minCapacity) {
  if (minCapacity < 0)
    throw RuntimeException.o9('too many elements');
  if (minCapacity > _get_capacity__a9k9f3($this)) {
    var newSize = Companion_instance_6.p9(_get_capacity__a9k9f3($this), minCapacity);
    $this.j7_1 = copyOfUninitializedElements($this.j7_1, newSize);
    var tmp = $this;
    var tmp0_safe_receiver = $this.k7_1;
    tmp.k7_1 = tmp0_safe_receiver == null ? null : copyOfUninitializedElements(tmp0_safe_receiver, newSize);
    $this.l7_1 = copyOf($this.l7_1, newSize);
    var newHashSize = computeHashSize(Companion_instance_4, newSize);
    if (newHashSize > _get_hashSize__tftcho($this)) {
      rehash($this, newHashSize);
    }
  }
}
function allocateValuesArray($this) {
  var curValuesArray = $this.k7_1;
  if (!(curValuesArray == null))
    return curValuesArray;
  var newValuesArray = arrayOfUninitializedElements(_get_capacity__a9k9f3($this));
  $this.k7_1 = newValuesArray;
  return newValuesArray;
}
function hash($this, key) {
  return key == null ? 0 : imul_0(hashCode(key), -1640531527) >>> $this.p7_1 | 0;
}
function compact($this, updateHashArray) {
  var i = 0;
  var j = 0;
  var valuesArray = $this.k7_1;
  while (i < $this.o7_1) {
    var hash = $this.l7_1[i];
    if (hash >= 0) {
      $this.j7_1[j] = $this.j7_1[i];
      if (!(valuesArray == null)) {
        valuesArray[j] = valuesArray[i];
      }
      if (updateHashArray) {
        $this.l7_1[j] = hash;
        $this.m7_1[hash] = j + 1 | 0;
      }
      j = j + 1 | 0;
    }
    i = i + 1 | 0;
  }
  resetRange($this.j7_1, j, $this.o7_1);
  if (valuesArray == null)
    null;
  else {
    resetRange(valuesArray, j, $this.o7_1);
  }
  $this.o7_1 = j;
}
function rehash($this, newHashSize) {
  registerModification($this);
  if ($this.o7_1 > $this.r7_1) {
    compact($this, false);
  }
  $this.m7_1 = new Int32Array(newHashSize);
  $this.p7_1 = computeShift(Companion_instance_4, newHashSize);
  var i = 0;
  while (i < $this.o7_1) {
    var _unary__edvuaz = i;
    i = _unary__edvuaz + 1 | 0;
    if (!putRehash($this, _unary__edvuaz)) {
      throw IllegalStateException.w3('This cannot happen with fixed magic multiplier and grow-only hash array. Have object hashCodes changed?');
    }
  }
}
function putRehash($this, i) {
  var hash_0 = hash($this, $this.j7_1[i]);
  var probesLeft = $this.n7_1;
  while (true) {
    var index = $this.m7_1[hash_0];
    if (index === 0) {
      $this.m7_1[hash_0] = i + 1 | 0;
      $this.l7_1[i] = hash_0;
      return true;
    }
    probesLeft = probesLeft - 1 | 0;
    if (probesLeft < 0)
      return false;
    var _unary__edvuaz = hash_0;
    hash_0 = _unary__edvuaz - 1 | 0;
    if (_unary__edvuaz === 0)
      hash_0 = _get_hashSize__tftcho($this) - 1 | 0;
  }
}
function findKey($this, key) {
  var hash_0 = hash($this, key);
  var probesLeft = $this.n7_1;
  while (true) {
    var index = $this.m7_1[hash_0];
    if (index === 0)
      return -1;
    if (index > 0 && equals($this.j7_1[index - 1 | 0], key))
      return index - 1 | 0;
    probesLeft = probesLeft - 1 | 0;
    if (probesLeft < 0)
      return -1;
    var _unary__edvuaz = hash_0;
    hash_0 = _unary__edvuaz - 1 | 0;
    if (_unary__edvuaz === 0)
      hash_0 = _get_hashSize__tftcho($this) - 1 | 0;
  }
}
function findValue($this, value) {
  var i = $this.o7_1;
  $l$loop: while (true) {
    i = i - 1 | 0;
    if (!(i >= 0)) {
      break $l$loop;
    }
    if ($this.l7_1[i] >= 0 && equals(ensureNotNull($this.k7_1)[i], value))
      return i;
  }
  return -1;
}
function addKey($this, key) {
  $this.g8();
  retry: while (true) {
    var hash_0 = hash($this, key);
    var tentativeMaxProbeDistance = coerceAtMost(imul_0($this.n7_1, 2), _get_hashSize__tftcho($this) / 2 | 0);
    var probeDistance = 0;
    while (true) {
      var index = $this.m7_1[hash_0];
      if (index <= 0) {
        if ($this.o7_1 >= _get_capacity__a9k9f3($this)) {
          ensureExtraCapacity($this, 1);
          continue retry;
        }
        var _unary__edvuaz = $this.o7_1;
        $this.o7_1 = _unary__edvuaz + 1 | 0;
        var putIndex = _unary__edvuaz;
        $this.j7_1[putIndex] = key;
        $this.l7_1[putIndex] = hash_0;
        $this.m7_1[hash_0] = putIndex + 1 | 0;
        $this.r7_1 = $this.r7_1 + 1 | 0;
        registerModification($this);
        if (probeDistance > $this.n7_1)
          $this.n7_1 = probeDistance;
        return putIndex;
      }
      if (equals($this.j7_1[index - 1 | 0], key)) {
        return -index | 0;
      }
      probeDistance = probeDistance + 1 | 0;
      if (probeDistance > tentativeMaxProbeDistance) {
        rehash($this, imul_0(_get_hashSize__tftcho($this), 2));
        continue retry;
      }
      var _unary__edvuaz_0 = hash_0;
      hash_0 = _unary__edvuaz_0 - 1 | 0;
      if (_unary__edvuaz_0 === 0)
        hash_0 = _get_hashSize__tftcho($this) - 1 | 0;
    }
  }
}
function removeEntryAt($this, index) {
  resetAt($this.j7_1, index);
  var tmp0_safe_receiver = $this.k7_1;
  if (tmp0_safe_receiver == null)
    null;
  else {
    resetAt(tmp0_safe_receiver, index);
  }
  removeHashAt($this, $this.l7_1[index]);
  $this.l7_1[index] = -1;
  $this.r7_1 = $this.r7_1 - 1 | 0;
  registerModification($this);
}
function removeHashAt($this, removedHash) {
  var hash_0 = removedHash;
  var hole = removedHash;
  var probeDistance = 0;
  var patchAttemptsLeft = coerceAtMost(imul_0($this.n7_1, 2), _get_hashSize__tftcho($this) / 2 | 0);
  while (true) {
    var _unary__edvuaz = hash_0;
    hash_0 = _unary__edvuaz - 1 | 0;
    if (_unary__edvuaz === 0)
      hash_0 = _get_hashSize__tftcho($this) - 1 | 0;
    probeDistance = probeDistance + 1 | 0;
    if (probeDistance > $this.n7_1) {
      $this.m7_1[hole] = 0;
      return Unit_instance;
    }
    var index = $this.m7_1[hash_0];
    if (index === 0) {
      $this.m7_1[hole] = 0;
      return Unit_instance;
    }
    if (index < 0) {
      $this.m7_1[hole] = -1;
      hole = hash_0;
      probeDistance = 0;
    } else {
      var otherHash = hash($this, $this.j7_1[index - 1 | 0]);
      if (((otherHash - hash_0 | 0) & (_get_hashSize__tftcho($this) - 1 | 0)) >= probeDistance) {
        $this.m7_1[hole] = index;
        $this.l7_1[index - 1 | 0] = hole;
        hole = hash_0;
        probeDistance = 0;
      }
    }
    patchAttemptsLeft = patchAttemptsLeft - 1 | 0;
    if (patchAttemptsLeft < 0) {
      $this.m7_1[hole] = -1;
      return Unit_instance;
    }
  }
}
function contentEquals_1($this, other) {
  return $this.r7_1 === other.k1() && $this.v8(other.d3());
}
var Companion_instance_4;
function Companion_getInstance_4() {
  return Companion_instance_4;
}
var EmptyHolder_instance;
function EmptyHolder_getInstance() {
  if (EmptyHolder_instance === VOID)
    new EmptyHolder();
  return EmptyHolder_instance;
}
function init_kotlin_collections_LinkedHashSet(_this__u8e3s4) {
}
function get_output() {
  _init_properties_console_kt__rfg7jv();
  return output;
}
var output;
function println(message) {
  _init_properties_console_kt__rfg7jv();
  get_output().bb(message);
}
function print(message) {
  _init_properties_console_kt__rfg7jv();
  get_output().ab(message);
}
function println_0() {
  _init_properties_console_kt__rfg7jv();
  get_output().za();
}
var properties_initialized_console_kt_gll9dl;
function _init_properties_console_kt__rfg7jv() {
  if (!properties_initialized_console_kt_gll9dl) {
    properties_initialized_console_kt_gll9dl = true;
    // Inline function 'kotlin.run' call
    var isNode = typeof process !== 'undefined' && process.versions && !!process.versions.node;
    output = isNode ? new NodeJsOutput(process.stdout) : new BufferedOutputToConsoleLog();
  }
}
function iterator(_this__u8e3s4) {
  var r = _this__u8e3s4;
  var tmp;
  if (_this__u8e3s4['iterator'] != null) {
    tmp = _this__u8e3s4['iterator']();
  } else if (isArrayish(r)) {
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    tmp = arrayIterator(r);
  } else {
    tmp = ((!(r == null) ? isInterface(r, Iterable) : false) ? r : THROW_CCE()).h1();
  }
  return tmp;
}
function init_kotlin_UnsupportedOperationException(_this__u8e3s4) {
  captureStack(_this__u8e3s4, _this__u8e3s4.p3_1);
}
function init_kotlin_IllegalStateException(_this__u8e3s4) {
  captureStack(_this__u8e3s4, _this__u8e3s4.v3_1);
}
function init_kotlin_IllegalArgumentException(_this__u8e3s4) {
  captureStack(_this__u8e3s4, _this__u8e3s4.v_1);
}
function init_kotlin_RuntimeException(_this__u8e3s4) {
  captureStack(_this__u8e3s4, _this__u8e3s4.b2_1);
}
function init_kotlin_Exception(_this__u8e3s4) {
  captureStack(_this__u8e3s4, _this__u8e3s4.ib_1);
}
function init_kotlin_NoSuchElementException(_this__u8e3s4) {
  captureStack(_this__u8e3s4, _this__u8e3s4.f1_1);
}
function init_kotlin_IndexOutOfBoundsException(_this__u8e3s4) {
  captureStack(_this__u8e3s4, _this__u8e3s4.pb_1);
}
function init_kotlin_ClassCastException(_this__u8e3s4) {
  captureStack(_this__u8e3s4, _this__u8e3s4.h4_1);
}
function init_kotlin_NumberFormatException(_this__u8e3s4) {
  captureStack(_this__u8e3s4, _this__u8e3s4.vb_1);
}
function init_kotlin_ArithmeticException(_this__u8e3s4) {
  captureStack(_this__u8e3s4, _this__u8e3s4.ac_1);
}
function init_kotlin_AssertionError(_this__u8e3s4) {
  captureStack(_this__u8e3s4, _this__u8e3s4.ec_1);
}
function init_kotlin_ConcurrentModificationException(_this__u8e3s4) {
  captureStack(_this__u8e3s4, _this__u8e3s4.j9_1);
}
function init_kotlin_Error(_this__u8e3s4) {
  captureStack(_this__u8e3s4, _this__u8e3s4.h_1);
}
function init_kotlin_NullPointerException(_this__u8e3s4) {
  captureStack(_this__u8e3s4, _this__u8e3s4.z3_1);
}
function init_kotlin_UninitializedPropertyAccessException(_this__u8e3s4) {
  captureStack(_this__u8e3s4, _this__u8e3s4.n_1);
}
function init_kotlin_NoWhenBranchMatchedException(_this__u8e3s4) {
  captureStack(_this__u8e3s4, _this__u8e3s4.d4_1);
}
function lazy(initializer) {
  return new UnsafeLazyImpl(initializer);
}
function fillFrom(src, dst) {
  var srcLen = src.length;
  var dstLen = dst.length;
  var index = 0;
  // Inline function 'kotlin.js.unsafeCast' call
  var arr = dst;
  while (index < srcLen && index < dstLen) {
    var tmp = index;
    var _unary__edvuaz = index;
    index = _unary__edvuaz + 1 | 0;
    arr[tmp] = src[_unary__edvuaz];
  }
  return dst;
}
function arrayCopyResize(source, newSize, defaultValue) {
  // Inline function 'kotlin.js.unsafeCast' call
  var result = source.slice(0, newSize);
  // Inline function 'kotlin.copyArrayType' call
  if (source.$type$ !== undefined) {
    result.$type$ = source.$type$;
  }
  var index = source.length;
  if (newSize > index) {
    // Inline function 'kotlin.js.asDynamic' call
    result.length = newSize;
    while (index < newSize) {
      var _unary__edvuaz = index;
      index = _unary__edvuaz + 1 | 0;
      result[_unary__edvuaz] = defaultValue;
    }
  }
  return result;
}
function round(x) {
  if (!(x % 0.5 === 0.0)) {
    return Math.round(x);
  }
  // Inline function 'kotlin.math.floor' call
  var floor = Math.floor(x);
  var tmp;
  if (floor % 2 === 0.0) {
    tmp = floor;
  } else {
    // Inline function 'kotlin.math.ceil' call
    tmp = Math.ceil(x);
  }
  return tmp;
}
function abs_0(n) {
  return n < 0 ? -n | 0 | 0 : n;
}
function get_sign(_this__u8e3s4) {
  return convertToInt(shiftRight(_this__u8e3s4, 63) | shiftRightUnsigned(negate_0(_this__u8e3s4), 63));
}
function abs_1(n) {
  return n < 0n ? negate_0(n) : n;
}
var INV_2_26;
var INV_2_53;
function defaultPlatformRandom() {
  _init_properties_PlatformRandom_kt__6kjv62();
  // Inline function 'kotlin.js.unsafeCast' call
  var tmp$ret$0 = Math.random() * Math.pow(2, 32) | 0;
  return Random_0(tmp$ret$0);
}
var properties_initialized_PlatformRandom_kt_uibhw8;
function _init_properties_PlatformRandom_kt__6kjv62() {
  if (!properties_initialized_PlatformRandom_kt_uibhw8) {
    properties_initialized_PlatformRandom_kt_uibhw8 = true;
    // Inline function 'kotlin.math.pow' call
    INV_2_26 = Math.pow(2.0, -26);
    // Inline function 'kotlin.math.pow' call
    INV_2_53 = Math.pow(2.0, -53);
  }
}
var NothingKClassImpl_instance;
function NothingKClassImpl_getInstance() {
  if (NothingKClassImpl_instance === VOID)
    new NothingKClassImpl();
  return NothingKClassImpl_instance;
}
function get_functionClasses() {
  _init_properties_primitives_kt__3fums4();
  return functionClasses;
}
var functionClasses;
function PrimitiveClasses$anyClass$lambda(it) {
  return !(it == null);
}
function PrimitiveClasses$numberClass$lambda(it) {
  return isNumber(it);
}
function PrimitiveClasses$booleanClass$lambda(it) {
  return !(it == null) ? typeof it === 'boolean' : false;
}
function PrimitiveClasses$byteClass$lambda(it) {
  return !(it == null) ? typeof it === 'number' : false;
}
function PrimitiveClasses$shortClass$lambda(it) {
  return !(it == null) ? typeof it === 'number' : false;
}
function PrimitiveClasses$intClass$lambda(it) {
  return !(it == null) ? typeof it === 'number' : false;
}
function PrimitiveClasses$longClass$lambda(it) {
  return !(it == null) ? typeof it === 'bigint' : false;
}
function PrimitiveClasses$floatClass$lambda(it) {
  return !(it == null) ? typeof it === 'number' : false;
}
function PrimitiveClasses$doubleClass$lambda(it) {
  return !(it == null) ? typeof it === 'number' : false;
}
function PrimitiveClasses$arrayClass$lambda(it) {
  return !(it == null) ? isArray(it) : false;
}
function PrimitiveClasses$stringClass$lambda(it) {
  return !(it == null) ? typeof it === 'string' : false;
}
function PrimitiveClasses$throwableClass$lambda(it) {
  return it instanceof Error;
}
function PrimitiveClasses$booleanArrayClass$lambda(it) {
  return !(it == null) ? isBooleanArray(it) : false;
}
function PrimitiveClasses$charArrayClass$lambda(it) {
  return !(it == null) ? isCharArray(it) : false;
}
function PrimitiveClasses$byteArrayClass$lambda(it) {
  return !(it == null) ? isByteArray(it) : false;
}
function PrimitiveClasses$shortArrayClass$lambda(it) {
  return !(it == null) ? isShortArray(it) : false;
}
function PrimitiveClasses$intArrayClass$lambda(it) {
  return !(it == null) ? isIntArray(it) : false;
}
function PrimitiveClasses$floatArrayClass$lambda(it) {
  return !(it == null) ? isFloatArray(it) : false;
}
function PrimitiveClasses$doubleArrayClass$lambda(it) {
  return !(it == null) ? isDoubleArray(it) : false;
}
function PrimitiveClasses$functionClass$lambda($arity) {
  return (it) => {
    var tmp;
    if (typeof it === 'function') {
      // Inline function 'kotlin.js.asDynamic' call
      tmp = it.length === $arity;
    } else {
      tmp = false;
    }
    return tmp;
  };
}
var PrimitiveClasses_instance;
function PrimitiveClasses_getInstance() {
  if (PrimitiveClasses_instance === VOID)
    new PrimitiveClasses();
  return PrimitiveClasses_instance;
}
var properties_initialized_primitives_kt_jle18u;
function _init_properties_primitives_kt__3fums4() {
  if (!properties_initialized_primitives_kt_jle18u) {
    properties_initialized_primitives_kt_jle18u = true;
    // Inline function 'kotlin.arrayOfNulls' call
    functionClasses = Array(0);
  }
}
function getKClass(jClass) {
  if (jClass === String) {
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    return PrimitiveClasses_getInstance().stringClass;
  }
  // Inline function 'kotlin.js.asDynamic' call
  var metadata = jClass.$metadata$;
  var tmp;
  if (metadata != null) {
    var tmp_0;
    if (metadata.$kClass$ == null) {
      var kClass = new SimpleKClassImpl(jClass);
      metadata.$kClass$ = kClass;
      tmp_0 = kClass;
    } else {
      tmp_0 = metadata.$kClass$;
    }
    tmp = tmp_0;
  } else {
    tmp = new SimpleKClassImpl(jClass);
  }
  return tmp;
}
function getKClassFromExpression(e) {
  var tmp;
  switch (typeof e) {
    case 'string':
      tmp = PrimitiveClasses_getInstance().stringClass;
      break;
    case 'number':
      var tmp_0;
      // Inline function 'kotlin.js.jsBitwiseOr' call

      // Inline function 'kotlin.js.asDynamic' call

      if ((e | 0) === e) {
        tmp_0 = PrimitiveClasses_getInstance().intClass;
      } else {
        tmp_0 = PrimitiveClasses_getInstance().doubleClass;
      }

      tmp = tmp_0;
      break;
    case 'boolean':
      tmp = PrimitiveClasses_getInstance().booleanClass;
      break;
    case 'function':
      var tmp_1 = PrimitiveClasses_getInstance();
      // Inline function 'kotlin.js.asDynamic' call

      tmp = tmp_1.functionClass(e.length);
      break;
    default:
      var tmp_2;
      if (isBooleanArray(e)) {
        tmp_2 = PrimitiveClasses_getInstance().booleanArrayClass;
      } else {
        if (isCharArray(e)) {
          tmp_2 = PrimitiveClasses_getInstance().charArrayClass;
        } else {
          if (isByteArray(e)) {
            tmp_2 = PrimitiveClasses_getInstance().byteArrayClass;
          } else {
            if (isShortArray(e)) {
              tmp_2 = PrimitiveClasses_getInstance().shortArrayClass;
            } else {
              if (isIntArray(e)) {
                tmp_2 = PrimitiveClasses_getInstance().intArrayClass;
              } else {
                if (isLongArray(e)) {
                  tmp_2 = get_longArrayClass();
                } else {
                  if (isFloatArray(e)) {
                    tmp_2 = PrimitiveClasses_getInstance().floatArrayClass;
                  } else {
                    if (isDoubleArray(e)) {
                      tmp_2 = PrimitiveClasses_getInstance().doubleArrayClass;
                    } else {
                      if (isInterface(e, KClass)) {
                        tmp_2 = getKClass(KClass);
                      } else {
                        if (isArray(e)) {
                          tmp_2 = PrimitiveClasses_getInstance().arrayClass;
                        } else {
                          var constructor = Object.getPrototypeOf(e).constructor;
                          var tmp_3;
                          if (constructor === Object) {
                            tmp_3 = PrimitiveClasses_getInstance().anyClass;
                          } else if (constructor === Error) {
                            tmp_3 = PrimitiveClasses_getInstance().throwableClass;
                          } else {
                            var jsClass = constructor;
                            tmp_3 = getKClass(jsClass);
                          }
                          tmp_2 = tmp_3;
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }

      tmp = tmp_2;
      break;
  }
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  return tmp;
}
function checkReplaceRange($this, startIndex, endIndex, length) {
  if (startIndex < 0 || startIndex > length) {
    throw IndexOutOfBoundsException.rb('startIndex: ' + startIndex + ', length: ' + length);
  }
  if (startIndex > endIndex) {
    throw IllegalArgumentException.w('startIndex(' + startIndex + ') > endIndex(' + endIndex + ')');
  }
}
function uppercaseChar(_this__u8e3s4) {
  // Inline function 'kotlin.text.uppercase' call
  // Inline function 'kotlin.js.asDynamic' call
  // Inline function 'kotlin.js.unsafeCast' call
  var uppercase = toString(_this__u8e3s4).toUpperCase();
  return uppercase.length > 1 ? _this__u8e3s4 : charCodeAt(uppercase, 0);
}
function isLetter(_this__u8e3s4) {
  if ((_Char___init__impl__6a9atx(97) <= _this__u8e3s4 ? _this__u8e3s4 <= _Char___init__impl__6a9atx(122) : false) || (_Char___init__impl__6a9atx(65) <= _this__u8e3s4 ? _this__u8e3s4 <= _Char___init__impl__6a9atx(90) : false)) {
    return true;
  }
  if (Char__compareTo_impl_ypi4mb(_this__u8e3s4, _Char___init__impl__6a9atx(128)) < 0) {
    return false;
  }
  return isLetterImpl(_this__u8e3s4);
}
function isWhitespace(_this__u8e3s4) {
  return isWhitespaceImpl(_this__u8e3s4);
}
function toString_2(_this__u8e3s4, radix) {
  return toStringImpl_0(_this__u8e3s4, checkRadix(radix));
}
function checkRadix(radix) {
  if (!(2 <= radix ? radix <= 36 : false)) {
    throw IllegalArgumentException.w('radix ' + radix + ' was not in valid range 2..36');
  }
  return radix;
}
function toInt(_this__u8e3s4, radix) {
  var tmp0_elvis_lhs = toIntOrNull_0(_this__u8e3s4, radix);
  var tmp;
  if (tmp0_elvis_lhs == null) {
    numberFormatError(_this__u8e3s4);
  } else {
    tmp = tmp0_elvis_lhs;
  }
  return tmp;
}
function toDouble(_this__u8e3s4) {
  // Inline function 'kotlin.js.asDynamic' call
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.also' call
  var this_0 = +_this__u8e3s4;
  if (isNaN_0(this_0) && !isNaN_2(_this__u8e3s4) || (this_0 === 0.0 && isBlank(_this__u8e3s4))) {
    numberFormatError(_this__u8e3s4);
  }
  return this_0;
}
function toString_3(_this__u8e3s4, radix) {
  // Inline function 'kotlin.js.asDynamic' call
  return _this__u8e3s4.toString(checkRadix(radix));
}
function toInt_0(_this__u8e3s4) {
  var tmp0_elvis_lhs = toIntOrNull(_this__u8e3s4);
  var tmp;
  if (tmp0_elvis_lhs == null) {
    numberFormatError(_this__u8e3s4);
  } else {
    tmp = tmp0_elvis_lhs;
  }
  return tmp;
}
function isNaN_2(_this__u8e3s4) {
  // Inline function 'kotlin.text.lowercase' call
  // Inline function 'kotlin.js.asDynamic' call
  switch (_this__u8e3s4.toLowerCase()) {
    case 'nan':
    case '+nan':
    case '-nan':
      return true;
    default:
      return false;
  }
}
function digitOf(char, radix) {
  // Inline function 'kotlin.let' call
  var it = Char__compareTo_impl_ypi4mb(char, _Char___init__impl__6a9atx(48)) >= 0 && Char__compareTo_impl_ypi4mb(char, _Char___init__impl__6a9atx(57)) <= 0 ? Char__minus_impl_a2frrh(char, _Char___init__impl__6a9atx(48)) : Char__compareTo_impl_ypi4mb(char, _Char___init__impl__6a9atx(65)) >= 0 && Char__compareTo_impl_ypi4mb(char, _Char___init__impl__6a9atx(90)) <= 0 ? Char__minus_impl_a2frrh(char, _Char___init__impl__6a9atx(65)) + 10 | 0 : Char__compareTo_impl_ypi4mb(char, _Char___init__impl__6a9atx(97)) >= 0 && Char__compareTo_impl_ypi4mb(char, _Char___init__impl__6a9atx(122)) <= 0 ? Char__minus_impl_a2frrh(char, _Char___init__impl__6a9atx(97)) + 10 | 0 : Char__compareTo_impl_ypi4mb(char, _Char___init__impl__6a9atx(128)) < 0 ? -1 : Char__compareTo_impl_ypi4mb(char, _Char___init__impl__6a9atx(65313)) >= 0 && Char__compareTo_impl_ypi4mb(char, _Char___init__impl__6a9atx(65338)) <= 0 ? Char__minus_impl_a2frrh(char, _Char___init__impl__6a9atx(65313)) + 10 | 0 : Char__compareTo_impl_ypi4mb(char, _Char___init__impl__6a9atx(65345)) >= 0 && Char__compareTo_impl_ypi4mb(char, _Char___init__impl__6a9atx(65370)) <= 0 ? Char__minus_impl_a2frrh(char, _Char___init__impl__6a9atx(65345)) + 10 | 0 : digitToIntImpl(char);
  return it >= radix ? -1 : it;
}
var Companion_instance_5;
function Companion_getInstance_5() {
  if (Companion_instance_5 === VOID)
    new Companion_5();
  return Companion_instance_5;
}
var STRING_CASE_INSENSITIVE_ORDER;
function substring(_this__u8e3s4, startIndex, endIndex) {
  _init_properties_stringJs_kt__bg7zye();
  // Inline function 'kotlin.js.asDynamic' call
  return _this__u8e3s4.substring(startIndex, endIndex);
}
function substring_0(_this__u8e3s4, startIndex) {
  _init_properties_stringJs_kt__bg7zye();
  // Inline function 'kotlin.js.asDynamic' call
  return _this__u8e3s4.substring(startIndex);
}
function compareTo_0(_this__u8e3s4, other, ignoreCase) {
  ignoreCase = ignoreCase === VOID ? false : ignoreCase;
  _init_properties_stringJs_kt__bg7zye();
  if (ignoreCase) {
    var n1 = _this__u8e3s4.length;
    var n2 = other.length;
    // Inline function 'kotlin.comparisons.minOf' call
    var min = Math.min(n1, n2);
    if (min === 0)
      return n1 - n2 | 0;
    var inductionVariable = 0;
    if (inductionVariable < min)
      do {
        var index = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        var thisChar = charCodeAt(_this__u8e3s4, index);
        var otherChar = charCodeAt(other, index);
        if (!(thisChar === otherChar)) {
          thisChar = uppercaseChar(thisChar);
          otherChar = uppercaseChar(otherChar);
          if (!(thisChar === otherChar)) {
            // Inline function 'kotlin.text.lowercaseChar' call
            // Inline function 'kotlin.text.lowercase' call
            var this_0 = thisChar;
            // Inline function 'kotlin.js.asDynamic' call
            // Inline function 'kotlin.js.unsafeCast' call
            var tmp$ret$3 = toString(this_0).toLowerCase();
            thisChar = charCodeAt(tmp$ret$3, 0);
            // Inline function 'kotlin.text.lowercaseChar' call
            // Inline function 'kotlin.text.lowercase' call
            var this_1 = otherChar;
            // Inline function 'kotlin.js.asDynamic' call
            // Inline function 'kotlin.js.unsafeCast' call
            var tmp$ret$7 = toString(this_1).toLowerCase();
            otherChar = charCodeAt(tmp$ret$7, 0);
            if (!(thisChar === otherChar)) {
              return Char__compareTo_impl_ypi4mb(thisChar, otherChar);
            }
          }
        }
      }
       while (inductionVariable < min);
    return n1 - n2 | 0;
  } else {
    return compareTo(_this__u8e3s4, other);
  }
}
function concatToString(_this__u8e3s4) {
  _init_properties_stringJs_kt__bg7zye();
  var result = '';
  var inductionVariable = 0;
  var last = _this__u8e3s4.length;
  while (inductionVariable < last) {
    var char = _this__u8e3s4[inductionVariable];
    inductionVariable = inductionVariable + 1 | 0;
    result = result + toString(char);
  }
  return result;
}
function toCharArray(_this__u8e3s4, destination, destinationOffset, startIndex, endIndex) {
  destinationOffset = destinationOffset === VOID ? 0 : destinationOffset;
  startIndex = startIndex === VOID ? 0 : startIndex;
  endIndex = endIndex === VOID ? _this__u8e3s4.length : endIndex;
  _init_properties_stringJs_kt__bg7zye();
  Companion_instance_6.ae(startIndex, endIndex, _this__u8e3s4.length);
  Companion_instance_6.ae(destinationOffset, (destinationOffset + endIndex | 0) - startIndex | 0, destination.length);
  var destIndex = destinationOffset;
  var inductionVariable = startIndex;
  if (inductionVariable < endIndex)
    do {
      var i = inductionVariable;
      inductionVariable = inductionVariable + 1 | 0;
      var _unary__edvuaz = destIndex;
      destIndex = _unary__edvuaz + 1 | 0;
      destination[_unary__edvuaz] = charCodeAt(_this__u8e3s4, i);
    }
     while (inductionVariable < endIndex);
  return destination;
}
function STRING_CASE_INSENSITIVE_ORDER$lambda(a, b) {
  _init_properties_stringJs_kt__bg7zye();
  return compareTo_0(a, b, true);
}
var properties_initialized_stringJs_kt_nta8o4;
function _init_properties_stringJs_kt__bg7zye() {
  if (!properties_initialized_stringJs_kt_nta8o4) {
    properties_initialized_stringJs_kt_nta8o4 = true;
    var tmp = STRING_CASE_INSENSITIVE_ORDER$lambda;
    STRING_CASE_INSENSITIVE_ORDER = new sam$kotlin_Comparator$0(tmp);
  }
}
function replaceFirst(_this__u8e3s4, oldValue, newValue, ignoreCase) {
  ignoreCase = ignoreCase === VOID ? false : ignoreCase;
  var tmp2 = new RegExp(Companion_getInstance_5().ee(oldValue), ignoreCase ? 'ui' : 'u');
  // Inline function 'kotlin.text.nativeReplace' call
  var replacement = Companion_getInstance_5().fe(newValue);
  // Inline function 'kotlin.js.asDynamic' call
  return _this__u8e3s4.replace(tmp2, replacement);
}
function replace(_this__u8e3s4, oldValue, newValue, ignoreCase) {
  ignoreCase = ignoreCase === VOID ? false : ignoreCase;
  var tmp2 = new RegExp(Companion_getInstance_5().ee(oldValue), ignoreCase ? 'gui' : 'gu');
  // Inline function 'kotlin.text.nativeReplace' call
  var replacement = Companion_getInstance_5().fe(newValue);
  // Inline function 'kotlin.js.asDynamic' call
  return _this__u8e3s4.replace(tmp2, replacement);
}
function equals_0(_this__u8e3s4, other, ignoreCase) {
  ignoreCase = ignoreCase === VOID ? false : ignoreCase;
  if (_this__u8e3s4 == null)
    return other == null;
  if (other == null)
    return false;
  if (!ignoreCase)
    return _this__u8e3s4 == other;
  if (!(_this__u8e3s4.length === other.length))
    return false;
  var inductionVariable = 0;
  var last = _this__u8e3s4.length;
  if (inductionVariable < last)
    do {
      var index = inductionVariable;
      inductionVariable = inductionVariable + 1 | 0;
      var thisChar = charCodeAt(_this__u8e3s4, index);
      var otherChar = charCodeAt(other, index);
      if (!equals_1(thisChar, otherChar, ignoreCase)) {
        return false;
      }
    }
     while (inductionVariable < last);
  return true;
}
function regionMatches(_this__u8e3s4, thisOffset, other, otherOffset, length, ignoreCase) {
  ignoreCase = ignoreCase === VOID ? false : ignoreCase;
  return regionMatchesImpl(_this__u8e3s4, thisOffset, other, otherOffset, length, ignoreCase);
}
function printStackTrace(_this__u8e3s4) {
  console.error(stackTraceToString(_this__u8e3s4));
}
function get_suppressedExceptions(_this__u8e3s4) {
  // Inline function 'kotlin.js.asDynamic' call
  var tmp0_safe_receiver = _this__u8e3s4._suppressed;
  var tmp;
  if (tmp0_safe_receiver == null) {
    tmp = null;
  } else {
    // Inline function 'kotlin.js.unsafeCast' call
    tmp = tmp0_safe_receiver;
  }
  var tmp1_elvis_lhs = tmp;
  return tmp1_elvis_lhs == null ? emptyList() : tmp1_elvis_lhs;
}
function stackTraceToString(_this__u8e3s4) {
  return (new ExceptionTraceBuilder()).me(_this__u8e3s4);
}
function hasSeen($this, exception) {
  var tmp0 = $this.je_1;
  var tmp$ret$1;
  $l$block: {
    // Inline function 'kotlin.collections.any' call
    var inductionVariable = 0;
    var last = tmp0.length;
    while (inductionVariable < last) {
      var element = tmp0[inductionVariable];
      inductionVariable = inductionVariable + 1 | 0;
      if (element === exception) {
        tmp$ret$1 = true;
        break $l$block;
      }
    }
    tmp$ret$1 = false;
  }
  return tmp$ret$1;
}
function dumpFullTrace($this, _this__u8e3s4, indent, qualifier) {
  if (!dumpSelfTrace($this, _this__u8e3s4, indent, qualifier))
    return Unit_instance;
  var cause = _this__u8e3s4.cause;
  while (!(cause == null)) {
    if (!dumpSelfTrace($this, cause, indent, 'Caused by: '))
      return Unit_instance;
    cause = cause.cause;
  }
}
function dumpSelfTrace($this, _this__u8e3s4, indent, qualifier) {
  $this.ie_1.qa(indent).qa(qualifier);
  var shortInfo = _this__u8e3s4.toString();
  if (hasSeen($this, _this__u8e3s4)) {
    $this.ie_1.qa('[CIRCULAR REFERENCE, SEE ABOVE: ').qa(shortInfo).qa(']\n');
    return false;
  }
  // Inline function 'kotlin.js.asDynamic' call
  $this.je_1.push(_this__u8e3s4);
  // Inline function 'kotlin.js.asDynamic' call
  var tmp = _this__u8e3s4.stack;
  var stack = (tmp == null ? true : typeof tmp === 'string') ? tmp : THROW_CCE();
  if (!(stack == null)) {
    // Inline function 'kotlin.let' call
    var it = indexOf_0(stack, shortInfo);
    var stackStart = it < 0 ? 0 : it + shortInfo.length | 0;
    if (stackStart === 0) {
      $this.ie_1.qa(shortInfo).qa('\n');
    }
    // Inline function 'kotlin.text.isEmpty' call
    var this_0 = $this.ke_1;
    if (charSequenceLength(this_0) === 0) {
      $this.ke_1 = stack;
      $this.le_1 = stackStart;
    } else {
      stack = dropCommonFrames($this, stack, stackStart);
    }
    // Inline function 'kotlin.text.isNotEmpty' call
    if (charSequenceLength(indent) > 0) {
      var tmp_0;
      if (stackStart === 0) {
        tmp_0 = 0;
      } else {
        // Inline function 'kotlin.text.count' call
        var count = 0;
        var inductionVariable = 0;
        while (inductionVariable < charSequenceLength(shortInfo)) {
          var element = charSequenceGet(shortInfo, inductionVariable);
          inductionVariable = inductionVariable + 1 | 0;
          if (element === _Char___init__impl__6a9atx(10)) {
            count = count + 1 | 0;
          }
        }
        tmp_0 = 1 + count | 0;
      }
      var messageLines = tmp_0;
      // Inline function 'kotlin.sequences.forEachIndexed' call
      var index = 0;
      var _iterator__ex2g4s = lineSequence(stack).h1();
      while (_iterator__ex2g4s.i1()) {
        var item = _iterator__ex2g4s.j1();
        var _unary__edvuaz = index;
        index = _unary__edvuaz + 1 | 0;
        if (checkIndexOverflow(_unary__edvuaz) >= messageLines) {
          $this.ie_1.qa(indent);
        }
        $this.ie_1.qa(item).qa('\n');
      }
    } else {
      $this.ie_1.qa(stack).qa('\n');
    }
  } else {
    $this.ie_1.qa(shortInfo).qa('\n');
  }
  var suppressed = get_suppressedExceptions(_this__u8e3s4);
  // Inline function 'kotlin.collections.isNotEmpty' call
  if (!suppressed.p1()) {
    var suppressedIndent = indent + '    ';
    var _iterator__ex2g4s_0 = suppressed.h1();
    while (_iterator__ex2g4s_0.i1()) {
      var s = _iterator__ex2g4s_0.j1();
      dumpFullTrace($this, s, suppressedIndent, 'Suppressed: ');
    }
  }
  return true;
}
function dropCommonFrames($this, stack, stackStart) {
  var commonFrames = 0;
  var lastBreak = 0;
  var preLastBreak = 0;
  var inductionVariable = 0;
  var tmp0 = $this.ke_1.length - $this.le_1 | 0;
  // Inline function 'kotlin.comparisons.minOf' call
  var b = stack.length - stackStart | 0;
  var last = Math.min(tmp0, b);
  if (inductionVariable < last)
    $l$loop: do {
      var pos = inductionVariable;
      inductionVariable = inductionVariable + 1 | 0;
      var c = charCodeAt(stack, get_lastIndex_1(stack) - pos | 0);
      if (!(c === charCodeAt($this.ke_1, get_lastIndex_1($this.ke_1) - pos | 0)))
        break $l$loop;
      if (c === _Char___init__impl__6a9atx(10)) {
        commonFrames = commonFrames + 1 | 0;
        preLastBreak = lastBreak;
        lastBreak = pos;
      }
    }
     while (inductionVariable < last);
  if (commonFrames <= 1)
    return stack;
  while (preLastBreak > 0 && charCodeAt(stack, get_lastIndex_1(stack) - (preLastBreak - 1 | 0) | 0) === _Char___init__impl__6a9atx(32))
    preLastBreak = preLastBreak - 1 | 0;
  return dropLast(stack, preLastBreak) + ('... and ' + (commonFrames - 1 | 0) + ' more common stack frames skipped');
}
function AbstractCollection$toString$lambda(this$0) {
  return (it) => it === this$0 ? '(this Collection)' : toString_0(it);
}
var Companion_instance_6;
function Companion_getInstance_6() {
  return Companion_instance_6;
}
function toString_4($this, entry) {
  return toString_5($this, entry.y2()) + '=' + toString_5($this, entry.z2());
}
function toString_5($this, o) {
  return o === $this ? '(this Map)' : toString_0(o);
}
function implFindEntry($this, key) {
  var tmp0 = $this.d3();
  var tmp$ret$1;
  $l$block: {
    // Inline function 'kotlin.collections.firstOrNull' call
    var _iterator__ex2g4s = tmp0.h1();
    while (_iterator__ex2g4s.i1()) {
      var element = _iterator__ex2g4s.j1();
      if (equals(element.y2(), key)) {
        tmp$ret$1 = element;
        break $l$block;
      }
    }
    tmp$ret$1 = null;
  }
  return tmp$ret$1;
}
var Companion_instance_7;
function Companion_getInstance_7() {
  return Companion_instance_7;
}
function AbstractMap$toString$lambda(this$0) {
  return (it) => toString_4(this$0, it);
}
var Companion_instance_8;
function Companion_getInstance_8() {
  return Companion_instance_8;
}
function collectionToArrayCommonImpl(collection) {
  if (collection.p1()) {
    // Inline function 'kotlin.emptyArray' call
    return [];
  }
  // Inline function 'kotlin.arrayOfNulls' call
  var size = collection.k1();
  var destination = Array(size);
  var iterator = collection.h1();
  var index = 0;
  while (iterator.i1()) {
    var _unary__edvuaz = index;
    index = _unary__edvuaz + 1 | 0;
    destination[_unary__edvuaz] = iterator.j1();
  }
  return destination;
}
function emptyList() {
  return EmptyList_instance;
}
function arrayListOf(elements) {
  var tmp;
  if (elements.length === 0) {
    tmp = ArrayList.q1();
  } else {
    // Inline function 'kotlin.collections.asArrayList' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    tmp = ArrayList.r3(elements);
  }
  return tmp;
}
function binarySearch(_this__u8e3s4, element, comparator, fromIndex, toIndex) {
  fromIndex = fromIndex === VOID ? 0 : fromIndex;
  toIndex = toIndex === VOID ? _this__u8e3s4.k1() : toIndex;
  rangeCheck_0(_this__u8e3s4.k1(), fromIndex, toIndex);
  var low = fromIndex;
  var high = toIndex - 1 | 0;
  while (low <= high) {
    var mid = (low + high | 0) >>> 1 | 0;
    var midVal = _this__u8e3s4.l1(mid);
    var cmp = comparator.compare(midVal, element);
    if (cmp < 0)
      low = mid + 1 | 0;
    else if (cmp > 0)
      high = mid - 1 | 0;
    else
      return mid;
  }
  return -(low + 1 | 0) | 0;
}
function get_lastIndex_0(_this__u8e3s4) {
  return _this__u8e3s4.k1() - 1 | 0;
}
function listOf_0(elements) {
  return elements.length > 0 ? asList(elements) : emptyList();
}
function listOfNotNull(element) {
  return !(element == null) ? listOf(element) : emptyList();
}
var EmptyList_instance;
function EmptyList_getInstance() {
  return EmptyList_instance;
}
function rangeCheck_0(size, fromIndex, toIndex) {
  if (fromIndex > toIndex)
    throw IllegalArgumentException.w('fromIndex (' + fromIndex + ') is greater than toIndex (' + toIndex + ').');
  else if (fromIndex < 0)
    throw IndexOutOfBoundsException.rb('fromIndex (' + fromIndex + ') is less than zero.');
  else if (toIndex > size)
    throw IndexOutOfBoundsException.rb('toIndex (' + toIndex + ') is greater than size (' + size + ').');
}
var EmptyIterator_instance;
function EmptyIterator_getInstance() {
  return EmptyIterator_instance;
}
function optimizeReadOnlyList(_this__u8e3s4) {
  switch (_this__u8e3s4.k1()) {
    case 0:
      return emptyList();
    case 1:
      return listOf(_this__u8e3s4.l1(0));
    default:
      return _this__u8e3s4;
  }
}
function throwIndexOverflow() {
  throw ArithmeticException.cc('Index overflow has happened.');
}
function asCollection(_this__u8e3s4, isVarargs) {
  isVarargs = isVarargs === VOID ? false : isVarargs;
  return new ArrayAsCollection(_this__u8e3s4, isVarargs);
}
function collectionSizeOrDefault(_this__u8e3s4, default_0) {
  var tmp;
  if (isInterface(_this__u8e3s4, Collection)) {
    tmp = _this__u8e3s4.k1();
  } else {
    tmp = default_0;
  }
  return tmp;
}
function addAll(_this__u8e3s4, elements) {
  return _this__u8e3s4.o1(asList(elements));
}
function addAll_0(_this__u8e3s4, elements) {
  if (isInterface(elements, Collection))
    return _this__u8e3s4.o1(elements);
  else {
    var result = false;
    var _iterator__ex2g4s = elements.h1();
    while (_iterator__ex2g4s.i1()) {
      var item = _iterator__ex2g4s.j1();
      if (_this__u8e3s4.c1(item))
        result = true;
    }
    return result;
  }
}
function filterInPlace(_this__u8e3s4, predicate, predicateResultToRemove) {
  var result = false;
  // Inline function 'kotlin.with' call
  var $this$with = _this__u8e3s4.h1();
  while ($this$with.i1())
    if (predicate($this$with.j1()) === predicateResultToRemove) {
      $this$with.t4();
      result = true;
    }
  return result;
}
function removeAll(_this__u8e3s4, predicate) {
  return filterInPlace_0(_this__u8e3s4, predicate, true);
}
function filterInPlace_0(_this__u8e3s4, predicate, predicateResultToRemove) {
  if (!isInterface(_this__u8e3s4, RandomAccess)) {
    return filterInPlace(isInterface(_this__u8e3s4, MutableIterable) ? _this__u8e3s4 : THROW_CCE(), predicate, predicateResultToRemove);
  }
  var writeIndex = 0;
  var inductionVariable = 0;
  var last = get_lastIndex_0(_this__u8e3s4);
  if (inductionVariable <= last)
    $l$loop: do {
      var readIndex = inductionVariable;
      inductionVariable = inductionVariable + 1 | 0;
      var element = _this__u8e3s4.l1(readIndex);
      if (predicate(element) === predicateResultToRemove)
        continue $l$loop;
      if (!(writeIndex === readIndex)) {
        _this__u8e3s4.p4(writeIndex, element);
      }
      writeIndex = writeIndex + 1 | 0;
    }
     while (!(readIndex === last));
  if (writeIndex < _this__u8e3s4.k1()) {
    var inductionVariable_0 = get_lastIndex_0(_this__u8e3s4);
    var last_0 = writeIndex;
    if (last_0 <= inductionVariable_0)
      do {
        var removeIndex = inductionVariable_0;
        inductionVariable_0 = inductionVariable_0 + -1 | 0;
        _this__u8e3s4.a5(removeIndex);
      }
       while (!(removeIndex === last_0));
    return true;
  } else {
    return false;
  }
}
function emptySet() {
  return EmptySet_instance;
}
function setOf_0(elements) {
  return toSet(elements);
}
function optimizeReadOnlySet(_this__u8e3s4) {
  switch (_this__u8e3s4.k1()) {
    case 0:
      return emptySet();
    case 1:
      return setOf(_this__u8e3s4.h1().j1());
    default:
      return _this__u8e3s4;
  }
}
function hashSetOf(elements) {
  return toCollection(elements, HashSet.g9(mapCapacity(elements.length)));
}
var EmptySet_instance;
function EmptySet_getInstance() {
  return EmptySet_instance;
}
function compareValues(a, b) {
  if (a === b)
    return 0;
  if (a == null)
    return -1;
  if (b == null)
    return 1;
  return compareTo((!(a == null) ? isComparable(a) : false) ? a : THROW_CCE(), b);
}
function naturalOrder() {
  var tmp = NaturalOrderComparator_instance;
  return isInterface(tmp, Comparator) ? tmp : THROW_CCE();
}
var NaturalOrderComparator_instance;
function NaturalOrderComparator_getInstance() {
  return NaturalOrderComparator_instance;
}
function getProgressionLastElement(start, end, step) {
  var tmp;
  if (step > 0) {
    tmp = start >= end ? end : end - differenceModulo(end, start, step) | 0;
  } else if (step < 0) {
    tmp = start <= end ? end : end + differenceModulo(start, end, -step | 0) | 0;
  } else {
    throw IllegalArgumentException.w('Step is zero.');
  }
  return tmp;
}
function differenceModulo(a, b, c) {
  return mod(mod(a, c) - mod(b, c) | 0, c);
}
function mod(a, b) {
  var mod = a % b | 0;
  return mod >= 0 ? mod : mod + b | 0;
}
var Delegates_instance;
function Delegates_getInstance() {
  return Delegates_instance;
}
var Default_instance;
function Default_getInstance() {
  if (Default_instance === VOID)
    Default.gf();
  return Default_instance;
}
function Random_0(seed) {
  return XorWowRandom.rf(seed, seed >> 31);
}
function takeUpperBits(_this__u8e3s4, bitCount) {
  return (_this__u8e3s4 >>> (32 - bitCount | 0) | 0) & (-bitCount | 0) >> 31;
}
function checkInvariants($this) {
  // Inline function 'kotlin.require' call
  if (!!(($this.lf_1 | $this.mf_1 | $this.nf_1 | $this.of_1 | $this.pf_1) === 0)) {
    var message = 'Initial state must have at least one non-zero element.';
    throw IllegalArgumentException.w(toString_1(message));
  }
}
var Companion_instance_9;
function Companion_getInstance_9() {
  return Companion_instance_9;
}
var Companion_instance_10;
function Companion_getInstance_10() {
  if (Companion_instance_10 === VOID)
    new Companion_10();
  return Companion_instance_10;
}
var Companion_instance_11;
function Companion_getInstance_11() {
  return Companion_instance_11;
}
function appendElement(_this__u8e3s4, element, transform) {
  if (!(transform == null))
    _this__u8e3s4.z(transform(element));
  else {
    if (element == null ? true : isCharSequence(element))
      _this__u8e3s4.z(element);
    else {
      if (element instanceof Char)
        _this__u8e3s4.ra(element.d2_1);
      else {
        _this__u8e3s4.z(toString_1(element));
      }
    }
  }
}
function equals_1(_this__u8e3s4, other, ignoreCase) {
  ignoreCase = ignoreCase === VOID ? false : ignoreCase;
  if (_this__u8e3s4 === other)
    return true;
  if (!ignoreCase)
    return false;
  var thisUpper = uppercaseChar(_this__u8e3s4);
  var otherUpper = uppercaseChar(other);
  var tmp;
  if (thisUpper === otherUpper) {
    tmp = true;
  } else {
    // Inline function 'kotlin.text.lowercaseChar' call
    // Inline function 'kotlin.text.lowercase' call
    // Inline function 'kotlin.js.asDynamic' call
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$2 = toString(thisUpper).toLowerCase();
    var tmp_0 = charCodeAt(tmp$ret$2, 0);
    // Inline function 'kotlin.text.lowercaseChar' call
    // Inline function 'kotlin.text.lowercase' call
    // Inline function 'kotlin.js.asDynamic' call
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$6 = toString(otherUpper).toLowerCase();
    tmp = tmp_0 === charCodeAt(tmp$ret$6, 0);
  }
  return tmp;
}
function get_BYTE_TO_LOWER_CASE_HEX_DIGITS() {
  _init_properties_HexExtensions_kt__wu8rc3();
  return BYTE_TO_LOWER_CASE_HEX_DIGITS;
}
var BYTE_TO_LOWER_CASE_HEX_DIGITS;
function get_BYTE_TO_UPPER_CASE_HEX_DIGITS() {
  _init_properties_HexExtensions_kt__wu8rc3();
  return BYTE_TO_UPPER_CASE_HEX_DIGITS;
}
var BYTE_TO_UPPER_CASE_HEX_DIGITS;
var HEX_DIGITS_TO_DECIMAL;
var HEX_DIGITS_TO_LONG_DECIMAL;
function toHexString(_this__u8e3s4, format) {
  format = format === VOID ? Companion_getInstance_14().hg_1 : format;
  _init_properties_HexExtensions_kt__wu8rc3();
  return toHexString_0(_this__u8e3s4, 0, _this__u8e3s4.length, format);
}
function toHexString_0(_this__u8e3s4, startIndex, endIndex, format) {
  startIndex = startIndex === VOID ? 0 : startIndex;
  endIndex = endIndex === VOID ? _this__u8e3s4.length : endIndex;
  format = format === VOID ? Companion_getInstance_14().hg_1 : format;
  _init_properties_HexExtensions_kt__wu8rc3();
  Companion_instance_6.ae(startIndex, endIndex, _this__u8e3s4.length);
  if (startIndex === endIndex) {
    return '';
  }
  var byteToDigits = format.jg_1 ? get_BYTE_TO_UPPER_CASE_HEX_DIGITS() : get_BYTE_TO_LOWER_CASE_HEX_DIGITS();
  var bytesFormat = format.kg_1;
  if (bytesFormat.sg_1) {
    return toHexStringNoLineAndGroupSeparator(_this__u8e3s4, startIndex, endIndex, bytesFormat, byteToDigits);
  }
  return toHexStringSlowPath(_this__u8e3s4, startIndex, endIndex, bytesFormat, byteToDigits);
}
function toHexStringNoLineAndGroupSeparator(_this__u8e3s4, startIndex, endIndex, bytesFormat, byteToDigits) {
  _init_properties_HexExtensions_kt__wu8rc3();
  if (bytesFormat.tg_1) {
    return toHexStringShortByteSeparatorNoPrefixAndSuffix(_this__u8e3s4, startIndex, endIndex, bytesFormat, byteToDigits);
  }
  return toHexStringNoLineAndGroupSeparatorSlowPath(_this__u8e3s4, startIndex, endIndex, bytesFormat, byteToDigits);
}
function toHexStringSlowPath(_this__u8e3s4, startIndex, endIndex, bytesFormat, byteToDigits) {
  _init_properties_HexExtensions_kt__wu8rc3();
  var bytesPerLine = bytesFormat.mg_1;
  var bytesPerGroup = bytesFormat.ng_1;
  var bytePrefix = bytesFormat.qg_1;
  var byteSuffix = bytesFormat.rg_1;
  var byteSeparator = bytesFormat.pg_1;
  var groupSeparator = bytesFormat.og_1;
  var formatLength = formattedStringLength(endIndex - startIndex | 0, bytesPerLine, bytesPerGroup, groupSeparator.length, byteSeparator.length, bytePrefix.length, byteSuffix.length);
  var charArray_0 = charArray(formatLength);
  var charIndex = 0;
  var indexInLine = 0;
  var indexInGroup = 0;
  var inductionVariable = startIndex;
  if (inductionVariable < endIndex)
    do {
      var byteIndex = inductionVariable;
      inductionVariable = inductionVariable + 1 | 0;
      if (indexInLine === bytesPerLine) {
        var _unary__edvuaz = charIndex;
        charIndex = _unary__edvuaz + 1 | 0;
        charArray_0[_unary__edvuaz] = _Char___init__impl__6a9atx(10);
        indexInLine = 0;
        indexInGroup = 0;
      } else if (indexInGroup === bytesPerGroup) {
        charIndex = toCharArrayIfNotEmpty(groupSeparator, charArray_0, charIndex);
        indexInGroup = 0;
      }
      if (!(indexInGroup === 0)) {
        charIndex = toCharArrayIfNotEmpty(byteSeparator, charArray_0, charIndex);
      }
      charIndex = formatByteAt(_this__u8e3s4, byteIndex, bytePrefix, byteSuffix, byteToDigits, charArray_0, charIndex);
      indexInGroup = indexInGroup + 1 | 0;
      indexInLine = indexInLine + 1 | 0;
    }
     while (inductionVariable < endIndex);
  // Inline function 'kotlin.check' call
  if (!(charIndex === formatLength)) {
    throw IllegalStateException.w3('Check failed.');
  }
  return concatToString(charArray_0);
}
function toHexStringShortByteSeparatorNoPrefixAndSuffix(_this__u8e3s4, startIndex, endIndex, bytesFormat, byteToDigits) {
  _init_properties_HexExtensions_kt__wu8rc3();
  var byteSeparatorLength = bytesFormat.pg_1.length;
  // Inline function 'kotlin.require' call
  // Inline function 'kotlin.require' call
  if (!(byteSeparatorLength <= 1)) {
    var message = 'Failed requirement.';
    throw IllegalArgumentException.w(toString_1(message));
  }
  var numberOfBytes = endIndex - startIndex | 0;
  var charIndex = 0;
  if (byteSeparatorLength === 0) {
    // Inline function 'kotlin.Long.times' call
    var tmp$ret$3 = multiply_0(2n, fromInt_0(numberOfBytes));
    var charArray_0 = charArray(checkFormatLength(tmp$ret$3));
    var inductionVariable = startIndex;
    if (inductionVariable < endIndex)
      do {
        var byteIndex = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        charIndex = formatByteAt_0(_this__u8e3s4, byteIndex, byteToDigits, charArray_0, charIndex);
      }
       while (inductionVariable < endIndex);
    return concatToString(charArray_0);
  } else {
    // Inline function 'kotlin.Long.times' call
    // Inline function 'kotlin.Long.minus' call
    var this_0 = multiply_0(3n, fromInt_0(numberOfBytes));
    var tmp$ret$5 = subtract_0(this_0, fromInt_0(1));
    var charArray_1 = charArray(checkFormatLength(tmp$ret$5));
    var byteSeparatorChar = charCodeAt(bytesFormat.pg_1, 0);
    charIndex = formatByteAt_0(_this__u8e3s4, startIndex, byteToDigits, charArray_1, charIndex);
    var inductionVariable_0 = startIndex + 1 | 0;
    if (inductionVariable_0 < endIndex)
      do {
        var byteIndex_0 = inductionVariable_0;
        inductionVariable_0 = inductionVariable_0 + 1 | 0;
        var _unary__edvuaz = charIndex;
        charIndex = _unary__edvuaz + 1 | 0;
        charArray_1[_unary__edvuaz] = byteSeparatorChar;
        charIndex = formatByteAt_0(_this__u8e3s4, byteIndex_0, byteToDigits, charArray_1, charIndex);
      }
       while (inductionVariable_0 < endIndex);
    return concatToString(charArray_1);
  }
}
function toHexStringNoLineAndGroupSeparatorSlowPath(_this__u8e3s4, startIndex, endIndex, bytesFormat, byteToDigits) {
  _init_properties_HexExtensions_kt__wu8rc3();
  var bytePrefix = bytesFormat.qg_1;
  var byteSuffix = bytesFormat.rg_1;
  var byteSeparator = bytesFormat.pg_1;
  var formatLength = formattedStringLength_0(endIndex - startIndex | 0, byteSeparator.length, bytePrefix.length, byteSuffix.length);
  var charArray_0 = charArray(formatLength);
  var charIndex = 0;
  charIndex = formatByteAt(_this__u8e3s4, startIndex, bytePrefix, byteSuffix, byteToDigits, charArray_0, charIndex);
  var inductionVariable = startIndex + 1 | 0;
  if (inductionVariable < endIndex)
    do {
      var byteIndex = inductionVariable;
      inductionVariable = inductionVariable + 1 | 0;
      charIndex = toCharArrayIfNotEmpty(byteSeparator, charArray_0, charIndex);
      charIndex = formatByteAt(_this__u8e3s4, byteIndex, bytePrefix, byteSuffix, byteToDigits, charArray_0, charIndex);
    }
     while (inductionVariable < endIndex);
  return concatToString(charArray_0);
}
function formattedStringLength(numberOfBytes, bytesPerLine, bytesPerGroup, groupSeparatorLength, byteSeparatorLength, bytePrefixLength, byteSuffixLength) {
  _init_properties_HexExtensions_kt__wu8rc3();
  // Inline function 'kotlin.require' call
  // Inline function 'kotlin.require' call
  if (!(numberOfBytes > 0)) {
    var message = 'Failed requirement.';
    throw IllegalArgumentException.w(toString_1(message));
  }
  var lineSeparators = (numberOfBytes - 1 | 0) / bytesPerLine | 0;
  // Inline function 'kotlin.run' call
  var groupSeparatorsPerLine = (bytesPerLine - 1 | 0) / bytesPerGroup | 0;
  // Inline function 'kotlin.let' call
  var it = numberOfBytes % bytesPerLine | 0;
  var bytesInLastLine = it === 0 ? bytesPerLine : it;
  var groupSeparatorsInLastLine = (bytesInLastLine - 1 | 0) / bytesPerGroup | 0;
  var groupSeparators = imul_0(lineSeparators, groupSeparatorsPerLine) + groupSeparatorsInLastLine | 0;
  var byteSeparators = ((numberOfBytes - 1 | 0) - lineSeparators | 0) - groupSeparators | 0;
  var formatLength = add_0(add_0(add_0(fromInt_0(lineSeparators), multiply_0(fromInt_0(groupSeparators), fromInt_0(groupSeparatorLength))), multiply_0(fromInt_0(byteSeparators), fromInt_0(byteSeparatorLength))), multiply_0(fromInt_0(numberOfBytes), add_0(add_0(fromInt_0(bytePrefixLength), 2n), fromInt_0(byteSuffixLength))));
  return checkFormatLength(formatLength);
}
function toCharArrayIfNotEmpty(_this__u8e3s4, destination, destinationOffset) {
  _init_properties_HexExtensions_kt__wu8rc3();
  switch (_this__u8e3s4.length) {
    case 0:
      break;
    case 1:
      destination[destinationOffset] = charCodeAt(_this__u8e3s4, 0);
      break;
    default:
      toCharArray(_this__u8e3s4, destination, destinationOffset);
      break;
  }
  return destinationOffset + _this__u8e3s4.length | 0;
}
function formatByteAt(_this__u8e3s4, index, bytePrefix, byteSuffix, byteToDigits, destination, destinationOffset) {
  _init_properties_HexExtensions_kt__wu8rc3();
  var offset = toCharArrayIfNotEmpty(bytePrefix, destination, destinationOffset);
  offset = formatByteAt_0(_this__u8e3s4, index, byteToDigits, destination, offset);
  return toCharArrayIfNotEmpty(byteSuffix, destination, offset);
}
function checkFormatLength(formatLength) {
  _init_properties_HexExtensions_kt__wu8rc3();
  // Inline function 'kotlin.ranges.contains' call
  var this_0 = numberRangeToNumber(0, 2147483647);
  if (!contains_1(isInterface(this_0, ClosedRange) ? this_0 : THROW_CCE(), formatLength)) {
    // Inline function 'kotlin.toULong' call
    var tmp$ret$1 = _ULong___init__impl__c78o9k(formatLength);
    throw IllegalArgumentException.w('The resulting string length is too big: ' + new ULong(tmp$ret$1));
  }
  return convertToInt(formatLength);
}
function formatByteAt_0(_this__u8e3s4, index, byteToDigits, destination, destinationOffset) {
  _init_properties_HexExtensions_kt__wu8rc3();
  var byte = _this__u8e3s4[index] & 255;
  var byteDigits = byteToDigits[byte];
  destination[destinationOffset] = numberToChar(byteDigits >> 8);
  destination[destinationOffset + 1 | 0] = numberToChar(byteDigits & 255);
  return destinationOffset + 2 | 0;
}
function formattedStringLength_0(numberOfBytes, byteSeparatorLength, bytePrefixLength, byteSuffixLength) {
  _init_properties_HexExtensions_kt__wu8rc3();
  // Inline function 'kotlin.require' call
  // Inline function 'kotlin.require' call
  if (!(numberOfBytes > 0)) {
    var message = 'Failed requirement.';
    throw IllegalArgumentException.w(toString_1(message));
  }
  // Inline function 'kotlin.Long.plus' call
  // Inline function 'kotlin.Long.plus' call
  var this_0 = add_0(2n, fromInt_0(bytePrefixLength));
  // Inline function 'kotlin.Long.plus' call
  var this_1 = add_0(this_0, fromInt_0(byteSuffixLength));
  var charsPerByte = add_0(this_1, fromInt_0(byteSeparatorLength));
  // Inline function 'kotlin.Long.minus' call
  var this_2 = multiply_0(numberToLong(numberOfBytes), charsPerByte);
  var formatLength = subtract_0(this_2, fromInt_0(byteSeparatorLength));
  return checkFormatLength(formatLength);
}
var properties_initialized_HexExtensions_kt_h16sbl;
function _init_properties_HexExtensions_kt__wu8rc3() {
  if (!properties_initialized_HexExtensions_kt_h16sbl) {
    properties_initialized_HexExtensions_kt_h16sbl = true;
    var tmp = 0;
    var tmp_0 = new Int32Array(256);
    while (tmp < 256) {
      var tmp_1 = tmp;
      // Inline function 'kotlin.code' call
      var this_0 = charCodeAt('0123456789abcdef', tmp_1 >> 4);
      var tmp_2 = Char__toInt_impl_vasixd(this_0) << 8;
      // Inline function 'kotlin.code' call
      var this_1 = charCodeAt('0123456789abcdef', tmp_1 & 15);
      tmp_0[tmp_1] = tmp_2 | Char__toInt_impl_vasixd(this_1);
      tmp = tmp + 1 | 0;
    }
    BYTE_TO_LOWER_CASE_HEX_DIGITS = tmp_0;
    var tmp_3 = 0;
    var tmp_4 = new Int32Array(256);
    while (tmp_3 < 256) {
      var tmp_5 = tmp_3;
      // Inline function 'kotlin.code' call
      var this_2 = charCodeAt('0123456789ABCDEF', tmp_5 >> 4);
      var tmp_6 = Char__toInt_impl_vasixd(this_2) << 8;
      // Inline function 'kotlin.code' call
      var this_3 = charCodeAt('0123456789ABCDEF', tmp_5 & 15);
      tmp_4[tmp_5] = tmp_6 | Char__toInt_impl_vasixd(this_3);
      tmp_3 = tmp_3 + 1 | 0;
    }
    BYTE_TO_UPPER_CASE_HEX_DIGITS = tmp_4;
    var tmp_7 = 0;
    var tmp_8 = new Int32Array(256);
    while (tmp_7 < 256) {
      tmp_8[tmp_7] = -1;
      tmp_7 = tmp_7 + 1 | 0;
    }
    // Inline function 'kotlin.apply' call
    // Inline function 'kotlin.text.forEachIndexed' call
    var index = 0;
    var indexedObject = '0123456789abcdef';
    var inductionVariable = 0;
    while (inductionVariable < charSequenceLength(indexedObject)) {
      var item = charSequenceGet(indexedObject, inductionVariable);
      inductionVariable = inductionVariable + 1 | 0;
      var _unary__edvuaz = index;
      index = _unary__edvuaz + 1 | 0;
      // Inline function 'kotlin.code' call
      tmp_8[Char__toInt_impl_vasixd(item)] = _unary__edvuaz;
    }
    // Inline function 'kotlin.text.forEachIndexed' call
    var index_0 = 0;
    var indexedObject_0 = '0123456789ABCDEF';
    var inductionVariable_0 = 0;
    while (inductionVariable_0 < charSequenceLength(indexedObject_0)) {
      var item_0 = charSequenceGet(indexedObject_0, inductionVariable_0);
      inductionVariable_0 = inductionVariable_0 + 1 | 0;
      var _unary__edvuaz_0 = index_0;
      index_0 = _unary__edvuaz_0 + 1 | 0;
      // Inline function 'kotlin.code' call
      tmp_8[Char__toInt_impl_vasixd(item_0)] = _unary__edvuaz_0;
    }
    HEX_DIGITS_TO_DECIMAL = tmp_8;
    var tmp_9 = 0;
    var tmp_10 = new BigInt64Array(256);
    while (tmp_9 < 256) {
      tmp_10[tmp_9] = -1n;
      tmp_9 = tmp_9 + 1 | 0;
    }
    // Inline function 'kotlin.apply' call
    // Inline function 'kotlin.text.forEachIndexed' call
    var index_1 = 0;
    var indexedObject_1 = '0123456789abcdef';
    var inductionVariable_1 = 0;
    while (inductionVariable_1 < charSequenceLength(indexedObject_1)) {
      var item_1 = charSequenceGet(indexedObject_1, inductionVariable_1);
      inductionVariable_1 = inductionVariable_1 + 1 | 0;
      var _unary__edvuaz_1 = index_1;
      index_1 = _unary__edvuaz_1 + 1 | 0;
      // Inline function 'kotlin.code' call
      tmp_10[Char__toInt_impl_vasixd(item_1)] = fromInt_0(_unary__edvuaz_1);
    }
    // Inline function 'kotlin.text.forEachIndexed' call
    var index_2 = 0;
    var indexedObject_2 = '0123456789ABCDEF';
    var inductionVariable_2 = 0;
    while (inductionVariable_2 < charSequenceLength(indexedObject_2)) {
      var item_2 = charSequenceGet(indexedObject_2, inductionVariable_2);
      inductionVariable_2 = inductionVariable_2 + 1 | 0;
      var _unary__edvuaz_2 = index_2;
      index_2 = _unary__edvuaz_2 + 1 | 0;
      // Inline function 'kotlin.code' call
      tmp_10[Char__toInt_impl_vasixd(item_2)] = fromInt_0(_unary__edvuaz_2);
    }
    HEX_DIGITS_TO_LONG_DECIMAL = tmp_10;
  }
}
var Companion_instance_12;
function Companion_getInstance_12() {
  if (Companion_instance_12 === VOID)
    new Companion_12();
  return Companion_instance_12;
}
var Companion_instance_13;
function Companion_getInstance_13() {
  if (Companion_instance_13 === VOID)
    new Companion_13();
  return Companion_instance_13;
}
var Companion_instance_14;
function Companion_getInstance_14() {
  if (Companion_instance_14 === VOID)
    new Companion_14();
  return Companion_instance_14;
}
function isCaseSensitive(_this__u8e3s4) {
  var tmp$ret$1;
  $l$block: {
    // Inline function 'kotlin.text.any' call
    var inductionVariable = 0;
    while (inductionVariable < charSequenceLength(_this__u8e3s4)) {
      var element = charSequenceGet(_this__u8e3s4, inductionVariable);
      inductionVariable = inductionVariable + 1 | 0;
      if (Char__compareTo_impl_ypi4mb(element, _Char___init__impl__6a9atx(128)) >= 0 || isLetter(element)) {
        tmp$ret$1 = true;
        break $l$block;
      }
    }
    tmp$ret$1 = false;
  }
  return tmp$ret$1;
}
function toIntOrNull(_this__u8e3s4) {
  return toIntOrNull_0(_this__u8e3s4, 10);
}
function toIntOrNull_0(_this__u8e3s4, radix) {
  checkRadix(radix);
  var length = _this__u8e3s4.length;
  if (length === 0)
    return null;
  var start;
  var isNegative;
  var limit;
  var firstChar = charCodeAt(_this__u8e3s4, 0);
  if (Char__compareTo_impl_ypi4mb(firstChar, _Char___init__impl__6a9atx(48)) < 0) {
    if (length === 1)
      return null;
    start = 1;
    if (firstChar === _Char___init__impl__6a9atx(45)) {
      isNegative = true;
      limit = -2147483648;
    } else if (firstChar === _Char___init__impl__6a9atx(43)) {
      isNegative = false;
      limit = -2147483647;
    } else
      return null;
  } else {
    start = 0;
    isNegative = false;
    limit = -2147483647;
  }
  var limitForMaxRadix = -59652323;
  var limitBeforeMul = limitForMaxRadix;
  var result = 0;
  var inductionVariable = start;
  if (inductionVariable < length)
    do {
      var i = inductionVariable;
      inductionVariable = inductionVariable + 1 | 0;
      var digit = digitOf(charCodeAt(_this__u8e3s4, i), radix);
      if (digit < 0)
        return null;
      if (result < limitBeforeMul) {
        if (limitBeforeMul === limitForMaxRadix) {
          limitBeforeMul = limit / radix | 0;
          if (result < limitBeforeMul) {
            return null;
          }
        } else {
          return null;
        }
      }
      result = imul_0(result, radix);
      if (result < (limit + digit | 0))
        return null;
      result = result - digit | 0;
    }
     while (inductionVariable < length);
  return isNegative ? result : -result | 0;
}
function numberFormatError(input) {
  throw NumberFormatException.xb("Invalid number format: '" + input + "'");
}
function lastIndexOf_0(_this__u8e3s4, char, startIndex, ignoreCase) {
  startIndex = startIndex === VOID ? get_lastIndex_1(_this__u8e3s4) : startIndex;
  ignoreCase = ignoreCase === VOID ? false : ignoreCase;
  var tmp;
  var tmp_0;
  if (ignoreCase) {
    tmp_0 = true;
  } else {
    tmp_0 = !(typeof _this__u8e3s4 === 'string');
  }
  if (tmp_0) {
    // Inline function 'kotlin.charArrayOf' call
    var tmp$ret$0 = charArrayOf([char]);
    tmp = lastIndexOfAny(_this__u8e3s4, tmp$ret$0, startIndex, ignoreCase);
  } else {
    // Inline function 'kotlin.text.nativeLastIndexOf' call
    // Inline function 'kotlin.text.nativeLastIndexOf' call
    var str = toString(char);
    // Inline function 'kotlin.js.asDynamic' call
    tmp = _this__u8e3s4.lastIndexOf(str, startIndex);
  }
  return tmp;
}
function removeRange(_this__u8e3s4, startIndex, endIndex) {
  if (endIndex < startIndex)
    throw IndexOutOfBoundsException.rb('End index (' + endIndex + ') is less than start index (' + startIndex + ').');
  if (endIndex === startIndex)
    return charSequenceSubSequence(_this__u8e3s4, 0, charSequenceLength(_this__u8e3s4));
  var sb = StringBuilder.ua(charSequenceLength(_this__u8e3s4) - (endIndex - startIndex | 0) | 0);
  // Inline function 'kotlin.text.appendRange' call
  sb.zd(_this__u8e3s4, 0, startIndex);
  // Inline function 'kotlin.text.appendRange' call
  var endIndex_0 = charSequenceLength(_this__u8e3s4);
  sb.zd(_this__u8e3s4, endIndex, endIndex_0);
  return sb;
}
function contains_2(_this__u8e3s4, other, ignoreCase) {
  ignoreCase = ignoreCase === VOID ? false : ignoreCase;
  var tmp;
  if (typeof other === 'string') {
    tmp = indexOf_0(_this__u8e3s4, other, VOID, ignoreCase) >= 0;
  } else {
    tmp = indexOf_2(_this__u8e3s4, other, 0, charSequenceLength(_this__u8e3s4), ignoreCase) >= 0;
  }
  return tmp;
}
function indexOf_0(_this__u8e3s4, string, startIndex, ignoreCase) {
  startIndex = startIndex === VOID ? 0 : startIndex;
  ignoreCase = ignoreCase === VOID ? false : ignoreCase;
  var tmp;
  var tmp_0;
  if (ignoreCase) {
    tmp_0 = true;
  } else {
    tmp_0 = !(typeof _this__u8e3s4 === 'string');
  }
  if (tmp_0) {
    tmp = indexOf_2(_this__u8e3s4, string, startIndex, charSequenceLength(_this__u8e3s4), ignoreCase);
  } else {
    // Inline function 'kotlin.text.nativeIndexOf' call
    // Inline function 'kotlin.js.asDynamic' call
    tmp = _this__u8e3s4.indexOf(string, startIndex);
  }
  return tmp;
}
function indexOf_1(_this__u8e3s4, char, startIndex, ignoreCase) {
  startIndex = startIndex === VOID ? 0 : startIndex;
  ignoreCase = ignoreCase === VOID ? false : ignoreCase;
  var tmp;
  var tmp_0;
  if (ignoreCase) {
    tmp_0 = true;
  } else {
    tmp_0 = !(typeof _this__u8e3s4 === 'string');
  }
  if (tmp_0) {
    // Inline function 'kotlin.charArrayOf' call
    var tmp$ret$0 = charArrayOf([char]);
    tmp = indexOfAny(_this__u8e3s4, tmp$ret$0, startIndex, ignoreCase);
  } else {
    // Inline function 'kotlin.text.nativeIndexOf' call
    // Inline function 'kotlin.text.nativeIndexOf' call
    var str = toString(char);
    // Inline function 'kotlin.js.asDynamic' call
    tmp = _this__u8e3s4.indexOf(str, startIndex);
  }
  return tmp;
}
function contains_3(_this__u8e3s4, char, ignoreCase) {
  ignoreCase = ignoreCase === VOID ? false : ignoreCase;
  return indexOf_1(_this__u8e3s4, char, VOID, ignoreCase) >= 0;
}
function get_lastIndex_1(_this__u8e3s4) {
  return charSequenceLength(_this__u8e3s4) - 1 | 0;
}
function split(_this__u8e3s4, delimiters, ignoreCase, limit) {
  ignoreCase = ignoreCase === VOID ? false : ignoreCase;
  limit = limit === VOID ? 0 : limit;
  if (delimiters.length === 1) {
    var delimiter = delimiters[0];
    // Inline function 'kotlin.text.isEmpty' call
    if (!(charSequenceLength(delimiter) === 0)) {
      return split_0(_this__u8e3s4, delimiter, ignoreCase, limit);
    }
  }
  // Inline function 'kotlin.collections.map' call
  var this_0 = asIterable(rangesDelimitedBy(_this__u8e3s4, delimiters, VOID, ignoreCase, limit));
  // Inline function 'kotlin.collections.mapTo' call
  var destination = ArrayList.n1(collectionSizeOrDefault(this_0, 10));
  var _iterator__ex2g4s = this_0.h1();
  while (_iterator__ex2g4s.i1()) {
    var item = _iterator__ex2g4s.j1();
    var tmp$ret$1 = substring_1(_this__u8e3s4, item);
    destination.c1(tmp$ret$1);
  }
  return destination;
}
function lineSequence(_this__u8e3s4) {
  // Inline function 'kotlin.sequences.Sequence' call
  return new lineSequence$$inlined$Sequence$1(_this__u8e3s4);
}
function lastIndexOfAny(_this__u8e3s4, chars, startIndex, ignoreCase) {
  startIndex = startIndex === VOID ? get_lastIndex_1(_this__u8e3s4) : startIndex;
  ignoreCase = ignoreCase === VOID ? false : ignoreCase;
  var tmp;
  if (!ignoreCase && chars.length === 1) {
    tmp = typeof _this__u8e3s4 === 'string';
  } else {
    tmp = false;
  }
  if (tmp) {
    var char = single(chars);
    // Inline function 'kotlin.text.nativeLastIndexOf' call
    // Inline function 'kotlin.text.nativeLastIndexOf' call
    var str = toString(char);
    // Inline function 'kotlin.js.asDynamic' call
    return _this__u8e3s4.lastIndexOf(str, startIndex);
  }
  var inductionVariable = coerceAtMost(startIndex, get_lastIndex_1(_this__u8e3s4));
  if (0 <= inductionVariable)
    do {
      var index = inductionVariable;
      inductionVariable = inductionVariable + -1 | 0;
      var charAtIndex = charSequenceGet(_this__u8e3s4, index);
      var tmp$ret$4;
      $l$block: {
        // Inline function 'kotlin.collections.any' call
        var inductionVariable_0 = 0;
        var last = chars.length;
        while (inductionVariable_0 < last) {
          var element = chars[inductionVariable_0];
          inductionVariable_0 = inductionVariable_0 + 1 | 0;
          if (equals_1(element, charAtIndex, ignoreCase)) {
            tmp$ret$4 = true;
            break $l$block;
          }
        }
        tmp$ret$4 = false;
      }
      if (tmp$ret$4)
        return index;
    }
     while (0 <= inductionVariable);
  return -1;
}
function indexOf_2(_this__u8e3s4, other, startIndex, endIndex, ignoreCase, last) {
  last = last === VOID ? false : last;
  var indices = !last ? numberRangeToNumber(coerceAtLeast(startIndex, 0), coerceAtMost(endIndex, charSequenceLength(_this__u8e3s4))) : downTo(coerceAtMost(startIndex, get_lastIndex_1(_this__u8e3s4)), coerceAtLeast(endIndex, 0));
  var tmp;
  if (typeof _this__u8e3s4 === 'string') {
    tmp = typeof other === 'string';
  } else {
    tmp = false;
  }
  if (tmp) {
    var inductionVariable = indices.yf_1;
    var last_0 = indices.zf_1;
    var step = indices.ag_1;
    if (step > 0 && inductionVariable <= last_0 || (step < 0 && last_0 <= inductionVariable))
      do {
        var index = inductionVariable;
        inductionVariable = inductionVariable + step | 0;
        if (regionMatches(other, 0, _this__u8e3s4, index, other.length, ignoreCase))
          return index;
      }
       while (!(index === last_0));
  } else {
    var inductionVariable_0 = indices.yf_1;
    var last_1 = indices.zf_1;
    var step_0 = indices.ag_1;
    if (step_0 > 0 && inductionVariable_0 <= last_1 || (step_0 < 0 && last_1 <= inductionVariable_0))
      do {
        var index_0 = inductionVariable_0;
        inductionVariable_0 = inductionVariable_0 + step_0 | 0;
        if (regionMatchesImpl(other, 0, _this__u8e3s4, index_0, charSequenceLength(other), ignoreCase))
          return index_0;
      }
       while (!(index_0 === last_1));
  }
  return -1;
}
function indexOfAny(_this__u8e3s4, chars, startIndex, ignoreCase) {
  startIndex = startIndex === VOID ? 0 : startIndex;
  ignoreCase = ignoreCase === VOID ? false : ignoreCase;
  var tmp;
  if (!ignoreCase && chars.length === 1) {
    tmp = typeof _this__u8e3s4 === 'string';
  } else {
    tmp = false;
  }
  if (tmp) {
    var char = single(chars);
    // Inline function 'kotlin.text.nativeIndexOf' call
    // Inline function 'kotlin.text.nativeIndexOf' call
    var str = toString(char);
    // Inline function 'kotlin.js.asDynamic' call
    return _this__u8e3s4.indexOf(str, startIndex);
  }
  var inductionVariable = coerceAtLeast(startIndex, 0);
  var last = get_lastIndex_1(_this__u8e3s4);
  if (inductionVariable <= last)
    do {
      var index = inductionVariable;
      inductionVariable = inductionVariable + 1 | 0;
      var charAtIndex = charSequenceGet(_this__u8e3s4, index);
      var tmp$ret$4;
      $l$block: {
        // Inline function 'kotlin.collections.any' call
        var inductionVariable_0 = 0;
        var last_0 = chars.length;
        while (inductionVariable_0 < last_0) {
          var element = chars[inductionVariable_0];
          inductionVariable_0 = inductionVariable_0 + 1 | 0;
          if (equals_1(element, charAtIndex, ignoreCase)) {
            tmp$ret$4 = true;
            break $l$block;
          }
        }
        tmp$ret$4 = false;
      }
      if (tmp$ret$4)
        return index;
    }
     while (!(index === last));
  return -1;
}
function regionMatchesImpl(_this__u8e3s4, thisOffset, other, otherOffset, length, ignoreCase) {
  if (otherOffset < 0 || thisOffset < 0 || thisOffset > (charSequenceLength(_this__u8e3s4) - length | 0) || otherOffset > (charSequenceLength(other) - length | 0)) {
    return false;
  }
  var inductionVariable = 0;
  if (inductionVariable < length)
    do {
      var index = inductionVariable;
      inductionVariable = inductionVariable + 1 | 0;
      if (!equals_1(charSequenceGet(_this__u8e3s4, thisOffset + index | 0), charSequenceGet(other, otherOffset + index | 0), ignoreCase))
        return false;
    }
     while (inductionVariable < length);
  return true;
}
function split_0(_this__u8e3s4, delimiter, ignoreCase, limit) {
  requireNonNegativeLimit(limit);
  var currentOffset = 0;
  var nextIndex = indexOf_0(_this__u8e3s4, delimiter, currentOffset, ignoreCase);
  if (nextIndex === -1 || limit === 1) {
    return listOf(toString_1(_this__u8e3s4));
  }
  var isLimited = limit > 0;
  var result = ArrayList.n1(isLimited ? coerceAtMost(limit, 10) : 10);
  $l$loop: do {
    var tmp2 = currentOffset;
    // Inline function 'kotlin.text.substring' call
    var endIndex = nextIndex;
    var tmp$ret$0 = toString_1(charSequenceSubSequence(_this__u8e3s4, tmp2, endIndex));
    result.c1(tmp$ret$0);
    currentOffset = nextIndex + delimiter.length | 0;
    if (isLimited && result.k1() === (limit - 1 | 0))
      break $l$loop;
    nextIndex = indexOf_0(_this__u8e3s4, delimiter, currentOffset, ignoreCase);
  }
   while (!(nextIndex === -1));
  var tmp2_0 = currentOffset;
  // Inline function 'kotlin.text.substring' call
  var endIndex_0 = charSequenceLength(_this__u8e3s4);
  var tmp$ret$1 = toString_1(charSequenceSubSequence(_this__u8e3s4, tmp2_0, endIndex_0));
  result.c1(tmp$ret$1);
  return result;
}
function substring_1(_this__u8e3s4, range) {
  return toString_1(charSequenceSubSequence(_this__u8e3s4, range.xf(), range.bg() + 1 | 0));
}
function isBlank(_this__u8e3s4) {
  var tmp$ret$1;
  $l$block: {
    // Inline function 'kotlin.text.all' call
    var inductionVariable = 0;
    while (inductionVariable < charSequenceLength(_this__u8e3s4)) {
      var element = charSequenceGet(_this__u8e3s4, inductionVariable);
      inductionVariable = inductionVariable + 1 | 0;
      if (!isWhitespace(element)) {
        tmp$ret$1 = false;
        break $l$block;
      }
    }
    tmp$ret$1 = true;
  }
  return tmp$ret$1;
}
function rangesDelimitedBy(_this__u8e3s4, delimiters, startIndex, ignoreCase, limit) {
  startIndex = startIndex === VOID ? 0 : startIndex;
  ignoreCase = ignoreCase === VOID ? false : ignoreCase;
  limit = limit === VOID ? 0 : limit;
  requireNonNegativeLimit(limit);
  var delimitersList = asList(delimiters);
  return new DelimitedRangesSequence(_this__u8e3s4, startIndex, limit, rangesDelimitedBy$lambda(delimitersList, ignoreCase));
}
var State_instance;
function State_getInstance() {
  return State_instance;
}
function requireNonNegativeLimit(limit) {
  // Inline function 'kotlin.require' call
  if (!(limit >= 0)) {
    var message = 'Limit must be non-negative, but was ' + limit;
    throw IllegalArgumentException.w(toString_1(message));
  }
  return Unit_instance;
}
function calcNext($this) {
  if ($this.ei_1 < 0) {
    $this.ci_1 = 0;
    $this.fi_1 = null;
  } else {
    var tmp;
    var tmp_0;
    if ($this.hi_1.ki_1 > 0) {
      $this.gi_1 = $this.gi_1 + 1 | 0;
      tmp_0 = $this.gi_1 >= $this.hi_1.ki_1;
    } else {
      tmp_0 = false;
    }
    if (tmp_0) {
      tmp = true;
    } else {
      tmp = $this.ei_1 > charSequenceLength($this.hi_1.ii_1);
    }
    if (tmp) {
      $this.fi_1 = numberRangeToNumber($this.di_1, get_lastIndex_1($this.hi_1.ii_1));
      $this.ei_1 = -1;
    } else {
      var match = $this.hi_1.li_1($this.hi_1.ii_1, $this.ei_1);
      if (match == null) {
        $this.fi_1 = numberRangeToNumber($this.di_1, get_lastIndex_1($this.hi_1.ii_1));
        $this.ei_1 = -1;
      } else {
        var index = match.mi();
        var length = match.ni();
        $this.fi_1 = until($this.di_1, index);
        $this.di_1 = index + length | 0;
        $this.ei_1 = $this.di_1 + (length === 0 ? 1 : 0) | 0;
      }
    }
    $this.ci_1 = 1;
  }
}
function findAnyOf(_this__u8e3s4, strings, startIndex, ignoreCase, last) {
  if (!ignoreCase && strings.k1() === 1) {
    var string = single_1(strings);
    var index = !last ? indexOf_0(_this__u8e3s4, string, startIndex) : lastIndexOf_1(_this__u8e3s4, string, startIndex);
    return index < 0 ? null : to(index, string);
  }
  var indices = !last ? numberRangeToNumber(coerceAtLeast(startIndex, 0), charSequenceLength(_this__u8e3s4)) : downTo(coerceAtMost(startIndex, get_lastIndex_1(_this__u8e3s4)), 0);
  if (typeof _this__u8e3s4 === 'string') {
    var inductionVariable = indices.yf_1;
    var last_0 = indices.zf_1;
    var step = indices.ag_1;
    if (step > 0 && inductionVariable <= last_0 || (step < 0 && last_0 <= inductionVariable))
      do {
        var index_0 = inductionVariable;
        inductionVariable = inductionVariable + step | 0;
        var tmp$ret$1;
        $l$block: {
          // Inline function 'kotlin.collections.firstOrNull' call
          var _iterator__ex2g4s = strings.h1();
          while (_iterator__ex2g4s.i1()) {
            var element = _iterator__ex2g4s.j1();
            if (regionMatches(element, 0, _this__u8e3s4, index_0, element.length, ignoreCase)) {
              tmp$ret$1 = element;
              break $l$block;
            }
          }
          tmp$ret$1 = null;
        }
        var matchingString = tmp$ret$1;
        if (!(matchingString == null))
          return to(index_0, matchingString);
      }
       while (!(index_0 === last_0));
  } else {
    var inductionVariable_0 = indices.yf_1;
    var last_1 = indices.zf_1;
    var step_0 = indices.ag_1;
    if (step_0 > 0 && inductionVariable_0 <= last_1 || (step_0 < 0 && last_1 <= inductionVariable_0))
      do {
        var index_1 = inductionVariable_0;
        inductionVariable_0 = inductionVariable_0 + step_0 | 0;
        var tmp$ret$3;
        $l$block_0: {
          // Inline function 'kotlin.collections.firstOrNull' call
          var _iterator__ex2g4s_0 = strings.h1();
          while (_iterator__ex2g4s_0.i1()) {
            var element_0 = _iterator__ex2g4s_0.j1();
            if (regionMatchesImpl(element_0, 0, _this__u8e3s4, index_1, element_0.length, ignoreCase)) {
              tmp$ret$3 = element_0;
              break $l$block_0;
            }
          }
          tmp$ret$3 = null;
        }
        var matchingString_0 = tmp$ret$3;
        if (!(matchingString_0 == null))
          return to(index_1, matchingString_0);
      }
       while (!(index_1 === last_1));
  }
  return null;
}
function lastIndexOf_1(_this__u8e3s4, string, startIndex, ignoreCase) {
  startIndex = startIndex === VOID ? get_lastIndex_1(_this__u8e3s4) : startIndex;
  ignoreCase = ignoreCase === VOID ? false : ignoreCase;
  var tmp;
  var tmp_0;
  if (ignoreCase) {
    tmp_0 = true;
  } else {
    tmp_0 = !(typeof _this__u8e3s4 === 'string');
  }
  if (tmp_0) {
    tmp = indexOf_2(_this__u8e3s4, string, startIndex, 0, ignoreCase, true);
  } else {
    // Inline function 'kotlin.text.nativeLastIndexOf' call
    // Inline function 'kotlin.js.asDynamic' call
    tmp = _this__u8e3s4.lastIndexOf(string, startIndex);
  }
  return tmp;
}
function rangesDelimitedBy$lambda($delimitersList, $ignoreCase) {
  return ($this$DelimitedRangesSequence, currentIndex) => {
    var tmp0_safe_receiver = findAnyOf($this$DelimitedRangesSequence, $delimitersList, currentIndex, $ignoreCase, false);
    var tmp;
    if (tmp0_safe_receiver == null) {
      tmp = null;
    } else {
      // Inline function 'kotlin.let' call
      tmp = to(tmp0_safe_receiver.first, tmp0_safe_receiver.second.length);
    }
    return tmp;
  };
}
var UNINITIALIZED_VALUE_instance;
function UNINITIALIZED_VALUE_getInstance() {
  return UNINITIALIZED_VALUE_instance;
}
function to(_this__u8e3s4, that) {
  return new Pair(_this__u8e3s4, that);
}
function _UByte___init__impl__g9hnc4(data) {
  return data;
}
function _UByte___get_data__impl__jof9qr($this) {
  return $this;
}
function UByte__toString_impl_v72jg($this) {
  // Inline function 'kotlin.UByte.toInt' call
  return (_UByte___get_data__impl__jof9qr($this) & 255).toString();
}
function _UInt___init__impl__l7qpdl(data) {
  return data;
}
function _UInt___get_data__impl__f0vqqw($this) {
  return $this;
}
function _ULong___init__impl__c78o9k(data) {
  return data;
}
function _ULong___get_data__impl__fggpzb($this) {
  return $this;
}
var Companion_instance_15;
function Companion_getInstance_15() {
  if (Companion_instance_15 === VOID)
    new Companion_15();
  return Companion_instance_15;
}
function ULong__compareTo_impl_38i7tu($this, other) {
  return ulongCompare(_ULong___get_data__impl__fggpzb($this), _ULong___get_data__impl__fggpzb(other));
}
function ULong__compareTo_impl_38i7tu_0($this, other) {
  return ULong__compareTo_impl_38i7tu($this.cj_1, other instanceof ULong ? other.cj_1 : THROW_CCE());
}
function ULong__toString_impl_f9au7k($this) {
  // Inline function 'kotlin.ulongToString' call
  var value = _ULong___get_data__impl__fggpzb($this);
  return ulongToString(value, 10);
}
function ULong__hashCode_impl_6hv2lb($this) {
  return getBigIntHashCode($this);
}
function ULong__equals_impl_o0gnyb($this, other) {
  if (!(other instanceof ULong))
    return false;
  if (!($this === other.cj_1))
    return false;
  return true;
}
function _UShort___init__impl__jigrne(data) {
  return data;
}
function _UShort___get_data__impl__g0245($this) {
  return $this;
}
function toString_6(_this__u8e3s4, radix) {
  // Inline function 'kotlin.UByte.toInt' call
  var tmp$ret$0 = _UByte___get_data__impl__jof9qr(_this__u8e3s4) & 255;
  return toString_3(tmp$ret$0, radix);
}
var Iterables_instance;
function Iterables_getInstance() {
  return Iterables_instance;
}
function empty(_this__u8e3s4) {
  return _this__u8e3s4.p1();
}
function peek(_this__u8e3s4) {
  var tmp;
  // Inline function 'kotlin.collections.isNotEmpty' call
  if (!_this__u8e3s4.p1()) {
    tmp = _this__u8e3s4.l1(get_lastIndex_0(_this__u8e3s4));
  } else {
    tmp = null;
  }
  return tmp;
}
function pop(_this__u8e3s4) {
  var tmp;
  // Inline function 'kotlin.collections.isNotEmpty' call
  if (!_this__u8e3s4.p1()) {
    tmp = _this__u8e3s4.a5(get_lastIndex_0(_this__u8e3s4));
  } else {
    tmp = null;
  }
  return tmp;
}
function arraycopy(src, srcPos, dst, dstPos, size) {
  // Inline function 'kotlin.run' call
  // Inline function 'kotlin.collections.copyInto' call
  var endIndex = srcPos + size | 0;
  arrayCopy(src, dst, dstPos, srcPos, endIndex);
  return Unit_instance;
}
function arraycopy_0(src, srcPos, dst, dstPos, size) {
  // Inline function 'kotlin.run' call
  // Inline function 'kotlin.collections.copyInto' call
  var endIndex = srcPos + size | 0;
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  var tmp = src;
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  arrayCopy(tmp, dst, dstPos, srcPos, endIndex);
  return Unit_instance;
}
function arraycopy_1(src, srcPos, dst, dstPos, size) {
  // Inline function 'kotlin.run' call
  // Inline function 'kotlin.collections.copyInto' call
  var endIndex = srcPos + size | 0;
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  var tmp = src;
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  arrayCopy(tmp, dst, dstPos, srcPos, endIndex);
  return Unit_instance;
}
var Companion_instance_16;
function Companion_getInstance_16() {
  return Companion_instance_16;
}
function processLeadingZeros($this, digits) {
  if ($this.cl_1 > $this.el_1) {
    while ($this.el_1 < $this.cl_1) {
      digits.ra(_Char___init__impl__6a9atx(48));
      $this.el_1 = $this.el_1 + 1 | 0;
    }
  }
  if (!$this.jl_1) {
    if ($this.cl_1 < $this.il_1) {
      var prefix = StringBuilder.y();
      while ($this.cl_1 < $this.il_1) {
        prefix.ra(_Char___init__impl__6a9atx(48));
        $this.cl_1 = $this.cl_1 + 1 | 0;
        $this.el_1 = $this.el_1 + 1 | 0;
      }
      digits.td(0, prefix);
    } else if ($this.cl_1 > $this.il_1) {
      var strip = $this.cl_1 - $this.il_1 | 0;
      var inductionVariable = 0;
      var last = strip;
      if (inductionVariable < last)
        $l$loop: do {
          var i = inductionVariable;
          inductionVariable = inductionVariable + 1 | 0;
          if (!(digits.b(i) === _Char___init__impl__6a9atx(48))) {
            strip = i;
            break $l$loop;
          }
        }
         while (inductionVariable < last);
      if (strip > 0) {
        digits.yd(0, strip);
        $this.el_1 = $this.el_1 - strip | 0;
        $this.cl_1 = $this.cl_1 - strip | 0;
      }
    }
  }
}
function propagateCarry($this, digits, i) {
  var i_0 = i;
  var carry = true;
  while (carry && i_0 >= 0) {
    var digit = digits.b(i_0);
    if (digit === _Char___init__impl__6a9atx(57)) {
      var _unary__edvuaz = i_0;
      i_0 = _unary__edvuaz - 1 | 0;
      digits.wd(_unary__edvuaz, _Char___init__impl__6a9atx(48));
    } else {
      var tmp = i_0;
      // Inline function 'kotlin.code' call
      var tmp$ret$0 = Char__toInt_impl_vasixd(digit);
      digits.wd(tmp, numberToChar(tmp$ret$0 + 1 | 0));
      carry = false;
    }
  }
  if (carry) {
    digits.sd(0, _Char___init__impl__6a9atx(49));
    $this.cl_1 = $this.cl_1 + 1 | 0;
    $this.el_1 = $this.el_1 + 1 | 0;
  }
}
function addZeroAndDecimal($this, digits, decimalSeparator) {
  if ($this.el_1 === 0) {
    digits.sd(0, _Char___init__impl__6a9atx(48));
    $this.cl_1 = $this.cl_1 + 1 | 0;
    $this.el_1 = $this.el_1 + 1 | 0;
  }
  if ($this.cl_1 < $this.el_1 || $this.dl_1) {
    digits.sd($this.cl_1, decimalSeparator);
    $this.el_1 = $this.el_1 + 1 | 0;
  }
}
function adjustFractionDigits($this, digits) {
  var requiredDigits = $this.cl_1 + $this.gl_1 | 0;
  if ($this.el_1 < requiredDigits) {
    while ($this.el_1 < requiredDigits) {
      digits.ra(_Char___init__impl__6a9atx(48));
      $this.el_1 = $this.el_1 + 1 | 0;
    }
  } else {
    var toRemove = $this.cl_1 + $this.hl_1 | 0;
    if (toRemove > $this.el_1) {
      toRemove = $this.el_1;
    }
    while (toRemove > requiredDigits && digits.b(toRemove - 1 | 0) === _Char___init__impl__6a9atx(48)) {
      toRemove = toRemove - 1 | 0;
    }
    if (toRemove < $this.el_1) {
      digits.yd(toRemove, toRemove + $this.el_1 | 0);
      $this.el_1 = toRemove;
    }
  }
}
function roundValue($this, digits) {
  if ($this.el_1 > ($this.cl_1 + $this.hl_1 | 0) && Char__compareTo_impl_ypi4mb(digits.b($this.cl_1 + $this.hl_1 | 0), _Char___init__impl__6a9atx(53)) >= 0) {
    var i = ($this.cl_1 + $this.hl_1 | 0) - 1 | 0;
    propagateCarry($this, digits, i);
  }
}
function toPrecision($this, d, digits) {
  return d.toString();
}
function init_com_macrofocus_common_geom_Dimension(_this__u8e3s4) {
}
function compare_0(v1, v2) {
  return compareTo(v1, v2);
}
function isNaN_3(value) {
  return isNaN_0(value);
}
function doubleToLongBits(value) {
  return toRawBits(value);
}
function convertRadiansToDegrees(angdeg) {
  return angdeg * 57.29577951308232;
}
function convertDegreesToRadians(angdeg) {
  return angdeg * 0.017453292519943295;
}
function isInfinite_1(value) {
  return isInfinite(value);
}
function isNaN_4(value) {
  return isNaN_1(value);
}
function isInfinite_2(value) {
  return isInfinite_0(value);
}
var Companion_instance_17;
function Companion_getInstance_17() {
  if (Companion_instance_17 === VOID)
    new Companion_17();
  return Companion_instance_17;
}
var Companion_instance_18;
function Companion_getInstance_18() {
  if (Companion_instance_18 === VOID)
    new Companion_18();
  return Companion_instance_18;
}
function unitIndex($this, bitIndex) {
  return bitIndex >>> 6 | 0;
}
function bit($this, bitIndex) {
  return shiftLeft(1n, bitIndex & 63);
}
function get($this, bitIndex) {
  var unitIndex_0 = unitIndex(Companion_getInstance_19(), bitIndex);
  return !((ensureNotNull($this.hr_1)[unitIndex_0] & bit(Companion_getInstance_19(), bitIndex)) === 0n);
}
function set($this, bitIndex) {
  var unitIndex_0 = unitIndex(Companion_getInstance_19(), bitIndex);
  ensureNotNull($this.hr_1)[unitIndex_0] = ensureNotNull($this.hr_1)[unitIndex_0] | bit(Companion_getInstance_19(), bitIndex);
}
function sieveSearch($this, limit, start) {
  if (start >= limit) {
    return -1;
  }
  var index = start;
  do {
    if (!get($this, index)) {
      return index;
    }
    index = index + 1 | 0;
  }
   while (index < (limit - 1 | 0));
  return -1;
}
function sieveSingle($this, limit, start, step) {
  var start_0 = start;
  while (start_0 < limit) {
    set($this, start_0);
    start_0 = start_0 + step | 0;
  }
}
var Companion_instance_19;
function Companion_getInstance_19() {
  if (Companion_instance_19 === VOID)
    new Companion_19();
  return Companion_instance_19;
}
function init_com_macrofocus_common_math_big_BitSieve(_this__u8e3s4) {
  Companion_getInstance_19();
  _this__u8e3s4.hr_1 = null;
  _this__u8e3s4.ir_1 = 0;
}
var Companion_instance_20;
function Companion_getInstance_20() {
  if (Companion_instance_20 === VOID)
    new Companion_20();
  return Companion_instance_20;
}
function parseExp($this, in_0, offset, len) {
  var offset_0 = offset;
  var len_0 = len;
  var exp = 0n;
  offset_0 = offset_0 + 1 | 0;
  var c = in_0[offset_0];
  len_0 = len_0 - 1 | 0;
  var negexp = c === _Char___init__impl__6a9atx(45);
  if (negexp || c === _Char___init__impl__6a9atx(43)) {
    offset_0 = offset_0 + 1 | 0;
    c = in_0[offset_0];
    len_0 = len_0 - 1 | 0;
  }
  if (len_0 <= 0) {
    throw NumberFormatException.xb('No exponent digits.');
  }
  while (len_0 > 10 && (c === _Char___init__impl__6a9atx(48) || toDigit(c, 10) === 0)) {
    offset_0 = offset_0 + 1 | 0;
    c = in_0[offset_0];
    len_0 = len_0 - 1 | 0;
  }
  if (len_0 > 10) {
    throw NumberFormatException.xb('Too many nonzero exponent digits.');
  }
  $l$loop: while (true) {
    var v;
    if (_Char___init__impl__6a9atx(48) <= c ? c <= _Char___init__impl__6a9atx(57) : false) {
      v = Char__minus_impl_a2frrh(c, _Char___init__impl__6a9atx(48));
    } else {
      v = toDigit(c, 10);
      if (v < 0) {
        throw NumberFormatException.xb('Not a digit.');
      }
    }
    // Inline function 'kotlin.Long.times' call
    var this_0 = exp;
    var tmp0 = multiply_0(this_0, fromInt_0(10));
    // Inline function 'kotlin.Long.plus' call
    var other = v;
    exp = add_0(tmp0, fromInt_0(other));
    if (len_0 === 1) {
      break $l$loop;
    }
    offset_0 = offset_0 + 1 | 0;
    c = in_0[offset_0];
    len_0 = len_0 - 1 | 0;
  }
  if (negexp) {
    exp = negate_0(exp);
  }
  return exp;
}
function bigTenToThe($this, n) {
  if (n < 0) {
    return Companion_getInstance_22().ZERO;
  }
  if (n < $this.rt_1) {
    var pows = $this.pt_1;
    var tmp;
    if (n < pows.length) {
      tmp = ensureNotNull(pows[n]);
    } else {
      tmp = expandBigIntegerTenPowers($this, n);
    }
    return tmp;
  }
  return Companion_getInstance_22().TEN.pow(n);
}
function expandBigIntegerTenPowers($this, n) {
  // Inline function 'com.macrofocus.common.math.big.lock' call
  var pows = Companion_getInstance_21().pt_1;
  var curLen = pows.length;
  if (curLen <= n) {
    var newLen = curLen << 1;
    while (newLen <= n) {
      newLen = newLen << 1;
    }
    pows = copyOf_0(pows, newLen);
    var inductionVariable = curLen;
    var last = newLen;
    if (inductionVariable < last)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        pows[i] = ensureNotNull(pows[i - 1 | 0]).times(Companion_getInstance_22().TEN);
      }
       while (inductionVariable < last);
    Companion_getInstance_21().pt_1 = pows;
  }
  return ensureNotNull(pows[n]);
}
function longMultiplyPowerTen($this, val, n) {
  if (val === 0n || n <= 0) {
    return val;
  }
  var tab = $this.ot_1;
  var bounds = $this.st_1;
  if (n < tab.length && n < bounds.length) {
    var tenpower = tab[n];
    if (val === 1n) {
      return tenpower;
    }
    if (abs_1(val) <= bounds[n]) {
      return multiply_0(val, tenpower);
    }
  }
  return -9223372036854775808n;
}
function matchScale($this, val) {
  if (val[0].wt_1 < val[1].wt_1) {
    val[0] = val[0].setScaleInt(val[1].wt_1, RoundingMode_UNNECESSARY_getInstance().value);
  } else if (val[1].wt_1 < val[0].wt_1) {
    val[1] = val[1].setScaleInt(val[0].wt_1, RoundingMode_UNNECESSARY_getInstance().value);
  }
}
function bigDigitLength($this, b) {
  if (b.ur_1 === 0) {
    return 1;
  }
  // Inline function 'kotlin.Long.plus' call
  var this_0 = fromInt_0(b.bitLength);
  // Inline function 'kotlin.Long.times' call
  var this_1 = add_0(this_0, fromInt_0(1));
  var tmp$ret$1 = multiply_0(this_1, fromInt_0(646456993));
  var r = convertToInt(shiftRightUnsigned(tmp$ret$1, 31));
  return b.cu(bigTenToThe($this, r)) < 0 ? r : r + 1 | 0;
}
function compactValFor($this, b) {
  var m = b.vr_1;
  var len = m.length;
  if (len === 0) {
    return 0n;
  }
  var d = m[0];
  if (len > 2 || (len === 2 && d < 0)) {
    return -9223372036854775808n;
  }
  var tmp;
  if (len === 2) {
    tmp = add_0(fromInt_0(m[1]) & 4294967295n, shiftLeft(fromInt_0(d), 32));
  } else {
    tmp = fromInt_0(d) & 4294967295n;
  }
  var u = tmp;
  return b.ur_1 < 0 ? negate_0(u) : u;
}
function longCompareMagnitude($this, x, y) {
  var x_0 = x;
  var y_0 = y;
  if (x_0 < 0n) {
    x_0 = negate_0(x_0);
  }
  if (y_0 < 0n) {
    y_0 = negate_0(y_0);
  }
  var tmp;
  if (x_0 < y_0) {
    tmp = -1;
  } else if (x_0 === y_0) {
    tmp = 0;
  } else {
    tmp = 1;
  }
  return tmp;
}
function saturateLong($this, s) {
  var i = convertToInt(s);
  var tmp;
  if (s === fromInt_0(i)) {
    tmp = i;
  } else if (s < 0n) {
    tmp = -2147483648;
  } else {
    tmp = 2147483647;
  }
  return tmp;
}
function checkScaleNonZero($this, val) {
  var asInt = convertToInt(val);
  if (!(fromInt_0(asInt) === val)) {
    throw ArithmeticException.cc(asInt > 0 ? 'Underflow' : 'Overflow');
  }
  return asInt;
}
function checkScale($this, intCompact, val) {
  var asInt = convertToInt(val);
  if (!(fromInt_0(asInt) === val)) {
    asInt = val > 2147483647n ? 2147483647 : -2147483648;
    if (!(intCompact === 0n)) {
      throw ArithmeticException.cc(asInt > 0 ? 'Underflow' : 'Overflow');
    }
  }
  return asInt;
}
function checkScale_0($this, intVal, val) {
  var asInt = convertToInt(val);
  if (!(fromInt_0(asInt) === val)) {
    asInt = val > 2147483647n ? 2147483647 : -2147483648;
    if (!(ensureNotNull(intVal).signum === 0)) {
      throw ArithmeticException.cc(asInt > 0 ? 'Underflow' : 'Overflow');
    }
  }
  return asInt;
}
function doRound($this, val, mc) {
  var mcp = mc.precision;
  var wasDivided = false;
  if (mcp > 0) {
    var intVal = ensureNotNull(val).vt_1;
    var compactVal = val.zt_1;
    var scale = val.wt_1;
    var prec = val.precision;
    var mode = mc.roundingMode.value;
    var drop;
    if (compactVal === -9223372036854775808n) {
      drop = prec - mcp | 0;
      $l$loop: while (drop > 0) {
        var tmp0 = fromInt_0(scale);
        // Inline function 'kotlin.Long.minus' call
        var other = drop;
        var tmp$ret$0 = subtract_0(tmp0, fromInt_0(other));
        scale = checkScaleNonZero($this, tmp$ret$0);
        intVal = divideAndRoundByTenPow($this, ensureNotNull(intVal), drop, mode);
        wasDivided = true;
        compactVal = compactValFor($this, intVal);
        if (!(compactVal === -9223372036854775808n)) {
          prec = $this.du(compactVal);
          break $l$loop;
        }
        prec = bigDigitLength($this, intVal);
        drop = prec - mcp | 0;
      }
    }
    if (!(compactVal === -9223372036854775808n)) {
      drop = prec - mcp | 0;
      while (drop > 0) {
        var tmp0_0 = fromInt_0(scale);
        // Inline function 'kotlin.Long.minus' call
        var other_0 = drop;
        var tmp$ret$1 = subtract_0(tmp0_0, fromInt_0(other_0));
        scale = checkScaleNonZero($this, tmp$ret$1);
        compactVal = divideAndRound_0($this, compactVal, $this.ot_1[drop], mc.roundingMode.value);
        wasDivided = true;
        prec = $this.du(compactVal);
        drop = prec - mcp | 0;
        intVal = null;
      }
    }
    return wasDivided ? CommonBigDecimal.eu(intVal, compactVal, scale, prec) : val;
  }
  return val;
}
function doRound_0($this, compactVal, scale, mc) {
  var compactVal_0 = compactVal;
  var scale_0 = scale;
  var mcp = mc.precision;
  if (mcp > 0 && mcp < 19) {
    var prec = $this.du(compactVal_0);
    var drop = prec - mcp | 0;
    while (drop > 0) {
      var tmp0 = fromInt_0(scale_0);
      // Inline function 'kotlin.Long.minus' call
      var other = drop;
      var tmp$ret$0 = subtract_0(tmp0, fromInt_0(other));
      scale_0 = checkScaleNonZero($this, tmp$ret$0);
      compactVal_0 = divideAndRound_0($this, compactVal_0, $this.ot_1[drop], mc.roundingMode.value);
      prec = $this.du(compactVal_0);
      drop = prec - mcp | 0;
    }
    return $this.ofScaledLongWithPrecision(compactVal_0, scale_0, prec);
  }
  return $this.ofScaledLong(compactVal_0, scale_0);
}
function doRound_1($this, intVal, scale, mc) {
  var intVal_0 = intVal;
  var scale_0 = scale;
  var mcp = mc.precision;
  var prec = 0;
  if (mcp > 0) {
    var compactVal = compactValFor($this, intVal_0);
    var mode = mc.roundingMode.value;
    var drop;
    if (compactVal === -9223372036854775808n) {
      prec = bigDigitLength($this, intVal_0);
      drop = prec - mcp | 0;
      $l$loop: while (drop > 0) {
        var tmp0 = fromInt_0(scale_0);
        // Inline function 'kotlin.Long.minus' call
        var other = drop;
        var tmp$ret$0 = subtract_0(tmp0, fromInt_0(other));
        scale_0 = checkScaleNonZero($this, tmp$ret$0);
        intVal_0 = divideAndRoundByTenPow($this, intVal_0, drop, mode);
        compactVal = compactValFor($this, intVal_0);
        if (!(compactVal === -9223372036854775808n)) {
          break $l$loop;
        }
        prec = bigDigitLength($this, intVal_0);
        drop = prec - mcp | 0;
      }
    }
    if (!(compactVal === -9223372036854775808n)) {
      prec = $this.du(compactVal);
      drop = prec - mcp | 0;
      while (drop > 0) {
        var tmp0_0 = fromInt_0(scale_0);
        // Inline function 'kotlin.Long.minus' call
        var other_0 = drop;
        var tmp$ret$1 = subtract_0(tmp0_0, fromInt_0(other_0));
        scale_0 = checkScaleNonZero($this, tmp$ret$1);
        compactVal = divideAndRound_0($this, compactVal, $this.ot_1[drop], mc.roundingMode.value);
        prec = $this.du(compactVal);
        drop = prec - mcp | 0;
      }
      return $this.ofScaledLongWithPrecision(compactVal, scale_0, prec);
    }
  }
  return CommonBigDecimal.eu(intVal_0, -9223372036854775808n, scale_0, prec);
}
function divideAndRoundByTenPow($this, intVal, tenPow, roundingMode) {
  var intVal_0 = intVal;
  if (tenPow < $this.ot_1.length) {
    intVal_0 = divideAndRound_1($this, intVal_0, $this.ot_1[tenPow], roundingMode);
  } else {
    intVal_0 = divideAndRound_3($this, intVal_0, bigTenToThe($this, tenPow), roundingMode);
  }
  return intVal_0;
}
function divideAndRound($this, ldividend, ldivisor, scale, roundingMode, preferredScale) {
  var qsign;
  var q = divide(ldividend, ldivisor);
  if (roundingMode === RoundingMode_DOWN_getInstance().value && scale === preferredScale) {
    return $this.ofScaledLong(q, scale);
  }
  var r = modulo(ldividend, ldivisor);
  qsign = ldividend < 0n === ldivisor < 0n ? 1 : -1;
  if (!(r === 0n)) {
    var increment = needIncrement($this, ldivisor, roundingMode, qsign, q, r);
    var tmp;
    if (increment) {
      // Inline function 'kotlin.Long.plus' call
      tmp = add_0(q, fromInt_0(qsign));
    } else {
      tmp = q;
    }
    return $this.ofScaledLong(tmp, scale);
  } else {
    var tmp_0;
    if (!(preferredScale === scale)) {
      tmp_0 = createAndStripZerosToMatchScale_0($this, q, scale, fromInt_0(preferredScale));
    } else {
      tmp_0 = $this.ofScaledLong(q, scale);
    }
    return tmp_0;
  }
}
function divideAndRound_0($this, ldividend, ldivisor, roundingMode) {
  var qsign;
  var q = divide(ldividend, ldivisor);
  if (roundingMode === RoundingMode_DOWN_getInstance().value) {
    return q;
  }
  var r = modulo(ldividend, ldivisor);
  qsign = ldividend < 0n === ldivisor < 0n ? 1 : -1;
  if (!(r === 0n)) {
    var increment = needIncrement($this, ldivisor, roundingMode, qsign, q, r);
    var tmp;
    if (increment) {
      // Inline function 'kotlin.Long.plus' call
      tmp = add_0(q, fromInt_0(qsign));
    } else {
      tmp = q;
    }
    return tmp;
  } else {
    return q;
  }
}
function commonNeedIncrement($this, roundingMode, qsign, cmpFracHalf, oddQuot) {
  if (roundingMode === RoundingMode_UNNECESSARY_getInstance().value)
    throw ArithmeticException.cc('Rounding necessary');
  else if (roundingMode === RoundingMode_UP_getInstance().value)
    return true;
  else if (roundingMode === RoundingMode_DOWN_getInstance().value)
    return false;
  else if (roundingMode === RoundingMode_CEILING_getInstance().value)
    return qsign > 0;
  else if (roundingMode === RoundingMode_FLOOR_getInstance().value)
    return qsign < 0;
  else {
    // Inline function 'kotlin.require' call
    if (!(roundingMode >= RoundingMode_HALF_UP_getInstance().value && roundingMode <= RoundingMode_HALF_EVEN_getInstance().value)) {
      var message = 'Unexpected rounding mode' + Companion_instance_25.valueOfInt(roundingMode).toString();
      throw IllegalArgumentException.w(toString_1(message));
    }
    if (cmpFracHalf < 0) {
      return false;
    } else if (cmpFracHalf > 0) {
      return true;
    } else {
      // Inline function 'kotlin.require' call
      // Inline function 'kotlin.require' call
      if (!(cmpFracHalf === 0)) {
        var message_0 = 'Failed requirement.';
        throw IllegalArgumentException.w(toString_1(message_0));
      }
      if (roundingMode === RoundingMode_HALF_DOWN_getInstance().value)
        return false;
      else if (roundingMode === RoundingMode_HALF_UP_getInstance().value)
        return true;
      else if (roundingMode === RoundingMode_HALF_EVEN_getInstance().value)
        return oddQuot;
      else
        throw AssertionError.hc('Unexpected rounding mode' + roundingMode);
    }
  }
}
function needIncrement($this, ldivisor, roundingMode, qsign, q, r) {
  // Inline function 'kotlin.require' call
  // Inline function 'kotlin.require' call
  if (!!(r === 0n)) {
    var message = 'Failed requirement.';
    throw IllegalArgumentException.w(toString_1(message));
  }
  var cmpFracHalf;
  if (r <= -4611686018427387904n || r > 4611686018427387903n) {
    cmpFracHalf = 1;
  } else {
    cmpFracHalf = longCompareMagnitude($this, multiply_0(numberToLong(2), r), ldivisor);
  }
  return commonNeedIncrement($this, roundingMode, qsign, cmpFracHalf, !((q & 1n) === 0n));
}
function divideAndRound_1($this, bdividend, ldivisor, roundingMode) {
  var mdividend = MutableBigInteger.fu(bdividend.vr_1);
  var mq = MutableBigInteger.rr();
  var r = mdividend.gu(ldivisor, mq);
  var isRemainderZero = r === 0n;
  var qsign = ldivisor < 0n ? -bdividend.ur_1 | 0 : bdividend.ur_1;
  if (!isRemainderZero) {
    if (needIncrement_0($this, ldivisor, roundingMode, qsign, mq, r)) {
      mq.ku(Companion_getInstance_24().hu_1);
    }
  }
  return mq.lu(qsign);
}
function divideAndRound_2($this, bdividend, ldivisor, scale, roundingMode, preferredScale) {
  var mdividend = MutableBigInteger.fu(bdividend.vr_1);
  var mq = MutableBigInteger.rr();
  var r = mdividend.gu(ldivisor, mq);
  var isRemainderZero = r === 0n;
  var qsign = ldivisor < 0n ? -bdividend.ur_1 | 0 : bdividend.ur_1;
  if (!isRemainderZero) {
    if (needIncrement_0($this, ldivisor, roundingMode, qsign, mq, r)) {
      mq.ku(Companion_getInstance_24().hu_1);
    }
    return mq.mu(qsign, scale);
  } else {
    if (!(preferredScale === scale)) {
      var compactVal = mq.nu(qsign);
      if (!(compactVal === -9223372036854775808n)) {
        return createAndStripZerosToMatchScale_0($this, compactVal, scale, fromInt_0(preferredScale));
      }
      var intVal = mq.lu(qsign);
      return createAndStripZerosToMatchScale($this, intVal, scale, fromInt_0(preferredScale));
    } else {
      return mq.mu(qsign, scale);
    }
  }
}
function needIncrement_0($this, ldivisor, roundingMode, qsign, mq, r) {
  // Inline function 'kotlin.require' call
  // Inline function 'kotlin.require' call
  if (!!(r === 0n)) {
    var message = 'Failed requirement.';
    throw IllegalArgumentException.w(toString_1(message));
  }
  var cmpFracHalf;
  if (r <= -4611686018427387904n || r > 4611686018427387903n) {
    cmpFracHalf = 1;
  } else {
    cmpFracHalf = longCompareMagnitude($this, multiply_0(numberToLong(2), r), ldivisor);
  }
  return commonNeedIncrement($this, roundingMode, qsign, cmpFracHalf, mq.ou());
}
function divideAndRound_3($this, bdividend, bdivisor, roundingMode) {
  var isRemainderZero;
  var qsign;
  var mdividend = MutableBigInteger.fu(bdividend.vr_1);
  var mq = MutableBigInteger.rr();
  var mdivisor = MutableBigInteger.fu(bdivisor.vr_1);
  var mr = mdividend.pu(mdivisor, mq);
  isRemainderZero = ensureNotNull(mr).qu();
  qsign = !(bdividend.ur_1 === bdivisor.ur_1) ? -1 : 1;
  if (!isRemainderZero) {
    if (needIncrement_1($this, mdivisor, roundingMode, qsign, mq, mr)) {
      mq.ku(Companion_getInstance_24().hu_1);
    }
  }
  return mq.lu(qsign);
}
function divideAndRound_4($this, bdividend, bdivisor, scale, roundingMode, preferredScale) {
  var isRemainderZero;
  var qsign;
  var mdividend = MutableBigInteger.fu(bdividend.vr_1);
  var mq = MutableBigInteger.rr();
  var mdivisor = MutableBigInteger.fu(bdivisor.vr_1);
  var mr = mdividend.pu(mdivisor, mq);
  isRemainderZero = ensureNotNull(mr).qu();
  qsign = !(bdividend.ur_1 === bdivisor.ur_1) ? -1 : 1;
  if (!isRemainderZero) {
    if (needIncrement_1($this, mdivisor, roundingMode, qsign, mq, mr)) {
      mq.ku(Companion_getInstance_24().hu_1);
    }
    return mq.mu(qsign, scale);
  } else {
    if (!(preferredScale === scale)) {
      var compactVal = mq.nu(qsign);
      if (!(compactVal === -9223372036854775808n)) {
        return createAndStripZerosToMatchScale_0($this, compactVal, scale, fromInt_0(preferredScale));
      }
      var intVal = mq.lu(qsign);
      return createAndStripZerosToMatchScale($this, intVal, scale, fromInt_0(preferredScale));
    } else {
      return mq.mu(qsign, scale);
    }
  }
}
function needIncrement_1($this, mdivisor, roundingMode, qsign, mq, mr) {
  // Inline function 'kotlin.require' call
  // Inline function 'kotlin.require' call
  if (!!mr.qu()) {
    var message = 'Failed requirement.';
    throw IllegalArgumentException.w(toString_1(message));
  }
  var cmpFracHalf = mr.ru(mdivisor);
  return commonNeedIncrement($this, roundingMode, qsign, cmpFracHalf, mq.ou());
}
function createAndStripZerosToMatchScale($this, intVal, scale, preferredScale) {
  var intVal_0 = intVal;
  var scale_0 = scale;
  var qr;
  $l$loop_0: while (intVal_0.cu(Companion_getInstance_22().TEN) >= 0 && fromInt_0(scale_0) > preferredScale && !intVal_0.testBit(0)) {
    qr = intVal_0.divideAndRemainder(Companion_getInstance_22().TEN);
    if (!(qr[1].signum === 0)) {
      break $l$loop_0;
    }
    intVal_0 = qr[0];
    var tmp = intVal_0;
    // Inline function 'kotlin.Long.minus' call
    var this_0 = fromInt_0(scale_0);
    var tmp$ret$0 = subtract_0(this_0, fromInt_0(1));
    scale_0 = checkScale_0($this, tmp, tmp$ret$0);
  }
  return $this.ofScaledBigIntegerWithPrecision(intVal_0, scale_0, 0);
}
function createAndStripZerosToMatchScale_0($this, compactVal, scale, preferredScale) {
  var compactVal_0 = compactVal;
  var scale_0 = scale;
  $l$loop_0: while (abs_1(compactVal_0) >= 10n && fromInt_0(scale_0) > preferredScale && (compactVal_0 & 1n) === 0n) {
    var r = modulo(compactVal_0, 10n);
    if (!(r === 0n)) {
      break $l$loop_0;
    }
    // Inline function 'kotlin.Long.div' call
    var this_0 = compactVal_0;
    compactVal_0 = divide(this_0, fromInt_0(10));
    var tmp = compactVal_0;
    // Inline function 'kotlin.Long.minus' call
    var this_1 = fromInt_0(scale_0);
    var tmp$ret$1 = subtract_0(this_1, fromInt_0(1));
    scale_0 = checkScale($this, tmp, tmp$ret$1);
  }
  return $this.ofScaledLong(compactVal_0, scale_0);
}
function stripZerosToMatchScale($this, intVal, intCompact, scale, preferredScale) {
  var tmp;
  if (!(intCompact === -9223372036854775808n)) {
    tmp = createAndStripZerosToMatchScale_0($this, intCompact, scale, fromInt_0(preferredScale));
  } else {
    tmp = createAndStripZerosToMatchScale($this, intVal == null ? $this.gt_1 : intVal, scale, fromInt_0(preferredScale));
  }
  return tmp;
}
function sum($this, xs, ys) {
  var sum = add_0(xs, ys);
  var tmp;
  if (((sum ^ xs) & (sum ^ ys)) >= 0n) {
    tmp = sum;
  } else {
    tmp = -9223372036854775808n;
  }
  return tmp;
}
function sum_0($this, xs, ys, scale) {
  var sum_0 = sum($this, xs, ys);
  var tmp;
  if (!(sum_0 === -9223372036854775808n)) {
    tmp = Companion_getInstance_21().ofScaledLong(sum_0, scale);
  } else {
    tmp = CommonBigDecimal.tu(Companion_getInstance_22().ofLong(xs).su(ys), scale);
  }
  return tmp;
}
function sum_1($this, xs, scale1, ys, scale2) {
  // Inline function 'kotlin.Long.minus' call
  var this_0 = fromInt_0(scale1);
  var sdiff = subtract_0(this_0, fromInt_0(scale2));
  if (sdiff === 0n) {
    return sum_0($this, xs, ys, scale1);
  } else if (sdiff < 0n) {
    var raise = checkScale($this, xs, negate_0(sdiff));
    var scaledX = longMultiplyPowerTen($this, xs, raise);
    if (!(scaledX === -9223372036854775808n)) {
      return sum_0($this, scaledX, ys, scale2);
    } else {
      var bigsum = bigMultiplyPowerTen($this, xs, raise).su(ys);
      var tmp;
      if ((xs ^ ys) >= 0n) {
        tmp = CommonBigDecimal.eu(bigsum, -9223372036854775808n, scale2, 0);
      } else {
        tmp = $this.ofScaledBigIntegerWithPrecision(bigsum, scale2, 0);
      }
      return tmp;
    }
  } else {
    var raise_0 = checkScale($this, ys, sdiff);
    var scaledY = longMultiplyPowerTen($this, ys, raise_0);
    if (!(scaledY === -9223372036854775808n)) {
      return sum_0($this, xs, scaledY, scale1);
    } else {
      var bigsum_0 = bigMultiplyPowerTen($this, ys, raise_0).su(xs);
      var tmp_0;
      if ((xs ^ ys) >= 0n) {
        tmp_0 = CommonBigDecimal.eu(bigsum_0, -9223372036854775808n, scale1, 0);
      } else {
        tmp_0 = $this.ofScaledBigIntegerWithPrecision(bigsum_0, scale1, 0);
      }
      return tmp_0;
    }
  }
}
function sum_2($this, xs, scale1, snd, scale2) {
  var snd_0 = snd;
  var rscale = scale1;
  // Inline function 'kotlin.Long.minus' call
  var this_0 = fromInt_0(rscale);
  var sdiff = subtract_0(this_0, fromInt_0(scale2));
  var sameSigns = get_sign(xs) === snd_0.ur_1;
  var sum;
  if (sdiff < 0n) {
    var raise = checkScale($this, xs, negate_0(sdiff));
    rscale = scale2;
    var scaledX = longMultiplyPowerTen($this, xs, raise);
    if (scaledX === -9223372036854775808n) {
      sum = snd_0.plus(bigMultiplyPowerTen($this, xs, raise));
    } else {
      sum = snd_0.su(scaledX);
    }
  } else {
    var raise_0 = checkScale_0($this, snd_0, sdiff);
    snd_0 = ensureNotNull(bigMultiplyPowerTen_0($this, snd_0, raise_0));
    sum = snd_0.su(xs);
  }
  var tmp;
  if (sameSigns) {
    tmp = CommonBigDecimal.eu(sum, -9223372036854775808n, rscale, 0);
  } else {
    tmp = $this.ofScaledBigIntegerWithPrecision(sum, rscale, 0);
  }
  return tmp;
}
function sum_3($this, fst, scale1, snd, scale2) {
  var fst_0 = fst;
  var snd_0 = snd;
  var rscale = scale1;
  // Inline function 'kotlin.Long.minus' call
  var this_0 = fromInt_0(rscale);
  var sdiff = subtract_0(this_0, fromInt_0(scale2));
  if (!(sdiff === 0n)) {
    if (sdiff < 0n) {
      var raise = checkScale_0($this, fst_0, negate_0(sdiff));
      rscale = scale2;
      fst_0 = bigMultiplyPowerTen_0($this, fst_0, raise);
    } else {
      var raise_0 = checkScale_0($this, snd_0, sdiff);
      snd_0 = bigMultiplyPowerTen_0($this, snd_0, raise_0);
    }
  }
  var sum = ensureNotNull(fst_0).plus(ensureNotNull(snd_0));
  var tmp;
  if (fst_0.ur_1 === snd_0.ur_1) {
    tmp = CommonBigDecimal.eu(sum, -9223372036854775808n, rscale, 0);
  } else {
    tmp = $this.ofScaledBigIntegerWithPrecision(sum, rscale, 0);
  }
  return tmp;
}
function bigMultiplyPowerTen($this, value, n) {
  return n <= 0 ? Companion_getInstance_22().ofLong(value) : bigTenToThe($this, n).uu(value);
}
function bigMultiplyPowerTen_0($this, value, n) {
  if (n <= 0) {
    return value;
  }
  var tmp;
  if (n < $this.ot_1.length) {
    tmp = ensureNotNull(value).uu($this.ot_1[n]);
  } else {
    tmp = ensureNotNull(value).times(bigTenToThe($this, n));
  }
  return tmp;
}
function divideSmallFastPath($this, xs, xscale, ys, yscale, preferredScale, mc) {
  var yscale_0 = yscale;
  var mcp = mc.precision;
  var roundingMode = mc.roundingMode.value;
  // Inline function 'kotlin.require' call
  // Inline function 'kotlin.require' call
  if (!(xscale <= yscale_0 && yscale_0 < 18 && mcp < 18)) {
    var message = 'Failed requirement.';
    throw IllegalArgumentException.w(toString_1(message));
  }
  var xraise = yscale_0 - xscale | 0;
  var tmp;
  if (xraise === 0) {
    tmp = xs;
  } else {
    tmp = longMultiplyPowerTen($this, xs, xraise);
  }
  var scaledX = tmp;
  var quotient;
  var cmp = longCompareMagnitude($this, scaledX, ys);
  if (cmp > 0) {
    yscale_0 = yscale_0 - 1 | 0;
    // Inline function 'kotlin.Long.plus' call
    var other = yscale_0;
    // Inline function 'kotlin.Long.minus' call
    var this_0 = add_0(preferredScale, fromInt_0(other));
    // Inline function 'kotlin.Long.plus' call
    var this_1 = subtract_0(this_0, fromInt_0(xscale));
    var tmp$ret$5 = add_0(this_1, fromInt_0(mcp));
    var scl = checkScaleNonZero($this, tmp$ret$5);
    var tmp0 = fromInt_0(mcp);
    // Inline function 'kotlin.Long.plus' call
    var other_0 = yscale_0;
    // Inline function 'kotlin.Long.minus' call
    var this_2 = add_0(tmp0, fromInt_0(other_0));
    var tmp$ret$7 = subtract_0(this_2, fromInt_0(xscale));
    if (checkScaleNonZero($this, tmp$ret$7) > 0) {
      var tmp0_0 = fromInt_0(mcp);
      // Inline function 'kotlin.Long.plus' call
      var other_1 = yscale_0;
      // Inline function 'kotlin.Long.minus' call
      var this_3 = add_0(tmp0_0, fromInt_0(other_1));
      var tmp$ret$9 = subtract_0(this_3, fromInt_0(xscale));
      var raise = checkScaleNonZero($this, tmp$ret$9);
      var scaledXs;
      scaledXs = longMultiplyPowerTen($this, xs, raise);
      if (scaledXs === -9223372036854775808n) {
        quotient = null;
        if ((mcp - 1 | 0) >= 0 && (mcp - 1 | 0) < $this.ot_1.length) {
          quotient = multiplyDivideAndRound($this, $this.ot_1[mcp - 1 | 0], scaledX, ys, scl, roundingMode, checkScaleNonZero($this, preferredScale));
        }
        if (quotient == null) {
          var rb = bigMultiplyPowerTen($this, scaledX, mcp - 1 | 0);
          quotient = divideAndRound_2($this, rb, ys, scl, roundingMode, checkScaleNonZero($this, preferredScale));
        }
      } else {
        quotient = divideAndRound($this, scaledXs, ys, scl, roundingMode, checkScaleNonZero($this, preferredScale));
      }
    } else {
      // Inline function 'kotlin.Long.minus' call
      var this_4 = fromInt_0(xscale);
      var tmp$ret$10 = subtract_0(this_4, fromInt_0(mcp));
      var newScale = checkScaleNonZero($this, tmp$ret$10);
      if (newScale === yscale_0) {
        quotient = divideAndRound($this, xs, ys, scl, roundingMode, checkScaleNonZero($this, preferredScale));
      } else {
        var tmp0_1 = fromInt_0(newScale);
        // Inline function 'kotlin.Long.minus' call
        var other_2 = yscale_0;
        var tmp$ret$11 = subtract_0(tmp0_1, fromInt_0(other_2));
        var raise_0 = checkScaleNonZero($this, tmp$ret$11);
        var scaledYs = longMultiplyPowerTen($this, ys, raise_0);
        if (scaledYs === -9223372036854775808n) {
          var rb_0 = bigMultiplyPowerTen($this, ys, raise_0);
          quotient = divideAndRound_4($this, Companion_getInstance_22().ofLong(xs), rb_0, scl, roundingMode, checkScaleNonZero($this, preferredScale));
        } else {
          quotient = divideAndRound($this, xs, scaledYs, scl, roundingMode, checkScaleNonZero($this, preferredScale));
        }
      }
    }
  } else {
    // Inline function 'kotlin.Long.plus' call
    var other_3 = yscale_0;
    // Inline function 'kotlin.Long.minus' call
    var this_5 = add_0(preferredScale, fromInt_0(other_3));
    // Inline function 'kotlin.Long.plus' call
    var this_6 = subtract_0(this_5, fromInt_0(xscale));
    var tmp$ret$14 = add_0(this_6, fromInt_0(mcp));
    var scl_0 = checkScaleNonZero($this, tmp$ret$14);
    if (cmp === 0) {
      quotient = roundedTenPower($this, scaledX < 0n === ys < 0n ? 1 : -1, mcp, scl_0, checkScaleNonZero($this, preferredScale));
    } else {
      var scaledXs_0 = longMultiplyPowerTen($this, scaledX, mcp);
      if (scaledXs_0 === -9223372036854775808n) {
        quotient = null;
        if (mcp < $this.ot_1.length) {
          quotient = multiplyDivideAndRound($this, $this.ot_1[mcp], scaledX, ys, scl_0, roundingMode, checkScaleNonZero($this, preferredScale));
        }
        if (quotient == null) {
          var rb_1 = bigMultiplyPowerTen($this, scaledX, mcp);
          quotient = divideAndRound_2($this, rb_1, ys, scl_0, roundingMode, checkScaleNonZero($this, preferredScale));
        }
      } else {
        quotient = divideAndRound($this, scaledXs_0, ys, scl_0, roundingMode, checkScaleNonZero($this, preferredScale));
      }
    }
  }
  return doRound($this, quotient, mc);
}
function divide_0($this, xs, xscale, ys, yscale, preferredScale, mc) {
  var yscale_0 = yscale;
  var mcp = mc.precision;
  if (xscale <= yscale_0 && yscale_0 < 18 && mcp < 18) {
    return divideSmallFastPath($this, xs, xscale, ys, yscale_0, preferredScale, mc);
  }
  if (compareMagnitudeNormalized($this, xs, xscale, ys, yscale_0) > 0) {
    yscale_0 = yscale_0 - 1 | 0;
  }
  var roundingMode = mc.roundingMode.value;
  // Inline function 'kotlin.Long.plus' call
  var other = yscale_0;
  // Inline function 'kotlin.Long.minus' call
  var this_0 = add_0(preferredScale, fromInt_0(other));
  // Inline function 'kotlin.Long.plus' call
  var this_1 = subtract_0(this_0, fromInt_0(xscale));
  var tmp$ret$2 = add_0(this_1, fromInt_0(mcp));
  var scl = checkScaleNonZero($this, tmp$ret$2);
  var quotient;
  var tmp0 = fromInt_0(mcp);
  // Inline function 'kotlin.Long.plus' call
  var other_0 = yscale_0;
  // Inline function 'kotlin.Long.minus' call
  var this_2 = add_0(tmp0, fromInt_0(other_0));
  var tmp$ret$4 = subtract_0(this_2, fromInt_0(xscale));
  if (checkScaleNonZero($this, tmp$ret$4) > 0) {
    var tmp0_0 = fromInt_0(mcp);
    // Inline function 'kotlin.Long.plus' call
    var other_1 = yscale_0;
    // Inline function 'kotlin.Long.minus' call
    var this_3 = add_0(tmp0_0, fromInt_0(other_1));
    var tmp$ret$6 = subtract_0(this_3, fromInt_0(xscale));
    var raise = checkScaleNonZero($this, tmp$ret$6);
    var scaledXs = longMultiplyPowerTen($this, xs, raise);
    if (scaledXs === -9223372036854775808n) {
      var rb = bigMultiplyPowerTen($this, xs, raise);
      quotient = divideAndRound_2($this, rb, ys, scl, roundingMode, checkScaleNonZero($this, preferredScale));
    } else {
      quotient = divideAndRound($this, scaledXs, ys, scl, roundingMode, checkScaleNonZero($this, preferredScale));
    }
  } else {
    // Inline function 'kotlin.Long.minus' call
    var this_4 = fromInt_0(xscale);
    var tmp$ret$7 = subtract_0(this_4, fromInt_0(mcp));
    var newScale = checkScaleNonZero($this, tmp$ret$7);
    if (newScale === yscale_0) {
      quotient = divideAndRound($this, xs, ys, scl, roundingMode, checkScaleNonZero($this, preferredScale));
    } else {
      var tmp0_1 = fromInt_0(newScale);
      // Inline function 'kotlin.Long.minus' call
      var other_2 = yscale_0;
      var tmp$ret$8 = subtract_0(tmp0_1, fromInt_0(other_2));
      var raise_0 = checkScaleNonZero($this, tmp$ret$8);
      var scaledYs = longMultiplyPowerTen($this, ys, raise_0);
      if (scaledYs === -9223372036854775808n) {
        var rb_0 = bigMultiplyPowerTen($this, ys, raise_0);
        quotient = divideAndRound_4($this, Companion_getInstance_22().ofLong(xs), rb_0, scl, roundingMode, checkScaleNonZero($this, preferredScale));
      } else {
        quotient = divideAndRound($this, xs, scaledYs, scl, roundingMode, checkScaleNonZero($this, preferredScale));
      }
    }
  }
  return doRound($this, quotient, mc);
}
function divide_1($this, xs, xscale, ys, yscale, preferredScale, mc) {
  var yscale_0 = yscale;
  if ((-compareMagnitudeNormalized_0($this, ys, yscale_0, xs, xscale) | 0) > 0) {
    yscale_0 = yscale_0 - 1 | 0;
  }
  var mcp = mc.precision;
  var roundingMode = mc.roundingMode.value;
  var quotient;
  // Inline function 'kotlin.Long.plus' call
  var other = yscale_0;
  // Inline function 'kotlin.Long.minus' call
  var this_0 = add_0(preferredScale, fromInt_0(other));
  // Inline function 'kotlin.Long.plus' call
  var this_1 = subtract_0(this_0, fromInt_0(xscale));
  var tmp$ret$2 = add_0(this_1, fromInt_0(mcp));
  var scl = checkScaleNonZero($this, tmp$ret$2);
  var tmp0 = fromInt_0(mcp);
  // Inline function 'kotlin.Long.plus' call
  var other_0 = yscale_0;
  // Inline function 'kotlin.Long.minus' call
  var this_2 = add_0(tmp0, fromInt_0(other_0));
  var tmp$ret$4 = subtract_0(this_2, fromInt_0(xscale));
  if (checkScaleNonZero($this, tmp$ret$4) > 0) {
    var tmp0_0 = fromInt_0(mcp);
    // Inline function 'kotlin.Long.plus' call
    var other_1 = yscale_0;
    // Inline function 'kotlin.Long.minus' call
    var this_3 = add_0(tmp0_0, fromInt_0(other_1));
    var tmp$ret$6 = subtract_0(this_3, fromInt_0(xscale));
    var raise = checkScaleNonZero($this, tmp$ret$6);
    var rb = bigMultiplyPowerTen_0($this, xs, raise);
    quotient = divideAndRound_2($this, ensureNotNull(rb), ys, scl, roundingMode, checkScaleNonZero($this, preferredScale));
  } else {
    // Inline function 'kotlin.Long.minus' call
    var this_4 = fromInt_0(xscale);
    var tmp$ret$7 = subtract_0(this_4, fromInt_0(mcp));
    var newScale = checkScaleNonZero($this, tmp$ret$7);
    if (newScale === yscale_0) {
      quotient = divideAndRound_2($this, ensureNotNull(xs), ys, scl, roundingMode, checkScaleNonZero($this, preferredScale));
    } else {
      var tmp0_1 = fromInt_0(newScale);
      // Inline function 'kotlin.Long.minus' call
      var other_2 = yscale_0;
      var tmp$ret$8 = subtract_0(tmp0_1, fromInt_0(other_2));
      var raise_0 = checkScaleNonZero($this, tmp$ret$8);
      var scaledYs = longMultiplyPowerTen($this, ys, raise_0);
      if (scaledYs === -9223372036854775808n) {
        var rb_0 = bigMultiplyPowerTen($this, ys, raise_0);
        quotient = divideAndRound_4($this, ensureNotNull(xs), rb_0, scl, roundingMode, checkScaleNonZero($this, preferredScale));
      } else {
        quotient = divideAndRound_2($this, ensureNotNull(xs), scaledYs, scl, roundingMode, checkScaleNonZero($this, preferredScale));
      }
    }
  }
  return doRound($this, quotient, mc);
}
function divide_2($this, xs, xscale, ys, yscale, preferredScale, mc) {
  var yscale_0 = yscale;
  if (compareMagnitudeNormalized_0($this, xs, xscale, ys, yscale_0) > 0) {
    yscale_0 = yscale_0 - 1 | 0;
  }
  var mcp = mc.precision;
  // Inline function 'kotlin.also' call
  var this_0 = mc.roundingMode;
  log_0(CommonBigDecimal$Companion$divide$lambda(this_0));
  var roundingMode = this_0.value;
  var quotient;
  // Inline function 'kotlin.Long.plus' call
  var other = yscale_0;
  // Inline function 'kotlin.Long.minus' call
  var this_1 = add_0(preferredScale, fromInt_0(other));
  // Inline function 'kotlin.Long.plus' call
  var this_2 = subtract_0(this_1, fromInt_0(xscale));
  var tmp$ret$4 = add_0(this_2, fromInt_0(mcp));
  var scl = checkScaleNonZero($this, tmp$ret$4);
  var tmp0 = fromInt_0(mcp);
  // Inline function 'kotlin.Long.plus' call
  var other_0 = yscale_0;
  // Inline function 'kotlin.Long.minus' call
  var this_3 = add_0(tmp0, fromInt_0(other_0));
  var tmp$ret$6 = subtract_0(this_3, fromInt_0(xscale));
  if (checkScaleNonZero($this, tmp$ret$6) > 0) {
    var tmp0_0 = fromInt_0(mcp);
    // Inline function 'kotlin.Long.plus' call
    var other_1 = yscale_0;
    // Inline function 'kotlin.Long.minus' call
    var this_4 = add_0(tmp0_0, fromInt_0(other_1));
    var tmp$ret$8 = subtract_0(this_4, fromInt_0(xscale));
    var raise = checkScaleNonZero($this, tmp$ret$8);
    var rb = bigMultiplyPowerTen($this, xs, raise);
    quotient = divideAndRound_4($this, rb, ensureNotNull(ys), scl, roundingMode, checkScaleNonZero($this, preferredScale));
  } else {
    // Inline function 'kotlin.Long.minus' call
    var this_5 = fromInt_0(xscale);
    var tmp$ret$9 = subtract_0(this_5, fromInt_0(mcp));
    var newScale = checkScaleNonZero($this, tmp$ret$9);
    var tmp0_1 = fromInt_0(newScale);
    // Inline function 'kotlin.Long.minus' call
    var other_2 = yscale_0;
    var tmp$ret$10 = subtract_0(tmp0_1, fromInt_0(other_2));
    var raise_0 = checkScaleNonZero($this, tmp$ret$10);
    var rb_0 = bigMultiplyPowerTen_0($this, ys, raise_0);
    quotient = divideAndRound_4($this, Companion_getInstance_22().ofLong(xs), ensureNotNull(rb_0), scl, roundingMode, checkScaleNonZero($this, preferredScale));
  }
  return doRound($this, quotient, mc);
}
function divide_3($this, xs, xscale, ys, yscale, preferredScale, mc) {
  var yscale_0 = yscale;
  if (compareMagnitudeNormalized_1($this, xs, xscale, ys, yscale_0) > 0) {
    yscale_0 = yscale_0 - 1 | 0;
  }
  var mcp = mc.precision;
  var roundingMode = mc.roundingMode.value;
  var quotient;
  // Inline function 'kotlin.Long.plus' call
  var other = yscale_0;
  // Inline function 'kotlin.Long.minus' call
  var this_0 = add_0(preferredScale, fromInt_0(other));
  // Inline function 'kotlin.Long.plus' call
  var this_1 = subtract_0(this_0, fromInt_0(xscale));
  var tmp$ret$2 = add_0(this_1, fromInt_0(mcp));
  var scl = checkScaleNonZero($this, tmp$ret$2);
  var tmp0 = fromInt_0(mcp);
  // Inline function 'kotlin.Long.plus' call
  var other_0 = yscale_0;
  // Inline function 'kotlin.Long.minus' call
  var this_2 = add_0(tmp0, fromInt_0(other_0));
  var tmp$ret$4 = subtract_0(this_2, fromInt_0(xscale));
  if (checkScaleNonZero($this, tmp$ret$4) > 0) {
    var tmp0_0 = fromInt_0(mcp);
    // Inline function 'kotlin.Long.plus' call
    var other_1 = yscale_0;
    // Inline function 'kotlin.Long.minus' call
    var this_3 = add_0(tmp0_0, fromInt_0(other_1));
    var tmp$ret$6 = subtract_0(this_3, fromInt_0(xscale));
    var raise = checkScaleNonZero($this, tmp$ret$6);
    var rb = bigMultiplyPowerTen_0($this, xs, raise);
    quotient = divideAndRound_4($this, ensureNotNull(rb), ensureNotNull(ys), scl, roundingMode, checkScaleNonZero($this, preferredScale));
  } else {
    // Inline function 'kotlin.Long.minus' call
    var this_4 = fromInt_0(xscale);
    var tmp$ret$7 = subtract_0(this_4, fromInt_0(mcp));
    var newScale = checkScaleNonZero($this, tmp$ret$7);
    var tmp0_1 = fromInt_0(newScale);
    // Inline function 'kotlin.Long.minus' call
    var other_2 = yscale_0;
    var tmp$ret$8 = subtract_0(tmp0_1, fromInt_0(other_2));
    var raise_0 = checkScaleNonZero($this, tmp$ret$8);
    var rb_0 = bigMultiplyPowerTen_0($this, ys, raise_0);
    quotient = divideAndRound_4($this, ensureNotNull(xs), ensureNotNull(rb_0), scl, roundingMode, checkScaleNonZero($this, preferredScale));
  }
  return doRound($this, quotient, mc);
}
function multiplyDivideAndRound($this, dividend0, dividend1, divisor, scale, roundingMode, preferredScale) {
  var dividend0_0 = dividend0;
  var dividend1_0 = dividend1;
  var divisor_0 = divisor;
  var qsign = imul_0(imul_0(get_sign(dividend0_0), get_sign(dividend1_0)), get_sign(divisor_0));
  dividend0_0 = abs_1(dividend0_0);
  dividend1_0 = abs_1(dividend1_0);
  divisor_0 = abs_1(divisor_0);
  var d0_hi = shiftRightUnsigned(dividend0_0, 32);
  var d0_lo = dividend0_0 & 4294967295n;
  var d1_hi = shiftRightUnsigned(dividend1_0, 32);
  var d1_lo = dividend1_0 & 4294967295n;
  var product = multiply_0(d0_lo, d1_lo);
  var d0 = product & 4294967295n;
  var d1 = shiftRightUnsigned(product, 32);
  product = add_0(multiply_0(d0_hi, d1_lo), d1);
  d1 = product & 4294967295n;
  var d2 = shiftRightUnsigned(product, 32);
  product = add_0(multiply_0(d0_lo, d1_hi), d1);
  d1 = product & 4294967295n;
  d2 = add_0(d2, shiftRightUnsigned(product, 32));
  var d3 = shiftRightUnsigned(d2, 32);
  d2 = d2 & 4294967295n;
  product = add_0(multiply_0(d0_hi, d1_hi), d2);
  d2 = product & 4294967295n;
  d3 = add_0(shiftRightUnsigned(product, 32), d3) & 4294967295n;
  var dividendHi = make64($this, d3, d2);
  var dividendLo = make64($this, d1, d0);
  return divideAndRound128($this, dividendHi, dividendLo, divisor_0, qsign, scale, roundingMode, preferredScale);
}
function divideAndRound128($this, dividendHi, dividendLo, divisor, sign, scale, roundingMode, preferredScale) {
  var divisor_0 = divisor;
  if (dividendHi >= divisor_0) {
    return null;
  }
  var shift = numberOfLeadingZeros_0(divisor_0);
  divisor_0 = shiftLeft(divisor_0, shift);
  var v1 = shiftRightUnsigned(divisor_0, 32);
  var v0 = divisor_0 & 4294967295n;
  var tmp = shiftLeft(dividendLo, shift);
  var u1 = shiftRightUnsigned(tmp, 32);
  var u0 = tmp & 4294967295n;
  tmp = shiftLeft(dividendHi, shift) | shiftRightUnsigned(dividendLo, 64 - shift | 0);
  var u2 = tmp & 4294967295n;
  var q1;
  var r_tmp;
  if (v1 === 1n) {
    q1 = tmp;
    r_tmp = 0n;
  } else if (tmp >= 0n) {
    q1 = divide(tmp, v1);
    r_tmp = subtract_0(tmp, multiply_0(q1, v1));
  } else {
    var rq = divRemNegativeLong($this, tmp, v1);
    q1 = rq[1];
    r_tmp = rq[0];
  }
  $l$loop: while (q1 >= 4294967296n || unsignedLongCompare($this, multiply_0(q1, v0), make64($this, r_tmp, u1))) {
    var _unary__edvuaz = q1;
    q1 = subtract_0(_unary__edvuaz, get_ONE());
    r_tmp = add_0(r_tmp, v1);
    if (r_tmp >= 4294967296n) {
      break $l$loop;
    }
  }
  tmp = mulsub($this, u2, u1, v1, v0, q1);
  u1 = tmp & 4294967295n;
  var q0;
  if (v1 === 1n) {
    q0 = tmp;
    r_tmp = 0n;
  } else if (tmp >= 0n) {
    q0 = divide(tmp, v1);
    r_tmp = subtract_0(tmp, multiply_0(q0, v1));
  } else {
    var rq_0 = divRemNegativeLong($this, tmp, v1);
    q0 = rq_0[1];
    r_tmp = rq_0[0];
  }
  $l$loop_0: while (q0 >= 4294967296n || unsignedLongCompare($this, multiply_0(q0, v0), make64($this, r_tmp, u0))) {
    var _unary__edvuaz_0 = q0;
    q0 = subtract_0(_unary__edvuaz_0, get_ONE());
    r_tmp = add_0(r_tmp, v1);
    if (r_tmp >= 4294967296n) {
      break $l$loop_0;
    }
  }
  if (convertToInt(q1) < 0) {
    // Inline function 'kotlin.intArrayOf' call
    var tmp$ret$0 = new Int32Array([convertToInt(q1), convertToInt(q0)]);
    var mq = MutableBigInteger.fu(tmp$ret$0);
    if (roundingMode === RoundingMode_DOWN_getInstance().value && scale === preferredScale) {
      return mq.mu(sign, scale);
    }
    var r = shiftRightUnsigned(mulsub($this, u1, u0, v1, v0, q0), shift);
    if (!(r === 0n)) {
      if (needIncrement_0($this, shiftRightUnsigned(divisor_0, shift), roundingMode, sign, mq, r)) {
        mq.ku(Companion_getInstance_24().hu_1);
      }
      return mq.mu(sign, scale);
    } else {
      if (!(preferredScale === scale)) {
        var intVal = mq.lu(sign);
        return createAndStripZerosToMatchScale($this, intVal, scale, fromInt_0(preferredScale));
      } else {
        return mq.mu(sign, scale);
      }
    }
  }
  var q = make64($this, q1, q0);
  q = multiply_0(q, fromInt_0(sign));
  if (roundingMode === RoundingMode_DOWN_getInstance().value && scale === preferredScale) {
    return $this.ofScaledLong(q, scale);
  }
  var r_0 = shiftRightUnsigned(mulsub($this, u1, u0, v1, v0, q0), shift);
  if (!(r_0 === 0n)) {
    var increment = needIncrement($this, shiftRightUnsigned(divisor_0, shift), roundingMode, sign, q, r_0);
    var tmp_0;
    if (increment) {
      // Inline function 'kotlin.Long.plus' call
      var this_0 = q;
      tmp_0 = add_0(this_0, fromInt_0(sign));
    } else {
      tmp_0 = q;
    }
    return $this.ofScaledLong(tmp_0, scale);
  } else {
    var tmp_1;
    if (!(preferredScale === scale)) {
      tmp_1 = createAndStripZerosToMatchScale_0($this, q, scale, fromInt_0(preferredScale));
    } else {
      tmp_1 = $this.ofScaledLong(q, scale);
    }
    return tmp_1;
  }
}
function roundedTenPower($this, qsign, raise, scale, preferredScale) {
  if (scale > preferredScale) {
    var diff = scale - preferredScale | 0;
    var tmp;
    if (diff < raise) {
      tmp = $this.vu(raise - diff | 0, qsign, preferredScale);
    } else {
      tmp = $this.ofScaledLong(fromInt_0(qsign), scale - raise | 0);
    }
    return tmp;
  } else {
    return $this.vu(raise, qsign, scale);
  }
}
function divRemNegativeLong($this, n, d) {
  // Inline function 'kotlin.require' call
  if (!(n < 0n)) {
    var message = 'Non-negative numerator ' + n.toString();
    throw IllegalArgumentException.w(toString_1(message));
  }
  // Inline function 'kotlin.require' call
  if (!!(d === 1n)) {
    var message_0 = 'Unity denominator';
    throw IllegalArgumentException.w(toString_1(message_0));
  }
  var q = divide(shiftRightUnsigned(n, 1), shiftRightUnsigned(d, 1));
  var r = subtract_0(n, multiply_0(q, d));
  while (r < 0n) {
    r = add_0(r, d);
    var _unary__edvuaz = q;
    q = subtract_0(_unary__edvuaz, get_ONE());
  }
  while (r >= d) {
    r = subtract_0(r, d);
    var _unary__edvuaz_0 = q;
    q = add_0(_unary__edvuaz_0, get_ONE());
  }
  // Inline function 'kotlin.longArrayOf' call
  return new BigInt64Array([r, q]);
}
function make64($this, hi, lo) {
  return shiftLeft(hi, 32) | lo;
}
function mulsub($this, u1, u0, v1, v0, q0) {
  var tmp = subtract_0(u0, multiply_0(q0, v0));
  return make64($this, subtract_0(add_0(u1, shiftRightUnsigned(tmp, 32)), multiply_0(q0, v1)), tmp & 4294967295n);
}
function unsignedLongCompare($this, one, two) {
  return add_0(one, -9223372036854775808n) > add_0(two, -9223372036854775808n);
}
function unsignedLongCompareEq($this, one, two) {
  return add_0(one, -9223372036854775808n) >= add_0(two, -9223372036854775808n);
}
function compareMagnitudeNormalized($this, xs, xscale, ys, yscale) {
  var xs_0 = xs;
  var ys_0 = ys;
  var sdiff = xscale - yscale | 0;
  if (!(sdiff === 0)) {
    if (sdiff < 0) {
      xs_0 = longMultiplyPowerTen($this, xs_0, -sdiff | 0);
    } else {
      ys_0 = longMultiplyPowerTen($this, ys_0, sdiff);
    }
  }
  var tmp;
  if (!(xs_0 === -9223372036854775808n)) {
    tmp = !(ys_0 === -9223372036854775808n) ? longCompareMagnitude($this, xs_0, ys_0) : -1;
  } else {
    tmp = 1;
  }
  return tmp;
}
function compareMagnitudeNormalized_0($this, xs, xscale, ys, yscale) {
  if (xs === 0n) {
    return -1;
  }
  var sdiff = xscale - yscale | 0;
  if (sdiff < 0) {
    if (longMultiplyPowerTen($this, xs, -sdiff | 0) === -9223372036854775808n) {
      return bigMultiplyPowerTen($this, xs, -sdiff | 0).cu(ensureNotNull(ys));
    }
  }
  return -1;
}
function compareMagnitudeNormalized_1($this, xs, xscale, ys, yscale) {
  var sdiff = xscale - yscale | 0;
  var tmp;
  if (sdiff < 0) {
    tmp = ensureNotNull(bigMultiplyPowerTen_0($this, xs, -sdiff | 0)).cu(ensureNotNull(ys));
  } else {
    tmp = ensureNotNull(xs).cu(ensureNotNull(bigMultiplyPowerTen_0($this, ys, sdiff)));
  }
  return tmp;
}
function multiply_1($this, x, y) {
  var product = multiply_0(x, y);
  var ax = abs_1(x);
  var ay = abs_1(y);
  var tmp;
  if (shiftRightUnsigned(ax | ay, 31) === 0n || y === 0n || divide(product, y) === x) {
    tmp = product;
  } else {
    tmp = -9223372036854775808n;
  }
  return tmp;
}
function multiply_2($this, x, y, scale) {
  var product = multiply_1($this, x, y);
  var tmp;
  if (!(product === -9223372036854775808n)) {
    tmp = $this.ofScaledLong(product, scale);
  } else {
    tmp = CommonBigDecimal.eu(Companion_getInstance_22().ofLong(x).uu(y), -9223372036854775808n, scale, 0);
  }
  return tmp;
}
function multiply_3($this, x, y, scale) {
  var tmp;
  if (x === 0n) {
    tmp = $this.wu(scale);
  } else {
    tmp = CommonBigDecimal.eu(ensureNotNull(y).uu(x), -9223372036854775808n, scale, 0);
  }
  return tmp;
}
function multiply_4($this, x, y, scale) {
  return CommonBigDecimal.eu(x.times(ensureNotNull(y)), -9223372036854775808n, scale, 0);
}
function multiplyAndRound($this, x, y, scale, mc) {
  var x_0 = x;
  var y_0 = y;
  var product = multiply_1($this, x_0, y_0);
  if (!(product === -9223372036854775808n)) {
    return doRound_0($this, product, scale, mc);
  }
  var rsign = 1;
  if (x_0 < 0n) {
    x_0 = negate_0(x_0);
    rsign = -1;
  }
  if (y_0 < 0n) {
    y_0 = negate_0(y_0);
    rsign = imul_0(rsign, -1);
  }
  var m0_hi = shiftRightUnsigned(x_0, 32);
  var m0_lo = x_0 & 4294967295n;
  var m1_hi = shiftRightUnsigned(y_0, 32);
  var m1_lo = y_0 & 4294967295n;
  product = multiply_0(m0_lo, m1_lo);
  var m0 = product & 4294967295n;
  var m1 = shiftRightUnsigned(product, 32);
  product = add_0(multiply_0(m0_hi, m1_lo), m1);
  m1 = product & 4294967295n;
  var m2 = shiftRightUnsigned(product, 32);
  product = add_0(multiply_0(m0_lo, m1_hi), m1);
  m1 = product & 4294967295n;
  m2 = add_0(m2, shiftRightUnsigned(product, 32));
  var m3 = shiftRightUnsigned(m2, 32);
  m2 = m2 & 4294967295n;
  product = add_0(multiply_0(m0_hi, m1_hi), m2);
  m2 = product & 4294967295n;
  m3 = add_0(shiftRightUnsigned(product, 32), m3) & 4294967295n;
  var mHi = make64($this, m3, m2);
  var mLo = make64($this, m1, m0);
  var res = doRound128($this, mHi, mLo, rsign, scale, mc);
  if (!(res == null)) {
    return res;
  }
  var tmp = Companion_getInstance_22().ofLong(x_0);
  var tmp0 = y_0;
  // Inline function 'kotlin.Long.times' call
  var other = rsign;
  var tmp$ret$0 = multiply_0(tmp0, fromInt_0(other));
  res = CommonBigDecimal.eu(tmp.uu(tmp$ret$0), -9223372036854775808n, scale, 0);
  return ensureNotNull(doRound($this, res, mc));
}
function multiplyAndRound_0($this, x, y, scale, mc) {
  var tmp;
  if (x === 0n) {
    tmp = $this.wu(scale);
  } else {
    tmp = doRound_1($this, ensureNotNull(y).uu(x), scale, mc);
  }
  return tmp;
}
function multiplyAndRound_1($this, x, y, scale, mc) {
  return doRound_1($this, x.times(ensureNotNull(y)), scale, mc);
}
function doRound128($this, hi, lo, sign, scale, mc) {
  var scale_0 = scale;
  var mcp = mc.precision;
  var drop = precision($this, hi, lo) - mcp | 0;
  var res = null;
  if (drop > 0 && drop < $this.ot_1.length) {
    // Inline function 'kotlin.Long.minus' call
    var this_0 = fromInt_0(scale_0);
    var tmp$ret$0 = subtract_0(this_0, fromInt_0(drop));
    scale_0 = checkScaleNonZero($this, tmp$ret$0);
    res = divideAndRound128($this, hi, lo, $this.ot_1[drop], sign, scale_0, mc.roundingMode.value, scale_0);
  }
  var tmp;
  if (!(res == null)) {
    tmp = doRound($this, res, mc);
  } else {
    tmp = null;
  }
  return tmp;
}
function precision($this, hi, lo) {
  if (hi === 0n) {
    if (lo >= 0n) {
      return $this.du(lo);
    }
    return unsignedLongCompareEq($this, lo, $this.ut_1[0][1]) ? 20 : 19;
  }
  var r = imul_0((128 - numberOfLeadingZeros_0(hi) | 0) + 1 | 0, 1233) >>> 12 | 0;
  var idx = r - 19 | 0;
  var tmp;
  if (idx >= $this.ut_1.length || longLongCompareMagnitude($this, hi, lo, $this.ut_1[idx][0], $this.ut_1[idx][1])) {
    tmp = r;
  } else {
    tmp = r + 1 | 0;
  }
  return tmp;
}
function longLongCompareMagnitude($this, hi0, lo0, hi1, lo1) {
  var tmp;
  if (!(hi0 === hi1)) {
    tmp = hi0 < hi1;
  } else {
    tmp = add_0(lo0, -9223372036854775808n) < add_0(lo1, -9223372036854775808n);
  }
  return tmp;
}
function CommonBigDecimal$Companion$divide$lambda($it) {
  return () => $it;
}
function _get_isPowerOfTen__mg2oyo($this) {
  return Companion_getInstance_22().ONE.equals($this.unscaledValue);
}
function adjustScale($this, scl, exp) {
  var scl_0 = scl;
  var adjustedScale = subtract_0(numberToLong(scl_0), exp);
  if (adjustedScale > 2147483647n || adjustedScale < -2147483648n) {
    throw NumberFormatException.xb('Scale out of range.');
  }
  scl_0 = convertToInt(adjustedScale);
  return scl_0;
}
function preAlign($this, lhs, augend, padding, mc) {
  // Inline function 'kotlin.require' call
  // Inline function 'kotlin.require' call
  if (!!(padding === 0n)) {
    var message = 'Failed requirement.';
    throw IllegalArgumentException.w(toString_1(message));
  }
  var big;
  var small;
  if (padding < 0n) {
    big = lhs;
    small = augend;
  } else {
    big = augend;
    small = lhs;
  }
  var tmp0 = fromInt_0(big.wt_1);
  // Inline function 'kotlin.Long.minus' call
  var other = big.precision;
  var tmp0_0 = subtract_0(tmp0, fromInt_0(other));
  // Inline function 'kotlin.Long.plus' call
  var other_0 = mc.precision;
  var estResultUlpScale = add_0(tmp0_0, fromInt_0(other_0));
  var tmp0_1 = fromInt_0(small.wt_1);
  // Inline function 'kotlin.Long.minus' call
  var other_1 = small.precision;
  // Inline function 'kotlin.Long.plus' call
  var this_0 = subtract_0(tmp0_1, fromInt_0(other_1));
  var smallHighDigitPos = add_0(this_0, fromInt_0(1));
  var tmp;
  if (smallHighDigitPos > fromInt_0(big.wt_1 + 2 | 0)) {
    // Inline function 'kotlin.Long.plus' call
    tmp = smallHighDigitPos > add_0(estResultUlpScale, fromInt_0(2));
  } else {
    tmp = false;
  }
  if (tmp) {
    var tmp_0 = Companion_getInstance_21();
    var tmp_1 = fromInt_0(small.signum);
    // Inline function 'kotlin.math.max' call
    var a = fromInt_0(big.wt_1);
    // Inline function 'kotlin.Long.plus' call
    var this_1 = a >= estResultUlpScale ? a : estResultUlpScale;
    var tmp$ret$9 = add_0(this_1, fromInt_0(3));
    small = tmp_0.ofScaledLong(tmp_1, checkScale_1($this, tmp$ret$9));
  }
  // Inline function 'kotlin.arrayOf' call
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  return [big, small];
}
function squareRootResultAssertions($this, result, mc) {
  if (result.signum === 0) {
    return squareRootZeroResultAssertions($this, result, mc);
  } else {
    var rm = mc.roundingMode;
    var ulp = result.ulp();
    var neighborUp = result.plus(ulp);
    if (_get_isPowerOfTen__mg2oyo($this)) {
      ulp = ulp.div(Companion_getInstance_21().TEN);
    }
    var neighborDown = result.minus(ulp);
    if (!(result.signum === 1) || !($this.signum === 1)) {
      return false;
    }
    switch (rm.g3_1) {
      case 1:
      case 3:
        return result.times(result).sq($this) <= 0 && neighborUp.times(neighborUp).sq($this) > 0;
      case 0:
      case 2:
        return result.times(result).sq($this) >= 0 && neighborDown.times(neighborDown).sq($this) < 0;
      case 5:
      case 6:
      case 4:
        var err = result.times(result).minus($this).absoluteValue;
        var errUp = neighborUp.times(neighborUp).minus($this);
        var errDown = $this.minus(neighborDown.times(neighborDown));
        var errCompErrup = err.sq(errUp);
        var errCompErrdown = err.sq(errDown);
        return errUp.signum === 1 && errDown.signum === 1 && errCompErrup <= 0 && errCompErrdown <= 0 && (errCompErrup === 0 ? errCompErrdown < 0 : true) && (errCompErrdown === 0 ? errCompErrup < 0 : true);
      default:
        return true;
    }
  }
}
function squareRootZeroResultAssertions($this, result, mc) {
  return $this.sq(Companion_getInstance_21().ZERO) === 0;
}
function compareMagnitude($this, val) {
  var ys = val.zt_1;
  var xs = $this.zt_1;
  if (xs === 0n) {
    return ys === 0n ? 0 : -1;
  }
  if (ys === 0n) {
    return 1;
  }
  var tmp0 = fromInt_0($this.wt_1);
  // Inline function 'kotlin.Long.minus' call
  var other = val.wt_1;
  var sdiff = subtract_0(tmp0, fromInt_0(other));
  if (!(sdiff === 0n)) {
    var tmp0_0 = fromInt_0($this.precision);
    // Inline function 'kotlin.Long.minus' call
    var other_0 = $this.wt_1;
    var xae = subtract_0(tmp0_0, fromInt_0(other_0));
    var tmp0_1 = fromInt_0(val.precision);
    // Inline function 'kotlin.Long.minus' call
    var other_1 = val.wt_1;
    var yae = subtract_0(tmp0_1, fromInt_0(other_1));
    if (xae < yae) {
      return -1;
    }
    if (xae > yae) {
      return 1;
    }
    if (sdiff < 0n) {
      var tmp;
      var tmp_0;
      if (sdiff > -2147483648n) {
        var tmp_1;
        if (xs === -9223372036854775808n) {
          tmp_1 = true;
        } else {
          // Inline function 'kotlin.run' call
          xs = longMultiplyPowerTen(Companion_getInstance_21(), xs, convertToInt(negate_0(sdiff)));
          tmp_1 = xs === -9223372036854775808n;
        }
        tmp_0 = tmp_1;
      } else {
        tmp_0 = false;
      }
      if (tmp_0) {
        tmp = ys === -9223372036854775808n;
      } else {
        tmp = false;
      }
      if (tmp) {
        var rb = bigMultiplyPowerTen_1($this, convertToInt(negate_0(sdiff)));
        return rb.cu(ensureNotNull(val.vt_1));
      }
    } else {
      var tmp_2;
      var tmp_3;
      if (sdiff <= 2147483647n) {
        var tmp_4;
        if (ys === -9223372036854775808n) {
          tmp_4 = true;
        } else {
          // Inline function 'kotlin.run' call
          ys = longMultiplyPowerTen(Companion_getInstance_21(), ys, convertToInt(sdiff));
          tmp_4 = ys === -9223372036854775808n;
        }
        tmp_3 = tmp_4;
      } else {
        tmp_3 = false;
      }
      if (tmp_3) {
        tmp_2 = xs === -9223372036854775808n;
      } else {
        tmp_2 = false;
      }
      if (tmp_2) {
        var rb_0 = bigMultiplyPowerTen_1(val, convertToInt(sdiff));
        return ensureNotNull($this.vt_1).cu(rb_0);
      }
    }
  }
  var tmp_5;
  if (!(xs === -9223372036854775808n)) {
    tmp_5 = !(ys === -9223372036854775808n) ? longCompareMagnitude(Companion_getInstance_21(), xs, ys) : -1;
  } else if (!(ys === -9223372036854775808n)) {
    tmp_5 = 1;
  } else {
    tmp_5 = ensureNotNull($this.vt_1).cu(ensureNotNull(val.vt_1));
  }
  return tmp_5;
}
function getValueString($this, signum, intString, scale) {
  var buf;
  var insertionPoint = intString.length - scale | 0;
  if (insertionPoint === 0) {
    return (signum < 0 ? '-0.' : '0.') + intString;
  } else if (insertionPoint > 0) {
    buf = StringBuilder.md(intString);
    insertChar(buf, insertionPoint, _Char___init__impl__6a9atx(46));
    if (signum < 0) {
      insertChar(buf, 0, _Char___init__impl__6a9atx(45));
    }
  } else {
    buf = StringBuilder.ua((3 - insertionPoint | 0) + intString.length | 0);
    buf.qa(signum < 0 ? '-0.' : '0.');
    var inductionVariable = 0;
    var last = -insertionPoint | 0;
    if (inductionVariable < last)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        buf.ra(_Char___init__impl__6a9atx(48));
      }
       while (inductionVariable < last);
    buf.qa(intString);
  }
  return buf.toString();
}
var LongOverflow_instance;
function LongOverflow_getInstance() {
  if (LongOverflow_instance === VOID)
    new LongOverflow();
  return LongOverflow_instance;
}
function layoutChars($this, sci) {
  if ($this.wt_1 === 0) {
    var tmp;
    if (!($this.zt_1 === -9223372036854775808n)) {
      tmp = $this.zt_1.toString();
    } else {
      tmp = ensureNotNull($this.vt_1).toString();
    }
    return tmp;
  }
  if ($this.wt_1 === 2 && $this.zt_1 >= 0n && $this.zt_1 < 2147483647n) {
    var lowInt = convertToInt($this.zt_1) % 100 | 0;
    var highInt = convertToInt($this.zt_1) / 100 | 0;
    return highInt.toString() + '.' + new Char(Companion_getInstance_20().bs_1[lowInt]) + toString(Companion_getInstance_20().cs_1[lowInt]);
  }
  var sbHelper = new StringBuilderHelper();
  var coeff;
  var offset;
  if (!($this.zt_1 === -9223372036854775808n)) {
    offset = sbHelper.dv(abs_1($this.zt_1));
    coeff = sbHelper.bv_1;
  } else {
    offset = 0;
    coeff = toCharArray_0(ensureNotNull($this.vt_1).absoluteValue.toString());
  }
  var buf = sbHelper.cv();
  if ($this.signum < 0) {
    buf.ra(_Char___init__impl__6a9atx(45));
  }
  var coeffLen = coeff.length - offset | 0;
  var tmp0 = negate_0(fromInt_0($this.wt_1));
  // Inline function 'kotlin.Long.plus' call
  var other = coeffLen - 1 | 0;
  var adjusted = add_0(tmp0, fromInt_0(other));
  if ($this.wt_1 >= 0 && adjusted >= -6n) {
    var pad = $this.wt_1 - coeffLen | 0;
    if (pad >= 0) {
      buf.ra(_Char___init__impl__6a9atx(48));
      buf.ra(_Char___init__impl__6a9atx(46));
      while (pad > 0) {
        buf.ra(_Char___init__impl__6a9atx(48));
        pad = pad - 1 | 0;
      }
      appendCharArray(buf, coeff, offset, coeffLen);
    } else {
      appendCharArray(buf, coeff, offset, -pad | 0);
      buf.ra(_Char___init__impl__6a9atx(46));
      appendCharArray(buf, coeff, (-pad | 0) + offset | 0, $this.wt_1);
    }
  } else {
    if (sci) {
      buf.ra(coeff[offset]);
      if (coeffLen > 1) {
        buf.ra(_Char___init__impl__6a9atx(46));
        appendCharArray(buf, coeff, offset + 1 | 0, coeffLen - 1 | 0);
      }
    } else {
      // Inline function 'kotlin.Long.rem' call
      var this_0 = adjusted;
      var tmp$ret$1 = modulo(this_0, fromInt_0(3));
      var sig = convertToInt(tmp$ret$1);
      if (sig < 0) {
        sig = sig + 3 | 0;
      }
      adjusted = subtract_0(adjusted, fromInt_0(sig));
      sig = sig + 1 | 0;
      if ($this.signum === 0) {
        switch (sig) {
          case 1:
            buf.ra(_Char___init__impl__6a9atx(48));
            break;
          case 2:
            buf.qa('0.00');
            // Inline function 'kotlin.Long.plus' call

            var this_1 = adjusted;
            adjusted = add_0(this_1, fromInt_0(3));
            break;
          case 3:
            buf.qa('0.0');
            // Inline function 'kotlin.Long.plus' call

            var this_2 = adjusted;
            adjusted = add_0(this_2, fromInt_0(3));
            break;
          default:
            throw AssertionError.hc('Unexpected sig value ' + sig);
        }
      } else if (sig >= coeffLen) {
        appendCharArray(buf, coeff, offset, coeffLen);
        var inductionVariable = sig - coeffLen | 0;
        if (1 <= inductionVariable)
          do {
            var i = inductionVariable;
            inductionVariable = inductionVariable + -1 | 0;
            buf.ra(_Char___init__impl__6a9atx(48));
          }
           while (1 <= inductionVariable);
      } else {
        appendCharArray(buf, coeff, offset, sig);
        buf.ra(_Char___init__impl__6a9atx(46));
        appendCharArray(buf, coeff, offset + sig | 0, coeffLen - sig | 0);
      }
    }
    if (!(adjusted === 0n)) {
      buf.ra(_Char___init__impl__6a9atx(69));
      if (adjusted > 0n) {
        buf.ra(_Char___init__impl__6a9atx(43));
      }
      buf.qd(adjusted);
    }
  }
  return buf.toString();
}
function bigMultiplyPowerTen_1($this, n) {
  if (n <= 0) {
    return inflated($this);
  }
  var tmp;
  if (!($this.zt_1 === -9223372036854775808n)) {
    tmp = bigTenToThe(Companion_getInstance_21(), n).uu($this.zt_1);
  } else {
    tmp = ensureNotNull($this.vt_1).times(bigTenToThe(Companion_getInstance_21(), n));
  }
  return tmp;
}
function inflated($this) {
  var tmp0_elvis_lhs = $this.vt_1;
  return tmp0_elvis_lhs == null ? Companion_getInstance_22().ofLong($this.zt_1) : tmp0_elvis_lhs;
}
function checkScale_1($this, val) {
  var asInt = convertToInt(val);
  if (!(fromInt_0(asInt) === val)) {
    asInt = val > 2147483647n ? 2147483647 : -2147483648;
    var b;
    var tmp;
    if (!($this.zt_1 === 0n)) {
      var tmp_0;
      // Inline function 'kotlin.run' call
      b = $this.vt_1;
      if (b == null) {
        tmp_0 = true;
      } else {
        tmp_0 = !(ensureNotNull(b).signum === 0);
      }
      tmp = tmp_0;
    } else {
      tmp = false;
    }
    if (tmp) {
      throw ArithmeticException.cc(asInt > 0 ? 'Underflow' : 'Overflow');
    }
  }
  return asInt;
}
var Companion_instance_21;
function Companion_getInstance_21() {
  if (Companion_instance_21 === VOID)
    new Companion_21();
  return Companion_instance_21;
}
function init_com_macrofocus_common_math_big_CommonBigDecimal(_this__u8e3s4) {
  Companion_getInstance_21();
  _this__u8e3s4.xt_1 = 0;
  _this__u8e3s4.yt_1 = null;
}
function destructiveMulAdd($this, x, y, z) {
  var ylong = fromInt_0(y) & 4294967295n;
  var zlong = fromInt_0(z) & 4294967295n;
  var len = x.length;
  var product = 0n;
  var carry = 0n;
  var inductionVariable = len - 1 | 0;
  if (0 <= inductionVariable)
    do {
      var i = inductionVariable;
      inductionVariable = inductionVariable + -1 | 0;
      product = add_0(multiply_0(ylong, fromInt_0(x[i]) & 4294967295n), carry);
      x[i] = convertToInt(product);
      carry = shiftRightUnsigned(product, 32);
    }
     while (0 <= inductionVariable);
  var sum = add_0(fromInt_0(x[len - 1 | 0]) & 4294967295n, zlong);
  x[len - 1 | 0] = convertToInt(sum);
  carry = shiftRightUnsigned(sum, 32);
  var inductionVariable_0 = len - 2 | 0;
  if (0 <= inductionVariable_0)
    do {
      var i_0 = inductionVariable_0;
      inductionVariable_0 = inductionVariable_0 + -1 | 0;
      sum = add_0(fromInt_0(x[i_0]) & 4294967295n, carry);
      x[i_0] = convertToInt(sum);
      carry = shiftRightUnsigned(sum, 32);
    }
     while (0 <= inductionVariable_0);
}
function randomBits($this, numBits, rnd) {
  if (numBits < 0) {
    throw IllegalArgumentException.w('numBits must be non-negative');
  }
  // Inline function 'kotlin.Long.plus' call
  var this_0 = fromInt_0(numBits);
  // Inline function 'kotlin.Long.div' call
  var this_1 = add_0(this_0, fromInt_0(7));
  var tmp$ret$1 = divide(this_1, fromInt_0(8));
  var numBytes = convertToInt(tmp$ret$1);
  var randomBits = new Int8Array(numBytes);
  if (numBytes > 0) {
    rnd.jf(randomBits);
    var excessBits = imul_0(8, numBytes) - numBits | 0;
    var tmp0 = randomBits[0];
    // Inline function 'kotlin.experimental.and' call
    var other = toByte((1 << (8 - excessBits | 0)) - 1 | 0);
    randomBits[0] = toByte(tmp0 & other);
  }
  return randomBits;
}
function smallPrime($this, bitLength, certainty, rnd) {
  var magLen = (bitLength + 31 | 0) >>> 5 | 0;
  var temp = new Int32Array(magLen);
  var highBit = 1 << ((bitLength + 31 | 0) & 31);
  var highMask = (highBit << 1) - 1 | 0;
  $l$loop: while (true) {
    var inductionVariable = 0;
    if (inductionVariable < magLen)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        temp[i] = rnd.ve();
      }
       while (inductionVariable < magLen);
    temp[0] = temp[0] & highMask | highBit;
    if (bitLength > 2) {
      temp[magLen - 1 | 0] = temp[magLen - 1 | 0] | 1;
    }
    var p = CommonBigInteger.ov(temp, 1);
    if (bitLength > 6) {
      var r = p.reminder($this.ss_1).toLong();
      var tmp;
      var tmp_0;
      var tmp_1;
      var tmp_2;
      var tmp_3;
      var tmp_4;
      var tmp_5;
      var tmp_6;
      var tmp_7;
      var tmp_8;
      var tmp_9;
      // Inline function 'kotlin.Long.rem' call
      if (modulo(r, fromInt_0(3)) === 0n) {
        tmp_9 = true;
      } else {
        // Inline function 'kotlin.Long.rem' call
        tmp_9 = modulo(r, fromInt_0(5)) === 0n;
      }
      if (tmp_9) {
        tmp_8 = true;
      } else {
        // Inline function 'kotlin.Long.rem' call
        tmp_8 = modulo(r, fromInt_0(7)) === 0n;
      }
      if (tmp_8) {
        tmp_7 = true;
      } else {
        // Inline function 'kotlin.Long.rem' call
        tmp_7 = modulo(r, fromInt_0(11)) === 0n;
      }
      if (tmp_7) {
        tmp_6 = true;
      } else {
        // Inline function 'kotlin.Long.rem' call
        tmp_6 = modulo(r, fromInt_0(13)) === 0n;
      }
      if (tmp_6) {
        tmp_5 = true;
      } else {
        // Inline function 'kotlin.Long.rem' call
        tmp_5 = modulo(r, fromInt_0(17)) === 0n;
      }
      if (tmp_5) {
        tmp_4 = true;
      } else {
        // Inline function 'kotlin.Long.rem' call
        tmp_4 = modulo(r, fromInt_0(19)) === 0n;
      }
      if (tmp_4) {
        tmp_3 = true;
      } else {
        // Inline function 'kotlin.Long.rem' call
        tmp_3 = modulo(r, fromInt_0(23)) === 0n;
      }
      if (tmp_3) {
        tmp_2 = true;
      } else {
        // Inline function 'kotlin.Long.rem' call
        tmp_2 = modulo(r, fromInt_0(29)) === 0n;
      }
      if (tmp_2) {
        tmp_1 = true;
      } else {
        // Inline function 'kotlin.Long.rem' call
        tmp_1 = modulo(r, fromInt_0(31)) === 0n;
      }
      if (tmp_1) {
        tmp_0 = true;
      } else {
        // Inline function 'kotlin.Long.rem' call
        tmp_0 = modulo(r, fromInt_0(37)) === 0n;
      }
      if (tmp_0) {
        tmp = true;
      } else {
        // Inline function 'kotlin.Long.rem' call
        tmp = modulo(r, fromInt_0(41)) === 0n;
      }
      if (tmp) {
        continue $l$loop;
      }
    }
    if (bitLength < 4) {
      return p;
    }
    if (p.as(certainty, rnd)) {
      return p;
    }
  }
}
function largePrime($this, bitLength, certainty, rnd) {
  var p;
  p = CommonBigInteger.pv(bitLength, rnd).setBit(bitLength - 1 | 0);
  p.vr_1[p.vr_1.length - 1 | 0] = p.vr_1[p.vr_1.length - 1 | 0] & -2;
  var searchLen = getPrimeSearchLen($this, bitLength);
  var searchSieve = BitSieve.lr(p, searchLen);
  var candidate = searchSieve.tr(p, certainty, rnd);
  while (candidate == null || !(candidate.bitLength === bitLength)) {
    p = p.plus($this.ofLong(fromInt_0(imul_0(2, searchLen))));
    if (!(p.bitLength === bitLength)) {
      p = CommonBigInteger.pv(bitLength, rnd).setBit(bitLength - 1 | 0);
    }
    p.vr_1[p.vr_1.length - 1 | 0] = p.vr_1[p.vr_1.length - 1 | 0] & -2;
    searchSieve = BitSieve.lr(p, searchLen);
    candidate = searchSieve.tr(p, certainty, rnd);
  }
  return candidate;
}
function getPrimeSearchLen($this, bitLength) {
  if (bitLength > 500000001) {
    throw ArithmeticException.cc('Prime search implementation restriction on bitLength');
  }
  return imul_0(bitLength / 20 | 0, 64);
}
function jacobiSymbol($this, p, n) {
  var p_0 = p;
  if (p_0 === 0) {
    return 0;
  }
  var j = 1;
  var u = n.vr_1[n.vr_1.length - 1 | 0];
  if (p_0 < 0) {
    p_0 = -p_0 | 0;
    var n8 = u & 7;
    if (n8 === 3 || n8 === 7) {
      j = -j | 0;
    }
  }
  while ((p_0 & 3) === 0)
    p_0 = p_0 >> 2;
  if ((p_0 & 1) === 0) {
    p_0 = p_0 >> 1;
    if (!(((u ^ u >> 1) & 2) === 0)) {
      j = -j | 0;
    }
  }
  if (p_0 === 1) {
    return j;
  }
  if (!((p_0 & u & 2) === 0)) {
    j = -j | 0;
  }
  u = n.rem($this.ofLong(fromInt_0(p_0))).toInt();
  while (!(u === 0)) {
    while ((u & 3) === 0)
      u = u >> 2;
    if ((u & 1) === 0) {
      u = u >> 1;
      if (!(((p_0 ^ p_0 >> 1) & 2) === 0)) {
        j = -j | 0;
      }
    }
    if (u === 1) {
      return j;
    }
    // Inline function 'kotlin.require' call
    // Inline function 'kotlin.require' call
    if (!(u < p_0)) {
      var message = 'Failed requirement.';
      throw IllegalArgumentException.w(toString_1(message));
    }
    var t = u;
    u = p_0;
    p_0 = t;
    if (!((u & p_0 & 2) === 0)) {
      j = -j | 0;
    }
    u = u % p_0 | 0;
  }
  return 0;
}
function lucasLehmerSequence($this, z, k, n) {
  var d = $this.ofLong(fromInt_0(z));
  var u = $this.ONE;
  var u2;
  var v = $this.ONE;
  var v2;
  var inductionVariable = k.bitLength - 2 | 0;
  if (0 <= inductionVariable)
    do {
      var i = inductionVariable;
      inductionVariable = inductionVariable + -1 | 0;
      u2 = u.times(v).rem(n);
      v2 = square(v).plus(d.times(square(u))).rem(n);
      if (v2.testBit(0)) {
        v2 = v2.minus(n);
      }
      v2 = v2.shr(1);
      u = u2;
      v = v2;
      if (k.testBit(i)) {
        u2 = u.plus(v).rem(n);
        if (u2.testBit(0)) {
          u2 = u2.minus(n);
        }
        u2 = u2.shr(1);
        v2 = v.plus(d.times(u)).rem(n);
        if (v2.testBit(0)) {
          v2 = v2.minus(n);
        }
        v2 = v2.shr(1);
        u = u2;
        v = v2;
      }
    }
     while (0 <= inductionVariable);
  return u;
}
function reportOverflow($this) {
  throw ArithmeticException.cc('BigInteger would overflow supported range');
}
function sum_4($this, x, other) {
  var sum = 0n;
  var xIndex = x.length;
  var result;
  var highWord = convertToInt(shiftRightUnsigned(other, 32));
  if (highWord === 0) {
    result = new Int32Array(xIndex);
    xIndex = xIndex - 1 | 0;
    sum = add_0(fromInt_0(x[xIndex]) & 4294967295n, other);
    result[xIndex] = convertToInt(sum);
  } else {
    if (xIndex === 1) {
      result = new Int32Array(2);
      sum = add_0(other, fromInt_0(x[0]) & 4294967295n);
      result[1] = convertToInt(sum);
      result[0] = convertToInt(shiftRightUnsigned(sum, 32));
      return result;
    } else {
      result = new Int32Array(xIndex);
      xIndex = xIndex - 1 | 0;
      sum = add_0(fromInt_0(x[xIndex]) & 4294967295n, other & 4294967295n);
      result[xIndex] = convertToInt(sum);
      xIndex = xIndex - 1 | 0;
      sum = add_0(add_0(fromInt_0(x[xIndex]) & 4294967295n, fromInt_0(highWord) & 4294967295n), shiftRightUnsigned(sum, 32));
      result[xIndex] = convertToInt(sum);
    }
  }
  var carry = !(shiftRightUnsigned(sum, 32) === 0n);
  while (xIndex > 0 && carry) {
    result[xIndex - 1 | 0] = x[xIndex] + 1 | 0;
    xIndex = xIndex - 1 | 0;
    carry = result[xIndex] === 0;
  }
  while (xIndex > 0) {
    xIndex = xIndex - 1 | 0;
    result[xIndex] = x[xIndex];
  }
  if (carry) {
    var bigger = new Int32Array(result.length + 1 | 0);
    arrayCopy_0(result, 0, bigger, 1, result.length);
    bigger[0] = 1;
    return bigger;
  }
  return result;
}
function sum_5($this, x, y) {
  var x_0 = x;
  var y_0 = y;
  if (x_0.length < y_0.length) {
    var tmp = x_0;
    x_0 = y_0;
    y_0 = tmp;
  }
  var xIndex = x_0.length;
  var yIndex = y_0.length;
  var result = new Int32Array(xIndex);
  var sum = 0n;
  if (yIndex === 1) {
    xIndex = xIndex - 1 | 0;
    sum = add_0(fromInt_0(x_0[xIndex]) & 4294967295n, fromInt_0(y_0[0]) & 4294967295n);
    result[xIndex] = convertToInt(sum);
  } else {
    while (yIndex > 0) {
      var tmp_0 = x_0;
      xIndex = xIndex - 1 | 0;
      var tmp_1 = fromInt_0(tmp_0[xIndex]) & 4294967295n;
      var tmp_2 = y_0;
      yIndex = yIndex - 1 | 0;
      sum = add_0(add_0(tmp_1, fromInt_0(tmp_2[yIndex]) & 4294967295n), shiftRightUnsigned(sum, 32));
      result[xIndex] = convertToInt(sum);
    }
  }
  var carry = !(shiftRightUnsigned(sum, 32) === 0n);
  while (xIndex > 0 && carry) {
    xIndex = xIndex - 1 | 0;
    result[xIndex] = x_0[xIndex] + 1 | 0;
    carry = result[xIndex] === 0;
  }
  while (xIndex > 0) {
    xIndex = xIndex - 1 | 0;
    result[xIndex] = x_0[xIndex];
  }
  if (carry) {
    var bigger = new Int32Array(result.length + 1 | 0);
    arrayCopy_0(result, 0, bigger, 1, result.length);
    bigger[0] = 1;
    return bigger;
  }
  return result;
}
function subtract_1($this, other, little) {
  var highWord = convertToInt(shiftRightUnsigned(other, 32));
  if (highWord === 0) {
    var result = new Int32Array(1);
    result[0] = convertToInt(subtract_0(other, fromInt_0(little[0]) & 4294967295n));
    return result;
  } else {
    var result_0 = new Int32Array(2);
    if (little.length === 1) {
      var difference = subtract_0(fromInt_0(convertToInt(other)) & 4294967295n, fromInt_0(little[0]) & 4294967295n);
      result_0[1] = convertToInt(difference);
      var borrow = !(shiftRight(difference, 32) === 0n);
      if (borrow) {
        result_0[0] = highWord - 1 | 0;
      } else {
        result_0[0] = highWord;
      }
      return result_0;
    } else {
      var difference_0 = subtract_0(fromInt_0(convertToInt(other)) & 4294967295n, fromInt_0(little[1]) & 4294967295n);
      result_0[1] = convertToInt(difference_0);
      difference_0 = add_0(subtract_0(fromInt_0(highWord) & 4294967295n, fromInt_0(little[0]) & 4294967295n), shiftRight(difference_0, 32));
      result_0[0] = convertToInt(difference_0);
      return result_0;
    }
  }
}
function subtract_2($this, big, other) {
  var highWord = convertToInt(shiftRightUnsigned(other, 32));
  var bigIndex = big.length;
  var result = new Int32Array(bigIndex);
  var difference = 0n;
  if (highWord === 0) {
    bigIndex = bigIndex - 1 | 0;
    difference = subtract_0(fromInt_0(big[bigIndex]) & 4294967295n, other);
    result[bigIndex] = convertToInt(difference);
  } else {
    bigIndex = bigIndex - 1 | 0;
    difference = subtract_0(fromInt_0(big[bigIndex]) & 4294967295n, other & 4294967295n);
    result[bigIndex] = convertToInt(difference);
    bigIndex = bigIndex - 1 | 0;
    difference = add_0(subtract_0(fromInt_0(big[bigIndex]) & 4294967295n, fromInt_0(highWord) & 4294967295n), shiftRight(difference, 32));
    result[bigIndex] = convertToInt(difference);
  }
  var borrow = !(shiftRight(difference, 32) === 0n);
  while (bigIndex > 0 && borrow) {
    bigIndex = bigIndex - 1 | 0;
    result[bigIndex] = big[bigIndex] - 1 | 0;
    borrow = result[bigIndex] === -1;
  }
  while (bigIndex > 0) {
    bigIndex = bigIndex - 1 | 0;
    result[bigIndex] = big[bigIndex];
  }
  return result;
}
function subtract_3($this, big, little) {
  var bigIndex = big.length;
  var result = new Int32Array(bigIndex);
  var littleIndex = little.length;
  var difference = 0n;
  while (littleIndex > 0) {
    bigIndex = bigIndex - 1 | 0;
    var tmp = fromInt_0(big[bigIndex]) & 4294967295n;
    littleIndex = littleIndex - 1 | 0;
    difference = add_0(subtract_0(tmp, fromInt_0(little[littleIndex]) & 4294967295n), shiftRight(difference, 32));
    result[bigIndex] = convertToInt(difference);
  }
  var borrow = !(shiftRight(difference, 32) === 0n);
  while (bigIndex > 0 && borrow) {
    bigIndex = bigIndex - 1 | 0;
    result[bigIndex] = big[bigIndex] - 1 | 0;
    borrow = result[bigIndex] === -1;
  }
  while (bigIndex > 0) {
    bigIndex = bigIndex - 1 | 0;
    result[bigIndex] = big[bigIndex];
  }
  return result;
}
function multiplyByInt($this, x, y, sign) {
  if (bitCount(y) === 1) {
    return CommonBigInteger.ov(shl($this, x, numberOfTrailingZeros(y)), sign);
  }
  var xlen = x.length;
  var rmag = new Int32Array(xlen + 1 | 0);
  var carry = 0n;
  var yl = fromInt_0(y) & 4294967295n;
  var rstart = rmag.length - 1 | 0;
  var inductionVariable = xlen - 1 | 0;
  if (0 <= inductionVariable)
    do {
      var i = inductionVariable;
      inductionVariable = inductionVariable + -1 | 0;
      var product = add_0(multiply_0(fromInt_0(x[i]) & 4294967295n, yl), carry);
      var tmp = rmag;
      var _unary__edvuaz = rstart;
      rstart = _unary__edvuaz - 1 | 0;
      tmp[_unary__edvuaz] = convertToInt(product);
      carry = shiftRightUnsigned(product, 32);
    }
     while (0 <= inductionVariable);
  if (carry === 0n) {
    rmag = copyOfRange_0(rmag, 1, rmag.length);
  } else {
    rmag[rstart] = convertToInt(carry);
  }
  return CommonBigInteger.ov(rmag, sign);
}
function multiplyToLen($this, x, xlen, y, ylen, z) {
  multiplyToLenCheck($this, x, xlen);
  multiplyToLenCheck($this, y, ylen);
  return implMultiplyToLen($this, x, xlen, y, ylen, z);
}
function implMultiplyToLen($this, x, xlen, y, ylen, z) {
  var z_0 = z;
  var xstart = xlen - 1 | 0;
  var ystart = ylen - 1 | 0;
  if (z_0 == null || z_0.length < (xlen + ylen | 0)) {
    z_0 = new Int32Array(xlen + ylen | 0);
  }
  var carry = 0n;
  // Inline function 'kotlin.run' call
  var j = ystart;
  var k = (ystart + 1 | 0) + xstart | 0;
  while (j >= 0) {
    var product = add_0(multiply_0(fromInt_0(y[j]) & 4294967295n, fromInt_0(x[xstart]) & 4294967295n), carry);
    z_0[k] = convertToInt(product);
    carry = shiftRightUnsigned(product, 32);
    j = j - 1 | 0;
    k = k - 1 | 0;
  }
  z_0[xstart] = convertToInt(carry);
  var inductionVariable = xstart - 1 | 0;
  if (0 <= inductionVariable)
    do {
      var i = inductionVariable;
      inductionVariable = inductionVariable + -1 | 0;
      carry = 0n;
      var j_0 = ystart;
      var k_0 = (ystart + 1 | 0) + i | 0;
      while (j_0 >= 0) {
        var product_0 = add_0(add_0(multiply_0(fromInt_0(y[j_0]) & 4294967295n, fromInt_0(x[i]) & 4294967295n), fromInt_0(z_0[k_0]) & 4294967295n), carry);
        z_0[k_0] = convertToInt(product_0);
        carry = shiftRightUnsigned(product_0, 32);
        j_0 = j_0 - 1 | 0;
        k_0 = k_0 - 1 | 0;
      }
      z_0[i] = convertToInt(carry);
    }
     while (0 <= inductionVariable);
  return z_0;
}
function multiplyToLenCheck($this, array, length) {
  if (length <= 0) {
    return Unit_instance;
  }
  if (length > array.length) {
    throw IndexOutOfBoundsException.rb('' + (length - 1 | 0));
  }
}
function multiplyKaratsuba($this, x, y) {
  var xlen = x.vr_1.length;
  var ylen = y.vr_1.length;
  // Inline function 'kotlin.math.max' call
  var half = (Math.max(xlen, ylen) + 1 | 0) / 2 | 0;
  var xl = getLower(x, half);
  var xh = getUpper(x, half);
  var yl = getLower(y, half);
  var yh = getUpper(y, half);
  var p1 = xh.times(yh);
  var p2 = xl.times(yl);
  var p3 = xh.plus(xl).times(yh.plus(yl));
  var result = p1.shl(imul_0(32, half)).plus(p3.minus(p1).minus(p2)).shl(imul_0(32, half)).plus(p2);
  var tmp;
  if (!(x.ur_1 === y.ur_1)) {
    tmp = result.unaryMinus();
  } else {
    tmp = result;
  }
  return tmp;
}
function multiplyToomCook3($this, a, b) {
  var alen = a.vr_1.length;
  var blen = b.vr_1.length;
  // Inline function 'kotlin.math.max' call
  var largest = Math.max(alen, blen);
  var k = (largest + 2 | 0) / 3 | 0;
  var r = largest - imul_0(2, k) | 0;
  var a0;
  var a1;
  var a2;
  var b0;
  var b1;
  var b2;
  a2 = getToomSlice(a, k, r, 0, largest);
  a1 = getToomSlice(a, k, r, 1, largest);
  a0 = getToomSlice(a, k, r, 2, largest);
  b2 = getToomSlice(b, k, r, 0, largest);
  b1 = getToomSlice(b, k, r, 1, largest);
  b0 = getToomSlice(b, k, r, 2, largest);
  var v0;
  var v1;
  var v2;
  var vm1;
  var vinf;
  var t1;
  var t2;
  var tm1;
  var da1;
  var db1;
  v0 = a0.times(b0);
  da1 = a2.plus(a0);
  db1 = b2.plus(b0);
  vm1 = da1.minus(a1).times(db1.minus(b1));
  da1 = da1.plus(a1);
  db1 = db1.plus(b1);
  v1 = da1.times(db1);
  v2 = da1.plus(a2).shl(1).minus(a0).times(db1.plus(b2).shl(1).minus(b0));
  vinf = a2.times(b2);
  t2 = exactDivideBy3(v2.minus(vm1));
  tm1 = v1.minus(vm1).shr(1);
  t1 = v1.minus(v0);
  t2 = t2.minus(t1).shr(1);
  t1 = t1.minus(tm1).minus(vinf);
  t2 = t2.minus(vinf.shl(1));
  tm1 = tm1.minus(t2);
  var ss = imul_0(k, 32);
  var result = vinf.shl(ss).plus(t2).shl(ss).plus(t1).shl(ss).plus(tm1).shl(ss).plus(v0);
  var tmp;
  if (!(a.ur_1 === b.ur_1)) {
    tmp = result.unaryMinus();
  } else {
    tmp = result;
  }
  return tmp;
}
function squareToLen($this, x, len, z) {
  var z_0 = z;
  var zlen = len << 1;
  if (z_0 == null || z_0.length < zlen) {
    z_0 = new Int32Array(zlen);
  }
  implSquareToLenChecks($this, x, len, z_0, zlen);
  return implSquareToLen($this, x, len, z_0, zlen);
}
function implSquareToLenChecks($this, x, len, z, zlen) {
  if (len < 1) {
    throw IllegalArgumentException.w('invalid input length: ' + len);
  }
  if (len > x.length) {
    throw IllegalArgumentException.w('input length out of bound: ' + len + ' > ' + x.length);
  }
  if (imul_0(len, 2) > z.length) {
    throw IllegalArgumentException.w('input length out of bound: ' + imul_0(len, 2) + ' > ' + z.length);
  }
  if (zlen < 1) {
    throw IllegalArgumentException.w('invalid input length: ' + zlen);
  }
  if (zlen > z.length) {
    throw IllegalArgumentException.w('input length out of bound: ' + len + ' > ' + z.length);
  }
}
function implSquareToLen($this, x, len, z, zlen) {
  var lastProductLowWord = 0;
  // Inline function 'kotlin.run' call
  var j = 0;
  var i = 0;
  while (j < len) {
    var piece = fromInt_0(x[j]) & 4294967295n;
    var product = multiply_0(piece, piece);
    var _unary__edvuaz = i;
    i = _unary__edvuaz + 1 | 0;
    z[_unary__edvuaz] = lastProductLowWord << 31 | convertToInt(shiftRightUnsigned(product, 33));
    var _unary__edvuaz_0 = i;
    i = _unary__edvuaz_0 + 1 | 0;
    z[_unary__edvuaz_0] = convertToInt(shiftRightUnsigned(product, 1));
    lastProductLowWord = convertToInt(product);
    j = j + 1 | 0;
  }
  var i_0 = len;
  var offset = 1;
  while (i_0 > 0) {
    var t = x[i_0 - 1 | 0];
    t = mulAdd($this, z, x, offset, i_0 - 1 | 0, t);
    addOne($this, z, offset - 1 | 0, i_0, t);
    i_0 = i_0 - 1 | 0;
    offset = offset + 2 | 0;
  }
  primitiveLeftShift($this, z, zlen, 1);
  z[zlen - 1 | 0] = z[zlen - 1 | 0] | x[len - 1 | 0] & 1;
  return z;
}
function leftShift($this, a, len, n) {
  var nInts = n >>> 5 | 0;
  var nBits = n & 31;
  var bitsInHighWord = $this.qv(a[0]);
  if (n <= (32 - bitsInHighWord | 0)) {
    primitiveLeftShift($this, a, len, nBits);
    return a;
  } else {
    if (nBits <= (32 - bitsInHighWord | 0)) {
      var result = new Int32Array(nInts + len | 0);
      arrayCopy_0(a, 0, result, 0, len);
      primitiveLeftShift($this, result, result.length, nBits);
      return result;
    } else {
      var result_0 = new Int32Array((nInts + len | 0) + 1 | 0);
      arrayCopy_0(a, 0, result_0, 0, len);
      primitiveRightShift($this, result_0, result_0.length, 32 - nBits | 0);
      return result_0;
    }
  }
}
function primitiveRightShift($this, a, len, n) {
  var n2 = 32 - n | 0;
  var i = len - 1 | 0;
  var c = a[i];
  while (i > 0) {
    var b = c;
    c = a[i - 1 | 0];
    a[i] = c << n2 | (b >>> n | 0);
    i = i - 1 | 0;
  }
  a[0] = a[0] >>> n | 0;
}
function primitiveLeftShift($this, a, len, n) {
  if (len === 0 || n === 0) {
    return Unit_instance;
  }
  var n2 = 32 - n | 0;
  var i = 0;
  var c = a[i];
  var m = (i + len | 0) - 1 | 0;
  while (i < m) {
    var b = c;
    c = a[i + 1 | 0];
    a[i] = b << n | (c >>> n2 | 0);
    i = i + 1 | 0;
  }
  a[len - 1 | 0] = a[len - 1 | 0] << n;
}
function bitLength($this, other, len) {
  return len === 0 ? 0 : ((len - 1 | 0) << 5) + $this.qv(other[0]) | 0;
}
function montgomeryMultiply($this, a, b, n, len, inv, product) {
  var product_0 = product;
  implMontgomeryMultiplyChecks($this, a, b, n, len, product_0);
  if (len > 512) {
    product_0 = multiplyToLen($this, a, len, b, len, product_0);
    return montReduce($this, product_0, n, len, convertToInt(inv));
  } else {
    return implMontgomeryMultiply($this, a, b, n, len, inv, materialize($this, product_0, len));
  }
}
function montgomerySquare($this, a, n, len, inv, product) {
  var product_0 = product;
  implMontgomeryMultiplyChecks($this, a, a, n, len, product_0);
  if (len > 512) {
    product_0 = squareToLen($this, a, len, product_0);
    return montReduce($this, product_0, n, len, convertToInt(inv));
  } else {
    return implMontgomerySquare($this, a, n, len, inv, materialize($this, product_0, len));
  }
}
function implMontgomeryMultiplyChecks($this, a, b, n, len, product) {
  if (!((len % 2 | 0) === 0)) {
    throw IllegalArgumentException.w('input array length must be even: ' + len);
  }
  if (len < 1) {
    throw IllegalArgumentException.w('invalid input length: ' + len);
  }
  if (len > a.length || len > b.length || len > n.length || (!(product == null) && len > product.length)) {
    throw IllegalArgumentException.w('input array length out of bound: ' + len);
  }
}
function materialize($this, z, len) {
  var z_0 = z;
  if (z_0 == null || z_0.length < len) {
    z_0 = new Int32Array(len);
  }
  return z_0;
}
function implMontgomeryMultiply($this, a, b, n, len, inv, product) {
  var product_0 = product;
  product_0 = multiplyToLen($this, a, len, b, len, product_0);
  return montReduce($this, product_0, n, len, convertToInt(inv));
}
function implMontgomerySquare($this, a, n, len, inv, product) {
  var product_0 = product;
  product_0 = squareToLen($this, a, len, product_0);
  return montReduce($this, product_0, n, len, convertToInt(inv));
}
function montReduce($this, n, mod, mlen, inv) {
  var c = 0;
  var len = mlen;
  var offset = 0;
  $l$1: do {
    $l$0: do {
      var nEnd = n[(n.length - 1 | 0) - offset | 0];
      var carry = mulAdd($this, n, mod, offset, mlen, imul_0(inv, nEnd));
      c = c + addOne($this, n, offset, mlen, carry) | 0;
      offset = offset + 1 | 0;
    }
     while (false);
    len = len - 1 | 0;
  }
   while (len > 0);
  while (c > 0)
    c = c + subN($this, n, mod, mlen) | 0;
  while (intArrayCmpToLen($this, n, mod, mlen) >= 0) {
    subN($this, n, mod, mlen);
  }
  return n;
}
function intArrayCmpToLen($this, arg1, arg2, len) {
  var inductionVariable = 0;
  if (inductionVariable < len)
    do {
      var i = inductionVariable;
      inductionVariable = inductionVariable + 1 | 0;
      var b1 = fromInt_0(arg1[i]) & 4294967295n;
      var b2 = fromInt_0(arg2[i]) & 4294967295n;
      if (b1 < b2) {
        return -1;
      }
      if (b1 > b2) {
        return 1;
      }
    }
     while (inductionVariable < len);
  return 0;
}
function subN($this, a, b, len) {
  var len_0 = len;
  var sum = 0n;
  $l$loop: while (true) {
    len_0 = len_0 - 1 | 0;
    if (!(len_0 >= 0)) {
      break $l$loop;
    }
    sum = add_0(subtract_0(fromInt_0(a[len_0]) & 4294967295n, fromInt_0(b[len_0]) & 4294967295n), shiftRight(sum, 32));
    a[len_0] = convertToInt(sum);
  }
  return convertToInt(shiftRight(sum, 32));
}
function mulAdd($this, out, in_0, offset, len, k) {
  implMulAddCheck($this, out, in_0, offset, len, k);
  return implMulAdd($this, out, in_0, offset, len, k);
}
function implMulAddCheck($this, out, in_0, offset, len, k) {
  if (len > in_0.length) {
    throw IllegalArgumentException.w('input length is out of bound: ' + len + ' > ' + in_0.length);
  }
  if (offset < 0) {
    throw IllegalArgumentException.w('input offset is invalid: ' + offset);
  }
  if (offset > (out.length - 1 | 0)) {
    throw IllegalArgumentException.w('input offset is out of bound: ' + offset + ' > ' + (out.length - 1 | 0));
  }
  if (len > (out.length - offset | 0)) {
    throw IllegalArgumentException.w('input len is out of bound: ' + len + ' > ' + (out.length - offset | 0));
  }
}
function implMulAdd($this, out, in_0, offset, len, k) {
  var offset_0 = offset;
  var kLong = fromInt_0(k) & 4294967295n;
  var carry = 0n;
  offset_0 = (out.length - offset_0 | 0) - 1 | 0;
  var inductionVariable = len - 1 | 0;
  if (0 <= inductionVariable)
    do {
      var j = inductionVariable;
      inductionVariable = inductionVariable + -1 | 0;
      var product = add_0(add_0(multiply_0(fromInt_0(in_0[j]) & 4294967295n, kLong), fromInt_0(out[offset_0]) & 4294967295n), carry);
      var _unary__edvuaz = offset_0;
      offset_0 = _unary__edvuaz - 1 | 0;
      out[_unary__edvuaz] = convertToInt(product);
      carry = shiftRightUnsigned(product, 32);
    }
     while (0 <= inductionVariable);
  return convertToInt(carry);
}
function addOne($this, a, offset, mlen, carry) {
  var offset_0 = offset;
  var mlen_0 = mlen;
  offset_0 = ((a.length - 1 | 0) - mlen_0 | 0) - offset_0 | 0;
  var t = add_0(fromInt_0(a[offset_0]) & 4294967295n, fromInt_0(carry) & 4294967295n);
  a[offset_0] = convertToInt(t);
  if (shiftRightUnsigned(t, 32) === 0n) {
    return 0;
  }
  $l$loop: while (true) {
    mlen_0 = mlen_0 - 1 | 0;
    if (!(mlen_0 >= 0)) {
      break $l$loop;
    }
    offset_0 = offset_0 - 1 | 0;
    if (offset_0 < 0) {
      return 1;
    } else {
      var _index_0__fvwizt = offset_0;
      a[_index_0__fvwizt] = a[_index_0__fvwizt] + 1 | 0;
      if (!(a[offset_0] === 0)) {
        return 0;
      }
    }
  }
  return 1;
}
function shl($this, mag, n) {
  var nInts = n >>> 5 | 0;
  var nBits = n & 31;
  var magLen = mag.length;
  var newMag = null;
  if (nBits === 0) {
    newMag = new Int32Array(magLen + nInts | 0);
    arrayCopy_0(mag, 0, newMag, 0, magLen);
  } else {
    var i = 0;
    var nBits2 = 32 - nBits | 0;
    var highBits = mag[0] >>> nBits2 | 0;
    if (!(highBits === 0)) {
      newMag = new Int32Array((magLen + nInts | 0) + 1 | 0);
      var tmp = newMag;
      var _unary__edvuaz = i;
      i = _unary__edvuaz + 1 | 0;
      tmp[_unary__edvuaz] = highBits;
    } else {
      newMag = new Int32Array(magLen + nInts | 0);
    }
    var j = 0;
    while (j < (magLen - 1 | 0)) {
      var tmp_0 = newMag;
      var _unary__edvuaz_0 = i;
      i = _unary__edvuaz_0 + 1 | 0;
      var _unary__edvuaz_1 = j;
      j = _unary__edvuaz_1 + 1 | 0;
      tmp_0[_unary__edvuaz_0] = mag[_unary__edvuaz_1] << nBits | (mag[j] >>> nBits2 | 0);
    }
    newMag[i] = mag[j] << nBits;
  }
  return newMag;
}
function toString_7($this, u, sb, radix, digits) {
  if (u.vr_1.length <= 20) {
    var s = smallToString(u, radix);
    if (s.length < digits && sb.a() > 0) {
      var inductionVariable = s.length;
      if (inductionVariable < digits)
        do {
          var i = inductionVariable;
          inductionVariable = inductionVariable + 1 | 0;
          sb.ra(_Char___init__impl__6a9atx(48));
        }
         while (inductionVariable < digits);
    }
    sb.qa(s);
    return Unit_instance;
  }
  var b;
  var n;
  b = u.bitLength;
  // Inline function 'kotlin.math.ln' call
  var x = b * $this.ys_1 / $this.xs_1[radix];
  var tmp$ret$0 = Math.log(x);
  n = numberToInt(round(tmp$ret$0 / $this.ys_1 - 1.0));
  var v = getRadixConversionCache($this, radix, n);
  var results;
  results = u.divideAndRemainder(v);
  var expectedDigits = 1 << n;
  toString_7($this, results[0], sb, radix, digits - expectedDigits | 0);
  toString_7($this, results[1], sb, radix, expectedDigits);
}
function getRadixConversionCache($this, radix, exponent) {
  var cacheLine = $this.ws_1[radix];
  if (exponent < ensureNotNull(cacheLine).length) {
    return cacheLine[exponent];
  }
  var oldLength = cacheLine.length;
  var cacheLine2 = copyOf_0(cacheLine, exponent + 1 | 0);
  var inductionVariable = oldLength;
  if (inductionVariable <= exponent)
    do {
      var i = inductionVariable;
      inductionVariable = inductionVariable + 1 | 0;
      cacheLine2[i] = ensureNotNull(cacheLine2[i - 1 | 0]).pow(2);
    }
     while (!(i === exponent));
  var pc = $this.ws_1;
  if (exponent >= ensureNotNull(pc[radix]).length) {
    // Inline function 'com.macrofocus.common.math.big.cloneArray' call
    var this_0 = pc;
    var tmp = 0;
    var tmp_0 = this_0.length;
    // Inline function 'kotlin.arrayOfNulls' call
    var tmp_1 = Array(tmp_0);
    while (tmp < tmp_0) {
      var tmp_2 = tmp;
      tmp_1[tmp_2] = this_0[tmp_2];
      tmp = tmp + 1 | 0;
    }
    pc = tmp_1;
    pc[radix] = requireNoNulls(cacheLine2);
    $this.ws_1 = pc;
  }
  return ensureNotNull(cacheLine2[exponent]);
}
function stripLeadingZeroInts($this, other) {
  var vlen = other.length;
  var keep;
  keep = 0;
  while (keep < vlen && other[keep] === 0) {
    keep = keep + 1 | 0;
  }
  return copyOfRange_0(other, keep, vlen);
}
function trustedStripLeadingZeroInts($this, other) {
  var vlen = other.length;
  var keep;
  keep = 0;
  while (keep < vlen && other[keep] === 0) {
    keep = keep + 1 | 0;
  }
  return keep === 0 ? other : copyOfRange_0(other, keep, vlen);
}
function stripLeadingZeroBytes($this, a, off, len) {
  var indexBound = off + len | 0;
  var keep;
  keep = off;
  while (keep < indexBound && a[keep] === 0) {
    keep = keep + 1 | 0;
  }
  var intLength = ((indexBound - keep | 0) + 3 | 0) >>> 2 | 0;
  var result = new Int32Array(intLength);
  var b = indexBound - 1 | 0;
  var inductionVariable = intLength - 1 | 0;
  if (0 <= inductionVariable)
    do {
      var i = inductionVariable;
      inductionVariable = inductionVariable + -1 | 0;
      var _unary__edvuaz = b;
      b = _unary__edvuaz - 1 | 0;
      result[i] = a[_unary__edvuaz] & 255;
      var bytesRemaining = (b - keep | 0) + 1 | 0;
      // Inline function 'kotlin.math.min' call
      var bytesToTransfer = Math.min(3, bytesRemaining);
      var j = 8;
      while (j <= bytesToTransfer << 3) {
        var tmp = result[i];
        var _unary__edvuaz_0 = b;
        b = _unary__edvuaz_0 - 1 | 0;
        result[i] = tmp | (a[_unary__edvuaz_0] & 255) << j;
        j = j + 8 | 0;
      }
    }
     while (0 <= inductionVariable);
  return result;
}
function makePositive($this, a) {
  var keep;
  var j;
  keep = 0;
  while (keep < a.length && a[keep] === -1) {
    keep = keep + 1 | 0;
  }
  j = keep;
  while (j < a.length && a[j] === 0) {
    j = j + 1 | 0;
  }
  var extraInt = j === a.length ? 1 : 0;
  var result = new Int32Array((a.length - keep | 0) + extraInt | 0);
  var inductionVariable = keep;
  var last = a.length;
  if (inductionVariable < last)
    do {
      var i = inductionVariable;
      inductionVariable = inductionVariable + 1 | 0;
      result[(i - keep | 0) + extraInt | 0] = ~a[i];
    }
     while (inductionVariable < last);
  var i_0 = result.length - 1 | 0;
  $l$loop: while (true) {
    var _index_0__fvwizt = i_0;
    result[_index_0__fvwizt] = result[_index_0__fvwizt] + 1 | 0;
    if (!(result[_index_0__fvwizt] === 0)) {
      break $l$loop;
    }
    i_0 = i_0 - 1 | 0;
  }
  return result;
}
function _get_lowestSetBit__xjmtq($this) {
  var lsb = $this.yr_1 - 2 | 0;
  if (lsb === -2) {
    lsb = 0;
    if ($this.ur_1 === 0) {
      lsb = lsb - 1 | 0;
    } else {
      var i;
      var b;
      i = 0;
      b = getInt($this, i);
      while (b === 0) {
        i = i + 1 | 0;
        b = getInt($this, i);
      }
      lsb = lsb + ((i << 5) + numberOfTrailingZeros(b) | 0) | 0;
    }
    $this.yr_1 = lsb + 2 | 0;
  }
  return lsb;
}
function parseInt($this, source, start, end) {
  var result = toDigit(source[start], 10);
  if (result === -1) {
    throw NumberFormatException.xb(concatToString(source));
  }
  var inductionVariable = start + 1 | 0;
  if (inductionVariable < end)
    do {
      var index = inductionVariable;
      inductionVariable = inductionVariable + 1 | 0;
      var nextVal = toDigit(source[index], 10);
      if (nextVal === -1) {
        throw NumberFormatException.xb(concatToString(source));
      }
      result = imul_0(10, result) + nextVal | 0;
    }
     while (inductionVariable < end);
  return result;
}
function passesLucasLehmer($this) {
  var thisPlusOne = $this.plus(Companion_getInstance_22().ONE);
  var d = 5;
  while (!(jacobiSymbol(Companion_getInstance_22(), d, $this) === -1)) {
    var tmp;
    if (d < 0) {
      // Inline function 'kotlin.math.absoluteValue' call
      var this_0 = d;
      tmp = abs_0(this_0) + 2 | 0;
    } else {
      tmp = -(d + 2 | 0) | 0;
    }
    d = tmp;
  }
  var u = lucasLehmerSequence(Companion_getInstance_22(), d, thisPlusOne, $this);
  return u.rem($this).equals(Companion_getInstance_22().ZERO);
}
function passesMillerRabin($this, iterations, rnd) {
  var rnd_0 = rnd;
  var thisMinusOne = $this.minus(Companion_getInstance_22().ONE);
  var m = thisMinusOne;
  var a = _get_lowestSetBit__xjmtq(m);
  m = m.shr(a);
  if (rnd_0 == null) {
    rnd_0 = Default_getInstance();
  }
  var inductionVariable = 0;
  if (inductionVariable < iterations)
    do {
      var i = inductionVariable;
      inductionVariable = inductionVariable + 1 | 0;
      var b;
      do {
        b = CommonBigInteger.pv($this.bitLength, rnd_0);
      }
       while (b.br(Companion_getInstance_22().ONE) <= 0 || b.br($this) >= 0);
      var j = 0;
      var z = b.modPow(m, $this);
      while (!(j === 0 && z.equals(Companion_getInstance_22().ONE) || z.equals(thisMinusOne))) {
        var tmp;
        if (j > 0 && z.equals(Companion_getInstance_22().ONE)) {
          tmp = true;
        } else {
          j = j + 1 | 0;
          tmp = j === a;
        }
        if (tmp) {
          return false;
        }
        z = z.modPow(Companion_getInstance_22().TWO, $this);
      }
    }
     while (inductionVariable < iterations);
  return true;
}
function checkRange($this) {
  if ($this.vr_1.length > 67108864 || ($this.vr_1.length === 67108864 && $this.vr_1[0] < 0)) {
    reportOverflow(Companion_getInstance_22());
  }
}
function getToomSlice($this, lowerSize, upperSize, slice, fullsize) {
  var start;
  var end;
  var sliceSize;
  var len;
  var offset;
  len = $this.vr_1.length;
  offset = fullsize - len | 0;
  if (slice === 0) {
    start = 0 - offset | 0;
    end = (upperSize - 1 | 0) - offset | 0;
  } else {
    start = (upperSize + imul_0(slice - 1 | 0, lowerSize) | 0) - offset | 0;
    end = (start + lowerSize | 0) - 1 | 0;
  }
  if (start < 0) {
    start = 0;
  }
  if (end < 0) {
    return Companion_getInstance_22().ZERO;
  }
  sliceSize = (end - start | 0) + 1 | 0;
  if (sliceSize <= 0) {
    return Companion_getInstance_22().ZERO;
  }
  if (start === 0 && sliceSize >= len) {
    return $this.absoluteValue;
  }
  var intSlice = new Int32Array(sliceSize);
  arrayCopy_0($this.vr_1, start, intSlice, 0, sliceSize);
  return CommonBigInteger.ov(trustedStripLeadingZeroInts(Companion_getInstance_22(), intSlice), 1);
}
function exactDivideBy3($this) {
  var len = $this.vr_1.length;
  var result = new Int32Array(len);
  var x;
  var w;
  var q;
  var borrow;
  borrow = 0n;
  var inductionVariable = len - 1 | 0;
  if (0 <= inductionVariable)
    do {
      var i = inductionVariable;
      inductionVariable = inductionVariable + -1 | 0;
      x = fromInt_0($this.vr_1[i]) & 4294967295n;
      w = subtract_0(x, borrow);
      if (borrow > x) {
        borrow = 1n;
      } else {
        borrow = 0n;
      }
      q = multiply_0(w, 2863311531n) & 4294967295n;
      result[i] = convertToInt(q);
      if (q >= 1431655766n) {
        var _unary__edvuaz = borrow;
        borrow = add_0(_unary__edvuaz, get_ONE());
        if (q >= 2863311531n) {
          var _unary__edvuaz_0 = borrow;
          borrow = add_0(_unary__edvuaz_0, get_ONE());
        }
      }
    }
     while (0 <= inductionVariable);
  result = trustedStripLeadingZeroInts(Companion_getInstance_22(), result);
  return CommonBigInteger.ov(result, $this.ur_1);
}
function getLower($this, n) {
  var len = $this.vr_1.length;
  if (len <= n) {
    return $this.absoluteValue;
  }
  var lowerInts = new Int32Array(n);
  arrayCopy_0($this.vr_1, len - n | 0, lowerInts, 0, n);
  return CommonBigInteger.ov(trustedStripLeadingZeroInts(Companion_getInstance_22(), lowerInts), 1);
}
function getUpper($this, n) {
  var len = $this.vr_1.length;
  if (len <= n) {
    return Companion_getInstance_22().ZERO;
  }
  var upperLen = len - n | 0;
  var upperInts = new Int32Array(upperLen);
  arrayCopy_0($this.vr_1, 0, upperInts, 0, upperLen);
  return CommonBigInteger.ov(trustedStripLeadingZeroInts(Companion_getInstance_22(), upperInts), 1);
}
function square($this) {
  if ($this.ur_1 === 0) {
    return Companion_getInstance_22().ZERO;
  }
  var len = $this.vr_1.length;
  if (len < 128) {
    var z = squareToLen(Companion_getInstance_22(), $this.vr_1, len, null);
    return CommonBigInteger.ov(trustedStripLeadingZeroInts(Companion_getInstance_22(), z), 1);
  } else {
    var tmp;
    if (len < 216) {
      tmp = squareKaratsuba($this);
    } else {
      tmp = squareToomCook3($this);
    }
    return tmp;
  }
}
function squareKaratsuba($this) {
  var half = ($this.vr_1.length + 1 | 0) / 2 | 0;
  var xl = getLower($this, half);
  var xh = getUpper($this, half);
  var xhs = square(xh);
  var xls = square(xl);
  return xhs.shl(imul_0(half, 32)).plus(square(xl.plus(xh)).minus(xhs.plus(xls))).shl(imul_0(half, 32)).plus(xls);
}
function squareToomCook3($this) {
  var len = $this.vr_1.length;
  var k = (len + 2 | 0) / 3 | 0;
  var r = len - imul_0(2, k) | 0;
  var a0;
  var a1;
  var a2;
  a2 = getToomSlice($this, k, r, 0, len);
  a1 = getToomSlice($this, k, r, 1, len);
  a0 = getToomSlice($this, k, r, 2, len);
  var v0;
  var v1;
  var v2;
  var vm1;
  var vinf;
  var t1;
  var t2;
  var tm1;
  var da1;
  v0 = square(a0);
  da1 = a2.plus(a0);
  vm1 = square(da1.minus(a1));
  da1 = da1.plus(a1);
  v1 = square(da1);
  vinf = square(a2);
  v2 = square(da1.plus(a2).shl(1).minus(a0));
  t2 = exactDivideBy3(v2.minus(vm1));
  tm1 = v1.minus(vm1).shr(1);
  t1 = v1.minus(v0);
  t2 = t2.minus(t1).shr(1);
  t1 = t1.minus(tm1).minus(vinf);
  t2 = t2.minus(vinf.shl(1));
  tm1 = tm1.minus(t2);
  var ss = imul_0(k, 32);
  return vinf.shl(ss).plus(t2).shl(ss).plus(t1).shl(ss).plus(tm1).shl(ss).plus(v0);
}
function divideKnuth($this, other) {
  var q = MutableBigInteger.rr();
  var a = MutableBigInteger.fu($this.vr_1);
  var b = MutableBigInteger.fu(other.vr_1);
  a.rv(b, q, false);
  return q.lu(imul_0($this.ur_1, other.ur_1));
}
function divideAndRemainderKnuth($this, other) {
  var q = MutableBigInteger.rr();
  var a = MutableBigInteger.fu($this.vr_1);
  var b = MutableBigInteger.fu(other.vr_1);
  var r = a.sv(b, q);
  // Inline function 'kotlin.arrayOf' call
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  return [q.lu($this.ur_1 === other.ur_1 ? 1 : -1), ensureNotNull(r).lu($this.ur_1)];
}
function remainderKnuth($this, other) {
  var q = MutableBigInteger.rr();
  var a = MutableBigInteger.fu($this.vr_1);
  var b = MutableBigInteger.fu(other.vr_1);
  return ensureNotNull(a.sv(b, q)).lu($this.ur_1);
}
function divideBurnikelZiegler($this, other) {
  return divideAndRemainderBurnikelZiegler($this, other)[0];
}
function remainderBurnikelZiegler($this, other) {
  return divideAndRemainderBurnikelZiegler($this, other)[1];
}
function divideAndRemainderBurnikelZiegler($this, other) {
  var q = MutableBigInteger.rr();
  var r = MutableBigInteger.qr($this).tv(MutableBigInteger.qr(other), q);
  var qBigInt = q.qu() ? Companion_getInstance_22().ZERO : q.lu(imul_0($this.ur_1, other.ur_1));
  var rBigInt = r.qu() ? Companion_getInstance_22().ZERO : r.lu($this.ur_1);
  // Inline function 'kotlin.arrayOf' call
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  return [qBigInt, rBigInt];
}
function oddModPow($this, y, z) {
  if (y.equals(Companion_getInstance_22().ONE)) {
    return $this;
  }
  if ($this.ur_1 === 0) {
    return Companion_getInstance_22().ZERO;
  }
  var base = cloneArray($this.vr_1);
  var exp = y.vr_1;
  var mod = z.vr_1;
  var modLen = mod.length;
  if (!((modLen & 1) === 0)) {
    var x = new Int32Array(modLen + 1 | 0);
    arrayCopy_0(mod, 0, x, 1, modLen);
    mod = x;
    modLen = modLen + 1 | 0;
  }
  var wbits = 0;
  var ebits = bitLength(Companion_getInstance_22(), exp, exp.length);
  if (!(ebits === 17) || !(exp[0] === 65537)) {
    while (ebits > Companion_getInstance_22().zs_1[wbits]) {
      wbits = wbits + 1 | 0;
    }
  }
  var tblmask = 1 << wbits;
  // Inline function 'kotlin.collections.map' call
  var this_0 = until(0, tblmask);
  // Inline function 'kotlin.collections.mapTo' call
  var destination = ArrayList.n1(collectionSizeOrDefault(this_0, 10));
  var inductionVariable = this_0.yf_1;
  var last = this_0.zf_1;
  if (inductionVariable <= last)
    do {
      var item = inductionVariable;
      inductionVariable = inductionVariable + 1 | 0;
      var tmp$ret$0 = new Int32Array(modLen);
      destination.c1(tmp$ret$0);
    }
     while (!(item === last));
  // Inline function 'kotlin.collections.toTypedArray' call
  var table = copyToArray(destination);
  var n0 = add_0(fromInt_0(mod[modLen - 1 | 0]) & 4294967295n, shiftLeft(fromInt_0(mod[modLen - 2 | 0]) & 4294967295n, 32));
  var inv = negate_0(Companion_getInstance_24().uv(n0));
  var a = leftShift(Companion_getInstance_22(), base, base.length, modLen << 5);
  var q = MutableBigInteger.rr();
  var a2 = MutableBigInteger.fu(a);
  var b2 = MutableBigInteger.fu(mod);
  b2.vv();
  var r = a2.pu(b2, q);
  table[0] = ensureNotNull(r).wv();
  if (table[0].length < modLen) {
    var offset = modLen - table[0].length | 0;
    var t2 = new Int32Array(modLen);
    arrayCopy_0(table[0], 0, t2, offset, table[0].length);
    table[0] = t2;
  }
  var b = montgomerySquare(Companion_getInstance_22(), table[0], mod, modLen, inv, null);
  var t = copyOf(b, modLen);
  var inductionVariable_0 = 1;
  if (inductionVariable_0 < tblmask)
    do {
      var i = inductionVariable_0;
      inductionVariable_0 = inductionVariable_0 + 1 | 0;
      table[i] = montgomeryMultiply(Companion_getInstance_22(), t, table[i - 1 | 0], mod, modLen, inv, null);
    }
     while (inductionVariable_0 < tblmask);
  var bitpos = 1 << ((ebits - 1 | 0) & 31);
  var buf = 0;
  var elen = exp.length;
  var eIndex = 0;
  var inductionVariable_1 = 0;
  var last_0 = wbits;
  if (inductionVariable_1 <= last_0)
    do {
      var i_0 = inductionVariable_1;
      inductionVariable_1 = inductionVariable_1 + 1 | 0;
      buf = buf << 1 | (!((exp[eIndex] & bitpos) === 0) ? 1 : 0);
      bitpos = bitpos >>> 1 | 0;
      if (bitpos === 0) {
        eIndex = eIndex + 1 | 0;
        bitpos = -2147483648;
        elen = elen - 1 | 0;
      }
    }
     while (!(i_0 === last_0));
  var multpos = ebits;
  ebits = ebits - 1 | 0;
  var isone = true;
  multpos = ebits - wbits | 0;
  while ((buf & 1) === 0) {
    buf = buf >>> 1 | 0;
    multpos = multpos + 1 | 0;
  }
  var mult = table[buf >>> 1 | 0];
  buf = 0;
  if (multpos === ebits) {
    isone = false;
  }
  $l$loop: while (true) {
    ebits = ebits - 1 | 0;
    buf = buf << 1;
    if (!(elen === 0)) {
      buf = buf | (!((exp[eIndex] & bitpos) === 0) ? 1 : 0);
      bitpos = bitpos >>> 1 | 0;
      if (bitpos === 0) {
        eIndex = eIndex + 1 | 0;
        bitpos = -2147483648;
        elen = elen - 1 | 0;
      }
    }
    if (!((buf & tblmask) === 0)) {
      multpos = ebits - wbits | 0;
      while ((buf & 1) === 0) {
        buf = buf >>> 1 | 0;
        multpos = multpos + 1 | 0;
      }
      mult = table[buf >>> 1 | 0];
      buf = 0;
    }
    if (ebits === multpos) {
      if (isone) {
        b = cloneArray(mult);
        isone = false;
      } else {
        t = b;
        a = montgomeryMultiply(Companion_getInstance_22(), t, mult, mod, modLen, inv, a);
        t = a;
        a = b;
        b = t;
      }
    }
    if (ebits === 0) {
      break $l$loop;
    }
    if (!isone) {
      t = b;
      a = montgomerySquare(Companion_getInstance_22(), t, mod, modLen, inv, a);
      t = a;
      a = b;
      b = t;
    }
  }
  var t2_0 = new Int32Array(imul_0(2, modLen));
  arrayCopy_0(b, 0, t2_0, modLen, modLen);
  b = montReduce(Companion_getInstance_22(), t2_0, mod, modLen, convertToInt(inv));
  t2_0 = copyOf(b, modLen);
  return CommonBigInteger.xv(1, t2_0);
}
function modPow2($this, exponent, p) {
  var result = Companion_getInstance_22().ONE;
  var baseToPow2 = mod2($this, p);
  var expOffset = 0;
  var limit = exponent.bitLength;
  if ($this.testBit(0)) {
    limit = (p - 1 | 0) < limit ? p - 1 | 0 : limit;
  }
  while (expOffset < limit) {
    if (exponent.testBit(expOffset)) {
      result = mod2(result.times(baseToPow2), p);
    }
    expOffset = expOffset + 1 | 0;
    if (expOffset < limit) {
      baseToPow2 = mod2(square(baseToPow2), p);
    }
  }
  return result;
}
function mod2($this, p) {
  if ($this.bitLength <= p) {
    return $this;
  }
  var numInts = (p + 31 | 0) >>> 5 | 0;
  var mag = new Int32Array(numInts);
  arrayCopy_0($this.vr_1, $this.vr_1.length - numInts | 0, mag, 0, numInts);
  var excessBits = (numInts << 5) - p | 0;
  var tmp = mag[0];
  // Inline function 'kotlin.Long.minus' call
  var this_0 = shiftLeft(1n, 32 - excessBits | 0);
  var tmp$ret$0 = subtract_0(this_0, fromInt_0(1));
  mag[0] = tmp & convertToInt(tmp$ret$0);
  return mag[0] === 0 ? CommonBigInteger.xv(1, mag) : CommonBigInteger.ov(mag, 1);
}
function shiftRightImpl($this, n) {
  var nInts = n >>> 5 | 0;
  var nBits = n & 31;
  var magLen = $this.vr_1.length;
  var newMag = null;
  if (nInts >= magLen) {
    var tmp;
    if ($this.ur_1 >= 0) {
      tmp = Companion_getInstance_22().ZERO;
    } else {
      var tmp0_elvis_lhs = Companion_getInstance_22().vs_1[1];
      var tmp_0;
      if (tmp0_elvis_lhs == null) {
        throw IllegalStateException.gb();
      } else {
        tmp_0 = tmp0_elvis_lhs;
      }
      tmp = tmp_0;
    }
    return tmp;
  }
  if (nBits === 0) {
    var newMagLen = magLen - nInts | 0;
    newMag = copyOf($this.vr_1, newMagLen);
  } else {
    var i = 0;
    var highBits = $this.vr_1[0] >>> nBits | 0;
    if (!(highBits === 0)) {
      newMag = new Int32Array(magLen - nInts | 0);
      var tmp_1 = newMag;
      var _unary__edvuaz = i;
      i = _unary__edvuaz + 1 | 0;
      tmp_1[_unary__edvuaz] = highBits;
    } else {
      newMag = new Int32Array((magLen - nInts | 0) - 1 | 0);
    }
    var nBits2 = 32 - nBits | 0;
    var j = 0;
    while (j < ((magLen - nInts | 0) - 1 | 0)) {
      var tmp_2 = newMag;
      var _unary__edvuaz_0 = i;
      i = _unary__edvuaz_0 + 1 | 0;
      var _unary__edvuaz_1 = j;
      j = _unary__edvuaz_1 + 1 | 0;
      tmp_2[_unary__edvuaz_0] = $this.vr_1[_unary__edvuaz_1] << nBits2 | ($this.vr_1[j] >>> nBits | 0);
    }
  }
  if ($this.ur_1 < 0) {
    var onesLost = false;
    var i_0 = magLen - 1 | 0;
    var j_0 = magLen - nInts | 0;
    while (i_0 >= j_0 && !onesLost) {
      onesLost = !($this.vr_1[i_0] === 0);
      i_0 = i_0 - 1 | 0;
    }
    if (!onesLost && !(nBits === 0)) {
      onesLost = !($this.vr_1[(magLen - nInts | 0) - 1 | 0] << (32 - nBits | 0) === 0);
    }
    if (onesLost) {
      newMag = javaIncrement($this, newMag);
    }
  }
  return CommonBigInteger.ov(newMag, $this.ur_1);
}
function javaIncrement($this, other) {
  var result = other;
  var lastSum = 0;
  var i = result.length - 1 | 0;
  while (i >= 0 && lastSum === 0) {
    var _array__4zh2yp = result;
    var _index_0__fvwizt = i;
    var _unary__edvuaz = _array__4zh2yp[_index_0__fvwizt];
    _array__4zh2yp[_index_0__fvwizt] = _unary__edvuaz + 1 | 0;
    lastSum = _unary__edvuaz;
    i = i - 1 | 0;
  }
  if (lastSum === 0) {
    result = new Int32Array(result.length + 1 | 0);
    result[0] = 1;
  }
  return result;
}
function compareMagnitude_0($this, other) {
  var other_0 = other;
  // Inline function 'kotlin.require' call
  // Inline function 'kotlin.require' call
  if (!!(other_0 === -9223372036854775808n)) {
    var message = 'Failed requirement.';
    throw IllegalArgumentException.w(toString_1(message));
  }
  var m1 = $this.vr_1;
  var len = m1.length;
  if (len > 2) {
    return 1;
  }
  if (other_0 < 0n) {
    other_0 = negate_0(other_0);
  }
  var highWord = convertToInt(shiftRightUnsigned(other_0, 32));
  if (highWord === 0) {
    if (len < 1) {
      return -1;
    }
    if (len > 1) {
      return 1;
    }
    var a = m1[0];
    var b = convertToInt(other_0);
    var tmp;
    if (!(a === b)) {
      tmp = (fromInt_0(a) & 4294967295n) < (fromInt_0(b) & 4294967295n) ? -1 : 1;
    } else {
      tmp = 0;
    }
    return tmp;
  } else {
    if (len < 2) {
      return -1;
    }
    var a_0 = m1[0];
    var b_0 = highWord;
    if (!(a_0 === b_0)) {
      return (fromInt_0(a_0) & 4294967295n) < (fromInt_0(b_0) & 4294967295n) ? -1 : 1;
    }
    a_0 = m1[1];
    b_0 = convertToInt(other_0);
    var tmp_0;
    if (!(a_0 === b_0)) {
      tmp_0 = (fromInt_0(a_0) & 4294967295n) < (fromInt_0(b_0) & 4294967295n) ? -1 : 1;
    } else {
      tmp_0 = 0;
    }
    return tmp_0;
  }
}
function smallToString($this, radix) {
  if ($this.ur_1 === 0) {
    return '0';
  }
  var maxNumDigitGroups = (imul_0(4, $this.vr_1.length) + 6 | 0) / 7 | 0;
  // Inline function 'kotlin.arrayOfNulls' call
  var digitGroup = Array(maxNumDigitGroups);
  var tmp = $this.absoluteValue;
  var numGroups = 0;
  while (!(tmp.ur_1 === 0)) {
    var d = Companion_getInstance_22().ct_1[radix];
    var q = MutableBigInteger.rr();
    var a = MutableBigInteger.fu(tmp.vr_1);
    var b = MutableBigInteger.fu(ensureNotNull(d).vr_1);
    var r = a.pu(b, q);
    var q2 = q.lu(imul_0(tmp.ur_1, d.ur_1));
    var r2 = ensureNotNull(r).lu(imul_0(tmp.ur_1, d.ur_1));
    var _unary__edvuaz = numGroups;
    numGroups = _unary__edvuaz + 1 | 0;
    digitGroup[_unary__edvuaz] = toString_2(r2.toLong(), radix);
    tmp = q2;
  }
  var buf = StringBuilder.ua(imul_0(numGroups, Companion_getInstance_22().bt_1[radix]) + 1 | 0);
  if ($this.ur_1 < 0) {
    buf.ra(_Char___init__impl__6a9atx(45));
  }
  buf.qa(digitGroup[numGroups - 1 | 0]);
  var inductionVariable = numGroups - 2 | 0;
  if (0 <= inductionVariable)
    do {
      var i = inductionVariable;
      inductionVariable = inductionVariable + -1 | 0;
      var numLeadingZeros = Companion_getInstance_22().bt_1[radix] - ensureNotNull(digitGroup[i]).length | 0;
      if (!(numLeadingZeros === 0)) {
        buf.qa(Companion_getInstance_22().at_1[numLeadingZeros]);
      }
      buf.qa(digitGroup[i]);
    }
     while (0 <= inductionVariable);
  return buf.toString();
}
function _get_intLength__55caik($this) {
  return ($this.bitLength >>> 5 | 0) + 1 | 0;
}
function _get_signInt__uq6bvl($this) {
  return $this.ur_1 < 0 ? -1 : 0;
}
function getInt($this, n) {
  if (n < 0) {
    return 0;
  }
  if (n >= $this.vr_1.length) {
    return _get_signInt__uq6bvl($this);
  }
  var magInt = $this.vr_1[($this.vr_1.length - n | 0) - 1 | 0];
  var tmp;
  if ($this.ur_1 >= 0) {
    tmp = magInt;
  } else {
    tmp = n <= firstNonzeroIntNum($this) ? -magInt | 0 : ~magInt;
  }
  return tmp;
}
function firstNonzeroIntNum($this) {
  var fn = $this.zr_1 - 2 | 0;
  if (fn === -2) {
    var i;
    var mlen = $this.vr_1.length;
    i = mlen - 1 | 0;
    while (i >= 0 && $this.vr_1[i] === 0) {
      i = i - 1 | 0;
    }
    fn = (mlen - i | 0) - 1 | 0;
    $this.zr_1 = fn + 2 | 0;
  }
  return fn;
}
var Companion_instance_22;
function Companion_getInstance_22() {
  if (Companion_instance_22 === VOID)
    new Companion_22();
  return Companion_instance_22;
}
function init_com_macrofocus_common_math_big_CommonBigInteger(_this__u8e3s4) {
  Companion_getInstance_22();
  _this__u8e3s4.wr_1 = 0;
  _this__u8e3s4.xr_1 = 0;
  _this__u8e3s4.yr_1 = 0;
  _this__u8e3s4.zr_1 = 0;
}
var Companion_instance_23;
function Companion_getInstance_23() {
  if (Companion_instance_23 === VOID)
    new Companion_23();
  return Companion_instance_23;
}
function copyAndShift($this, src, srcFrom, srcLen, dst, dstFrom, shift) {
  var srcFrom_0 = srcFrom;
  var n2 = 32 - shift | 0;
  var c = src[srcFrom_0];
  var inductionVariable = 0;
  var last = srcLen - 1 | 0;
  if (inductionVariable < last)
    do {
      var i = inductionVariable;
      inductionVariable = inductionVariable + 1 | 0;
      var b = c;
      srcFrom_0 = srcFrom_0 + 1 | 0;
      c = src[srcFrom_0];
      dst[dstFrom + i | 0] = b << shift | (c >>> n2 | 0);
    }
     while (inductionVariable < last);
  dst[(dstFrom + srcLen | 0) - 1 | 0] = c << shift;
}
function _get_magnitudeArray__ns4ohu($this) {
  return $this.pr_1 > 0 || !($this.mr_1.length === $this.nr_1) ? copyOfRange_0($this.mr_1, $this.pr_1, $this.pr_1 + $this.nr_1 | 0) : $this.mr_1;
}
function _get_lowestSetBit__xjmtq_0($this) {
  if ($this.nr_1 === 0) {
    return -1;
  }
  var j;
  var b;
  j = $this.nr_1 - 1 | 0;
  while (j > 0 && $this.mr_1[j + $this.pr_1 | 0] === 0) {
    j = j - 1 | 0;
  }
  b = $this.mr_1[j + $this.pr_1 | 0];
  return b === 0 ? -1 : ((($this.nr_1 - 1 | 0) - j | 0) << 5) + numberOfTrailingZeros(b) | 0;
}
function ones($this, n) {
  if (n > $this.mr_1.length) {
    $this.mr_1 = new Int32Array(n);
  }
  fill($this.mr_1, -1);
  $this.pr_1 = 0;
  $this.nr_1 = n;
}
function toLong($this) {
  // Inline function 'kotlin.require' call
  if (!($this.nr_1 <= 2)) {
    var message = 'this MutableBigInteger exceeds the range of long';
    throw IllegalArgumentException.w(toString_1(message));
  }
  if ($this.nr_1 === 0) {
    return 0n;
  }
  var d = fromInt_0($this.mr_1[$this.pr_1]) & 4294967295n;
  return $this.nr_1 === 2 ? shiftLeft(d, 32) | fromInt_0($this.mr_1[$this.pr_1 + 1 | 0]) & 4294967295n : d;
}
function compareShifted($this, b, ints) {
  var blen = b.nr_1;
  var alen = $this.nr_1 - ints | 0;
  if (alen < blen) {
    return -1;
  }
  if (alen > blen) {
    return 1;
  }
  var bval = b.mr_1;
  var i = $this.pr_1;
  var j = b.pr_1;
  while (i < (alen + $this.pr_1 | 0)) {
    var b1 = $this.mr_1[i] + -2147483648 | 0;
    var b2 = bval[j] + -2147483648 | 0;
    if (b1 < b2) {
      return -1;
    }
    if (b1 > b2) {
      return 1;
    }
    i = i + 1 | 0;
    j = j + 1 | 0;
  }
  return 0;
}
function divadd($this, a, result, offset) {
  var carry = 0n;
  var inductionVariable = a.length - 1 | 0;
  if (0 <= inductionVariable)
    do {
      var j = inductionVariable;
      inductionVariable = inductionVariable + -1 | 0;
      var sum = add_0(add_0(fromInt_0(a[j]) & 4294967295n, fromInt_0(result[j + offset | 0]) & 4294967295n), carry);
      result[j + offset | 0] = convertToInt(sum);
      carry = shiftRightUnsigned(sum, 32);
    }
     while (0 <= inductionVariable);
  return convertToInt(carry);
}
function mulsub_0($this, q, a, x, len, offset) {
  var offset_0 = offset;
  var xLong = fromInt_0(x) & 4294967295n;
  var carry = 0n;
  offset_0 = offset_0 + len | 0;
  var inductionVariable = len - 1 | 0;
  if (0 <= inductionVariable)
    do {
      var j = inductionVariable;
      inductionVariable = inductionVariable + -1 | 0;
      var product = add_0(multiply_0(fromInt_0(a[j]) & 4294967295n, xLong), carry);
      var difference = subtract_0(numberToLong(q[offset_0]), product);
      var _unary__edvuaz = offset_0;
      offset_0 = _unary__edvuaz - 1 | 0;
      q[_unary__edvuaz] = convertToInt(difference);
      var tmp0 = shiftRightUnsigned(product, 32);
      var tmp;
      if ((difference & 4294967295n) > (fromInt_0(~convertToInt(product)) & 4294967295n)) {
        tmp = 1;
      } else {
        tmp = 0;
      }
      // Inline function 'kotlin.Long.plus' call
      var other = tmp;
      carry = add_0(tmp0, fromInt_0(other));
    }
     while (0 <= inductionVariable);
  return convertToInt(carry);
}
function mulsubBorrow($this, q, a, x, len, offset) {
  var offset_0 = offset;
  var xLong = fromInt_0(x) & 4294967295n;
  var carry = 0n;
  offset_0 = offset_0 + len | 0;
  var inductionVariable = len - 1 | 0;
  if (0 <= inductionVariable)
    do {
      var j = inductionVariable;
      inductionVariable = inductionVariable + -1 | 0;
      var product = add_0(multiply_0(fromInt_0(a[j]) & 4294967295n, xLong), carry);
      var _unary__edvuaz = offset_0;
      offset_0 = _unary__edvuaz - 1 | 0;
      var difference = subtract_0(numberToLong(q[_unary__edvuaz]), product);
      var tmp0 = shiftRightUnsigned(product, 32);
      var tmp;
      if ((difference & 4294967295n) > (fromInt_0(~convertToInt(product)) & 4294967295n)) {
        tmp = 1;
      } else {
        tmp = 0;
      }
      // Inline function 'kotlin.Long.plus' call
      var other = tmp;
      carry = add_0(tmp0, fromInt_0(other));
    }
     while (0 <= inductionVariable);
  return convertToInt(carry);
}
function primitiveRightShift_0($this, n) {
  var val = $this.mr_1;
  var n2 = 32 - n | 0;
  var i = ($this.pr_1 + $this.nr_1 | 0) - 1 | 0;
  var c = val[i];
  while (i > $this.pr_1) {
    var b = c;
    c = val[i - 1 | 0];
    val[i] = c << n2 | (b >>> n | 0);
    i = i - 1 | 0;
  }
  val[$this.pr_1] = val[$this.pr_1] >>> n | 0;
}
function primitiveLeftShift_0($this, n) {
  var val = $this.mr_1;
  var n2 = 32 - n | 0;
  var i = $this.pr_1;
  var c = val[i];
  var m = (i + $this.nr_1 | 0) - 1 | 0;
  while (i < m) {
    var b = c;
    c = val[i + 1 | 0];
    val[i] = b << n | (c >>> n2 | 0);
    i = i + 1 | 0;
  }
  val[($this.pr_1 + $this.nr_1 | 0) - 1 | 0] = val[($this.pr_1 + $this.nr_1 | 0) - 1 | 0] << n;
}
function getLower_0($this, n) {
  if ($this.qu()) {
    return Companion_getInstance_22().ZERO;
  } else if ($this.nr_1 < n) {
    return $this.lu(1);
  } else {
    var len = n;
    while (len > 0 && $this.mr_1[($this.pr_1 + $this.nr_1 | 0) - len | 0] === 0) {
      len = len - 1 | 0;
    }
    var sign = len > 0 ? 1 : 0;
    return CommonBigInteger.ov(copyOfRange_0($this.mr_1, ($this.pr_1 + $this.nr_1 | 0) - len | 0, $this.pr_1 + $this.nr_1 | 0), sign);
  }
}
function keepLower($this, n) {
  if ($this.nr_1 >= n) {
    $this.pr_1 = $this.pr_1 + ($this.nr_1 - n | 0) | 0;
    $this.nr_1 = n;
  }
}
function difference($this, b) {
  var b_0 = b;
  var a = $this;
  var sign = a.nw(b_0);
  if (sign === 0) {
    return 0;
  }
  if (sign < 0) {
    var tmp = a;
    a = b_0;
    b_0 = tmp;
  }
  var diff = 0n;
  var x = a.nr_1;
  var y = b_0.nr_1;
  while (y > 0) {
    x = x - 1 | 0;
    y = y - 1 | 0;
    diff = subtract_0(subtract_0(fromInt_0(a.mr_1[a.pr_1 + x | 0]) & 4294967295n, fromInt_0(b_0.mr_1[b_0.pr_1 + y | 0]) & 4294967295n), fromInt_0(convertToInt(negate_0(shiftRight(diff, 32)))));
    a.mr_1[a.pr_1 + x | 0] = convertToInt(diff);
  }
  while (x > 0) {
    x = x - 1 | 0;
    var tmp0 = fromInt_0(a.mr_1[a.pr_1 + x | 0]) & 4294967295n;
    // Inline function 'kotlin.Long.minus' call
    var other = convertToInt(negate_0(shiftRight(diff, 32)));
    diff = subtract_0(tmp0, fromInt_0(other));
    a.mr_1[a.pr_1 + x | 0] = convertToInt(diff);
  }
  a.vv();
  return sign;
}
function divide2n1n($this, b, quotient) {
  var n = b.nr_1;
  if (!((n % 2 | 0) === 0) || n < 80) {
    return $this.sv(b, quotient);
  }
  var aUpper = MutableBigInteger.ow($this);
  aUpper.pw(imul_0(32, n / 2 | 0));
  keepLower($this, n / 2 | 0);
  var q1 = MutableBigInteger.rr();
  var r1 = divide3n2n(aUpper, b, q1);
  $this.qw(r1, n / 2 | 0);
  var r2 = divide3n2n($this, b, quotient);
  quotient.qw(q1, n / 2 | 0);
  return r2;
}
function divide3n2n($this, b, quotient) {
  var n = b.nr_1 / 2 | 0;
  var a12 = MutableBigInteger.ow($this);
  a12.pw(imul_0(32, n));
  var b1 = MutableBigInteger.ow(b);
  b1.pw(imul_0(n, 32));
  var b2 = getLower_0(b, n);
  var r;
  var d;
  if (compareShifted($this, b, n) < 0) {
    r = divide2n1n(a12, b1, quotient);
    d = MutableBigInteger.qr(quotient.dw().times(b2));
  } else {
    ones(quotient, n);
    a12.ku(b1);
    b1.rw(imul_0(32, n));
    a12.sw(b1);
    r = a12;
    d = MutableBigInteger.qr(b2);
    d.rw(imul_0(32, n));
    d.sw(MutableBigInteger.qr(b2));
  }
  ensureNotNull(r).rw(imul_0(32, n));
  r.tw($this, n);
  while (r.nw(d) < 0) {
    r.ku(b);
    quotient.sw(Companion_getInstance_24().hu_1);
  }
  r.sw(d);
  return r;
}
function getBlock($this, index, numBlocks, blockLength) {
  var blockStart = imul_0(index, blockLength);
  if (blockStart >= $this.nr_1) {
    return MutableBigInteger.rr();
  }
  var blockEnd;
  if (index === (numBlocks - 1 | 0)) {
    blockEnd = $this.nr_1;
  } else {
    blockEnd = imul_0(index + 1 | 0, blockLength);
  }
  if (blockEnd > $this.nr_1) {
    return MutableBigInteger.rr();
  }
  var newVal = copyOfRange_0($this.mr_1, ($this.pr_1 + $this.nr_1 | 0) - blockEnd | 0, ($this.pr_1 + $this.nr_1 | 0) - blockStart | 0);
  return MutableBigInteger.fu(newVal);
}
function divideMagnitude($this, div, quotient, needRemainder) {
  var shift = numberOfLeadingZeros(div.mr_1[div.pr_1]);
  var dlen = div.nr_1;
  var divisor;
  var rem;
  if (shift > 0) {
    divisor = new Int32Array(dlen);
    copyAndShift(Companion_getInstance_24(), div.mr_1, div.pr_1, dlen, divisor, 0, shift);
    if (numberOfLeadingZeros($this.mr_1[$this.pr_1]) >= shift) {
      var remarr = new Int32Array($this.nr_1 + 1 | 0);
      rem = MutableBigInteger.fu(remarr);
      rem.nr_1 = $this.nr_1;
      rem.pr_1 = 1;
      copyAndShift(Companion_getInstance_24(), $this.mr_1, $this.pr_1, $this.nr_1, remarr, 1, shift);
    } else {
      var remarr_0 = new Int32Array($this.nr_1 + 2 | 0);
      rem = MutableBigInteger.fu(remarr_0);
      rem.nr_1 = $this.nr_1 + 1 | 0;
      rem.pr_1 = 1;
      var rFrom = $this.pr_1;
      var c = 0;
      var n2 = 32 - shift | 0;
      var i = 1;
      while (i < ($this.nr_1 + 1 | 0)) {
        var b = c;
        c = $this.mr_1[rFrom];
        remarr_0[i] = b << shift | (c >>> n2 | 0);
        i = i + 1 | 0;
        rFrom = rFrom + 1 | 0;
      }
      remarr_0[$this.nr_1 + 1 | 0] = c << shift;
    }
  } else {
    divisor = copyOfRange_0(div.mr_1, div.pr_1, div.pr_1 + div.nr_1 | 0);
    rem = MutableBigInteger.fu(new Int32Array($this.nr_1 + 1 | 0));
    arrayCopy_0($this.mr_1, $this.pr_1, rem.mr_1, 1, $this.nr_1);
    rem.nr_1 = $this.nr_1;
    rem.pr_1 = 1;
  }
  var nlen = rem.nr_1;
  var limit = (nlen - dlen | 0) + 1 | 0;
  if (quotient.mr_1.length < limit) {
    quotient.mr_1 = new Int32Array(limit);
    quotient.pr_1 = 0;
  }
  quotient.nr_1 = limit;
  var q = quotient.mr_1;
  if (rem.nr_1 === nlen) {
    rem.pr_1 = 0;
    rem.mr_1[0] = 0;
    var _receiver__tnumb7 = rem;
    _receiver__tnumb7.nr_1 = _receiver__tnumb7.nr_1 + 1 | 0;
  }
  var dh = divisor[0];
  var dhLong = fromInt_0(dh) & 4294967295n;
  var dl = divisor[1];
  var inductionVariable = 0;
  var last = limit - 1 | 0;
  if (inductionVariable < last)
    $l$loop: do {
      var j = inductionVariable;
      inductionVariable = inductionVariable + 1 | 0;
      var qhat = 0;
      var qrem = 0;
      var skipCorrection = false;
      var nh = rem.mr_1[j + rem.pr_1 | 0];
      var nh2 = nh + -2147483648 | 0;
      var nm = rem.mr_1[(j + 1 | 0) + rem.pr_1 | 0];
      if (nh === dh) {
        qhat = -1;
        qrem = nh + nm | 0;
        skipCorrection = (qrem + -2147483648 | 0) < nh2;
      } else {
        var nChunk = shiftLeft(fromInt_0(nh), 32) | fromInt_0(nm) & 4294967295n;
        if (nChunk >= 0n) {
          qhat = convertToInt(divide(nChunk, dhLong));
          qrem = convertToInt(subtract_0(nChunk, multiply_0(numberToLong(qhat), dhLong)));
        } else {
          var tmp = Companion_getInstance_24().uw(nChunk, dh);
          qhat = convertToInt(tmp & 4294967295n);
          qrem = convertToInt(shiftRightUnsigned(tmp, 32));
        }
      }
      if (qhat === 0) {
        continue $l$loop;
      }
      if (!skipCorrection) {
        var nl = fromInt_0(rem.mr_1[(j + 2 | 0) + rem.pr_1 | 0]) & 4294967295n;
        var rs = shiftLeft(fromInt_0(qrem) & 4294967295n, 32) | nl;
        var estProduct = multiply_0(fromInt_0(dl) & 4294967295n, fromInt_0(qhat) & 4294967295n);
        if (unsignedLongCompare_0($this, estProduct, rs)) {
          qhat = qhat - 1 | 0;
          qrem = convertToInt(add_0(fromInt_0(qrem) & 4294967295n, dhLong));
          if ((fromInt_0(qrem) & 4294967295n) >= dhLong) {
            estProduct = subtract_0(estProduct, fromInt_0(dl) & 4294967295n);
            rs = shiftLeft(fromInt_0(qrem) & 4294967295n, 32) | nl;
            if (unsignedLongCompare_0($this, estProduct, rs)) {
              qhat = qhat - 1 | 0;
            }
          }
        }
      }
      rem.mr_1[j + rem.pr_1 | 0] = 0;
      var borrow = mulsub_0($this, rem.mr_1, divisor, qhat, dlen, j + rem.pr_1 | 0);
      if ((borrow + -2147483648 | 0) > nh2) {
        divadd($this, divisor, rem.mr_1, (j + 1 | 0) + rem.pr_1 | 0);
        qhat = qhat - 1 | 0;
      }
      q[j] = qhat;
    }
     while (inductionVariable < last);
  var qhat_0 = 0;
  var qrem_0 = 0;
  var skipCorrection_0 = false;
  var nh_0 = rem.mr_1[(limit - 1 | 0) + rem.pr_1 | 0];
  var nh2_0 = nh_0 + -2147483648 | 0;
  var nm_0 = rem.mr_1[limit + rem.pr_1 | 0];
  if (nh_0 === dh) {
    qhat_0 = -1;
    qrem_0 = nh_0 + nm_0 | 0;
    skipCorrection_0 = (qrem_0 + -2147483648 | 0) < nh2_0;
  } else {
    var nChunk_0 = shiftLeft(fromInt_0(nh_0), 32) | fromInt_0(nm_0) & 4294967295n;
    if (nChunk_0 >= 0n) {
      qhat_0 = convertToInt(divide(nChunk_0, dhLong));
      qrem_0 = convertToInt(subtract_0(nChunk_0, multiply_0(numberToLong(qhat_0), dhLong)));
    } else {
      var tmp_0 = Companion_getInstance_24().uw(nChunk_0, dh);
      qhat_0 = convertToInt(tmp_0 & 4294967295n);
      qrem_0 = convertToInt(shiftRightUnsigned(tmp_0, 32));
    }
  }
  if (!(qhat_0 === 0)) {
    if (!skipCorrection_0) {
      var nl_0 = fromInt_0(rem.mr_1[(limit + 1 | 0) + rem.pr_1 | 0]) & 4294967295n;
      var rs_0 = shiftLeft(fromInt_0(qrem_0) & 4294967295n, 32) | nl_0;
      var estProduct_0 = multiply_0(fromInt_0(dl) & 4294967295n, fromInt_0(qhat_0) & 4294967295n);
      if (unsignedLongCompare_0($this, estProduct_0, rs_0)) {
        qhat_0 = qhat_0 - 1 | 0;
        qrem_0 = convertToInt(add_0(fromInt_0(qrem_0) & 4294967295n, dhLong));
        if ((fromInt_0(qrem_0) & 4294967295n) >= dhLong) {
          estProduct_0 = subtract_0(estProduct_0, fromInt_0(dl) & 4294967295n);
          rs_0 = shiftLeft(fromInt_0(qrem_0) & 4294967295n, 32) | nl_0;
          if (unsignedLongCompare_0($this, estProduct_0, rs_0)) {
            qhat_0 = qhat_0 - 1 | 0;
          }
        }
      }
    }
    var borrow_0;
    rem.mr_1[(limit - 1 | 0) + rem.pr_1 | 0] = 0;
    if (needRemainder) {
      borrow_0 = mulsub_0($this, rem.mr_1, divisor, qhat_0, dlen, (limit - 1 | 0) + rem.pr_1 | 0);
    } else {
      borrow_0 = mulsubBorrow($this, rem.mr_1, divisor, qhat_0, dlen, (limit - 1 | 0) + rem.pr_1 | 0);
    }
    if ((borrow_0 + -2147483648 | 0) > nh2_0) {
      if (needRemainder) {
        divadd($this, divisor, rem.mr_1, ((limit - 1 | 0) + 1 | 0) + rem.pr_1 | 0);
      }
      qhat_0 = qhat_0 - 1 | 0;
    }
    q[limit - 1 | 0] = qhat_0;
  }
  if (needRemainder) {
    if (shift > 0) {
      rem.vw(shift);
    }
    rem.vv();
  }
  quotient.vv();
  return needRemainder ? rem : null;
}
function divideLongMagnitude($this, ldivisor, quotient) {
  var ldivisor_0 = ldivisor;
  var rem = MutableBigInteger.fu(new Int32Array($this.nr_1 + 1 | 0));
  arrayCopy_0($this.mr_1, $this.pr_1, rem.mr_1, 1, $this.nr_1);
  rem.nr_1 = $this.nr_1;
  rem.pr_1 = 1;
  var nlen = rem.nr_1;
  var limit = (nlen - 2 | 0) + 1 | 0;
  if (quotient.mr_1.length < limit) {
    quotient.mr_1 = new Int32Array(limit);
    quotient.pr_1 = 0;
  }
  quotient.nr_1 = limit;
  var q = quotient.mr_1;
  var shift = numberOfLeadingZeros_0(ldivisor_0);
  if (shift > 0) {
    ldivisor_0 = shiftLeft(ldivisor_0, shift);
    rem.rw(shift);
  }
  if (rem.nr_1 === nlen) {
    rem.pr_1 = 0;
    rem.mr_1[0] = 0;
    rem.nr_1 = rem.nr_1 + 1 | 0;
  }
  var dh = convertToInt(shiftRightUnsigned(ldivisor_0, 32));
  var dhLong = fromInt_0(dh) & 4294967295n;
  var dl = convertToInt(ldivisor_0 & 4294967295n);
  var inductionVariable = 0;
  if (inductionVariable < limit)
    $l$loop: do {
      var j = inductionVariable;
      inductionVariable = inductionVariable + 1 | 0;
      var qhat = 0;
      var qrem = 0;
      var skipCorrection = false;
      var nh = rem.mr_1[j + rem.pr_1 | 0];
      var nh2 = nh + -2147483648 | 0;
      var nm = rem.mr_1[(j + 1 | 0) + rem.pr_1 | 0];
      if (nh === dh) {
        qhat = -1;
        qrem = nh + nm | 0;
        skipCorrection = (qrem + -2147483648 | 0) < nh2;
      } else {
        var nChunk = shiftLeft(fromInt_0(nh), 32) | fromInt_0(nm) & 4294967295n;
        if (nChunk >= 0n) {
          qhat = convertToInt(divide(nChunk, dhLong));
          qrem = convertToInt(subtract_0(nChunk, multiply_0(numberToLong(qhat), dhLong)));
        } else {
          var tmp = Companion_getInstance_24().uw(nChunk, dh);
          qhat = convertToInt(tmp & 4294967295n);
          qrem = convertToInt(shiftRightUnsigned(tmp, 32));
        }
      }
      if (qhat === 0) {
        continue $l$loop;
      }
      if (!skipCorrection) {
        var nl = fromInt_0(rem.mr_1[(j + 2 | 0) + rem.pr_1 | 0]) & 4294967295n;
        var rs = shiftLeft(fromInt_0(qrem) & 4294967295n, 32) | nl;
        var estProduct = multiply_0(fromInt_0(dl) & 4294967295n, fromInt_0(qhat) & 4294967295n);
        if (unsignedLongCompare_0($this, estProduct, rs)) {
          qhat = qhat - 1 | 0;
          qrem = convertToInt(add_0(fromInt_0(qrem) & 4294967295n, dhLong));
          if ((fromInt_0(qrem) & 4294967295n) >= dhLong) {
            estProduct = subtract_0(estProduct, fromInt_0(dl) & 4294967295n);
            rs = shiftLeft(fromInt_0(qrem) & 4294967295n, 32) | nl;
            if (unsignedLongCompare_0($this, estProduct, rs)) {
              qhat = qhat - 1 | 0;
            }
          }
        }
      }
      rem.mr_1[j + rem.pr_1 | 0] = 0;
      var borrow = mulsubLong($this, rem.mr_1, dh, dl, qhat, j + rem.pr_1 | 0);
      if ((borrow + -2147483648 | 0) > nh2) {
        divaddLong($this, dh, dl, rem.mr_1, (j + 1 | 0) + rem.pr_1 | 0);
        qhat = qhat - 1 | 0;
      }
      q[j] = qhat;
    }
     while (inductionVariable < limit);
  if (shift > 0) {
    rem.vw(shift);
  }
  quotient.vv();
  rem.vv();
  return rem;
}
function divaddLong($this, dh, dl, result, offset) {
  var carry = 0n;
  var sum = add_0(fromInt_0(dl) & 4294967295n, fromInt_0(result[1 + offset | 0]) & 4294967295n);
  result[1 + offset | 0] = convertToInt(sum);
  sum = add_0(add_0(fromInt_0(dh) & 4294967295n, fromInt_0(result[offset]) & 4294967295n), carry);
  result[offset] = convertToInt(sum);
  carry = shiftRightUnsigned(sum, 32);
  return convertToInt(carry);
}
function mulsubLong($this, q, dh, dl, x, offset) {
  var offset_0 = offset;
  var xLong = fromInt_0(x) & 4294967295n;
  offset_0 = offset_0 + 2 | 0;
  var product = multiply_0(fromInt_0(dl) & 4294967295n, xLong);
  var difference = subtract_0(numberToLong(q[offset_0]), product);
  var _unary__edvuaz = offset_0;
  offset_0 = _unary__edvuaz - 1 | 0;
  q[_unary__edvuaz] = convertToInt(difference);
  var tmp0 = shiftRightUnsigned(product, 32);
  var tmp;
  if ((difference & 4294967295n) > (~product & 4294967295n)) {
    tmp = 1;
  } else {
    tmp = 0;
  }
  // Inline function 'kotlin.Long.plus' call
  var other = tmp;
  var carry = add_0(tmp0, fromInt_0(other));
  product = add_0(multiply_0(fromInt_0(dh) & 4294967295n, xLong), carry);
  difference = subtract_0(numberToLong(q[offset_0]), product);
  var _unary__edvuaz_0 = offset_0;
  offset_0 = _unary__edvuaz_0 - 1 | 0;
  q[_unary__edvuaz_0] = convertToInt(difference);
  var tmp0_0 = shiftRightUnsigned(product, 32);
  var tmp_0;
  if ((difference & 4294967295n) > (~product & 4294967295n)) {
    tmp_0 = 1;
  } else {
    tmp_0 = 0;
  }
  // Inline function 'kotlin.Long.plus' call
  var other_0 = tmp_0;
  carry = add_0(tmp0_0, fromInt_0(other_0));
  return convertToInt(carry);
}
function unsignedLongCompare_0($this, one, two) {
  return add_0(one, -9223372036854775808n) > add_0(two, -9223372036854775808n);
}
function binaryGCD($this, v) {
  var v_0 = v;
  var u = $this;
  var r = MutableBigInteger.rr();
  var s1 = _get_lowestSetBit__xjmtq_0(u);
  var s2 = _get_lowestSetBit__xjmtq_0(v_0);
  var k = s1 < s2 ? s1 : s2;
  if (!(k === 0)) {
    u.vw(k);
    v_0.vw(k);
  }
  var uOdd = k === s1;
  var t = uOdd ? v_0 : u;
  var tsign = uOdd ? -1 : 1;
  var lb = _get_lowestSetBit__xjmtq_0(t);
  $l$loop: while (lb >= 0) {
    t.vw(lb);
    if (tsign > 0) {
      u = t;
    } else {
      v_0 = t;
    }
    if (u.nr_1 < 2 && v_0.nr_1 < 2) {
      var x = u.mr_1[u.pr_1];
      var y = v_0.mr_1[v_0.pr_1];
      x = Companion_getInstance_24().ww(x, y);
      r.mr_1[0] = x;
      r.nr_1 = 1;
      r.pr_1 = 0;
      if (k > 0) {
        r.rw(k);
      }
      return r;
    }
    tsign = difference(u, v_0);
    if (tsign === 0) {
      lb = _get_lowestSetBit__xjmtq_0(t);
      break $l$loop;
    }
    t = tsign >= 0 ? u : v_0;
    lb = _get_lowestSetBit__xjmtq_0(t);
  }
  if (k > 0) {
    u.rw(k);
  }
  return u;
}
function modInverse($this, mod) {
  var p = MutableBigInteger.ow(mod);
  var f = MutableBigInteger.ow($this);
  var g = MutableBigInteger.ow(p);
  var c = SignedMutableBigInteger.bx(1);
  var d = SignedMutableBigInteger.cx();
  var temp;
  var sTemp;
  var k = 0;
  if (f.dx()) {
    var trailingZeros = _get_lowestSetBit__xjmtq_0(f);
    f.vw(trailingZeros);
    d.rw(trailingZeros);
    k = trailingZeros;
  }
  while (!f.ex()) {
    if (f.qu()) {
      throw ArithmeticException.cc('BigInteger not invertible.');
    }
    if (f.nw(g) < 0) {
      temp = f;
      f = g;
      g = temp;
      sTemp = d;
      d = c;
      c = sTemp;
    }
    if (((f.mr_1[(f.pr_1 + f.nr_1 | 0) - 1 | 0] ^ g.mr_1[(g.pr_1 + g.nr_1 | 0) - 1 | 0]) & 3) === 0) {
      f.sw(g);
      c.gx(d);
    } else {
      f.ku(g);
      c.fx(d);
    }
    var trailingZeros_0 = _get_lowestSetBit__xjmtq_0(f);
    f.vw(trailingZeros_0);
    d.rw(trailingZeros_0);
    k = k + trailingZeros_0 | 0;
  }
  while (c.ax_1 < 0)
    c.hx(p);
  return Companion_getInstance_24().ix(c, p, k);
}
var Companion_instance_24;
function Companion_getInstance_24() {
  if (Companion_instance_24 === VOID)
    new Companion_24();
  return Companion_instance_24;
}
function init_com_macrofocus_common_math_big_MutableBigInteger(_this__u8e3s4) {
  Companion_getInstance_24();
  _this__u8e3s4.nr_1 = 0;
  _this__u8e3s4.pr_1 = 0;
}
var RoundingMode_UP_instance;
var RoundingMode_DOWN_instance;
var RoundingMode_CEILING_instance;
var RoundingMode_FLOOR_instance;
var RoundingMode_HALF_UP_instance;
var RoundingMode_HALF_DOWN_instance;
var RoundingMode_HALF_EVEN_instance;
var RoundingMode_UNNECESSARY_instance;
var Companion_instance_25;
function Companion_getInstance_25() {
  return Companion_instance_25;
}
function values() {
  return [RoundingMode_UP_getInstance(), RoundingMode_DOWN_getInstance(), RoundingMode_CEILING_getInstance(), RoundingMode_FLOOR_getInstance(), RoundingMode_HALF_UP_getInstance(), RoundingMode_HALF_DOWN_getInstance(), RoundingMode_HALF_EVEN_getInstance(), RoundingMode_UNNECESSARY_getInstance()];
}
function valueOf(value) {
  switch (value) {
    case 'UP':
      return RoundingMode_UP_getInstance();
    case 'DOWN':
      return RoundingMode_DOWN_getInstance();
    case 'CEILING':
      return RoundingMode_CEILING_getInstance();
    case 'FLOOR':
      return RoundingMode_FLOOR_getInstance();
    case 'HALF_UP':
      return RoundingMode_HALF_UP_getInstance();
    case 'HALF_DOWN':
      return RoundingMode_HALF_DOWN_getInstance();
    case 'HALF_EVEN':
      return RoundingMode_HALF_EVEN_getInstance();
    case 'UNNECESSARY':
      return RoundingMode_UNNECESSARY_getInstance();
    default:
      RoundingMode_initEntries();
      THROW_IAE('No enum constant com.macrofocus.common.math.big.RoundingMode.' + value);
      break;
  }
}
var RoundingMode_entriesInitialized;
function RoundingMode_initEntries() {
  if (RoundingMode_entriesInitialized)
    return Unit_instance;
  RoundingMode_entriesInitialized = true;
  RoundingMode_UP_instance = new RoundingMode('UP', 0, 0);
  RoundingMode_DOWN_instance = new RoundingMode('DOWN', 1, 1);
  RoundingMode_CEILING_instance = new RoundingMode('CEILING', 2, 2);
  RoundingMode_FLOOR_instance = new RoundingMode('FLOOR', 3, 3);
  RoundingMode_HALF_UP_instance = new RoundingMode('HALF_UP', 4, 4);
  RoundingMode_HALF_DOWN_instance = new RoundingMode('HALF_DOWN', 5, 5);
  RoundingMode_HALF_EVEN_instance = new RoundingMode('HALF_EVEN', 6, 6);
  RoundingMode_UNNECESSARY_instance = new RoundingMode('UNNECESSARY', 7, 7);
}
function RoundingMode_UP_getInstance() {
  RoundingMode_initEntries();
  return RoundingMode_UP_instance;
}
function RoundingMode_DOWN_getInstance() {
  RoundingMode_initEntries();
  return RoundingMode_DOWN_instance;
}
function RoundingMode_CEILING_getInstance() {
  RoundingMode_initEntries();
  return RoundingMode_CEILING_instance;
}
function RoundingMode_FLOOR_getInstance() {
  RoundingMode_initEntries();
  return RoundingMode_FLOOR_instance;
}
function RoundingMode_HALF_UP_getInstance() {
  RoundingMode_initEntries();
  return RoundingMode_HALF_UP_instance;
}
function RoundingMode_HALF_DOWN_getInstance() {
  RoundingMode_initEntries();
  return RoundingMode_HALF_DOWN_instance;
}
function RoundingMode_HALF_EVEN_getInstance() {
  RoundingMode_initEntries();
  return RoundingMode_HALF_EVEN_instance;
}
function RoundingMode_UNNECESSARY_getInstance() {
  RoundingMode_initEntries();
  return RoundingMode_UNNECESSARY_instance;
}
function init_com_macrofocus_common_math_big_SignedMutableBigInteger(_this__u8e3s4) {
  _this__u8e3s4.ax_1 = 1;
}
function numberOfTrailingZeros(_this__u8e3s4) {
  var y;
  var i = _this__u8e3s4;
  if (i === 0)
    return 32;
  var n = 31;
  y = i << 16;
  if (!(y === 0)) {
    n = n - 16 | 0;
    i = y;
  }
  y = i << 8;
  if (!(y === 0)) {
    n = n - 8 | 0;
    i = y;
  }
  y = i << 4;
  if (!(y === 0)) {
    n = n - 4 | 0;
    i = y;
  }
  y = i << 2;
  if (!(y === 0)) {
    n = n - 2 | 0;
    i = y;
  }
  return n - (i << 1 >>> 31 | 0) | 0;
}
function toDigit(_this__u8e3s4, radix) {
  if (2 <= radix ? radix <= 36 : false) {
    if (radix > 10) {
      var delta = radix - 10 | 0;
      if (_Char___init__impl__6a9atx(48) <= _this__u8e3s4 ? _this__u8e3s4 <= _Char___init__impl__6a9atx(57) : false)
        return Char__minus_impl_a2frrh(_this__u8e3s4, _Char___init__impl__6a9atx(48));
      else if (_Char___init__impl__6a9atx(97) <= _this__u8e3s4 ? _this__u8e3s4 < Char__plus_impl_qi7pgj(_Char___init__impl__6a9atx(97), delta) : false)
        return Char__minus_impl_a2frrh(_this__u8e3s4, _Char___init__impl__6a9atx(97)) + 10 | 0;
      else if (_Char___init__impl__6a9atx(65) <= _this__u8e3s4 ? _this__u8e3s4 < Char__plus_impl_qi7pgj(_Char___init__impl__6a9atx(65), delta) : false)
        return Char__minus_impl_a2frrh(_this__u8e3s4, _Char___init__impl__6a9atx(65)) + 10 | 0;
    } else {
      if (_Char___init__impl__6a9atx(48) <= _this__u8e3s4 ? _this__u8e3s4 < Char__plus_impl_qi7pgj(_Char___init__impl__6a9atx(48), radix) : false) {
        return Char__minus_impl_a2frrh(_this__u8e3s4, _Char___init__impl__6a9atx(48));
      }
    }
  }
  return -1;
}
function arrayCopy_0(src, srcIndex, dest, destIndex, size) {
  var inductionVariable = 0;
  if (inductionVariable < size)
    do {
      var i = inductionVariable;
      inductionVariable = inductionVariable + 1 | 0;
      dest[destIndex + i | 0] = src[srcIndex + i | 0];
    }
     while (inductionVariable < size);
}
function cloneArray(_this__u8e3s4) {
  var tmp = 0;
  var tmp_0 = _this__u8e3s4.length;
  var tmp_1 = new Int32Array(tmp_0);
  while (tmp < tmp_0) {
    var tmp_2 = tmp;
    tmp_1[tmp_2] = _this__u8e3s4[tmp_2];
    tmp = tmp + 1 | 0;
  }
  return tmp_1;
}
function bitCount(_this__u8e3s4) {
  var i = _this__u8e3s4;
  i = i - ((i >>> 1 | 0) & 1431655765) | 0;
  i = (i & 858993459) + ((i >>> 2 | 0) & 858993459) | 0;
  i = (i + (i >>> 4 | 0) | 0) & 252645135;
  i = i + (i >>> 8 | 0) | 0;
  i = i + (i >>> 16 | 0) | 0;
  return i & 63;
}
function insertChar(_this__u8e3s4, index, char) {
  return insertCharSeq(_this__u8e3s4, index, toString(char));
}
function getRadix(_this__u8e3s4) {
  var tmp;
  if (contains_2(_this__u8e3s4, '0B', true)) {
    tmp = new Pair(2, replaceFirst(replaceFirst(_this__u8e3s4, '0B', ''), '0b', ''));
  } else if (contains_2(_this__u8e3s4, '0O', true)) {
    tmp = new Pair(8, replaceFirst(replaceFirst(_this__u8e3s4, '0O', ''), '0o', ''));
  } else if (contains_2(_this__u8e3s4, '0X', true)) {
    tmp = new Pair(16, replaceFirst(replaceFirst(_this__u8e3s4, '0X', ''), '0x', ''));
  } else {
    tmp = new Pair(10, _this__u8e3s4);
  }
  return tmp;
}
function numberOfLeadingZeros(_this__u8e3s4) {
  var x = _this__u8e3s4;
  if (x === 0) {
    return 32;
  }
  var n = 1;
  if ((x >>> 16 | 0) === 0) {
    n = n + 16 | 0;
    x = x << 16;
  }
  if ((x >>> 24 | 0) === 0) {
    n = n + 8 | 0;
    x = x << 8;
  }
  if ((x >>> 28 | 0) === 0) {
    n = n + 4 | 0;
    x = x << 4;
  }
  if ((x >>> 30 | 0) === 0) {
    n = n + 2 | 0;
    x = x << 2;
  }
  n = n - (x >>> 31 | 0) | 0;
  return n;
}
function isDigit(_this__u8e3s4) {
  return isDigit_0(_this__u8e3s4, 10);
}
function toCharArray_0(_this__u8e3s4) {
  var tmp = 0;
  var tmp_0 = charSequenceLength(_this__u8e3s4);
  var tmp_1 = charArray(tmp_0);
  while (tmp < tmp_0) {
    var tmp_2 = tmp;
    tmp_1[tmp_2] = charSequenceGet(_this__u8e3s4, tmp_2);
    tmp = tmp + 1 | 0;
  }
  return tmp_1;
}
function appendCharArray(_this__u8e3s4, char, offset, len) {
  var inductionVariable = offset;
  var last = offset + len | 0;
  if (inductionVariable < last)
    do {
      var i = inductionVariable;
      inductionVariable = inductionVariable + 1 | 0;
      _this__u8e3s4.ra(char[i]);
    }
     while (inductionVariable < last);
  return _this__u8e3s4;
}
function numberOfLeadingZeros_0(_this__u8e3s4) {
  if (_this__u8e3s4 === 0n) {
    return 64;
  }
  var n = 1;
  var x = convertToInt(shiftRightUnsigned(_this__u8e3s4, 32));
  if (x === 0) {
    n = n + 32 | 0;
    x = convertToInt(_this__u8e3s4);
  }
  if ((x >>> 16 | 0) === 0) {
    n = n + 16 | 0;
    x = x << 16;
  }
  if ((x >>> 24 | 0) === 0) {
    n = n + 8 | 0;
    x = x << 8;
  }
  if ((x >>> 28 | 0) === 0) {
    n = n + 4 | 0;
    x = x << 4;
  }
  if ((x >>> 30 | 0) === 0) {
    n = n + 2 | 0;
    x = x << 2;
  }
  n = n - (x >>> 31 | 0) | 0;
  return n;
}
function log_0(lazyObject) {
  if (false) {
    logImpl(lazyObject);
  }
}
function insertCharSeq(_this__u8e3s4, index, string) {
  var temp = StringBuilder.nd(_this__u8e3s4.c(0, index));
  temp.z(string);
  temp.z(_this__u8e3s4.c(index, _this__u8e3s4.a()));
  return temp;
}
function isDigit_0(_this__u8e3s4, radix) {
  var tmp;
  if (36 <= radix ? radix <= 36 : false) {
    var tmp_0;
    if (radix > 10) {
      var delta = radix - 10 | 0;
      tmp_0 = (_Char___init__impl__6a9atx(48) <= _this__u8e3s4 ? _this__u8e3s4 <= _Char___init__impl__6a9atx(57) : false) || (_Char___init__impl__6a9atx(97) <= _this__u8e3s4 ? _this__u8e3s4 < Char__plus_impl_qi7pgj(_Char___init__impl__6a9atx(97), delta) : false) || (_Char___init__impl__6a9atx(65) <= _this__u8e3s4 ? _this__u8e3s4 < Char__plus_impl_qi7pgj(_Char___init__impl__6a9atx(65), delta) : false);
    } else {
      tmp_0 = _Char___init__impl__6a9atx(48) <= _this__u8e3s4 ? _this__u8e3s4 < Char__plus_impl_qi7pgj(_Char___init__impl__6a9atx(48), radix) : false;
    }
    tmp = tmp_0;
  } else {
    tmp = false;
  }
  return tmp;
}
function fill(_this__u8e3s4, x) {
  return fill_0(_this__u8e3s4, 0, _this__u8e3s4.length, x);
}
function fill_0(_this__u8e3s4, from, to, x) {
  var inductionVariable = from;
  if (inductionVariable < to)
    do {
      var i = inductionVariable;
      inductionVariable = inductionVariable + 1 | 0;
      _this__u8e3s4[i] = x;
    }
     while (inductionVariable < to);
  return _this__u8e3s4;
}
function _get_reference__19y5ba($this) {
  return $this.ly_1.zj();
}
function _get_listeners__760gzy($this) {
  var tmp0 = $this.xx_1;
  var tmp = KProperty1;
  // Inline function 'kotlin.getValue' call
  getPropertyCallableRef('listeners', 1, tmp, AbstractProperty$_get_listeners_$ref_azvaq4(), null);
  return tmp0.z2();
}
function AbstractProperty$listernersDelegate$lambda() {
  return CollectionFactory_instance.nk();
}
function AbstractProperty$_get_listeners_$ref_azvaq4() {
  return (p0) => _get_listeners__760gzy(p0);
}
var Companion_instance_26;
function Companion_getInstance_26() {
  return Companion_instance_26;
}
var PropertyDelegates_instance;
function PropertyDelegates_getInstance() {
  return PropertyDelegates_instance;
}
var Companion_instance_27;
function Companion_getInstance_27() {
  return Companion_instance_27;
}
function SimpleProperty$_get_value_$ref_rqcknm() {
  return (p0) => p0.z2();
}
function SimpleProperty$_set_value_$ref_1khvqy() {
  return (p0, p1) => {
    p0.ap(p1);
    return Unit_instance;
  };
}
function SimpleProperty$_get_value_$ref_rqcknm_0() {
  return (p0) => p0.z2();
}
function SimpleProperty$_set_value_$ref_1khvqy_0() {
  return (p0, p1) => {
    p0.ap(p1);
    return Unit_instance;
  };
}
var StartEnd_Start_instance;
var StartEnd_End_instance;
var StartEnd_entriesInitialized;
function StartEnd_initEntries() {
  if (StartEnd_entriesInitialized)
    return Unit_instance;
  StartEnd_entriesInitialized = true;
  StartEnd_Start_instance = new StartEnd('Start', 0);
  StartEnd_End_instance = new StartEnd('End', 1);
}
function StartEnd_Start_getInstance() {
  StartEnd_initEntries();
  return StartEnd_Start_instance;
}
var NumericTransform_ASN_instance;
var NumericTransform_ATANH_instance;
var NumericTransform_ASINH_instance;
var NumericTransform_EXP_instance;
var NumericTransform_EXP2_instance;
var NumericTransform_EXP10_instance;
var NumericTransform_EXP1P_instance;
var NumericTransform_IDENTITY_instance;
var NumericTransform_LOG_instance;
var NumericTransform_LOG2_instance;
var NumericTransform_LOG10_instance;
var NumericTransform_LOG1P_instance;
var NumericTransform_PSEUDO_LOG_instance;
var NumericTransform_LOGIT_instance;
var NumericTransform_PROBIT_instance;
var NumericTransform_RECIPROCAL_instance;
var NumericTransform_REVERSE_instance;
var NumericTransform_SQRT_instance;
function NumericTransform$lambda(x) {
  // Inline function 'kotlin.math.sqrt' call
  // Inline function 'kotlin.math.asin' call
  var x_0 = Math.sqrt(x);
  return 2.0 * Math.asin(x_0);
}
function NumericTransform$lambda_0(y) {
  // Inline function 'kotlin.math.pow' call
  // Inline function 'kotlin.math.sqrt' call
  var x = y - Math.pow(y, 2.0);
  return 1.0 / Math.sqrt(x);
}
function NumericTransform$lambda_1(x) {
  // Inline function 'kotlin.math.pow' call
  // Inline function 'kotlin.math.sqrt' call
  var x_0 = x - Math.pow(x, 2.0);
  return 1.0 / Math.sqrt(x_0);
}
function NumericTransform$lambda_2(y) {
  // Inline function 'kotlin.math.sin' call
  return Math.sin(y) / 2;
}
function NumericTransform$lambda_3(x) {
  // Inline function 'kotlin.math.pow' call
  return 1.0 / (1.0 - Math.pow(x, 2.0));
}
function NumericTransform$lambda_4(y) {
  // Inline function 'kotlin.math.cosh' call
  // Inline function 'kotlin.math.pow' call
  var this_0 = cosh(y);
  return 1.0 / Math.pow(this_0, 2.0);
}
function asinh$ref() {
  var l = (p0) => {
    // Inline function 'kotlin.math.asinh' call
    return asinh_0(p0);
  };
  l.callableName = 'asinh';
  return l;
}
function sinh$ref() {
  var l = (p0) => {
    // Inline function 'kotlin.math.sinh' call
    return sinh(p0);
  };
  l.callableName = 'sinh';
  return l;
}
function NumericTransform$lambda_5(x) {
  // Inline function 'kotlin.math.pow' call
  // Inline function 'kotlin.math.sqrt' call
  var x_0 = Math.pow(x, 2.0) + 1.0;
  return 1.0 / Math.sqrt(x_0);
}
function NumericTransform$lambda_6(y) {
  // Inline function 'kotlin.math.cosh' call
  return cosh(y);
}
function exp$ref() {
  var l = (p0) => {
    // Inline function 'kotlin.math.exp' call
    return Math.exp(p0);
  };
  l.callableName = 'exp';
  return l;
}
function ln$ref() {
  var l = (p0) => {
    // Inline function 'kotlin.math.ln' call
    return Math.log(p0);
  };
  l.callableName = 'ln';
  return l;
}
function NumericTransform$lambda_7(x) {
  // Inline function 'kotlin.math.pow' call
  var x_0 = 2.718281828459045;
  var tmp = Math.pow(x, x_0);
  // Inline function 'kotlin.math.ln' call
  var x_1 = 2.718281828459045;
  return tmp * Math.log(x_1);
}
function NumericTransform$lambda_8(y) {
  var tmp = 1.0 / y;
  // Inline function 'kotlin.math.ln' call
  var x = 2.718281828459045;
  return tmp / Math.log(x);
}
function NumericTransform$lambda_9(x) {
  // Inline function 'kotlin.math.pow' call
  return Math.pow(x, 2.0);
}
function NumericTransform$lambda_10(y) {
  // Inline function 'kotlin.math.ln' call
  var tmp = Math.log(y);
  // Inline function 'kotlin.math.ln' call
  return tmp / Math.log(2.0);
}
function NumericTransform$lambda_11(x) {
  // Inline function 'kotlin.math.pow' call
  var tmp = Math.pow(x, 2.0);
  // Inline function 'kotlin.math.ln' call
  return tmp * Math.log(2.0);
}
function NumericTransform$lambda_12(y) {
  var tmp = 1.0 / y;
  // Inline function 'kotlin.math.ln' call
  return tmp / Math.log(2.0);
}
function NumericTransform$lambda_13(x) {
  // Inline function 'kotlin.math.pow' call
  return Math.pow(x, 10.0);
}
function NumericTransform$lambda_14(y) {
  // Inline function 'kotlin.math.log10' call
  return log10(y);
}
function NumericTransform$lambda_15(x) {
  // Inline function 'kotlin.math.pow' call
  var tmp = Math.pow(x, 10.0);
  // Inline function 'kotlin.math.ln' call
  return tmp * Math.log(10.0);
}
function NumericTransform$lambda_16(y) {
  var tmp = 1.0 / y;
  // Inline function 'kotlin.math.ln' call
  return tmp / Math.log(10.0);
}
function expm1$ref() {
  var l = (p0) => {
    // Inline function 'kotlin.math.expm1' call
    return expm1(p0);
  };
  l.callableName = 'expm1';
  return l;
}
function ln1p$ref() {
  var l = (p0) => {
    // Inline function 'kotlin.math.ln1p' call
    return log1p(p0);
  };
  l.callableName = 'ln1p';
  return l;
}
function exp$ref_0() {
  var l = (p0) => {
    // Inline function 'kotlin.math.exp' call
    return Math.exp(p0);
  };
  l.callableName = 'exp';
  return l;
}
function NumericTransform$lambda_17(y) {
  return 1.0 / (1.0 + y);
}
function NumericTransform$lambda_18(x) {
  return x;
}
function NumericTransform$lambda_19(y) {
  return y;
}
function ln$ref_0() {
  var l = (p0) => {
    // Inline function 'kotlin.math.ln' call
    return Math.log(p0);
  };
  l.callableName = 'ln';
  return l;
}
function exp$ref_1() {
  var l = (p0) => {
    // Inline function 'kotlin.math.exp' call
    return Math.exp(p0);
  };
  l.callableName = 'exp';
  return l;
}
function NumericTransform$lambda_20(x) {
  var tmp = 1.0 / x;
  // Inline function 'kotlin.math.ln' call
  var x_0 = 2.718281828459045;
  return tmp / Math.log(x_0);
}
function NumericTransform$lambda_21(y) {
  // Inline function 'kotlin.math.pow' call
  var x = 2.718281828459045;
  var tmp = Math.pow(y, x);
  // Inline function 'kotlin.math.ln' call
  var x_0 = 2.718281828459045;
  return tmp * Math.log(x_0);
}
function log2$ref() {
  var l = (p0) => {
    // Inline function 'kotlin.math.log2' call
    return log2(p0);
  };
  l.callableName = 'log2';
  return l;
}
function NumericTransform$lambda_22(y) {
  // Inline function 'kotlin.math.pow' call
  return Math.pow(y, 2.0);
}
function NumericTransform$lambda_23(x) {
  var tmp = 1.0 / x;
  // Inline function 'kotlin.math.ln' call
  return tmp / Math.log(2.0);
}
function NumericTransform$lambda_24(y) {
  // Inline function 'kotlin.math.pow' call
  var tmp = Math.pow(y, 2.0);
  // Inline function 'kotlin.math.ln' call
  return tmp * Math.log(2.0);
}
function log10$ref() {
  var l = (p0) => {
    // Inline function 'kotlin.math.log10' call
    return log10(p0);
  };
  l.callableName = 'log10';
  return l;
}
function NumericTransform$lambda_25(y) {
  // Inline function 'kotlin.math.pow' call
  return Math.pow(y, 10.0);
}
function NumericTransform$lambda_26(x) {
  var tmp = 1.0 / x;
  // Inline function 'kotlin.math.ln' call
  return tmp / Math.log(10.0);
}
function NumericTransform$lambda_27(y) {
  // Inline function 'kotlin.math.pow' call
  var tmp = Math.pow(y, 10.0);
  // Inline function 'kotlin.math.ln' call
  return tmp * Math.log(10.0);
}
function ln1p$ref_0() {
  var l = (p0) => {
    // Inline function 'kotlin.math.ln1p' call
    return log1p(p0);
  };
  l.callableName = 'ln1p';
  return l;
}
function expm1$ref_0() {
  var l = (p0) => {
    // Inline function 'kotlin.math.expm1' call
    return expm1(p0);
  };
  l.callableName = 'expm1';
  return l;
}
function NumericTransform$lambda_28(x) {
  return 1.0 / (1.0 + x);
}
function NumericTransform$lambda_29(y) {
  // Inline function 'kotlin.math.exp' call
  return Math.exp(y);
}
function NumericTransform$lambda_30(x) {
  // Inline function 'kotlin.math.asinh' call
  var x_0 = x / (2.0 * 1.0);
  var tmp = asinh_0(x_0);
  // Inline function 'kotlin.math.exp' call
  // Inline function 'kotlin.math.ln' call
  var x_1 = Math.exp(1.0);
  return tmp / Math.log(x_1);
}
function NumericTransform$lambda_31(y) {
  var tmp = 2.0 * 1.0;
  // Inline function 'kotlin.math.exp' call
  // Inline function 'kotlin.math.ln' call
  var x = Math.exp(1.0);
  // Inline function 'kotlin.math.sinh' call
  var x_0 = y * Math.log(x);
  return tmp * sinh(x_0);
}
function NumericTransform$lambda_32(x) {
  // Inline function 'kotlin.math.pow' call
  var tmp = Math.pow(x, 2.0);
  // Inline function 'kotlin.math.pow' call
  // Inline function 'kotlin.math.sqrt' call
  var x_0 = 4.0 + tmp / Math.pow(1.0, 2.0);
  var tmp_0 = Math.sqrt(x_0) * 1.0;
  // Inline function 'kotlin.math.exp' call
  // Inline function 'kotlin.math.ln' call
  var x_1 = Math.exp(1.0);
  return 1.0 / (tmp_0 * Math.log(x_1));
}
function NumericTransform$lambda_33(y) {
  var tmp = 2.0 * 1.0;
  // Inline function 'kotlin.math.exp' call
  // Inline function 'kotlin.math.ln' call
  var x = Math.exp(1.0);
  // Inline function 'kotlin.math.cosh' call
  var x_0 = y * Math.log(x);
  var tmp_0 = tmp * cosh(x_0);
  // Inline function 'kotlin.math.exp' call
  // Inline function 'kotlin.math.ln' call
  var x_1 = Math.exp(1.0);
  return tmp_0 * Math.log(x_1);
}
function NumericTransform$lambda_34(x) {
  // Inline function 'kotlin.math.ln' call
  var x_0 = x / (1.0 - x);
  return Math.log(x_0);
}
function NumericTransform$lambda_35(y) {
  // Inline function 'kotlin.math.exp' call
  return 1.0 / (1 + Math.exp(y));
}
function Probit$probit$ref(p0) {
  var l = (_this__u8e3s4) => p0.m12(_this__u8e3s4);
  l.callableName = 'probit';
  return l;
}
function NumericTransform$lambda_36(x) {
  return 1.0 / x;
}
function NumericTransform$lambda_37(y) {
  return 1.0 / y;
}
function NumericTransform$lambda_38(x) {
  var tmp = -1.0;
  // Inline function 'kotlin.math.pow' call
  return tmp / Math.pow(x, 2.0);
}
function NumericTransform$lambda_39(y) {
  // Inline function 'kotlin.math.pow' call
  return -1 / Math.pow(y, 2.0);
}
function NumericTransform$lambda_40(x) {
  return -x;
}
function NumericTransform$lambda_41(y) {
  return -y;
}
function sqrt$ref() {
  var l = (p0) => {
    // Inline function 'kotlin.math.sqrt' call
    return Math.sqrt(p0);
  };
  l.callableName = 'sqrt';
  return l;
}
function NumericTransform$lambda_42(y) {
  // Inline function 'kotlin.math.pow' call
  return Math.pow(y, 2.0);
}
function NumericTransform$lambda_43(x) {
  // Inline function 'kotlin.math.sqrt' call
  return 0.5 / Math.sqrt(x);
}
function NumericTransform$lambda_44(y) {
  return 2.0 * y;
}
var NumericTransform_entriesInitialized;
function NumericTransform_initEntries() {
  if (NumericTransform_entriesInitialized)
    return Unit_instance;
  NumericTransform_entriesInitialized = true;
  var tmp = NumericTransform$lambda;
  var tmp_0 = NumericTransform$lambda_0;
  var tmp_1 = NumericTransform$lambda_1;
  NumericTransform_ASN_instance = new NumericTransform('ASN', 0, 'asn', tmp, tmp_0, tmp_1, NumericTransform$lambda_2, OpenInterval.lo(0.0, 1.0));
  var tmp_2 = NumericTransform$lambda_3;
  NumericTransform_ATANH_instance = new NumericTransform('ATANH', 1, 'atanh', tmp_2, NumericTransform$lambda_4, null, null, OpenInterval.lo(-1.0, 2.0));
  var tmp_3 = asinh$ref();
  var tmp_4 = sinh$ref();
  var tmp_5 = NumericTransform$lambda_5;
  NumericTransform_ASINH_instance = new NumericTransform('ASINH', 2, 'asinh', tmp_3, tmp_4, tmp_5, NumericTransform$lambda_6, OpenInterval.lo(-1.0, 2.0));
  var tmp_6 = exp$ref();
  var tmp_7 = ln$ref();
  var tmp_8 = NumericTransform$lambda_7;
  NumericTransform_EXP_instance = new NumericTransform('EXP', 3, 'exp', tmp_6, tmp_7, tmp_8, NumericTransform$lambda_8, OpenInterval.lo(-Infinity, Infinity));
  var tmp_9 = NumericTransform$lambda_9;
  var tmp_10 = NumericTransform$lambda_10;
  var tmp_11 = NumericTransform$lambda_11;
  NumericTransform_EXP2_instance = new NumericTransform('EXP2', 4, 'exp2', tmp_9, tmp_10, tmp_11, NumericTransform$lambda_12, OpenInterval.lo(-Infinity, Infinity));
  var tmp_12 = NumericTransform$lambda_13;
  var tmp_13 = NumericTransform$lambda_14;
  var tmp_14 = NumericTransform$lambda_15;
  NumericTransform_EXP10_instance = new NumericTransform('EXP10', 5, 'exp10', tmp_12, tmp_13, tmp_14, NumericTransform$lambda_16, OpenInterval.lo(-Infinity, Infinity));
  var tmp_15 = expm1$ref();
  var tmp_16 = ln1p$ref();
  var tmp_17 = exp$ref_0();
  NumericTransform_EXP1P_instance = new NumericTransform('EXP1P', 6, 'expm1', tmp_15, tmp_16, tmp_17, NumericTransform$lambda_17, OpenInterval.lo(-Infinity, Infinity));
  var tmp_18 = NumericTransform$lambda_18;
  NumericTransform_IDENTITY_instance = new NumericTransform('IDENTITY', 7, 'identity', tmp_18, NumericTransform$lambda_19, null, null, OpenInterval.lo(-Infinity, Infinity));
  var tmp_19 = ln$ref_0();
  var tmp_20 = exp$ref_1();
  var tmp_21 = NumericTransform$lambda_20;
  NumericTransform_LOG_instance = new NumericTransform('LOG', 8, 'log', tmp_19, tmp_20, tmp_21, NumericTransform$lambda_21, OpenInterval.lo(0.0, Infinity));
  var tmp_22 = log2$ref();
  var tmp_23 = NumericTransform$lambda_22;
  var tmp_24 = NumericTransform$lambda_23;
  NumericTransform_LOG2_instance = new NumericTransform('LOG2', 9, 'log2', tmp_22, tmp_23, tmp_24, NumericTransform$lambda_24, OpenInterval.lo(0.0, Infinity));
  var tmp_25 = log10$ref();
  var tmp_26 = NumericTransform$lambda_25;
  var tmp_27 = NumericTransform$lambda_26;
  NumericTransform_LOG10_instance = new NumericTransform('LOG10', 10, 'log10', tmp_25, tmp_26, tmp_27, NumericTransform$lambda_27, OpenInterval.lo(0.0, Infinity));
  var tmp_28 = ln1p$ref_0();
  var tmp_29 = expm1$ref_0();
  var tmp_30 = NumericTransform$lambda_28;
  NumericTransform_LOG1P_instance = new NumericTransform('LOG1P', 11, 'log1p', tmp_28, tmp_29, tmp_30, NumericTransform$lambda_29, OpenInterval.lo(1.0 + 4.9E-324, Infinity));
  var tmp_31 = NumericTransform$lambda_30;
  var tmp_32 = NumericTransform$lambda_31;
  var tmp_33 = NumericTransform$lambda_32;
  NumericTransform_PSEUDO_LOG_instance = new NumericTransform('PSEUDO_LOG', 12, 'pseudo_log', tmp_31, tmp_32, tmp_33, NumericTransform$lambda_33, null);
  var tmp_34 = NumericTransform$lambda_34;
  NumericTransform_LOGIT_instance = new NumericTransform('LOGIT', 13, 'logit', tmp_34, NumericTransform$lambda_35, null, null, null);
  NumericTransform_PROBIT_instance = new NumericTransform('PROBIT', 14, 'probit', Probit$probit$ref(Probit_instance), null, null, null, null);
  var tmp_35 = NumericTransform$lambda_36;
  var tmp_36 = NumericTransform$lambda_37;
  var tmp_37 = NumericTransform$lambda_38;
  NumericTransform_RECIPROCAL_instance = new NumericTransform('RECIPROCAL', 15, 'reciprocal', tmp_35, tmp_36, tmp_37, NumericTransform$lambda_39, null);
  var tmp_38 = NumericTransform$lambda_40;
  NumericTransform_REVERSE_instance = new NumericTransform('REVERSE', 16, 'reverse', tmp_38, NumericTransform$lambda_41, null, null, null);
  var tmp_39 = sqrt$ref();
  var tmp_40 = NumericTransform$lambda_42;
  var tmp_41 = NumericTransform$lambda_43;
  NumericTransform_SQRT_instance = new NumericTransform('SQRT', 17, 'sqrt', tmp_39, tmp_40, tmp_41, NumericTransform$lambda_44, OpenInterval.lo(0.0, Infinity));
}
function NumericTransform_PSEUDO_LOG_getInstance() {
  NumericTransform_initEntries();
  return NumericTransform_PSEUDO_LOG_instance;
}
function NumericTransform_SQRT_getInstance() {
  NumericTransform_initEntries();
  return NumericTransform_SQRT_instance;
}
var Probit_instance;
function Probit_getInstance() {
  return Probit_instance;
}
function init_com_macrofocus_common_selection_SimpleSingleSelection(_this__u8e3s4) {
  _this__u8e3s4.g15_1 = null;
}
function adjustValues($this, range, diff) {
  var diff_0 = diff;
  if (isNaN_3(diff_0)) {
    diff_0 = 0.0;
  }
  var value = range.start + diff_0 / 2;
  var extent = range.extent - diff_0;
  if (value < range.gn()) {
    value = range.gn();
  }
  if (extent > range.pp()) {
    extent = range.pp();
  }
  if (value + extent > range.hn()) {
    value = range.hn() - extent;
  }
  range.qo(value, extent);
}
var CollectionFactory_instance;
function CollectionFactory_getInstance() {
  return CollectionFactory_instance;
}
var WeakHashMap_Ids;
var Companion_instance_28;
function Companion_getInstance_28() {
  return Companion_instance_28;
}
var Companion_instance_29;
function Companion_getInstance_29() {
  if (Companion_instance_29 === VOID)
    new Companion_29();
  return Companion_instance_29;
}
function CPHelper$visualizationExecutorService$delegate$lambda(this$0) {
  return () => this$0.v17('VisualizationExecutorService', 0, Companion_instance_28.q17().r17());
}
function createTimeoutCallback($this, timer) {
  return Timer$createTimeoutCallback$lambda(timer);
}
function Timer$createTimeoutCallback$lambda($timer) {
  return () => {
    $timer.p18();
    return Unit_instance;
  };
}
var Companion_instance_30;
function Companion_getInstance_30() {
  if (Companion_instance_30 === VOID)
    new Companion_30();
  return Companion_instance_30;
}
function bigInteger(x) {
  var tmp;
  if (!(x == null) ? typeof x === 'bigint' : false) {
    var tmp_0 = Companion_getInstance_22();
    tmp = tmp_0.ofLong((!(x == null) ? typeof x === 'bigint' : false) ? x : THROW_CCE());
  } else {
    if (!(x == null) ? typeof x === 'number' : false) {
      var tmp_1 = Companion_getInstance_22();
      tmp = tmp_1.of((!(x == null) ? typeof x === 'number' : false) ? x : THROW_CCE());
    } else {
      if (isNumber(x)) {
        var tmp_2 = Companion_getInstance_22();
        tmp = tmp_2.ofLong(numberToLong(isNumber(x) ? x : THROW_CCE()));
      } else {
        if (!(x == null) ? typeof x === 'string' : false) {
          tmp = Companion_getInstance_22().parse(toString_1(x));
        } else {
          if (!(x == null) ? isArray(x) : false) {
            var y = (!(x == null) ? isArray(x) : false) ? x : THROW_CCE();
            var tmp_3;
            var tmp_4;
            if (y.length === 2) {
              var tmp_5 = y[0];
              tmp_4 = !(tmp_5 == null) ? typeof tmp_5 === 'string' : false;
            } else {
              tmp_4 = false;
            }
            if (tmp_4) {
              var tmp_6 = y[1];
              tmp_3 = isNumber(tmp_6);
            } else {
              tmp_3 = false;
            }
            // Inline function 'kotlin.require' call
            // Inline function 'kotlin.require' call
            if (!tmp_3) {
              var message = 'Failed requirement.';
              throw IllegalArgumentException.w(toString_1(message));
            }
            var tmp_7 = Companion_getInstance_22();
            var tmp_8 = y[0];
            var tmp_9 = (!(tmp_8 == null) ? typeof tmp_8 === 'string' : false) ? tmp_8 : THROW_CCE();
            var tmp_10 = y[1];
            return tmp_7.parseWithRadix(tmp_9, (!(tmp_10 == null) ? typeof tmp_10 === 'number' : false) ? tmp_10 : THROW_CCE());
          } else {
            throw IllegalArgumentException.hb();
          }
        }
      }
    }
  }
  return tmp;
}
function bigDecimal(x) {
  var tmp;
  if (!(x == null) ? isArray(x) : false) {
    var tmp_0;
    if (x.length === 2) {
      var tmp_1 = x[1];
      tmp_0 = tmp_1 instanceof MathContext;
    } else {
      tmp_0 = false;
    }
    // Inline function 'kotlin.require' call
    // Inline function 'kotlin.require' call
    if (!tmp_0) {
      var message = 'Failed requirement.';
      throw IllegalArgumentException.w(toString_1(message));
    }
    var tmp_2;
    if (x[1] instanceof MathContext) {
      var tmp_3 = Companion_getInstance_17();
      var tmp_4 = toString_1(x[0]);
      var tmp_5 = x[1];
      tmp_2 = tmp_3.parse(tmp_4, tmp_5 instanceof MathContext ? tmp_5 : THROW_CCE());
    } else {
      throw IllegalArgumentException.hb();
    }
    tmp = tmp_2;
  } else {
    if (!(x == null)) {
      tmp = Companion_getInstance_17().parse(toString_1(x));
    } else {
      throw IllegalArgumentException.hb();
    }
  }
  return tmp;
}
function get_exceptionalDoubles() {
  _init_properties_JsUtils_kt__tti4wa();
  return exceptionalDoubles;
}
var exceptionalDoubles;
var BigDecimals_instance;
function BigDecimals_getInstance() {
  if (BigDecimals_instance === VOID)
    new BigDecimals();
  return BigDecimals_instance;
}
function bigDecimalOf(unscaledVal, scale) {
  _init_properties_JsUtils_kt__tti4wa();
  return Companion_getInstance_21().ofScaledLong(unscaledVal, scale);
}
function bigDecimalOf_0(unscaledVal, scale, prec) {
  _init_properties_JsUtils_kt__tti4wa();
  return Companion_getInstance_21().ofScaledLongWithPrecision(unscaledVal, scale, prec);
}
function bigDecimalOf_1(val) {
  _init_properties_JsUtils_kt__tti4wa();
  return Companion_getInstance_21().ofInt(val);
}
function bigDecimalOf_2(val) {
  _init_properties_JsUtils_kt__tti4wa();
  return Companion_getInstance_21().of(val);
}
function bigDecimalOf_3(intVal, scale, prec) {
  _init_properties_JsUtils_kt__tti4wa();
  var tmp = Companion_getInstance_21();
  // Inline function 'com.macrofocus.common.math.big.castTo' call
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  return tmp.ofScaledBigIntegerWithPrecision(intVal, scale, prec);
}
function bigDecimalOf_4(val, ctx) {
  ctx = ctx === VOID ? null : ctx;
  _init_properties_JsUtils_kt__tti4wa();
  var tmp;
  if (get_exceptionalDoubles().q2(val)) {
    throw NumberFormatException.xb('Infinite or NaN');
  } else if (ctx == null) {
    tmp = CommonBigDecimal.ev(val);
  } else {
    tmp = Companion_getInstance_21().ofDouble(val, ctx);
  }
  return tmp;
}
function bigDecimalOf_5(val, ctx) {
  ctx = ctx === VOID ? null : ctx;
  _init_properties_JsUtils_kt__tti4wa();
  return bigDecimalOf_4(val, ctx);
}
function bigDecimalOf_6(val, ctx) {
  ctx = ctx === VOID ? null : ctx;
  _init_properties_JsUtils_kt__tti4wa();
  var tmp;
  if (ctx == null) {
    tmp = CommonBigDecimal.gv(val);
  } else {
    tmp = Companion_getInstance_21().kq(val, ctx);
  }
  return tmp;
}
function bigDecimalOf_7(val, ctx) {
  ctx = ctx === VOID ? null : ctx;
  _init_properties_JsUtils_kt__tti4wa();
  // Inline function 'com.macrofocus.common.math.big.castTo' call
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  var value = val;
  var tmp;
  if (ctx == null) {
    tmp = CommonBigDecimal.jv(value);
  } else {
    tmp = Companion_getInstance_21().hv(value, ctx);
  }
  return tmp;
}
function bigDecimalOf_8(val, ctx) {
  _init_properties_JsUtils_kt__tti4wa();
  return Companion_getInstance_21().ofIntWithContext(val, ctx);
}
function bigDecimalOf_9(val, ctx) {
  _init_properties_JsUtils_kt__tti4wa();
  return Companion_getInstance_21().ofWithContext(val, ctx);
}
var BigIntegers_instance;
function BigIntegers_getInstance() {
  if (BigIntegers_instance === VOID)
    new BigIntegers();
  return BigIntegers_instance;
}
function bigProbablePrimeInteger(bitLength, rnd) {
  _init_properties_JsUtils_kt__tti4wa();
  return Companion_getInstance_22().probablePrime(bitLength, rnd);
}
function bigIntegerOf(value) {
  _init_properties_JsUtils_kt__tti4wa();
  return Companion_getInstance_22().ofLong(value);
}
function bigIntegerOf_0(value) {
  _init_properties_JsUtils_kt__tti4wa();
  return Companion_getInstance_22().of(value);
}
function bigIntegerOf_1(value) {
  _init_properties_JsUtils_kt__tti4wa();
  return Companion_getInstance_22().parse(value);
}
function bigIntegerOf_2(value, radix) {
  _init_properties_JsUtils_kt__tti4wa();
  return Companion_getInstance_22().parseWithRadix(value, radix);
}
function bigIntegerOf_3(value) {
  _init_properties_JsUtils_kt__tti4wa();
  return Companion_getInstance_22().ofIntArray(value);
}
function bigIntegerOf_4(signum, magnitude, off, len) {
  off = off === VOID ? 0 : off;
  len = len === VOID ? magnitude.length : len;
  _init_properties_JsUtils_kt__tti4wa();
  return CommonBigInteger.bw(signum, magnitude, off, len);
}
function logImpl(lazyObject) {
  _init_properties_JsUtils_kt__tti4wa();
  console.warn(lazyObject());
}
var properties_initialized_JsUtils_kt_k4zh3s;
function _init_properties_JsUtils_kt__tti4wa() {
  if (!properties_initialized_JsUtils_kt_k4zh3s) {
    properties_initialized_JsUtils_kt_k4zh3s = true;
    exceptionalDoubles = setOf_0([NaN, -Infinity, Infinity]);
  }
}
var androidx_compose_runtime_AbstractApplier$stable;
var androidx_compose_runtime_OffsetApplier$stable;
var androidx_compose_runtime_BroadcastFrameClock$stable;
var androidx_compose_runtime_ComposeRuntimeFlags$stable;
var androidx_compose_runtime_ComposeVersion$stable;
var androidx_compose_runtime_CompositionLocal$stable;
var androidx_compose_runtime_ProvidableCompositionLocal$stable;
var androidx_compose_runtime_DynamicProvidableCompositionLocal$stable;
var androidx_compose_runtime_StaticProvidableCompositionLocal$stable;
var androidx_compose_runtime_ComputedProvidableCompositionLocal$stable;
var androidx_compose_runtime_CompositionLocalContext$stable;
var androidx_compose_runtime_JoinedKey$stable;
var androidx_compose_runtime_Latch$stable;
var androidx_compose_runtime_OpaqueKey$stable;
var androidx_compose_runtime_PausedCompositionImpl$stable;
var androidx_compose_runtime_RecordingApplier$stable;
var androidx_compose_runtime_PausableMonotonicFrameClock$stable;
var androidx_compose_runtime_SnapshotMutableDoubleStateImpl$stable;
var androidx_compose_runtime_SnapshotMutableFloatStateImpl$stable;
var androidx_compose_runtime_SnapshotMutableIntStateImpl$stable;
var androidx_compose_runtime_SnapshotMutableLongStateImpl$stable;
var androidx_compose_runtime_SnapshotMutableStateImpl$stable;
var androidx_compose_runtime_UnboxedIntState$stable;
var androidx_compose_runtime_UnboxedLongState$stable;
var androidx_compose_runtime_UnboxedFloatState$stable;
var androidx_compose_runtime_UnboxedDoubleState$stable;
var androidx_compose_runtime_IntStack$stable;
var androidx_compose_runtime_StaticValueHolder$stable;
var androidx_compose_runtime_LazyValueHolder$stable;
var androidx_compose_runtime_ComputedValueHolder$stable;
var androidx_compose_runtime_DynamicValueHolder$stable;
var androidx_compose_runtime_changelist_ChangeList$stable;
var androidx_compose_runtime_changelist_ComposerChangeListWriter$stable;
var androidx_compose_runtime_changelist_FixupList$stable;
var androidx_compose_runtime_changelist_Operation_Ups$stable;
var androidx_compose_runtime_changelist_Operation_Downs$stable;
var androidx_compose_runtime_changelist_Operation_AdvanceSlotsBy$stable;
var androidx_compose_runtime_changelist_Operation_SideEffect$stable;
var androidx_compose_runtime_changelist_Operation_Remember$stable;
var androidx_compose_runtime_changelist_Operation_RememberPausingScope$stable;
var androidx_compose_runtime_changelist_Operation_StartResumingScope$stable;
var androidx_compose_runtime_changelist_Operation_EndResumingScope$stable;
var androidx_compose_runtime_changelist_Operation_AppendValue$stable;
var androidx_compose_runtime_changelist_Operation_TrimParentValues$stable;
var androidx_compose_runtime_changelist_Operation_UpdateValue$stable;
var androidx_compose_runtime_changelist_Operation_UpdateAnchoredValue$stable;
var androidx_compose_runtime_changelist_Operation_UpdateAuxData$stable;
var androidx_compose_runtime_changelist_Operation_EnsureRootGroupStarted$stable;
var androidx_compose_runtime_changelist_Operation_EnsureGroupStarted$stable;
var androidx_compose_runtime_changelist_Operation_RemoveCurrentGroup$stable;
var androidx_compose_runtime_changelist_Operation_MoveCurrentGroup$stable;
var androidx_compose_runtime_changelist_Operation_EndCurrentGroup$stable;
var androidx_compose_runtime_changelist_Operation_SkipToEndOfCurrentGroup$stable;
var androidx_compose_runtime_changelist_Operation_EndCompositionScope$stable;
var androidx_compose_runtime_changelist_Operation_UseCurrentNode$stable;
var androidx_compose_runtime_changelist_Operation_UpdateNode$stable;
var androidx_compose_runtime_changelist_Operation_RemoveNode$stable;
var androidx_compose_runtime_changelist_Operation_MoveNode$stable;
var androidx_compose_runtime_changelist_Operation_InsertSlots$stable;
var androidx_compose_runtime_changelist_Operation_InsertSlotsWithFixups$stable;
var androidx_compose_runtime_changelist_Operation_InsertNodeFixup$stable;
var androidx_compose_runtime_changelist_Operation_PostInsertNodeFixup$stable;
var androidx_compose_runtime_changelist_Operation_DeactivateCurrentGroup$stable;
var androidx_compose_runtime_changelist_Operation_ResetSlots$stable;
var androidx_compose_runtime_changelist_Operation_DetermineMovableContentNodeIndex$stable;
var androidx_compose_runtime_changelist_Operation_CopyNodesToNewAnchorLocation$stable;
var androidx_compose_runtime_changelist_Operation_CopySlotTableToAnchorLocation$stable;
var androidx_compose_runtime_changelist_Operation_EndMovableContentPlacement$stable;
var androidx_compose_runtime_changelist_Operation_ReleaseMovableGroupAtCurrent$stable;
var androidx_compose_runtime_changelist_Operation_ApplyChangeList$stable;
var androidx_compose_runtime_changelist_Operation_TestOperation$stable;
var androidx_compose_runtime_changelist_Operation$stable;
var androidx_compose_runtime_changelist_Operations$stable;
var androidx_compose_runtime_changelist_OperationsDebugStringFormattable$stable;
var androidx_compose_runtime_collection_MutableVector$stable;
var androidx_compose_runtime_collection_ScatterSetWrapper$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_adapters_ImmutableCollectionAdapter$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_adapters_ImmutableListAdapter$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_adapters_ImmutableSetAdapter$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_adapters_ImmutableMapAdapter$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableList_AbstractListIterator$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableList_SingleElementListIterator$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableList_AbstractPersistentList$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableList_BufferIterator$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableList_PersistentVector$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableList_PersistentVectorBuilder$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableList_PersistentVectorIterator$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableList_PersistentVectorMutableIterator$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableList_SmallPersistentVector$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableList_TrieIterator$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableList_ObjectRef$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_PersistentHashMap$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_PersistentHashMapBuilder$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_TrieNodeMutableEntriesIterator$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_PersistentHashMapBuilderBaseIterator$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_PersistentHashMapBuilderEntriesIterator$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_PersistentHashMapBuilderKeysIterator$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_PersistentHashMapBuilderValuesIterator$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_AbstractMapBuilderEntries$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_PersistentHashMapBuilderEntries$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_PersistentHashMapBuilderKeys$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_PersistentHashMapBuilderValues$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_TrieNodeBaseIterator$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_TrieNodeKeysIterator$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_TrieNodeValuesIterator$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_TrieNodeEntriesIterator$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_MapEntry$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_PersistentHashMapBaseIterator$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_PersistentHashMapEntriesIterator$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_PersistentHashMapKeysIterator$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_PersistentHashMapValuesIterator$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_PersistentHashMapEntries$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_PersistentHashMapKeys$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_PersistentHashMapValues$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_TrieNode_ModificationResult$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_TrieNode$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableSet_PersistentHashSet$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableSet_PersistentHashSetBuilder$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableSet_PersistentHashSetIterator$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableSet_TrieNodeIterator$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableSet_PersistentHashSetMutableIterator$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableSet_TrieNode$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_persistentOrderedMap_LinkedValue$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_persistentOrderedMap_PersistentOrderedMap$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_persistentOrderedMap_PersistentOrderedMapBuilder$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_persistentOrderedMap_PersistentOrderedMapBuilderLinksIterator$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_persistentOrderedMap_PersistentOrderedMapBuilderEntriesIterator$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_persistentOrderedMap_PersistentOrderedMapBuilderKeysIterator$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_persistentOrderedMap_PersistentOrderedMapBuilderValuesIterator$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_persistentOrderedMap_PersistentOrderedMapBuilderEntries$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_persistentOrderedMap_PersistentOrderedMapBuilderKeys$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_persistentOrderedMap_PersistentOrderedMapBuilderValues$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_persistentOrderedMap_PersistentOrderedMapLinksIterator$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_persistentOrderedMap_PersistentOrderedMapEntriesIterator$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_persistentOrderedMap_PersistentOrderedMapKeysIterator$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_persistentOrderedMap_PersistentOrderedMapValuesIterator$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_persistentOrderedMap_PersistentOrderedMapEntries$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_persistentOrderedMap_PersistentOrderedMapKeys$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_persistentOrderedMap_PersistentOrderedMapValues$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_persistentOrderedSet_Links$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_persistentOrderedSet_PersistentOrderedSet$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_persistentOrderedSet_PersistentOrderedSetBuilder$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_persistentOrderedSet_PersistentOrderedSetIterator$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_persistentOrderedSet_PersistentOrderedSetMutableIterator$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_internal_EndOfChain$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_internal_ListImplementation$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_internal_MutabilityOwnership$stable;
var androidx_compose_runtime_external_kotlinx_collections_immutable_internal_DeltaCounter$stable;
var androidx_compose_runtime_internal_IntRef$stable;
var androidx_compose_runtime_internal_PersistentCompositionLocalHashMap_Builder$stable;
var androidx_compose_runtime_internal_PersistentCompositionLocalHashMap$stable;
var androidx_compose_runtime_internal_PausedCompositionRemembers$stable;
var androidx_compose_runtime_internal_RememberEventDispatcher$stable;
var androidx_compose_runtime_snapshots_SnapshotDoubleIndexHeap$stable;
var androidx_compose_runtime_snapshots_SnapshotIdSet$stable;
var androidx_compose_runtime_snapshots_SnapshotStateObserver$stable;
var androidx_compose_runtime_snapshots_SnapshotWeakSet$stable;
var androidx_compose_runtime_snapshots_StateObjectImpl$stable;
var observers;
var androidx_compose_runtime_snapshots_tooling_SnapshotInstanceObservers$stable;
var androidx_compose_runtime_tooling_ComposeStackTraceFrame$stable;
var androidx_compose_runtime_tooling_WriterTraceBuilder$stable;
var androidx_compose_runtime_tooling_ReaderTraceBuilder$stable;
var androidx_compose_runtime_tooling_ComposeStackTraceBuilder$stable;
var androidx_compose_runtime_tooling_ObjectLocation$stable;
var androidx_compose_runtime_tooling_SourceInformation$stable;
var androidx_compose_runtime_tooling_ParameterSourceInformation$stable;
var androidx_compose_runtime_tooling_LocationSourceInformation$stable;
var androidx_compose_runtime_snapshots_SnapshotIdArrayBuilder$stable;
var MainThreadId;
var androidx_compose_runtime_internal_Trace$stable;
var androidx_compose_runtime_snapshots_SnapshotStateList$stable;
var androidx_compose_runtime_snapshots_SnapshotStateSet$stable;
var androidx_compose_runtime_internal_AtomicReference$stable;
var androidx_compose_runtime_internal_AtomicInt$stable;
var androidx_compose_runtime_internal_PlatformOptimizedCancellationException$stable;
var androidx_compose_runtime_snapshots_SnapshotContextElementImpl$stable;
var androidx_compose_runtime_tooling_DiagnosticComposeException$stable;
var androidx_compose_runtime_internal_WeakReference$stable;
function addEventHandler(_this__u8e3s4, type, handler) {
  return addEventHandler_0(_this__u8e3s4, type, undefined, handler);
}
function addEventHandler_0(_this__u8e3s4, type, options, handler) {
  _this__u8e3s4.addEventListener(type, handler, options);
  return addEventHandler$lambda(_this__u8e3s4, type, handler, options);
}
function addEventHandler$lambda($this_addEventHandler, $type, $handler, $options) {
  return () => {
    $this_addEventHandler.removeEventListener($type, $handler, $options);
    return Unit_instance;
  };
}
function removeEventListener(_this__u8e3s4, type, handler, options) {
  options = options === VOID ? undefined : options;
  _this__u8e3s4.removeEventListener(type, handler, options);
}
function get_BUILDER_CHILDREN() {
  _init_properties_ChildrenBuilder_kt__gexuom();
  return BUILDER_CHILDREN;
}
var BUILDER_CHILDREN;
function get_DEFAULT_KEY() {
  _init_properties_ChildrenBuilder_kt__gexuom();
  return DEFAULT_KEY;
}
var DEFAULT_KEY;
function buildChildren(_this__u8e3s4) {
  _init_properties_ChildrenBuilder_kt__gexuom();
  return buildChildren_0(_this__u8e3s4);
}
function addChildNode(_this__u8e3s4, node) {
  _init_properties_ChildrenBuilder_kt__gexuom();
  // Inline function 'react.builderChildren' call
  // Inline function 'kotlin.js.asDynamic' call
  var children = _this__u8e3s4[get_BUILDER_CHILDREN()];
  if (!(children == null)) {
    children.push(node);
  } else {
    // Inline function 'react.ReactNodeArray' call
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    // Inline function 'js.reflect.unsafeCast' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    // Inline function 'react.builderChildren' call
    var value = [node];
    // Inline function 'kotlin.js.asDynamic' call
    _this__u8e3s4[get_BUILDER_CHILDREN()] = value;
  }
}
function addChild(_this__u8e3s4, type) {
  _init_properties_ChildrenBuilder_kt__gexuom();
  addChildElement(_this__u8e3s4, type, null, getDefaultKey(_this__u8e3s4));
}
function addChild_0(_this__u8e3s4, type, block) {
  _init_properties_ChildrenBuilder_kt__gexuom();
  var defaultKey = getDefaultKey(_this__u8e3s4);
  // Inline function 'js.objects.unsafeJso' call
  // Inline function 'js.objects.unsafeJso' call
  // Inline function 'kotlin.apply' call
  var this_0 = {};
  block(this_0);
  addChildElement(_this__u8e3s4, type, this_0, defaultKey);
}
function buildChildren_0(builder) {
  _init_properties_ChildrenBuilder_kt__gexuom();
  // Inline function 'kotlin.js.asDynamic' call
  var children = builder[get_BUILDER_CHILDREN()];
  Reflect.deleteProperty(builder, get_BUILDER_CHILDREN());
  return children;
}
function addChildElement(_this__u8e3s4, type, props, defaultKey) {
  _init_properties_ChildrenBuilder_kt__gexuom();
  var element = jsx_1(type, props, defaultKey);
  addChildNode(_this__u8e3s4, element);
}
function getDefaultKey(_this__u8e3s4) {
  _init_properties_ChildrenBuilder_kt__gexuom();
  // Inline function 'kotlin.js.asDynamic' call
  var key = _this__u8e3s4[get_DEFAULT_KEY()];
  Reflect.deleteProperty(_this__u8e3s4, get_DEFAULT_KEY());
  return key;
}
function buildChildren_1(_this__u8e3s4) {
  _init_properties_ChildrenBuilder_kt__gexuom();
  return buildChildren_0(_this__u8e3s4);
}
var properties_initialized_ChildrenBuilder_kt_gby2z0;
function _init_properties_ChildrenBuilder_kt__gexuom() {
  if (!properties_initialized_ChildrenBuilder_kt_gby2z0) {
    properties_initialized_ChildrenBuilder_kt_gby2z0 = true;
    BUILDER_CHILDREN = Symbol('@@builder-children');
    DEFAULT_KEY = Symbol('@@default-key');
  }
}
function asNodeArrayOrNull(_this__u8e3s4) {
  // Inline function 'js.reflect.upcast' call
  var tmp = _this__u8e3s4;
  return isArray(tmp) ? tmp : null;
}
function buildCleanup(cleanups) {
  // Inline function 'kotlin.collections.isEmpty' call
  if (cleanups.length === 0)
    return undefined;
  return buildCleanup$lambda(cleanups);
}
function buildCleanup$lambda($cleanups) {
  return () => {
    var indexedObject = $cleanups;
    var inductionVariable = 0;
    var last = indexedObject.length;
    while (inductionVariable < last) {
      var cleanup = indexedObject[inductionVariable];
      inductionVariable = inductionVariable + 1 | 0;
      cleanup();
    }
    return Unit_instance;
  };
}
function buildCleanupCallback(block) {
  return buildCleanupCallback$lambda(block);
}
function buildCleanupCallback$lambda($block) {
  return () => {
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    var cleanups = [];
    // Inline function 'js.reflect.unsafeCast' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    $block(cleanups);
    return buildCleanup(cleanups);
  };
}
function jsx_0(type, props) {
  return jsx_1(type, props, null);
}
function jsx_1(type, props, defaultKey) {
  if (props == null) {
    var tmp = jsx;
    // Inline function 'js.objects.unsafeJso' call
    var tmp_0 = {};
    return tmp(type, tmp_0, defaultKey == null ? undefined : defaultKey);
  }
  var finalProps = props;
  var tmp1_elvis_lhs = props.key;
  var tmp2_elvis_lhs = tmp1_elvis_lhs == null ? defaultKey : tmp1_elvis_lhs;
  var finalKey = tmp2_elvis_lhs == null ? undefined : tmp2_elvis_lhs;
  var builderChildren = buildChildren_1(props);
  var jsxMode = true;
  if (!(props.key === undefined) || !(builderChildren == null)) {
    var tmp_1 = Object;
    // Inline function 'js.objects.unsafeJso' call
    var tmp$ret$1 = {};
    finalProps = tmp_1.assign(tmp$ret$1, props);
    Reflect.deleteProperty(finalProps, 'key');
    if (!(builderChildren == null)) {
      // Inline function 'js.reflect.unsafeCast' call
      // Inline function 'kotlin.js.unsafeCast' call
      // Inline function 'kotlin.js.asDynamic' call
      var container = finalProps;
      if (!(container.children == null)) {
        reportError(IllegalStateException.w3('Both `children` source options used. Prop `children` will be ignored.'));
      }
      var tmp3_safe_receiver = asNodeArrayOrNull(builderChildren);
      var singleBuilderChild = tmp3_safe_receiver == null ? null : singleOrNull(tmp3_safe_receiver);
      jsxMode = !(singleBuilderChild == null);
      container.children = singleBuilderChild == null ? builderChildren : singleBuilderChild;
    }
  }
  var create = jsxMode ? jsx : jsxs;
  return create(type, finalProps, finalKey);
}
function useEffectWithCleanup(effect) {
  var callback = buildCleanupCallback(effect);
  useEffect(callback);
}
function FC(block) {
  // Inline function 'js.reflect.unsafeCast' call
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  return FC$lambda(block);
}
function FC$lambda$lambda($block, $props) {
  return ($this$createElementOrNull) => {
    $block($this$createElementOrNull, $props);
    return Unit_instance;
  };
}
function FC$lambda($block) {
  return (props) => createElementOrNull(FC$lambda$lambda($block, props));
}
function create(_this__u8e3s4, block) {
  // Inline function 'js.objects.unsafeJso' call
  // Inline function 'js.objects.unsafeJso' call
  // Inline function 'kotlin.apply' call
  var this_0 = {};
  block(this_0);
  return jsx_0(_this__u8e3s4, this_0);
}
function createElementOrNull(block) {
  // Inline function 'js.objects.unsafeJso' call
  // Inline function 'js.objects.unsafeJso' call
  // Inline function 'kotlin.apply' call
  var this_0 = {};
  block(this_0);
  var tmp0_elvis_lhs = buildChildren(this_0);
  var tmp;
  if (tmp0_elvis_lhs == null) {
    return null;
  } else {
    tmp = tmp0_elvis_lhs;
  }
  var childNodes = tmp;
  var tmp_0 = Fragment;
  return create(tmp_0, createElementOrNull$lambda(childNodes));
}
function createElementOrNull$lambda($childNodes) {
  return ($this$create) => {
    $this$create.children = $childNodes;
    return Unit_instance;
  };
}
var ReactHTML_instance;
function ReactHTML_getInstance() {
  return ReactHTML_instance;
}
var org_mkui_canvas_AbstractAveragingLayer$stable;
var org_mkui_canvas_AbstractDensityLayer$stable;
function alpha(_this__u8e3s4, alpha) {
  var tmp = getURed(_this__u8e3s4);
  var tmp_0 = getUGreen(_this__u8e3s4);
  var tmp_1 = getUBlue(_this__u8e3s4);
  // Inline function 'kotlin.toUInt' call
  // Inline function 'kotlin.floatToUInt' call
  var value = 255 * alpha;
  // Inline function 'kotlin.UInt.toUByte' call
  var this_0 = doubleToUInt(value);
  // Inline function 'kotlin.toUByte' call
  var this_1 = _UInt___get_data__impl__f0vqqw(this_0);
  var tmp$ret$3 = _UByte___init__impl__g9hnc4(toByte(this_1));
  return colorOf_0(tmp, tmp_0, tmp_1, tmp$ret$3);
}
function darker(_this__u8e3s4) {
  var FACTOR = 0.7;
  // Inline function 'kotlin.UByte.toDouble' call
  // Inline function 'kotlin.UByte.toInt' call
  var this_0 = getURed(_this__u8e3s4);
  var tmp$ret$0 = _UByte___get_data__impl__jof9qr(this_0) & 255;
  var tmp$ret$1 = uintToDouble(tmp$ret$0);
  // Inline function 'kotlin.math.max' call
  var a = numberToInt(tmp$ret$1 * FACTOR);
  var tmp = Math.max(a, 0);
  // Inline function 'kotlin.UByte.toDouble' call
  // Inline function 'kotlin.UByte.toInt' call
  var this_1 = getUGreen(_this__u8e3s4);
  var tmp$ret$3 = _UByte___get_data__impl__jof9qr(this_1) & 255;
  var tmp$ret$4 = uintToDouble(tmp$ret$3);
  // Inline function 'kotlin.math.max' call
  var a_0 = numberToInt(tmp$ret$4 * FACTOR);
  var tmp_0 = Math.max(a_0, 0);
  // Inline function 'kotlin.UByte.toDouble' call
  // Inline function 'kotlin.UByte.toInt' call
  var this_2 = getUBlue(_this__u8e3s4);
  var tmp$ret$6 = _UByte___get_data__impl__jof9qr(this_2) & 255;
  var tmp$ret$7 = uintToDouble(tmp$ret$6);
  // Inline function 'kotlin.math.max' call
  var a_1 = numberToInt(tmp$ret$7 * FACTOR);
  var tmp_1 = Math.max(a_1, 0);
  // Inline function 'kotlin.UByte.toInt' call
  var this_3 = getUAlpha(_this__u8e3s4);
  var tmp$ret$9 = _UByte___get_data__impl__jof9qr(this_3) & 255;
  return colorOf(tmp, tmp_0, tmp_1, tmp$ret$9);
}
function brighter(_this__u8e3s4) {
  var FACTOR = 0.7;
  // Inline function 'kotlin.UByte.toInt' call
  var this_0 = getURed(_this__u8e3s4);
  var r = _UByte___get_data__impl__jof9qr(this_0) & 255;
  // Inline function 'kotlin.UByte.toInt' call
  var this_1 = getUGreen(_this__u8e3s4);
  var g = _UByte___get_data__impl__jof9qr(this_1) & 255;
  // Inline function 'kotlin.UByte.toInt' call
  var this_2 = getUBlue(_this__u8e3s4);
  var b = _UByte___get_data__impl__jof9qr(this_2) & 255;
  // Inline function 'kotlin.UByte.toInt' call
  var this_3 = getUAlpha(_this__u8e3s4);
  var alpha = _UByte___get_data__impl__jof9qr(this_3) & 255;
  var i = numberToInt(1.0 / (1.0 - FACTOR));
  if (r === 0 && g === 0 && b === 0) {
    return colorOf(i, i, i, alpha);
  }
  if (r > 0 && r < i)
    r = i;
  if (g > 0 && g < i)
    g = i;
  if (b > 0 && b < i)
    b = i;
  // Inline function 'kotlin.math.min' call
  var a = numberToInt(r / FACTOR);
  var tmp = Math.min(a, 255);
  // Inline function 'kotlin.math.min' call
  var a_0 = numberToInt(g / FACTOR);
  var tmp_0 = Math.min(a_0, 255);
  // Inline function 'kotlin.math.min' call
  var a_1 = numberToInt(b / FACTOR);
  var tmp$ret$6 = Math.min(a_1, 255);
  return colorOf(tmp, tmp_0, tmp$ret$6, alpha);
}
function brightenAndSaturate(_this__u8e3s4, brightness, saturation) {
  // Inline function 'kotlin.UByte.toInt' call
  var this_0 = getURed(_this__u8e3s4);
  var tmp = _UByte___get_data__impl__jof9qr(this_0) & 255;
  // Inline function 'kotlin.UByte.toInt' call
  var this_1 = getUGreen(_this__u8e3s4);
  var tmp_0 = _UByte___get_data__impl__jof9qr(this_1) & 255;
  // Inline function 'kotlin.UByte.toInt' call
  var this_2 = getUBlue(_this__u8e3s4);
  var tmp$ret$2 = _UByte___get_data__impl__jof9qr(this_2) & 255;
  var hsb = RGBtoHSB(tmp, tmp_0, tmp$ret$2, null);
  if (!(brightness === 0.0)) {
    // Inline function 'kotlin.math.min' call
    var b = hsb[2] + brightness;
    // Inline function 'kotlin.math.max' call
    var b_0 = Math.min(1.0, b);
    hsb[2] = Math.max(0.0, b_0);
  }
  if (!(saturation === 0.0)) {
    // Inline function 'kotlin.math.min' call
    var b_1 = hsb[1] + saturation;
    // Inline function 'kotlin.math.max' call
    var b_2 = Math.min(1.0, b_1);
    hsb[1] = Math.max(0.0, b_2);
  }
  return colorOf_3(HSBtoRGB(hsb[0], hsb[1], hsb[2]));
}
function RGBtoHSB(r, g, b, hsbvals) {
  var hsbvals_0 = hsbvals;
  var hue;
  var saturation;
  var brightness;
  if (hsbvals_0 == null) {
    hsbvals_0 = new Float32Array(3);
  }
  var cmax = r > g ? r : g;
  if (b > cmax)
    cmax = b;
  var cmin = r < g ? r : g;
  if (b < cmin)
    cmin = b;
  brightness = cmax / 255.0;
  saturation = !(cmax === 0) ? (cmax - cmin | 0) / cmax : 0.0;
  if (saturation === 0.0)
    hue = 0.0;
  else {
    var redc = (cmax - r | 0) / (cmax - cmin | 0);
    var greenc = (cmax - g | 0) / (cmax - cmin | 0);
    var bluec = (cmax - b | 0) / (cmax - cmin | 0);
    hue = r === cmax ? bluec - greenc : g === cmax ? 2.0 + redc - bluec : 4.0 + greenc - redc;
    hue = hue / 6.0;
    if (hue < 0)
      hue = hue + 1.0;
  }
  hsbvals_0[0] = hue;
  hsbvals_0[1] = saturation;
  hsbvals_0[2] = brightness;
  return hsbvals_0;
}
function HSBtoRGB(hue, saturation, brightness) {
  var r = 0;
  var g = 0;
  var b = 0;
  if (saturation === 0.0) {
    b = numberToInt(brightness * 255.0 + 0.5);
    g = b;
    r = g;
  } else {
    // Inline function 'kotlin.math.floor' call
    var h = (hue - Math.floor(hue)) * 6.0;
    // Inline function 'kotlin.math.floor' call
    var f = h - Math.floor(h);
    var p = brightness * (1.0 - saturation);
    var q = brightness * (1.0 - saturation * f);
    var t = brightness * (1.0 - saturation * (1.0 - f));
    switch (numberToInt(h)) {
      case 0:
        r = numberToInt(brightness * 255.0 + 0.5);
        g = numberToInt(t * 255.0 + 0.5);
        b = numberToInt(p * 255.0 + 0.5);
        break;
      case 1:
        r = numberToInt(q * 255.0 + 0.5);
        g = numberToInt(brightness * 255.0 + 0.5);
        b = numberToInt(p * 255.0 + 0.5);
        break;
      case 2:
        r = numberToInt(p * 255.0 + 0.5);
        g = numberToInt(brightness * 255.0 + 0.5);
        b = numberToInt(t * 255.0 + 0.5);
        break;
      case 3:
        r = numberToInt(p * 255.0 + 0.5);
        g = numberToInt(q * 255.0 + 0.5);
        b = numberToInt(brightness * 255.0 + 0.5);
        break;
      case 4:
        r = numberToInt(t * 255.0 + 0.5);
        g = numberToInt(p * 255.0 + 0.5);
        b = numberToInt(brightness * 255.0 + 0.5);
        break;
      case 5:
        r = numberToInt(brightness * 255.0 + 0.5);
        g = numberToInt(p * 255.0 + 0.5);
        b = numberToInt(q * 255.0 + 0.5);
        break;
    }
  }
  return -16777216 | r << 16 | g << 8 | b << 0;
}
var org_mkui_coloring_implementation_AbstractColoring$stable;
var org_mkui_coloring_implementation_SimpleColoring$stable;
var org_mkui_coloring_implementation_SimpleColoringEvent$stable;
var org_mkui_colormap_AbstractColorMap$stable;
var PropertyType_Inverval_instance;
var PropertyType_Palette_instance;
var PropertyType_Matching_instance;
var PropertyType_Assignments_instance;
var PropertyType_MissingValuesColor_instance;
var PropertyType_UnderflowColor_instance;
var PropertyType_OverflowColor_instance;
var PropertyType_Inverted_instance;
var PropertyType_NumberOfSteps_instance;
var PropertyType_Brightness_instance;
var PropertyType_Saturation_instance;
var PropertyType_Alpha_instance;
function values_0() {
  return [PropertyType_Inverval_getInstance(), PropertyType_Palette_getInstance(), PropertyType_Matching_getInstance(), PropertyType_Assignments_getInstance(), PropertyType_MissingValuesColor_getInstance(), PropertyType_UnderflowColor_getInstance(), PropertyType_OverflowColor_getInstance(), PropertyType_Inverted_getInstance(), PropertyType_NumberOfSteps_getInstance(), PropertyType_Brightness_getInstance(), PropertyType_Saturation_getInstance(), PropertyType_Alpha_getInstance()];
}
var PropertyType_entriesInitialized;
function PropertyType_initEntries() {
  if (PropertyType_entriesInitialized)
    return Unit_instance;
  PropertyType_entriesInitialized = true;
  PropertyType_Inverval_instance = new PropertyType('Inverval', 0);
  PropertyType_Palette_instance = new PropertyType('Palette', 1);
  PropertyType_Matching_instance = new PropertyType('Matching', 2);
  PropertyType_Assignments_instance = new PropertyType('Assignments', 3);
  PropertyType_MissingValuesColor_instance = new PropertyType('MissingValuesColor', 4);
  PropertyType_UnderflowColor_instance = new PropertyType('UnderflowColor', 5);
  PropertyType_OverflowColor_instance = new PropertyType('OverflowColor', 6);
  PropertyType_Inverted_instance = new PropertyType('Inverted', 7);
  PropertyType_NumberOfSteps_instance = new PropertyType('NumberOfSteps', 8);
  PropertyType_Brightness_instance = new PropertyType('Brightness', 9);
  PropertyType_Saturation_instance = new PropertyType('Saturation', 10);
  PropertyType_Alpha_instance = new PropertyType('Alpha', 11);
}
var Companion_instance_31;
function Companion_getInstance_31() {
  return Companion_instance_31;
}
function PropertyType_Inverval_getInstance() {
  PropertyType_initEntries();
  return PropertyType_Inverval_instance;
}
function PropertyType_Palette_getInstance() {
  PropertyType_initEntries();
  return PropertyType_Palette_instance;
}
function PropertyType_Matching_getInstance() {
  PropertyType_initEntries();
  return PropertyType_Matching_instance;
}
function PropertyType_Assignments_getInstance() {
  PropertyType_initEntries();
  return PropertyType_Assignments_instance;
}
function PropertyType_MissingValuesColor_getInstance() {
  PropertyType_initEntries();
  return PropertyType_MissingValuesColor_instance;
}
function PropertyType_UnderflowColor_getInstance() {
  PropertyType_initEntries();
  return PropertyType_UnderflowColor_instance;
}
function PropertyType_OverflowColor_getInstance() {
  PropertyType_initEntries();
  return PropertyType_OverflowColor_instance;
}
function PropertyType_Inverted_getInstance() {
  PropertyType_initEntries();
  return PropertyType_Inverted_instance;
}
function PropertyType_NumberOfSteps_getInstance() {
  PropertyType_initEntries();
  return PropertyType_NumberOfSteps_instance;
}
function PropertyType_Brightness_getInstance() {
  PropertyType_initEntries();
  return PropertyType_Brightness_instance;
}
function PropertyType_Saturation_getInstance() {
  PropertyType_initEntries();
  return PropertyType_Saturation_instance;
}
function PropertyType_Alpha_getInstance() {
  PropertyType_initEntries();
  return PropertyType_Alpha_instance;
}
var Assignments_STATIC_instance;
var Assignments_DYNAMIC_instance;
var Assignments_entriesInitialized;
function Assignments_initEntries() {
  if (Assignments_entriesInitialized)
    return Unit_instance;
  Assignments_entriesInitialized = true;
  Assignments_STATIC_instance = new Assignments('STATIC', 0);
  Assignments_DYNAMIC_instance = new Assignments('DYNAMIC', 1);
}
function Assignments_STATIC_getInstance() {
  Assignments_initEntries();
  return Assignments_STATIC_instance;
}
function Assignments_DYNAMIC_getInstance() {
  Assignments_initEntries();
  return Assignments_DYNAMIC_instance;
}
var org_mkui_colormap_ColorMapEvent$stable;
var org_mkui_colormap_ColorMapFactory$stable;
var Companion_instance_32;
function Companion_getInstance_32() {
  if (Companion_instance_32 === VOID)
    new Companion_32();
  return Companion_instance_32;
}
var Matching_EXACT_instance;
var Matching_CLOSEST_instance;
var Matching_entriesInitialized;
function Matching_initEntries() {
  if (Matching_entriesInitialized)
    return Unit_instance;
  Matching_entriesInitialized = true;
  Matching_EXACT_instance = new Matching('EXACT', 0);
  Matching_CLOSEST_instance = new Matching('CLOSEST', 1);
}
function Matching_EXACT_getInstance() {
  Matching_initEntries();
  return Matching_EXACT_instance;
}
var org_mkui_colormap_SetStoreMutableProperty$stable;
var org_mkui_colormap_SimpleColorMap$stable;
function arrayToString_0($this, array) {
  var str = '';
  var inductionVariable = 0;
  var last = array.length - 1 | 0;
  if (inductionVariable <= last)
    do {
      var i = inductionVariable;
      inductionVariable = inductionVariable + 1 | 0;
      var v = array[i];
      if (!(v == null)) {
        str = str + toString_1(v);
      }
      if (i < (array.length - 1 | 0)) {
        str = str + '/';
      }
    }
     while (inductionVariable <= last);
  return str;
}
function SimpleColorMap$_get_palette_$ref_89wju4() {
  return (p0) => p0.u1a();
}
function SimpleColorMap$_set_palette_$ref_m0hmhs() {
  return (p0, p1) => {
    p0.r1d(p1);
    return Unit_instance;
  };
}
function SimpleColorMap$_get_palette_$ref_89wju4_0() {
  return (p0) => p0.u1a();
}
function SimpleColorMap$_set_palette_$ref_m0hmhs_0() {
  return (p0, p1) => {
    p0.r1d(p1);
    return Unit_instance;
  };
}
function SimpleColorMap$_get_nullColor_$ref_k2v4t1() {
  return (p0) => p0.v1a();
}
function SimpleColorMap$_set_nullColor_$ref_4v3map() {
  return (p0, p1) => {
    p0.s1d(p1);
    return Unit_instance;
  };
}
function SimpleColorMap$_get_nullColor_$ref_k2v4t1_0() {
  return (p0) => p0.v1a();
}
function SimpleColorMap$_set_nullColor_$ref_4v3map_0() {
  return (p0, p1) => {
    p0.s1d(p1);
    return Unit_instance;
  };
}
function SimpleColorMap$_get_isInverted_$ref_pusu9g() {
  return (p0) => p0.fn();
}
function SimpleColorMap$_set_isInverted_$ref_bpe80() {
  return (p0, p1) => {
    p0.t1d(p1);
    return Unit_instance;
  };
}
function SimpleColorMap$_get_isInverted_$ref_pusu9g_0() {
  return (p0) => p0.fn();
}
function SimpleColorMap$_set_isInverted_$ref_bpe80_0() {
  return (p0, p1) => {
    p0.t1d(p1);
    return Unit_instance;
  };
}
function SimpleColorMap$_get_colorCount_$ref_ggnfaf() {
  return (p0) => p0.a1b();
}
function SimpleColorMap$_set_colorCount_$ref_92g0r1() {
  return (p0, p1) => {
    p0.u1d(p1);
    return Unit_instance;
  };
}
function SimpleColorMap$_get_colorCount_$ref_ggnfaf_0() {
  return (p0) => p0.a1b();
}
function SimpleColorMap$_set_colorCount_$ref_92g0r1_0() {
  return (p0, p1) => {
    p0.u1d(p1);
    return Unit_instance;
  };
}
function SimpleColorMap$_get_brightness_$ref_rmha3m() {
  return (p0) => p0.q1a();
}
function SimpleColorMap$_set_brightness_$ref_23du26() {
  return (p0, p1) => {
    p0.v1d(p1);
    return Unit_instance;
  };
}
function SimpleColorMap$_get_brightness_$ref_rmha3m_0() {
  return (p0) => p0.q1a();
}
function SimpleColorMap$_set_brightness_$ref_23du26_0() {
  return (p0, p1) => {
    p0.v1d(p1);
    return Unit_instance;
  };
}
function SimpleColorMap$_get_saturation_$ref_3jmflr() {
  return (p0) => p0.r1a();
}
function SimpleColorMap$_set_saturation_$ref_t2pvn7() {
  return (p0, p1) => {
    p0.w1d(p1);
    return Unit_instance;
  };
}
function SimpleColorMap$_get_saturation_$ref_3jmflr_0() {
  return (p0) => p0.r1a();
}
function SimpleColorMap$_set_saturation_$ref_t2pvn7_0() {
  return (p0, p1) => {
    p0.w1d(p1);
    return Unit_instance;
  };
}
var org_mkui_colormap_editor_AbstractCategoricalColorMapEditor$stable;
var org_mkui_colormap_editor_AbstractColorMapPanel$stable;
var org_mkui_colormap_editor_AbstractCustomColorMapEditor$stable;
var org_mkui_colormap_editor_AbstractPredefinedColorMapEditor$stable;
var org_mkui_colormap_property_MutableColorMapOverrideProperty$stable;
var org_mkui_colormap_property_MutableColorMapProperty$stable;
var org_mkui_colormapping_AbstractColorMapping$stable;
var org_mkui_component_InteractiveComponentListeners$stable;
var org_mkui_component_VerticalPanelBuilder$stable;
var org_mkui_component_button_CPButtonProperties$stable;
var org_mkui_component_menu_ToggleGroup$stable;
var org_mkui_component_panel_Row$stable;
var Posture_REGULAR_instance;
var Posture_ITALIC_instance;
var Posture_entriesInitialized;
function Posture_initEntries() {
  if (Posture_entriesInitialized)
    return Unit_instance;
  Posture_entriesInitialized = true;
  Posture_REGULAR_instance = new Posture('REGULAR', 0);
  Posture_ITALIC_instance = new Posture('ITALIC', 1);
}
function Posture_REGULAR_getInstance() {
  Posture_initEntries();
  return Posture_REGULAR_instance;
}
function Posture_ITALIC_getInstance() {
  Posture_initEntries();
  return Posture_ITALIC_instance;
}
var Weight_NORMAL_instance;
var Weight_BOLD_instance;
var Weight_entriesInitialized;
function Weight_initEntries() {
  if (Weight_entriesInitialized)
    return Unit_instance;
  Weight_entriesInitialized = true;
  Weight_NORMAL_instance = new Weight('NORMAL', 0);
  Weight_BOLD_instance = new Weight('BOLD', 1);
}
function Weight_NORMAL_getInstance() {
  Weight_initEntries();
  return Weight_NORMAL_instance;
}
function Weight_BOLD_getInstance() {
  Weight_initEntries();
  return Weight_BOLD_instance;
}
var org_mkui_geom_AbstractRectangle2D$stable;
var Companion_instance_33;
function Companion_getInstance_33() {
  return Companion_instance_33;
}
var org_mkui_geom_AffineTransform$stable;
function _matround($this, matval) {
  return round(matval * 1.0E15) / 1.0E15;
}
function stateError($this) {
  throw UnsupportedOperationException.y8('missing case in transform state switch');
}
function rotate90($this) {
  var M0 = $this.g1i_1;
  $this.g1i_1 = $this.i1i_1;
  $this.i1i_1 = -M0;
  M0 = $this.h1i_1;
  $this.h1i_1 = $this.j1i_1;
  $this.j1i_1 = -M0;
  var state = Companion_getInstance_34().i1j_1[$this.m1i_1];
  if ((state & 6) === 2 && $this.g1i_1 === 1.0 && $this.j1i_1 === 1.0) {
    state = state - 2 | 0;
  }
  $this.m1i_1 = state;
  $this.n1i_1 = -1;
}
function rotate180($this) {
  $this.g1i_1 = -$this.g1i_1;
  $this.j1i_1 = -$this.j1i_1;
  var state = $this.m1i_1;
  if (!((state & 4) === 0)) {
    $this.i1i_1 = -$this.i1i_1;
    $this.h1i_1 = -$this.h1i_1;
  } else {
    if ($this.g1i_1 === 1.0 && $this.j1i_1 === 1.0) {
      $this.m1i_1 = state & -3;
    } else {
      $this.m1i_1 = state | 2;
    }
  }
  $this.n1i_1 = -1;
}
function rotate270($this) {
  var M0 = $this.g1i_1;
  $this.g1i_1 = -$this.i1i_1;
  $this.i1i_1 = M0;
  M0 = $this.h1i_1;
  $this.h1i_1 = -$this.j1i_1;
  $this.j1i_1 = M0;
  var state = Companion_getInstance_34().i1j_1[$this.m1i_1];
  if ((state & 6) === 2 && $this.g1i_1 === 1.0 && $this.j1i_1 === 1.0) {
    state = state - 2 | 0;
  }
  $this.m1i_1 = state;
  $this.n1i_1 = -1;
}
var Companion_instance_34;
function Companion_getInstance_34() {
  if (Companion_instance_34 === VOID)
    new Companion_34();
  return Companion_instance_34;
}
function init_org_mkui_geom_AffineTransform(_this__u8e3s4) {
  Companion_getInstance_34();
  _this__u8e3s4.h1i_1 = 0.0;
  _this__u8e3s4.i1i_1 = 0.0;
  _this__u8e3s4.k1i_1 = 0.0;
  _this__u8e3s4.l1i_1 = 0.0;
  _this__u8e3s4.m1i_1 = 0;
  _this__u8e3s4.n1i_1 = 0;
}
var org_mkui_geom_Arc2D_Double$stable;
var Companion_instance_35;
function Companion_getInstance_35() {
  return Companion_instance_35;
}
function init_org_mkui_geom_Arc2D_Double(_this__u8e3s4) {
}
var org_mkui_geom_ArcIterator$stable;
function btan($this, increment) {
  var increment_0 = increment;
  increment_0 = increment_0 / 2.0;
  var tmp = 4.0 / 3.0;
  // Inline function 'kotlin.math.sin' call
  var x = increment_0;
  var tmp_0 = tmp * Math.sin(x);
  // Inline function 'kotlin.math.cos' call
  var x_0 = increment_0;
  return tmp_0 / (1.0 + Math.cos(x_0));
}
var Companion_instance_36;
function Companion_getInstance_36() {
  return Companion_instance_36;
}
var corg_mkui_geom_Area_AreaIterator$stable;
var corg_mkui_geom_Area$stable;
function pathToCurves($this, pi) {
  var curves = ArrayList.q1();
  var windingRule = pi.q1l();
  var coords = new Float64Array(23);
  var movx = 0.0;
  var movy = 0.0;
  var curx = 0.0;
  var cury = 0.0;
  while (!pi.m17()) {
    var newy;
    var newx;
    switch (pi.s1l(coords)) {
      case 0:
        Companion_instance_40.x1l(curves, curx, cury, movx, movy);
        // Inline function 'kotlin.run' call

        movx = coords[0];
        curx = movx;
        // Inline function 'kotlin.run' call

        movy = coords[1];
        cury = movy;
        Companion_instance_40.y1l(curves, movx, movy);
        break;
      case 1:
        newx = coords[0];
        newy = coords[1];
        Companion_instance_40.x1l(curves, curx, cury, newx, newy);
        curx = newx;
        cury = newy;
        break;
      case 2:
        newx = coords[2];
        newy = coords[3];
        Companion_instance_40.z1l(curves, curx, cury, coords);
        curx = newx;
        cury = newy;
        break;
      case 3:
        newx = coords[4];
        newy = coords[5];
        Companion_instance_40.a1m(curves, curx, cury, coords);
        curx = newx;
        cury = newy;
        break;
      case 4:
        Companion_instance_40.x1l(curves, curx, cury, movx, movy);
        curx = movx;
        cury = movy;
        break;
    }
    pi.r1l();
  }
  Companion_instance_40.x1l(curves, curx, cury, movx, movy);
  var operator;
  if (windingRule === 0) {
    operator = new EOWindOp();
  } else {
    operator = new NZWindOp();
  }
  return operator.c1m(curves, $this.b1m_1);
}
function invalidateBounds($this) {
  $this.e1m_1 = null;
}
function getCachedBounds($this) {
  if (!($this.e1m_1 == null)) {
    return ensureNotNull($this.e1m_1);
  }
  var r = Double_3.z1h(0.0, 0.0, 0.0, 0.0);
  if (ensureNotNull($this.d1m_1).k1() > 0) {
    var c = ensureNotNull($this.d1m_1).l1(0);
    r = Double_3.z1h(c.g1m(), c.h1m(), 0.0, 0.0);
    var inductionVariable = 1;
    var last = ensureNotNull($this.d1m_1).k1();
    if (inductionVariable < last)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        r = ensureNotNull($this.d1m_1).l1(i).i1m(Double_3.z1h(r.g1h(), r.h1h(), r.gm(), r.hm()));
      }
       while (inductionVariable < last);
  }
  // Inline function 'kotlin.also' call
  var this_0 = Double_3.z1h(r.g1h(), r.h1h(), r.gm(), r.hm());
  $this.e1m_1 = this_0;
  return this_0;
}
var Companion_instance_37;
function Companion_getInstance_37() {
  if (Companion_instance_37 === VOID)
    new Companion_37();
  return Companion_instance_37;
}
function init_corg_mkui_geom_Area(_this__u8e3s4) {
  Companion_getInstance_37();
  _this__u8e3s4.d1m_1 = null;
  _this__u8e3s4.e1m_1 = null;
}
var org_mkui_geom_AreaOp_CAGOp$stable;
var org_mkui_geom_AreaOp_AddOp$stable;
var org_mkui_geom_AreaOp_SubOp$stable;
var org_mkui_geom_AreaOp_IntOp$stable;
var org_mkui_geom_AreaOp_XorOp$stable;
var org_mkui_geom_AreaOp_NZWindOp$stable;
var org_mkui_geom_AreaOp_EOWindOp$stable;
var org_mkui_geom_AreaOp$stable;
function addEdges($this, edges, curves, curvetag) {
  var _iterator__ex2g4s = curves.h1();
  while (_iterator__ex2g4s.i1()) {
    var c = _iterator__ex2g4s.j1();
    if (c.o1m() > 0) {
      edges.c1(new Edge(c, curvetag));
    }
  }
}
function AreaOp$Companion$YXTopComparator$lambda(o1, o2) {
  var c1 = o1.g1n_1;
  var c2 = o2.g1n_1;
  var v1;
  var v2;
  // Inline function 'kotlin.also' call
  var this_0 = c1.o1n();
  v1 = this_0;
  var tmp = this_0;
  // Inline function 'kotlin.also' call
  var this_1 = c2.o1n();
  v2 = this_1;
  if (tmp === this_1) {
    // Inline function 'kotlin.also' call
    var this_2 = c1.p1n();
    v1 = this_2;
    var tmp_0 = this_2;
    // Inline function 'kotlin.also' call
    var this_3 = c2.p1n();
    v2 = this_3;
    if (tmp_0 === this_3) {
      return 0;
    }
  }
  if (v1 < v2) {
    return -1;
  }
  return 1;
}
function pruneEdges($this, edges) {
  var numedges = edges.k1();
  if (numedges < 2) {
    return ArrayList.q1();
  }
  // Inline function 'kotlin.collections.toTypedArray' call
  var edgelist = copyToArray(edges);
  sortWith(edgelist, Companion_getInstance_38().x1n_1);
  if (false) {
    println('pruning: ');
    var inductionVariable = 0;
    if (inductionVariable < numedges)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        println('edgelist[' + i + '] = ' + edgelist[i].toString());
      }
       while (inductionVariable < numedges);
  }
  var left = 0;
  var right = 0;
  var cur;
  var next;
  var yrange = new Float64Array(2);
  var subcurves = ArrayList.q1();
  var chains = ArrayList.q1();
  var links = ArrayList.q1();
  $l$loop: while (left < numedges) {
    var y = yrange[0];
    var e;
    next = right - 1 | 0;
    cur = next;
    while (cur >= left) {
      e = edgelist[cur];
      if (e.g1n_1.a1o() > y) {
        if (next > cur) {
          edgelist[next] = e;
        }
        next = next - 1 | 0;
      }
      cur = cur - 1 | 0;
    }
    left = next + 1 | 0;
    if (left >= right) {
      if (right >= numedges) {
        break $l$loop;
      }
      y = edgelist[right].g1n_1.o1n();
      if (y > yrange[0]) {
        Companion_getInstance_38().b1o(subcurves, chains);
      }
      yrange[0] = y;
    }
    $l$loop_0: while (right < numedges) {
      e = edgelist[right];
      if (e.g1n_1.o1n() > y) {
        break $l$loop_0;
      }
      right = right + 1 | 0;
    }
    yrange[1] = edgelist[left].g1n_1.a1o();
    if (right < numedges) {
      y = edgelist[right].g1n_1.o1n();
      if (yrange[1] > y) {
        yrange[1] = y;
      }
    }
    if (false) {
      println('current line: y = [' + yrange[0] + ', ' + yrange[1] + toString(_Char___init__impl__6a9atx(93)));
      cur = left;
      while (cur < right) {
        println('  ' + edgelist[cur].toString());
        cur = cur + 1 | 0;
      }
    }
    var nexteq = 1;
    cur = left;
    while (cur < right) {
      e = edgelist[cur];
      e.k1n_1 = 0;
      next = cur;
      $l$loop_1: while (next > left) {
        var prevedge = edgelist[next - 1 | 0];
        var ordering = e.c1o(prevedge, yrange);
        if (yrange[1] <= yrange[0]) {
          throw UnsupportedOperationException.y8('backstepping to ' + yrange[1] + ' from ' + yrange[0]);
        }
        if (ordering >= 0) {
          if (ordering === 0) {
            var eq = prevedge.k1n_1;
            if (eq === 0) {
              var _unary__edvuaz = nexteq;
              nexteq = _unary__edvuaz + 1 | 0;
              eq = _unary__edvuaz;
              prevedge.k1n_1 = eq;
            }
            e.k1n_1 = eq;
          }
          break $l$loop_1;
        }
        edgelist[next] = prevedge;
        next = next - 1 | 0;
      }
      edgelist[next] = e;
      cur = cur + 1 | 0;
    }
    if (false) {
      println('current sorted line: y = [' + yrange[0] + ', ' + yrange[1] + toString(_Char___init__impl__6a9atx(93)));
      cur = left;
      while (cur < right) {
        println('  ' + edgelist[cur].toString());
        cur = cur + 1 | 0;
      }
    }
    $this.d1o();
    var ystart = yrange[0];
    var yend = yrange[1];
    cur = left;
    while (cur < right) {
      e = edgelist[cur];
      var etag;
      var eq_0 = e.k1n_1;
      if (!(eq_0 === 0)) {
        var origstate = $this.f1o();
        etag = origstate === 1 ? -1 : 1;
        var activematch = null;
        var longestmatch = e;
        var furthesty = yend;
        $l$1: do {
          $l$0: do {
            $this.e1o(e);
            if (activematch == null && e.g1o(ystart, etag)) {
              activematch = e;
            }
            y = e.g1n_1.a1o();
            if (y > furthesty) {
              longestmatch = e;
              furthesty = y;
            }
          }
           while (false);
          var tmp;
          cur = cur + 1 | 0;
          if (cur < right) {
            // Inline function 'kotlin.also' call
            var this_0 = edgelist[cur];
            e = this_0;
            tmp = this_0.k1n_1 === eq_0;
          } else {
            tmp = false;
          }
        }
         while (tmp);
        cur = cur - 1 | 0;
        if ($this.f1o() === origstate) {
          etag = 0;
        } else {
          e = !(activematch == null) ? activematch : ensureNotNull(longestmatch);
        }
      } else {
        etag = $this.e1o(e);
      }
      if (!(etag === 0)) {
        e.h1o(yend, etag);
        links.c1(new CurveLink(e.g1n_1, ystart, yend, etag));
      }
      cur = cur + 1 | 0;
    }
    if (!($this.f1o() === -1)) {
      println('Still inside at end of active edge list!');
      println('num curves = ' + (right - left | 0));
      println('num links = ' + links.k1());
      println('y top = ' + yrange[0]);
      if (right < numedges) {
        println('y top of next curve = ' + edgelist[right].g1n_1.o1n());
      } else {
        println('no more curves');
      }
      cur = left;
      while (cur < right) {
        e = edgelist[cur];
        println(e);
        var eq_1 = e.k1n_1;
        if (!(eq_1 === 0)) {
          println('  was equal to ' + eq_1 + '...');
        }
        cur = cur + 1 | 0;
      }
    }
    if (false) {
      println('new links:');
      var inductionVariable_0 = 0;
      var last = links.k1() - 1 | 0;
      if (inductionVariable_0 <= last)
        do {
          var i_0 = inductionVariable_0;
          inductionVariable_0 = inductionVariable_0 + 1 | 0;
          var link = ensureNotNull(links.l1(i_0));
          println('  ' + link.n1o().toString());
        }
         while (inductionVariable_0 <= last);
    }
    Companion_getInstance_38().o1o(subcurves, chains, links);
    links.u4();
    yrange[0] = yend;
  }
  Companion_getInstance_38().b1o(subcurves, chains);
  var ret = ArrayList.q1();
  var _iterator__ex2g4s = subcurves.h1();
  while (_iterator__ex2g4s.i1()) {
    var subcurve = _iterator__ex2g4s.j1();
    var link_0 = subcurve;
    ret.c1(ensureNotNull(link_0).p1o());
    var nextlink = link_0;
    $l$loop_2: while (true) {
      // Inline function 'kotlin.also' call
      var this_1 = ensureNotNull(nextlink).m1o_1;
      nextlink = this_1;
      if (!!(this_1 == null)) {
        break $l$loop_2;
      }
      if (!ensureNotNull(link_0).q1o(ensureNotNull(nextlink))) {
        ret.c1(link_0.n1o());
        link_0 = nextlink;
      }
    }
    ret.c1(ensureNotNull(link_0).n1o());
  }
  return ret;
}
var Companion_instance_38;
function Companion_getInstance_38() {
  if (Companion_instance_38 === VOID)
    new Companion_38();
  return Companion_instance_38;
}
var org_mkui_geom_ChainEnd$stable;
var org_mkui_geom_Crossings_EvenOdd$stable;
var org_mkui_geom_Crossings_NonZero$stable;
var org_mkui_geom_Crossings$stable;
var Companion_instance_39;
function Companion_getInstance_39() {
  return Companion_instance_39;
}
var org_mkui_geom_CubicCurve2D$stable;
var org_mkui_geom_Curve$stable;
function fairlyClose($this, v1, v2) {
  // Inline function 'kotlin.math.abs' call
  var x = v1 - v2;
  var tmp = Math.abs(x);
  // Inline function 'kotlin.math.abs' call
  var tmp0 = Math.abs(v1);
  // Inline function 'kotlin.math.abs' call
  // Inline function 'kotlin.math.max' call
  var b = Math.abs(v2);
  return tmp < Math.max(tmp0, b) * 1.0E-10;
}
var Companion_instance_40;
function Companion_getInstance_40() {
  return Companion_instance_40;
}
var org_mkui_geom_CurveLink$stable;
var org_mkui_geom_Edge$stable;
var Companion_instance_41;
function Companion_getInstance_41() {
  return Companion_instance_41;
}
var org_mkui_geom_Ellipse$stable;
var org_mkui_geom_Ellipse2D_Double$stable;
var org_mkui_geom_EllipseIterator$stable;
var Companion_instance_42;
function Companion_getInstance_42() {
  if (Companion_instance_42 === VOID)
    new Companion_42();
  return Companion_instance_42;
}
var org_mkui_geom_FlatteningPathIterator$stable;
var org_mkui_geom_GeneralPath$stable;
var org_mkui_geom_Line2D_Double$stable;
var org_mkui_geom_Line2D$stable;
var Companion_instance_43;
function Companion_getInstance_43() {
  return Companion_instance_43;
}
var org_mkui_geom_LineIterator$stable;
var org_mkui_geom_NoninvertibleTransformException$stable;
var org_mkui_geom_Order0$stable;
var org_mkui_geom_Order1$stable;
var org_mkui_geom_Order2$stable;
var Companion_instance_44;
function Companion_getInstance_44() {
  return Companion_instance_44;
}
var org_mkui_geom_Order3$stable;
var Companion_instance_45;
function Companion_getInstance_45() {
  return Companion_instance_45;
}
var org_mkui_geom_Path$stable;
var org_mkui_geom_Path2D_Double_CopyIterator$stable;
var org_mkui_geom_Path2D_Double_TxIterator$stable;
var org_mkui_geom_Path2D_Double$stable;
var org_mkui_geom_Path2D_Iterator$stable;
var org_mkui_geom_Path2D$stable;
function init_org_mkui_geom_Path2D_Double(_this__u8e3s4) {
}
var Companion_instance_46;
function Companion_getInstance_46() {
  if (Companion_instance_46 === VOID)
    new Companion_46();
  return Companion_instance_46;
}
var Companion_instance_47;
function Companion_getInstance_47() {
  return Companion_instance_47;
}
function init_org_mkui_geom_Path2D(_this__u8e3s4) {
  _this__u8e3s4.h1u_1 = 0;
  _this__u8e3s4.i1u_1 = 0;
  _this__u8e3s4.j1u_1 = 0;
}
var org_mkui_geom_Point$stable;
var org_mkui_geom_Point2D_Double$stable;
var org_mkui_geom_Point2D_Float$stable;
function init_org_mkui_geom_Point2D_Double(_this__u8e3s4) {
  _this__u8e3s4.x1j_1 = 0.0;
  _this__u8e3s4.y1j_1 = 0.0;
}
function init_org_mkui_geom_Point2D_Float(_this__u8e3s4) {
  _this__u8e3s4.u1j_1 = 0.0;
  _this__u8e3s4.v1j_1 = 0.0;
}
var org_mkui_geom_Polygon_PolygonPathIterator$stable;
var org_mkui_geom_Polygon$stable;
var org_mkui_geom_QuadCurve2D_Double$stable;
var org_mkui_geom_QuadCurve2D$stable;
var Companion_instance_48;
function Companion_getInstance_48() {
  return Companion_instance_48;
}
var org_mkui_geom_QuadIterator$stable;
var org_mkui_geom_RectIterator$stable;
var org_mkui_geom_Rectangle$stable;
function _get_isNormalized__vs9aom($this) {
  return $this.gm() >= 0 && $this.hm() >= 0;
}
function init_org_mkui_geom_Rectangle(_this__u8e3s4) {
  _this__u8e3s4.a1w_1 = 0;
  _this__u8e3s4.b1w_1 = 0;
  _this__u8e3s4.c1w_1 = 0;
  _this__u8e3s4.d1w_1 = 0;
}
var org_mkui_geom_Rectangle2D_Double$stable;
function _get_isNormalized__vs9aom_0($this) {
  return $this.gm() >= 0 && $this.hm() >= 0;
}
var Companion_instance_49;
function Companion_getInstance_49() {
  return Companion_instance_49;
}
var org_mkui_geom_Rectangle2DHelper$stable;
var org_mkui_geom_RoundRectIterator$stable;
var Companion_instance_50;
function Companion_getInstance_50() {
  if (Companion_instance_50 === VOID)
    new Companion_50();
  return Companion_instance_50;
}
var org_mkui_geom_RoundRectangle2D_Double$stable;
var org_mkui_geom_RoundRectangle2D$stable;
function _get_isNormalized__vs9aom_1($this) {
  return $this.a1x_1 >= 0 && $this.b1x_1 >= 0;
}
function init_org_mkui_geom_RoundRectangle2D_Double(_this__u8e3s4) {
  _this__u8e3s4.y1w_1 = 0.0;
  _this__u8e3s4.z1w_1 = 0.0;
  _this__u8e3s4.a1x_1 = 0.0;
  _this__u8e3s4.b1x_1 = 0.0;
  _this__u8e3s4.c1x_1 = 0.0;
  _this__u8e3s4.d1x_1 = 0.0;
}
function classify($this, coord, left, right, arcsize) {
  var tmp;
  if (coord < left) {
    tmp = 0;
  } else if (coord < left + arcsize) {
    tmp = 1;
  } else if (coord < right - arcsize) {
    tmp = 2;
  } else if (coord < right) {
    tmp = 3;
  } else {
    tmp = 4;
  }
  return tmp;
}
var org_mkui_geom_ScreenTransformHelper$stable;
var ScreenTransformHelper_instance;
function ScreenTransformHelper_getInstance() {
  return ScreenTransformHelper_instance;
}
var org_mkui_geom_Segment$stable;
var org_mkui_geom_TextShape$stable;
var org_mkui_geom_curve_BSpline$stable;
var org_mkui_geom_curve_Bag$stable;
var org_mkui_geom_curve_BezierCurve$stable;
var org_mkui_geom_curve_BinaryCurveApproximationAlgorithm$stable;
var org_mkui_geom_curve_CardinalSpline$stable;
var org_mkui_geom_curve_CatmullRomSpline$stable;
var org_mkui_geom_curve_ControlPath$stable;
var org_mkui_geom_curve_CubicBSpline$stable;
var org_mkui_geom_curve_Curve$stable;
var org_mkui_geom_curve_Geom$stable;
var org_mkui_geom_curve_GroupIterator$stable;
var org_mkui_geom_curve_LagrangeCurve$stable;
var org_mkui_geom_curve_MultiPath$stable;
var org_mkui_geom_curve_NURBSpline$stable;
var org_mkui_geom_curve_NaturalCubicSpline$stable;
var org_mkui_geom_curve_ParametricCurve$stable;
var org_mkui_geom_curve_PascalsTriangle$stable;
var org_mkui_geom_curve_ShapeMultiPath$stable;
var org_mkui_geom_curve_ShapeMultiPathIterator$stable;
var org_mkui_geom_curve_ValueVector$stable;
var org_mkui_graphics_AbstractIDrawing$stable;
var org_mkui_graphics_AbstractIGraphics$stable;
var Companion_instance_51;
function Companion_getInstance_51() {
  return Companion_instance_51;
}
var org_mkui_graphics_Edge$stable;
var org_mkui_graphics_Insets$stable;
var org_mkui_graphics_colortheme_AbstractColorTheme$stable;
var org_mkui_graphics_colortheme_LightColorTheme$stable;
var org_mkui_graphics_line_BresenhamLineDrawer$stable;
var org_mkui_graphics_line_TwoStepLineDrawer$stable;
var org_mkui_graphics_pressure_LinearPressure$stable;
var org_mkui_graphics_pressure_LogPressure$stable;
var org_mkui_labeling_ContrastEnhancement_Off$stable;
var org_mkui_labeling_ContrastEnhancement_Brightness$stable;
var org_mkui_labeling_ContrastEnhancement_BlackWhite$stable;
var org_mkui_labeling_ContrastEnhancement_Complement$stable;
var org_mkui_labeling_ContrastEnhancement$stable;
var Companion_instance_52;
function Companion_getInstance_52() {
  if (Companion_instance_52 === VOID)
    new Companion_52();
  return Companion_instance_52;
}
var Off_instance;
function Off_getInstance() {
  if (Off_instance === VOID)
    new Off();
  return Off_instance;
}
var Brightness_instance;
function Brightness_getInstance() {
  if (Brightness_instance === VOID)
    new Brightness();
  return Brightness_instance;
}
var BlackWhite_instance;
function BlackWhite_getInstance() {
  if (BlackWhite_instance === VOID)
    new BlackWhite();
  return BlackWhite_instance;
}
var Complement_instance;
function Complement_getInstance() {
  if (Complement_instance === VOID)
    new Complement();
  return Complement_instance;
}
function get_Black() {
  _init_properties_EnhancedLabel_kt__o8kthw();
  return Black;
}
var Black;
function get_White() {
  _init_properties_EnhancedLabel_kt__o8kthw();
  return White;
}
var White;
var org_mkui_labeling_EnhancedLabel_Effect_Plain$stable;
var org_mkui_labeling_EnhancedLabel_Effect_Shadow$stable;
var org_mkui_labeling_EnhancedLabel_Effect_Glow$stable;
var org_mkui_labeling_EnhancedLabel_Effect_Outline$stable;
var org_mkui_labeling_EnhancedLabel_Effect_Emphasize$stable;
var org_mkui_labeling_EnhancedLabel_Effect$stable;
var org_mkui_labeling_EnhancedLabel$stable;
var Rendering_Truncate_instance;
var Rendering_Clip_instance;
var Rendering_WordWrap_instance;
function values_1() {
  return [Rendering_Truncate_getInstance(), Rendering_Clip_getInstance(), Rendering_WordWrap_getInstance()];
}
function valueOf_0(value) {
  switch (value) {
    case 'Truncate':
      return Rendering_Truncate_getInstance();
    case 'Clip':
      return Rendering_Clip_getInstance();
    case 'WordWrap':
      return Rendering_WordWrap_getInstance();
    default:
      Rendering_initEntries();
      THROW_IAE('No enum constant org.mkui.labeling.EnhancedLabel.Rendering.' + value);
      break;
  }
}
var Rendering_entriesInitialized;
function Rendering_initEntries() {
  if (Rendering_entriesInitialized)
    return Unit_instance;
  Rendering_entriesInitialized = true;
  Rendering_Truncate_instance = new Rendering('Truncate', 0);
  Rendering_Clip_instance = new Rendering('Clip', 1);
  Rendering_WordWrap_instance = new Rendering('WordWrap', 2);
}
var Plain_instance;
function Plain_getInstance() {
  if (Plain_instance === VOID)
    new Plain();
  return Plain_instance;
}
var Shadow_instance;
function Shadow_getInstance() {
  if (Shadow_instance === VOID)
    new Shadow();
  return Shadow_instance;
}
var Glow_instance;
function Glow_getInstance() {
  if (Glow_instance === VOID)
    new Glow();
  return Glow_instance;
}
var Outline_instance;
function Outline_getInstance() {
  if (Outline_instance === VOID)
    new Outline();
  return Outline_instance;
}
var Emphasize_instance;
function Emphasize_getInstance() {
  if (Emphasize_instance === VOID)
    new Emphasize();
  return Emphasize_instance;
}
var Companion_instance_53;
function Companion_getInstance_53() {
  return Companion_instance_53;
}
function Rendering_Truncate_getInstance() {
  Rendering_initEntries();
  return Rendering_Truncate_instance;
}
function Rendering_Clip_getInstance() {
  Rendering_initEntries();
  return Rendering_Clip_instance;
}
function Rendering_WordWrap_getInstance() {
  Rendering_initEntries();
  return Rendering_WordWrap_instance;
}
function diff(_this__u8e3s4, background) {
  _init_properties_EnhancedLabel_kt__o8kthw();
  // Inline function 'kotlin.UByte.toInt' call
  var this_0 = getURed(_this__u8e3s4);
  var tmp = _UByte___get_data__impl__jof9qr(this_0) & 255;
  // Inline function 'kotlin.UByte.toInt' call
  var this_1 = getURed(background);
  var tmp$ret$1 = _UByte___get_data__impl__jof9qr(this_1) & 255;
  var r = abs_0(tmp - tmp$ret$1 | 0);
  // Inline function 'kotlin.UByte.toInt' call
  var this_2 = getUGreen(_this__u8e3s4);
  var tmp_0 = _UByte___get_data__impl__jof9qr(this_2) & 255;
  // Inline function 'kotlin.UByte.toInt' call
  var this_3 = getUGreen(background);
  var tmp$ret$3 = _UByte___get_data__impl__jof9qr(this_3) & 255;
  var g = abs_0(tmp_0 - tmp$ret$3 | 0);
  // Inline function 'kotlin.UByte.toInt' call
  var this_4 = getUBlue(_this__u8e3s4);
  var tmp_1 = _UByte___get_data__impl__jof9qr(this_4) & 255;
  // Inline function 'kotlin.UByte.toInt' call
  var this_5 = getUBlue(background);
  var tmp$ret$5 = _UByte___get_data__impl__jof9qr(this_5) & 255;
  var b = abs_0(tmp_1 - tmp$ret$5 | 0);
  // Inline function 'kotlin.math.max' call
  // Inline function 'kotlin.math.max' call
  var b_0 = Math.max(g, b);
  return Math.max(r, b_0) / 255.0;
}
function brightness(_this__u8e3s4) {
  _init_properties_EnhancedLabel_kt__o8kthw();
  // Inline function 'kotlin.UByte.toInt' call
  var this_0 = getURed(_this__u8e3s4);
  var tmp = _UByte___get_data__impl__jof9qr(this_0) & 255;
  // Inline function 'kotlin.UByte.toInt' call
  var this_1 = getUGreen(_this__u8e3s4);
  var tmp_0 = _UByte___get_data__impl__jof9qr(this_1) & 255;
  // Inline function 'kotlin.UByte.toInt' call
  var this_2 = getUBlue(_this__u8e3s4);
  var tmp$ret$2 = _UByte___get_data__impl__jof9qr(this_2) & 255;
  var hsb = RGBtoHSB(tmp, tmp_0, tmp$ret$2, null);
  return hsb[2];
}
function replaceBrightness(_this__u8e3s4, min) {
  _init_properties_EnhancedLabel_kt__o8kthw();
  // Inline function 'kotlin.UByte.toInt' call
  var this_0 = getURed(_this__u8e3s4);
  var tmp = _UByte___get_data__impl__jof9qr(this_0) & 255;
  // Inline function 'kotlin.UByte.toInt' call
  var this_1 = getUGreen(_this__u8e3s4);
  var tmp_0 = _UByte___get_data__impl__jof9qr(this_1) & 255;
  // Inline function 'kotlin.UByte.toInt' call
  var this_2 = getUBlue(_this__u8e3s4);
  var tmp$ret$2 = _UByte___get_data__impl__jof9qr(this_2) & 255;
  var hsb = RGBtoHSB(tmp, tmp_0, tmp$ret$2, null);
  return getHSBColor(hsb[0], hsb[1], min);
}
function luminance(_this__u8e3s4) {
  _init_properties_EnhancedLabel_kt__o8kthw();
  // Inline function 'kotlin.UByte.toInt' call
  var this_0 = getURed(_this__u8e3s4);
  var r = _UByte___get_data__impl__jof9qr(this_0) & 255;
  // Inline function 'kotlin.UByte.toInt' call
  var this_1 = getUGreen(_this__u8e3s4);
  var g = _UByte___get_data__impl__jof9qr(this_1) & 255;
  // Inline function 'kotlin.UByte.toInt' call
  var this_2 = getUBlue(_this__u8e3s4);
  var b = _UByte___get_data__impl__jof9qr(this_2) & 255;
  return (0.299 * r + 0.587 * g + 0.114 * b) / 255.0;
}
function lum(_this__u8e3s4) {
  _init_properties_EnhancedLabel_kt__o8kthw();
  // Inline function 'kotlin.UByte.toInt' call
  var this_0 = getURed(_this__u8e3s4);
  var r = _UByte___get_data__impl__jof9qr(this_0) & 255;
  // Inline function 'kotlin.UByte.toInt' call
  var this_1 = getUGreen(_this__u8e3s4);
  var g = _UByte___get_data__impl__jof9qr(this_1) & 255;
  // Inline function 'kotlin.UByte.toInt' call
  var this_2 = getUBlue(_this__u8e3s4);
  var b = _UByte___get_data__impl__jof9qr(this_2) & 255;
  return 0.299 * r + 0.587 * g + 0.114 * b;
}
function getHSBColor(h, s, b) {
  _init_properties_EnhancedLabel_kt__o8kthw();
  return colorOf_3(HSBtoRGB(h, s, b));
}
var properties_initialized_EnhancedLabel_kt_cq7ape;
function _init_properties_EnhancedLabel_kt__o8kthw() {
  if (!properties_initialized_EnhancedLabel_kt_cq7ape) {
    properties_initialized_EnhancedLabel_kt_cq7ape = true;
    Black = colorOf_0(_UByte___init__impl__g9hnc4(0), _UByte___init__impl__g9hnc4(0), _UByte___init__impl__g9hnc4(0), _UByte___init__impl__g9hnc4(-1));
    White = colorOf_0(_UByte___init__impl__g9hnc4(-1), _UByte___init__impl__g9hnc4(-1), _UByte___init__impl__g9hnc4(-1), _UByte___init__impl__g9hnc4(-1));
    org_mkui_labeling_EnhancedLabel_Effect_Plain$stable = 0;
    org_mkui_labeling_EnhancedLabel_Effect_Shadow$stable = 0;
    org_mkui_labeling_EnhancedLabel_Effect_Glow$stable = 0;
    org_mkui_labeling_EnhancedLabel_Effect_Outline$stable = 0;
    org_mkui_labeling_EnhancedLabel_Effect_Emphasize$stable = 0;
    org_mkui_labeling_EnhancedLabel_Effect$stable = 0;
    org_mkui_labeling_EnhancedLabel$stable = 8;
  }
}
var org_mkui_palette_AbstractMutablePalette$stable;
var org_mkui_palette_AbstractPalette$stable;
var org_mkui_palette_CustomPalette_Entry$stable;
var org_mkui_palette_CustomPalette$stable;
var Mode_Ramps_instance;
var Mode_Bands_instance;
var Mode_entriesInitialized;
function Mode_initEntries() {
  if (Mode_entriesInitialized)
    return Unit_instance;
  Mode_entriesInitialized = true;
  Mode_Ramps_instance = new Mode('Ramps', 0);
  Mode_Bands_instance = new Mode('Bands', 1);
}
function updateFixedColorGradient($this) {
  var colors = ArrayList.q1();
  var inductionVariable = 0;
  if (inductionVariable <= 255)
    do {
      var i = inductionVariable;
      inductionVariable = inductionVariable + 1 | 0;
      var fraction = 1.0 * i / 255;
      var color = computeColor($this, fraction);
      if (!(color == null)) {
        colors.c1(color);
      }
    }
     while (inductionVariable <= 255);
  $this.h20_1 = colors;
  $this.u1d(colors.k1());
  $this.b20(new PaletteEvent());
}
function computeColor($this, fration) {
  if (!$this.z1b_1.p1()) {
    var previous = null;
    var _iterator__ex2g4s = $this.z1b_1.h1();
    while (_iterator__ex2g4s.i1()) {
      var current = _iterator__ex2g4s.j1();
      if (!(previous == null)) {
        if (previous.t1f_1 <= fration && fration <= current.t1f_1) {
          var v = (fration - previous.t1f_1) / (current.t1f_1 - previous.t1f_1);
          return interpolate($this, ensureNotNull(previous.j20()), ensureNotNull(current.j20()), v);
        }
      }
      previous = current;
    }
    if (fration < first($this.z1b_1).t1f_1) {
      return first($this.z1b_1).j20();
    }
    if (fration > last($this.z1b_1).t1f_1) {
      return last($this.z1b_1).j20();
    }
  }
  return null;
}
function interpolate($this, c1, c2, p) {
  var tmp;
  switch ($this.y1b_1.z2().g3_1) {
    case 0:
      if (p === 0.0)
        return c1;
      var tmp_0;
      if (p === 1.0) {
        tmp_0 = c2;
      } else {
        // Inline function 'kotlin.UByte.toDouble' call
        // Inline function 'kotlin.UByte.toInt' call
        var this_0 = getURed(c1);
        var tmp$ret$0 = _UByte___get_data__impl__jof9qr(this_0) & 255;
        var tmp_1 = uintToDouble(tmp$ret$0) * (1.0 - p);
        // Inline function 'kotlin.UByte.toDouble' call
        // Inline function 'kotlin.UByte.toInt' call
        var this_1 = getURed(c2);
        var tmp$ret$2 = _UByte___get_data__impl__jof9qr(this_1) & 255;
        var tmp$ret$3 = uintToDouble(tmp$ret$2);
        var tmp_2 = numberToInt(tmp_1 + tmp$ret$3 * p);
        // Inline function 'kotlin.UByte.toDouble' call
        // Inline function 'kotlin.UByte.toInt' call
        var this_2 = getUGreen(c1);
        var tmp$ret$4 = _UByte___get_data__impl__jof9qr(this_2) & 255;
        var tmp_3 = uintToDouble(tmp$ret$4) * (1.0 - p);
        // Inline function 'kotlin.UByte.toDouble' call
        // Inline function 'kotlin.UByte.toInt' call
        var this_3 = getUGreen(c2);
        var tmp$ret$6 = _UByte___get_data__impl__jof9qr(this_3) & 255;
        var tmp$ret$7 = uintToDouble(tmp$ret$6);
        var tmp_4 = numberToInt(tmp_3 + tmp$ret$7 * p);
        // Inline function 'kotlin.UByte.toDouble' call
        // Inline function 'kotlin.UByte.toInt' call
        var this_4 = getUBlue(c1);
        var tmp$ret$8 = _UByte___get_data__impl__jof9qr(this_4) & 255;
        var tmp_5 = uintToDouble(tmp$ret$8) * (1.0 - p);
        // Inline function 'kotlin.UByte.toDouble' call
        // Inline function 'kotlin.UByte.toInt' call
        var this_5 = getUBlue(c2);
        var tmp$ret$10 = _UByte___get_data__impl__jof9qr(this_5) & 255;
        var tmp$ret$11 = uintToDouble(tmp$ret$10);
        var tmp_6 = numberToInt(tmp_5 + tmp$ret$11 * p);
        // Inline function 'kotlin.UByte.toDouble' call
        // Inline function 'kotlin.UByte.toInt' call
        var this_6 = getUAlpha(c1);
        var tmp$ret$12 = _UByte___get_data__impl__jof9qr(this_6) & 255;
        var tmp_7 = uintToDouble(tmp$ret$12) * (1.0 - p);
        // Inline function 'kotlin.UByte.toDouble' call
        // Inline function 'kotlin.UByte.toInt' call
        var this_7 = getUAlpha(c2);
        var tmp$ret$14 = _UByte___get_data__impl__jof9qr(this_7) & 255;
        var tmp$ret$15 = uintToDouble(tmp$ret$14);
        tmp_0 = colorOf(tmp_2, tmp_4, tmp_6, numberToInt(tmp_7 + tmp$ret$15 * p));
      }

      tmp = tmp_0;
      break;
    case 1:
      tmp = c1;
      break;
    default:
      noWhenBranchMatchedException();
      break;
  }
  return tmp;
}
function CustomPalette$_init_$lambda_rc1wld(a, b) {
  // Inline function 'kotlin.comparisons.compareValuesBy' call
  var tmp = a.t1f_1;
  var tmp$ret$1 = b.t1f_1;
  return compareValues(tmp, tmp$ret$1);
}
function Mode_Ramps_getInstance() {
  Mode_initEntries();
  return Mode_Ramps_instance;
}
var Cycle_NONE_instance;
var Cycle_REPEAT_instance;
var Cycle_REFLECT_instance;
var Cycle_entriesInitialized;
function Cycle_initEntries() {
  if (Cycle_entriesInitialized)
    return Unit_instance;
  Cycle_entriesInitialized = true;
  Cycle_NONE_instance = new Cycle('NONE', 0);
  Cycle_REPEAT_instance = new Cycle('REPEAT', 1);
  Cycle_REFLECT_instance = new Cycle('REFLECT', 2);
}
function Cycle_NONE_getInstance() {
  Cycle_initEntries();
  return Cycle_NONE_instance;
}
var org_mkui_palette_DynamicPalette$stable;
function init_org_mkui_palette_DynamicPalette(_this__u8e3s4) {
  _this__u8e3s4.i20_1 = false;
}
var org_mkui_palette_FixedPalette$stable;
function toCPColorList($this, colors) {
  var list = ArrayList.n1(colors.length);
  var inductionVariable = 0;
  var last = colors.length;
  while (inductionVariable < last) {
    var color = colors[inductionVariable];
    inductionVariable = inductionVariable + 1 | 0;
    list.c1(colorOf_3(color));
  }
  return list;
}
var Companion_instance_54;
function Companion_getInstance_54() {
  return Companion_instance_54;
}
var org_mkui_palette_InterpolatedPalette_Entry$stable;
var org_mkui_palette_InterpolatedPalette$stable;
var Mode_Ramps_instance_0;
var Mode_Bands_instance_0;
var Mode_entriesInitialized_0;
function Mode_initEntries_0() {
  if (Mode_entriesInitialized_0)
    return Unit_instance;
  Mode_entriesInitialized_0 = true;
  Mode_Ramps_instance_0 = new Mode_0('Ramps', 0);
  Mode_Bands_instance_0 = new Mode_0('Bands', 1);
}
function updateFixedColorGradient_0($this) {
  if (!$this.entries.p1()) {
    var colors = ArrayList.q1();
    var inductionVariable = 0;
    if (inductionVariable <= 255)
      do {
        var i = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        var fraction = 1.0 * i / 255;
        var color = computeColor_0($this, fraction);
        if (!(color == null)) {
          colors.c1(color);
        } else {
          throw IllegalStateException.w3('Null color ' + fraction + ', ' + toString_0(color));
        }
      }
       while (inductionVariable <= 255);
    $this.t20_1 = colors;
    $this.u1d(colors.k1());
  } else {
    $this.t20_1 = emptyList();
    $this.u1d(0);
  }
}
function computeColor_0($this, fraction) {
  if (!$this.entries.p1()) {
    var previous = null;
    var _iterator__ex2g4s = $this.entries.h1();
    while (_iterator__ex2g4s.i1()) {
      var current = _iterator__ex2g4s.j1();
      if (!(previous == null)) {
        if (previous.fraction <= fraction && fraction <= current.fraction) {
          var v = (fraction - previous.fraction) / (current.fraction - previous.fraction);
          return interpolate_0($this, previous.getColor(), current.getColor(), v);
        }
      }
      previous = current;
    }
    if (fraction < first($this.entries).fraction) {
      return first($this.entries).getColor();
    }
    if (fraction > last($this.entries).fraction) {
      return last($this.entries).getColor();
    }
  }
  return null;
}
function interpolate_0($this, c1, c2, p) {
  var tmp;
  switch ($this.f21_1.z2().g3_1) {
    case 0:
      if (p === 0.0)
        return c1;
      var tmp_0;
      if (p === 1.0) {
        tmp_0 = c2;
      } else {
        // Inline function 'kotlin.UByte.toDouble' call
        // Inline function 'kotlin.UByte.toInt' call
        var this_0 = getURed(c1);
        var tmp$ret$0 = _UByte___get_data__impl__jof9qr(this_0) & 255;
        var tmp_1 = uintToDouble(tmp$ret$0) * (1.0 - p);
        // Inline function 'kotlin.UByte.toDouble' call
        // Inline function 'kotlin.UByte.toInt' call
        var this_1 = getURed(c2);
        var tmp$ret$2 = _UByte___get_data__impl__jof9qr(this_1) & 255;
        var tmp$ret$3 = uintToDouble(tmp$ret$2);
        var tmp_2 = numberToInt(tmp_1 + tmp$ret$3 * p);
        // Inline function 'kotlin.UByte.toDouble' call
        // Inline function 'kotlin.UByte.toInt' call
        var this_2 = getUGreen(c1);
        var tmp$ret$4 = _UByte___get_data__impl__jof9qr(this_2) & 255;
        var tmp_3 = uintToDouble(tmp$ret$4) * (1.0 - p);
        // Inline function 'kotlin.UByte.toDouble' call
        // Inline function 'kotlin.UByte.toInt' call
        var this_3 = getUGreen(c2);
        var tmp$ret$6 = _UByte___get_data__impl__jof9qr(this_3) & 255;
        var tmp$ret$7 = uintToDouble(tmp$ret$6);
        var tmp_4 = numberToInt(tmp_3 + tmp$ret$7 * p);
        // Inline function 'kotlin.UByte.toDouble' call
        // Inline function 'kotlin.UByte.toInt' call
        var this_4 = getUBlue(c1);
        var tmp$ret$8 = _UByte___get_data__impl__jof9qr(this_4) & 255;
        var tmp_5 = uintToDouble(tmp$ret$8) * (1.0 - p);
        // Inline function 'kotlin.UByte.toDouble' call
        // Inline function 'kotlin.UByte.toInt' call
        var this_5 = getUBlue(c2);
        var tmp$ret$10 = _UByte___get_data__impl__jof9qr(this_5) & 255;
        var tmp$ret$11 = uintToDouble(tmp$ret$10);
        var tmp_6 = numberToInt(tmp_5 + tmp$ret$11 * p);
        // Inline function 'kotlin.UByte.toDouble' call
        // Inline function 'kotlin.UByte.toInt' call
        var this_6 = getUAlpha(c1);
        var tmp$ret$12 = _UByte___get_data__impl__jof9qr(this_6) & 255;
        var tmp_7 = uintToDouble(tmp$ret$12) * (1.0 - p);
        // Inline function 'kotlin.UByte.toDouble' call
        // Inline function 'kotlin.UByte.toInt' call
        var this_7 = getUAlpha(c2);
        var tmp$ret$14 = _UByte___get_data__impl__jof9qr(this_7) & 255;
        var tmp$ret$15 = uintToDouble(tmp$ret$14);
        tmp_0 = colorOf(tmp_2, tmp_4, tmp_6, numberToInt(tmp_7 + tmp$ret$15 * p));
      }

      tmp = tmp_0;
      break;
    case 1:
      tmp = c1;
      break;
    default:
      noWhenBranchMatchedException();
      break;
  }
  return tmp;
}
function InterpolatedPalette$_init_$lambda_qt4r8t(a, b) {
  // Inline function 'kotlin.comparisons.compareValuesBy' call
  var tmp = a.fraction;
  var tmp$ret$1 = b.fraction;
  return compareValues(tmp, tmp$ret$1);
}
function InterpolatedPalette$_init_$lambda_qt4r8t_0(a, b) {
  // Inline function 'kotlin.comparisons.compareValuesBy' call
  var tmp = a.fraction;
  var tmp$ret$1 = b.fraction;
  return compareValues(tmp, tmp$ret$1);
}
function Mode_Ramps_getInstance_0() {
  Mode_initEntries_0();
  return Mode_Ramps_instance_0;
}
function Mode_Bands_getInstance() {
  Mode_initEntries_0();
  return Mode_Bands_instance_0;
}
var org_mkui_palette_PaletteEvent$stable;
var org_mkui_palette_PaletteFactory_Entry$stable;
var org_mkui_palette_PaletteFactory$stable;
var Companion_instance_55;
function Companion_getInstance_55() {
  if (Companion_instance_55 === VOID)
    new Companion_55();
  return Companion_instance_55;
}
var PaletteType_SEQUENTIAL_instance;
var PaletteType_DIVERGING_instance;
var PaletteType_QUALITATIVE_instance;
var PaletteType_entriesInitialized;
function PaletteType_initEntries() {
  if (PaletteType_entriesInitialized)
    return Unit_instance;
  PaletteType_entriesInitialized = true;
  PaletteType_SEQUENTIAL_instance = new PaletteType('SEQUENTIAL', 0);
  PaletteType_DIVERGING_instance = new PaletteType('DIVERGING', 1);
  PaletteType_QUALITATIVE_instance = new PaletteType('QUALITATIVE', 2);
}
function PaletteType_SEQUENTIAL_getInstance() {
  PaletteType_initEntries();
  return PaletteType_SEQUENTIAL_instance;
}
function PaletteType_DIVERGING_getInstance() {
  PaletteType_initEntries();
  return PaletteType_DIVERGING_instance;
}
function PaletteType_QUALITATIVE_getInstance() {
  PaletteType_initEntries();
  return PaletteType_QUALITATIVE_instance;
}
var org_mkui_property_ObservableManager$stable;
var org_mkui_property_ObservableValue$stable;
var org_mkui_property_Observable$stable;
var org_mkui_rubberband_RubberbandDrawing$stable;
var org_mkui_rubberband_ScreenTransformRubberBand$stable;
var org_mkui_rubberband_SimpleRubberBand$stable;
var org_mkui_transform_AbstractMutableTwoDScreenTransform$stable;
var org_mkui_transform_AbstractTwoDScreenTransform$stable;
var org_mkui_transform_SimpleTwoDScreenTransform$stable;
function updateAspectRatio($this) {
  var width = $this.k24_1;
  var height = $this.l24_1 * $this.r24_1;
  if ($this.q24_1 && !(width === height)) {
    if (width < height) {
      $this.o24_1.y15(0);
      $this.p24_1.y15(numberToInt($this.l24_1 - $this.k24_1 / $this.r24_1));
    } else {
      $this.o24_1.y15(numberToInt($this.k24_1 - $this.l24_1 * $this.r24_1));
      $this.p24_1.y15(0);
    }
  }
}
function init_org_mkui_transform_SimpleTwoDScreenTransform(_this__u8e3s4) {
  _this__u8e3s4.q24_1 = false;
  var tmp = _this__u8e3s4;
  tmp.s24_1 = new SimpleTwoDScreenTransform$intervalListener$1(_this__u8e3s4);
}
var org_mkui_visual_AbstractVisual$stable;
var org_mkui_canvas_CPCanvas$stable;
var com_macrofocus_crossplatform_client_layer_ElementalAveragingGWTLayer$stable;
var org_mkui_canvas_ElementalBufferedGWTLayer$stable;
var org_mkui_canvas_ElementalCanvasHandler_ElementalMouseEvent$stable;
var org_mkui_canvas_ElementalCanvasHandler_ElementalKeyEvent$stable;
var org_mkui_canvas_ElementalCanvasHandler$stable;
var com_macrofocus_crossplatform_client_layer_ElementalDensityGWTLayer$stable;
var org_mkui_canvas_ElementalDirectGWTLayer$stable;
var org_mkui_canvas_ElementalFontMetrics$stable;
var org_mkui_canvas_ElementalIGraphics$stable;
var org_mkui_canvas_FunctionalCPCanvas$stable;
function prepare($this) {
  $this.y25_1.i19();
  var width = $this.e26_1;
  var height = $this.f26_1;
  var dirtyLayers;
  // Inline function 'kotlin.run' call
  dirtyLayers = ArrayList.s($this.w25_1);
  $this.w25_1.u4();
  var _iterator__ex2g4s = dirtyLayers.h1();
  while (_iterator__ex2g4s.i1()) {
    var layer = _iterator__ex2g4s.j1();
    layer.u26(width, height);
  }
  $this.y25_1.j19();
  $this.v26();
}
function _get_resizeObserver__wzddgf($this) {
  var tmp = $this.c26_1;
  if (!(tmp == null))
    return tmp;
  else {
    throwUninitializedPropertyAccessException('resizeObserver');
  }
}
function paintTheCanvas($this) {
  $this.z25_1.i19();
  var tmp0_safe_receiver = $this.k26_1;
  if (tmp0_safe_receiver == null)
    null;
  else {
    // Inline function 'kotlin.apply' call
    $this.w26(tmp0_safe_receiver);
    var _iterator__ex2g4s = $this.t25_1.h1();
    while (_iterator__ex2g4s.i1()) {
      var i = _iterator__ex2g4s.j1();
      i.x26(tmp0_safe_receiver);
    }
    $this.z25_1.j19();
    if ($this.v25_1.z2()) {
      tmp0_safe_receiver.fillStyle = 'red';
      var y = $this.f26_1;
      y = y - 12.0;
      tmp0_safe_receiver.fillText('Prepare: ' + $this.y25_1.f19().toString() + ' ms', 5.0, y);
      y = y - 12;
      tmp0_safe_receiver.fillText('Render: ' + $this.z25_1.f19().toString() + ' ms', 5.0, y);
      y = y - 12;
      tmp0_safe_receiver.fillText('Interact: ' + $this.a26_1.f19().toString() + ' ms', 5.0, y);
    }
  }
}
function findDesiredScaleFactor($this) {
  return window.devicePixelRatio;
}
function publishData($this, canvasRef, canvas) {
  var width = canvas.clientWidth;
  var height = canvas.clientHeight;
  println('client=' + canvas.clientWidth + 'x' + canvas.clientHeight + ', offset=' + canvas.offsetWidth + 'x' + canvas.offsetHeight + ', offset=' + canvas.scrollWidth + 'x' + canvas.scrollHeight);
  println('publishData from ' + toString_1(canvasRef) + ' ' + width + 'x' + height);
  var scaleFactor = findDesiredScaleFactor($this);
  var dim = canvas.getBoundingClientRect();
  if ($this.b27(width, height, scaleFactor)) {
    $this.y26(canvasRef, width, height, scaleFactor);
    $this.z26(width, height);
    $this.a27();
  }
}
function FunctionalCPCanvas$redraw$lambda(this$0) {
  return (it) => {
    paintTheCanvas(this$0);
    return Unit_instance;
  };
}
function FunctionalCPCanvas$nativeComponent$lambda$lambda$lambda(this$0, $canvasRef, $targetContainer) {
  return (_unused_var__etf5q3, _unused_var__etf5q3_0) => {
    publishData(this$0, $canvasRef, $targetContainer);
    return Unit_instance;
  };
}
function FunctionalCPCanvas$nativeComponent$lambda$lambda$lambda_0($targetContainer, this$0) {
  return () => {
    println('Unmount ' + toString_1($targetContainer));
    _get_resizeObserver__wzddgf(this$0).disconnect();
    return Unit_instance;
  };
}
function FunctionalCPCanvas$nativeComponent$lambda$lambda($canvasRef, this$0) {
  return ($this$useEffectWithCleanup) => {
    var targetContainer = ensureNotNull($canvasRef.current);
    println('Mount ' + toString_1(targetContainer));
    var tmp = this$0;
    var tmp0_safe_receiver = $canvasRef.current;
    var tmp_0;
    if (tmp0_safe_receiver == null) {
      tmp_0 = null;
    } else {
      // Inline function 'web.canvas.ID' call
      // Inline function 'js.reflect.unsafeCast' call
      // Inline function 'kotlin.js.unsafeCast' call
      // Inline function 'kotlin.js.asDynamic' call
      tmp_0 = tmp0_safe_receiver.getContext('2d');
    }
    tmp.k26_1 = tmp_0;
    var tmp_1 = this$0;
    tmp_1.c26_1 = new ResizeObserver(FunctionalCPCanvas$nativeComponent$lambda$lambda$lambda(this$0, $canvasRef, targetContainer));
    _get_resizeObserver__wzddgf(this$0).observe(targetContainer);
    new CPInteractiveHandler(targetContainer, this$0.d26_1, this$0.a26_1);
    $this$useEffectWithCleanup.push(FunctionalCPCanvas$nativeComponent$lambda$lambda$lambda_0(targetContainer, this$0));
    return Unit_instance;
  };
}
function FunctionalCPCanvas$nativeComponent$lambda$lambda_0($canvasRef) {
  return ($this$canvas) => {
    // Inline function 'web.cssom.ClassName' call
    // Inline function 'js.reflect.unsafeCast' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    $this$canvas.className = 'canvas';
    // Inline function 'js.objects.unsafeJso' call
    // Inline function 'js.objects.unsafeJso' call
    // Inline function 'kotlin.apply' call
    var this_0 = {};
    // Inline function 'web.cssom.pct' call
    // Inline function 'js.reflect.unsafeCast' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    this_0.width = toString_1(100) + '%';
    // Inline function 'web.cssom.pct' call
    // Inline function 'js.reflect.unsafeCast' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    this_0.height = toString_1(100) + '%';
    // Inline function 'web.cssom.Position.Companion.absolute' call
    this_0.position = 'absolute';
    // Inline function 'web.cssom.px' call
    // Inline function 'js.reflect.unsafeCast' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    this_0.left = toString_1(0) + 'px';
    // Inline function 'web.cssom.px' call
    // Inline function 'js.reflect.unsafeCast' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    this_0.right = toString_1(0) + 'px';
    // Inline function 'web.cssom.px' call
    // Inline function 'js.reflect.unsafeCast' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    this_0.top = toString_1(0) + 'px';
    // Inline function 'web.cssom.px' call
    // Inline function 'js.reflect.unsafeCast' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    this_0.bottom = toString_1(0) + 'px';
    // Inline function 'web.cssom.pct' call
    // Inline function 'js.reflect.unsafeCast' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    this_0.maxWidth = toString_1(100) + '%';
    // Inline function 'web.cssom.pct' call
    // Inline function 'js.reflect.unsafeCast' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    this_0.maxHeight = toString_1(100) + '%';
    // Inline function 'web.cssom.ObjectFit.Companion.contain' call
    this_0.objectFit = 'contain';
    // Inline function 'web.cssom.Auto.Companion.auto' call
    this_0.pointerEvents = 'auto';
    $this$canvas.style = this_0;
    $this$canvas.ref = $canvasRef;
    return Unit_instance;
  };
}
function FunctionalCPCanvas$nativeComponent$lambda(this$0) {
  return ($this$FC, it) => {
    var canvasRef = useRef();
    useEffectWithCleanup(FunctionalCPCanvas$nativeComponent$lambda$lambda(canvasRef, this$0));
    // Inline function 'react.dom.html.ReactHTML.canvas' call
    // Inline function 'react.IntrinsicType' call
    // Inline function 'js.reflect.unsafeCast' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    // Inline function 'react.ChildrenBuilder.invoke' call
    var block = FunctionalCPCanvas$nativeComponent$lambda$lambda_0(canvasRef);
    addChild_0($this$FC, 'canvas', block);
    return Unit_instance;
  };
}
var org_mkui_canvas_JSMouseEvent$stable;
var org_mkui_canvas_ResizeObserver$stable;
function colorOf(r, g, b, a) {
  return CPColor.t27(r, g, b, a);
}
function colorOf_0(r, g, b, a) {
  return CPColor.u27(r, g, b, a);
}
function getURed(_this__u8e3s4) {
  return _this__u8e3s4.o27_1;
}
function getUGreen(_this__u8e3s4) {
  return _this__u8e3s4.p27_1;
}
function getUBlue(_this__u8e3s4) {
  return _this__u8e3s4.q27_1;
}
function getUAlpha(_this__u8e3s4) {
  return _this__u8e3s4.r27_1;
}
function colorOf_1(r, g, b) {
  return CPColor.v27(r, g, b);
}
function colorOf_2(r, g, b) {
  return CPColor.w27(r, g, b);
}
function colorOf_3(rgba) {
  return CPColor.x27(rgba);
}
function colorOf_4(r, g, b) {
  return CPColor.y27(r, g, b);
}
var org_mkui_color_MkColorFactory$stable;
var Companion_instance_56;
function Companion_getInstance_56() {
  if (Companion_instance_56 === VOID)
    new Companion_56();
  return Companion_instance_56;
}
function MkColorFactory$white$delegate$lambda() {
  return colorOf_4(_UByte___init__impl__g9hnc4(-1), _UByte___init__impl__g9hnc4(-1), _UByte___init__impl__g9hnc4(-1));
}
function MkColorFactory$_get_white_$ref_49ijo8() {
  return (p0) => p0.r1b();
}
function MkColorFactory$lightGray$delegate$lambda() {
  return colorOf_4(_UByte___init__impl__g9hnc4(-64), _UByte___init__impl__g9hnc4(-64), _UByte___init__impl__g9hnc4(-64));
}
function MkColorFactory$_get_lightGray_$ref_c3gn8o() {
  return (p0) => p0.z27();
}
function MkColorFactory$gray$delegate$lambda() {
  return colorOf_4(_UByte___init__impl__g9hnc4(-128), _UByte___init__impl__g9hnc4(-128), _UByte___init__impl__g9hnc4(-128));
}
function MkColorFactory$_get_gray_$ref_di7bka() {
  return (p0) => p0.n1e();
}
function MkColorFactory$darkGray$delegate$lambda() {
  return colorOf_4(_UByte___init__impl__g9hnc4(64), _UByte___init__impl__g9hnc4(64), _UByte___init__impl__g9hnc4(64));
}
function MkColorFactory$_get_darkGray_$ref_syni1s() {
  return (p0) => p0.a28();
}
function MkColorFactory$black$delegate$lambda() {
  return colorOf_4(_UByte___init__impl__g9hnc4(0), _UByte___init__impl__g9hnc4(0), _UByte___init__impl__g9hnc4(0));
}
function MkColorFactory$_get_black_$ref_r3mqym() {
  return (p0) => p0.b28();
}
var org_mkui_color_crossplatform_CPColor$stable;
var org_mkui_component_CPComponentWrapper$stable;
var org_mkui_component_CPInteractiveHandler_ElementalMouseEvent$stable;
var org_mkui_component_CPInteractiveHandler_ElementalKeyEvent$stable;
var org_mkui_component_CPInteractiveHandler$stable;
function CPInteractiveHandler$onmousedrag$lambda(this$0) {
  return (it) => {
    var _iterator__ex2g4s = this$0.f28_1.u1g_1.h1();
    while (_iterator__ex2g4s.i1()) {
      var mouseMotionListener = _iterator__ex2g4s.j1();
      if (!(mouseMotionListener == null)) {
        mouseMotionListener.m28(new JSMouseEvent(it, 0));
      }
    }
    it.stopPropagation();
    return Unit_instance;
  };
}
function CPInteractiveHandler$registerMouseListener$lambda(this$0) {
  return (it) => {
    var _iterator__ex2g4s = this$0.f28_1.t1g_1.h1();
    while (_iterator__ex2g4s.i1()) {
      var l = _iterator__ex2g4s.j1();
      if (!(l == null)) {
        l.n28(new JSMouseEvent(it, 0));
        if (this$0.j28_1) {
          this$0.o28();
        }
        l.p28(new JSMouseEvent(it, 0));
      }
    }
    return Unit_instance;
  };
}
function CPInteractiveHandler$registerMouseListener$lambda_0(this$0) {
  return (it) => {
    var tmp;
    if (!this$0.j28_1) {
      this$0.q28();
      tmp = Unit_instance;
    }
    var _iterator__ex2g4s = this$0.f28_1.t1g_1.h1();
    while (_iterator__ex2g4s.i1()) {
      var l = _iterator__ex2g4s.j1();
      if (!(l == null)) {
        l.r28(new JSMouseEvent(it, 1));
      }
    }
    return Unit_instance;
  };
}
function CPInteractiveHandler$registerMouseListener$lambda_1(this$0) {
  return (it) => {
    var tmp;
    if (!this$0.i28_1) {
      this$0.i28_1 = true;
      var tmp_0;
      if (!this$0.j28_1) {
        var _iterator__ex2g4s = this$0.f28_1.t1g_1.h1();
        while (_iterator__ex2g4s.i1()) {
          var l = _iterator__ex2g4s.j1();
          if (!(l == null)) {
            l.s28(new JSMouseEvent(it, 0));
          }
        }
        tmp_0 = Unit_instance;
      }
      tmp = tmp_0;
    }
    return Unit_instance;
  };
}
function CPInteractiveHandler$registerMouseListener$lambda_2(this$0) {
  return (it) => {
    this$0.i28_1 = false;
    var tmp;
    if (!this$0.j28_1) {
      var _iterator__ex2g4s = this$0.f28_1.t1g_1.h1();
      while (_iterator__ex2g4s.i1()) {
        var l = _iterator__ex2g4s.j1();
        if (!(l == null)) {
          l.t28(new JSMouseEvent(it, 0));
        }
      }
      tmp = Unit_instance;
    }
    return Unit_instance;
  };
}
function CPInteractiveHandler$registerMouseListener$lambda_3(this$0) {
  return (it) => {
    var _iterator__ex2g4s = this$0.f28_1.t1g_1.h1();
    while (_iterator__ex2g4s.i1()) {
      var l = _iterator__ex2g4s.j1();
      if (!(l == null)) {
        l.r28(new JSMouseEvent(it, 2));
      }
    }
    return Unit_instance;
  };
}
function CPInteractiveHandler$registerMouseMotionListener$lambda(this$0) {
  return (it) => {
    var tmp0_safe_receiver = this$0.g28_1;
    if (tmp0_safe_receiver == null)
      null;
    else {
      tmp0_safe_receiver.i19();
    }
    var tmp;
    if (!this$0.j28_1) {
      var _iterator__ex2g4s = this$0.f28_1.u1g_1.h1();
      while (_iterator__ex2g4s.i1()) {
        var l = _iterator__ex2g4s.j1();
        if (!(l == null)) {
          l.u28(new JSMouseEvent(it, 0));
        }
      }
      tmp = Unit_instance;
    }
    var tmp1_safe_receiver = this$0.g28_1;
    var tmp_0;
    if (tmp1_safe_receiver == null) {
      tmp_0 = null;
    } else {
      tmp1_safe_receiver.j19();
      tmp_0 = Unit_instance;
    }
    return tmp_0;
  };
}
function CPInteractiveHandler$registerMouseWheelListener$lambda(this$0) {
  return (it) => {
    it.preventDefault();
    var _iterator__ex2g4s = this$0.f28_1.v1g_1.h1();
    while (_iterator__ex2g4s.i1()) {
      var l = _iterator__ex2g4s.j1();
      if (!(l == null)) {
        l.x28(new CPInteractiveHandler$registerMouseWheelListener$2$1(it));
      }
    }
    return Unit_instance;
  };
}
function CPInteractiveHandler$registerKeyListener$lambda(this$0) {
  return (it) => {
    var code = -1;
    var tmp;
    if (code >= 0) {
      var _iterator__ex2g4s = this$0.f28_1.w1g_1.h1();
      while (_iterator__ex2g4s.i1()) {
        var l = _iterator__ex2g4s.j1();
        if (!(l == null)) {
          l.y28(new ElementalKeyEvent(get_keyCode(it)));
        }
      }
      tmp = Unit_instance;
    }
    return Unit_instance;
  };
}
function CPInteractiveHandler$registerContextMenuListener$lambda(this$0) {
  return (it) => {
    it.preventDefault();
    it.stopPropagation();
    var _iterator__ex2g4s = this$0.f28_1.x1g_1.h1();
    while (_iterator__ex2g4s.i1()) {
      var l = _iterator__ex2g4s.j1();
      if (!(l == null)) {
        l.a29(new CPInteractiveHandler$registerContextMenuListener$2$1(it));
      }
    }
    return Unit_instance;
  };
}
var org_mkui_component_CPSeparator$stable;
var org_mkui_component_FunctionalReactComponent$stable;
var org_mkui_component_ReactComponent$stable;
var org_mkui_component_absolute_AbsoluteCPContainer$stable;
var org_mkui_component_button_CPButton$stable;
var org_mkui_component_button_CPCheckBox$stable;
var org_mkui_component_button_CPCollapseButton$stable;
var org_mkui_component_button_CPComboBox$stable;
var org_mkui_component_button_CPRadioButtons$stable;
var org_mkui_component_button_CPSplitMenuButton$stable;
var org_mkui_component_button_CPSwitch$stable;
var org_mkui_component_input_CPColorPicker$stable;
var org_mkui_component_input_CPFontPicker$stable;
var org_mkui_component_input_CPSlider$stable;
var org_mkui_component_input_CPSpinner$stable;
var org_mkui_component_label_CPLabel$stable;
var org_mkui_component_list_CPCheckBoxList$stable;
var org_mkui_component_menu_CPMenu$stable;
var org_mkui_component_menu_CPMenuBar$stable;
var org_mkui_component_menu_CPPopupMenu$stable;
var org_mkui_component_panel_CPCollapse$stable;
var org_mkui_component_panel_CPFillMiddlePanel$stable;
var org_mkui_component_panel_CPFormPanel$stable;
var org_mkui_component_panel_CPGridPanel$stable;
var org_mkui_component_panel_CPOverlayPanel$stable;
var org_mkui_component_panel_CPVerticalFillMiddlePanel$stable;
var org_mkui_component_panel_CPVerticalFlowPanel$stable;
var org_mkui_component_panel_CPVerticalPanel$stable;
var org_mkui_font_CPFontFactory$stable;
var Companion_instance_57;
function Companion_getInstance_57() {
  if (Companion_instance_57 === VOID)
    new Companion_57();
  return Companion_instance_57;
}
function getFontSize(_this__u8e3s4) {
  return _this__u8e3s4.p29();
}
var org_mkui_font_crossplatform_CPFont$stable;
function _get_name__das4rk($this) {
  var tmp0 = $this.o29_1;
  var tmp = KProperty1;
  // Inline function 'kotlin.getValue' call
  getPropertyCallableRef('name', 1, tmp, CPFont$_get_name_$ref_k27047(), null);
  return tmp0.z2();
}
function CPFont$name$delegate$lambda(this$0) {
  return () => {
    var html = StringBuilder.y();
    if (this$0.m29_1 === Weight_BOLD_getInstance()) {
      html.qa('bold ');
    } else if (this$0.n29_1 === Posture_ITALIC_getInstance()) {
      html.qa('italic ');
    } else {
      html.qa('normal ');
    }
    html.qa((this$0.l29_1 * 72 / 96).toString() + 'pt ');
    var tmp;
    if (!(this$0.k29_1 == null)) {
      html.qa(this$0.k29_1);
      tmp = Unit_instance;
    }
    return html.toString();
  };
}
function CPFont$_get_name_$ref_k27047() {
  return (p0) => _get_name__das4rk(p0);
}
var org_mkui_graphics_CPGraphics$stable;
var org_mkui_graphics_CPGraphicsContext2D$stable;
var org_mkui_graphics_CPHeadless$stable;
var org_mkui_graphics_CPImage$stable;
function _get__nativeImage__47l87u($this) {
  return ensureNotNull($this.v29_1);
}
var org_mkui_graphics_CPImageFactory$stable;
var CPImageFactory_instance;
function CPImageFactory_getInstance() {
  if (CPImageFactory_instance === VOID)
    new CPImageFactory();
  return CPImageFactory_instance;
}
var org_mkui_graphics_CanvasRenderingContext2DFontMetrics$stable;
var org_mkui_graphics_CanvasRenderingContext2DIGraphics$stable;
var org_mkui_graphics_CanvasRenderingContext2DTextMetrics$stable;
var org_mkui_react_ReactStateInstance$stable;
var org_mkui_window_CPWindow$stable;
function get_keyCode(_this__u8e3s4) {
  // Inline function 'kotlin.js.asDynamic' call
  return _this__u8e3s4.keyCode;
}
var Companion_instance_58;
function Companion_getInstance_58() {
  return Companion_instance_58;
}
function get_0($this, path) {
  return new Dice(path.slice());
}
var Companion_instance_59;
function Companion_getInstance_59() {
  return Companion_instance_59;
}
function get_1($this, path) {
  return new Dimensions(path.slice());
}
var Companion_instance_60;
function Companion_getInstance_60() {
  return Companion_instance_60;
}
var GroupFactory_instance;
function GroupFactory_getInstance() {
  return GroupFactory_instance;
}
function init_org_molap_aggregates_cube_LinkedGroup(_this__u8e3s4) {
  _this__u8e3s4.q2b_1 = null;
}
var Companion_instance_61;
function Companion_getInstance_61() {
  if (Companion_instance_61 === VOID)
    new Companion_61();
  return Companion_instance_61;
}
var Companion_instance_62;
function Companion_getInstance_62() {
  return Companion_instance_62;
}
function run($this) {
  $this.t2d_1 = false;
  var groups = ArrayList.q1();
  var _iterator__ex2g4s = ensureNotNull(ensureNotNull($this.b2e()).a2d()).h1();
  while (_iterator__ex2g4s.i1()) {
    var group = _iterator__ex2g4s.j1();
    groups.c1(group);
  }
  $this.i2e_1 = groups;
}
function init_org_molap_aggregates_query_CuboidQuery(_this__u8e3s4) {
  _this__u8e3s4.e2e_1 = null;
  _this__u8e3s4.f2e_1 = null;
  _this__u8e3s4.g2e_1 = null;
  _this__u8e3s4.i2e_1 = null;
  var tmp = _this__u8e3s4;
  tmp.j2e_1 = new CuboidQuery$queryListener$1(_this__u8e3s4);
  var tmp_0 = _this__u8e3s4;
  tmp_0.k2e_1 = new CuboidQuery$dataFrameListener$1(_this__u8e3s4);
}
function _get_cacheRowIndex__mo0sbb($this) {
  if ($this.t2e_1 == null) {
    // Inline function 'kotlin.arrayOfNulls' call
    var size = ensureNotNull($this.r2e_1.a2d()).k1();
    var groups = Array(size);
    var i = 0;
    var _iterator__ex2g4s = ensureNotNull($this.r2e_1.a2d()).h1();
    while (_iterator__ex2g4s.i1()) {
      var g = _iterator__ex2g4s.j1();
      var _unary__edvuaz = i;
      i = _unary__edvuaz + 1 | 0;
      groups[_unary__edvuaz] = isInterface(g, Group) ? g : THROW_CCE();
    }
    $this.t2e_1 = DefaultUniqueIndex.x2e(groups.slice());
  }
  return $this.t2e_1;
}
function _get_cacheColumnIndex__9igbhr($this) {
  if ($this.u2e_1 == null) {
    // Inline function 'kotlin.arrayOfNulls' call
    var size = $this.y2e();
    var names = Array(size);
    var inductionVariable = 0;
    var last = $this.y2e();
    if (inductionVariable < last)
      do {
        var c = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        names[c] = $this.z2e(c);
      }
       while (inductionVariable < last);
    $this.u2e_1 = DefaultUniqueIndex.x2e(names.slice());
  }
  return $this.u2e_1;
}
function get_2($this, path) {
  return new Structure(taggedArrayCopy(path));
}
var Companion_instance_63;
function Companion_getInstance_63() {
  return Companion_instance_63;
}
var Companion_instance_64;
function Companion_getInstance_64() {
  return Companion_instance_64;
}
function AbstractDataFrame$cube$delegate$lambda(this$0) {
  return () => new InMemoryCube(isInterface(this$0, DataFrame) ? this$0 : THROW_CCE());
}
function AbstractDataFrame$_get_cube_$ref_umz014() {
  return (p0) => p0.v2c();
}
var DataFrameHelper_instance;
function DataFrameHelper_getInstance() {
  return DataFrameHelper_instance;
}
function createSeries($this, dataFrame, column) {
  var columnClass = dataFrame.g2f(column);
  if (columnClass.equals(PrimitiveClasses_getInstance().yc())) {
    var values = new Int32Array(dataFrame.e2g());
    var available = booleanArray(dataFrame.e2g());
    var inductionVariable = 0;
    var last = dataFrame.e2g();
    if (inductionVariable < last)
      do {
        var r = inductionVariable;
        inductionVariable = inductionVariable + 1 | 0;
        var tmp = dataFrame.x2f(dataFrame.b2g(r), column);
        var valueAt = (tmp == null ? true : typeof tmp === 'number') ? tmp : THROW_CCE();
        if (!(valueAt == null)) {
          available[r] = true;
          values[r] = valueAt;
        } else {
          available[r] = false;
        }
      }
       while (inductionVariable < last);
    var tmp_0 = Companion_getInstance_66().l2h(values, available);
    return isInterface(tmp_0, MutableSeries) ? tmp_0 : THROW_CCE();
  } else if (columnClass.equals(PrimitiveClasses_getInstance().zc())) {
    var values_0 = new BigInt64Array(dataFrame.e2g());
    var available_0 = booleanArray(dataFrame.e2g());
    var inductionVariable_0 = 0;
    var last_0 = dataFrame.e2g();
    if (inductionVariable_0 < last_0)
      do {
        var r_0 = inductionVariable_0;
        inductionVariable_0 = inductionVariable_0 + 1 | 0;
        var tmp_1 = dataFrame.x2f(dataFrame.b2g(r_0), column);
        var valueAt_0 = (tmp_1 == null ? true : typeof tmp_1 === 'bigint') ? tmp_1 : THROW_CCE();
        if (!(valueAt_0 == null)) {
          available_0[r_0] = true;
          values_0[r_0] = valueAt_0;
        } else {
          available_0[r_0] = false;
        }
      }
       while (inductionVariable_0 < last_0);
    var tmp_2 = Companion_getInstance_66().k2h(values_0, available_0);
    return isInterface(tmp_2, MutableSeries) ? tmp_2 : THROW_CCE();
  } else if (columnClass.equals(PrimitiveClasses_getInstance().ad())) {
    var values_1 = new Float32Array(dataFrame.e2g());
    var available_1 = booleanArray(dataFrame.e2g());
    var inductionVariable_1 = 0;
    var last_1 = dataFrame.e2g();
    if (inductionVariable_1 < last_1)
      do {
        var r_1 = inductionVariable_1;
        inductionVariable_1 = inductionVariable_1 + 1 | 0;
        var tmp_3 = dataFrame.x2f(dataFrame.b2g(r_1), column);
        var valueAt_1 = (tmp_3 == null ? true : typeof tmp_3 === 'number') ? tmp_3 : THROW_CCE();
        if (!(valueAt_1 == null)) {
          available_1[r_1] = true;
          values_1[r_1] = valueAt_1;
        } else {
          available_1[r_1] = false;
        }
      }
       while (inductionVariable_1 < last_1);
    var tmp_4 = Companion_getInstance_66().j2h(values_1, available_1);
    return isInterface(tmp_4, MutableSeries) ? tmp_4 : THROW_CCE();
  } else if (columnClass.equals(PrimitiveClasses_getInstance().bd())) {
    var values_2 = new Float64Array(dataFrame.e2g());
    var available_2 = booleanArray(dataFrame.e2g());
    var inductionVariable_2 = 0;
    var last_2 = dataFrame.e2g();
    if (inductionVariable_2 < last_2)
      do {
        var r_2 = inductionVariable_2;
        inductionVariable_2 = inductionVariable_2 + 1 | 0;
        var tmp_5 = dataFrame.x2f(dataFrame.b2g(r_2), column);
        var valueAt_2 = (tmp_5 == null ? true : typeof tmp_5 === 'number') ? tmp_5 : THROW_CCE();
        if (!(valueAt_2 == null)) {
          available_2[r_2] = true;
          values_2[r_2] = valueAt_2;
        } else {
          available_2[r_2] = false;
        }
      }
       while (inductionVariable_2 < last_2);
    var tmp_6 = Companion_getInstance_66().i2h(values_2, available_2);
    return isInterface(tmp_6, Series) ? tmp_6 : THROW_CCE();
  } else {
    var tmp_7 = 0;
    var tmp_8 = dataFrame.e2g();
    // Inline function 'kotlin.arrayOfNulls' call
    var tmp_9 = Array(tmp_8);
    while (tmp_7 < tmp_8) {
      var tmp_10 = tmp_7;
      var tmp_11 = dataFrame.x2f(dataFrame.b2g(tmp_10), column);
      var valueAt_3 = (tmp_11 == null ? true : !(tmp_11 == null)) ? tmp_11 : THROW_CCE();
      var tmp_12;
      if (!(valueAt_3 === Companion_getInstance_61().p2d_1)) {
        tmp_12 = valueAt_3;
      } else {
        tmp_12 = null;
      }
      tmp_9[tmp_10] = tmp_12;
      tmp_7 = tmp_7 + 1 | 0;
    }
    var values_3 = tmp_9;
    var tmp_13 = Companion_getInstance_66().h2h(values_3, columnClass);
    return isInterface(tmp_13, Series) ? tmp_13 : THROW_CCE();
  }
}
function DefaultUniqueIndex$Lazy$indexDelegate$lambda(this$0) {
  return () => this$0.n2i();
}
function DefaultUniqueIndex$Lazy$_get_index_$ref_czlexq() {
  return (p0) => p0.o2i();
}
function DefaultUniqueIndex$Lazy$listDelegate$lambda(this$0) {
  return () => this$0.p2i();
}
function DefaultUniqueIndex$Lazy$_get_list_$ref_cf7120() {
  return (p0) => p0.q2i();
}
var Companion_instance_65;
function Companion_getInstance_65() {
  return Companion_instance_65;
}
function init_org_molap_index_DefaultUniqueIndex(_this__u8e3s4) {
}
var Duplicate_RemoveFirst_instance;
var Duplicate_RemoveLast_instance;
var Duplicate_UseFirst_instance;
var Duplicate_UseFirstWarn_instance;
var Duplicate_UseLast_instance;
var Duplicate_ThrowException_instance;
var Duplicate_entriesInitialized;
function Duplicate_initEntries() {
  if (Duplicate_entriesInitialized)
    return Unit_instance;
  Duplicate_entriesInitialized = true;
  Duplicate_RemoveFirst_instance = new Duplicate('RemoveFirst', 0);
  Duplicate_RemoveLast_instance = new Duplicate('RemoveLast', 1);
  Duplicate_UseFirst_instance = new Duplicate('UseFirst', 2);
  Duplicate_UseFirstWarn_instance = new Duplicate('UseFirstWarn', 3);
  Duplicate_UseLast_instance = new Duplicate('UseLast', 4);
  Duplicate_ThrowException_instance = new Duplicate('ThrowException', 5);
}
function Duplicate_UseFirstWarn_getInstance() {
  Duplicate_initEntries();
  return Duplicate_UseFirstWarn_instance;
}
function init_org_molap_series_DefaultSeries(_this__u8e3s4) {
}
function init_org_molap_series_DoubleSeries(_this__u8e3s4) {
}
function init_org_molap_series_FloatSeries(_this__u8e3s4) {
}
function init_org_molap_series_IntegerSeries(_this__u8e3s4) {
}
function init_org_molap_series_LongSeries(_this__u8e3s4) {
}
function buildInteger($this, values, available) {
  return IntegerSeries.b2k(values, available);
}
function buildLong($this, values, available) {
  return LongSeries.g2k(values, available);
}
function buildFloat($this, values, available) {
  return FloatSeries.w2j(values, available);
}
function buildDouble($this, values, available) {
  return DoubleSeries.q2j(values, available);
}
function build($this, values, type) {
  return DefaultSeries.l2j(values, VOID, type);
}
var Companion_instance_66;
function Companion_getInstance_66() {
  if (Companion_instance_66 === VOID)
    new Companion_66();
  return Companion_instance_66;
}
function getObject($this, value) {
  var tmp;
  if (!(value == null)) {
    var tmp_0;
    if (typeof value === 'string') {
      tmp_0 = typeof value === 'string' ? value : THROW_CCE();
    } else {
      if (isNumber(value)) {
        tmp_0 = isNumber(value) ? value : THROW_CCE();
      } else {
        if (typeof value === 'boolean') {
          tmp_0 = typeof value === 'boolean' ? value : THROW_CCE();
        } else {
          if (isArray(value)) {
            var array = isArray(value) ? value : THROW_CCE();
            // Inline function 'kotlin.arrayOfNulls' call
            var size = array.length;
            var a = Array(size);
            var inductionVariable = 0;
            var last = array.length;
            if (inductionVariable < last)
              do {
                var i = inductionVariable;
                inductionVariable = inductionVariable + 1 | 0;
                a[i] = getObject($this, array[i]);
              }
               while (inductionVariable < last);
            tmp_0 = a;
          } else {
            if (isInterface(value, KtMap)) {
              tmp_0 = isInterface(value, KtMap) ? value : THROW_CCE();
            } else {
              if (value == null) {
                tmp_0 = null;
              } else {
                tmp_0 = toString_1(value);
              }
            }
          }
        }
      }
    }
    tmp = tmp_0;
  } else {
    tmp = null;
  }
  return tmp;
}
function getClass($this, value) {
  var tmp;
  if (value == null) {
    tmp = null;
  } else {
    if (typeof value === 'string') {
      tmp = PrimitiveClasses_getInstance().dd();
    } else {
      if (typeof value === 'number') {
        tmp = PrimitiveClasses_getInstance().bd();
      } else {
        if (typeof value === 'boolean') {
          tmp = PrimitiveClasses_getInstance().vc();
        } else {
          if (isArray(value)) {
            tmp = PrimitiveClasses_getInstance().cd();
          } else {
            if (isInterface(value, KtMap)) {
              tmp = getKClass(KtMap);
            } else {
              tmp = PrimitiveClasses_getInstance().dd();
            }
          }
        }
      }
    }
  }
  return tmp;
}
function JsonDataFrame$rowIndex$delegate$lambda(this$0) {
  return () => IntegerRangeUniqueIndex.t2h(0, this$0.j2k_1.length - 1 | 0);
}
function JsonDataFrame$_get_rowIndex_$ref_np9oyz() {
  return (p0) => p0.s2f();
}
function JsonDataFrame$columnIndex$delegate$lambda(this$0) {
  return () => {
    // Inline function 'kotlin.collections.copyOf' call
    // Inline function 'kotlin.js.asDynamic' call
    var tmp$ret$1 = this$0.k2k_1.slice();
    return DefaultUniqueIndex.x2e(tmp$ret$1.slice());
  };
}
function JsonDataFrame$_get_columnIndex_$ref_23ske3() {
  return (p0) => p0.t2f();
}
var com_treemap_AbsScale$stable;
var com_treemap_AbstractAlgorithm$stable;
var com_treemap_AbstractLabeling$stable;
function calcSignedPolygonArea($this, points) {
  var N = points.length;
  var i;
  var j;
  var area = 0.0;
  i = 0;
  while (i < N) {
    j = (i + 1 | 0) % N | 0;
    area = area + points[i].g1h() * points[j].h1h();
    area = area - points[i].h1h() * points[j].g1h();
    i = i + 1 | 0;
  }
  area = area / 2.0;
  return area;
}
var Companion_instance_67;
function Companion_getInstance_67() {
  return Companion_instance_67;
}
var com_treemap_AbstractNesting$stable;
var Companion_instance_68;
function Companion_getInstance_68() {
  return Companion_instance_68;
}
var com_treemap_AbstractNodeRenderer$stable;
var com_treemap_AbstractRendering$stable;
var Companion_instance_69;
function Companion_getInstance_69() {
  return Companion_instance_69;
}
function computeBounds($this, shape) {
  var tmp;
  if (isInterface(shape, Rectangle2D)) {
    var bounds = shape.i1h();
    tmp = Rectangle.from(numberToInt(bounds.g1h()), numberToInt(bounds.h1h()), numberToInt(bounds.gm()), numberToInt(bounds.hm()));
  } else {
    var bounds_0 = shape.i1h();
    var tmp_0 = bounds_0.gm();
    // Inline function 'kotlin.math.sqrt' call
    var tmp$ret$0 = Math.sqrt(2.0);
    var halfWidth = numberToInt(tmp_0 / tmp$ret$0);
    var tmp_1 = bounds_0.hm();
    // Inline function 'kotlin.math.sqrt' call
    var tmp$ret$1 = Math.sqrt(2.0);
    var halfHeight = numberToInt(tmp_1 / tmp$ret$1);
    tmp = Rectangle.from(numberToInt(bounds_0.g1h() + (bounds_0.gm() - halfWidth) / 2), numberToInt(bounds_0.h1h() + (bounds_0.hm() - halfHeight) / 2), halfWidth, halfHeight);
  }
  return tmp;
}
var com_treemap_AbstractTreeMap$stable;
var Companion_instance_70;
function Companion_getInstance_70() {
  return Companion_instance_70;
}
var com_treemap_AbstractTreeMapColumnSettings$stable;
var Companion_instance_71;
function Companion_getInstance_71() {
  return Companion_instance_71;
}
var com_treemap_AbstractTreeMapController$stable;
var Mode_Selection_instance;
var Mode_Zooming_instance;
var Mode_Panning_instance;
var Mode_entriesInitialized_1;
function Mode_initEntries_1() {
  if (Mode_entriesInitialized_1)
    return Unit_instance;
  Mode_entriesInitialized_1 = true;
  Mode_Selection_instance = new Mode_1('Selection', 0);
  Mode_Zooming_instance = new Mode_1('Zooming', 1);
  Mode_Panning_instance = new Mode_1('Panning', 2);
}
function setSelection($this, observation) {
  if (!(observation == null)) {
    ensureNotNull(ensureNotNull($this.w2p_1.j2p_1).h2l()).selection.m13([observation]);
  } else {
    ensureNotNull(ensureNotNull($this.w2p_1.j2p_1).h2l()).selection.i13();
  }
}
function addToSelection($this, observation) {
  ensureNotNull(ensureNotNull($this.w2p_1.j2p_1).h2l()).selection.k13(observation, true);
}
function addToSelection_0($this, newSelection) {
  ensureNotNull(ensureNotNull($this.w2p_1.j2p_1).h2l()).selection.l13(newSelection, true);
}
function zoom($this, amount, xCenter, yCenter) {
  var xCenter_0 = xCenter;
  var yCenter_0 = yCenter;
  if ($this.n2p_1) {
    var viewport = ensureNotNull($this.j2p_1).x2p();
    var world = ensureNotNull($this.j2p_1).y2p();
    if (!(yCenter_0 == null)) {
      yCenter_0 = world.t1h() - yCenter_0;
    }
    if ($this.o2p_1) {
      var normalizedXCenter = normalize($this, xCenter_0, world.p1h(), world.s1h());
      var normalizedYCenter = normalize($this, yCenter_0, world.r1h(), world.t1h());
      xCenter_0 = denormalize($this, $this.z2p(normalizedXCenter), world.p1h(), world.s1h());
      yCenter_0 = denormalize($this, $this.z2p(normalizedYCenter), world.r1h(), world.t1h());
    }
    var xRange = (new Range($this, amount, xCenter_0, viewport.p1h(), viewport.gm(), world.p1h(), world.s1h(), ensureNotNull($this.j2p_1).k1().gm())).k2q();
    var xMin = xRange.l2q();
    var xMax = xRange.m2q();
    var yRange = (new Range($this, amount, yCenter_0, viewport.r1h(), viewport.hm(), world.r1h(), world.t1h(), ensureNotNull($this.j2p_1).k1().hm())).k2q();
    var yMin = yRange.l2q();
    var yMax = yRange.m2q();
    if (xMin < xMax && yMin < yMax) {
      ensureNotNull($this.j2p_1).n2q(false, xMin, xMax, yMin, yMax);
    }
  }
}
function normalize($this, center, min, extent) {
  return (center - min) / extent * 2.0 - 1.0;
}
function denormalize($this, x, min, extent) {
  return min + extent * ((x + 1.0) / 2.0);
}
function openPopupMenu($this, e) {
  var popupMenu = new CPPopupMenu();
  var x = e.g1h();
  var y = e.h1h();
  var drillDownCommand = AbstractTreeMapController$openPopupMenu$drillDownCommand$1.w2q($this, x, y);
  var drillUpCommand = AbstractTreeMapController$openPopupMenu$drillUpCommand$1.d2r($this);
  var zoomInCommand = AbstractTreeMapController$openPopupMenu$zoomInCommand$1.k2r($this);
  var zoomOutCommand = AbstractTreeMapController$openPopupMenu$zoomOutCommand$1.r2r($this);
  popupMenu.h29(drillDownCommand);
  popupMenu.h29(drillUpCommand);
  popupMenu.h29(zoomInCommand);
  popupMenu.h29(zoomOutCommand);
  popupMenu.i29(ensureNotNull($this.j2p_1).q2n(), x, y);
}
function Mode_Selection_getInstance() {
  Mode_initEntries_1();
  return Mode_Selection_instance;
}
function Mode_Zooming_getInstance() {
  Mode_initEntries_1();
  return Mode_Zooming_instance;
}
function Mode_Panning_getInstance() {
  Mode_initEntries_1();
  return Mode_Panning_instance;
}
var com_treemap_AbstractTreeMapModel$stable;
function cancelDoUpdate($this) {
  if ($this.c2t_1) {
    if (!($this.worker == null)) {
      ensureNotNull($this.worker).n18();
    }
    if (!($this.workerFuture == null)) {
      ensureNotNull($this.workerFuture).n17(true);
    }
  } else {
    if (!($this.worker == null)) {
      ensureNotNull($this.worker).n18();
    }
  }
}
function getValues($this, node, column) {
  var count = 0;
  var _iterator__ex2g4s = $this.preorderEnumeration(node).h1();
  while (_iterator__ex2g4s.i1()) {
    var child = _iterator__ex2g4s.j1();
    if ($this.b2u(child) && !$this.filter.qk(child) && !$this.search.qk(child)) {
      var tmp = $this.getValueAt(child, column);
      var value = (tmp == null ? true : isNumber(tmp)) ? tmp : THROW_CCE();
      if (!(value == null)) {
        count = count + 1 | 0;
      }
    }
  }
  var sizes = new Float64Array(count);
  var i = 0;
  var _iterator__ex2g4s_0 = $this.preorderEnumeration(node).h1();
  while (_iterator__ex2g4s_0.i1()) {
    var child_0 = _iterator__ex2g4s_0.j1();
    if ($this.b2u(child_0) && !$this.filter.qk(child_0) && !$this.search.qk(child_0)) {
      var tmp_0 = $this.getValueAt(child_0, column);
      var value_0 = (tmp_0 == null ? true : isNumber(tmp_0)) ? tmp_0 : THROW_CCE();
      if (!(value_0 == null) && i < sizes.length) {
        sizes[i] = numberToDouble(value_0);
        i = i + 1 | 0;
      }
    }
  }
  return sizes;
}
function getSizeWeightedValues($this, node, column) {
  var count = 0;
  var _iterator__ex2g4s = $this.preorderEnumeration(node).h1();
  while (_iterator__ex2g4s.i1()) {
    var child = _iterator__ex2g4s.j1();
    if ($this.b2u(child) && !$this.filter.qk(child)) {
      var tmp = $this.getValueAt(child, column);
      var value = (tmp == null ? true : isNumber(tmp)) ? tmp : THROW_CCE();
      if (!(value == null)) {
        count = count + 1 | 0;
      }
    }
  }
  var sizes = new Float64Array(count);
  var i = 0;
  var sumSize = $this.getSumSize(node);
  var _iterator__ex2g4s_0 = $this.preorderEnumeration(node).h1();
  while (_iterator__ex2g4s_0.i1()) {
    var child_0 = _iterator__ex2g4s_0.j1();
    if ($this.b2u(child_0) && !$this.filter.qk(child_0)) {
      var tmp_0 = $this.getValueAt(child_0, column);
      var value_0 = (tmp_0 == null ? true : isNumber(tmp_0)) ? tmp_0 : THROW_CCE();
      if (!(value_0 == null) && i < sizes.length) {
        sizes[i] = numberToDouble(value_0) * child_0.k1() / sumSize;
        i = i + 1 | 0;
      }
    }
  }
  return sizes;
}
function visit($this, node, p) {
  var _iterator__ex2g4s = $this.getChildren(node).h1();
  while (_iterator__ex2g4s.i1()) {
    var child = _iterator__ex2g4s.j1();
    var shape = $this.k2u(child);
    if (shape == null && !$this.b2u(node)) {
      var visit_0 = visit($this, child, p);
      if (!(visit_0 === child)) {
        return visit_0;
      }
    } else if (contains_4($this, p, ensureNotNull(shape))) {
      return visit($this, child, p);
    }
  }
  return node;
}
function contains_4($this, p, shape) {
  var tmp;
  if (shape instanceof TextShape) {
    tmp = shape.i1h().j1h(Double_2.c1l(p.g1h(), p.h1h()));
  } else {
    tmp = shape.j1h(Double_2.c1l(p.g1h(), p.h1h()));
  }
  return tmp;
}
function getSelf($this) {
  return $this;
}
var Companion_instance_72;
function Companion_getInstance_72() {
  return Companion_instance_72;
}
var com_treemap_AbstractTreeMapNode$stable;
function createCushionImage($this) {
  if ($this.h2z() == null)
    return null;
  var bounds;
  var tmp = $this.h2z();
  if (tmp instanceof Rectangle) {
    var tmp_0 = $this.h2z();
    bounds = tmp_0 instanceof Rectangle ? tmp_0 : THROW_CCE();
  } else {
    var b = ensureNotNull($this.h2z()).i1h();
    bounds = Rectangle.from(numberToInt(b.g1h()), numberToInt(b.h1h()), numberToInt(b.gm()), numberToInt(b.hm()));
  }
  // Inline function 'kotlin.math.max' call
  var b_0 = bounds.c1w_1;
  var width = Math.max(1, b_0);
  // Inline function 'kotlin.math.max' call
  var b_1 = bounds.d1w_1;
  var height = Math.max(1, b_1);
  var image = new CPImage(width, height);
  ensureNotNull($this.t2z()).v2z($this.e2u_1, $this.e2v(), bounds.a1w_1, bounds.b1w_1, width, height, image);
  return image;
}
var com_treemap_AbstractTreeMapSettings$stable;
var com_treemap_AbstractTreeMapToolTip$stable;
var Companion_instance_73;
function Companion_getInstance_73() {
  return Companion_instance_73;
}
var com_treemap_AbstractTreeMapView$stable;
function getXCoordinateAxis($this) {
  return $this.q32_1.g1h();
}
function getYCoordinateAxis($this) {
  return $this.q32_1.h1h();
}
function visit_0($this, model, node, p) {
  var _iterator__ex2g4s = model.getChildren(node).h1();
  while (_iterator__ex2g4s.i1()) {
    var child = _iterator__ex2g4s.j1();
    if (!model.filter.qk(child)) {
      var shape = $this.k32(child);
      var depth = model.getLevel(node) - model.getLevel(ensureNotNull(model.currentRoot)) | 0;
      var algorithm = model.settings.getColumnSettings(model.getGroupByColumn(node)).getAlgorithm();
      if (ensureNotNull(model.settings.getDepth()).n2m(depth + 1 | 0) && algorithm.isCompatible(model.getShape(node))) {
        if (shape == null && !model.hasNoChildren(node)) {
          var visit = visit_0($this, model, child, p);
          if (!(visit === child)) {
            return visit;
          }
        } else if ($this.p33(p, shape)) {
          return visit_0($this, model, child, p);
        } else if (!model.settings.getColumnSettings(model.getGroupByColumn(node)).getAlgorithm().isChildContained) {
          if ($this.p33(p, shape)) {
            return child;
          } else {
            var visit_1 = visit_0($this, model, child, p);
            if (!(visit_1 === child)) {
              return visit_1;
            }
          }
        }
      }
    }
  }
  return node;
}
function visit_1($this, model, node, rect, list) {
  var _iterator__ex2g4s = model.getChildren(node).h1();
  while (_iterator__ex2g4s.i1()) {
    var child = _iterator__ex2g4s.j1();
    var shape = $this.k32(child);
    if (!(shape == null) && shape.l1h(rect)) {
      if (model.hasNoChildren(child)) {
        list.c1(child);
      }
      visit_1($this, model, child, rect, list);
    }
  }
  return node;
}
var com_treemap_AggregationFactory$stable;
var Companion_instance_74;
function Companion_getInstance_74() {
  if (Companion_instance_74 === VOID)
    new Companion_74();
  return Companion_instance_74;
}
var com_treemap_AlgorithmFactory$stable;
var Companion_instance_75;
function Companion_getInstance_75() {
  if (Companion_instance_75 === VOID)
    new Companion_75();
  return Companion_instance_75;
}
var com_treemap_AverageAggregation$stable;
var com_treemap_BackgroundParentNodeRenderer$stable;
var com_treemap_BackgroundRootNodeTreeMapRenderer$stable;
var com_treemap_BarAlgorithm$stable;
var Orientation_Vertical_instance;
var Orientation_Horizontal_instance;
var Orientation_entriesInitialized;
function Orientation_initEntries() {
  if (Orientation_entriesInitialized)
    return Unit_instance;
  Orientation_entriesInitialized = true;
  Orientation_Vertical_instance = new Orientation('Vertical', 0);
  Orientation_Horizontal_instance = new Orientation('Horizontal', 1);
}
function Orientation_Horizontal_getInstance() {
  Orientation_initEntries();
  return Orientation_Horizontal_instance;
}
var com_treemap_BinaryTreeAlgorithm$stable;
var com_treemap_BorderParentNodeRenderer$stable;
var com_treemap_BreadthFirstIterator$stable;
var com_treemap_CirclePackingAlgorithm_Circle$stable;
var com_treemap_CirclePackingAlgorithm$stable;
function init_com_treemap_CirclePackingAlgorithm_Circle(_this__u8e3s4) {
  _this__u8e3s4.n39_1 = 0.0;
  _this__u8e3s4.o39_1 = 0.0;
  _this__u8e3s4.p39_1 = 0.0;
}
function distance($this, circle1, circle2) {
  var x1 = circle1.n39_1;
  var y1 = circle1.o39_1;
  var r1 = circle1.p39_1;
  var x2 = circle2.n39_1;
  var y2 = circle2.o39_1;
  var r2 = circle2.p39_1;
  var x = x2 - x1;
  var y = y2 - y1;
  // Inline function 'kotlin.math.sqrt' call
  var x_0 = x * x + y * y;
  return Math.sqrt(x_0) - r1 - r2;
}
function get_hole_degree($this, candidate, placed_circles, pc1, pc2) {
  var lsq = 0.0;
  var _iterator__ex2g4s = placed_circles.h1();
  $l$loop_0: while (_iterator__ex2g4s.i1()) {
    var pc = _iterator__ex2g4s.j1();
    if (!(pc1 == null) && equals(pc1, pc)) {
      continue $l$loop_0;
    }
    if (!(pc2 == null) && equals(pc2, pc)) {
      continue $l$loop_0;
    }
    var tmp = lsq;
    // Inline function 'kotlin.math.pow' call
    var this_0 = candidate.o39_1 - pc.o39_1;
    var tmp_0 = Math.pow(this_0, 2.0);
    // Inline function 'kotlin.math.pow' call
    var this_1 = candidate.n39_1 - pc.n39_1;
    // Inline function 'kotlin.math.sqrt' call
    var x = tmp_0 + Math.pow(this_1, 2.0);
    lsq = tmp + Math.sqrt(x);
  }
  // Inline function 'kotlin.math.sqrt' call
  var x_0 = lsq;
  return -Math.sqrt(x_0);
}
function get_placement_candidates($this, radius, c1, c2, margin) {
  var ic1;
  var ic2;
  ic1 = Circle.q39(ensureNotNull(c1).n39_1, c1.o39_1, c1.p39_1 + (radius + margin));
  ic2 = Circle.q39(ensureNotNull(c2).n39_1, c2.o39_1, c2.p39_1 + (radius + margin));
  var i = get_intersection($this, ic1, ic2);
  var i1 = i[0];
  var i2 = i[1];
  if (i1 == null) {
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    return [null, null];
  }
  var i1_x = i1.g1h();
  var i1_y = i1.h1h();
  var candidate1;
  candidate1 = Circle.q39(i1_x, i1_y, radius);
  if (i2 == null) {
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    return [candidate1, null];
  }
  var i2_x = i2.g1h();
  var i2_y = i2.h1h();
  var candidate2;
  candidate2 = Circle.q39(i2_x, i2_y, radius);
  // Inline function 'kotlin.arrayOf' call
  // Inline function 'kotlin.js.unsafeCast' call
  // Inline function 'kotlin.js.asDynamic' call
  return [candidate1, candidate2];
}
function get_intersection($this, circle1, circle2) {
  var x1 = ensureNotNull(circle1).n39_1;
  var y1 = circle1.o39_1;
  var r1 = circle1.p39_1;
  var x2 = ensureNotNull(circle2).n39_1;
  var y2 = circle2.o39_1;
  var r2 = circle2.p39_1;
  var dx = x2 - x1;
  var dy = y2 - y1;
  // Inline function 'kotlin.math.sqrt' call
  var x = dx * dx + dy * dy;
  var d = Math.sqrt(x);
  if (d > r1 + r2) {
    println('no solution, the circles are separate: ' + circle1.toString() + ', ' + circle2.toString());
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    return [null, null];
  }
  // Inline function 'kotlin.math.abs' call
  var x_0 = r1 - r2;
  if (d < Math.abs(x_0)) {
    println('no solution, circles contained within each other: ' + circle1.toString() + ', ' + circle2.toString());
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    return [null, null];
  }
  if (d === 0.0 && r1 === r2) {
    println('no solution, circles are coincident: ' + circle1.toString() + ', ' + circle2.toString());
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    return [null, null];
  }
  var a = (r1 * r1 - r2 * r2 + d * d) / (2 * d);
  // Inline function 'kotlin.math.sqrt' call
  var x_1 = r1 * r1 - a * a;
  var h = Math.sqrt(x_1);
  var xm = x1 + a * dx / d;
  var ym = y1 + a * dy / d;
  var xs1 = xm + h * dy / d;
  var xs2 = xm - h * dy / d;
  var ys1 = ym - h * dx / d;
  var ys2 = ym + h * dx / d;
  var tmp;
  if (xs1 === xs2 && ys1 === ys2) {
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    tmp = [Double_2.c1l(xs1, ys1), null];
  } else {
    // Inline function 'kotlin.arrayOf' call
    // Inline function 'kotlin.js.unsafeCast' call
    // Inline function 'kotlin.js.asDynamic' call
    tmp = [Double_2.c1l(xs1, ys1), Double_2.c1l(xs2, ys2)];
  }
  return tmp;
}
function outerSoddyCircle($this, circleA, circleB, circleC) {
  var ra = circleA.p39_1;
  var rb = circleB.p39_1;
  var rc = circleC.p39_1;
  var k1;
  var k2;
  var k3;
  var k4;
  k1 = 1 / ra;
  k2 = 1 / rb;
  k3 = 1 / rc;
  var tmp = k1 + k2 + k3;
  // Inline function 'kotlin.math.sqrt' call
  var x = k1 * k2 + k2 * k3 + k3 * k1;
  // Inline function 'kotlin.math.abs' call
  var x_0 = tmp - 2 * Math.sqrt(x);
  k4 = Math.abs(x_0);
  var q1;
  var q2;
  var q3;
  var q4;
  q1 = (new Complex(k1, 0.0)).t39(new Complex(circleA.n39_1, circleA.o39_1));
  q2 = (new Complex(k2, 0.0)).t39(new Complex(circleB.n39_1, circleB.o39_1));
  q3 = (new Complex(k3, 0.0)).t39(new Complex(circleC.n39_1, circleC.o39_1));
  q4 = q1.u39(q2).u39(q3).v39((new Complex(2.0, 0.0)).t39(q1.t39(q2).u39(q2.t39(q3)).u39(q3.t39(q1)).cw()));
  var z = q4.w39(new Complex(k4, 0.0));
  var tmp_0;
  if (z.a3a() || isNaN_3(1 / k4)) {
    tmp_0 = Circle.z39();
  } else {
    tmp_0 = Circle.q39(-z.x39(), -z.y39(), 1 / k4);
  }
  return tmp_0;
}
function boundingCircle($this, circles) {
  var outerSoddy = null;
  if (circles.k1() >= 3) {
    outerSoddy = outerSoddyCircle($this, circles.l1(0), circles.l1(1), circles.l1(2));
    var _iterator__ex2g4s = circles.h1();
    while (_iterator__ex2g4s.i1()) {
      var c = _iterator__ex2g4s.j1();
      // Inline function 'kotlin.math.sqrt' call
      var x = (outerSoddy.n39_1 - c.n39_1) * (outerSoddy.n39_1 - c.n39_1) + (outerSoddy.o39_1 - c.o39_1) * (outerSoddy.o39_1 - c.o39_1);
      var dist = Math.sqrt(x);
      var tmp = outerSoddy;
      var tmp0 = outerSoddy.p39_1;
      // Inline function 'kotlin.math.max' call
      var b = dist + c.p39_1;
      tmp.p39_1 = Math.max(tmp0, b);
    }
  }
  var bbox = boundingBox($this, circles);
  var tmp_0 = bbox.k1h();
  var tmp_1 = bbox.m1h();
  var tmp0_0 = bbox.gm();
  // Inline function 'kotlin.math.max' call
  var b_0 = bbox.hm();
  var tmp$ret$2 = Math.max(tmp0_0, b_0);
  var bc = Circle.q39(tmp_0, tmp_1, tmp$ret$2 / 2);
  var _iterator__ex2g4s_0 = circles.h1();
  while (_iterator__ex2g4s_0.i1()) {
    var c_0 = _iterator__ex2g4s_0.j1();
    // Inline function 'kotlin.math.sqrt' call
    var x_0 = (bc.n39_1 - c_0.n39_1) * (bc.n39_1 - c_0.n39_1) + (bc.o39_1 - c_0.o39_1) * (bc.o39_1 - c_0.o39_1);
    var dist_0 = Math.sqrt(x_0);
    var tmp_2 = bc;
    var tmp0_1 = bc.p39_1;
    // Inline function 'kotlin.math.max' call
    var b_1 = dist_0 + c_0.p39_1;
    tmp_2.p39_1 = Math.max(tmp0_1, b_1);
  }
  return outerSoddy == null || bc.p39_1 < outerSoddy.p39_1 ? bc : outerSoddy;
}
function boundingBox($this, circles) {
  var minx = 1.7976931348623157E308;
  var maxx = 4.9E-324;
  var miny = 1.7976931348623157E308;
  var maxy = 4.9E-324;
  var _iterator__ex2g4s = circles.h1();
  while (_iterator__ex2g4s.i1()) {
    var c = _iterator__ex2g4s.j1();
    var tmp0 = minx;
    // Inline function 'kotlin.math.min' call
    var b = c.n39_1 - c.p39_1;
    minx = Math.min(tmp0, b);
    var tmp0_0 = maxx;
    // Inline function 'kotlin.math.max' call
    var b_0 = c.n39_1 + c.p39_1;
    maxx = Math.max(tmp0_0, b_0);
    var tmp0_1 = miny;
    // Inline function 'kotlin.math.min' call
    var b_1 = c.o39_1 - c.p39_1;
    miny = Math.min(tmp0_1, b_1);
    var tmp0_2 = maxy;
    // Inline function 'kotlin.math.max' call
    var b_2 = c.o39_1 + c.p39_1;
    maxy = Math.max(tmp0_2, b_2);
  }
  return Double_3.z1h(minx, miny, maxx - minx, maxy - miny);
}
function computeBoundingBox($this, children, accessor) {
  var circles = ArrayList.q1();
  var inductionVariable = 0;
  var last = children.length;
  while (inductionVariable < last) {
    var child = children[inductionVariable];
    inductionVariable = inductionVariable + 1 | 0;
    var shape = accessor.getShape(child);
    var tmp;
    if (!(shape == null)) {
      tmp = isInterface(shape, Ellipse2D);
    } else {
      tmp = false;
    }
    if (tmp) {
      var ellipse2D = shape;
      var circle = Circle.q39(ellipse2D.k1h(), ellipse2D.m1h(), ellipse2D.gm() / 2);
      circles.c1(circle);
    }
  }
  var tmp_0;
  if (circles.k1() > 0) {
    var circle_0 = boundingCircle(Companion_instance_76, circles);
    var b = circle_0.b3a();
    tmp_0 = Double_3.z1h(b.g1h(), b.h1h(), b.gm(), b.hm()).i1h();
  } else {
    tmp_0 = null;
  }
  return tmp_0;
}
var Companion_instance_76;
function Companion_getInstance_76() {
  return Companion_instance_76;
}
var com_treemap_CircularAlgorithm$stable;
function init_com_treemap_CircularAlgorithm_Pair(_this__u8e3s4) {
  _this__u8e3s4.r3a_1 = 1.7976931348623157E308;
}
function init_com_treemap_CircularAlgorithm_Circle(_this__u8e3s4) {
  _this__u8e3s4.s3a_1 = 0.0;
  _this__u8e3s4.t3a_1 = 0.0;
  _this__u8e3s4.u3a_1 = 0.0;
}
function pairPack($this, circles) {
  var error = 0.01;
  switch (circles.k1()) {
    case 0:
      break;
    case 1:
      var circle = circles.l1(0);
      circle.s3a_1 = 0.0;
      circle.t3a_1 = 0.0;
      break;
    case 2:
      var c0 = circles.l1(0);
      var c1 = circles.l1(1);
      var radius = c0.u3a_1 + c1.u3a_1;
      c0.s3a_1 = c0.u3a_1 - radius;
      c1.s3a_1 = radius - c1.u3a_1;
      c1.t3a_1 = 0.0;
      c0.t3a_1 = c1.t3a_1;
      break;
    case 4:
      // Inline function 'kotlin.run' call

      var sorted = ArrayList.s(circles);
      sort(sorted);
      if (sorted.l1(0).u3a_1 / sorted.l1(3).u3a_1 < 1.3) {
        var c0_0 = sorted.l1(0);
        var c1_0 = sorted.l1(1);
        var c2 = sorted.l1(2);
        var c3 = sorted.l1(3);
        c0_0.t3a_1 = -c0_0.u3a_1;
        c0_0.s3a_1 = c0_0.t3a_1;
        c1_0.t3a_1 = c1_0.u3a_1;
        c1_0.s3a_1 = c1_0.t3a_1;
        c2.s3a_1 = c2.u3a_1;
        c2.t3a_1 = -c2.u3a_1;
        c3.s3a_1 = -c3.u3a_1;
        c3.t3a_1 = c3.u3a_1;
      } else {
        doDefault($this, circles, error);
      }

      // Inline function 'kotlin.run' call

      doDefault($this, circles, error);
      break;
    default:
      doDefault($this, circles, error);
      break;
  }
}
function doDefault($this, circles, error) {
  var sorted = ArrayList.s(circles);
  sort(sorted);
  var ca = sorted.l1(0);
  var cb = sorted.l1(1);
  var cc = sorted.l1(2);
  var b = ca.u3a_1 + cc.u3a_1;
  var c = ca.u3a_1 + cb.u3a_1;
  // Inline function 'kotlin.math.sqrt' call
  var x = ca.u3a_1 * cb.u3a_1 * cc.u3a_1 * (ca.u3a_1 + cb.u3a_1 + cc.u3a_1);
  var area = Math.sqrt(x);
  var hc = 2 * area / c;
  ca.s3a_1 = -ca.u3a_1;
  ca.t3a_1 = 0.0;
  cb.s3a_1 = cb.u3a_1;
  cb.t3a_1 = 0.0;
  var tmp = cc;
  var tmp_0 = ca.s3a_1;
  // Inline function 'kotlin.math.sqrt' call
  var x_0 = b * b - hc * hc;
  tmp.s3a_1 = tmp_0 + Math.sqrt(x_0);
  cc.t3a_1 = hc;
  var cp = Double_2.z1j();
  var transform = AffineTransform.j1j();
  var shift = ca.u3a_1 - cb.u3a_1;
  var _receiver__tnumb7 = ca;
  _receiver__tnumb7.s3a_1 = _receiver__tnumb7.s3a_1 + shift;
  var _receiver__tnumb7_0 = cb;
  _receiver__tnumb7_0.s3a_1 = _receiver__tnumb7_0.s3a_1 + shift;
  var _receiver__tnumb7_1 = cc;
  _receiver__tnumb7_1.s3a_1 = _receiver__tnumb7_1.s3a_1 + shift;
  if (sorted.k1() > 3) {
    var smallestRadius = sorted.l1(sorted.k1() - 1 | 0).u3a_1;
    var pairs = ArrayList.q1();
    pairs.c1(Pair_0.v3a(cb, ca));
    pairs.c1(Pair_0.v3a(ca, cc));
    pairs.c1(Pair_0.v3a(cc, cb));
    var innerSoddyRadius_0 = innerSoddyRadius($this, ca.u3a_1, cb.u3a_1, cc.u3a_1);
    if (innerSoddyRadius_0 >= smallestRadius) {
      pairs.c1(Pair_0.w3a(ca, cb, innerSoddyRadius_0));
      pairs.c1(Pair_0.w3a(cc, ca, innerSoddyRadius_0));
      pairs.c1(Pair_0.w3a(cb, cc, innerSoddyRadius_0));
    }
    var closestPoint = Double_2.z1j();
    var closestEdgeIndex;
    var i = 3;
    while (i < sorted.k1()) {
      cc = sorted.l1(i);
      closestPoint.x1j_1 = 1.7976931348623157E308;
      closestPoint.y1j_1 = 1.7976931348623157E308;
      closestEdgeIndex = -1;
      var pairIndex = 0;
      while (pairIndex < pairs.k1()) {
        var intersects;
        var pair = pairs.l1(pairIndex);
        if (pair.r3a_1 < cc.u3a_1 - error) {
          intersects = true;
        } else {
          ca = pair.p3a_1;
          cb = pair.q3a_1;
          b = ca.u3a_1 + cc.u3a_1;
          c = ca.u3a_1 + cb.u3a_1;
          // Inline function 'kotlin.math.sqrt' call
          var x_1 = ca.u3a_1 * cb.u3a_1 * cc.u3a_1 * (ca.u3a_1 + cb.u3a_1 + cc.u3a_1);
          area = Math.sqrt(x_1);
          hc = 2 * area / c;
          var tmp_1 = cp;
          // Inline function 'kotlin.math.sqrt' call
          var x_2 = b * b - hc * hc;
          tmp_1.x1j_1 = Math.sqrt(x_2);
          cp.y1j_1 = hc;
          var tmp0 = cb.t3a_1 - ca.t3a_1;
          // Inline function 'kotlin.math.atan2' call
          var x_3 = cb.s3a_1 - ca.s3a_1;
          var theta = Math.atan2(tmp0, x_3);
          transform.q1j();
          transform.o1j(ca.s3a_1, ca.t3a_1);
          transform.p1j(theta);
          transform.t1j(cp, cp);
          if (cp.x1j_1 * cp.x1j_1 + cp.y1j_1 * cp.y1j_1 >= closestPoint.x1j_1 * closestPoint.x1j_1 + closestPoint.y1j_1 * closestPoint.y1j_1) {
            intersects = true;
          } else {
            intersects = false;
            cc.s3a_1 = cp.x1j_1;
            cc.t3a_1 = cp.y1j_1;
            var j = 0;
            $l$loop: while (j < i) {
              if (cc.y3a(sorted.l1(j), error)) {
                pair.r3a_1 = cc.x3a(sorted.l1(j));
                intersects = true;
                break $l$loop;
              }
              j = j + 1 | 0;
            }
          }
        }
        if (!intersects) {
          if (cc.s3a_1 * cc.s3a_1 + cc.t3a_1 * cc.t3a_1 < closestPoint.x1j_1 * closestPoint.x1j_1 + closestPoint.y1j_1 * closestPoint.y1j_1) {
            closestPoint.x1j_1 = cc.s3a_1;
            closestPoint.y1j_1 = cc.t3a_1;
            closestEdgeIndex = pairIndex;
          }
        }
        pairIndex = pairIndex + 1 | 0;
      }
      if (closestEdgeIndex >= 0) {
        cc.s3a_1 = closestPoint.x1j_1;
        cc.t3a_1 = closestPoint.y1j_1;
        ca = pairs.l1(closestEdgeIndex).p3a_1;
        cb = pairs.l1(closestEdgeIndex).q3a_1;
        innerSoddyRadius_0 = innerSoddyRadius($this, ca.u3a_1, cb.u3a_1, cc.u3a_1);
        if (innerSoddyRadius_0 >= smallestRadius) {
          pairs.l1(closestEdgeIndex).r3a_1 = innerSoddyRadius_0;
          pairs.c1(Pair_0.w3a(cc, ca, innerSoddyRadius_0));
          pairs.c1(Pair_0.w3a(cb, cc, innerSoddyRadius_0));
        } else {
          pairs.a5(closestEdgeIndex);
        }
        pairs.c1(Pair_0.v3a(ca, cc));
        pairs.c1(Pair_0.v3a(cc, cb));
      }
      i = i + 1 | 0;
    }
  }
}
function innerSoddyRadius($this, ra, rb, rc) {
  var tmp = ra * rb * rc;
  var tmp_0 = ra * rc + ra * rb + rb * rc;
  // Inline function 'kotlin.math.sqrt' call
  var x = 4 * ra * rb * rc * (ra + rb + rc);
  return tmp / (tmp_0 + Math.sqrt(x));
}
function outerSoddyCircle_0($this, circleA, circleB, circleC) {
  var ra = circleA.u3a_1;
  var rb = circleB.u3a_1;
  var rc = circleC.u3a_1;
  var k1;
  var k2;
  var k3;
  var k4;
  k1 = 1 / ra;
  k2 = 1 / rb;
  k3 = 1 / rc;
  var tmp = k1 + k2 + k3;
  // Inline function 'kotlin.math.sqrt' call
  var x = k1 * k2 + k2 * k3 + k3 * k1;
  // Inline function 'kotlin.math.abs' call
  var x_0 = tmp - 2 * Math.sqrt(x);
  k4 = Math.abs(x_0);
  var q1;
  var q2;
  var q3;
  var q4;
  q1 = (new Complex_0(k1, 0.0)).b3b(new Complex_0(circleA.s3a_1, circleA.t3a_1));
  q2 = (new Complex_0(k2, 0.0)).b3b(new Complex_0(circleB.s3a_1, circleB.t3a_1));
  q3 = (new Complex_0(k3, 0.0)).b3b(new Complex_0(circleC.s3a_1, circleC.t3a_1));
  q4 = q1.c3b(q2).c3b(q3).d3b((new Complex_0(2.0, 0.0)).b3b(q1.b3b(q2).c3b(q2.b3b(q3)).c3b(q3.b3b(q1)).cw()));
  var z = q4.e3b(new Complex_0(k4, 0.0));
  var tmp_0;
  if (z.a3a() || isNaN_3(1 / k4)) {
    tmp_0 = Circle_0.g3b();
  } else {
    tmp_0 = Circle_0.f3b(-z.x39(), -z.y39(), 1 / k4);
  }
  return tmp_0;
}
function boundingCircle_0($this, circles) {
  var outerSoddy = null;
  if (circles.k1() >= 3) {
    outerSoddy = outerSoddyCircle_0($this, circles.l1(0), circles.l1(1), circles.l1(2));
    var _iterator__ex2g4s = circles.h1();
    while (_iterator__ex2g4s.i1()) {
      var c = _iterator__ex2g4s.j1();
      // Inline function 'kotlin.math.sqrt' call
      var x = (outerSoddy.s3a_1 - c.s3a_1) * (outerSoddy.s3a_1 - c.s3a_1) + (outerSoddy.t3a_1 - c.t3a_1) * (outerSoddy.t3a_1 - c.t3a_1);
      var dist = Math.sqrt(x);
      var tmp = outerSoddy;
      var tmp0 = outerSoddy.u3a_1;
      // Inline function 'kotlin.math.max' call
      var b = dist + c.u3a_1;
      tmp.u3a_1 = Math.max(tmp0, b);
    }
  }
  var bbox = boundingBox_0($this, circles);
  var tmp_0 = bbox.k1h();
  var tmp_1 = bbox.m1h();
  var tmp0_0 = bbox.gm();
  // Inline function 'kotlin.math.max' call
  var b_0 = bbox.hm();
  var tmp$ret$2 = Math.max(tmp0_0, b_0);
  var bc = Circle_0.f3b(tmp_0, tmp_1, tmp$ret$2 / 2);
  var _iterator__ex2g4s_0 = circles.h1();
  while (_iterator__ex2g4s_0.i1()) {
    var c_0 = _iterator__ex2g4s_0.j1();
    // Inline function 'kotlin.math.sqrt' call
    var x_0 = (bc.s3a_1 - c_0.s3a_1) * (bc.s3a_1 - c_0.s3a_1) + (bc.t3a_1 - c_0.t3a_1) * (bc.t3a_1 - c_0.t3a_1);
    var dist_0 = Math.sqrt(x_0);
    var tmp_2 = bc;
    var tmp0_1 = bc.u3a_1;
    // Inline function 'kotlin.math.max' call
    var b_1 = dist_0 + c_0.u3a_1;
    tmp_2.u3a_1 = Math.max(tmp0_1, b_1);
  }
  return outerSoddy == null || bc.u3a_1 < outerSoddy.u3a_1 ? bc : outerSoddy;
}
function boundingBox_0($this, circles) {
  var minx = 1.7976931348623157E308;
  var maxx = 4.9E-324;
  var miny = 1.7976931348623157E308;
  var maxy = 4.9E-324;
  var _iterator__ex2g4s = circles.h1();
  while (_iterator__ex2g4s.i1()) {
    var c = _iterator__ex2g4s.j1();
    var tmp0 = minx;
    // Inline function 'kotlin.math.min' call
    var b = c.s3a_1 - c.u3a_1;
    minx = Math.min(tmp0, b);
    var tmp0_0 = maxx;
    // Inline function 'kotlin.math.max' call
    var b_0 = c.s3a_1 + c.u3a_1;
    maxx = Math.max(tmp0_0, b_0);
    var tmp0_1 = miny;
    // Inline function 'kotlin.math.min' call
    var b_1 = c.t3a_1 - c.u3a_1;
    miny = Math.min(tmp0_1, b_1);
    var tmp0_2 = maxy;
    // Inline function 'kotlin.math.max' call
    var b_2 = c.t3a_1 + c.u3a_1;
    maxy = Math.max(tmp0_2, b_2);
  }
  return Double_3.z1h(minx, miny, maxx - minx, maxy - miny);
}
function computeBoundingBox_0($this, children, accessor) {
  var circles = ArrayList.q1();
  var inductionVariable = 0;
  var last = children.length;
  while (inductionVariable < last) {
    var child = children[inductionVariable];
    inductionVariable = inductionVariable + 1 | 0;
    var shape = accessor.getShape(child);
    var tmp;
    if (!(shape == null)) {
      tmp = isInterface(shape, Ellipse2D);
    } else {
      tmp = false;
    }
    if (tmp) {
      var ellipse2D = shape;
      var circle = Circle_0.f3b(ellipse2D.k1h(), ellipse2D.m1h(), ellipse2D.gm() / 2);
      circles.c1(circle);
    }
  }
  var tmp_0;
  if (circles.k1() > 0) {
    var circle_0 = boundingCircle_0(Companion_instance_77, circles);
    var b = circle_0.b3a();
    tmp_0 = (new Double_0(b.g1h(), b.h1h(), b.gm(), b.hm())).i1h();
  } else {
    tmp_0 = null;
  }
  return tmp_0;
}
var Companion_instance_77;
function Companion_getInstance_77() {
  return Companion_instance_77;
}
var com_treemap_ColorOrdering$stable;
var Companion_instance_78;
function Companion_getInstance_78() {
  return Companion_instance_78;
}
var com_treemap_ColoredSurroundLabeling$stable;
var com_treemap_CombinationGenerator$stable;
var CombinationGenerator_instance;
function CombinationGenerator_getInstance() {
  return CombinationGenerator_instance;
}
var com_treemap_CountAggregation$stable;
var com_treemap_Cushion$stable;
function init_com_treemap_Cushion(_this__u8e3s4) {
  _this__u8e3s4.u2z_1 = new Float64Array(4);
}
var com_treemap_CushionRendering$stable;
function paintCushion($this, g, view, image, bounds, shape) {
  var completed = true;
  if (isInterface(shape, Rectangle2D)) {
    if (bounds.gm() > image.t29_1 || bounds.hm() > image.u29_1) {
      var bilinear = g.e3c();
      g.f3c(true);
      completed = g.g3c(image, bounds.a1w_1, bounds.b1w_1, bounds.c1w_1, bounds.d1w_1);
      g.f3c(bilinear);
    } else {
      completed = g.g3c(image, bounds.a1w_1, bounds.b1w_1, bounds.c1w_1, bounds.d1w_1);
    }
  } else {
    var tmp0 = bounds.c1w_1;
    // Inline function 'kotlin.math.min' call
    var b = view.k1().cm_1;
    var width = Math.min(tmp0, b);
    var tmp0_0 = bounds.d1w_1;
    // Inline function 'kotlin.math.min' call
    var b_0 = view.k1().dm_1;
    var height = Math.min(tmp0_0, b_0);
    if (bounds.gm() > image.t29_1 || bounds.hm() > image.u29_1) {
      var bilinear_0 = g.e3c();
      g.f3c(true);
      completed = g.d3c(image, bounds.a1w_1, bounds.b1w_1, bounds.c1w_1, bounds.d1w_1, width, height, bounds, shape);
      g.f3c(bilinear_0);
    } else {
      completed = g.d3c(image, bounds.a1w_1, bounds.b1w_1, bounds.c1w_1, bounds.d1w_1, width, height, bounds, shape);
    }
  }
  return completed;
}
var com_treemap_DefaultAlgorithmFactory$stable;
var DefaultAlgorithmFactory_instance;
function DefaultAlgorithmFactory_getInstance() {
  if (DefaultAlgorithmFactory_instance === VOID)
    new DefaultAlgorithmFactory_0();
  return DefaultAlgorithmFactory_instance;
}
var com_treemap_DefaultTreeMap$stable;
var com_treemap_DefaultTreeMapColumnSettings$stable;
function findFont($this, families, style, size, defaultFont, fontFactory) {
  // Inline function 'kotlin.collections.toTypedArray' call
  var this_0 = split(families, [',']);
  var indexedObject = copyToArray(this_0);
  var inductionVariable = 0;
  var last = indexedObject.length;
  while (inductionVariable < last) {
    var family = indexedObject[inductionVariable];
    inductionVariable = inductionVariable + 1 | 0;
    var font = fontFactory.j29(family);
    if (!(font == null)) {
      return font.q29(size);
    }
  }
  return defaultFont.q29(size);
}
var Companion_instance_79;
function Companion_getInstance_79() {
  return Companion_instance_79;
}
var com_treemap_DefaultTreeMapController$stable;
var com_treemap_DefaultTreeMapHeaderRenderer$stable;
var Companion_instance_80;
function Companion_getInstance_80() {
  if (Companion_instance_80 === VOID)
    new Companion_80();
  return Companion_instance_80;
}
var Companion_instance_81;
function Companion_getInstance_81() {
  if (Companion_instance_81 === VOID)
    new Companion_81();
  return Companion_instance_81;
}
var com_treemap_DefaultTreeMapModel$stable;
var com_treemap_DefaultTreeMapPopup$stable;
var com_treemap_DefaultTreeMapSettings$stable;
function scheduleUpdateGroupBy($this) {
  $this.p30(new TreeMapSettingsEvent(true, true, true, false, false));
}
function scheduleUpdateLayoutAndAggregationCache($this) {
  $this.p30(new TreeMapSettingsEvent(false, true, true, true, false));
}
function scheduleUpdateLayoutAndDimension($this) {
  $this.p30(new TreeMapSettingsEvent(false, true, true, false, true));
}
function scheduleUpdateLayout($this) {
  $this.p30(new TreeMapSettingsEvent(false, true, true, false, false));
}
function scheduleUpdateColors($this) {
  $this.p30(new TreeMapSettingsEvent(false, false, true, false, false));
}
function scheduleUpdate($this) {
  $this.p30(new TreeMapSettingsEvent(false, false, false, false, false));
}
function DefaultTreeMapSettings$_get_groupByColumns_$ref_g2pwnd() {
  return (p0) => p0.groupByColumns;
}
function DefaultTreeMapSettings$_set_groupByColumns_$ref_hv5egz() {
  return (p0, p1) => {
    p0.y2x(p1);
    return Unit_instance;
  };
}
function DefaultTreeMapSettings$_get_groupByColumns_$ref_g2pwnd_0() {
  return (p0) => p0.groupByColumns;
}
function DefaultTreeMapSettings$_set_groupByColumns_$ref_hv5egz_0() {
  return (p0, p1) => {
    p0.y2x(p1);
    return Unit_instance;
  };
}
function DefaultTreeMapSettings$_get_labelsColumns_$ref_7mfqv6() {
  return (p0) => p0.labelsColumns;
}
function DefaultTreeMapSettings$_set_labelsColumns_$ref_e3d5f6() {
  return (p0, p1) => {
    p0.z2x(p1);
    return Unit_instance;
  };
}
function DefaultTreeMapSettings$_get_labelsColumns_$ref_7mfqv6_0() {
  return (p0) => p0.labelsColumns;
}
function DefaultTreeMapSettings$_set_labelsColumns_$ref_e3d5f6_0() {
  return (p0, p1) => {
    p0.z2x(p1);
    return Unit_instance;
  };
}
function DefaultTreeMapSettings$_get_toolTipColumns_$ref_cs2zs4() {
  return (p0) => p0.toolTipColumns;
}
function DefaultTreeMapSettings$_set_toolTipColumns_$ref_ob5r2o() {
  return (p0, p1) => {
    p0.s30(p1);
    return Unit_instance;
  };
}
function DefaultTreeMapSettings$_get_toolTipColumns_$ref_cs2zs4_0() {
  return (p0) => p0.toolTipColumns;
}
function DefaultTreeMapSettings$_set_toolTipColumns_$ref_ob5r2o_0() {
  return (p0, p1) => {
    p0.s30(p1);
    return Unit_instance;
  };
}
function DefaultTreeMapSettings$_get_sizeColumn_$ref_1nuosn() {
  return (p0) => p0.sizeColumn;
}
function DefaultTreeMapSettings$_set_sizeColumn_$ref_nv8r8t() {
  return (p0, p1) => {
    p0.a2y(p1);
    return Unit_instance;
  };
}
function DefaultTreeMapSettings$_get_sizeColumn_$ref_1nuosn_0() {
  return (p0) => p0.sizeColumn;
}
function DefaultTreeMapSettings$_set_sizeColumn_$ref_nv8r8t_0() {
  return (p0, p1) => {
    p0.a2y(p1);
    return Unit_instance;
  };
}
function DefaultTreeMapSettings$_get_colorColumn_$ref_x1yx25() {
  return (p0) => p0.colorColumn;
}
function DefaultTreeMapSettings$_set_colorColumn_$ref_rvexef() {
  return (p0, p1) => {
    p0.c2y(p1);
    return Unit_instance;
  };
}
function DefaultTreeMapSettings$_get_colorColumn_$ref_x1yx25_0() {
  return (p0) => p0.colorColumn;
}
function DefaultTreeMapSettings$_set_colorColumn_$ref_rvexef_0() {
  return (p0, p1) => {
    p0.c2y(p1);
    return Unit_instance;
  };
}
function DefaultTreeMapSettings$_get_backgroundColumn_$ref_91hr0a() {
  return (p0) => p0.backgroundColumn;
}
function DefaultTreeMapSettings$_set_backgroundColumn_$ref_mzkf0m() {
  return (p0, p1) => {
    p0.d2y(p1);
    return Unit_instance;
  };
}
function DefaultTreeMapSettings$_get_backgroundColumn_$ref_91hr0a_0() {
  return (p0) => p0.backgroundColumn;
}
function DefaultTreeMapSettings$_set_backgroundColumn_$ref_mzkf0m_0() {
  return (p0, p1) => {
    p0.d2y(p1);
    return Unit_instance;
  };
}
function DefaultTreeMapSettings$_get_heightColumn_$ref_dr9vz3() {
  return (p0) => p0.heightColumn;
}
function DefaultTreeMapSettings$_set_heightColumn_$ref_s6pwx9() {
  return (p0, p1) => {
    p0.b2y(p1);
    return Unit_instance;
  };
}
function DefaultTreeMapSettings$_get_heightColumn_$ref_dr9vz3_0() {
  return (p0) => p0.heightColumn;
}
function DefaultTreeMapSettings$_set_heightColumn_$ref_s6pwx9_0() {
  return (p0, p1) => {
    p0.b2y(p1);
    return Unit_instance;
  };
}
function DefaultTreeMapSettings$_get_rendering_$ref_x240cw() {
  return (p0) => p0.rendering;
}
function DefaultTreeMapSettings$_set_rendering_$ref_mr8j3w() {
  return (p0, p1) => {
    p0.p2n(p1);
    return Unit_instance;
  };
}
function DefaultTreeMapSettings$_get_rendering_$ref_x240cw_0() {
  return (p0) => p0.rendering;
}
function DefaultTreeMapSettings$_set_rendering_$ref_mr8j3w_0() {
  return (p0, p1) => {
    p0.p2n(p1);
    return Unit_instance;
  };
}
var com_treemap_DefaultTreeMapToolTip$stable;
var Companion_instance_82;
function Companion_getInstance_82() {
  if (Companion_instance_82 === VOID)
    new Companion_82();
  return Companion_instance_82;
}
var com_treemap_DefaultTreeMapView$stable;
function DefaultTreeMapView$component$delegate$lambda(this$0) {
  return () => new TreeMapCanvas(this$0);
}
function DefaultTreeMapView$_get_component_$ref_7cm7en() {
  return (p0) => p0.q2n();
}
function DefaultTreeMapView$timer$delegate$lambda(this$0) {
  return () => {
    var tmp = Companion_getInstance_29().s17_1;
    return tmp.x17('TreeMapViewUpdater', 40, false, new DefaultTreeMapView$timer$3$1(this$0));
  };
}
function DefaultTreeMapView$_get_timer_$ref_3t3e87() {
  return (p0) => p0.w3o();
}
var com_treemap_DepthFactory$stable;
var Companion_instance_83;
function Companion_getInstance_83() {
  if (Companion_instance_83 === VOID)
    new Companion_83();
  return Companion_instance_83;
}
var com_treemap_EqualCirclesInCircle$stable;
var EqualCirclesInCircle_instance;
function EqualCirclesInCircle_getInstance() {
  if (EqualCirclesInCircle_instance === VOID)
    new EqualCirclesInCircle();
  return EqualCirclesInCircle_instance;
}
var com_treemap_Exp10Scale$stable;
var com_treemap_ExpScale$stable;
var com_treemap_ExpandLabeling$stable;
var com_treemap_FieldOrdering$stable;
var com_treemap_FixedNesting$stable;
var com_treemap_FlatNoBorderRendering$stable;
var com_treemap_FlatRendering$stable;
var com_treemap_HeightOrdering$stable;
var com_treemap_HighlightParentNodeRenderer$stable;
var com_treemap_IcicleAlgorithm$stable;
function getMaxDepthToLeaf($this, model, root) {
  var maxDepth = 0;
  var it = model.depthFirstIterator(root).h1();
  while (it.i1()) {
    var o = ensureNotNull(it.j1());
    if (model.hasNoChildren(o)) {
      var curDepth = model.getLevel(o);
      if (curDepth > maxDepth)
        maxDepth = curDepth;
    }
  }
  return maxDepth;
}
var com_treemap_InfiniteDepth$stable;
var com_treemap_InverseScale$stable;
var com_treemap_Itertools$stable;
var Itertools_instance;
function Itertools_getInstance() {
  return Itertools_instance;
}
var com_treemap_LabelingFactory$stable;
var Companion_instance_84;
function Companion_getInstance_84() {
  if (Companion_instance_84 === VOID)
    new Companion_84();
  return Companion_instance_84;
}
var com_treemap_LeafNodeRenderer$stable;
var com_treemap_LeafTreeMapNode$stable;
var com_treemap_Log1pScale$stable;
var com_treemap_LogScale$stable;
var com_treemap_MatrixAlgorithm$stable;
function getName($this) {
  return 'Matrix';
}
var Companion_instance_85;
function Companion_getInstance_85() {
  return Companion_instance_85;
}
var com_treemap_MaxAggregation$stable;
var com_treemap_MaxScale$stable;
var com_treemap_MinAggregation$stable;
var com_treemap_MinScale$stable;
var com_treemap_MutableAlgorithmOverrideProperty$stable;
var com_treemap_MutableAlgorithmProperty$stable;
var com_treemap_NestingFactory$stable;
var Companion_instance_86;
function Companion_getInstance_86() {
  if (Companion_instance_86 === VOID)
    new Companion_86();
  return Companion_instance_86;
}
var com_treemap_NodesTreeMapRenderer$stable;
function paint($this, g2, view, model, root, pass, passes, progress) {
  var completed = true;
  var screenBounds = Double_3.z1h(0.0, 0.0, view.z2r().g1h().x15(), view.z2r().h1h().x15());
  g2.e3r(screenBounds);
  var _iterator__ex2g4s = $this.k37_1.z2l(view, root, pass).h1();
  while (_iterator__ex2g4s.i1()) {
    var node = _iterator__ex2g4s.j1();
    if (progress == null || !progress.o17()) {
      if (!model.isRoot(node) && $this.k37_1.c2m(view, node)) {
        var depth = model.getLevel(node) - model.getLevel(root) | 0;
        if (ensureNotNull(model.settings.getDepth()).n2m(depth)) {
          var shape = view.j2m(node);
          if (!(shape == null)) {
            var bounds = shape.f1h();
            var hitClip = g2.f3r(bounds);
            if (hitClip) {
              completed = !!(completed & $this.k37_1.d2m(g2, view, node, pass, passes, bounds, shape));
            }
          }
        }
      }
    } else {
      return Unit_instance;
    }
  }
  if (!completed) {
    view.i32();
  }
}
var Companion_instance_87;
function Companion_getInstance_87() {
  return Companion_instance_87;
}
var com_treemap_NoneAggregation$stable;
var com_treemap_NoneLabeling$stable;
var com_treemap_NoneNesting$stable;
var com_treemap_NumericTransformScale$stable;
var com_treemap_OneLevelIterator$stable;
var SortOrder_Ascending_instance;
var SortOrder_Descending_instance;
var SortOrder_entriesInitialized;
function SortOrder_initEntries() {
  if (SortOrder_entriesInitialized)
    return Unit_instance;
  SortOrder_entriesInitialized = true;
  SortOrder_Ascending_instance = new SortOrder('Ascending', 0);
  SortOrder_Descending_instance = new SortOrder('Descending', 1);
}
function SortOrder_Descending_getInstance() {
  SortOrder_initEntries();
  return SortOrder_Descending_instance;
}
var com_treemap_OrderingFactory$stable;
var Companion_instance_88;
function Companion_getInstance_88() {
  if (Companion_instance_88 === VOID)
    new Companion_88();
  return Companion_instance_88;
}
var com_treemap_OriginalOrdering$stable;
var Companion_instance_89;
function Companion_getInstance_89() {
  return Companion_instance_89;
}
var com_treemap_OriginalScale$stable;
var com_treemap_OverlayLabeling$stable;
var com_treemap_OverridingTreeMapColumnSettings$stable;
var com_treemap_Pair$stable;
var com_treemap_ParentPreorderIterator$stable;
var com_treemap_ParentTreeMapNode$stable;
var com_treemap_PermutationGenerator$stable;
var com_treemap_PieAlgorithm$stable;
var com_treemap_PivotByAlgorithm_Biggest$stable;
var com_treemap_PivotByAlgorithm_Middle$stable;
var com_treemap_PivotByAlgorithm_SplitSize$stable;
var com_treemap_PivotByAlgorithm$stable;
function tryLayout3($this, children, bounds, accessor) {
  // Inline function 'kotlin.arrayOfNulls' call
  var newRectangles = Array(3);
  var sumSize = accessor.getSize(ensureNotNull(children[0])) + accessor.getSize(ensureNotNull(children[1])) + accessor.getSize(ensureNotNull(children[2]));
  var ratio1 = accessor.getSize(ensureNotNull(children[0])) / sumSize;
  var ratio2 = accessor.getSize(ensureNotNull(children[1])) / sumSize;
  var ratio3 = accessor.getSize(ensureNotNull(children[2])) / sumSize;
  var aspectRatio = bounds.gm() / bounds.hm();
  if (aspectRatio >= 1) {
    var w1 = ratio1 * bounds.gm();
    var w2 = ratio2 * bounds.gm();
    var w3 = ratio3 * bounds.gm();
    newRectangles[0] = Double_3.z1h(bounds.g1h(), bounds.h1h(), w1, bounds.hm());
    newRectangles[1] = Double_3.z1h(bounds.g1h() + w1, bounds.h1h(), w2, bounds.hm());
    newRectangles[2] = Double_3.z1h(bounds.g1h() + w1 + w2, bounds.h1h(), w3, bounds.hm());
  } else {
    var h1 = ratio1 * bounds.hm();
    var h2 = ratio2 * bounds.hm();
    var h3 = ratio3 * bounds.hm();
    newRectangles[0] = Double_3.z1h(bounds.g1h(), bounds.h1h(), bounds.gm(), h1);
    newRectangles[1] = Double_3.z1h(bounds.g1h(), bounds.h1h() + h1, bounds.gm(), h2);
    newRectangles[2] = Double_3.z1h(bounds.g1h(), bounds.h1h() + h1 + h2, bounds.gm(), h3);
  }
  return newRectangles;
}
function tryLayout4Quad($this, children, bounds, accessor) {
  // Inline function 'kotlin.arrayOfNulls' call
  var newRectangles = Array(4);
  var sumSize = accessor.getSize(ensureNotNull(children[0])) + accessor.getSize(ensureNotNull(children[1])) + accessor.getSize(ensureNotNull(children[2])) + accessor.getSize(ensureNotNull(children[3]));
  var ratio1 = (accessor.getSize(ensureNotNull(children[0])) + accessor.getSize(ensureNotNull(children[1]))) / sumSize;
  var aspectRatio = bounds.gm() / bounds.hm();
  if (aspectRatio >= 1) {
    var w = ratio1 * bounds.gm();
    var ratio2 = accessor.getSize(ensureNotNull(children[0])) / (accessor.getSize(ensureNotNull(children[0])) + accessor.getSize(ensureNotNull(children[1])));
    var h = ratio2 * bounds.hm();
    newRectangles[0] = Double_3.z1h(bounds.g1h(), bounds.h1h(), w, h);
    newRectangles[1] = Double_3.z1h(bounds.g1h(), bounds.h1h() + h, w, bounds.hm() - h);
    ratio2 = accessor.getSize(ensureNotNull(children[2])) / (accessor.getSize(ensureNotNull(children[2])) + accessor.getSize(ensureNotNull(children[3])));
    h = ratio2 * bounds.hm();
    newRectangles[2] = Double_3.z1h(bounds.g1h() + w, bounds.h1h(), bounds.gm() - w, h);
    newRectangles[3] = Double_3.z1h(bounds.g1h() + w, bounds.h1h() + h, bounds.gm() - w, bounds.hm() - h);
  } else {
    var h_0 = ratio1 * bounds.hm();
    var ratio2_0 = accessor.getSize(ensureNotNull(children[0])) / (accessor.getSize(ensureNotNull(children[0])) + accessor.getSize(ensureNotNull(children[1])));
    var w_0 = ratio2_0 * bounds.gm();
    newRectangles[0] = Double_3.z1h(bounds.g1h(), bounds.h1h(), w_0, h_0);
    newRectangles[1] = Double_3.z1h(bounds.g1h(), bounds.h1h() + h_0, w_0, bounds.hm() - h_0);
    ratio2_0 = accessor.getSize(ensureNotNull(children[2])) / (accessor.getSize(ensureNotNull(children[2])) + accessor.getSize(ensureNotNull(children[3])));
    h_0 = ratio2_0 * bounds.hm();
    newRectangles[2] = Double_3.z1h(bounds.g1h() + w_0, bounds.h1h(), bounds.gm() - w_0, h_0);
    newRectangles[3] = Double_3.z1h(bounds.g1h() + w_0, bounds.h1h() + h_0, bounds.gm() - w_0, bounds.hm() - h_0);
  }
  return newRectangles;
}
function tryLayout4Snake($this, children, bounds, accessor) {
  // Inline function 'kotlin.arrayOfNulls' call
  var newRectangles = Array(4);
  var sumSize = accessor.getSize(ensureNotNull(children[0])) + accessor.getSize(ensureNotNull(children[1])) + accessor.getSize(ensureNotNull(children[2])) + accessor.getSize(ensureNotNull(children[3]));
  var ratio1 = accessor.getSize(ensureNotNull(children[0])) / sumSize;
  var ratio2 = accessor.getSize(ensureNotNull(children[1])) / sumSize;
  var ratio3 = accessor.getSize(ensureNotNull(children[2])) / sumSize;
  var ratio4 = accessor.getSize(ensureNotNull(children[3])) / sumSize;
  var aspectRatio = bounds.gm() / bounds.hm();
  if (aspectRatio >= 1) {
    var w1 = ratio1 * bounds.gm();
    var w2 = ratio2 * bounds.gm();
    var w3 = ratio3 * bounds.gm();
    var w4 = ratio4 * bounds.gm();
    newRectangles[0] = Double_3.z1h(bounds.g1h(), bounds.h1h(), w1, bounds.hm());
    newRectangles[1] = Double_3.z1h(bounds.g1h() + w1, bounds.h1h(), w2, bounds.hm());
    newRectangles[2] = Double_3.z1h(bounds.g1h() + w1 + w2, bounds.h1h(), w3, bounds.hm());
    newRectangles[3] = Double_3.z1h(bounds.g1h() + w1 + w2 + w3, bounds.h1h(), w4, bounds.hm());
  } else {
    var h1 = ratio1 * bounds.hm();
    var h2 = ratio2 * bounds.hm();
    var h3 = ratio3 * bounds.hm();
    var h4 = ratio4 * bounds.hm();
    newRectangles[0] = Double_3.z1h(bounds.g1h(), bounds.h1h(), bounds.gm(), h1);
    newRectangles[1] = Double_3.z1h(bounds.g1h(), bounds.h1h() + h1, bounds.gm(), h2);
    newRectangles[2] = Double_3.z1h(bounds.g1h(), bounds.h1h() + h1 + h2, bounds.gm(), h3);
    newRectangles[3] = Double_3.z1h(bounds.g1h(), bounds.h1h() + h1 + h2 + h3, bounds.gm(), h4);
  }
  return newRectangles;
}
function tryLayout5($this, children, bounds, accessor) {
  // Inline function 'kotlin.arrayOfNulls' call
  var newRectangles = Array(5);
  var sumSize = accessor.getSize(ensureNotNull(children[0])) + accessor.getSize(ensureNotNull(children[1])) + accessor.getSize(ensureNotNull(children[2])) + accessor.getSize(ensureNotNull(children[3])) + accessor.getSize(ensureNotNull(children[4]));
  var ratio1 = accessor.getSize(ensureNotNull(children[0])) / sumSize;
  var ratio2 = accessor.getSize(ensureNotNull(children[1])) / sumSize;
  var ratio3 = accessor.getSize(ensureNotNull(children[2])) / sumSize;
  var ratio4 = accessor.getSize(ensureNotNull(children[3])) / sumSize;
  var ratio5 = accessor.getSize(ensureNotNull(children[4])) / sumSize;
  var aspectRatio = bounds.gm() / bounds.hm();
  if (aspectRatio >= 1) {
    var w1 = ratio1 * bounds.gm();
    var w2 = ratio2 * bounds.gm();
    var w3 = ratio3 * bounds.gm();
    var w4 = ratio4 * bounds.gm();
    var w5 = ratio5 * bounds.gm();
    newRectangles[0] = Double_3.z1h(bounds.g1h(), bounds.h1h(), w1, bounds.hm());
    newRectangles[1] = Double_3.z1h(bounds.g1h() + w1, bounds.h1h(), w2, bounds.hm());
    newRectangles[2] = Double_3.z1h(bounds.g1h() + w1 + w2, bounds.h1h(), w3, bounds.hm());
    newRectangles[3] = Double_3.z1h(bounds.g1h() + w1 + w2 + w3, bounds.h1h(), w4, bounds.hm());
    newRectangles[4] = Double_3.z1h(bounds.g1h() + w1 + w2 + w3 + w4, bounds.h1h(), w5, bounds.hm());
  } else {
    var h1 = ratio1 * bounds.hm();
    var h2 = ratio2 * bounds.hm();
    var h3 = ratio3 * bounds.hm();
    var h4 = ratio4 * bounds.hm();
    var h5 = ratio5 * bounds.hm();
    newRectangles[0] = Double_3.z1h(bounds.g1h(), bounds.h1h(), bounds.gm(), h1);
    newRectangles[1] = Double_3.z1h(bounds.g1h(), bounds.h1h() + h1, bounds.gm(), h2);
    newRectangles[2] = Double_3.z1h(bounds.g1h(), bounds.h1h() + h1 + h2, bounds.gm(), h3);
    newRectangles[3] = Double_3.z1h(bounds.g1h(), bounds.h1h() + h1 + h2 + h3, bounds.gm(), h4);
    newRectangles[4] = Double_3.z1h(bounds.g1h(), bounds.h1h() + h1 + h2 + h3 + h4, bounds.gm(), h5);
  }
  return newRectangles;
}
function copyFromSize(_this__u8e3s4, from, size) {
  return copyOfRange(_this__u8e3s4, from, from + size | 0);
}
var com_treemap_PostorderIterator$stable;
var com_treemap_PreorderIterator$stable;
var Progressive_Disabled_instance;
var Progressive_Incremental_instance;
var Progressive_Iterative_instance;
var Progressive_entriesInitialized;
function Progressive_initEntries() {
  if (Progressive_entriesInitialized)
    return Unit_instance;
  Progressive_entriesInitialized = true;
  Progressive_Disabled_instance = new Progressive('Disabled', 0);
  Progressive_Incremental_instance = new Progressive('Incremental', 1);
  Progressive_Iterative_instance = new Progressive('Iterative', 2);
}
function Progressive_Disabled_getInstance() {
  Progressive_initEntries();
  return Progressive_Disabled_instance;
}
var com_treemap_ProportionalNesting$stable;
var Type_Raw_instance;
var Type_KeepAspectRatio_instance;
var Type_EqualBorderWidth_instance;
var Type_entriesInitialized;
function Type_initEntries() {
  if (Type_entriesInitialized)
    return Unit_instance;
  Type_entriesInitialized = true;
  Type_Raw_instance = new Type('Raw', 0);
  Type_KeepAspectRatio_instance = new Type('KeepAspectRatio', 1);
  Type_EqualBorderWidth_instance = new Type('EqualBorderWidth', 2);
}
var Companion_instance_90;
function Companion_getInstance_90() {
  if (Companion_instance_90 === VOID)
    new Companion_90();
  return Companion_instance_90;
}
function Type_EqualBorderWidth_getInstance() {
  Type_initEntries();
  return Type_EqualBorderWidth_instance;
}
var com_treemap_RectangularTransform$stable;
var Companion_instance_91;
function Companion_getInstance_91() {
  return Companion_instance_91;
}
function init_com_treemap_RectangularTransform(_this__u8e3s4) {
  _this__u8e3s4.o2m_1 = 0.0;
  _this__u8e3s4.p2m_1 = 0.0;
  _this__u8e3s4.q2m_1 = 1.0;
  _this__u8e3s4.r2m_1 = 1.0;
}
var com_treemap_RenderingFactory$stable;
var Companion_instance_92;
function Companion_getInstance_92() {
  if (Companion_instance_92 === VOID)
    new Companion_92();
  return Companion_instance_92;
}
var com_treemap_ScaleFactory$stable;
var Companion_instance_93;
function Companion_getInstance_93() {
  if (Companion_instance_93 === VOID)
    new Companion_93();
  return Companion_instance_93;
}
var com_treemap_SelectionNodeRenderer$stable;
var com_treemap_SizeOrColorOrdering$stable;
var com_treemap_SizeOrdering$stable;
var com_treemap_SizeWeightedAggregation$stable;
var com_treemap_SliceAndDiceAlgorithm_VerticalOrientationStrategy$stable;
var com_treemap_SliceAndDiceAlgorithm_HoritzonalOrientationStrategy$stable;
var com_treemap_SliceAndDiceAlgorithm_BestOrientationStrategy$stable;
var com_treemap_SliceAndDiceAlgorithm_AlternateOrientationStrategy$stable;
var com_treemap_SliceAndDiceAlgorithm$stable;
var com_treemap_SplitAlgorithm$stable;
function getName_0($this) {
  return 'Split';
}
function splitLayout($this, items, r, accessor) {
  if (items.k1() === 0) {
    return true;
  }
  if (items.k1() === 1) {
    accessor.setShape(items.l1(0), r);
    return true;
  }
  var l1 = ArrayList.q1();
  var l2 = ArrayList.q1();
  var r1;
  var r2;
  var halfSize = w($this, items, accessor) / 2;
  var w1 = 0.0;
  var tmp = 0.0;
  var iterator = items.u2();
  $l$loop: while (iterator.i1()) {
    var front = iterator.j1();
    tmp = w1 + accessor.getSize(front);
    var tmp_0;
    // Inline function 'kotlin.math.abs' call
    var x = halfSize - tmp;
    var tmp_1 = Math.abs(x);
    // Inline function 'kotlin.math.abs' call
    var x_0 = halfSize - w1;
    if (tmp_1 > Math.abs(x_0)) {
      tmp_0 = true;
    } else {
      tmp_0 = !iterator.i1();
    }
    if (tmp_0) {
      break $l$loop;
    }
    iterator.t4();
    l1.c1(front);
    w1 = tmp;
  }
  l2 = items;
  if (r.gm() > r.hm()) {
    r1 = Double_3.z1h(r.g1h(), r.h1h(), r.gm() * (w($this, l1, accessor) / (w($this, l1, accessor) + w($this, l2, accessor))), r.hm());
    r2 = Double_3.z1h(r.g1h() + r1.gm(), r.h1h(), r.gm() - r1.gm(), r.hm());
  } else {
    r1 = Double_3.z1h(r.g1h(), r.h1h(), r.gm(), r.hm() * (w($this, l1, accessor) / (w($this, l1, accessor) + w($this, l2, accessor))));
    r2 = Double_3.z1h(r.g1h(), r.h1h() + r1.hm(), r.gm(), r.hm() - r1.hm());
  }
  splitLayout($this, l1, r1, accessor);
  splitLayout($this, l2, r2, accessor);
  return false;
}
function w($this, list, accessor) {
  var sum = 0.0;
  var _iterator__ex2g4s = list.h1();
  while (_iterator__ex2g4s.i1()) {
    var node = _iterator__ex2g4s.j1();
    sum = sum + accessor.getSize(node);
  }
  return sum;
}
var Companion_instance_94;
function Companion_getInstance_94() {
  return Companion_instance_94;
}
var com_treemap_SquarifiedAlgorithm$stable;
function getName_1($this) {
  return 'Squarified';
}
function computeAspectRatio($this, area, width) {
  var aspectRatio = area / (width * width * $this.j3t_1.z2());
  if (aspectRatio < 1.0) {
    aspectRatio = 1.0 / aspectRatio;
  }
  return aspectRatio;
}
var Companion_instance_95;
function Companion_getInstance_95() {
  return Companion_instance_95;
}
var com_treemap_SquarifiedPlusAlgorithm$stable;
function getName_2($this) {
  return 'Squarified+';
}
function bestAspectRatio($this, nodes, current, last, side, sizeFactor, accessor) {
  if (nodes == null || nodes.length === 0) {
    return 1.7976931348623157E308;
  }
  var max = 0.0;
  var inductionVariable = current;
  if (inductionVariable <= last)
    do {
      var i = inductionVariable;
      inductionVariable = inductionVariable + 1 | 0;
      var node = nodes[i];
      var m = computeAspectRatio_0($this, accessor.getSize(node) * sizeFactor, side);
      if (m > max) {
        max = m;
      }
    }
     while (!(i === last));
  return max;
}
function computeAspectRatio_0($this, area, width) {
  var aspectRatio = area / (width * width * $this.m3t_1.z2());
  if (aspectRatio < 1.0) {
    aspectRatio = 1.0 / aspectRatio;
  }
  return aspectRatio;
}
function willImprove($this, actualAR, expandedAR) {
  if (actualAR === 0.0) {
    return true;
  }
  if (expandedAR === 0.0) {
    return false;
  }
  // Inline function 'kotlin.math.abs' call
  var x = actualAR - $this.m3t_1.z2();
  var v1 = Math.abs(x);
  // Inline function 'kotlin.math.abs' call
  var x_0 = expandedAR - $this.m3t_1.z2();
  var v2 = Math.abs(x_0);
  return v1 > v2;
}
var Companion_instance_96;
function Companion_getInstance_96() {
  return Companion_instance_96;
}
var com_treemap_StdDevAggregation$stable;
var com_treemap_StripAlgorithm$stable;
var com_treemap_SumAggregation$stable;
var com_treemap_SunburstAlgorithm$stable;
function getMaxDepthToLeaf_0($this, model, root) {
  var maxDepth = 0;
  var it = model.depthFirstIterator(root).h1();
  while (it.i1()) {
    var o = ensureNotNull(it.j1());
    if (model.hasNoChildren(o)) {
      var curDepth = model.getLevel(o);
      if (curDepth > maxDepth)
        maxDepth = curDepth;
    }
  }
  return maxDepth;
}
var com_treemap_SurroundLabeling$stable;
function computeAllocatedHeight($this, preferredHeight, rectangle) {
  // Inline function 'kotlin.math.min' call
  var a = rectangle.hm() / 5;
  return Math.min(a, preferredHeight);
}
function computeThickness($this, model, rectangle, node) {
  var thickness = rectangle.gm() * rectangle.hm() * 5.0E-4;
  var tmp0 = $this.y3b_1;
  // Inline function 'kotlin.math.min' call
  var a = $this.z3b_1;
  // Inline function 'kotlin.math.max' call
  var b = Math.min(a, thickness);
  return Math.max(tmp0, b);
}
var Companion_instance_97;
function Companion_getInstance_97() {
  return Companion_instance_97;
}
var com_treemap_TextParentNodeRenderer$stable;
var com_treemap_ThresholdDepth$stable;
var Companion_instance_98;
function Companion_getInstance_98() {
  return Companion_instance_98;
}
var com_treemap_TreeMapColorMapPanelModel$stable;
var TreeMapColumnPropertyType_algorithm_instance;
var TreeMapColumnPropertyType_aggregation_instance;
var TreeMapColumnPropertyType_scale_instance;
var TreeMapColumnPropertyType_nesting_instance;
var TreeMapColumnPropertyType_ordering_instance;
var TreeMapColumnPropertyType_orderingDirection_instance;
var TreeMapColumnPropertyType_orderingVerticalVanishingPoint_instance;
var TreeMapColumnPropertyType_orderingHorizontalVanishingPoint_instance;
var TreeMapColumnPropertyType_labeling_instance;
var TreeMapColumnPropertyType_labelingForeground_instance;
var TreeMapColumnPropertyType_labelingEffectColor_instance;
var TreeMapColumnPropertyType_labelingFont_instance;
var TreeMapColumnPropertyType_labelingEffect_instance;
var TreeMapColumnPropertyType_labelingHorizontalAlignment_instance;
var TreeMapColumnPropertyType_labelingVerticalAlignment_instance;
var TreeMapColumnPropertyType_labelingRendering_instance;
var TreeMapColumnPropertyType_labelingMinimumCharactersToDisplay_instance;
var TreeMapColumnPropertyType_labelingEffectOpacity_instance;
var TreeMapColumnPropertyType_labelingShrinkTextToFitShape_instance;
var TreeMapColumnPropertyType_labelingResizeTextToFitShape_instance;
var TreeMapColumnPropertyType_labelingFloat_instance;
var TreeMapColumnPropertyType_labelingContrastEnhancement_instance;
var TreeMapColumnPropertyType_nestingAmount_instance;
var TreeMapColumnPropertyType_nestingBackground_instance;
var TreeMapColumnPropertyType_headerForeground_instance;
var TreeMapColumnPropertyType_headerEffectColor_instance;
var TreeMapColumnPropertyType_headerBackground_instance;
var TreeMapColumnPropertyType_headerFont_instance;
var TreeMapColumnPropertyType_headerEffect_instance;
var TreeMapColumnPropertyType_headerHorizontalAlignment_instance;
var TreeMapColumnPropertyType_headerVerticalAlignment_instance;
var TreeMapColumnPropertyType_headerRendering_instance;
var TreeMapColumnPropertyType_headerMinimumCharactersToDisplay_instance;
var TreeMapColumnPropertyType_headerEffectOpacity_instance;
var TreeMapColumnPropertyType_headerInsets_instance;
var TreeMapColumnPropertyType_tooltipForeground_instance;
var TreeMapColumnPropertyType_tooltipFont_instance;
var TreeMapColumnPropertyType_tooltipRendering_instance;
var TreeMapColumnPropertyType_borderColor_instance;
var TreeMapColumnPropertyType_borderThickness_instance;
var TreeMapColumnPropertyType_format_instance;
var TreeMapColumnPropertyType_showLabel_instance;
var TreeMapColumnPropertyType_colormap_instance;
var TreeMapColumnPropertyType_overrideDefaults_instance;
function values_2() {
  return [TreeMapColumnPropertyType_algorithm_getInstance(), TreeMapColumnPropertyType_aggregation_getInstance(), TreeMapColumnPropertyType_scale_getInstance(), TreeMapColumnPropertyType_nesting_getInstance(), TreeMapColumnPropertyType_ordering_getInstance(), TreeMapColumnPropertyType_orderingDirection_getInstance(), TreeMapColumnPropertyType_orderingVerticalVanishingPoint_getInstance(), TreeMapColumnPropertyType_orderingHorizontalVanishingPoint_getInstance(), TreeMapColumnPropertyType_labeling_getInstance(), TreeMapColumnPropertyType_labelingForeground_getInstance(), TreeMapColumnPropertyType_labelingEffectColor_getInstance(), TreeMapColumnPropertyType_labelingFont_getInstance(), TreeMapColumnPropertyType_labelingEffect_getInstance(), TreeMapColumnPropertyType_labelingHorizontalAlignment_getInstance(), TreeMapColumnPropertyType_labelingVerticalAlignment_getInstance(), TreeMapColumnPropertyType_labelingRendering_getInstance(), TreeMapColumnPropertyType_labelingMinimumCharactersToDisplay_getInstance(), TreeMapColumnPropertyType_labelingEffectOpacity_getInstance(), TreeMapColumnPropertyType_labelingShrinkTextToFitShape_getInstance(), TreeMapColumnPropertyType_labelingResizeTextToFitShape_getInstance(), TreeMapColumnPropertyType_labelingFloat_getInstance(), TreeMapColumnPropertyType_labelingContrastEnhancement_getInstance(), TreeMapColumnPropertyType_nestingAmount_getInstance(), TreeMapColumnPropertyType_nestingBackground_getInstance(), TreeMapColumnPropertyType_headerForeground_getInstance(), TreeMapColumnPropertyType_headerEffectColor_getInstance(), TreeMapColumnPropertyType_headerBackground_getInstance(), TreeMapColumnPropertyType_headerFont_getInstance(), TreeMapColumnPropertyType_headerEffect_getInstance(), TreeMapColumnPropertyType_headerHorizontalAlignment_getInstance(), TreeMapColumnPropertyType_headerVerticalAlignment_getInstance(), TreeMapColumnPropertyType_headerRendering_getInstance(), TreeMapColumnPropertyType_headerMinimumCharactersToDisplay_getInstance(), TreeMapColumnPropertyType_headerEffectOpacity_getInstance(), TreeMapColumnPropertyType_headerInsets_getInstance(), TreeMapColumnPropertyType_tooltipForeground_getInstance(), TreeMapColumnPropertyType_tooltipFont_getInstance(), TreeMapColumnPropertyType_tooltipRendering_getInstance(), TreeMapColumnPropertyType_borderColor_getInstance(), TreeMapColumnPropertyType_borderThickness_getInstance(), TreeMapColumnPropertyType_format_getInstance(), TreeMapColumnPropertyType_showLabel_getInstance(), TreeMapColumnPropertyType_colormap_getInstance(), TreeMapColumnPropertyType_overrideDefaults_getInstance()];
}
function valueOf_1(value) {
  switch (value) {
    case 'algorithm':
      return TreeMapColumnPropertyType_algorithm_getInstance();
    case 'aggregation':
      return TreeMapColumnPropertyType_aggregation_getInstance();
    case 'scale':
      return TreeMapColumnPropertyType_scale_getInstance();
    case 'nesting':
      return TreeMapColumnPropertyType_nesting_getInstance();
    case 'ordering':
      return TreeMapColumnPropertyType_ordering_getInstance();
    case 'orderingDirection':
      return TreeMapColumnPropertyType_orderingDirection_getInstance();
    case 'orderingVerticalVanishingPoint':
      return TreeMapColumnPropertyType_orderingVerticalVanishingPoint_getInstance();
    case 'orderingHorizontalVanishingPoint':
      return TreeMapColumnPropertyType_orderingHorizontalVanishingPoint_getInstance();
    case 'labeling':
      return TreeMapColumnPropertyType_labeling_getInstance();
    case 'labelingForeground':
      return TreeMapColumnPropertyType_labelingForeground_getInstance();
    case 'labelingEffectColor':
      return TreeMapColumnPropertyType_labelingEffectColor_getInstance();
    case 'labelingFont':
      return TreeMapColumnPropertyType_labelingFont_getInstance();
    case 'labelingEffect':
      return TreeMapColumnPropertyType_labelingEffect_getInstance();
    case 'labelingHorizontalAlignment':
      return TreeMapColumnPropertyType_labelingHorizontalAlignment_getInstance();
    case 'labelingVerticalAlignment':
      return TreeMapColumnPropertyType_labelingVerticalAlignment_getInstance();
    case 'labelingRendering':
      return TreeMapColumnPropertyType_labelingRendering_getInstance();
    case 'labelingMinimumCharactersToDisplay':
      return TreeMapColumnPropertyType_labelingMinimumCharactersToDisplay_getInstance();
    case 'labelingEffectOpacity':
      return TreeMapColumnPropertyType_labelingEffectOpacity_getInstance();
    case 'labelingShrinkTextToFitShape':
      return TreeMapColumnPropertyType_labelingShrinkTextToFitShape_getInstance();
    case 'labelingResizeTextToFitShape':
      return TreeMapColumnPropertyType_labelingResizeTextToFitShape_getInstance();
    case 'labelingFloat':
      return TreeMapColumnPropertyType_labelingFloat_getInstance();
    case 'labelingContrastEnhancement':
      return TreeMapColumnPropertyType_labelingContrastEnhancement_getInstance();
    case 'nestingAmount':
      return TreeMapColumnPropertyType_nestingAmount_getInstance();
    case 'nestingBackground':
      return TreeMapColumnPropertyType_nestingBackground_getInstance();
    case 'headerForeground':
      return TreeMapColumnPropertyType_headerForeground_getInstance();
    case 'headerEffectColor':
      return TreeMapColumnPropertyType_headerEffectColor_getInstance();
    case 'headerBackground':
      return TreeMapColumnPropertyType_headerBackground_getInstance();
    case 'headerFont':
      return TreeMapColumnPropertyType_headerFont_getInstance();
    case 'headerEffect':
      return TreeMapColumnPropertyType_headerEffect_getInstance();
    case 'headerHorizontalAlignment':
      return TreeMapColumnPropertyType_headerHorizontalAlignment_getInstance();
    case 'headerVerticalAlignment':
      return TreeMapColumnPropertyType_headerVerticalAlignment_getInstance();
    case 'headerRendering':
      return TreeMapColumnPropertyType_headerRendering_getInstance();
    case 'headerMinimumCharactersToDisplay':
      return TreeMapColumnPropertyType_headerMinimumCharactersToDisplay_getInstance();
    case 'headerEffectOpacity':
      return TreeMapColumnPropertyType_headerEffectOpacity_getInstance();
    case 'headerInsets':
      return TreeMapColumnPropertyType_headerInsets_getInstance();
    case 'tooltipForeground':
      return TreeMapColumnPropertyType_tooltipForeground_getInstance();
    case 'tooltipFont':
      return TreeMapColumnPropertyType_tooltipFont_getInstance();
    case 'tooltipRendering':
      return TreeMapColumnPropertyType_tooltipRendering_getInstance();
    case 'borderColor':
      return TreeMapColumnPropertyType_borderColor_getInstance();
    case 'borderThickness':
      return TreeMapColumnPropertyType_borderThickness_getInstance();
    case 'format':
      return TreeMapColumnPropertyType_format_getInstance();
    case 'showLabel':
      return TreeMapColumnPropertyType_showLabel_getInstance();
    case 'colormap':
      return TreeMapColumnPropertyType_colormap_getInstance();
    case 'overrideDefaults':
      return TreeMapColumnPropertyType_overrideDefaults_getInstance();
    default:
      TreeMapColumnPropertyType_initEntries();
      THROW_IAE('No enum constant com.treemap.TreeMapColumnPropertyType.' + value);
      break;
  }
}
var TreeMapColumnPropertyType_entriesInitialized;
function TreeMapColumnPropertyType_initEntries() {
  if (TreeMapColumnPropertyType_entriesInitialized)
    return Unit_instance;
  TreeMapColumnPropertyType_entriesInitialized = true;
  TreeMapColumnPropertyType_algorithm_instance = new TreeMapColumnPropertyType('algorithm', 0);
  TreeMapColumnPropertyType_aggregation_instance = new TreeMapColumnPropertyType('aggregation', 1);
  TreeMapColumnPropertyType_scale_instance = new TreeMapColumnPropertyType('scale', 2);
  TreeMapColumnPropertyType_nesting_instance = new TreeMapColumnPropertyType('nesting', 3);
  TreeMapColumnPropertyType_ordering_instance = new TreeMapColumnPropertyType('ordering', 4);
  TreeMapColumnPropertyType_orderingDirection_instance = new TreeMapColumnPropertyType('orderingDirection', 5);
  TreeMapColumnPropertyType_orderingVerticalVanishingPoint_instance = new TreeMapColumnPropertyType('orderingVerticalVanishingPoint', 6);
  TreeMapColumnPropertyType_orderingHorizontalVanishingPoint_instance = new TreeMapColumnPropertyType('orderingHorizontalVanishingPoint', 7);
  TreeMapColumnPropertyType_labeling_instance = new TreeMapColumnPropertyType('labeling', 8);
  TreeMapColumnPropertyType_labelingForeground_instance = new TreeMapColumnPropertyType('labelingForeground', 9);
  TreeMapColumnPropertyType_labelingEffectColor_instance = new TreeMapColumnPropertyType('labelingEffectColor', 10);
  TreeMapColumnPropertyType_labelingFont_instance = new TreeMapColumnPropertyType('labelingFont', 11);
  TreeMapColumnPropertyType_labelingEffect_instance = new TreeMapColumnPropertyType('labelingEffect', 12);
  TreeMapColumnPropertyType_labelingHorizontalAlignment_instance = new TreeMapColumnPropertyType('labelingHorizontalAlignment', 13);
  TreeMapColumnPropertyType_labelingVerticalAlignment_instance = new TreeMapColumnPropertyType('labelingVerticalAlignment', 14);
  TreeMapColumnPropertyType_labelingRendering_instance = new TreeMapColumnPropertyType('labelingRendering', 15);
  TreeMapColumnPropertyType_labelingMinimumCharactersToDisplay_instance = new TreeMapColumnPropertyType('labelingMinimumCharactersToDisplay', 16);
  TreeMapColumnPropertyType_labelingEffectOpacity_instance = new TreeMapColumnPropertyType('labelingEffectOpacity', 17);
  TreeMapColumnPropertyType_labelingShrinkTextToFitShape_instance = new TreeMapColumnPropertyType('labelingShrinkTextToFitShape', 18);
  TreeMapColumnPropertyType_labelingResizeTextToFitShape_instance = new TreeMapColumnPropertyType('labelingResizeTextToFitShape', 19);
  TreeMapColumnPropertyType_labelingFloat_instance = new TreeMapColumnPropertyType('labelingFloat', 20);
  TreeMapColumnPropertyType_labelingContrastEnhancement_instance = new TreeMapColumnPropertyType('labelingContrastEnhancement', 21);
  TreeMapColumnPropertyType_nestingAmount_instance = new TreeMapColumnPropertyType('nestingAmount', 22);
  TreeMapColumnPropertyType_nestingBackground_instance = new TreeMapColumnPropertyType('nestingBackground', 23);
  TreeMapColumnPropertyType_headerForeground_instance = new TreeMapColumnPropertyType('headerForeground', 24);
  TreeMapColumnPropertyType_headerEffectColor_instance = new TreeMapColumnPropertyType('headerEffectColor', 25);
  TreeMapColumnPropertyType_headerBackground_instance = new TreeMapColumnPropertyType('headerBackground', 26);
  TreeMapColumnPropertyType_headerFont_instance = new TreeMapColumnPropertyType('headerFont', 27);
  TreeMapColumnPropertyType_headerEffect_instance = new TreeMapColumnPropertyType('headerEffect', 28);
  TreeMapColumnPropertyType_headerHorizontalAlignment_instance = new TreeMapColumnPropertyType('headerHorizontalAlignment', 29);
  TreeMapColumnPropertyType_headerVerticalAlignment_instance = new TreeMapColumnPropertyType('headerVerticalAlignment', 30);
  TreeMapColumnPropertyType_headerRendering_instance = new TreeMapColumnPropertyType('headerRendering', 31);
  TreeMapColumnPropertyType_headerMinimumCharactersToDisplay_instance = new TreeMapColumnPropertyType('headerMinimumCharactersToDisplay', 32);
  TreeMapColumnPropertyType_headerEffectOpacity_instance = new TreeMapColumnPropertyType('headerEffectOpacity', 33);
  TreeMapColumnPropertyType_headerInsets_instance = new TreeMapColumnPropertyType('headerInsets', 34);
  TreeMapColumnPropertyType_tooltipForeground_instance = new TreeMapColumnPropertyType('tooltipForeground', 35);
  TreeMapColumnPropertyType_tooltipFont_instance = new TreeMapColumnPropertyType('tooltipFont', 36);
  TreeMapColumnPropertyType_tooltipRendering_instance = new TreeMapColumnPropertyType('tooltipRendering', 37);
  TreeMapColumnPropertyType_borderColor_instance = new TreeMapColumnPropertyType('borderColor', 38);
  TreeMapColumnPropertyType_borderThickness_instance = new TreeMapColumnPropertyType('borderThickness', 39);
  TreeMapColumnPropertyType_format_instance = new TreeMapColumnPropertyType('format', 40);
  TreeMapColumnPropertyType_showLabel_instance = new TreeMapColumnPropertyType('showLabel', 41);
  TreeMapColumnPropertyType_colormap_instance = new TreeMapColumnPropertyType('colormap', 42);
  TreeMapColumnPropertyType_overrideDefaults_instance = new TreeMapColumnPropertyType('overrideDefaults', 43);
}
function TreeMapColumnPropertyType_algorithm_getInstance() {
  TreeMapColumnPropertyType_initEntries();
  return TreeMapColumnPropertyType_algorithm_instance;
}
function TreeMapColumnPropertyType_aggregation_getInstance() {
  TreeMapColumnPropertyType_initEntries();
  return TreeMapColumnPropertyType_aggregation_instance;
}
function TreeMapColumnPropertyType_scale_getInstance() {
  TreeMapColumnPropertyType_initEntries();
  return TreeMapColumnPropertyType_scale_instance;
}
function TreeMapColumnPropertyType_nesting_getInstance() {
  TreeMapColumnPropertyType_initEntries();
  return TreeMapColumnPropertyType_nesting_instance;
}
function TreeMapColumnPropertyType_ordering_getInstance() {
  TreeMapColumnPropertyType_initEntries();
  return TreeMapColumnPropertyType_ordering_instance;
}
function TreeMapColumnPropertyType_orderingDirection_getInstance() {
  TreeMapColumnPropertyType_initEntries();
  return TreeMapColumnPropertyType_orderingDirection_instance;
}
function TreeMapColumnPropertyType_orderingVerticalVanishingPoint_getInstance() {
  TreeMapColumnPropertyType_initEntries();
  return TreeMapColumnPropertyType_orderingVerticalVanishingPoint_instance;
}
function TreeMapColumnPropertyType_orderingHorizontalVanishingPoint_getInstance() {
  TreeMapColumnPropertyType_initEntries();
  return TreeMapColumnPropertyType_orderingHorizontalVanishingPoint_instance;
}
function TreeMapColumnPropertyType_labeling_getInstance() {
  TreeMapColumnPropertyType_initEntries();
  return TreeMapColumnPropertyType_labeling_instance;
}
function TreeMapColumnPropertyType_labelingForeground_getInstance() {
  TreeMapColumnPropertyType_initEntries();
  return TreeMapColumnPropertyType_labelingForeground_instance;
}
function TreeMapColumnPropertyType_labelingEffectColor_getInstance() {
  TreeMapColumnPropertyType_initEntries();
  return TreeMapColumnPropertyType_labelingEffectColor_instance;
}
function TreeMapColumnPropertyType_labelingFont_getInstance() {
  TreeMapColumnPropertyType_initEntries();
  return TreeMapColumnPropertyType_labelingFont_instance;
}
function TreeMapColumnPropertyType_labelingEffect_getInstance() {
  TreeMapColumnPropertyType_initEntries();
  return TreeMapColumnPropertyType_labelingEffect_instance;
}
function TreeMapColumnPropertyType_labelingHorizontalAlignment_getInstance() {
  TreeMapColumnPropertyType_initEntries();
  return TreeMapColumnPropertyType_labelingHorizontalAlignment_instance;
}
function TreeMapColumnPropertyType_labelingVerticalAlignment_getInstance() {
  TreeMapColumnPropertyType_initEntries();
  return TreeMapColumnPropertyType_labelingVerticalAlignment_instance;
}
function TreeMapColumnPropertyType_labelingRendering_getInstance() {
  TreeMapColumnPropertyType_initEntries();
  return TreeMapColumnPropertyType_labelingRendering_instance;
}
function TreeMapColumnPropertyType_labelingMinimumCharactersToDisplay_getInstance() {
  TreeMapColumnPropertyType_initEntries();
  return TreeMapColumnPropertyType_labelingMinimumCharactersToDisplay_instance;
}
function TreeMapColumnPropertyType_labelingEffectOpacity_getInstance() {
  TreeMapColumnPropertyType_initEntries();
  return TreeMapColumnPropertyType_labelingEffectOpacity_instance;
}
function TreeMapColumnPropertyType_labelingShrinkTextToFitShape_getInstance() {
  TreeMapColumnPropertyType_initEntries();
  return TreeMapColumnPropertyType_labelingShrinkTextToFitShape_instance;
}
function TreeMapColumnPropertyType_labelingResizeTextToFitShape_getInstance() {
  TreeMapColumnPropertyType_initEntries();
  return TreeMapColumnPropertyType_labelingResizeTextToFitShape_instance;
}
function TreeMapColumnPropertyType_labelingFloat_getInstance() {
  TreeMapColumnPropertyType_initEntries();
  return TreeMapColumnPropertyType_labelingFloat_instance;
}
function TreeMapColumnPropertyType_labelingContrastEnhancement_getInstance() {
  TreeMapColumnPropertyType_initEntries();
  return TreeMapColumnPropertyType_labelingContrastEnhancement_instance;
}
function TreeMapColumnPropertyType_nestingAmount_getInstance() {
  TreeMapColumnPropertyType_initEntries();
  return TreeMapColumnPropertyType_nestingAmount_instance;
}
function TreeMapColumnPropertyType_nestingBackground_getInstance() {
  TreeMapColumnPropertyType_initEntries();
  return TreeMapColumnPropertyType_nestingBackground_instance;
}
function TreeMapColumnPropertyType_headerForeground_getInstance() {
  TreeMapColumnPropertyType_initEntries();
  return TreeMapColumnPropertyType_headerForeground_instance;
}
function TreeMapColumnPropertyType_headerEffectColor_getInstance() {
  TreeMapColumnPropertyType_initEntries();
  return TreeMapColumnPropertyType_headerEffectColor_instance;
}
function TreeMapColumnPropertyType_headerBackground_getInstance() {
  TreeMapColumnPropertyType_initEntries();
  return TreeMapColumnPropertyType_headerBackground_instance;
}
function TreeMapColumnPropertyType_headerFont_getInstance() {
  TreeMapColumnPropertyType_initEntries();
  return TreeMapColumnPropertyType_headerFont_instance;
}
function TreeMapColumnPropertyType_headerEffect_getInstance() {
  TreeMapColumnPropertyType_initEntries();
  return TreeMapColumnPropertyType_headerEffect_instance;
}
function TreeMapColumnPropertyType_headerHorizontalAlignment_getInstance() {
  TreeMapColumnPropertyType_initEntries();
  return TreeMapColumnPropertyType_headerHorizontalAlignment_instance;
}
function TreeMapColumnPropertyType_headerVerticalAlignment_getInstance() {
  TreeMapColumnPropertyType_initEntries();
  return TreeMapColumnPropertyType_headerVerticalAlignment_instance;
}
function TreeMapColumnPropertyType_headerRendering_getInstance() {
  TreeMapColumnPropertyType_initEntries();
  return TreeMapColumnPropertyType_headerRendering_instance;
}
function TreeMapColumnPropertyType_headerMinimumCharactersToDisplay_getInstance() {
  TreeMapColumnPropertyType_initEntries();
  return TreeMapColumnPropertyType_headerMinimumCharactersToDisplay_instance;
}
function TreeMapColumnPropertyType_headerEffectOpacity_getInstance() {
  TreeMapColumnPropertyType_initEntries();
  return TreeMapColumnPropertyType_headerEffectOpacity_instance;
}
function TreeMapColumnPropertyType_headerInsets_getInstance() {
  TreeMapColumnPropertyType_initEntries();
  return TreeMapColumnPropertyType_headerInsets_instance;
}
function TreeMapColumnPropertyType_tooltipForeground_getInstance() {
  TreeMapColumnPropertyType_initEntries();
  return TreeMapColumnPropertyType_tooltipForeground_instance;
}
function TreeMapColumnPropertyType_tooltipFont_getInstance() {
  TreeMapColumnPropertyType_initEntries();
  return TreeMapColumnPropertyType_tooltipFont_instance;
}
function TreeMapColumnPropertyType_tooltipRendering_getInstance() {
  TreeMapColumnPropertyType_initEntries();
  return TreeMapColumnPropertyType_tooltipRendering_instance;
}
function TreeMapColumnPropertyType_borderColor_getInstance() {
  TreeMapColumnPropertyType_initEntries();
  return TreeMapColumnPropertyType_borderColor_instance;
}
function TreeMapColumnPropertyType_borderThickness_getInstance() {
  TreeMapColumnPropertyType_initEntries();
  return TreeMapColumnPropertyType_borderThickness_instance;
}
function TreeMapColumnPropertyType_format_getInstance() {
  TreeMapColumnPropertyType_initEntries();
  return TreeMapColumnPropertyType_format_instance;
}
function TreeMapColumnPropertyType_showLabel_getInstance() {
  TreeMapColumnPropertyType_initEntries();
  return TreeMapColumnPropertyType_showLabel_instance;
}
function TreeMapColumnPropertyType_colormap_getInstance() {
  TreeMapColumnPropertyType_initEntries();
  return TreeMapColumnPropertyType_colormap_instance;
}
function TreeMapColumnPropertyType_overrideDefaults_getInstance() {
  TreeMapColumnPropertyType_initEntries();
  return TreeMapColumnPropertyType_overrideDefaults_instance;
}
var com_treemap_TreeMapEvent$stable;
var com_treemap_TreeMapFilterCoordinator$stable;
var com_treemap_TreeMapProbingCoordinator$stable;
var TreeMapPropertyType_sizeField_instance;
var TreeMapPropertyType_colorField_instance;
var TreeMapPropertyType_labelsField_instance;
var TreeMapPropertyType_toolTipField_instance;
var TreeMapPropertyType_backgroundField_instance;
var TreeMapPropertyType_heightField_instance;
var TreeMapPropertyType_groupByField_instance;
var TreeMapPropertyType_depth_instance;
var TreeMapPropertyType_rendering_instance;
var TreeMapPropertyType_background_instance;
var TreeMapPropertyType_tooltipBackground_instance;
var TreeMapPropertyType_probingColor_instance;
var TreeMapPropertyType_selectionColor_instance;
var TreeMapPropertyType_hideSearchResults_instance;
var TreeMapPropertyType_hideFilterResults_instance;
var TreeMapPropertyType_dimension_instance;
var TreeMapPropertyType_dimensionFixed_instance;
var TreeMapPropertyType_maximumHeight_instance;
var TreeMapPropertyType_lightSourceHeight_instance;
var TreeMapPropertyType_lightSourceAmbient_instance;
var TreeMapPropertyType_lightSourceX_instance;
var TreeMapPropertyType_lightSourceY_instance;
var TreeMapPropertyType_lightSourceZ_instance;
var TreeMapPropertyType_progressive_instance;
function values_3() {
  return [TreeMapPropertyType_sizeField_getInstance(), TreeMapPropertyType_colorField_getInstance(), TreeMapPropertyType_labelsField_getInstance(), TreeMapPropertyType_toolTipField_getInstance(), TreeMapPropertyType_backgroundField_getInstance(), TreeMapPropertyType_heightField_getInstance(), TreeMapPropertyType_groupByField_getInstance(), TreeMapPropertyType_depth_getInstance(), TreeMapPropertyType_rendering_getInstance(), TreeMapPropertyType_background_getInstance(), TreeMapPropertyType_tooltipBackground_getInstance(), TreeMapPropertyType_probingColor_getInstance(), TreeMapPropertyType_selectionColor_getInstance(), TreeMapPropertyType_hideSearchResults_getInstance(), TreeMapPropertyType_hideFilterResults_getInstance(), TreeMapPropertyType_dimension_getInstance(), TreeMapPropertyType_dimensionFixed_getInstance(), TreeMapPropertyType_maximumHeight_getInstance(), TreeMapPropertyType_lightSourceHeight_getInstance(), TreeMapPropertyType_lightSourceAmbient_getInstance(), TreeMapPropertyType_lightSourceX_getInstance(), TreeMapPropertyType_lightSourceY_getInstance(), TreeMapPropertyType_lightSourceZ_getInstance(), TreeMapPropertyType_progressive_getInstance()];
}
function valueOf_2(value) {
  switch (value) {
    case 'sizeField':
      return TreeMapPropertyType_sizeField_getInstance();
    case 'colorField':
      return TreeMapPropertyType_colorField_getInstance();
    case 'labelsField':
      return TreeMapPropertyType_labelsField_getInstance();
    case 'toolTipField':
      return TreeMapPropertyType_toolTipField_getInstance();
    case 'backgroundField':
      return TreeMapPropertyType_backgroundField_getInstance();
    case 'heightField':
      return TreeMapPropertyType_heightField_getInstance();
    case 'groupByField':
      return TreeMapPropertyType_groupByField_getInstance();
    case 'depth':
      return TreeMapPropertyType_depth_getInstance();
    case 'rendering':
      return TreeMapPropertyType_rendering_getInstance();
    case 'background':
      return TreeMapPropertyType_background_getInstance();
    case 'tooltipBackground':
      return TreeMapPropertyType_tooltipBackground_getInstance();
    case 'probingColor':
      return TreeMapPropertyType_probingColor_getInstance();
    case 'selectionColor':
      return TreeMapPropertyType_selectionColor_getInstance();
    case 'hideSearchResults':
      return TreeMapPropertyType_hideSearchResults_getInstance();
    case 'hideFilterResults':
      return TreeMapPropertyType_hideFilterResults_getInstance();
    case 'dimension':
      return TreeMapPropertyType_dimension_getInstance();
    case 'dimensionFixed':
      return TreeMapPropertyType_dimensionFixed_getInstance();
    case 'maximumHeight':
      return TreeMapPropertyType_maximumHeight_getInstance();
    case 'lightSourceHeight':
      return TreeMapPropertyType_lightSourceHeight_getInstance();
    case 'lightSourceAmbient':
      return TreeMapPropertyType_lightSourceAmbient_getInstance();
    case 'lightSourceX':
      return TreeMapPropertyType_lightSourceX_getInstance();
    case 'lightSourceY':
      return TreeMapPropertyType_lightSourceY_getInstance();
    case 'lightSourceZ':
      return TreeMapPropertyType_lightSourceZ_getInstance();
    case 'progressive':
      return TreeMapPropertyType_progressive_getInstance();
    default:
      TreeMapPropertyType_initEntries();
      THROW_IAE('No enum constant com.treemap.TreeMapPropertyType.' + value);
      break;
  }
}
var TreeMapPropertyType_entriesInitialized;
function TreeMapPropertyType_initEntries() {
  if (TreeMapPropertyType_entriesInitialized)
    return Unit_instance;
  TreeMapPropertyType_entriesInitialized = true;
  TreeMapPropertyType_sizeField_instance = new TreeMapPropertyType('sizeField', 0);
  TreeMapPropertyType_colorField_instance = new TreeMapPropertyType('colorField', 1);
  TreeMapPropertyType_labelsField_instance = new TreeMapPropertyType('labelsField', 2);
  TreeMapPropertyType_toolTipField_instance = new TreeMapPropertyType('toolTipField', 3);
  TreeMapPropertyType_backgroundField_instance = new TreeMapPropertyType('backgroundField', 4);
  TreeMapPropertyType_heightField_instance = new TreeMapPropertyType('heightField', 5);
  TreeMapPropertyType_groupByField_instance = new TreeMapPropertyType('groupByField', 6);
  TreeMapPropertyType_depth_instance = new TreeMapPropertyType('depth', 7);
  TreeMapPropertyType_rendering_instance = new TreeMapPropertyType('rendering', 8);
  TreeMapPropertyType_background_instance = new TreeMapPropertyType('background', 9);
  TreeMapPropertyType_tooltipBackground_instance = new TreeMapPropertyType('tooltipBackground', 10);
  TreeMapPropertyType_probingColor_instance = new TreeMapPropertyType('probingColor', 11);
  TreeMapPropertyType_selectionColor_instance = new TreeMapPropertyType('selectionColor', 12);
  TreeMapPropertyType_hideSearchResults_instance = new TreeMapPropertyType('hideSearchResults', 13);
  TreeMapPropertyType_hideFilterResults_instance = new TreeMapPropertyType('hideFilterResults', 14);
  TreeMapPropertyType_dimension_instance = new TreeMapPropertyType('dimension', 15);
  TreeMapPropertyType_dimensionFixed_instance = new TreeMapPropertyType('dimensionFixed', 16);
  TreeMapPropertyType_maximumHeight_instance = new TreeMapPropertyType('maximumHeight', 17);
  TreeMapPropertyType_lightSourceHeight_instance = new TreeMapPropertyType('lightSourceHeight', 18);
  TreeMapPropertyType_lightSourceAmbient_instance = new TreeMapPropertyType('lightSourceAmbient', 19);
  TreeMapPropertyType_lightSourceX_instance = new TreeMapPropertyType('lightSourceX', 20);
  TreeMapPropertyType_lightSourceY_instance = new TreeMapPropertyType('lightSourceY', 21);
  TreeMapPropertyType_lightSourceZ_instance = new TreeMapPropertyType('lightSourceZ', 22);
  TreeMapPropertyType_progressive_instance = new TreeMapPropertyType('progressive', 23);
}
function TreeMapPropertyType_sizeField_getInstance() {
  TreeMapPropertyType_initEntries();
  return TreeMapPropertyType_sizeField_instance;
}
function TreeMapPropertyType_colorField_getInstance() {
  TreeMapPropertyType_initEntries();
  return TreeMapPropertyType_colorField_instance;
}
function TreeMapPropertyType_labelsField_getInstance() {
  TreeMapPropertyType_initEntries();
  return TreeMapPropertyType_labelsField_instance;
}
function TreeMapPropertyType_toolTipField_getInstance() {
  TreeMapPropertyType_initEntries();
  return TreeMapPropertyType_toolTipField_instance;
}
function TreeMapPropertyType_backgroundField_getInstance() {
  TreeMapPropertyType_initEntries();
  return TreeMapPropertyType_backgroundField_instance;
}
function TreeMapPropertyType_heightField_getInstance() {
  TreeMapPropertyType_initEntries();
  return TreeMapPropertyType_heightField_instance;
}
function TreeMapPropertyType_groupByField_getInstance() {
  TreeMapPropertyType_initEntries();
  return TreeMapPropertyType_groupByField_instance;
}
function TreeMapPropertyType_depth_getInstance() {
  TreeMapPropertyType_initEntries();
  return TreeMapPropertyType_depth_instance;
}
function TreeMapPropertyType_rendering_getInstance() {
  TreeMapPropertyType_initEntries();
  return TreeMapPropertyType_rendering_instance;
}
function TreeMapPropertyType_background_getInstance() {
  TreeMapPropertyType_initEntries();
  return TreeMapPropertyType_background_instance;
}
function TreeMapPropertyType_tooltipBackground_getInstance() {
  TreeMapPropertyType_initEntries();
  return TreeMapPropertyType_tooltipBackground_instance;
}
function TreeMapPropertyType_probingColor_getInstance() {
  TreeMapPropertyType_initEntries();
  return TreeMapPropertyType_probingColor_instance;
}
function TreeMapPropertyType_selectionColor_getInstance() {
  TreeMapPropertyType_initEntries();
  return TreeMapPropertyType_selectionColor_instance;
}
function TreeMapPropertyType_hideSearchResults_getInstance() {
  TreeMapPropertyType_initEntries();
  return TreeMapPropertyType_hideSearchResults_instance;
}
function TreeMapPropertyType_hideFilterResults_getInstance() {
  TreeMapPropertyType_initEntries();
  return TreeMapPropertyType_hideFilterResults_instance;
}
function TreeMapPropertyType_dimension_getInstance() {
  TreeMapPropertyType_initEntries();
  return TreeMapPropertyType_dimension_instance;
}
function TreeMapPropertyType_dimensionFixed_getInstance() {
  TreeMapPropertyType_initEntries();
  return TreeMapPropertyType_dimensionFixed_instance;
}
function TreeMapPropertyType_maximumHeight_getInstance() {
  TreeMapPropertyType_initEntries();
  return TreeMapPropertyType_maximumHeight_instance;
}
function TreeMapPropertyType_lightSourceHeight_getInstance() {
  TreeMapPropertyType_initEntries();
  return TreeMapPropertyType_lightSourceHeight_instance;
}
function TreeMapPropertyType_lightSourceAmbient_getInstance() {
  TreeMapPropertyType_initEntries();
  return TreeMapPropertyType_lightSourceAmbient_instance;
}
function TreeMapPropertyType_lightSourceX_getInstance() {
  TreeMapPropertyType_initEntries();
  return TreeMapPropertyType_lightSourceX_instance;
}
function TreeMapPropertyType_lightSourceY_getInstance() {
  TreeMapPropertyType_initEntries();
  return TreeMapPropertyType_lightSourceY_instance;
}
function TreeMapPropertyType_lightSourceZ_getInstance() {
  TreeMapPropertyType_initEntries();
  return TreeMapPropertyType_lightSourceZ_instance;
}
function TreeMapPropertyType_progressive_getInstance() {
  TreeMapPropertyType_initEntries();
  return TreeMapPropertyType_progressive_instance;
}
var com_treemap_TreeMapSelectionCoordinator$stable;
var com_treemap_TreeMapSettingsEvent$stable;
var ToolTipType_Heavyweight_instance;
var ToolTipType_Lightweight_instance;
var ToolTipType_Painted_instance;
var ToolTipType_entriesInitialized;
function ToolTipType_initEntries() {
  if (ToolTipType_entriesInitialized)
    return Unit_instance;
  ToolTipType_entriesInitialized = true;
  ToolTipType_Heavyweight_instance = new ToolTipType('Heavyweight', 0);
  ToolTipType_Lightweight_instance = new ToolTipType('Lightweight', 1);
  ToolTipType_Painted_instance = new ToolTipType('Painted', 2);
}
function ToolTipType_Painted_getInstance() {
  ToolTipType_initEntries();
  return ToolTipType_Painted_instance;
}
var com_treemap_XPlus1Scale$stable;
var com_treemap_colormap_DataFrameColorMapFactory$stable;
var DataFrameColorMapFactory_instance;
function DataFrameColorMapFactory_getInstance() {
  return DataFrameColorMapFactory_instance;
}
var com_treemap_crossplatform_AbstractTGraphics$stable;
var Companion_instance_99;
function Companion_getInstance_99() {
  return Companion_instance_99;
}
var com_treemap_details_DetailsDataFrame$stable;
var com_treemap_tagcloud_AbstractTagCloudAlgorithm$stable;
var com_treemap_tagcloud_ArchimedeanSpiral$stable;
var com_treemap_tagcloud_DefaultWord$stable;
var com_treemap_tagcloud_HierarchicalBoundingBox$stable;
var com_treemap_tagcloud_HierarchicalBoundingBoxPair$stable;
var com_treemap_tagcloud_HierarchicalBoundingBoxes$stable;
var com_treemap_tagcloud_Interpolator$stable;
var com_treemap_tagcloud_LinearizedPathIterator$stable;
var com_treemap_tagcloud_Point2d$stable;
var com_treemap_tagcloud_PointPlusAccumulatedDistance$stable;
var com_treemap_tagcloud_PositionIterator$stable;
var com_treemap_tagcloud_RectangularTextShape$stable;
var com_treemap_tagcloud_Tuple2d$stable;
var com_treemap_tagcloud_Vector2d$stable;
var com_treemap_treeplot_Spoint$stable;
var com_treemap_JsTreeMap$stable;
function JsTreeMap$lambda($model) {
  return ($this$create) => {
    $this$create.model = $model;
    return Unit_instance;
  };
}
function get_TreeMapComponent() {
  _init_properties_TreeMap_kt__gvwl04();
  return TreeMapComponent_0;
}
var TreeMapComponent_0;
function getTreeMapComponent() {
  _init_properties_TreeMap_kt__gvwl04();
  return get_TreeMapComponent();
}
function TreeMapComponent$lambda($this$FC, props) {
  _init_properties_TreeMap_kt__gvwl04();
  var treeMap = DefaultTreeMap.q3c();
  treeMap.o2n(props.model);
  // Inline function 'react.ChildrenBuilder.invoke' call
  var this_0 = treeMap.component.l26();
  addChild($this$FC, this_0);
  return Unit_instance;
}
var properties_initialized_TreeMap_kt_89j11q;
function _init_properties_TreeMap_kt__gvwl04() {
  if (!properties_initialized_TreeMap_kt_89j11q) {
    properties_initialized_TreeMap_kt_89j11q = true;
    TreeMapComponent_0 = FC(TreeMapComponent$lambda);
  }
}
var com_treemap_crossplatform_CanvasRenderingContext2DTGraphics$stable;
function paintWordWrapText($this, g, label, text, maxWidth, x, yStart, foreground, background, paint) {
  var maxWidth_0 = maxWidth;
  var x_0 = x;
  maxWidth_0 = maxWidth_0 - (label.getInsetLeft() + label.getInsetRight() | 0) | 0;
  var w = label.getInsetLeft() + label.getInsetRight();
  x_0 = x_0 + label.getInsetLeft() | 0;
  var y = yStart + label.getInsetTop() | 0;
  var tmp;
  if (maxWidth_0 > 0 && !(text == null)) {
    // Inline function 'kotlin.text.isNotEmpty' call
    tmp = charSequenceLength(text) > 0;
  } else {
    tmp = false;
  }
  if (tmp) {
    // Inline function 'kotlin.collections.toTypedArray' call
    var this_0 = split(text, [' ']);
    var tmp$ret$1 = copyToArray(this_0);
    var words = ArrayList.s(listOf_0(tmp$ret$1.slice()));
    var line = '';
    var lineCount = 0;
    var i;
    var test;
    var testMetrics = null;
    i = 0;
    while (i < words.k1()) {
      test = words.l1(i);
      testMetrics = $this.y3u_1.measureText(test);
      while (ensureNotNull(testMetrics).width > maxWidth_0) {
        test = substring(test, 0, test.length - 1 | 0);
        testMetrics = $this.y3u_1.measureText(test);
      }
      if (!(words.l1(i) === test)) {
        words.p5(i + 1 | 0, substring_0(words.l1(i), test.length));
        words.p4(i, test);
      }
      test = line + words.l1(i) + toString(_Char___init__impl__6a9atx(32));
      var previousMetrics = testMetrics;
      testMetrics = $this.y3u_1.measureText(test);
      if (testMetrics.width > maxWidth_0 && i > 0) {
        if (paint) {
          $this.g3v(label, x_0, y, maxWidth_0, line);
        }
        line = words.l1(i) + toString(_Char___init__impl__6a9atx(32));
        y = y + $this.h3v(label) | 0;
        lineCount = lineCount + 1 | 0;
        var tmp0 = w;
        // Inline function 'kotlin.math.max' call
        var b = ensureNotNull(previousMetrics).width;
        w = Math.max(tmp0, b);
      } else {
        line = test;
      }
      i = i + 1 | 0;
    }
    if (paint) {
      $this.g3v(label, x_0, y, maxWidth_0, line);
    }
    if (!(testMetrics == null)) {
      var tmp0_0 = w;
      // Inline function 'kotlin.math.max' call
      var b_0 = testMetrics.width;
      w = Math.max(tmp0_0, b_0);
    }
    y = y + $this.h3v(label) | 0;
  }
  // Inline function 'kotlin.math.ceil' call
  var x_1 = w;
  var tmp$ret$4 = Math.ceil(x_1);
  var tmp_0 = numberToInt(tmp$ret$4);
  // Inline function 'kotlin.math.ceil' call
  var x_2 = y;
  var tmp$ret$5 = Math.ceil(x_2);
  return Dimension.fm(tmp_0, numberToInt(tmp$ret$5) + label.getInsetBottom() | 0);
}
var com_treemap_crossplatform_Headless$stable;
//region block: post-declaration
initMetadataForInterface(CharSequence, 'CharSequence');
initMetadataForInterface(Comparable, 'Comparable');
initMetadataForClass(Error_0, 'Error', Error_0.gc);
initMetadataForClass(IrLinkageError, 'IrLinkageError');
initMetadataForInterface(Iterable, 'Iterable');
initMetadataForClass(asIterable$$inlined$Iterable$1, VOID, VOID, VOID, [Iterable]);
initMetadataForClass(Exception, 'Exception', Exception.jb);
initMetadataForClass(RuntimeException, 'RuntimeException', RuntimeException.c2);
initMetadataForClass(KotlinNothingValueException, 'KotlinNothingValueException', KotlinNothingValueException.z1);
initMetadataForCompanion(Companion);
initMetadataForClass(Char, 'Char', VOID, VOID, [Comparable]);
initMetadataForCompanion(Companion_0);
initMetadataForInterface(Collection, 'Collection', VOID, VOID, [Iterable]);
initMetadataForInterface(KtList, 'List', VOID, VOID, [Collection]);
initMetadataForCompanion(Companion_1);
initMetadataForInterface(KtSet, 'Set', VOID, VOID, [Collection]);
initMetadataForInterface(Entry, 'Entry');
initMetadataForInterface(KtMap, 'Map');
initMetadataForInterface(MutableIterable, 'MutableIterable', VOID, VOID, [Iterable]);
initMetadataForInterface(MutableCollection, 'MutableCollection', VOID, VOID, [Collection, MutableIterable]);
initMetadataForCompanion(Companion_2);
initMetadataForClass(Enum, 'Enum', VOID, VOID, [Comparable]);
initMetadataForInterface(FunctionAdapter, 'FunctionAdapter');
initMetadataForClass(arrayIterator$1);
initMetadataForClass(JsArrayView, 'JsArrayView');
initMetadataForClass(JsSetView, 'JsSetView', JsSetView);
initMetadataForObject(Digit, 'Digit');
initMetadataForObject(Letter, 'Letter');
initMetadataForInterface(Comparator, 'Comparator');
initMetadataForObject(Unit, 'Unit');
initMetadataForClass(AbstractCollection, 'AbstractCollection', VOID, VOID, [Collection]);
initMetadataForClass(AbstractMutableCollection, 'AbstractMutableCollection', VOID, VOID, [AbstractCollection, MutableCollection]);
initMetadataForClass(IteratorImpl, 'IteratorImpl');
initMetadataForClass(ListIteratorImpl, 'ListIteratorImpl');
protoOf(AbstractMutableList).asJsReadonlyArrayView = asJsReadonlyArrayView;
initMetadataForClass(AbstractMutableList, 'AbstractMutableList', VOID, VOID, [AbstractMutableCollection, MutableCollection, KtList]);
initMetadataForInterface(RandomAccess, 'RandomAccess');
initMetadataForClass(SubList, 'SubList', VOID, VOID, [AbstractMutableList, RandomAccess]);
initMetadataForClass(AbstractMap, 'AbstractMap', VOID, VOID, [KtMap]);
initMetadataForClass(AbstractMutableMap, 'AbstractMutableMap', VOID, VOID, [AbstractMap, KtMap]);
protoOf(AbstractMutableSet).asJsReadonlySetView = asJsReadonlySetView;
initMetadataForClass(AbstractMutableSet, 'AbstractMutableSet', VOID, VOID, [AbstractMutableCollection, MutableCollection, KtSet]);
initMetadataForCompanion(Companion_3);
initMetadataForClass(ArrayList, 'ArrayList', ArrayList.q1, VOID, [AbstractMutableList, MutableCollection, KtList, RandomAccess]);
initMetadataForClass(HashMap, 'HashMap', HashMap.i7, VOID, [AbstractMutableMap, KtMap]);
initMetadataForClass(HashMapKeys, 'HashMapKeys', VOID, VOID, [MutableCollection, KtSet, AbstractMutableSet]);
initMetadataForClass(HashMapValues, 'HashMapValues', VOID, VOID, [MutableCollection, AbstractMutableCollection]);
initMetadataForClass(HashMapEntrySetBase, 'HashMapEntrySetBase', VOID, VOID, [MutableCollection, KtSet, AbstractMutableSet]);
initMetadataForClass(HashMapEntrySet, 'HashMapEntrySet');
initMetadataForClass(HashMapKeysDefault$iterator$1);
initMetadataForClass(HashMapKeysDefault, 'HashMapKeysDefault');
initMetadataForClass(HashMapValuesDefault$iterator$1);
initMetadataForClass(HashMapValuesDefault, 'HashMapValuesDefault');
initMetadataForClass(HashSet, 'HashSet', HashSet.c9, VOID, [AbstractMutableSet, MutableCollection, KtSet]);
initMetadataForCompanion(Companion_4);
initMetadataForClass(Itr, 'Itr');
initMetadataForClass(KeysItr, 'KeysItr');
initMetadataForClass(ValuesItr, 'ValuesItr');
initMetadataForClass(EntriesItr, 'EntriesItr');
initMetadataForClass(EntryRef, 'EntryRef', VOID, VOID, [Entry]);
initMetadataForInterface(InternalMap, 'InternalMap');
protoOf(InternalHashMap).v8 = containsAllEntries;
initMetadataForClass(InternalHashMap, 'InternalHashMap', InternalHashMap.t7, VOID, [InternalMap]);
initMetadataForObject(EmptyHolder, 'EmptyHolder');
initMetadataForClass(LinkedHashSet, 'LinkedHashSet', LinkedHashSet.m1, VOID, [HashSet, MutableCollection, KtSet]);
initMetadataForClass(BaseOutput, 'BaseOutput');
initMetadataForClass(NodeJsOutput, 'NodeJsOutput');
initMetadataForClass(BufferedOutput, 'BufferedOutput', BufferedOutput);
initMetadataForClass(BufferedOutputToConsoleLog, 'BufferedOutputToConsoleLog', BufferedOutputToConsoleLog);
initMetadataForClass(UnsupportedOperationException, 'UnsupportedOperationException', UnsupportedOperationException.q3);
initMetadataForClass(IllegalStateException, 'IllegalStateException', IllegalStateException.gb);
initMetadataForClass(IllegalArgumentException, 'IllegalArgumentException', IllegalArgumentException.hb);
initMetadataForClass(NoSuchElementException, 'NoSuchElementException', NoSuchElementException.y4);
initMetadataForClass(IndexOutOfBoundsException, 'IndexOutOfBoundsException', IndexOutOfBoundsException.qb);
initMetadataForClass(ClassCastException, 'ClassCastException', ClassCastException.i4);
initMetadataForClass(NumberFormatException, 'NumberFormatException', NumberFormatException.wb);
initMetadataForClass(ArithmeticException, 'ArithmeticException', ArithmeticException.bc);
initMetadataForClass(AssertionError, 'AssertionError', AssertionError.fc);
initMetadataForClass(ConcurrentModificationException, 'ConcurrentModificationException', ConcurrentModificationException.aa);
initMetadataForClass(NullPointerException, 'NullPointerException', NullPointerException.a4);
initMetadataForClass(UninitializedPropertyAccessException, 'UninitializedPropertyAccessException', UninitializedPropertyAccessException.jc);
initMetadataForClass(NoWhenBranchMatchedException, 'NoWhenBranchMatchedException', NoWhenBranchMatchedException.e4);
initMetadataForInterface(KClass, 'KClass');
initMetadataForClass(KClassImpl, 'KClassImpl', VOID, VOID, [KClass]);
initMetadataForClass(PrimitiveKClassImpl, 'PrimitiveKClassImpl');
initMetadataForObject(NothingKClassImpl, 'NothingKClassImpl');
initMetadataForClass(SimpleKClassImpl, 'SimpleKClassImpl');
initMetadataForInterface(KProperty1, 'KProperty1');
initMetadataForInterface(KMutableProperty1, 'KMutableProperty1', VOID, VOID, [KProperty1]);
initMetadataForObject(PrimitiveClasses, 'PrimitiveClasses');
initMetadataForClass(StringBuilder, 'StringBuilder', StringBuilder.y, VOID, [CharSequence]);
initMetadataForCompanion(Companion_5);
initMetadataForClass(sam$kotlin_Comparator$0, 'sam$kotlin_Comparator$0', VOID, VOID, [Comparator, FunctionAdapter]);
initMetadataForClass(ExceptionTraceBuilder, 'ExceptionTraceBuilder', ExceptionTraceBuilder);
initMetadataForCompanion(Companion_6);
initMetadataForCompanion(Companion_7);
initMetadataForCompanion(Companion_8);
protoOf(EmptyList).asJsReadonlyArrayView = asJsReadonlyArrayView;
initMetadataForObject(EmptyList, 'EmptyList', VOID, VOID, [KtList, RandomAccess]);
initMetadataForObject(EmptyIterator, 'EmptyIterator');
initMetadataForClass(ArrayAsCollection, 'ArrayAsCollection', VOID, VOID, [Collection]);
initMetadataForClass(IntIterator, 'IntIterator');
protoOf(EmptySet).asJsReadonlySetView = asJsReadonlySetView;
initMetadataForObject(EmptySet, 'EmptySet', VOID, VOID, [KtSet]);
initMetadataForObject(NaturalOrderComparator, 'NaturalOrderComparator', VOID, VOID, [Comparator]);
initMetadataForObject(Delegates, 'Delegates');
initMetadataForClass(ObservableProperty, 'ObservableProperty');
initMetadataForClass(Random, 'Random');
initMetadataForObject(Default, 'Default');
initMetadataForCompanion(Companion_9);
initMetadataForClass(XorWowRandom, 'XorWowRandom');
initMetadataForCompanion(Companion_10);
initMetadataForClass(IntProgression, 'IntProgression', VOID, VOID, [Iterable]);
initMetadataForInterface(ClosedRange, 'ClosedRange');
initMetadataForClass(IntRange, 'IntRange', VOID, VOID, [IntProgression, ClosedRange]);
initMetadataForClass(IntProgressionIterator, 'IntProgressionIterator');
initMetadataForCompanion(Companion_11);
initMetadataForCompanion(Companion_12);
initMetadataForClass(Builder, 'Builder');
initMetadataForCompanion(Companion_13);
initMetadataForClass(BytesHexFormat, 'BytesHexFormat');
initMetadataForClass(NumberHexFormat, 'NumberHexFormat');
initMetadataForClass(Builder_0, 'Builder');
initMetadataForCompanion(Companion_14);
initMetadataForClass(HexFormat, 'HexFormat');
initMetadataForObject(State, 'State');
initMetadataForClass(LinesIterator, 'LinesIterator');
initMetadataForClass(DelimitedRangesSequence$iterator$1);
initMetadataForClass(DelimitedRangesSequence, 'DelimitedRangesSequence');
initMetadataForClass(lineSequence$$inlined$Sequence$1);
initMetadataForClass(UnsafeLazyImpl, 'UnsafeLazyImpl');
initMetadataForObject(UNINITIALIZED_VALUE, 'UNINITIALIZED_VALUE');
initMetadataForClass(NotImplementedError, 'NotImplementedError', NotImplementedError.ui);
initMetadataForClass(Pair, 'Pair');
initMetadataForCompanion(Companion_15);
initMetadataForClass(ULong, 'ULong', VOID, VOID, [Comparable]);
initMetadataForClass(EnumMap, 'EnumMap', VOID, VOID, [KtMap]);
initMetadataForClass(ConcatenateIterator, 'ConcatenateIterator');
initMetadataForClass(EmptyIterator_0, 'EmptyIterator', EmptyIterator_0);
initMetadataForClass(ConcatenateIterable, 'ConcatenateIterable', VOID, VOID, [Iterable]);
initMetadataForObject(Iterables, 'Iterables');
initMetadataForClass(SortedSet, 'SortedSet');
initMetadataForClass(UniversalComparator, 'UniversalComparator', UniversalComparator, VOID, [Comparator]);
initMetadataForClass(WeakReference, 'WeakReference');
initMetadataForClass(AbstractUICommand, 'AbstractUICommand');
initMetadataForClass(HtmlString, 'HtmlString');
initMetadataForClass(WeakFilterListener, 'WeakFilterListener');
initMetadataForCompanion(Companion_16);
initMetadataForClass(AbstractFilter, 'AbstractFilter');
initMetadataForClass(AbstractMutableFilter, 'AbstractMutableFilter');
initMetadataForClass(SimpleFilter, 'SimpleFilter', SimpleFilter);
initMetadataForInterface(CPFormat, 'CPFormat');
initMetadataForClass(AbstractFormat, 'AbstractFormat', VOID, VOID, [CPFormat]);
initMetadataForClass(DecimalFormat, 'DecimalFormat');
initMetadataForClass(DecimalFormatSymbols, 'DecimalFormatSymbols', DecimalFormatSymbols);
initMetadataForClass(SwingFormat, 'SwingFormat');
initMetadataForInterface(FormatFactoryCommon, 'FormatFactoryCommon');
initMetadataForClass(Dimension, 'Dimension', Dimension.em);
initMetadataForClass(AbstractIndex, 'AbstractIndex');
initMetadataForClass(AbstractMutableInterval, 'AbstractMutableInterval');
initMetadataForClass(AbstractBoundedInterval, 'AbstractBoundedInterval');
initMetadataForClass(WeakIntervalListener, 'WeakIntervalListener');
initMetadataForClass(BoundedIntervalEvent, 'BoundedIntervalEvent');
initMetadataForClass(ClosedInterval, 'ClosedInterval');
initMetadataForClass(IntervalEvent, 'IntervalEvent');
initMetadataForClass(PropertyClosedInterval, 'PropertyClosedInterval');
initMetadataForClass(OpenInterval, 'OpenInterval');
initMetadataForInterface(PropertyListener, 'PropertyListener');
initMetadataForClass(PropertyClosedInterval$1, VOID, VOID, VOID, [PropertyListener]);
initMetadataForClass(PropertyClosedInterval$2, VOID, VOID, VOID, [PropertyListener]);
initMetadataForClass(SimpleBoundedInterval$intervalListener$1);
initMetadataForClass(SimpleBoundedInterval, 'SimpleBoundedInterval');
initMetadataForCompanion(Companion_17);
initMetadataForInterface(BigDecimal, 'BigDecimal', VOID, VOID, [Comparable]);
initMetadataForCompanion(Companion_18);
initMetadataForInterface(BigInteger, 'BigInteger', VOID, VOID, [Comparable]);
initMetadataForClass(BigIntegerRange$iterator$1);
protoOf(BigIntegerRange).u1 = contains;
protoOf(BigIntegerRange).p1 = isEmpty;
initMetadataForClass(BigIntegerRange, 'BigIntegerRange', VOID, VOID, [ClosedRange, Iterable]);
initMetadataForCompanion(Companion_19);
initMetadataForClass(BitSieve, 'BitSieve');
initMetadataForCompanion(Companion_20);
initMetadataForObject(LongOverflow, 'LongOverflow');
initMetadataForClass(StringBuilderHelper, 'StringBuilderHelper', StringBuilderHelper);
initMetadataForCompanion(Companion_21);
protoOf(CommonBigDecimal).sqrt = sqrt;
initMetadataForClass(CommonBigDecimal, 'CommonBigDecimal', VOID, VOID, [BigDecimal]);
initMetadataForCompanion(Companion_22);
protoOf(CommonBigInteger).rangeTo = rangeTo;
protoOf(CommonBigInteger).rangeToInt = rangeToInt;
protoOf(CommonBigInteger).rangeToLong = rangeToLong;
protoOf(CommonBigInteger).plusInt = plusInt;
protoOf(CommonBigInteger).plusLong = plusLong;
protoOf(CommonBigInteger).minusInt = minusInt;
protoOf(CommonBigInteger).minusLong = minusLong;
protoOf(CommonBigInteger).timesInt = timesInt;
protoOf(CommonBigInteger).timesLong = timesLong;
protoOf(CommonBigInteger).divInt = divInt;
protoOf(CommonBigInteger).divLong = divLong;
protoOf(CommonBigInteger).divideAndRemainderInt = divideAndRemainderInt;
protoOf(CommonBigInteger).divideAndRemainderLong = divideAndRemainderLong;
protoOf(CommonBigInteger).reminderInt = reminderInt;
protoOf(CommonBigInteger).reminderLong = reminderLong;
protoOf(CommonBigInteger).gcdInt = gcdInt;
protoOf(CommonBigInteger).gcdLong = gcdLong;
protoOf(CommonBigInteger).remInt = remInt;
protoOf(CommonBigInteger).remLong = remLong;
protoOf(CommonBigInteger).modInverseInt = modInverseInt;
protoOf(CommonBigInteger).modInverseLong = modInverseLong;
protoOf(CommonBigInteger).andInt = andInt;
protoOf(CommonBigInteger).andLong = andLong;
protoOf(CommonBigInteger).orInt = orInt;
protoOf(CommonBigInteger).orLong = orLong;
protoOf(CommonBigInteger).xorInt = xorInt;
protoOf(CommonBigInteger).xorLong = xorLong;
protoOf(CommonBigInteger).andNotInt = andNotInt;
protoOf(CommonBigInteger).andNotLong = andNotLong;
initMetadataForClass(CommonBigInteger, 'CommonBigInteger', VOID, VOID, [BigInteger]);
initMetadataForCompanion(Companion_23);
initMetadataForClass(MathContext, 'MathContext', MathContext);
initMetadataForCompanion(Companion_24);
initMetadataForClass(MutableBigInteger, 'MutableBigInteger', MutableBigInteger.rr);
initMetadataForCompanion(Companion_25);
initMetadataForClass(RoundingMode, 'RoundingMode');
initMetadataForClass(SignedMutableBigInteger, 'SignedMutableBigInteger', SignedMutableBigInteger.cx);
initMetadataForClass(AbstractProperty, 'AbstractProperty');
initMetadataForInterface(MutableProperty, 'MutableProperty');
protoOf(AbstractMutableProperty).bf = getValue;
protoOf(AbstractMutableProperty).by = setValue;
initMetadataForClass(AbstractMutableProperty, 'AbstractMutableProperty', VOID, VOID, [AbstractProperty, MutableProperty]);
initMetadataForClass(WeakPropertiesListener, 'WeakPropertiesListener');
initMetadataForClass(AbstractProperties, 'AbstractProperties', VOID, VOID, [Iterable]);
initMetadataForClass(WeakPropertyListener, 'WeakPropertyListener', VOID, VOID, [PropertyListener]);
initMetadataForClass(EnumProperties$ExposedProperty$listener$1, VOID, VOID, VOID, [PropertyListener]);
initMetadataForClass(NamedPropertyListener, 'NamedPropertyListener', VOID, VOID, [PropertyListener]);
initMetadataForClass(ExposedProperty, 'ExposedProperty', VOID, VOID, [AbstractMutableProperty, MutableProperty]);
initMetadataForClass(EnumProperties, 'EnumProperties', VOID, VOID, [AbstractProperties, Iterable]);
initMetadataForClass(KReadWriteProperty, 'KReadWriteProperty');
initMetadataForCompanion(Companion_26);
initMetadataForClass(OverrideProperties$registerPropertyListener$1, VOID, VOID, VOID, [PropertyListener]);
initMetadataForClass(OverrideProperties, 'OverrideProperties', VOID, VOID, [AbstractProperties, Iterable]);
initMetadataForClass(OverrideProperty$overridePropertyListener$1, VOID, VOID, VOID, [PropertyListener]);
initMetadataForClass(OverrideProperty$1, VOID, VOID, VOID, [PropertyListener]);
initMetadataForClass(OverrideProperty$2, VOID, VOID, VOID, [PropertyListener]);
initMetadataForClass(OverrideProperty, 'OverrideProperty');
initMetadataForClass(PropertyDelegates$mutable$1);
initMetadataForObject(PropertyDelegates, 'PropertyDelegates');
initMetadataForClass(PropertyEvent, 'PropertyEvent');
initMetadataForClass(SimpleProperties$ExposedProperty$listener$1, VOID, VOID, VOID, [PropertyListener]);
initMetadataForClass(NamedPropertyListener_0, 'NamedPropertyListener', VOID, VOID, [PropertyListener]);
initMetadataForClass(ExposedProperty_0, 'ExposedProperty', VOID, VOID, [AbstractMutableProperty, MutableProperty]);
initMetadataForClass(SimpleProperties, 'SimpleProperties', SimpleProperties, VOID, [AbstractProperties, Iterable]);
initMetadataForCompanion(Companion_27);
initMetadataForClass(SimpleProperty$value$$inlined$observable$1);
initMetadataForClass(SimpleProperty, 'SimpleProperty', VOID, VOID, [AbstractMutableProperty, MutableProperty]);
initMetadataForClass(StartEnd, 'StartEnd');
initMetadataForClass(BoundedIntervalProperty$1);
initMetadataForClass(BoundedIntervalProperty, 'BoundedIntervalProperty');
initMetadataForClass(NumericTransform, 'NumericTransform');
initMetadataForObject(Probit, 'Probit');
initMetadataForClass(AbstractSelection, 'AbstractSelection', VOID, VOID, [Iterable]);
initMetadataForClass(AbstractMutableSelection, 'AbstractMutableSelection', VOID, VOID, [AbstractSelection, Iterable]);
initMetadataForClass(WeakSingleSelectionListener, 'WeakSingleSelectionListener');
initMetadataForClass(AbstractMutableSingleSelection, 'AbstractMutableSingleSelection', VOID, VOID, [AbstractMutableSelection, Iterable]);
initMetadataForClass(WeakSelectionListener, 'WeakSelectionListener');
initMetadataForClass(AbstractSelectionEvent, 'AbstractSelectionEvent');
initMetadataForClass(PropertySelection$1, VOID, VOID, VOID, [PropertyListener]);
initMetadataForClass(PropertySelection, 'PropertySelection', VOID, VOID, [AbstractMutableSelection, Iterable]);
initMetadataForClass(PropertySingleSelection$iterator$1);
initMetadataForClass(PropertySingleSelection$1, VOID, VOID, VOID, [PropertyListener]);
initMetadataForClass(PropertySingleSelection, 'PropertySingleSelection', VOID, VOID, [AbstractMutableSingleSelection, Iterable]);
initMetadataForClass(SimpleSelection, 'SimpleSelection', SimpleSelection.x14, VOID, [AbstractMutableSelection, Iterable]);
initMetadataForClass(SimpleSelectionEvent, 'SimpleSelectionEvent');
initMetadataForClass(SimpleSingleSelection$iterator$1);
initMetadataForClass(SimpleSingleSelection, 'SimpleSingleSelection', SimpleSingleSelection.h15, VOID, [AbstractMutableSingleSelection, Iterable]);
initMetadataForClass(SingleSelectionEvent, 'SingleSelectionEvent');
initMetadataForClass(AbstractCPTimer, 'AbstractCPTimer');
initMetadataForClass(AbstractMutableOneDScreenTransform, 'AbstractMutableOneDScreenTransform');
initMetadataForClass(RangesScreenTransformCoordinator$xRangeListener$1);
initMetadataForClass(RangesScreenTransformCoordinator$yRangeListener$1);
initMetadataForClass(RangesScreenTransformCoordinator, 'RangesScreenTransformCoordinator');
initMetadataForClass(ScreenTransformEvent, 'ScreenTransformEvent', ScreenTransformEvent);
initMetadataForClass(SimpleOneDScreenTransform$intervalListener$1);
initMetadataForClass(SimpleOneDScreenTransform, 'SimpleOneDScreenTransform');
initMetadataForClass(Quantity, 'Quantity', VOID, VOID, [Comparable]);
initMetadataForObject(CollectionFactory, 'CollectionFactory');
initMetadataForClass(JsArrayList, 'JsArrayList');
initMetadataForClass(SoftReference, 'SoftReference');
initMetadataForClass(CallableFuture, 'CallableFuture');
initMetadataForClass(ExecutorService, 'ExecutorService', ExecutorService);
initMetadataForCompanion(Companion_28);
initMetadataForClass(Runtime, 'Runtime', Runtime);
initMetadataForCompanion(Companion_29);
initMetadataForClass(CPHelper, 'CPHelper', CPHelper);
initMetadataForClass(Timer, 'Timer');
initMetadataForClass(GWTTimer$1);
initMetadataForClass(GWTTimer, 'GWTTimer');
initMetadataForCompanion(Companion_30);
initMetadataForClass(FormatFactory$createDecimalFormat$1, VOID, VOID, VOID, [CPFormat]);
protoOf(FormatFactory).am = createDecimalFormat;
protoOf(FormatFactory).bm = createDecimalFormat_0;
initMetadataForClass(FormatFactory, 'FormatFactory', FormatFactory, VOID, [FormatFactoryCommon]);
initMetadataForObject(BigDecimals, 'BigDecimals');
initMetadataForObject(BigIntegers, 'BigIntegers');
initMetadataForClass(Timing, 'Timing', Timing);
initMetadataForObject(ReactHTML, 'ReactHTML');
initMetadataForInterface(IColor, 'IColor');
initMetadataForClass(PropertyType, 'PropertyType');
initMetadataForClass(WeakColorMapListener, 'WeakColorMapListener');
initMetadataForCompanion(Companion_31);
initMetadataForClass(AbstractColorMap, 'AbstractColorMap');
initMetadataForClass(Assignments, 'Assignments');
initMetadataForClass(ColorMapEvent, 'ColorMapEvent');
initMetadataForCompanion(Companion_32);
initMetadataForClass(ColorMapFactory, 'ColorMapFactory', ColorMapFactory);
initMetadataForClass(Matching, 'Matching');
initMetadataForClass(SetStoreMutableProperty$1, VOID, VOID, VOID, [PropertyListener]);
initMetadataForClass(SetStoreMutableProperty$2, VOID, VOID, VOID, [PropertyListener]);
initMetadataForClass(SetStoreMutableProperty$3, VOID, VOID, VOID, [PropertyListener]);
initMetadataForClass(SetStoreMutableProperty, 'SetStoreMutableProperty');
initMetadataForClass(SimpleColorMap$intervalListener$1);
initMetadataForClass(SimpleColorMap$paletteListener$1);
initMetadataForClass(SimpleColorMap$1, VOID, VOID, VOID, [PropertyListener]);
initMetadataForClass(SimpleColorMap$2, VOID, VOID, VOID, [PropertyListener]);
initMetadataForClass(SimpleColorMap$3, VOID, VOID, VOID, [PropertyListener]);
initMetadataForClass(SimpleColorMap$4, VOID, VOID, VOID, [PropertyListener]);
initMetadataForClass(SimpleColorMap$5, VOID, VOID, VOID, [PropertyListener]);
initMetadataForClass(SimpleColorMap$6, VOID, VOID, VOID, [PropertyListener]);
initMetadataForClass(SimpleColorMap$7, VOID, VOID, VOID, [PropertyListener]);
initMetadataForClass(SimpleColorMap$8, VOID, VOID, VOID, [PropertyListener]);
initMetadataForClass(SimpleColorMap$9, VOID, VOID, VOID, [PropertyListener]);
initMetadataForClass(SimpleColorMap, 'SimpleColorMap');
initMetadataForClass(MutableColorMapOverrideProperty, 'MutableColorMapOverrideProperty');
initMetadataForClass(MutableColorMapProperty$colorMapListener$1);
initMetadataForClass(MutableColorMapProperty, 'MutableColorMapProperty');
initMetadataForClass(InteractiveComponentListeners, 'InteractiveComponentListeners', InteractiveComponentListeners);
initMetadataForClass(Posture, 'Posture');
initMetadataForClass(Weight, 'Weight');
initMetadataForCompanion(Companion_33);
initMetadataForInterface(Shape, 'Shape');
initMetadataForInterface(Rectangle2D, 'Rectangle2D', VOID, VOID, [Shape]);
protoOf(AbstractRectangle2D).q1h = getPathIterator$default;
initMetadataForClass(AbstractRectangle2D, 'AbstractRectangle2D', VOID, VOID, [Rectangle2D]);
initMetadataForCompanion(Companion_34);
initMetadataForClass(AffineTransform, 'AffineTransform', AffineTransform.j1j);
initMetadataForCompanion(Companion_35);
initMetadataForInterface(Arc2D, 'Arc2D', VOID, VOID, [Shape]);
protoOf(Double).q1h = getPathIterator$default;
protoOf(Double).f1h = get_bounds;
initMetadataForClass(Double, 'Double', VOID, VOID, [Arc2D]);
initMetadataForCompanion(Companion_36);
initMetadataForClass(ArcIterator, 'ArcIterator');
initMetadataForClass(AreaIterator, 'AreaIterator');
initMetadataForCompanion(Companion_37);
protoOf(Area).q1h = getPathIterator$default;
protoOf(Area).f1h = get_bounds;
initMetadataForClass(Area, 'Area', Area.s1m, VOID, [Shape]);
initMetadataForClass(sam$kotlin_Comparator$0_0, 'sam$kotlin_Comparator$0', VOID, VOID, [Comparator, FunctionAdapter]);
initMetadataForClass(AreaOp, 'AreaOp');
initMetadataForClass(CAGOp, 'CAGOp');
initMetadataForClass(IntOp, 'IntOp', IntOp);
initMetadataForClass(XorOp, 'XorOp', XorOp);
initMetadataForClass(NZWindOp, 'NZWindOp', NZWindOp);
initMetadataForClass(EOWindOp, 'EOWindOp', EOWindOp);
initMetadataForCompanion(Companion_38);
initMetadataForClass(ChainEnd, 'ChainEnd');
initMetadataForClass(Crossings, 'Crossings');
initMetadataForClass(EvenOdd, 'EvenOdd');
initMetadataForCompanion(Companion_39);
initMetadataForCompanion(Companion_40);
initMetadataForClass(Curve, 'Curve');
initMetadataForClass(CurveLink, 'CurveLink');
initMetadataForCompanion(Companion_41);
initMetadataForClass(Edge, 'Edge');
initMetadataForInterface(Ellipse2D, 'Ellipse2D', VOID, VOID, [Shape]);
protoOf(Double_0).q1h = getPathIterator$default;
protoOf(Double_0).f1h = get_bounds;
initMetadataForClass(Double_0, 'Double', VOID, VOID, [Ellipse2D]);
initMetadataForCompanion(Companion_42);
initMetadataForClass(EllipseIterator, 'EllipseIterator');
initMetadataForCompanion(Companion_43);
initMetadataForClass(Order0, 'Order0');
initMetadataForClass(Order1, 'Order1');
initMetadataForCompanion(Companion_44);
initMetadataForClass(Order2, 'Order2');
initMetadataForCompanion(Companion_45);
initMetadataForClass(Order3, 'Order3');
initMetadataForClass(Iterator, 'Iterator');
initMetadataForClass(CopyIterator, 'CopyIterator');
initMetadataForClass(TxIterator, 'TxIterator');
initMetadataForCompanion(Companion_46);
protoOf(Path2D).f1h = get_bounds;
protoOf(Path2D).q1h = getPathIterator$default;
initMetadataForClass(Path2D, 'Path2D', VOID, VOID, [Shape]);
initMetadataForClass(Double_1, 'Double', Double_1.t1u);
initMetadataForCompanion(Companion_47);
initMetadataForClass(Point, 'Point');
initMetadataForClass(Double_2, 'Double', Double_2.z1j);
initMetadataForClass(Float, 'Float', Float.w1j);
initMetadataForCompanion(Companion_48);
initMetadataForClass(RectIterator, 'RectIterator');
initMetadataForClass(Rectangle, 'Rectangle', Rectangle.empty);
initMetadataForCompanion(Companion_49);
initMetadataForClass(Double_3, 'Double');
initMetadataForCompanion(Companion_50);
initMetadataForClass(RoundRectIterator, 'RoundRectIterator');
initMetadataForClass(RoundRectangle2D, 'RoundRectangle2D');
initMetadataForClass(Double_4, 'Double', Double_4.e1x);
initMetadataForObject(ScreenTransformHelper, 'ScreenTransformHelper');
initMetadataForClass(TextShape, 'TextShape', VOID, VOID, [Shape]);
initMetadataForCompanion(Companion_51);
initMetadataForClass(AbstractIGraphics, 'AbstractIGraphics');
initMetadataForClass(Insets, 'Insets');
initMetadataForCompanion(Companion_52);
initMetadataForClass(ContrastEnhancement, 'ContrastEnhancement');
initMetadataForObject(Off, 'Off');
initMetadataForObject(Brightness, 'Brightness');
initMetadataForObject(BlackWhite, 'BlackWhite');
initMetadataForObject(Complement, 'Complement');
initMetadataForClass(Effect, 'Effect');
initMetadataForObject(Plain, 'Plain');
initMetadataForObject(Shadow, 'Shadow');
initMetadataForObject(Glow, 'Glow');
initMetadataForObject(Outline, 'Outline');
initMetadataForObject(Emphasize, 'Emphasize');
initMetadataForClass(Rendering, 'Rendering');
initMetadataForCompanion(Companion_53);
initMetadataForClass(EnhancedLabel, 'EnhancedLabel', EnhancedLabel.j1z);
initMetadataForClass(AbstractPalette, 'AbstractPalette');
initMetadataForInterface(MutablePalette, 'MutablePalette');
initMetadataForClass(AbstractMutablePalette, 'AbstractMutablePalette', VOID, VOID, [AbstractPalette, MutablePalette]);
initMetadataForClass(Mode, 'Mode');
initMetadataForClass(Entry_0, 'Entry', VOID, VOID, [Comparable]);
initMetadataForClass(sam$kotlin_Comparator$0_1, 'sam$kotlin_Comparator$0', VOID, VOID, [Comparator, FunctionAdapter]);
initMetadataForClass(CustomPalette$1, VOID, VOID, VOID, [PropertyListener]);
initMetadataForClass(DynamicPalette, 'DynamicPalette');
initMetadataForClass(CustomPalette, 'CustomPalette');
initMetadataForClass(Cycle, 'Cycle');
initMetadataForCompanion(Companion_54);
initMetadataForClass(FixedPalette, 'FixedPalette', VOID, VOID, [AbstractPalette, MutablePalette]);
initMetadataForClass(Mode_0, 'Mode');
initMetadataForClass(Entry_1, 'Entry', VOID, VOID, [Comparable]);
initMetadataForClass(sam$kotlin_Comparator$0_2, 'sam$kotlin_Comparator$0', VOID, VOID, [Comparator, FunctionAdapter]);
initMetadataForClass(sam$kotlin_Comparator$0_3, 'sam$kotlin_Comparator$0', VOID, VOID, [Comparator, FunctionAdapter]);
initMetadataForClass(InterpolatedPalette, 'InterpolatedPalette');
initMetadataForClass(PaletteEvent, 'PaletteEvent', PaletteEvent);
initMetadataForClass(Entry_2, 'Entry');
initMetadataForCompanion(Companion_55);
initMetadataForClass(PaletteFactory, 'PaletteFactory', PaletteFactory);
initMetadataForClass(PaletteType, 'PaletteType');
initMetadataForClass(ScreenTransformRubberBand, 'ScreenTransformRubberBand');
initMetadataForClass(AbstractTwoDScreenTransform, 'AbstractTwoDScreenTransform');
initMetadataForClass(AbstractMutableTwoDScreenTransform, 'AbstractMutableTwoDScreenTransform');
initMetadataForClass(SimpleTwoDScreenTransform$intervalListener$1);
initMetadataForClass(SimpleTwoDScreenTransform, 'SimpleTwoDScreenTransform');
initMetadataForInterface(Visual, 'Visual');
initMetadataForClass(CPCanvas, 'CPCanvas', CPCanvas);
initMetadataForClass(FunctionalCPCanvas$timer$1);
initMetadataForClass(FunctionalCPCanvas, 'FunctionalCPCanvas');
initMetadataForClass(JSMouseEvent, 'JSMouseEvent');
initMetadataForCompanion(Companion_56);
initMetadataForClass(MkColorFactory, 'MkColorFactory', MkColorFactory);
protoOf(CPColor).o19 = toHTMLColor;
protoOf(CPColor).p19 = toJavaScriptColor;
initMetadataForClass(CPColor, 'CPColor', VOID, VOID, [IColor]);
initMetadataForClass(ElementalKeyEvent, 'ElementalKeyEvent');
initMetadataForClass(CPInteractiveHandler$registerMouseWheelListener$2$1);
initMetadataForClass(CPInteractiveHandler$registerContextMenuListener$2$1);
initMetadataForClass(CPInteractiveHandler, 'CPInteractiveHandler');
initMetadataForClass(CPPopupMenu, 'CPPopupMenu', CPPopupMenu);
initMetadataForCompanion(Companion_57);
initMetadataForClass(CPFontFactory, 'CPFontFactory', CPFontFactory);
initMetadataForClass(CPFont, 'CPFont');
initMetadataForClass(CPImage, 'CPImage');
initMetadataForObject(CPImageFactory, 'CPImageFactory');
initMetadataForClass(CanvasRenderingContext2DIGraphics, 'CanvasRenderingContext2DIGraphics');
initMetadataForClass(AbstractAggregation, 'AbstractAggregation');
initMetadataForClass(SumAggregation, 'SumAggregation');
initMetadataForCompanion(Companion_58);
initMetadataForInterface(Group, 'Group');
initMetadataForClass(ArrayGroup, 'ArrayGroup', VOID, VOID, [Group]);
initMetadataForCompanion(Companion_59);
initMetadataForClass(Dice, 'Dice');
initMetadataForCompanion(Companion_60);
initMetadataForClass(Dimensions, 'Dimensions');
initMetadataForClass(DistributiveStatistics, 'DistributiveStatistics', DistributiveStatistics.c2b);
initMetadataForObject(GroupFactory, 'GroupFactory');
initMetadataForClass(DimensionsDiceStructure, 'DimensionsDiceStructure');
initMetadataForClass(InMemoryCube$listener$1);
initMetadataForClass(InMemoryCube, 'InMemoryCube');
initMetadataForClass(LinkedGroup, 'LinkedGroup', LinkedGroup.r2b, VOID, [Group]);
initMetadataForClass(GroupColumn, 'GroupColumn');
initMetadataForClass(AbstractCuboid, 'AbstractCuboid');
initMetadataForClass(ApexCuboid$listener$1);
initMetadataForClass(ApexCuboid, 'ApexCuboid');
initMetadataForClass(Cuboid$Companion$ALL$1);
initMetadataForCompanion(Companion_61);
initMetadataForClass(WeakQueryListener, 'WeakQueryListener');
initMetadataForCompanion(Companion_62);
initMetadataForClass(AbstractQuery, 'AbstractQuery');
initMetadataForClass(CuboidQuery$queryListener$1);
initMetadataForClass(CuboidQuery$dataFrameListener$1);
initMetadataForClass(CuboidQuery, 'CuboidQuery');
initMetadataForInterface(Series, 'Series');
initMetadataForClass(AbstractSeries, 'AbstractSeries', VOID, VOID, [Series]);
initMetadataForClass(DimensionSeries, 'DimensionSeries');
initMetadataForClass(AggregationSeries, 'AggregationSeries');
initMetadataForClass(QueryDataFrame$queryListener$1);
initMetadataForInterface(DataFrame, 'DataFrame');
protoOf(AbstractDataFrame).a = get_length;
initMetadataForClass(AbstractDataFrame, 'AbstractDataFrame', VOID, VOID, [DataFrame]);
initMetadataForClass(QueryDataFrame, 'QueryDataFrame', VOID, VOID, [AbstractDataFrame, DataFrame]);
initMetadataForCompanion(Companion_63);
initMetadataForClass(Structure, 'Structure');
initMetadataForClass(WeakDataFrameListener, 'WeakDataFrameListener');
initMetadataForClass(ColumnSeries, 'ColumnSeries');
initMetadataForCompanion(Companion_64);
initMetadataForClass(ColumnStatistics, 'ColumnStatistics');
initMetadataForClass(DataFrameEvent, 'DataFrameEvent');
initMetadataForObject(DataFrameHelper, 'DataFrameHelper');
initMetadataForClass(DefaultDataFrame, 'DefaultDataFrame');
initMetadataForClass(AbstractUniqueIndex$keys$1$iterator$1);
initMetadataForClass(AbstractUniqueIndex$keys$1, VOID, VOID, VOID, [Iterable]);
initMetadataForClass(AbstractUniqueIndex, 'AbstractUniqueIndex');
initMetadataForClass(Lazy, 'Lazy');
initMetadataForCompanion(Companion_65);
initMetadataForClass(DefaultUniqueIndex$3);
initMetadataForClass(DefaultUniqueIndex, 'DefaultUniqueIndex');
initMetadataForClass(IntegerRangeUniqueIndex$keys$1$iterator$1);
initMetadataForClass(IntegerRangeUniqueIndex$keys$1, VOID, VOID, VOID, [Iterable]);
initMetadataForClass(IntegerRangeUniqueIndex, 'IntegerRangeUniqueIndex');
initMetadataForClass(Duplicate, 'Duplicate');
initMetadataForInterface(Graph, 'Graph');
initMetadataForInterface(MutableSeries, 'MutableSeries', VOID, VOID, [Series]);
initMetadataForClass(DefaultSeries, 'DefaultSeries', VOID, VOID, [AbstractSeries, MutableSeries]);
initMetadataForClass(DoubleSeries, 'DoubleSeries', VOID, VOID, [AbstractSeries, MutableSeries]);
initMetadataForClass(FloatSeries, 'FloatSeries', VOID, VOID, [AbstractSeries, MutableSeries]);
initMetadataForClass(IntegerSeries, 'IntegerSeries', VOID, VOID, [AbstractSeries, MutableSeries]);
initMetadataForClass(LongSeries, 'LongSeries', VOID, VOID, [AbstractSeries, MutableSeries]);
initMetadataForCompanion(Companion_66);
initMetadataForClass(SeriesFactory, 'SeriesFactory');
initMetadataForClass(JsonDataFrame, 'JsonDataFrame');
initMetadataForInterface(Scale, 'Scale');
initMetadataForClass(AbsScale, 'AbsScale', AbsScale, VOID, [Scale]);
initMetadataForInterface(Algorithm, 'Algorithm');
initMetadataForClass(AbstractAlgorithm, 'AbstractAlgorithm', VOID, VOID, [Algorithm]);
initMetadataForCompanion(Companion_67);
initMetadataForInterface(Labeling, 'Labeling');
initMetadataForClass(AbstractLabeling, 'AbstractLabeling', VOID, VOID, [Labeling]);
initMetadataForCompanion(Companion_68);
initMetadataForInterface(Nesting, 'Nesting');
initMetadataForClass(AbstractNesting, 'AbstractNesting', VOID, VOID, [Nesting]);
initMetadataForClass(AbstractNodeRenderer, 'AbstractNodeRenderer');
initMetadataForCompanion(Companion_69);
initMetadataForClass(AbstractRendering$getOrder$1, VOID, VOID, VOID, [Comparator]);
initMetadataForInterface(Rendering_0, 'Rendering');
initMetadataForClass(AbstractRendering, 'AbstractRendering', VOID, VOID, [Rendering_0]);
initMetadataForCompanion(Companion_70);
initMetadataForInterface(TreeMap, 'TreeMap');
initMetadataForClass(AbstractTreeMap, 'AbstractTreeMap', VOID, VOID, [TreeMap]);
initMetadataForCompanion(Companion_71);
initMetadataForInterface(TreeMapColumnSettings, 'TreeMapColumnSettings');
initMetadataForClass(AbstractTreeMapColumnSettings, 'AbstractTreeMapColumnSettings', VOID, VOID, [TreeMapColumnSettings]);
initMetadataForClass(Mode_1, 'Mode');
initMetadataForClass(Range, 'Range');
initMetadataForClass(DefaultMouseListener, 'DefaultMouseListener');
initMetadataForClass(AbstractTreeMapController$keyListener$1);
initMetadataForClass(AbstractTreeMapController$setView$1);
initMetadataForClass(AbstractTreeMapController$openPopupMenu$drillDownCommand$1);
initMetadataForClass(AbstractTreeMapController$openPopupMenu$drillUpCommand$1);
initMetadataForClass(AbstractTreeMapController$openPopupMenu$zoomInCommand$1);
initMetadataForClass(AbstractTreeMapController$openPopupMenu$zoomOutCommand$1);
initMetadataForClass(AbstractTreeMapController, 'AbstractTreeMapController');
initMetadataForClass(NodeField, 'NodeField');
initMetadataForClass(Worker, 'Worker');
initMetadataForCompanion(Companion_72);
initMetadataForClass(AbstractTreeMapModel$colorMapListener$1);
initMetadataForClass(AbstractTreeMapModel$colorProvider$1);
initMetadataForClass(AbstractTreeMapModel$groupByColumns$1);
initMetadataForClass(AbstractTreeMapModel$sizeColumns$1);
initMetadataForClass(AbstractTreeMapModel$colorColumns$1);
initMetadataForClass(AbstractTreeMapModel$heightColumns$1);
initMetadataForClass(AbstractTreeMapModel$labelsColumns$1);
initMetadataForClass(AbstractTreeMapModel$tooltipColumns$1);
initMetadataForClass(AbstractTreeMapModel$parentPreorderEnumeration$1, VOID, VOID, VOID, [Iterable]);
initMetadataForClass(AbstractTreeMapModel$preorderEnumeration$1, VOID, VOID, VOID, [Iterable]);
initMetadataForClass(AbstractTreeMapModel$breadthFirstIterator$1, VOID, VOID, VOID, [Iterable]);
initMetadataForClass(AbstractTreeMapModel$depthFirstIterator$1, VOID, VOID, VOID, [Iterable]);
initMetadataForClass(AbstractTreeMapModel$1);
initMetadataForClass(AbstractTreeMapModel$2);
initMetadataForClass(AbstractTreeMapModel$3);
initMetadataForClass(AbstractTreeMapModel$4);
initMetadataForClass(AbstractTreeMapModel$5);
initMetadataForClass(AbstractTreeMapModel$6, VOID, VOID, VOID, [PropertyListener]);
initMetadataForInterface(TreeMapModel, 'TreeMapModel');
initMetadataForClass(AbstractTreeMapModel, 'AbstractTreeMapModel', VOID, VOID, [TreeMapModel]);
initMetadataForClass(AbstractTreeMapNode, 'AbstractTreeMapNode');
initMetadataForInterface(TreeMapSettings, 'TreeMapSettings');
initMetadataForClass(AbstractTreeMapSettings, 'AbstractTreeMapSettings', VOID, VOID, [TreeMapSettings]);
initMetadataForCompanion(Companion_73);
initMetadataForClass(AbstractTreeMapToolTip, 'AbstractTreeMapToolTip');
initMetadataForClass(AbstractTreeMapView$probingListener$1);
initMetadataForClass(AbstractTreeMapView$selectionListener$1);
initMetadataForClass(AbstractTreeMapView$_treeMapListener$1);
initMetadataForClass(AbstractTreeMapView$modelPropertyChangeListener$1);
initMetadataForClass(AbstractTreeMapView$filterListener$1);
initMetadataForClass(AbstractTreeMapView$propertyChangeListener$1);
initMetadataForClass(AbstractTreeMapView$treeMapSettingsListener$1);
initMetadataForClass(AbstractTreeMapView$1);
initMetadataForClass(AbstractTreeMapView$2);
initMetadataForClass(AbstractTreeMapView, 'AbstractTreeMapView');
initMetadataForInterface(Aggregation, 'Aggregation');
initMetadataForCompanion(Companion_74);
initMetadataForClass(AggregationFactory, 'AggregationFactory');
initMetadataForCompanion(Companion_75);
initMetadataForClass(AlgorithmFactory, 'AlgorithmFactory');
initMetadataForClass(AverageAggregation, 'AverageAggregation', AverageAggregation, VOID, [Aggregation]);
initMetadataForClass(BackgroundParentNodeRenderer, 'BackgroundParentNodeRenderer', BackgroundParentNodeRenderer);
initMetadataForClass(BackgroundRootNodeTreeMapRenderer, 'BackgroundRootNodeTreeMapRenderer', BackgroundRootNodeTreeMapRenderer);
initMetadataForClass(Orientation, 'Orientation');
initMetadataForClass(BarAlgorithm, 'BarAlgorithm', BarAlgorithm);
initMetadataForClass(BinaryTreeAlgorithm, 'BinaryTreeAlgorithm', BinaryTreeAlgorithm);
initMetadataForClass(BorderParentNodeRenderer, 'BorderParentNodeRenderer', BorderParentNodeRenderer);
initMetadataForClass(Queue, 'Queue');
initMetadataForClass(QNode, 'QNode');
initMetadataForClass(BreadthFirstIterator, 'BreadthFirstIterator');
initMetadataForClass(Circle, 'Circle', Circle.z39, VOID, [Comparable]);
initMetadataForClass(Complex, 'Complex');
initMetadataForCompanion(Companion_76);
initMetadataForClass(CirclePackingAlgorithm, 'CirclePackingAlgorithm', CirclePackingAlgorithm, VOID, [Algorithm]);
initMetadataForClass(Pair_0, 'Pair');
initMetadataForClass(Circle_0, 'Circle', Circle_0.g3b, VOID, [Comparable]);
initMetadataForClass(Complex_0, 'Complex');
initMetadataForCompanion(Companion_77);
initMetadataForClass(CircularAlgorithm, 'CircularAlgorithm', CircularAlgorithm);
initMetadataForClass(AscendingTreeMapNodeComparator, 'AscendingTreeMapNodeComparator', VOID, VOID, [Comparator]);
initMetadataForClass(DescendingTreeMapNodeComparator, 'DescendingTreeMapNodeComparator', VOID, VOID, [Comparator]);
initMetadataForCompanion(Companion_78);
initMetadataForInterface(Ordering, 'Ordering');
initMetadataForClass(ColorOrdering, 'ColorOrdering', ColorOrdering, VOID, [Ordering]);
initMetadataForClass(SurroundLabeling, 'SurroundLabeling', SurroundLabeling);
initMetadataForClass(ColoredSurroundLabeling, 'ColoredSurroundLabeling', ColoredSurroundLabeling);
initMetadataForObject(CombinationGenerator, 'CombinationGenerator');
initMetadataForClass(CountAggregation, 'CountAggregation', CountAggregation, VOID, [Aggregation]);
initMetadataForClass(Cushion, 'Cushion');
initMetadataForClass(CushionRendering, 'CushionRendering', CushionRendering);
initMetadataForObject(DefaultAlgorithmFactory_0, 'DefaultAlgorithmFactory');
initMetadataForClass(DefaultTreeMap, 'DefaultTreeMap', DefaultTreeMap.q3c);
initMetadataForCompanion(Companion_79);
initMetadataForClass(DefaultTreeMapColumnSettings, 'DefaultTreeMapColumnSettings');
initMetadataForClass(DefaultTreeMapController, 'DefaultTreeMapController');
initMetadataForCompanion(Companion_80);
initMetadataForClass(DefaultTreeMapHeaderRenderer, 'DefaultTreeMapHeaderRenderer', DefaultTreeMapHeaderRenderer.l36);
initMetadataForCompanion(Companion_81);
initMetadataForClass(DefaultTreeMapLabelRenderer, 'DefaultTreeMapLabelRenderer', DefaultTreeMapLabelRenderer.m35);
initMetadataForClass(DefaultTreeMapModel$dataFrameListener$1);
initMetadataForClass(DefaultTreeMapModel, 'DefaultTreeMapModel');
initMetadataForClass(DefaultTreeMapPopup, 'DefaultTreeMapPopup');
initMetadataForClass(DefaultTreeMapSettings$columnPropertyChangeListener$1);
initMetadataForClass(DefaultTreeMapSettings$propertyChangeListener$1);
initMetadataForClass(DefaultTreeMapSettings, 'DefaultTreeMapSettings');
initMetadataForClass(DefaultTreeMapToolTip, 'DefaultTreeMapToolTip');
initMetadataForCompanion(Companion_82);
initMetadataForClass(DefaultTreeMapTooltipRenderer, 'DefaultTreeMapTooltipRenderer', DefaultTreeMapTooltipRenderer.j37);
initMetadataForClass(DefaultTreeMapView$timer$3$1);
initMetadataForClass(DefaultTreeMapView$1);
initMetadataForClass(DefaultTreeMapView$2);
initMetadataForClass(DefaultTreeMapView, 'DefaultTreeMapView', DefaultTreeMapView);
initMetadataForCompanion(Companion_83);
initMetadataForClass(DepthFactory, 'DepthFactory');
initMetadataForObject(EqualCirclesInCircle, 'EqualCirclesInCircle');
initMetadataForClass(Exp10Scale, 'Exp10Scale', Exp10Scale, VOID, [Scale]);
initMetadataForClass(ExpScale, 'ExpScale', ExpScale, VOID, [Scale]);
initMetadataForClass(ExpandLabeling, 'ExpandLabeling', ExpandLabeling);
initMetadataForClass(FixedNesting, 'FixedNesting', FixedNesting);
initMetadataForClass(FlatRendering, 'FlatRendering', FlatRendering);
initMetadataForClass(FlatNoBorderRendering, 'FlatNoBorderRendering', FlatNoBorderRendering);
initMetadataForClass(AscendingTreeMapNodeComparator_0, 'AscendingTreeMapNodeComparator', VOID, VOID, [Comparator]);
initMetadataForClass(DescendingTreeMapNodeComparator_0, 'DescendingTreeMapNodeComparator', VOID, VOID, [Comparator]);
initMetadataForClass(HeightOrdering, 'HeightOrdering', HeightOrdering, VOID, [Ordering]);
initMetadataForClass(HighlightParentNodeRenderer, 'HighlightParentNodeRenderer', HighlightParentNodeRenderer);
initMetadataForClass(IcicleRectangle2D, 'IcicleRectangle2D');
initMetadataForClass(IcicleAlgorithm, 'IcicleAlgorithm', IcicleAlgorithm);
initMetadataForClass(InfiniteDepth, 'InfiniteDepth', InfiniteDepth);
initMetadataForClass(InverseScale, 'InverseScale', InverseScale, VOID, [Scale]);
initMetadataForClass(Itertools$combinations$1$iterator$1);
initMetadataForClass(Itertools$combinations$1, VOID, VOID, VOID, [Iterable]);
initMetadataForObject(Itertools, 'Itertools');
initMetadataForCompanion(Companion_84);
initMetadataForClass(LabelingFactory, 'LabelingFactory');
initMetadataForClass(LeafNodeRenderer, 'LeafNodeRenderer');
initMetadataForClass(LeafTreeMapNode, 'LeafTreeMapNode', VOID, VOID, [AbstractTreeMapNode, Comparable]);
initMetadataForClass(Log1pScale, 'Log1pScale', Log1pScale, VOID, [Scale]);
initMetadataForClass(LogScale, 'LogScale', LogScale, VOID, [Scale]);
initMetadataForCompanion(Companion_85);
initMetadataForClass(MatrixAlgorithm, 'MatrixAlgorithm', MatrixAlgorithm);
initMetadataForClass(MaxAggregation, 'MaxAggregation', MaxAggregation, VOID, [Aggregation]);
initMetadataForClass(MaxScale, 'MaxScale', MaxScale, VOID, [Scale]);
initMetadataForClass(MinAggregation, 'MinAggregation', MinAggregation, VOID, [Aggregation]);
initMetadataForClass(MinScale, 'MinScale', MinScale, VOID, [Scale]);
initMetadataForClass(MutableAlgorithmOverrideProperty, 'MutableAlgorithmOverrideProperty');
initMetadataForClass(MutableAlgorithmProperty$propertiesListener$1);
initMetadataForClass(MutableAlgorithmProperty, 'MutableAlgorithmProperty');
initMetadataForCompanion(Companion_86);
initMetadataForClass(NestingFactory, 'NestingFactory');
initMetadataForCompanion(Companion_87);
initMetadataForClass(NodesTreeMapRenderer, 'NodesTreeMapRenderer');
initMetadataForClass(NoneAggregation, 'NoneAggregation', NoneAggregation, VOID, [Aggregation]);
initMetadataForClass(NoneLabeling, 'NoneLabeling', NoneLabeling);
initMetadataForClass(NoneNesting, 'NoneNesting', NoneNesting);
initMetadataForClass(NumericTransformScale, 'NumericTransformScale', VOID, VOID, [Scale]);
initMetadataForClass(SortOrder, 'SortOrder');
initMetadataForCompanion(Companion_88);
initMetadataForClass(OrderingFactory, 'OrderingFactory');
initMetadataForCompanion(Companion_89);
initMetadataForClass(OriginalOrdering, 'OriginalOrdering', OriginalOrdering, VOID, [Ordering]);
initMetadataForClass(OriginalScale, 'OriginalScale', OriginalScale, VOID, [Scale]);
initMetadataForClass(OverlayLabeling, 'OverlayLabeling', OverlayLabeling);
initMetadataForClass(OverridingTreeMapColumnSettings$1);
initMetadataForClass(OverridingTreeMapColumnSettings, 'OverridingTreeMapColumnSettings');
initMetadataForClass(ParentPreorderIterator, 'ParentPreorderIterator');
initMetadataForClass(ParentTreeMapNode, 'ParentTreeMapNode');
initMetadataForClass(PieAlgorithm, 'PieAlgorithm', PieAlgorithm);
initMetadataForClass(SplitSize, 'SplitSize', SplitSize);
initMetadataForClass(PivotByAlgorithm, 'PivotByAlgorithm', PivotByAlgorithm);
initMetadataForClass(PostorderIterator, 'PostorderIterator');
initMetadataForClass(PreorderIterator, 'PreorderIterator');
initMetadataForClass(Progressive, 'Progressive');
initMetadataForClass(Type, 'Type');
initMetadataForCompanion(Companion_90);
initMetadataForClass(ProportionalNesting, 'ProportionalNesting', ProportionalNesting);
initMetadataForCompanion(Companion_91);
initMetadataForClass(RectangularTransform, 'RectangularTransform', RectangularTransform.s2m);
initMetadataForCompanion(Companion_92);
initMetadataForClass(RenderingFactory, 'RenderingFactory');
initMetadataForCompanion(Companion_93);
initMetadataForClass(ScaleFactory, 'ScaleFactory');
initMetadataForClass(SelectionNodeRenderer, 'SelectionNodeRenderer', SelectionNodeRenderer);
initMetadataForClass(DescendingTreeMapNodeComparator_1, 'DescendingTreeMapNodeComparator', VOID, VOID, [Comparator]);
initMetadataForClass(AscendingTreeMapNodeComparator_1, 'AscendingTreeMapNodeComparator', VOID, VOID, [Comparator]);
initMetadataForClass(SizeOrdering, 'SizeOrdering', SizeOrdering, VOID, [Ordering]);
initMetadataForClass(SumAggregation_0, 'SumAggregation', SumAggregation_0, VOID, [Aggregation]);
initMetadataForClass(SizeWeightedAggregation, 'SizeWeightedAggregation', SizeWeightedAggregation);
initMetadataForClass(AlternateOrientationStrategy, 'AlternateOrientationStrategy', AlternateOrientationStrategy);
initMetadataForClass(SliceAndDiceAlgorithm, 'SliceAndDiceAlgorithm', SliceAndDiceAlgorithm);
initMetadataForCompanion(Companion_94);
initMetadataForClass(SplitAlgorithm, 'SplitAlgorithm', SplitAlgorithm);
initMetadataForCompanion(Companion_95);
initMetadataForClass(SquarifiedAlgorithm, 'SquarifiedAlgorithm', SquarifiedAlgorithm);
initMetadataForCompanion(Companion_96);
initMetadataForClass(SquarifiedPlusAlgorithm, 'SquarifiedPlusAlgorithm', SquarifiedPlusAlgorithm);
initMetadataForClass(StdDevAggregation, 'StdDevAggregation', StdDevAggregation, VOID, [Aggregation]);
initMetadataForClass(StripAlgorithm, 'StripAlgorithm', StripAlgorithm);
initMetadataForClass(Arc, 'Arc');
initMetadataForClass(SunburstAlgorithm, 'SunburstAlgorithm', SunburstAlgorithm);
initMetadataForCompanion(Companion_97);
initMetadataForClass(TextParentNodeRenderer, 'TextParentNodeRenderer', TextParentNodeRenderer);
initMetadataForClass(ThresholdDepth, 'ThresholdDepth');
initMetadataForCompanion(Companion_98);
initMetadataForClass(ToolTipTreeMapRenderer, 'ToolTipTreeMapRenderer', ToolTipTreeMapRenderer);
initMetadataForClass(TreeMapColumnPropertyType, 'TreeMapColumnPropertyType');
initMetadataForClass(TreeMapEvent, 'TreeMapEvent');
initMetadataForClass(TreeMapPropertyType, 'TreeMapPropertyType');
initMetadataForClass(TreeMapSettingsEvent, 'TreeMapSettingsEvent');
initMetadataForClass(ToolTipType, 'ToolTipType');
initMetadataForClass(XPlus1Scale, 'XPlus1Scale', XPlus1Scale, VOID, [Scale]);
initMetadataForObject(DataFrameColorMapFactory, 'DataFrameColorMapFactory');
initMetadataForCompanion(Companion_99);
initMetadataForClass(AbstractTGraphics, 'AbstractTGraphics');
initMetadataForClass(JsTreeMap, 'JsTreeMap');
initMetadataForClass(CanvasRenderingContext2DTGraphics$sizeLabel$1);
initMetadataForClass(CanvasRenderingContext2DTGraphics, 'CanvasRenderingContext2DTGraphics');
initMetadataForClass(Headless$sizeLabel$1);
initMetadataForClass(Headless, 'Headless', Headless);
initMetadataForClass(TreeMapCanvas$addLayer$1);
initMetadataForClass(TreeMapCanvas, 'TreeMapCanvas');
//endregion
//region block: init
Companion_instance_0 = new Companion_0();
Companion_instance_1 = new Companion_1();
Companion_instance_2 = new Companion_2();
Unit_instance = new Unit();
_stableSortingIsSupported = null;
Companion_instance_4 = new Companion_4();
Companion_instance_6 = new Companion_6();
Companion_instance_7 = new Companion_7();
Companion_instance_8 = new Companion_8();
EmptyList_instance = new EmptyList();
EmptyIterator_instance = new EmptyIterator();
EmptySet_instance = new EmptySet();
NaturalOrderComparator_instance = new NaturalOrderComparator();
Delegates_instance = new Delegates();
Companion_instance_9 = new Companion_9();
Companion_instance_11 = new Companion_11();
State_instance = new State();
UNINITIALIZED_VALUE_instance = new UNINITIALIZED_VALUE();
Iterables_instance = new Iterables();
Companion_instance_16 = new Companion_16();
Companion_instance_25 = new Companion_25();
Companion_instance_26 = new Companion_26();
PropertyDelegates_instance = new PropertyDelegates();
Companion_instance_27 = new Companion_27();
Probit_instance = new Probit();
CollectionFactory_instance = new CollectionFactory();
WeakHashMap_Ids = 0;
Companion_instance_28 = new Companion_28();
androidx_compose_runtime_AbstractApplier$stable = 8;
androidx_compose_runtime_OffsetApplier$stable = 8;
androidx_compose_runtime_BroadcastFrameClock$stable = 8;
androidx_compose_runtime_ComposeRuntimeFlags$stable = 8;
androidx_compose_runtime_ComposeVersion$stable = 0;
androidx_compose_runtime_CompositionLocal$stable = 0;
androidx_compose_runtime_ProvidableCompositionLocal$stable = 0;
androidx_compose_runtime_DynamicProvidableCompositionLocal$stable = 0;
androidx_compose_runtime_StaticProvidableCompositionLocal$stable = 0;
androidx_compose_runtime_ComputedProvidableCompositionLocal$stable = 0;
androidx_compose_runtime_CompositionLocalContext$stable = 0;
androidx_compose_runtime_JoinedKey$stable = 8;
androidx_compose_runtime_Latch$stable = 8;
androidx_compose_runtime_OpaqueKey$stable = 0;
androidx_compose_runtime_PausedCompositionImpl$stable = 8;
androidx_compose_runtime_RecordingApplier$stable = 8;
androidx_compose_runtime_PausableMonotonicFrameClock$stable = 8;
androidx_compose_runtime_SnapshotMutableDoubleStateImpl$stable = 0;
androidx_compose_runtime_SnapshotMutableFloatStateImpl$stable = 0;
androidx_compose_runtime_SnapshotMutableIntStateImpl$stable = 0;
androidx_compose_runtime_SnapshotMutableLongStateImpl$stable = 0;
androidx_compose_runtime_SnapshotMutableStateImpl$stable = 0;
androidx_compose_runtime_UnboxedIntState$stable = 0;
androidx_compose_runtime_UnboxedLongState$stable = 0;
androidx_compose_runtime_UnboxedFloatState$stable = 0;
androidx_compose_runtime_UnboxedDoubleState$stable = 0;
androidx_compose_runtime_IntStack$stable = 8;
androidx_compose_runtime_StaticValueHolder$stable = 0;
androidx_compose_runtime_LazyValueHolder$stable = 8;
androidx_compose_runtime_ComputedValueHolder$stable = 0;
androidx_compose_runtime_DynamicValueHolder$stable = 0;
androidx_compose_runtime_changelist_ChangeList$stable = 8;
androidx_compose_runtime_changelist_ComposerChangeListWriter$stable = 8;
androidx_compose_runtime_changelist_FixupList$stable = 8;
androidx_compose_runtime_changelist_Operation_Ups$stable = 0;
androidx_compose_runtime_changelist_Operation_Downs$stable = 0;
androidx_compose_runtime_changelist_Operation_AdvanceSlotsBy$stable = 0;
androidx_compose_runtime_changelist_Operation_SideEffect$stable = 0;
androidx_compose_runtime_changelist_Operation_Remember$stable = 0;
androidx_compose_runtime_changelist_Operation_RememberPausingScope$stable = 0;
androidx_compose_runtime_changelist_Operation_StartResumingScope$stable = 0;
androidx_compose_runtime_changelist_Operation_EndResumingScope$stable = 0;
androidx_compose_runtime_changelist_Operation_AppendValue$stable = 0;
androidx_compose_runtime_changelist_Operation_TrimParentValues$stable = 0;
androidx_compose_runtime_changelist_Operation_UpdateValue$stable = 0;
androidx_compose_runtime_changelist_Operation_UpdateAnchoredValue$stable = 0;
androidx_compose_runtime_changelist_Operation_UpdateAuxData$stable = 0;
androidx_compose_runtime_changelist_Operation_EnsureRootGroupStarted$stable = 0;
androidx_compose_runtime_changelist_Operation_EnsureGroupStarted$stable = 0;
androidx_compose_runtime_changelist_Operation_RemoveCurrentGroup$stable = 0;
androidx_compose_runtime_changelist_Operation_MoveCurrentGroup$stable = 0;
androidx_compose_runtime_changelist_Operation_EndCurrentGroup$stable = 0;
androidx_compose_runtime_changelist_Operation_SkipToEndOfCurrentGroup$stable = 0;
androidx_compose_runtime_changelist_Operation_EndCompositionScope$stable = 0;
androidx_compose_runtime_changelist_Operation_UseCurrentNode$stable = 0;
androidx_compose_runtime_changelist_Operation_UpdateNode$stable = 0;
androidx_compose_runtime_changelist_Operation_RemoveNode$stable = 0;
androidx_compose_runtime_changelist_Operation_MoveNode$stable = 0;
androidx_compose_runtime_changelist_Operation_InsertSlots$stable = 0;
androidx_compose_runtime_changelist_Operation_InsertSlotsWithFixups$stable = 0;
androidx_compose_runtime_changelist_Operation_InsertNodeFixup$stable = 0;
androidx_compose_runtime_changelist_Operation_PostInsertNodeFixup$stable = 0;
androidx_compose_runtime_changelist_Operation_DeactivateCurrentGroup$stable = 0;
androidx_compose_runtime_changelist_Operation_ResetSlots$stable = 0;
androidx_compose_runtime_changelist_Operation_DetermineMovableContentNodeIndex$stable = 0;
androidx_compose_runtime_changelist_Operation_CopyNodesToNewAnchorLocation$stable = 0;
androidx_compose_runtime_changelist_Operation_CopySlotTableToAnchorLocation$stable = 0;
androidx_compose_runtime_changelist_Operation_EndMovableContentPlacement$stable = 0;
androidx_compose_runtime_changelist_Operation_ReleaseMovableGroupAtCurrent$stable = 0;
androidx_compose_runtime_changelist_Operation_ApplyChangeList$stable = 0;
androidx_compose_runtime_changelist_Operation_TestOperation$stable = 8;
androidx_compose_runtime_changelist_Operation$stable = 0;
androidx_compose_runtime_changelist_Operations$stable = 8;
androidx_compose_runtime_changelist_OperationsDebugStringFormattable$stable = 0;
androidx_compose_runtime_collection_MutableVector$stable = 8;
androidx_compose_runtime_collection_ScatterSetWrapper$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_adapters_ImmutableCollectionAdapter$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_adapters_ImmutableListAdapter$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_adapters_ImmutableSetAdapter$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_adapters_ImmutableMapAdapter$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableList_AbstractListIterator$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableList_SingleElementListIterator$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableList_AbstractPersistentList$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableList_BufferIterator$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableList_PersistentVector$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableList_PersistentVectorBuilder$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableList_PersistentVectorIterator$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableList_PersistentVectorMutableIterator$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableList_SmallPersistentVector$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableList_TrieIterator$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableList_ObjectRef$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_PersistentHashMap$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_PersistentHashMapBuilder$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_TrieNodeMutableEntriesIterator$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_PersistentHashMapBuilderBaseIterator$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_PersistentHashMapBuilderEntriesIterator$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_PersistentHashMapBuilderKeysIterator$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_PersistentHashMapBuilderValuesIterator$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_AbstractMapBuilderEntries$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_PersistentHashMapBuilderEntries$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_PersistentHashMapBuilderKeys$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_PersistentHashMapBuilderValues$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_TrieNodeBaseIterator$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_TrieNodeKeysIterator$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_TrieNodeValuesIterator$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_TrieNodeEntriesIterator$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_MapEntry$stable = 0;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_PersistentHashMapBaseIterator$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_PersistentHashMapEntriesIterator$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_PersistentHashMapKeysIterator$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_PersistentHashMapValuesIterator$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_PersistentHashMapEntries$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_PersistentHashMapKeys$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_PersistentHashMapValues$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_TrieNode_ModificationResult$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableMap_TrieNode$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableSet_PersistentHashSet$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableSet_PersistentHashSetBuilder$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableSet_PersistentHashSetIterator$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableSet_TrieNodeIterator$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableSet_PersistentHashSetMutableIterator$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_immutableSet_TrieNode$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_persistentOrderedMap_LinkedValue$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_persistentOrderedMap_PersistentOrderedMap$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_persistentOrderedMap_PersistentOrderedMapBuilder$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_persistentOrderedMap_PersistentOrderedMapBuilderLinksIterator$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_persistentOrderedMap_PersistentOrderedMapBuilderEntriesIterator$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_persistentOrderedMap_PersistentOrderedMapBuilderKeysIterator$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_persistentOrderedMap_PersistentOrderedMapBuilderValuesIterator$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_persistentOrderedMap_PersistentOrderedMapBuilderEntries$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_persistentOrderedMap_PersistentOrderedMapBuilderKeys$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_persistentOrderedMap_PersistentOrderedMapBuilderValues$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_persistentOrderedMap_PersistentOrderedMapLinksIterator$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_persistentOrderedMap_PersistentOrderedMapEntriesIterator$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_persistentOrderedMap_PersistentOrderedMapKeysIterator$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_persistentOrderedMap_PersistentOrderedMapValuesIterator$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_persistentOrderedMap_PersistentOrderedMapEntries$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_persistentOrderedMap_PersistentOrderedMapKeys$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_persistentOrderedMap_PersistentOrderedMapValues$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_persistentOrderedSet_Links$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_persistentOrderedSet_PersistentOrderedSet$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_persistentOrderedSet_PersistentOrderedSetBuilder$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_persistentOrderedSet_PersistentOrderedSetIterator$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_implementations_persistentOrderedSet_PersistentOrderedSetMutableIterator$stable = 8;
androidx_compose_runtime_external_kotlinx_collections_immutable_internal_EndOfChain$stable = 0;
androidx_compose_runtime_external_kotlinx_collections_immutable_internal_ListImplementation$stable = 0;
androidx_compose_runtime_external_kotlinx_collections_immutable_internal_MutabilityOwnership$stable = 0;
androidx_compose_runtime_external_kotlinx_collections_immutable_internal_DeltaCounter$stable = 8;
androidx_compose_runtime_internal_IntRef$stable = 8;
androidx_compose_runtime_internal_PersistentCompositionLocalHashMap_Builder$stable = 8;
androidx_compose_runtime_internal_PersistentCompositionLocalHashMap$stable = 8;
androidx_compose_runtime_internal_PausedCompositionRemembers$stable = 8;
androidx_compose_runtime_internal_RememberEventDispatcher$stable = 8;
androidx_compose_runtime_snapshots_SnapshotDoubleIndexHeap$stable = 8;
androidx_compose_runtime_snapshots_SnapshotIdSet$stable = 0;
androidx_compose_runtime_snapshots_SnapshotStateObserver$stable = 8;
androidx_compose_runtime_snapshots_SnapshotWeakSet$stable = 8;
androidx_compose_runtime_snapshots_StateObjectImpl$stable = 8;
observers = null;
androidx_compose_runtime_snapshots_tooling_SnapshotInstanceObservers$stable = 0;
androidx_compose_runtime_tooling_ComposeStackTraceFrame$stable = 8;
androidx_compose_runtime_tooling_WriterTraceBuilder$stable = 8;
androidx_compose_runtime_tooling_ReaderTraceBuilder$stable = 8;
androidx_compose_runtime_tooling_ComposeStackTraceBuilder$stable = 8;
androidx_compose_runtime_tooling_ObjectLocation$stable = 0;
androidx_compose_runtime_tooling_SourceInformation$stable = 8;
androidx_compose_runtime_tooling_ParameterSourceInformation$stable = 0;
androidx_compose_runtime_tooling_LocationSourceInformation$stable = 0;
androidx_compose_runtime_snapshots_SnapshotIdArrayBuilder$stable = 8;
MainThreadId = -1n;
androidx_compose_runtime_internal_Trace$stable = 0;
androidx_compose_runtime_snapshots_SnapshotStateList$stable = 0;
androidx_compose_runtime_snapshots_SnapshotStateSet$stable = 0;
androidx_compose_runtime_internal_AtomicReference$stable = 8;
androidx_compose_runtime_internal_AtomicInt$stable = 8;
androidx_compose_runtime_internal_PlatformOptimizedCancellationException$stable = 8;
androidx_compose_runtime_snapshots_SnapshotContextElementImpl$stable = 0;
androidx_compose_runtime_tooling_DiagnosticComposeException$stable = 8;
androidx_compose_runtime_internal_WeakReference$stable = 0;
ReactHTML_instance = new ReactHTML();
org_mkui_canvas_AbstractAveragingLayer$stable = 8;
org_mkui_canvas_AbstractDensityLayer$stable = 8;
org_mkui_coloring_implementation_AbstractColoring$stable = 8;
org_mkui_coloring_implementation_SimpleColoring$stable = 8;
org_mkui_coloring_implementation_SimpleColoringEvent$stable = 8;
org_mkui_colormap_AbstractColorMap$stable = 8;
Companion_instance_31 = new Companion_31();
org_mkui_colormap_ColorMapEvent$stable = 8;
org_mkui_colormap_ColorMapFactory$stable = 8;
org_mkui_colormap_SetStoreMutableProperty$stable = 8;
org_mkui_colormap_SimpleColorMap$stable = 8;
org_mkui_colormap_editor_AbstractCategoricalColorMapEditor$stable = 8;
org_mkui_colormap_editor_AbstractColorMapPanel$stable = 8;
org_mkui_colormap_editor_AbstractCustomColorMapEditor$stable = 8;
org_mkui_colormap_editor_AbstractPredefinedColorMapEditor$stable = 8;
org_mkui_colormap_property_MutableColorMapOverrideProperty$stable = 8;
org_mkui_colormap_property_MutableColorMapProperty$stable = 8;
org_mkui_colormapping_AbstractColorMapping$stable = 8;
org_mkui_component_InteractiveComponentListeners$stable = 8;
org_mkui_component_VerticalPanelBuilder$stable = 8;
org_mkui_component_button_CPButtonProperties$stable = 8;
org_mkui_component_menu_ToggleGroup$stable = 8;
org_mkui_component_panel_Row$stable = 0;
org_mkui_geom_AbstractRectangle2D$stable = 0;
Companion_instance_33 = new Companion_33();
org_mkui_geom_AffineTransform$stable = 8;
org_mkui_geom_Arc2D_Double$stable = 0;
Companion_instance_35 = new Companion_35();
org_mkui_geom_ArcIterator$stable = 8;
Companion_instance_36 = new Companion_36();
corg_mkui_geom_Area_AreaIterator$stable = 8;
corg_mkui_geom_Area$stable = 8;
org_mkui_geom_AreaOp_CAGOp$stable = 8;
org_mkui_geom_AreaOp_AddOp$stable = 8;
org_mkui_geom_AreaOp_SubOp$stable = 8;
org_mkui_geom_AreaOp_IntOp$stable = 8;
org_mkui_geom_AreaOp_XorOp$stable = 8;
org_mkui_geom_AreaOp_NZWindOp$stable = 8;
org_mkui_geom_AreaOp_EOWindOp$stable = 8;
org_mkui_geom_AreaOp$stable = 0;
org_mkui_geom_ChainEnd$stable = 8;
org_mkui_geom_Crossings_EvenOdd$stable = 8;
org_mkui_geom_Crossings_NonZero$stable = 8;
org_mkui_geom_Crossings$stable = 8;
Companion_instance_39 = new Companion_39();
org_mkui_geom_CubicCurve2D$stable = 0;
org_mkui_geom_Curve$stable = 0;
Companion_instance_40 = new Companion_40();
org_mkui_geom_CurveLink$stable = 8;
org_mkui_geom_Edge$stable = 8;
Companion_instance_41 = new Companion_41();
org_mkui_geom_Ellipse$stable = 8;
org_mkui_geom_Ellipse2D_Double$stable = 0;
org_mkui_geom_EllipseIterator$stable = 8;
org_mkui_geom_FlatteningPathIterator$stable = 8;
org_mkui_geom_GeneralPath$stable = 8;
org_mkui_geom_Line2D_Double$stable = 8;
org_mkui_geom_Line2D$stable = 0;
Companion_instance_43 = new Companion_43();
org_mkui_geom_LineIterator$stable = 8;
org_mkui_geom_NoninvertibleTransformException$stable = 8;
org_mkui_geom_Order0$stable = 0;
org_mkui_geom_Order1$stable = 8;
org_mkui_geom_Order2$stable = 0;
Companion_instance_44 = new Companion_44();
org_mkui_geom_Order3$stable = 8;
Companion_instance_45 = new Companion_45();
org_mkui_geom_Path$stable = 8;
org_mkui_geom_Path2D_Double_CopyIterator$stable = 8;
org_mkui_geom_Path2D_Double_TxIterator$stable = 8;
org_mkui_geom_Path2D_Double$stable = 8;
org_mkui_geom_Path2D_Iterator$stable = 8;
org_mkui_geom_Path2D$stable = 8;
Companion_instance_47 = new Companion_47();
org_mkui_geom_Point$stable = 8;
org_mkui_geom_Point2D_Double$stable = 8;
org_mkui_geom_Point2D_Float$stable = 8;
org_mkui_geom_Polygon_PolygonPathIterator$stable = 8;
org_mkui_geom_Polygon$stable = 8;
org_mkui_geom_QuadCurve2D_Double$stable = 8;
org_mkui_geom_QuadCurve2D$stable = 0;
Companion_instance_48 = new Companion_48();
org_mkui_geom_QuadIterator$stable = 8;
org_mkui_geom_RectIterator$stable = 8;
org_mkui_geom_Rectangle$stable = 8;
org_mkui_geom_Rectangle2D_Double$stable = 0;
Companion_instance_49 = new Companion_49();
org_mkui_geom_Rectangle2DHelper$stable = 0;
org_mkui_geom_RoundRectIterator$stable = 8;
org_mkui_geom_RoundRectangle2D_Double$stable = 8;
org_mkui_geom_RoundRectangle2D$stable = 0;
org_mkui_geom_ScreenTransformHelper$stable = 0;
ScreenTransformHelper_instance = new ScreenTransformHelper();
org_mkui_geom_Segment$stable = 8;
org_mkui_geom_TextShape$stable = 8;
org_mkui_geom_curve_BSpline$stable = 8;
org_mkui_geom_curve_Bag$stable = 8;
org_mkui_geom_curve_BezierCurve$stable = 8;
org_mkui_geom_curve_BinaryCurveApproximationAlgorithm$stable = 0;
org_mkui_geom_curve_CardinalSpline$stable = 8;
org_mkui_geom_curve_CatmullRomSpline$stable = 8;
org_mkui_geom_curve_ControlPath$stable = 8;
org_mkui_geom_curve_CubicBSpline$stable = 8;
org_mkui_geom_curve_Curve$stable = 8;
org_mkui_geom_curve_Geom$stable = 8;
org_mkui_geom_curve_GroupIterator$stable = 8;
org_mkui_geom_curve_LagrangeCurve$stable = 8;
org_mkui_geom_curve_MultiPath$stable = 8;
org_mkui_geom_curve_NURBSpline$stable = 8;
org_mkui_geom_curve_NaturalCubicSpline$stable = 8;
org_mkui_geom_curve_ParametricCurve$stable = 8;
org_mkui_geom_curve_PascalsTriangle$stable = 8;
org_mkui_geom_curve_ShapeMultiPath$stable = 8;
org_mkui_geom_curve_ShapeMultiPathIterator$stable = 8;
org_mkui_geom_curve_ValueVector$stable = 8;
org_mkui_graphics_AbstractIDrawing$stable = 8;
org_mkui_graphics_AbstractIGraphics$stable = 8;
Companion_instance_51 = new Companion_51();
org_mkui_graphics_Edge$stable = 8;
org_mkui_graphics_Insets$stable = 8;
org_mkui_graphics_colortheme_AbstractColorTheme$stable = 0;
org_mkui_graphics_colortheme_LightColorTheme$stable = 8;
org_mkui_graphics_line_BresenhamLineDrawer$stable = 0;
org_mkui_graphics_line_TwoStepLineDrawer$stable = 0;
org_mkui_graphics_pressure_LinearPressure$stable = 0;
org_mkui_graphics_pressure_LogPressure$stable = 0;
org_mkui_labeling_ContrastEnhancement_Off$stable = 0;
org_mkui_labeling_ContrastEnhancement_Brightness$stable = 0;
org_mkui_labeling_ContrastEnhancement_BlackWhite$stable = 0;
org_mkui_labeling_ContrastEnhancement_Complement$stable = 0;
org_mkui_labeling_ContrastEnhancement$stable = 0;
Companion_instance_53 = new Companion_53();
org_mkui_palette_AbstractMutablePalette$stable = 8;
org_mkui_palette_AbstractPalette$stable = 8;
org_mkui_palette_CustomPalette_Entry$stable = 0;
org_mkui_palette_CustomPalette$stable = 8;
org_mkui_palette_DynamicPalette$stable = 8;
org_mkui_palette_FixedPalette$stable = 8;
Companion_instance_54 = new Companion_54();
org_mkui_palette_InterpolatedPalette_Entry$stable = 0;
org_mkui_palette_InterpolatedPalette$stable = 8;
org_mkui_palette_PaletteEvent$stable = 0;
org_mkui_palette_PaletteFactory_Entry$stable = 8;
org_mkui_palette_PaletteFactory$stable = 8;
org_mkui_property_ObservableManager$stable = 8;
org_mkui_property_ObservableValue$stable = 8;
org_mkui_property_Observable$stable = 8;
org_mkui_rubberband_RubberbandDrawing$stable = 8;
org_mkui_rubberband_ScreenTransformRubberBand$stable = 8;
org_mkui_rubberband_SimpleRubberBand$stable = 8;
org_mkui_transform_AbstractMutableTwoDScreenTransform$stable = 8;
org_mkui_transform_AbstractTwoDScreenTransform$stable = 0;
org_mkui_transform_SimpleTwoDScreenTransform$stable = 8;
org_mkui_visual_AbstractVisual$stable = 0;
org_mkui_canvas_CPCanvas$stable = 8;
com_macrofocus_crossplatform_client_layer_ElementalAveragingGWTLayer$stable = 8;
org_mkui_canvas_ElementalBufferedGWTLayer$stable = 8;
org_mkui_canvas_ElementalCanvasHandler_ElementalMouseEvent$stable = 8;
org_mkui_canvas_ElementalCanvasHandler_ElementalKeyEvent$stable = 0;
org_mkui_canvas_ElementalCanvasHandler$stable = 8;
com_macrofocus_crossplatform_client_layer_ElementalDensityGWTLayer$stable = 8;
org_mkui_canvas_ElementalDirectGWTLayer$stable = 8;
org_mkui_canvas_ElementalFontMetrics$stable = 8;
org_mkui_canvas_ElementalIGraphics$stable = 8;
org_mkui_canvas_FunctionalCPCanvas$stable = 8;
org_mkui_canvas_JSMouseEvent$stable = 8;
org_mkui_canvas_ResizeObserver$stable = 0;
org_mkui_color_MkColorFactory$stable = 8;
org_mkui_color_crossplatform_CPColor$stable = 0;
org_mkui_component_CPComponentWrapper$stable = 8;
org_mkui_component_CPInteractiveHandler_ElementalMouseEvent$stable = 8;
org_mkui_component_CPInteractiveHandler_ElementalKeyEvent$stable = 0;
org_mkui_component_CPInteractiveHandler$stable = 8;
org_mkui_component_CPSeparator$stable = 8;
org_mkui_component_FunctionalReactComponent$stable = 0;
org_mkui_component_ReactComponent$stable = 8;
org_mkui_component_absolute_AbsoluteCPContainer$stable = 8;
org_mkui_component_button_CPButton$stable = 8;
org_mkui_component_button_CPCheckBox$stable = 8;
org_mkui_component_button_CPCollapseButton$stable = 8;
org_mkui_component_button_CPComboBox$stable = 8;
org_mkui_component_button_CPRadioButtons$stable = 8;
org_mkui_component_button_CPSplitMenuButton$stable = 8;
org_mkui_component_button_CPSwitch$stable = 8;
org_mkui_component_input_CPColorPicker$stable = 8;
org_mkui_component_input_CPFontPicker$stable = 8;
org_mkui_component_input_CPSlider$stable = 8;
org_mkui_component_input_CPSpinner$stable = 8;
org_mkui_component_label_CPLabel$stable = 8;
org_mkui_component_list_CPCheckBoxList$stable = 8;
org_mkui_component_menu_CPMenu$stable = 8;
org_mkui_component_menu_CPMenuBar$stable = 8;
org_mkui_component_menu_CPPopupMenu$stable = 8;
org_mkui_component_panel_CPCollapse$stable = 8;
org_mkui_component_panel_CPFillMiddlePanel$stable = 8;
org_mkui_component_panel_CPFormPanel$stable = 8;
org_mkui_component_panel_CPGridPanel$stable = 8;
org_mkui_component_panel_CPOverlayPanel$stable = 8;
org_mkui_component_panel_CPVerticalFillMiddlePanel$stable = 8;
org_mkui_component_panel_CPVerticalFlowPanel$stable = 8;
org_mkui_component_panel_CPVerticalPanel$stable = 8;
org_mkui_font_CPFontFactory$stable = 0;
org_mkui_font_crossplatform_CPFont$stable = 8;
org_mkui_graphics_CPGraphics$stable = 8;
org_mkui_graphics_CPGraphicsContext2D$stable = 8;
org_mkui_graphics_CPHeadless$stable = 8;
org_mkui_graphics_CPImage$stable = 8;
org_mkui_graphics_CPImageFactory$stable = 8;
org_mkui_graphics_CanvasRenderingContext2DFontMetrics$stable = 8;
org_mkui_graphics_CanvasRenderingContext2DIGraphics$stable = 8;
org_mkui_graphics_CanvasRenderingContext2DTextMetrics$stable = 8;
org_mkui_react_ReactStateInstance$stable = 8;
org_mkui_window_CPWindow$stable = 8;
Companion_instance_58 = new Companion_58();
Companion_instance_59 = new Companion_59();
Companion_instance_60 = new Companion_60();
GroupFactory_instance = new GroupFactory();
Companion_instance_62 = new Companion_62();
Companion_instance_63 = new Companion_63();
Companion_instance_64 = new Companion_64();
DataFrameHelper_instance = new DataFrameHelper();
Companion_instance_65 = new Companion_65();
com_treemap_AbsScale$stable = 0;
com_treemap_AbstractAlgorithm$stable = 0;
com_treemap_AbstractLabeling$stable = 0;
Companion_instance_67 = new Companion_67();
com_treemap_AbstractNesting$stable = 0;
Companion_instance_68 = new Companion_68();
com_treemap_AbstractNodeRenderer$stable = 0;
com_treemap_AbstractRendering$stable = 0;
Companion_instance_69 = new Companion_69();
com_treemap_AbstractTreeMap$stable = 8;
Companion_instance_70 = new Companion_70();
com_treemap_AbstractTreeMapColumnSettings$stable = 0;
Companion_instance_71 = new Companion_71();
com_treemap_AbstractTreeMapController$stable = 8;
com_treemap_AbstractTreeMapModel$stable = 8;
Companion_instance_72 = new Companion_72();
com_treemap_AbstractTreeMapNode$stable = 8;
com_treemap_AbstractTreeMapSettings$stable = 8;
com_treemap_AbstractTreeMapToolTip$stable = 8;
Companion_instance_73 = new Companion_73();
com_treemap_AbstractTreeMapView$stable = 8;
com_treemap_AggregationFactory$stable = 8;
com_treemap_AlgorithmFactory$stable = 8;
com_treemap_AverageAggregation$stable = 0;
com_treemap_BackgroundParentNodeRenderer$stable = 0;
com_treemap_BackgroundRootNodeTreeMapRenderer$stable = 0;
com_treemap_BarAlgorithm$stable = 0;
com_treemap_BinaryTreeAlgorithm$stable = 0;
com_treemap_BorderParentNodeRenderer$stable = 0;
com_treemap_BreadthFirstIterator$stable = 8;
com_treemap_CirclePackingAlgorithm_Circle$stable = 8;
com_treemap_CirclePackingAlgorithm$stable = 8;
Companion_instance_76 = new Companion_76();
com_treemap_CircularAlgorithm$stable = 8;
Companion_instance_77 = new Companion_77();
com_treemap_ColorOrdering$stable = 0;
Companion_instance_78 = new Companion_78();
com_treemap_ColoredSurroundLabeling$stable = 8;
com_treemap_CombinationGenerator$stable = 0;
CombinationGenerator_instance = new CombinationGenerator();
com_treemap_CountAggregation$stable = 0;
com_treemap_Cushion$stable = 8;
com_treemap_CushionRendering$stable = 0;
com_treemap_DefaultAlgorithmFactory$stable = 8;
com_treemap_DefaultTreeMap$stable = 8;
com_treemap_DefaultTreeMapColumnSettings$stable = 8;
Companion_instance_79 = new Companion_79();
com_treemap_DefaultTreeMapController$stable = 8;
com_treemap_DefaultTreeMapHeaderRenderer$stable = 8;
com_treemap_DefaultTreeMapModel$stable = 8;
com_treemap_DefaultTreeMapPopup$stable = 8;
com_treemap_DefaultTreeMapSettings$stable = 8;
com_treemap_DefaultTreeMapToolTip$stable = 8;
com_treemap_DefaultTreeMapView$stable = 8;
com_treemap_DepthFactory$stable = 8;
com_treemap_EqualCirclesInCircle$stable = 8;
com_treemap_Exp10Scale$stable = 0;
com_treemap_ExpScale$stable = 0;
com_treemap_ExpandLabeling$stable = 0;
com_treemap_FieldOrdering$stable = 0;
com_treemap_FixedNesting$stable = 0;
com_treemap_FlatNoBorderRendering$stable = 8;
com_treemap_FlatRendering$stable = 8;
com_treemap_HeightOrdering$stable = 0;
com_treemap_HighlightParentNodeRenderer$stable = 0;
com_treemap_IcicleAlgorithm$stable = 8;
com_treemap_InfiniteDepth$stable = 0;
com_treemap_InverseScale$stable = 0;
com_treemap_Itertools$stable = 0;
Itertools_instance = new Itertools();
com_treemap_LabelingFactory$stable = 8;
com_treemap_LeafNodeRenderer$stable = 0;
com_treemap_LeafTreeMapNode$stable = 8;
com_treemap_Log1pScale$stable = 0;
com_treemap_LogScale$stable = 0;
com_treemap_MatrixAlgorithm$stable = 0;
Companion_instance_85 = new Companion_85();
com_treemap_MaxAggregation$stable = 0;
com_treemap_MaxScale$stable = 0;
com_treemap_MinAggregation$stable = 0;
com_treemap_MinScale$stable = 0;
com_treemap_MutableAlgorithmOverrideProperty$stable = 8;
com_treemap_MutableAlgorithmProperty$stable = 8;
com_treemap_NestingFactory$stable = 8;
com_treemap_NodesTreeMapRenderer$stable = 8;
Companion_instance_87 = new Companion_87();
com_treemap_NoneAggregation$stable = 0;
com_treemap_NoneLabeling$stable = 0;
com_treemap_NoneNesting$stable = 0;
com_treemap_NumericTransformScale$stable = 0;
com_treemap_OneLevelIterator$stable = 8;
com_treemap_OrderingFactory$stable = 8;
com_treemap_OriginalOrdering$stable = 0;
Companion_instance_89 = new Companion_89();
com_treemap_OriginalScale$stable = 0;
com_treemap_OverlayLabeling$stable = 0;
com_treemap_OverridingTreeMapColumnSettings$stable = 8;
com_treemap_Pair$stable = 0;
com_treemap_ParentPreorderIterator$stable = 8;
com_treemap_ParentTreeMapNode$stable = 8;
com_treemap_PermutationGenerator$stable = 0;
com_treemap_PieAlgorithm$stable = 0;
com_treemap_PivotByAlgorithm_Biggest$stable = 0;
com_treemap_PivotByAlgorithm_Middle$stable = 0;
com_treemap_PivotByAlgorithm_SplitSize$stable = 0;
com_treemap_PivotByAlgorithm$stable = 8;
com_treemap_PostorderIterator$stable = 8;
com_treemap_PreorderIterator$stable = 8;
com_treemap_ProportionalNesting$stable = 0;
com_treemap_RectangularTransform$stable = 8;
Companion_instance_91 = new Companion_91();
com_treemap_RenderingFactory$stable = 8;
com_treemap_ScaleFactory$stable = 8;
com_treemap_SelectionNodeRenderer$stable = 0;
com_treemap_SizeOrColorOrdering$stable = 0;
com_treemap_SizeOrdering$stable = 0;
com_treemap_SizeWeightedAggregation$stable = 0;
com_treemap_SliceAndDiceAlgorithm_VerticalOrientationStrategy$stable = 0;
com_treemap_SliceAndDiceAlgorithm_HoritzonalOrientationStrategy$stable = 0;
com_treemap_SliceAndDiceAlgorithm_BestOrientationStrategy$stable = 0;
com_treemap_SliceAndDiceAlgorithm_AlternateOrientationStrategy$stable = 0;
com_treemap_SliceAndDiceAlgorithm$stable = 8;
com_treemap_SplitAlgorithm$stable = 0;
Companion_instance_94 = new Companion_94();
com_treemap_SquarifiedAlgorithm$stable = 8;
Companion_instance_95 = new Companion_95();
com_treemap_SquarifiedPlusAlgorithm$stable = 8;
Companion_instance_96 = new Companion_96();
com_treemap_StdDevAggregation$stable = 0;
com_treemap_StripAlgorithm$stable = 0;
com_treemap_SumAggregation$stable = 0;
com_treemap_SunburstAlgorithm$stable = 8;
com_treemap_SurroundLabeling$stable = 8;
Companion_instance_97 = new Companion_97();
com_treemap_TextParentNodeRenderer$stable = 0;
com_treemap_ThresholdDepth$stable = 0;
Companion_instance_98 = new Companion_98();
com_treemap_TreeMapColorMapPanelModel$stable = 8;
com_treemap_TreeMapEvent$stable = 0;
com_treemap_TreeMapFilterCoordinator$stable = 8;
com_treemap_TreeMapProbingCoordinator$stable = 8;
com_treemap_TreeMapSelectionCoordinator$stable = 8;
com_treemap_TreeMapSettingsEvent$stable = 0;
com_treemap_XPlus1Scale$stable = 0;
com_treemap_colormap_DataFrameColorMapFactory$stable = 0;
DataFrameColorMapFactory_instance = new DataFrameColorMapFactory();
com_treemap_crossplatform_AbstractTGraphics$stable = 8;
Companion_instance_99 = new Companion_99();
com_treemap_details_DetailsDataFrame$stable = 8;
com_treemap_tagcloud_AbstractTagCloudAlgorithm$stable = 8;
com_treemap_tagcloud_ArchimedeanSpiral$stable = 0;
com_treemap_tagcloud_DefaultWord$stable = 8;
com_treemap_tagcloud_HierarchicalBoundingBox$stable = 8;
com_treemap_tagcloud_HierarchicalBoundingBoxPair$stable = 8;
com_treemap_tagcloud_HierarchicalBoundingBoxes$stable = 8;
com_treemap_tagcloud_Interpolator$stable = 0;
com_treemap_tagcloud_LinearizedPathIterator$stable = 8;
com_treemap_tagcloud_Point2d$stable = 8;
com_treemap_tagcloud_PointPlusAccumulatedDistance$stable = 8;
com_treemap_tagcloud_PositionIterator$stable = 8;
com_treemap_tagcloud_RectangularTextShape$stable = 8;
com_treemap_tagcloud_Tuple2d$stable = 8;
com_treemap_tagcloud_Vector2d$stable = 8;
com_treemap_treeplot_Spoint$stable = 8;
com_treemap_JsTreeMap$stable = 8;
com_treemap_crossplatform_CanvasRenderingContext2DTGraphics$stable = 8;
com_treemap_crossplatform_Headless$stable = 0;
//endregion
//region block: exports
var KtList_0 = {};
KtList_0.fromJsArray = fromJsArray;
var KtSet_0 = {};
KtSet_0.fromJsSet = fromJsSet;
var BigDecimal_0 = {};
defineProp(BigDecimal_0, 'Companion', Companion_getInstance_17, VOID, true);
var BigInteger_0 = {};
defineProp(BigInteger_0, 'Companion', Companion_getInstance_18, VOID, true);
defineProp(MathContext, 'Companion', Companion_getInstance_23, VOID, true);
RoundingMode.values = values;
RoundingMode.valueOf = valueOf;
defineProp(RoundingMode, 'UP', RoundingMode_UP_getInstance, VOID, true);
defineProp(RoundingMode, 'DOWN', RoundingMode_DOWN_getInstance, VOID, true);
defineProp(RoundingMode, 'CEILING', RoundingMode_CEILING_getInstance, VOID, true);
defineProp(RoundingMode, 'FLOOR', RoundingMode_FLOOR_getInstance, VOID, true);
defineProp(RoundingMode, 'HALF_UP', RoundingMode_HALF_UP_getInstance, VOID, true);
defineProp(RoundingMode, 'HALF_DOWN', RoundingMode_HALF_DOWN_getInstance, VOID, true);
defineProp(RoundingMode, 'HALF_EVEN', RoundingMode_HALF_EVEN_getInstance, VOID, true);
defineProp(RoundingMode, 'UNNECESSARY', RoundingMode_UNNECESSARY_getInstance, VOID, true);
defineProp(RoundingMode, 'Companion', Companion_getInstance_25, VOID, true);
defineProp(SimpleProperty, 'Companion', Companion_getInstance_27, VOID, true);
EnhancedLabel.Rendering = Rendering;
EnhancedLabel.Rendering.values = values_1;
EnhancedLabel.Rendering.valueOf = valueOf_0;
defineProp(EnhancedLabel.Rendering, 'Truncate', Rendering_Truncate_getInstance, VOID, true);
defineProp(EnhancedLabel.Rendering, 'Clip', Rendering_Clip_getInstance, VOID, true);
defineProp(EnhancedLabel.Rendering, 'WordWrap', Rendering_WordWrap_getInstance, VOID, true);
EnhancedLabel.Effect = Effect;
defineProp(EnhancedLabel.Effect, 'Plain', Plain_getInstance, VOID, true);
defineProp(EnhancedLabel.Effect, 'Shadow', Shadow_getInstance, VOID, true);
defineProp(EnhancedLabel.Effect, 'Glow', Glow_getInstance, VOID, true);
defineProp(EnhancedLabel.Effect, 'Outline', Outline_getInstance, VOID, true);
defineProp(EnhancedLabel.Effect, 'Emphasize', Emphasize_getInstance, VOID, true);
defineProp(EnhancedLabel, 'Companion', Companion_getInstance_53, VOID, true);
InterpolatedPalette.Entry = Entry_1;
PaletteFactory.Entry = Entry_2;
defineProp(PaletteFactory, 'Companion', Companion_getInstance_55, VOID, true);
defineProp(AlgorithmFactory, 'Companion', Companion_getInstance_75, VOID, true);
var DefaultAlgorithmFactory = {getInstance: DefaultAlgorithmFactory_getInstance};
defineProp(DefaultTreeMapColumnSettings, 'Companion', Companion_getInstance_79, VOID, true);
defineProp(RenderingFactory, 'Companion', Companion_getInstance_92, VOID, true);
TreeMapColumnPropertyType.values = values_2;
TreeMapColumnPropertyType.valueOf = valueOf_1;
defineProp(TreeMapColumnPropertyType, 'algorithm', TreeMapColumnPropertyType_algorithm_getInstance, VOID, true);
defineProp(TreeMapColumnPropertyType, 'aggregation', TreeMapColumnPropertyType_aggregation_getInstance, VOID, true);
defineProp(TreeMapColumnPropertyType, 'scale', TreeMapColumnPropertyType_scale_getInstance, VOID, true);
defineProp(TreeMapColumnPropertyType, 'nesting', TreeMapColumnPropertyType_nesting_getInstance, VOID, true);
defineProp(TreeMapColumnPropertyType, 'ordering', TreeMapColumnPropertyType_ordering_getInstance, VOID, true);
defineProp(TreeMapColumnPropertyType, 'orderingDirection', TreeMapColumnPropertyType_orderingDirection_getInstance, VOID, true);
defineProp(TreeMapColumnPropertyType, 'orderingVerticalVanishingPoint', TreeMapColumnPropertyType_orderingVerticalVanishingPoint_getInstance, VOID, true);
defineProp(TreeMapColumnPropertyType, 'orderingHorizontalVanishingPoint', TreeMapColumnPropertyType_orderingHorizontalVanishingPoint_getInstance, VOID, true);
defineProp(TreeMapColumnPropertyType, 'labeling', TreeMapColumnPropertyType_labeling_getInstance, VOID, true);
defineProp(TreeMapColumnPropertyType, 'labelingForeground', TreeMapColumnPropertyType_labelingForeground_getInstance, VOID, true);
defineProp(TreeMapColumnPropertyType, 'labelingEffectColor', TreeMapColumnPropertyType_labelingEffectColor_getInstance, VOID, true);
defineProp(TreeMapColumnPropertyType, 'labelingFont', TreeMapColumnPropertyType_labelingFont_getInstance, VOID, true);
defineProp(TreeMapColumnPropertyType, 'labelingEffect', TreeMapColumnPropertyType_labelingEffect_getInstance, VOID, true);
defineProp(TreeMapColumnPropertyType, 'labelingHorizontalAlignment', TreeMapColumnPropertyType_labelingHorizontalAlignment_getInstance, VOID, true);
defineProp(TreeMapColumnPropertyType, 'labelingVerticalAlignment', TreeMapColumnPropertyType_labelingVerticalAlignment_getInstance, VOID, true);
defineProp(TreeMapColumnPropertyType, 'labelingRendering', TreeMapColumnPropertyType_labelingRendering_getInstance, VOID, true);
defineProp(TreeMapColumnPropertyType, 'labelingMinimumCharactersToDisplay', TreeMapColumnPropertyType_labelingMinimumCharactersToDisplay_getInstance, VOID, true);
defineProp(TreeMapColumnPropertyType, 'labelingEffectOpacity', TreeMapColumnPropertyType_labelingEffectOpacity_getInstance, VOID, true);
defineProp(TreeMapColumnPropertyType, 'labelingShrinkTextToFitShape', TreeMapColumnPropertyType_labelingShrinkTextToFitShape_getInstance, VOID, true);
defineProp(TreeMapColumnPropertyType, 'labelingResizeTextToFitShape', TreeMapColumnPropertyType_labelingResizeTextToFitShape_getInstance, VOID, true);
defineProp(TreeMapColumnPropertyType, 'labelingFloat', TreeMapColumnPropertyType_labelingFloat_getInstance, VOID, true);
defineProp(TreeMapColumnPropertyType, 'labelingContrastEnhancement', TreeMapColumnPropertyType_labelingContrastEnhancement_getInstance, VOID, true);
defineProp(TreeMapColumnPropertyType, 'nestingAmount', TreeMapColumnPropertyType_nestingAmount_getInstance, VOID, true);
defineProp(TreeMapColumnPropertyType, 'nestingBackground', TreeMapColumnPropertyType_nestingBackground_getInstance, VOID, true);
defineProp(TreeMapColumnPropertyType, 'headerForeground', TreeMapColumnPropertyType_headerForeground_getInstance, VOID, true);
defineProp(TreeMapColumnPropertyType, 'headerEffectColor', TreeMapColumnPropertyType_headerEffectColor_getInstance, VOID, true);
defineProp(TreeMapColumnPropertyType, 'headerBackground', TreeMapColumnPropertyType_headerBackground_getInstance, VOID, true);
defineProp(TreeMapColumnPropertyType, 'headerFont', TreeMapColumnPropertyType_headerFont_getInstance, VOID, true);
defineProp(TreeMapColumnPropertyType, 'headerEffect', TreeMapColumnPropertyType_headerEffect_getInstance, VOID, true);
defineProp(TreeMapColumnPropertyType, 'headerHorizontalAlignment', TreeMapColumnPropertyType_headerHorizontalAlignment_getInstance, VOID, true);
defineProp(TreeMapColumnPropertyType, 'headerVerticalAlignment', TreeMapColumnPropertyType_headerVerticalAlignment_getInstance, VOID, true);
defineProp(TreeMapColumnPropertyType, 'headerRendering', TreeMapColumnPropertyType_headerRendering_getInstance, VOID, true);
defineProp(TreeMapColumnPropertyType, 'headerMinimumCharactersToDisplay', TreeMapColumnPropertyType_headerMinimumCharactersToDisplay_getInstance, VOID, true);
defineProp(TreeMapColumnPropertyType, 'headerEffectOpacity', TreeMapColumnPropertyType_headerEffectOpacity_getInstance, VOID, true);
defineProp(TreeMapColumnPropertyType, 'headerInsets', TreeMapColumnPropertyType_headerInsets_getInstance, VOID, true);
defineProp(TreeMapColumnPropertyType, 'tooltipForeground', TreeMapColumnPropertyType_tooltipForeground_getInstance, VOID, true);
defineProp(TreeMapColumnPropertyType, 'tooltipFont', TreeMapColumnPropertyType_tooltipFont_getInstance, VOID, true);
defineProp(TreeMapColumnPropertyType, 'tooltipRendering', TreeMapColumnPropertyType_tooltipRendering_getInstance, VOID, true);
defineProp(TreeMapColumnPropertyType, 'borderColor', TreeMapColumnPropertyType_borderColor_getInstance, VOID, true);
defineProp(TreeMapColumnPropertyType, 'borderThickness', TreeMapColumnPropertyType_borderThickness_getInstance, VOID, true);
defineProp(TreeMapColumnPropertyType, 'format', TreeMapColumnPropertyType_format_getInstance, VOID, true);
defineProp(TreeMapColumnPropertyType, 'showLabel', TreeMapColumnPropertyType_showLabel_getInstance, VOID, true);
defineProp(TreeMapColumnPropertyType, 'colormap', TreeMapColumnPropertyType_colormap_getInstance, VOID, true);
defineProp(TreeMapColumnPropertyType, 'overrideDefaults', TreeMapColumnPropertyType_overrideDefaults_getInstance, VOID, true);
TreeMapPropertyType.values = values_3;
TreeMapPropertyType.valueOf = valueOf_2;
defineProp(TreeMapPropertyType, 'sizeField', TreeMapPropertyType_sizeField_getInstance, VOID, true);
defineProp(TreeMapPropertyType, 'colorField', TreeMapPropertyType_colorField_getInstance, VOID, true);
defineProp(TreeMapPropertyType, 'labelsField', TreeMapPropertyType_labelsField_getInstance, VOID, true);
defineProp(TreeMapPropertyType, 'toolTipField', TreeMapPropertyType_toolTipField_getInstance, VOID, true);
defineProp(TreeMapPropertyType, 'backgroundField', TreeMapPropertyType_backgroundField_getInstance, VOID, true);
defineProp(TreeMapPropertyType, 'heightField', TreeMapPropertyType_heightField_getInstance, VOID, true);
defineProp(TreeMapPropertyType, 'groupByField', TreeMapPropertyType_groupByField_getInstance, VOID, true);
defineProp(TreeMapPropertyType, 'depth', TreeMapPropertyType_depth_getInstance, VOID, true);
defineProp(TreeMapPropertyType, 'rendering', TreeMapPropertyType_rendering_getInstance, VOID, true);
defineProp(TreeMapPropertyType, 'background', TreeMapPropertyType_background_getInstance, VOID, true);
defineProp(TreeMapPropertyType, 'tooltipBackground', TreeMapPropertyType_tooltipBackground_getInstance, VOID, true);
defineProp(TreeMapPropertyType, 'probingColor', TreeMapPropertyType_probingColor_getInstance, VOID, true);
defineProp(TreeMapPropertyType, 'selectionColor', TreeMapPropertyType_selectionColor_getInstance, VOID, true);
defineProp(TreeMapPropertyType, 'hideSearchResults', TreeMapPropertyType_hideSearchResults_getInstance, VOID, true);
defineProp(TreeMapPropertyType, 'hideFilterResults', TreeMapPropertyType_hideFilterResults_getInstance, VOID, true);
defineProp(TreeMapPropertyType, 'dimension', TreeMapPropertyType_dimension_getInstance, VOID, true);
defineProp(TreeMapPropertyType, 'dimensionFixed', TreeMapPropertyType_dimensionFixed_getInstance, VOID, true);
defineProp(TreeMapPropertyType, 'maximumHeight', TreeMapPropertyType_maximumHeight_getInstance, VOID, true);
defineProp(TreeMapPropertyType, 'lightSourceHeight', TreeMapPropertyType_lightSourceHeight_getInstance, VOID, true);
defineProp(TreeMapPropertyType, 'lightSourceAmbient', TreeMapPropertyType_lightSourceAmbient_getInstance, VOID, true);
defineProp(TreeMapPropertyType, 'lightSourceX', TreeMapPropertyType_lightSourceX_getInstance, VOID, true);
defineProp(TreeMapPropertyType, 'lightSourceY', TreeMapPropertyType_lightSourceY_getInstance, VOID, true);
defineProp(TreeMapPropertyType, 'lightSourceZ', TreeMapPropertyType_lightSourceZ_getInstance, VOID, true);
defineProp(TreeMapPropertyType, 'progressive', TreeMapPropertyType_progressive_getInstance, VOID, true);
var TreeMapComponent = {get: get_TreeMapComponent};
export {
  KtList_0 as KtList,
  KtSet_0 as KtSet,
  Pair as Pair,
  BigDecimal_0 as BigDecimal,
  BigInteger_0 as BigInteger,
  BigIntegerRange as BigIntegerRange,
  MathContext as MathContext,
  RoundingMode as RoundingMode,
  PropertyEvent as PropertyEvent,
  SimpleProperty as SimpleProperty,
  JsArrayList as JsArrayList,
  bigInteger as bigInteger,
  bigDecimal as bigDecimal,
  EnhancedLabel as EnhancedLabel,
  InterpolatedPalette as InterpolatedPalette,
  PaletteFactory as PaletteFactory,
  colorOf as colorOf,
  DefaultDataFrame as DefaultDataFrame,
  JsonDataFrame as JsonDataFrame,
  AlgorithmFactory as AlgorithmFactory,
  CushionRendering as CushionRendering,
  DefaultAlgorithmFactory as DefaultAlgorithmFactory,
  DefaultTreeMapColumnSettings as DefaultTreeMapColumnSettings,
  DefaultTreeMapModel as DefaultTreeMapModel,
  DefaultTreeMapSettings as DefaultTreeMapSettings,
  FlatNoBorderRendering as FlatNoBorderRendering,
  FlatRendering as FlatRendering,
  OverridingTreeMapColumnSettings as OverridingTreeMapColumnSettings,
  RenderingFactory as RenderingFactory,
  TreeMapColumnPropertyType as TreeMapColumnPropertyType,
  TreeMapPropertyType as TreeMapPropertyType,
  JsTreeMap as JsTreeMap,
  TreeMapComponent as TreeMapComponent,
  getTreeMapComponent as getTreeMapComponent,
};
//endregion

//# sourceMappingURL=macrofocus-treemap.mjs.map
