Files
mttt/public/mttt.js
2019-11-20 19:10:35 +01:00

1855 lines
60 KiB
JavaScript

/* Generated by the Nim Compiler v1.0.2 */
/* (c) 2019 Andreas Rumpf */
var framePtr = null;
var excHandler = 0;
var lastJSError = null;
if (typeof Int8Array === 'undefined') Int8Array = Array;
if (typeof Int16Array === 'undefined') Int16Array = Array;
if (typeof Int32Array === 'undefined') Int32Array = Array;
if (typeof Uint8Array === 'undefined') Uint8Array = Array;
if (typeof Uint16Array === 'undefined') Uint16Array = Array;
if (typeof Uint32Array === 'undefined') Uint32Array = Array;
if (typeof Float32Array === 'undefined') Float32Array = Array;
if (typeof Float64Array === 'undefined') Float64Array = Array;
var NTI100432 = {size: 0,kind: 31,base: null,node: null,finalizer: null};
var NTI103247 = {size: 0, kind: 18, base: null, node: null, finalizer: null};
var NTI3630 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI3652 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI3644 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI124 = {size: 0,kind: 36,base: null,node: null,finalizer: null};
var NTI202309 = {size: 0, kind: 18, base: null, node: null, finalizer: null};
var NTI214055 = {size: 0,kind: 16,base: null,node: null,finalizer: null};
var NTI214054 = {size: 0,kind: 16,base: null,node: null,finalizer: null};
var NTI214225 = {size: 0,kind: 16,base: null,node: null,finalizer: null};
var NTI214224 = {size: 0,kind: 16,base: null,node: null,finalizer: null};
var NTI214021 = {size: 0, kind: 14, base: null, node: null, finalizer: null};
var NTI214233 = {size: 0,kind: 16,base: null,node: null,finalizer: null};
var NTI214232 = {size: 0,kind: 16,base: null,node: null,finalizer: null};
var NTI3642 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI3646 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI3658 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI3662 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI104 = {size: 0,kind: 31,base: null,node: null,finalizer: null};
var NTI21156 = {size: 0, kind: 18, base: null, node: null, finalizer: null};
var NTI3608 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI3714 = {size: 0,kind: 22,base: null,node: null,finalizer: null};
var NTI114 = {size: 0,kind: 40,base: null,node: null,finalizer: null};
var NTI138 = {size: 0,kind: 28,base: null,node: null,finalizer: null};
var NTI140 = {size: 0,kind: 29,base: null,node: null,finalizer: null};
var NTI3708 = {size: 0,kind: 22,base: null,node: null,finalizer: null};
var NTI3626 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI3628 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI3650 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NNI3650 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI3650.node = NNI3650;
var NNI3628 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI3628.node = NNI3628;
NTI3708.base = NTI3626;
NTI3714.base = NTI3626;
var NNI3626 = {kind: 2, len: 6, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "parent", len: 0, typ: NTI3708, name: "parent", sons: null},
{kind: 1, offset: "name", len: 0, typ: NTI140, name: "name", sons: null},
{kind: 1, offset: "message", len: 0, typ: NTI138, name: "msg", sons: null},
{kind: 1, offset: "trace", len: 0, typ: NTI138, name: "trace", sons: null},
{kind: 1, offset: "raiseId", len: 0, typ: NTI114, name: "raiseId", sons: null},
{kind: 1, offset: "up", len: 0, typ: NTI3714, name: "up", sons: null}]};
NTI3626.node = NNI3626;
var NNI3608 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI3608.node = NNI3608;
NTI3626.base = NTI3608;
NTI3628.base = NTI3626;
NTI3650.base = NTI3628;
var NNI21156 = {kind: 2, len: 2, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "Field0", len: 0, typ: NTI140, name: "Field0", sons: null},
{kind: 1, offset: "Field1", len: 0, typ: NTI104, name: "Field1", sons: null}]};
NTI21156.node = NNI21156;
var NNI3662 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI3662.node = NNI3662;
NTI3662.base = NTI3628;
var NNI3658 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI3658.node = NNI3658;
NTI3658.base = NTI3628;
var NNI3646 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI3646.node = NNI3646;
var NNI3642 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI3642.node = NNI3642;
NTI3642.base = NTI3628;
NTI3646.base = NTI3642;
var NNI214021 = {kind: 2, offset: 0, typ: null, name: null, len: 4, sons: {"0": {kind: 1, offset: 0, typ: NTI214021, name: "mPlayer1", len: 0, sons: null},
"1": {kind: 1, offset: 1, typ: NTI214021, name: "mPlayer2", len: 0, sons: null},
"2": {kind: 1, offset: 2, typ: NTI214021, name: "mFree", len: 0, sons: null},
"3": {kind: 1, offset: 3, typ: NTI214021, name: "mDraw", len: 0, sons: null}}};
NTI214021.node = NNI214021;
NTI214233.base = NTI214021;
NTI214232.base = NTI214233;
NTI214055.base = NTI214021;
NTI214054.base = NTI214055;
NTI214225.base = NTI214054;
NTI214224.base = NTI214225;
var NNI202309 = {kind: 2, len: 2, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "x", len: 0, typ: NTI124, name: "x", sons: null},
{kind: 1, offset: "y", len: 0, typ: NTI124, name: "y", sons: null}]};
NTI202309.node = NNI202309;
var NNI3644 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI3644.node = NNI3644;
NTI3644.base = NTI3642;
var NNI3652 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI3652.node = NNI3652;
var NNI3630 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI3630.node = NNI3630;
NTI3630.base = NTI3626;
NTI3652.base = NTI3630;
var NNI103247 = {kind: 2, len: 2, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "a", len: 0, typ: NTI100432, name: "a", sons: null},
{kind: 1, offset: "b", len: 0, typ: NTI104, name: "b", sons: null}]};
NTI103247.node = NNI103247;
function makeNimstrLit(c_23270) {
var ln = c_23270.length;
var result = new Array(ln);
for (var i = 0; i < ln; ++i) {
result[i] = c_23270.charCodeAt(i);
}
return result;
}
function toJSStr(s_23304) {
var Tmp5;
var Tmp7;
var result_23305 = null;
var res_23363 = new_seq_23336((s_23304 != null ? s_23304.length : 0));
var i_23365 = 0;
var j_23367 = 0;
L1: do {
L2: while (true) {
if (!(i_23365 < (s_23304 != null ? s_23304.length : 0))) break L2;
var c_23368 = s_23304[i_23365];
if ((c_23368 < 128)) {
res_23363[j_23367] = String.fromCharCode(c_23368);
i_23365 += 1;
}
else {
var helper_23391 = new_seq_23336(0);
L3: do {
L4: while (true) {
if (!true) break L4;
var code_23392 = c_23368.toString(16);
if (((code_23392 != null ? code_23392.length : 0) == 1)) {
if (helper_23391 != null) { helper_23391.push("%0"); } else { helper_23391 = ["%0"]; };
}
else {
if (helper_23391 != null) { helper_23391.push("%"); } else { helper_23391 = ["%"]; };
}
if (helper_23391 != null) { helper_23391.push(code_23392); } else { helper_23391 = [code_23392]; };
i_23365 += 1;
if (((s_23304 != null ? s_23304.length : 0) <= i_23365)) Tmp5 = true; else { Tmp5 = (s_23304[i_23365] < 128); } if (Tmp5) {
break L3;
}
c_23368 = s_23304[i_23365];
}
} while(false);
++excHandler;
Tmp7 = framePtr;
try {
res_23363[j_23367] = decodeURIComponent(helper_23391.join(""));
--excHandler;
} catch (EXC) {
var prevJSError = lastJSError;
lastJSError = EXC;
--excHandler;
framePtr = Tmp7;
res_23363[j_23367] = helper_23391.join("");
lastJSError = prevJSError;
} finally {
framePtr = Tmp7;
}
}
j_23367 += 1;
}
} while(false);
if (res_23363 === null) res_23363 = [];
if (res_23363.length < j_23367) { for (var i=res_23363.length;i<j_23367;++i) res_23363.push(null); }
else { res_23363.length = j_23367; };
result_23305 = res_23363.join("");
return result_23305;
}
function cstrToNimstr(c_23287) {
var ln = c_23287.length;
var result = new Array(ln);
var r = 0;
for (var i = 0; i < ln; ++i) {
var ch = c_23287.charCodeAt(i);
if (ch < 128) {
result[r] = ch;
}
else {
if (ch < 2048) {
result[r] = (ch >> 6) | 192;
}
else {
if (ch < 55296 || ch >= 57344) {
result[r] = (ch >> 12) | 224;
}
else {
++i;
ch = 65536 + (((ch & 1023) << 10) | (c_23287.charCodeAt(i) & 1023));
result[r] = (ch >> 18) | 240;
++r;
result[r] = ((ch >> 12) & 63) | 128;
}
++r;
result[r] = ((ch >> 6) & 63) | 128;
}
++r;
result[r] = (ch & 63) | 128;
}
++r;
}
return result;
}
function setConstr() {
var result = {};
for (var i = 0; i < arguments.length; ++i) {
var x = arguments[i];
if (typeof(x) == "object") {
for (var j = x[0]; j <= x[1]; ++j) {
result[j] = true;
}
} else {
result[x] = true;
}
}
return result;
}
var ConstSet1 = setConstr(17, 16, 4, 18, 27, 19, 23, 22, 21);
function nimCopy(dest_24827, src_24828, ti_24829) {
var result_25019 = null;
switch (ti_24829.kind) {
case 21:
case 22:
case 23:
case 5:
if (!(is_fat_pointer_24801(ti_24829))) {
result_25019 = src_24828;
}
else {
result_25019 = [src_24828[0], src_24828[1]];
}
break;
case 19:
if (dest_24827 === null || dest_24827 === undefined) {
dest_24827 = {};
}
else {
for (var key in dest_24827) { delete dest_24827[key]; }
}
for (var key in src_24828) { dest_24827[key] = src_24828[key]; }
result_25019 = dest_24827;
break;
case 18:
case 17:
if (!((ti_24829.base == null))) {
result_25019 = nimCopy(dest_24827, src_24828, ti_24829.base);
}
else {
if ((ti_24829.kind == 17)) {
result_25019 = (dest_24827 === null || dest_24827 === undefined) ? {m_type: ti_24829} : dest_24827;
}
else {
result_25019 = (dest_24827 === null || dest_24827 === undefined) ? {} : dest_24827;
}
}
nimCopyAux(result_25019, src_24828, ti_24829.node);
break;
case 24:
case 4:
case 27:
case 16:
if (src_24828 === null) {
result_25019 = null;
}
else {
if (dest_24827 === null || dest_24827 === undefined) {
dest_24827 = new Array(src_24828.length);
}
else {
dest_24827.length = src_24828.length;
}
result_25019 = dest_24827;
for (var i = 0; i < src_24828.length; ++i) {
result_25019[i] = nimCopy(result_25019[i], src_24828[i], ti_24829.base);
}
}
break;
case 28:
if (src_24828 !== null) {
result_25019 = src_24828.slice(0);
}
break;
default:
result_25019 = src_24828;
break;
}
return result_25019;
}
function arrayConstr(len_25086, value_25087, typ_25088) {
var result = new Array(len_25086);
for (var i = 0; i < len_25086; ++i) result[i] = nimCopy(null, value_25087, typ_25088);
return result;
}
function raiseException(e_21618, ename_21619) {
e_21618.name = ename_21619;
if ((excHandler == 0)) {
unhandledException(e_21618);
}
e_21618.trace = nimCopy(null, raw_write_stack_trace_21468(), NTI138);
throw e_21618;
}
function chckRange(i_25124, a_25125, b_25126) {
var Tmp1;
var result_25127 = 0;
BeforeRet: do {
if (!(a_25125 <= i_25124)) Tmp1 = false; else { Tmp1 = (i_25124 <= b_25126); } if (Tmp1) {
result_25127 = i_25124;
break BeforeRet;
}
else {
raiseRangeError();
}
} while (false);
return result_25127;
}
function chckIndx(i_25105, a_25106, b_25107) {
var Tmp1;
var result_25108 = 0;
BeforeRet: do {
if (!(a_25106 <= i_25105)) Tmp1 = false; else { Tmp1 = (i_25105 <= b_25107); } if (Tmp1) {
result_25108 = i_25105;
break BeforeRet;
}
else {
raiseIndexError(i_25105, a_25106, b_25107);
}
} while (false);
return result_25108;
}
function addInt(a_23803, b_23804) {
var result = a_23803 + b_23804;
if (result > 2147483647 || result < -2147483648) raiseOverflow();
return result;
}
function mnewString(len_23463) {
return new Array(len_23463);
}
var ConstSet2 = setConstr(60, 62, 94);
var ConstSet3 = setConstr(60, 62, 94);
var ConstSet4 = setConstr(45, 43, 32);
var ConstSet5 = setConstr([48, 57]);
var ConstSet6 = setConstr([48, 57]);
var ConstSet7 = setConstr([48, 57]);
function subInt(a_23821, b_23822) {
var result = a_23821 - b_23822;
if (result > 2147483647 || result < -2147483648) raiseOverflow();
return result;
}
function divInt(a_23857, b_23858) {
if (b_23858 == 0) raiseDivByZero();
if (b_23858 == -1 && a_23857 == 2147483647) raiseOverflow();
return Math.trunc(a_23857 / b_23858);
}
function mulInt(a_23839, b_23840) {
var result = a_23839 * b_23840;
if (result > 2147483647 || result < -2147483648) raiseOverflow();
return result;
}
var ConstSet8 = setConstr([65, 90], [97, 122]);
function modInt(a_23875, b_23876) {
if (b_23876 == 0) raiseDivByZero();
if (b_23876 == -1 && a_23875 == 2147483647) raiseOverflow();
return Math.trunc(a_23875 % b_23876);
}
function nimCharToStr(x_21062) {
var result_21063 = null;
result_21063 = nimCopy(null, mnewString(1), NTI138);
result_21063[0] = x_21062;
return result_21063;
}
function addChar(x_25311, c_25312) {
x_25311.push(c_25312);
}
var nim_program_result = 0;
var global_raise_hook_18618 = [null];
var local_raise_hook_18623 = [null];
var out_of_mem_hook_18626 = [null];
if (!Math.trunc) {
Math.trunc = function(v) {
v = +v;
if (!isFinite(v)) return v;
return (v - v % 1) || (v < 0 ? -0 : v === 0 ? v : 0);
};
}
var lc_54221 = [{}];
var object_id_166237 = [0];
var env_computed_186610 = [false];
var environment_186612 = [null];
var render_width_221049 = [0];
var render_height_221050 = [0];
function new_seq_23336(len_23339) {
var result_23341 = null;
var F={procname:"newSeq.newSeq",prev:framePtr,filename:"system.nim",line:0};
framePtr = F;
F.line = 996;
result_23341 = new Array(len_23339); for (var i=0;i<len_23339;++i) {result_23341[i]=null;} framePtr = F.prev;
return result_23341;
}
function get_pixel_ratio_200097() {
var result_200099 = 0.0;
var F={procname:"canvasjs.getPixelRatio",prev:framePtr,filename:"canvasjs.nim",line:0};
framePtr = F;
F.line = 37;
var ctx = document.createElement("canvas").getContext("2d"),
dpr = window.devicePixelRatio || 1,
bsr = ctx.webkitBackingStorePixelRatio ||
ctx.mozBackingStorePixelRatio ||
ctx.msBackingStorePixelRatio ||
ctx.oBackingStorePixelRatio ||
ctx.backingStorePixelRatio || 1;
result_200099 = dpr / bsr;
framePtr = F.prev;
return result_200099;
}
function get_width_204323(preferred_width_204325) {
var Tmp1;
var result_204326 = 0;
var F={procname:"graphics.getWidth",prev:framePtr,filename:"graphics.nim",line:0};
framePtr = F;
F.line = 104;
if ((preferred_width_204325 == -1)) {
Tmp1 = window.innerWidth;
}
else {
Tmp1 = preferred_width_204325;
}
result_204326 = Tmp1;
framePtr = F.prev;
return result_204326;
}
function get_height_204341(preferred_height_204343) {
var Tmp1;
var result_204344 = 0;
var F={procname:"graphics.getHeight",prev:framePtr,filename:"graphics.nim",line:0};
framePtr = F;
F.line = 110;
if ((preferred_height_204343 == -1)) {
Tmp1 = window.innerHeight;
}
else {
Tmp1 = preferred_height_204343;
}
result_204344 = Tmp1;
framePtr = F.prev;
return result_204344;
}
function is_power_of_two_59062(x_59064) {
var Tmp1;
var result_59065 = false;
BeforeRet: do {
if (!(0 < x_59064)) Tmp1 = false; else { Tmp1 = ((x_59064 & (x_59064 - 1)) == 0); } result_59065 = Tmp1;
break BeforeRet;
} while (false);
return result_59065;
}
function is_fat_pointer_24801(ti_24803) {
var result_24804 = false;
BeforeRet: do {
result_24804 = !((ConstSet1[ti_24803.base.kind] != undefined));
break BeforeRet;
} while (false);
return result_24804;
}
function nimCopyAux(dest_24832, src_24833, n_24835) {
switch (n_24835.kind) {
case 0:
break;
case 1:
dest_24832[n_24835.offset] = nimCopy(dest_24832[n_24835.offset], src_24833[n_24835.offset], n_24835.typ);
break;
case 2:
for (var i = 0; i < n_24835.sons.length; i++) {
nimCopyAux(dest_24832, src_24833, n_24835.sons[i]);
}
break;
case 3:
dest_24832[n_24835.offset] = nimCopy(dest_24832[n_24835.offset], src_24833[n_24835.offset], n_24835.typ);
for (var i = 0; i < n_24835.sons.length; ++i) {
nimCopyAux(dest_24832, src_24833, n_24835.sons[i][1]);
}
break;
}
}
function add_18638(x_18641, x_18641_Idx, y_18642) {
if (x_18641[x_18641_Idx] === null) { x_18641[x_18641_Idx] = []; }
var off = x_18641[x_18641_Idx].length;
x_18641[x_18641_Idx].length += y_18642.length;
for (var i = 0; i < y_18642.length; ++i) {
x_18641[x_18641_Idx][off+i] = y_18642.charCodeAt(i);
}
}
function aux_write_stack_trace_21151(f_21153) {
var Tmp3;
var result_21154 = [null];
var it_21162 = f_21153;
var i_21164 = 0;
var total_21166 = 0;
var temp_frames_21173 = arrayConstr(64, {Field0: null, Field1: 0}, NTI21156);
L1: do {
L2: while (true) {
if (!!((it_21162 == null))) Tmp3 = false; else { Tmp3 = (i_21164 <= 63); } if (!Tmp3) break L2;
temp_frames_21173[i_21164].Field0 = it_21162.procname;
temp_frames_21173[i_21164].Field1 = it_21162.line;
i_21164 += 1;
total_21166 += 1;
it_21162 = it_21162.prev;
}
} while(false);
L4: do {
L5: while (true) {
if (!!((it_21162 == null))) break L5;
total_21166 += 1;
it_21162 = it_21162.prev;
}
} while(false);
result_21154[0] = nimCopy(null, [], NTI138);
if (!((total_21166 == i_21164))) {
if (result_21154[0] != null) { result_21154[0] = (result_21154[0]).concat(makeNimstrLit("(")); } else { result_21154[0] = makeNimstrLit("("); };
if (result_21154[0] != null) { result_21154[0] = (result_21154[0]).concat(cstrToNimstr(((total_21166 - i_21164))+"")); } else { result_21154[0] = cstrToNimstr(((total_21166 - i_21164))+"").slice(); };
if (result_21154[0] != null) { result_21154[0] = (result_21154[0]).concat(makeNimstrLit(" calls omitted) ...\x0A")); } else { result_21154[0] = makeNimstrLit(" calls omitted) ...\x0A"); };
}
L6: do {
var j_21421 = 0;
var colontmp__222097 = 0;
colontmp__222097 = (i_21164 - 1);
var res_222102 = colontmp__222097;
L7: do {
L8: while (true) {
if (!(0 <= res_222102)) break L8;
j_21421 = res_222102;
add_18638(result_21154, 0, temp_frames_21173[j_21421].Field0);
if ((0 < temp_frames_21173[j_21421].Field1)) {
if (result_21154[0] != null) { result_21154[0] = (result_21154[0]).concat(makeNimstrLit(", line: ")); } else { result_21154[0] = makeNimstrLit(", line: "); };
if (result_21154[0] != null) { result_21154[0] = (result_21154[0]).concat(cstrToNimstr((temp_frames_21173[j_21421].Field1)+"")); } else { result_21154[0] = cstrToNimstr((temp_frames_21173[j_21421].Field1)+"").slice(); };
}
if (result_21154[0] != null) { result_21154[0] = (result_21154[0]).concat(makeNimstrLit("\x0A")); } else { result_21154[0] = makeNimstrLit("\x0A"); };
res_222102 -= 1;
}
} while(false);
} while(false);
return result_21154[0];
}
function raw_write_stack_trace_21468() {
var result_21470 = null;
if (!((framePtr == null))) {
result_21470 = nimCopy(null, (makeNimstrLit("Traceback (most recent call last)\x0A") || []).concat(aux_write_stack_trace_21151(framePtr) || []), NTI138);
}
else {
result_21470 = nimCopy(null, makeNimstrLit("No stack traceback available\x0A"), NTI138);
}
return result_21470;
}
function unhandledException(e_21529) {
var buf_21530 = [[]];
if (!(((e_21529.message != null ? e_21529.message.length : 0) == 0))) {
if (buf_21530[0] != null) { buf_21530[0] = (buf_21530[0]).concat(makeNimstrLit("Error: unhandled exception: ")); } else { buf_21530[0] = makeNimstrLit("Error: unhandled exception: "); };
if (buf_21530[0] != null) { buf_21530[0] = (buf_21530[0]).concat(e_21529.message); } else { buf_21530[0] = e_21529.message.slice(); };
}
else {
if (buf_21530[0] != null) { buf_21530[0] = (buf_21530[0]).concat(makeNimstrLit("Error: unhandled exception")); } else { buf_21530[0] = makeNimstrLit("Error: unhandled exception"); };
}
if (buf_21530[0] != null) { buf_21530[0] = (buf_21530[0]).concat(makeNimstrLit(" [")); } else { buf_21530[0] = makeNimstrLit(" ["); };
add_18638(buf_21530, 0, e_21529.name);
if (buf_21530[0] != null) { buf_21530[0] = (buf_21530[0]).concat(makeNimstrLit("]\x0A")); } else { buf_21530[0] = makeNimstrLit("]\x0A"); };
if (buf_21530[0] != null) { buf_21530[0] = (buf_21530[0]).concat(raw_write_stack_trace_21468()); } else { buf_21530[0] = raw_write_stack_trace_21468().slice(); };
var cbuf_21601 = toJSStr(buf_21530[0]);
framePtr = null;
if (typeof(Error) !== "undefined") {
throw new Error(cbuf_21601);
}
else {
throw cbuf_21601;
}
}
function sys_fatal_15062(message_15066) {
var F={procname:"sysFatal.sysFatal",prev:framePtr,filename:"fatal.nim",line:0};
framePtr = F;
F.line = 34;
var e_15203 = null;
F.line = 37;
e_15203 = {m_type: NTI3650, parent: null, name: null, message: null, trace: null, raiseId: 0, up: null};
F.line = 38;
e_15203.message = nimCopy(null, message_15066, NTI138);
F.line = 39;
raiseException(e_15203, "AssertionError");
framePtr = F.prev;
}
function raise_assert_15058(msg_15060) {
var F={procname:"assertions.raiseAssert",prev:framePtr,filename:"assertions.nim",line:0};
framePtr = F;
F.line = 20;
sys_fatal_15062(msg_15060);
framePtr = F.prev;
}
function failed_assert_impl_15266(msg_15268) {
var F={procname:"assertions.failedAssertImpl",prev:framePtr,filename:"assertions.nim",line:0};
framePtr = F;
F.line = 27;
raise_assert_15058(msg_15268);
framePtr = F.prev;
}
function raiseRangeError() {
var eHEX60gensym22457_22603 = null;
eHEX60gensym22457_22603 = {m_type: NTI3662, parent: null, name: null, message: null, trace: null, raiseId: 0, up: null};
eHEX60gensym22457_22603.message = nimCopy(null, makeNimstrLit("value out of range"), NTI138);
eHEX60gensym22457_22603.parent = null;
raiseException(eHEX60gensym22457_22603, "RangeError");
}
function init_table_204724(initial_size_204728) {
var result_204730 = {data: null, counter: 0};
var F={procname:"initTable.initTable",prev:framePtr,filename:"tables.nim",line:0};
framePtr = F;
if (!(is_power_of_two_59062(initial_size_204728))) {
F.line = 118;
failed_assert_impl_15266(makeNimstrLit("/home/luxick/.choosenim/toolchains/nim-1.0.2/lib/pure/collections/tableimpl.nim(118, 10) `isPowerOfTwo(initialSize)` "));
}
F.line = 119;
result_204730.counter = 0;
F.line = 120;
result_204730.data = new Array(chckRange(initial_size_204728, 0, 2147483647)); for (var i=0;i<chckRange(initial_size_204728, 0, 2147483647);++i) {result_204730.data[i]={Field0: 0, Field1: null, Field2: null};} framePtr = F.prev;
return result_204730;
}
function to_float_10657(i_10659) {
var result_10660 = 0.0;
var F={procname:"system.toFloat",prev:framePtr,filename:"system.nim",line:0};
framePtr = F;
F.line = 2287;
result_10660 = i_10659;
framePtr = F.prev;
return result_10660;
}
function HEX2F_26817(x_26819, y_26820) {
var result_26821 = 0.0;
var F={procname:"system./",prev:framePtr,filename:"system.nim",line:0};
framePtr = F;
F.line = 3896;
result_26821 = (to_float_10657(x_26819) / to_float_10657(y_26820));
framePtr = F.prev;
return result_26821;
}
function min_12701(x_12703, y_12704) {
var Tmp1;
var Tmp2;
var result_12705 = 0.0;
if ((x_12703 <= y_12704)) Tmp2 = true; else { Tmp2 = !((y_12704 == y_12704)); } if (Tmp2) {
Tmp1 = x_12703;
}
else {
Tmp1 = y_12704;
}
result_12705 = Tmp1;
return result_12705;
}
function raiseIndexError(i_22655, a_22656, b_22657) {
var Tmp1;
var eHEX60gensym22802_23003 = null;
eHEX60gensym22802_23003 = {m_type: NTI3658, parent: null, name: null, message: null, trace: null, raiseId: 0, up: null};
if ((b_22657 < a_22656)) {
Tmp1 = makeNimstrLit("index out of bounds, the container is empty");
}
else {
Tmp1 = (makeNimstrLit("index ") || []).concat(cstrToNimstr((i_22655)+"") || [],makeNimstrLit(" not in ") || [],cstrToNimstr((a_22656)+"") || [],makeNimstrLit(" .. ") || [],cstrToNimstr((b_22657)+"") || []);
}
eHEX60gensym22802_23003.message = nimCopy(null, Tmp1, NTI138);
eHEX60gensym22802_23003.parent = null;
raiseException(eHEX60gensym22802_23003, "IndexError");
}
function raiseOverflow() {
var eHEX60gensym22058_22203 = null;
eHEX60gensym22058_22203 = {m_type: NTI3646, parent: null, name: null, message: null, trace: null, raiseId: 0, up: null};
eHEX60gensym22058_22203.message = nimCopy(null, makeNimstrLit("over- or underflow"), NTI138);
eHEX60gensym22058_22203.parent = null;
raiseException(eHEX60gensym22058_22203, "OverflowError");
}
function resize_canvas_204415(renderer_204417) {
var F={procname:"graphics.resizeCanvas",prev:framePtr,filename:"graphics.nim",line:0};
framePtr = F;
F.line = 149;
renderer_204417.canvas.width = get_width_204323(renderer_204417.preferredWidth);
F.line = 151;
renderer_204417.canvas.height = get_height_204341(renderer_204417.preferredHeight);
if (renderer_204417.scaleToScreen) {
F.line = 154;
console.log("Scaling to screen");
F.line = 116;
var screen_width_204434 = window.innerWidth;
F.line = 117;
var screen_height_204435 = window.innerHeight;
F.line = 118;
var ratio_xHEX60gensym204431_204436 = HEX2F_26817(screen_width_204434, renderer_204417.canvas.width);
F.line = 119;
var ratio_yHEX60gensym204432_204437 = HEX2F_26817(screen_height_204435, renderer_204417.canvas.height);
F.line = 125;
var zoom_ratioHEX60gensym204433_204438 = HEX2F_26817(document.body.clientWidth, window.innerWidth);
F.line = 127;
var min_ratio_204439 = min_12701(ratio_xHEX60gensym204431_204436, ratio_yHEX60gensym204432_204437);
F.line = 128;
var scaled_width_204440 = (renderer_204417.canvas.width * min_ratio_204439);
F.line = 129;
var scaled_height_204441 = (renderer_204417.canvas.height * min_ratio_204439);
F.line = 131;
var left_204443 = ((screen_width_204434 - scaled_width_204440) / 2.0000000000000000e+00);
F.line = 132;
var top_204445 = ((screen_height_204435 - scaled_height_204441) / 2.0000000000000000e+00);
F.line = 157;
renderer_204417.canvas.style.width = toJSStr((cstrToNimstr((scaled_width_204440)+"") || []).concat(makeNimstrLit("px") || []));
F.line = 158;
renderer_204417.canvas.style.height = toJSStr((cstrToNimstr((scaled_height_204441)+"") || []).concat(makeNimstrLit("px") || []));
F.line = 159;
renderer_204417.canvas.style.marginLeft = toJSStr((cstrToNimstr((left_204443)+"") || []).concat(makeNimstrLit("px") || []));
F.line = 160;
renderer_204417.canvas.style.marginTop = toJSStr((cstrToNimstr((top_204445)+"") || []).concat(makeNimstrLit("px") || []));
F.line = 163;
renderer_204417.canvas.parentNode.style.position = "absolute";
F.line = 164;
renderer_204417.canvas.parentNode.style.left = "0";
F.line = 165;
renderer_204417.canvas.parentNode.style.top = "0";
F.line = 166;
renderer_204417.canvas.parentNode.style.width = toJSStr((cstrToNimstr((screen_width_204434)+"") || []).concat(makeNimstrLit("px") || []));
F.line = 167;
renderer_204417.canvas.parentNode.style.height = toJSStr((cstrToNimstr((screen_height_204435)+"") || []).concat(makeNimstrLit("px") || []));
F.line = 168;
renderer_204417.canvas.parentNode.classList.add("fullscreen");
L1: do {
F.line = 171;
var item_204614 = null;
F.line = 182;
var colontmp__222113 = null;
F.line = 171;
colontmp__222113 = renderer_204417.positionedElements;
F.line = 184;
var i_222115 = 0;
F.line = 185;
var l_222116 = (colontmp__222113 != null ? colontmp__222113.length : 0);
L2: do {
F.line = 186;
L3: while (true) {
if (!(i_222115 < l_222116)) break L3;
F.line = 171;
item_204614 = colontmp__222113[chckIndx(i_222115, 0, colontmp__222113.length+0-1)-0];
F.line = 172;
var element_204615 = item_204614.element;
F.line = 174;
element_204615.style.marginLeft = toJSStr((cstrToNimstr((((item_204614.originalLeft * min_ratio_204439) + left_204443))+"") || []).concat(makeNimstrLit("px") || []));
F.line = 176;
element_204615.style.marginTop = toJSStr((cstrToNimstr((((item_204614.originalTop * min_ratio_204439) + top_204445))+"") || []).concat(makeNimstrLit("px") || []));
if ((0.0 < item_204614.originalFontSize)) {
F.line = 179;
element_204615.style.fontSize = toJSStr((cstrToNimstr(((item_204614.originalFontSize * min_ratio_204439))+"") || []).concat(makeNimstrLit("px") || []));
}
if ((0.0 < item_204614.originalWidth)) {
F.line = 181;
element_204615.style.width = toJSStr((cstrToNimstr(((item_204614.originalWidth * min_ratio_204439))+"") || []).concat(makeNimstrLit("px") || []));
}
if ((0.0 < item_204614.originalHeight)) {
F.line = 183;
element_204615.style.height = toJSStr((cstrToNimstr(((item_204614.originalHeight * min_ratio_204439))+"") || []).concat(makeNimstrLit("px") || []));
}
F.line = 188;
i_222115 = addInt(i_222115, 1);
if (!(((colontmp__222113 != null ? colontmp__222113.length : 0) == l_222116))) {
F.line = 189;
failed_assert_impl_15266(makeNimstrLit("/home/luxick/.choosenim/toolchains/nim-1.0.2/lib/system/iterators.nim(189, 11) `len(a) == L` the length of the seq changed while iterating over it"));
}
}
} while(false);
} while(false);
F.line = 185;
window.scrollTo(0, 0);
}
framePtr = F.prev;
}
function new_renderer2d_204674(id_204676, width_204678, height_204681, hidpi_204683) {
function HEX3Aanonymous_205051(ev_205053) {
var F={procname:"newRenderer2D.:anonymous",prev:framePtr,filename:"graphics.nim",line:0};
framePtr = F;
F.line = 220;
resize_canvas_204415(captured_result_205029);
framePtr = F.prev;
}
var result_204684 = null;
var F={procname:"graphics.newRenderer2D",prev:framePtr,filename:"graphics.nim",line:0};
framePtr = F;
F.line = 198;
var canvas_204685 = document.getElementById(toJSStr(id_204676));
F.line = 199;
var context_204686 = canvas_204685.getContext("2d", {alpha: false});
if (hidpi_204683) {
F.line = 201;
var ratio_204687 = get_pixel_ratio_200097();
F.line = 202;
canvas_204685.width = (((get_width_204323(width_204678) * ratio_204687))|0);
F.line = 203;
canvas_204685.height = (((get_height_204341(height_204681) * ratio_204687))|0);
F.line = 204;
canvas_204685.style.width = toJSStr((cstrToNimstr((get_width_204323(width_204678))+"") || []).concat(makeNimstrLit("px") || []));
F.line = 205;
canvas_204685.style.height = toJSStr((cstrToNimstr((get_height_204341(height_204681))+"") || []).concat(makeNimstrLit("px") || []));
F.line = 206;
context_204686.setTransform(ratio_204687, 0, 0, ratio_204687, 0, 0);
}
F.line = 208;
result_204684 = {canvas: canvas_204685, context: context_204686, preferredWidth: width_204678, preferredHeight: height_204681, scaleToScreen: false, positionedElements: [], images: init_table_204724(64), lastFrameUpdate: 0.0, rotation: 0.0};
F.line = 218;
var captured_result_205029 = result_204684;
F.line = 219;
window.addEventListener("resize", HEX3Aanonymous_205051, false);
F.line = 222;
resize_canvas_204415(result_204684);
framePtr = F.prev;
return result_204684;
}
function new_board_214226(initial_214229) {
var result_214231 = [[0, 0, 0], [0, 0, 0], [0, 0, 0]];
var F={procname:"newBoard.newBoard",prev:framePtr,filename:"libmttt.nim",line:0};
framePtr = F;
F.line = 48;
nimCopy(result_214231, [[initial_214229, initial_214229, initial_214229], [initial_214229, initial_214229, initial_214229], [initial_214229, initial_214229, initial_214229]], NTI214232);
framePtr = F.prev;
return result_214231;
}
function new_meta_board_214214(val_214217) {
var result_214223 = [[[[0, 0, 0], [0, 0, 0], [0, 0, 0]], [[0, 0, 0], [0, 0, 0], [0, 0, 0]], [[0, 0, 0], [0, 0, 0], [0, 0, 0]]], [[[0, 0, 0], [0, 0, 0], [0, 0, 0]], [[0, 0, 0], [0, 0, 0], [0, 0, 0]], [[0, 0, 0], [0, 0, 0], [0, 0, 0]]], [[[0, 0, 0], [0, 0, 0], [0, 0, 0]], [[0, 0, 0], [0, 0, 0], [0, 0, 0]], [[0, 0, 0], [0, 0, 0], [0, 0, 0]]]];
var F={procname:"newMetaBoard.newMetaBoard",prev:framePtr,filename:"libmttt.nim",line:0};
framePtr = F;
F.line = 55;
nimCopy(result_214223, [[new_board_214226(val_214217), new_board_214226(val_214217), new_board_214226(val_214217)], [new_board_214226(val_214217), new_board_214226(val_214217), new_board_214226(val_214217)], [new_board_214226(val_214217), new_board_214226(val_214217), new_board_214226(val_214217)]], NTI214224);
framePtr = F.prev;
return result_214223;
}
function new_game_214207(player1_214210, player1_214210_Idx, player2_214212, player2_214212_Idx) {
var result_214213 = null;
var F={procname:"libmttt.newGame",prev:framePtr,filename:"libmttt.nim",line:0};
framePtr = F;
F.line = 63;
F.line = 64;
player1_214210[player1_214210_Idx].mark = 0;
F.line = 65;
player2_214212[player2_214212_Idx].mark = 1;
result_214213 = {players: [player1_214210[player1_214210_Idx], player2_214212[player2_214212_Idx]], currentPlayer: player1_214210[player1_214210_Idx], result: 2, board: new_meta_board_214214(2), currentBoard: {val: {Field0: 0, Field1: 0}, has: false}, turn: 0};
framePtr = F.prev;
return result_214213;
}
function set_properties_221541(renderer_221544, element_221545, pos_221546, width_221547, height_221548, font_size_221549) {
var F={procname:"setProperties.setProperties",prev:framePtr,filename:"graphics.nim",line:0};
framePtr = F;
F.line = 313;
element_221545.style.position = "absolute";
F.line = 314;
element_221545.style.margin = "0";
F.line = 315;
element_221545.style.marginLeft = toJSStr((cstrToNimstr((pos_221546.x)+"") || []).concat(makeNimstrLit("px") || []));
F.line = 316;
element_221545.style.marginTop = toJSStr((cstrToNimstr((pos_221546.y)+"") || []).concat(makeNimstrLit("px") || []));
F.line = 317;
element_221545.style.fontSize = toJSStr((cstrToNimstr((font_size_221549)+"") || []).concat(makeNimstrLit("px") || []));
if ((0.0 <= width_221547)) {
F.line = 319;
element_221545.style.width = toJSStr((cstrToNimstr((width_221547)+"") || []).concat(makeNimstrLit("px") || []));
}
if ((0.0 <= height_221548)) {
F.line = 322;
element_221545.style.height = toJSStr((cstrToNimstr((height_221548)+"") || []).concat(makeNimstrLit("px") || []));
}
F.line = 324;
element_221545.classList.add("gamelight-graphics-element");
F.line = 325;
if (renderer_221544.positionedElements != null) { renderer_221544.positionedElements.push({originalLeft: pos_221546.x, originalTop: pos_221546.y, element: element_221545, originalFontSize: font_size_221549, originalWidth: width_221547, originalHeight: height_221548}); } else { renderer_221544.positionedElements = [{originalLeft: pos_221546.x, originalTop: pos_221546.y, element: element_221545, originalFontSize: font_size_221549, originalWidth: width_221547, originalHeight: height_221548}]; };
F.line = 333;
resize_canvas_204415(renderer_221544);
framePtr = F.prev;
}
function create_text_element_221529(renderer_221532, text_221533, pos_221534, style_221535, font_size_221536, font_family_221537, width_221538) {
var result_221539 = null;
var F={procname:"createTextElement.createTextElement",prev:framePtr,filename:"graphics.nim",line:0};
framePtr = F;
BeforeRet: do {
F.line = 346;
var p_221540 = document.createElement("p");
F.line = 347;
p_221540.innerHTML = toJSStr(text_221533);
F.line = 348;
set_properties_221541(renderer_221532, p_221540, pos_221534, width_221538, 0.0, font_size_221536);
F.line = 350;
p_221540.style.fontFamily = toJSStr(font_family_221537);
F.line = 351;
p_221540.style.color = toJSStr(style_221535);
F.line = 353;
renderer_221532.canvas.parentNode.insertBefore(p_221540, renderer_221532.canvas);
F.line = 354;
result_221539 = p_221540;
break BeforeRet;
} while (false);
framePtr = F.prev;
return result_221539;
}
function to_point_202299(point_202302) {
var result_202312 = {x: 0.0, y: 0.0};
var F={procname:"vec.toPoint",prev:framePtr,filename:"vec.nim",line:0};
framePtr = F;
F.line = 14;
nimCopy(result_202312, {x: point_202302["Field0"], y: point_202302["Field1"]}, NTI202309);
framePtr = F.prev;
return result_202312;
}
function switch_scene_221504(game_221506, scene_221507) {
var F={procname:"game.switchScene",prev:framePtr,filename:"game.nim",line:0};
framePtr = F;
F.line = 35;
switch (scene_221507) {
case 0:
break;
case 1:
F.line = 39;
var elements_221526 = [];
F.line = 41;
var time_text_pos_221528 = {Field0: to_float_10657(10), Field1: to_float_10657(10)};
F.line = 42;
if (elements_221526 != null) { elements_221526.push(create_text_element_221529(game_221506.renderer, makeNimstrLit("Time"), to_point_202299(time_text_pos_221528), makeNimstrLit("#000000"), 2.6000000000000000e+01, makeNimstrLit("Helvetica, monospace"), -1.0000000000000000e+00)); } else { elements_221526 = [create_text_element_221529(game_221506.renderer, makeNimstrLit("Time"), to_point_202299(time_text_pos_221528), makeNimstrLit("#000000"), 2.6000000000000000e+01, makeNimstrLit("Helvetica, monospace"), -1.0000000000000000e+00)]; };
F.line = 44;
var time_pos_221591 = {Field0: to_float_10657(10), Field1: (to_float_10657(10) + 3.5000000000000000e+01)};
F.line = 45;
game_221506.timeElement = create_text_element_221529(game_221506.renderer, makeNimstrLit("0"), to_point_202299(time_pos_221591), makeNimstrLit("#000000"), 1.4000000000000000e+01, makeNimstrLit("Helvetica, monospace"), -1.0000000000000000e+00);
break;
}
framePtr = F.prev;
}
function new_game_221645(canvas_id_221647, width_221648, height_221649) {
var result_221650 = null;
var F={procname:"game.newGame",prev:framePtr,filename:"game.nim",line:0};
framePtr = F;
F.line = 50;
var player1_221651 = [{name: makeNimstrLit("Player 1"), mark: 0}];
F.line = 51;
var player2_221652 = [{name: makeNimstrLit("Player 2"), mark: 0}];
F.line = 53;
render_width_221049[0] = width_221648;
F.line = 54;
render_height_221050[0] = height_221649;
F.line = 56;
result_221650 = {renderer: new_renderer2d_204674(canvas_id_221647, width_221648, height_221649, false), scene: 1, state: new_game_214207(player1_221651, 0, player2_221652, 0), paused: false, lastUpdate: 0.0, totalTime: 0.0, timeElement: null, onGameStart: null};
F.line = 62;
switch_scene_221504(result_221650, 1);
framePtr = F.prev;
return result_221650;
}
function HEX2BHEX3D_160861(x_160865, x_160865_Idx, y_160866) {
var F={procname:"+=.+=",prev:framePtr,filename:"system.nim",line:0};
framePtr = F;
F.line = 4125;
x_160865[x_160865_Idx] = (x_160865[x_160865_Idx] + y_160866);
framePtr = F.prev;
}
function update_221685(game_221687, time_221688) {
var Tmp1;
var F={procname:"game.update",prev:framePtr,filename:"game.nim",line:0};
framePtr = F;
BeforeRet: do {
if (game_221687.paused) Tmp1 = true; else { Tmp1 = !((game_221687.scene == 1)); } if (Tmp1) {
F.line = 67;
break BeforeRet;
}
F.line = 69;
HEX2BHEX3D_160861(game_221687, "totalTime", time_221688);
} while (false);
framePtr = F.prev;
}
function fill_rect_221750(renderer_221755, x_221756, y_221757, width_221758, height_221759, style_221760) {
var F={procname:"fillRect.fillRect",prev:framePtr,filename:"graphics.nim",line:0};
framePtr = F;
F.line = 266;
renderer_221755.context.fillStyle = toJSStr(style_221760);
F.line = 267;
renderer_221755.context.fillRect(x_221756, y_221757, width_221758, height_221759);
framePtr = F.prev;
}
function draw_main_menu_221715(game_221717) {
var F={procname:"game.drawMainMenu",prev:framePtr,filename:"game.nim",line:0};
framePtr = F;
framePtr = F.prev;
}
function to_int_10691(f_10693) {
var Tmp1;
var result_10694 = 0;
var F={procname:"system.toInt",prev:framePtr,filename:"system.nim",line:0};
framePtr = F;
F.line = 2305;
if ((0.0 <= f_10693)) {
Tmp1 = (((f_10693 + 5.0000000000000000e-01))|0);
}
else {
Tmp1 = (((f_10693 - 5.0000000000000000e-01))|0);
}
result_10694 = Tmp1;
framePtr = F.prev;
return result_10694;
}
function raiseDivByZero() {
var eHEX60gensym22257_22403 = null;
eHEX60gensym22257_22403 = {m_type: NTI3644, parent: null, name: null, message: null, trace: null, raiseId: 0, up: null};
eHEX60gensym22257_22403.message = nimCopy(null, makeNimstrLit("division by zero"), NTI138);
eHEX60gensym22257_22403.parent = null;
raiseException(eHEX60gensym22257_22403, "DivByZeroError");
}
function parse_saturated_natural_65231(s_65233, b_65235, b_65235_Idx, start_65236) {
var Tmp1;
var Tmp4;
var result_65238 = 0;
var F={procname:"parseutils.parseSaturatedNatural",prev:framePtr,filename:"parseutils.nim",line:0};
framePtr = F;
F.line = 480;
var i_65239 = start_65236;
if (((i_65239 < (s_65233 != null ? s_65233.length : 0)) && (s_65233[chckIndx(i_65239, 0, s_65233.length+0-1)-0] == 43))) {
F.line = 481;
i_65239 = addInt(i_65239, 1);
}
if (!(i_65239 < (s_65233 != null ? s_65233.length : 0))) Tmp1 = false; else { Tmp1 = (ConstSet6[s_65233[chckIndx(i_65239, 0, s_65233.length+0-1)-0]] != undefined); } if (Tmp1) {
F.line = 483;
b_65235[b_65235_Idx] = 0;
L2: do {
F.line = 484;
L3: while (true) {
if (!(i_65239 < (s_65233 != null ? s_65233.length : 0))) Tmp4 = false; else { Tmp4 = (ConstSet7[s_65233[chckIndx(i_65239, 0, s_65233.length+0-1)-0]] != undefined); } if (!Tmp4) break L3;
F.line = 485;
var c_65268 = subInt(s_65233[chckIndx(i_65239, 0, s_65233.length+0-1)-0], 48);
if ((b_65235[b_65235_Idx] <= divInt(subInt(2147483647, c_65268), 10))) {
F.line = 487;
b_65235[b_65235_Idx] = addInt(mulInt(b_65235[b_65235_Idx], 10), c_65268);
}
else {
F.line = 489;
b_65235[b_65235_Idx] = 2147483647;
}
F.line = 490;
i_65239 = addInt(i_65239, 1);
L5: do {
F.line = 491;
L6: while (true) {
if (!((i_65239 < (s_65233 != null ? s_65233.length : 0)) && (s_65233[chckIndx(i_65239, 0, s_65233.length+0-1)-0] == 95))) break L6;
F.line = 491;
i_65239 = addInt(i_65239, 1);
}
} while(false);
}
} while(false);
F.line = 492;
result_65238 = subInt(i_65239, start_65236);
}
framePtr = F.prev;
return result_65238;
}
function HEX5BHEX5D_103304(s_103308, x_103310) {
var result_103311 = null;
var F={procname:"[].[]",prev:framePtr,filename:"system.nim",line:0};
framePtr = F;
F.line = 3956;
var a_103401 = x_103310.a;
F.line = 3957;
var l_103601 = addInt(subInt(subInt((s_103308 != null ? s_103308.length : 0), x_103310.b), a_103401), 1);
F.line = 3958;
result_103311 = nimCopy(null, mnewString(chckRange(l_103601, 0, 2147483647)), NTI138);
L1: do {
F.line = 3959;
var i_103609 = 0;
F.line = 2738;
var i_222143 = 0;
L2: do {
F.line = 2739;
L3: while (true) {
if (!(i_222143 < l_103601)) break L3;
F.line = 3959;
i_103609 = i_222143;
F.line = 3959;
result_103311[chckIndx(i_103609, 0, result_103311.length+0-1)-0] = s_103308[chckIndx(addInt(i_103609, a_103401), 0, s_103308.length+0-1)-0];
F.line = 2741;
i_222143 = addInt(i_222143, 1);
}
} while(false);
} while(false);
framePtr = F.prev;
return result_103311;
}
function HEX2EHEX2E_103239(a_103243, b_103244) {
var result_103250 = {a: 0, b: 0};
var F={procname:".....",prev:framePtr,filename:"system.nim",line:0};
framePtr = F;
F.line = 502;
nimCopy(result_103250, {a: a_103243, b: b_103244}, NTI103247);
framePtr = F.prev;
return result_103250;
}
function parse_standard_format_specifier_163324(s_163326, start_163327, ignore_unknown_suffix_163329) {
var Tmp1;
var Tmp2;
var Tmp3;
var result_163330 = {fill: 0, align: 0, sign: 0, alternateForm: false, padWithZero: false, minimumWidth: 0, precision: 0, typ: 0, endPosition: 0};
var F={procname:"strformat.parseStandardFormatSpecifier",prev:framePtr,filename:"strformat.nim",line:0};
framePtr = F;
F.line = 379;
result_163330.fill = 32;
F.line = 380;
result_163330.align = 0;
F.line = 381;
result_163330.sign = 45;
F.line = 382;
var i_163333 = start_163327;
if (((addInt(i_163333, 1) < (s_163326 != null ? s_163326.length : 0)) && (ConstSet2[s_163326[chckIndx(addInt(i_163333, 1), 0, s_163326.length+0-1)-0]] != undefined))) {
F.line = 384;
result_163330.fill = s_163326[chckIndx(i_163333, 0, s_163326.length+0-1)-0];
F.line = 385;
result_163330.align = s_163326[chckIndx(addInt(i_163333, 1), 0, s_163326.length+0-1)-0];
F.line = 386;
i_163333 = addInt(i_163333, 2);
}
else {
if (((i_163333 < (s_163326 != null ? s_163326.length : 0)) && (ConstSet3[s_163326[chckIndx(i_163333, 0, s_163326.length+0-1)-0]] != undefined))) {
F.line = 388;
result_163330.align = s_163326[chckIndx(i_163333, 0, s_163326.length+0-1)-0];
F.line = 389;
i_163333 = addInt(i_163333, 1);
}
}
if (((i_163333 < (s_163326 != null ? s_163326.length : 0)) && (ConstSet4[s_163326[chckIndx(i_163333, 0, s_163326.length+0-1)-0]] != undefined))) {
F.line = 392;
result_163330.sign = s_163326[chckIndx(i_163333, 0, s_163326.length+0-1)-0];
F.line = 393;
i_163333 = addInt(i_163333, 1);
}
if (((i_163333 < (s_163326 != null ? s_163326.length : 0)) && (s_163326[chckIndx(i_163333, 0, s_163326.length+0-1)-0] == 35))) {
F.line = 396;
result_163330.alternateForm = true;
F.line = 397;
i_163333 = addInt(i_163333, 1);
}
if (!((addInt(i_163333, 1) < (s_163326 != null ? s_163326.length : 0)) && (s_163326[chckIndx(i_163333, 0, s_163326.length+0-1)-0] == 48))) Tmp1 = false; else { Tmp1 = (ConstSet5[s_163326[chckIndx(addInt(i_163333, 1), 0, s_163326.length+0-1)-0]] != undefined); } if (Tmp1) {
F.line = 400;
result_163330.padWithZero = true;
F.line = 401;
i_163333 = addInt(i_163333, 1);
}
F.line = 403;
var parsed_length_163391 = parse_saturated_natural_65231(s_163326, result_163330, "minimumWidth", i_163333);
F.line = 404;
i_163333 = addInt(i_163333, parsed_length_163391);
if (((i_163333 < (s_163326 != null ? s_163326.length : 0)) && (s_163326[chckIndx(i_163333, 0, s_163326.length+0-1)-0] == 46))) {
F.line = 406;
i_163333 = addInt(i_163333, 1);
F.line = 407;
var parsed_length_b_163405 = parse_saturated_natural_65231(s_163326, result_163330, "precision", i_163333);
F.line = 408;
i_163333 = addInt(i_163333, parsed_length_b_163405);
}
else {
F.line = 410;
result_163330.precision = -1;
}
if (!(i_163333 < (s_163326 != null ? s_163326.length : 0))) Tmp2 = false; else { Tmp2 = (ConstSet8[s_163326[chckIndx(i_163333, 0, s_163326.length+0-1)-0]] != undefined); } if (Tmp2) {
F.line = 413;
result_163330.typ = s_163326[chckIndx(i_163333, 0, s_163326.length+0-1)-0];
F.line = 414;
i_163333 = addInt(i_163333, 1);
}
F.line = 415;
result_163330.endPosition = i_163333;
if (!!((i_163333 == (s_163326 != null ? s_163326.length : 0)))) Tmp3 = false; else { Tmp3 = !(ignore_unknown_suffix_163329); } if (Tmp3) {
F.line = 3463;
var eHEX60gensym163460_163603 = null;
F.line = 3466;
eHEX60gensym163460_163603 = {m_type: NTI3652, parent: null, name: null, message: null, trace: null, raiseId: 0, up: null};
F.line = 418;
eHEX60gensym163460_163603.message = nimCopy(null, (makeNimstrLit("invalid format string, cannot parse: ") || []).concat(HEX5BHEX5D_103304(s_163326, HEX2EHEX2E_103239(i_163333, 1)) || []), NTI138);
F.line = 3459;
eHEX60gensym163460_163603.parent = null;
F.line = 417;
raiseException(eHEX60gensym163460_163603, "ValueError");
}
framePtr = F.prev;
return result_163330;
}
function mk_digit_163014(v_163016, typ_163017) {
var Tmp1;
var result_163018 = null;
var F={procname:"strformat.mkDigit",prev:framePtr,filename:"strformat.nim",line:0};
framePtr = F;
if (!((v_163016 < 26))) {
F.line = 270;
failed_assert_impl_15266(makeNimstrLit("/home/luxick/.choosenim/toolchains/nim-1.0.2/lib/pure/strformat.nim(270, 9) `v < 26` "));
}
if ((v_163016 < 10)) {
F.line = 272;
result_163018 = nimCopy(null, nimCharToStr(chckRange(addInt(48, v_163016), 0, 255)), NTI138);
}
else {
F.line = 274;
if ((typ_163017 == 120)) {
Tmp1 = 97;
}
else {
Tmp1 = 65;
}
result_163018 = nimCopy(null, nimCharToStr(chckRange(subInt(addInt(Tmp1, v_163016), 10), 0, 255)), NTI138);
}
framePtr = F.prev;
return result_163018;
}
function nsuRepeatChar(c_156656, count_156657) {
var result_156658 = null;
var F={procname:"strutils.repeat",prev:framePtr,filename:"strutils.nim",line:0};
framePtr = F;
F.line = 1294;
result_156658 = nimCopy(null, mnewString(count_156657), NTI138);
L1: do {
F.line = 1295;
var i_156667 = 0;
F.line = 2698;
var colontmp__222163 = 0;
F.line = 1295;
colontmp__222163 = subInt(count_156657, 1);
F.line = 2709;
var res_222164 = 0;
L2: do {
F.line = 2710;
L3: while (true) {
if (!(res_222164 <= colontmp__222163)) break L3;
F.line = 1295;
i_156667 = res_222164;
F.line = 1295;
result_156658[chckIndx(i_156667, 0, result_156658.length+0-1)-0] = c_156656;
F.line = 2712;
res_222164 = addInt(res_222164, 1);
}
} while(false);
} while(false);
framePtr = F.prev;
return result_156658;
}
function format_int_221210(n_221213, radix_221214, spec_221215) {
var Tmp7;
var result_221216 = null;
var F={procname:"formatInt.formatInt",prev:framePtr,filename:"strformat.nim",line:0};
framePtr = F;
F.line = 318;
var v_221401 = n_221213;
F.line = 319;
var negative_221402 = (v_221401 < 0);
if (negative_221402) {
F.line = 322;
v_221401 = mulInt(v_221401, -1);
}
F.line = 324;
var xx_221404 = [];
if (spec_221215.alternateForm) {
F.line = 326;
switch (spec_221215.typ) {
case 88:
F.line = 327;
xx_221404 = nimCopy(null, makeNimstrLit("0x"), NTI138);
break;
case 120:
F.line = 328;
xx_221404 = nimCopy(null, makeNimstrLit("0x"), NTI138);
break;
case 98:
F.line = 329;
xx_221404 = nimCopy(null, makeNimstrLit("0b"), NTI138);
break;
case 111:
F.line = 330;
xx_221404 = nimCopy(null, makeNimstrLit("0o"), NTI138);
break;
default:
break;
}
}
if ((v_221401 == 0)) {
F.line = 334;
result_221216 = nimCopy(null, makeNimstrLit("0"), NTI138);
}
else {
F.line = 336;
result_221216 = nimCopy(null, [], NTI138);
L1: do {
F.line = 337;
L2: while (true) {
if (!(0 < v_221401)) break L2;
F.line = 338;
var d_221407 = modInt(v_221401, radix_221214);
F.line = 339;
v_221401 = divInt(v_221401, radix_221214);
F.line = 340;
if (result_221216 != null) { result_221216 = (result_221216).concat(mk_digit_163014(chckRange(d_221407, -2147483648, 2147483647), spec_221215.typ)); } else { result_221216 = mk_digit_163014(chckRange(d_221407, -2147483648, 2147483647), spec_221215.typ).slice(); };
}
} while(false);
L3: do {
F.line = 341;
var idx_221416 = 0;
F.line = 2736;
var colontmp__222152 = 0;
F.line = 341;
colontmp__222152 = divInt((result_221216 != null ? result_221216.length : 0), 2);
F.line = 2738;
var i_222153 = 0;
L4: do {
F.line = 2739;
L5: while (true) {
if (!(i_222153 < colontmp__222152)) break L5;
F.line = 341;
idx_221416 = i_222153;
F.line = 342;
var Tmp6 = result_221216[chckIndx(idx_221416, 0, result_221216.length+0-1)-0]; result_221216[chckIndx(idx_221416, 0, result_221216.length+0-1)-0] = result_221216[chckIndx(subInt(subInt((result_221216 != null ? result_221216.length : 0), idx_221416), 1), 0, result_221216.length+0-1)-0]; result_221216[chckIndx(subInt(subInt((result_221216 != null ? result_221216.length : 0), idx_221416), 1), 0, result_221216.length+0-1)-0] = Tmp6; F.line = 2741;
i_222153 = addInt(i_222153, 1);
}
} while(false);
} while(false);
}
if (spec_221215.padWithZero) {
F.line = 344;
if (negative_221402) Tmp7 = true; else { Tmp7 = !((spec_221215.sign == 45)); } var sign_221432 = Tmp7;
F.line = 345;
var to_fill_221437 = subInt(subInt(subInt(spec_221215.minimumWidth, (result_221216 != null ? result_221216.length : 0)), (xx_221404 != null ? xx_221404.length : 0)), (sign_221432 ? 1:0));
if ((0 < to_fill_221437)) {
F.line = 347;
result_221216 = nimCopy(null, (nsuRepeatChar(48, chckRange(to_fill_221437, 0, 2147483647)) || []).concat(result_221216 || []), NTI138);
}
}
if (negative_221402) {
F.line = 350;
result_221216 = nimCopy(null, (makeNimstrLit("-") || []).concat(xx_221404 || [],result_221216 || []), NTI138);
}
else {
if (!((spec_221215.sign == 45))) {
F.line = 352;
result_221216 = nimCopy(null, [spec_221215.sign].concat(xx_221404 || [],result_221216 || []), NTI138);
}
else {
F.line = 354;
result_221216 = nimCopy(null, (xx_221404 || []).concat(result_221216 || []), NTI138);
}
}
if ((spec_221215.align == 60)) {
L8: do {
F.line = 357;
var i_221445 = 0;
F.line = 2736;
var colontmp__222157 = 0;
F.line = 2736;
var colontmp__222158 = 0;
F.line = 357;
colontmp__222157 = (result_221216 != null ? result_221216.length : 0);
F.line = 357;
colontmp__222158 = spec_221215.minimumWidth;
F.line = 2738;
var i_222159 = colontmp__222157;
L9: do {
F.line = 2739;
L10: while (true) {
if (!(i_222159 < colontmp__222158)) break L10;
F.line = 357;
i_221445 = i_222159;
F.line = 358;
if (result_221216 != null) { addChar(result_221216, spec_221215.fill); } else { result_221216 = [spec_221215.fill]; };
F.line = 2741;
i_222159 = addInt(i_222159, 1);
}
} while(false);
} while(false);
}
else {
F.line = 360;
var to_fill_221446 = subInt(spec_221215.minimumWidth, (result_221216 != null ? result_221216.length : 0));
if ((spec_221215.align == 94)) {
F.line = 362;
var half_221447 = divInt(to_fill_221446, 2);
F.line = 363;
result_221216 = nimCopy(null, (nsuRepeatChar(spec_221215.fill, chckRange(half_221447, 0, 2147483647)) || []).concat(result_221216 || [],nsuRepeatChar(spec_221215.fill, chckRange(subInt(to_fill_221446, half_221447), 0, 2147483647)) || []), NTI138);
}
else {
if ((0 < to_fill_221446)) {
F.line = 366;
result_221216 = nimCopy(null, (nsuRepeatChar(spec_221215.fill, chckRange(to_fill_221446, 0, 2147483647)) || []).concat(result_221216 || []), NTI138);
}
}
}
framePtr = F.prev;
return result_221216;
}
function format_value_221081(result_221084, result_221084_Idx, value_221085, specifier_221086) {
var F={procname:"formatValue.formatValue",prev:framePtr,filename:"strformat.nim",line:0};
framePtr = F;
BeforeRet: do {
if (((specifier_221086 != null ? specifier_221086.length : 0) == 0)) {
F.line = 426;
if (result_221084[result_221084_Idx] != null) { result_221084[result_221084_Idx] = (result_221084[result_221084_Idx]).concat(cstrToNimstr((value_221085)+"")); } else { result_221084[result_221084_Idx] = cstrToNimstr((value_221085)+"").slice(); };
F.line = 427;
break BeforeRet;
}
F.line = 428;
var spec_221087 = parse_standard_format_specifier_163324(specifier_221086, 0, false);
F.line = 429;
var radix_221089 = 10;
F.line = 430;
switch (spec_221087.typ) {
case 120:
case 88:
F.line = 431;
radix_221089 = 16;
break;
case 100:
case 0:
break;
case 98:
F.line = 433;
radix_221089 = 2;
break;
case 111:
F.line = 434;
radix_221089 = 8;
break;
default:
F.line = 3463;
var eHEX60gensym221091_221203 = null;
F.line = 3466;
eHEX60gensym221091_221203 = {m_type: NTI3652, parent: null, name: null, message: null, trace: null, raiseId: 0, up: null};
F.line = 438;
eHEX60gensym221091_221203.message = nimCopy(null, (makeNimstrLit("invalid type in format string for number, expected one of \'x\', \'X\', \'b\', \'d\', \'o\' but got: ") || []).concat([spec_221087.typ]), NTI138);
F.line = 3459;
eHEX60gensym221091_221203.parent = null;
F.line = 436;
raiseException(eHEX60gensym221091_221203, "ValueError");
break;
}
F.line = 439;
if (result_221084[result_221084_Idx] != null) { result_221084[result_221084_Idx] = (result_221084[result_221084_Idx]).concat(format_int_221210(value_221085, radix_221089, spec_221087)); } else { result_221084[result_221084_Idx] = format_int_221210(value_221085, radix_221089, spec_221087).slice(); };
} while (false);
framePtr = F.prev;
}
function to_time_string_221064(milliseconds_221066) {
var result_221067 = null;
var F={procname:"game.toTimeString",prev:framePtr,filename:"game.nim",line:0};
framePtr = F;
F.line = 29;
var seconds_221069 = to_int_10691((milliseconds_221066 / 1.0000000000000000e+03) % 6.0000000000000000e+01);
F.line = 30;
var minutes_221073 = to_int_10691((milliseconds_221066 / 6.0000000000000000e+04) % 6.0000000000000000e+01);
F.line = 31;
var hours_221079 = to_int_10691((milliseconds_221066 / 3.6000000000000000e+06) % 2.4000000000000000e+01);
F.line = 32;
F.line = 32;
var fmt_res_221080 = [mnewString(0)];
F.line = 32;
format_value_221081(fmt_res_221080, 0, hours_221079, []);
F.line = 32;
if (fmt_res_221080[0] != null) { fmt_res_221080[0] = (fmt_res_221080[0]).concat(makeNimstrLit(":")); } else { fmt_res_221080[0] = makeNimstrLit(":"); };
F.line = 32;
format_value_221081(fmt_res_221080, 0, minutes_221073, []);
F.line = 32;
if (fmt_res_221080[0] != null) { fmt_res_221080[0] = (fmt_res_221080[0]).concat(makeNimstrLit(":")); } else { fmt_res_221080[0] = makeNimstrLit(":"); };
F.line = 32;
format_value_221081(fmt_res_221080, 0, seconds_221069, []);
result_221067 = nimCopy(null, fmt_res_221080[0], NTI138);
framePtr = F.prev;
return result_221067;
}
function draw_game_221731(game_221733) {
var F={procname:"game.drawGame",prev:framePtr,filename:"game.nim",line:0};
framePtr = F;
F.line = 76;
game_221733.timeElement.innerHTML = toJSStr(to_time_string_221064(game_221733.totalTime));
framePtr = F.prev;
}
function draw_221747(game_221749) {
var F={procname:"game.draw",prev:framePtr,filename:"game.nim",line:0};
framePtr = F;
F.line = 81;
fill_rect_221750(game_221749.renderer, 0.0, 0.0, render_width_221049[0], render_height_221050[0], makeNimstrLit("#e6e6e6"));
F.line = 82;
switch (game_221749.scene) {
case 0:
F.line = 84;
draw_main_menu_221715(game_221749);
break;
case 1:
F.line = 86;
draw_game_221731(game_221749);
break;
}
framePtr = F.prev;
}
function next_frame_221800(game_221802, frame_time_221803) {
var F={procname:"game.nextFrame",prev:framePtr,filename:"game.nim",line:0};
framePtr = F;
F.line = 90;
update_221685(game_221802, frame_time_221803);
F.line = 91;
draw_221747(game_221802);
framePtr = F.prev;
}
function on_tick_222028(game_222030, time_222031) {
function HEX3Aanonymous_222032(time_222034) {
var F={procname:"onTick.:anonymous",prev:framePtr,filename:"mttt.nim",line:0};
framePtr = F;
F.line = 9;
on_tick_222028(game_222030, time_222034);
framePtr = F.prev;
}
var F={procname:"mttt.onTick",prev:framePtr,filename:"mttt.nim",line:0};
framePtr = F;
F.line = 9;
window.requestAnimationFrame(HEX3Aanonymous_222032);
F.line = 10;
next_frame_221800(game_222030, time_222031);
framePtr = F.prev;
}
function onLoad(event_222066) {
var F={procname:"mttt.onLoad",prev:framePtr,filename:"mttt.nim",line:0};
framePtr = F;
F.line = 13;
var game_222067 = new_game_221645(makeNimstrLit("game_canvas"), window.innerWidth, window.innerHeight);
F.line = 14;
on_tick_222028(game_222067, 6.0000000000000000e+01);
framePtr = F.prev;
}
window.onload = onLoad;