/* Generated by Nim Compiler v0.13.0 */
/*   (c) 2015 Andreas Rumpf */
/* The generated code is subject to the original license. */
#define NIM_INTBITS 64

#include "nimbase.h"
#include <string.h>
typedef struct Tglobals505018 Tglobals505018;
typedef struct Tpasscontext261002 Tpasscontext261002;
typedef struct Tsym214822 Tsym214822;
typedef struct Tjsgen505006 Tjsgen505006;
typedef struct TNimObject TNimObject;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct Cell47505 Cell47505;
typedef struct Cellseq47521 Cellseq47521;
typedef struct Gcheap49818 Gcheap49818;
typedef struct Gcstack49816 Gcstack49816;
typedef struct Cellset47517 Cellset47517;
typedef struct Pagedesc47513 Pagedesc47513;
typedef struct Memregion29688 Memregion29688;
typedef struct Smallchunk29640 Smallchunk29640;
typedef struct Llchunk29682 Llchunk29682;
typedef struct Bigchunk29642 Bigchunk29642;
typedef struct Intset29614 Intset29614;
typedef struct Trunk29610 Trunk29610;
typedef struct Avlnode29686 Avlnode29686;
typedef struct Gcstat49814 Gcstat49814;
typedef struct Ropeobj169006 Ropeobj169006;
typedef struct Tsymseq214792 Tsymseq214792;
typedef struct Intset211035 Intset211035;
typedef struct Trunk211031 Trunk211031;
typedef struct Trunkseq211033 Trunkseq211033;
typedef struct TGenericSeq TGenericSeq;
typedef struct Trodreader252021 Trodreader252021;
typedef struct NimStringDesc NimStringDesc;
typedef struct Tnode214790 Tnode214790;
typedef struct Tlineinfo182337 Tlineinfo182337;
typedef struct Ttype214828 Ttype214828;
typedef struct Tident189012 Tident189012;
typedef struct Tnodeseq214784 Tnodeseq214784;
typedef struct Tproc505024 Tproc505024;
typedef struct TY505062 TY505062;
typedef struct Tblock505016 Tblock505016;
typedef struct Tidobj189006 Tidobj189006;
typedef struct Ttypeseq214824 Ttypeseq214824;
typedef struct Tscope214816 Tscope214816;
typedef struct TY214925 TY214925;
typedef struct Tstrtable214794 Tstrtable214794;
typedef struct Tloc214804 Tloc214804;
typedef struct Tlib214808 Tlib214808;
typedef struct Tcompres505014 Tcompres505014;
typedef struct TY88687 TY88687;
typedef struct Basechunk29638 Basechunk29638;
typedef struct Freecell29630 Freecell29630;
typedef struct TY214913 TY214913;
typedef struct Tindex252019 Tindex252019;
typedef struct Tiitable221163 Tiitable221163;
typedef struct Tiipairseq221161 Tiipairseq221161;
typedef struct Table252054 Table252054;
typedef struct Keyvaluepairseq252057 Keyvaluepairseq252057;
typedef struct Memfile250202 Memfile250202;
typedef struct Tinstantiation214812 Tinstantiation214812;
typedef struct Tlistentry135010 Tlistentry135010;
typedef struct Tiipair221159 Tiipair221159;
typedef struct Keyvaluepair252060 Keyvaluepair252060;
typedef N_NIMCALL_PTR(void, TY3489) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, TY3494) (void* p);
struct  TNimType  {
NI size;
NU8 kind;
NU8 flags;
TNimType* base;
TNimNode* node;
void* finalizer;
TY3489 marker;
TY3494 deepcopy;
};
struct  TNimObject  {
TNimType* m_type;
};
struct  Tpasscontext261002  {
  TNimObject Sup;
NIM_BOOL fromcache;
};
struct  Tjsgen505006  {
  Tpasscontext261002 Sup;
Tsym214822* module;
};
struct  TNimNode  {
NU8 kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct  Cell47505  {
NI refcount;
TNimType* typ;
};
struct  Cellseq47521  {
NI len;
NI cap;
Cell47505** d;
};
struct  Cellset47517  {
NI counter;
NI max;
Pagedesc47513* head;
Pagedesc47513** data;
};
typedef Smallchunk29640* TY29703[512];
typedef Trunk29610* Trunkbuckets29612[256];
struct  Intset29614  {
Trunkbuckets29612 data;
};
struct  Memregion29688  {
NI minlargeobj;
NI maxlargeobj;
TY29703 freesmallchunks;
Llchunk29682* llmem;
NI currmem;
NI maxmem;
NI freemem;
NI lastsize;
Bigchunk29642* freechunkslist;
Intset29614 chunkstarts;
Avlnode29686* root;
Avlnode29686* deleted;
Avlnode29686* last;
Avlnode29686* freeavlnodes;
};
struct  Gcstat49814  {
NI stackscans;
NI cyclecollections;
NI maxthreshold;
NI maxstacksize;
NI maxstackcells;
NI cycletablesize;
NI64 maxpause;
};
struct  Gcheap49818  {
Gcstack49816* stack;
void* stackbottom;
NI cyclethreshold;
Cellseq47521 zct;
Cellseq47521 decstack;
Cellset47517 cycleroots;
Cellseq47521 tempstack;
NI recgclock;
Memregion29688 region;
Gcstat49814 stat;
};
struct  Intset211035  {
NI counter;
NI max;
Trunk211031* head;
Trunkseq211033* data;
};
struct  Tglobals505018  {
Ropeobj169006* typeinfo;
Ropeobj169006* code;
Tsymseq214792* forwarded;
Intset211035 generatedsyms;
Intset211035 typeinfogenerated;
};
struct  TGenericSeq  {
NI len;
NI reserved;
};
struct  NimStringDesc  {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct  Tlineinfo182337  {
NI16 line;
NI16 col;
NI32 fileindex;
};
struct  Tnode214790  {
Ttype214828* typ;
Tlineinfo182337 info;
NU16 flags;
NU8 kind;
union{
struct {NI64 intval;
} S1;
struct {NF floatval;
} S2;
struct {NimStringDesc* strval;
} S3;
struct {Tsym214822* sym;
} S4;
struct {Tident189012* ident;
} S5;
struct {Tnodeseq214784* sons;
} S6;
} kindU;
NimStringDesc* comment;
};
struct  Tproc505024  {
Tnode214790* procdef;
Tsym214822* prc;
Ropeobj169006* locals;
Ropeobj169006* body;
NU32 options;
Tjsgen505006* module;
Tglobals505018* g;
NIM_BOOL beforeretneeded;
NU8 target;
NI unique;
TY505062* blocks;
Tproc505024* up;
};
struct  Tblock505016  {
NI id;
NIM_BOOL isloop;
};
struct  Tidobj189006  {
  TNimObject Sup;
NI id;
};
struct  Tstrtable214794  {
NI counter;
Tsymseq214792* data;
};
struct  Tloc214804  {
NU8 k;
NU8 s;
NU16 flags;
Ttype214828* t;
Ropeobj169006* r;
Ropeobj169006* heaproot;
};
struct  Tsym214822  {
  Tidobj189006 Sup;
NU8 kind;
union{
struct {Ttypeseq214824* typeinstcache;
Tscope214816* typscope;
} S1;
struct {TY214925* procinstcache;
Tsym214822* gcunsafetyreason;
} S2;
struct {TY214925* usedgenerics;
Tstrtable214794 tab;
} S3;
struct {Tsym214822* guard;
NI bitsize;
} S4;
} kindU;
NU8 magic;
Ttype214828* typ;
Tident189012* name;
Tlineinfo182337 info;
Tsym214822* owner;
NU32 flags;
Tnode214790* ast;
NU32 options;
NI position;
NI offset;
Tloc214804 loc;
Tlib214808* annex;
Tnode214790* constraint;
};
typedef Ropeobj169006* TY501232[2];
struct  Tident189012  {
  Tidobj189006 Sup;
NimStringDesc* s;
Tident189012* next;
NI h;
};
struct  Tcompres505014  {
NU8 kind;
NU8 typ;
Ropeobj169006* res;
Ropeobj169006* address;
};
struct  Ttype214828  {
  Tidobj189006 Sup;
NU8 kind;
NU8 callconv;
NU32 flags;
Ttypeseq214824* sons;
Tnode214790* n;
Tsym214822* owner;
Tsym214822* sym;
Tsym214822* destructor;
Tsym214822* deepcopy;
Tsym214822* assignment;
NI64 size;
NI16 align;
NI16 locklevel;
Tloc214804 loc;
};
typedef Ropeobj169006* TY169507[1];
struct TY88687 {
NimStringDesc* Field0;
NI Field1;
};
typedef Ropeobj169006* TY476247[6];
typedef Ropeobj169006* TY474656[3];
typedef Ropeobj169006* TY475874[5];
typedef NU8 TY449235[20];
typedef NimStringDesc* Tmagicfrmt506247[4];
typedef Tmagicfrmt506247 Tmagicops506249[80];
typedef Ropeobj169006* TY473064[1];
typedef Ropeobj169006* TY474653[4];
struct  Gcstack49816  {
Gcstack49816* prev;
Gcstack49816* next;
void* starts;
void* pos;
NI maxstacksize;
};
typedef NI TY29619[8];
struct  Pagedesc47513  {
Pagedesc47513* next;
NI key;
TY29619 bits;
};
struct  Basechunk29638  {
NI prevsize;
NI size;
NIM_BOOL used;
};
struct  Smallchunk29640  {
  Basechunk29638 Sup;
Smallchunk29640* next;
Smallchunk29640* prev;
Freecell29630* freelist;
NI free;
NI acc;
NF data;
};
struct  Llchunk29682  {
NI size;
NI acc;
Llchunk29682* next;
};
struct  Bigchunk29642  {
  Basechunk29638 Sup;
Bigchunk29642* next;
Bigchunk29642* prev;
NI align;
NF data;
};
struct  Trunk29610  {
Trunk29610* next;
NI key;
TY29619 bits;
};
typedef Avlnode29686* TY29693[2];
struct  Avlnode29686  {
TY29693 link;
NI key;
NI upperbound;
NI level;
};
struct  Ropeobj169006  {
  TNimObject Sup;
Ropeobj169006* left;
Ropeobj169006* right;
NI length;
NimStringDesc* data;
};
struct  Trunk211031  {
Trunk211031* next;
NI key;
TY29619 bits;
};
struct  Tiitable221163  {
NI counter;
Tiipairseq221161* data;
};
struct  Tindex252019  {
NI lastidxkey;
NI lastidxval;
Tiitable221163 tab;
NimStringDesc* r;
NI offset;
};
struct  Table252054  {
Keyvaluepairseq252057* data;
NI counter;
};
struct  Memfile250202  {
void* mem;
NI size;
int handle;
};
struct  Trodreader252021  {
  TNimObject Sup;
NI pos;
NCSTRING s;
NU32 options;
NU8 reason;
TY214913* moddeps;
TY214913* files;
NI dataidx;
NI convertersidx;
NI initidx;
NI interfidx;
NI compilerprocsidx;
NI methodsidx;
NimStringDesc* filename;
Tindex252019 index;
Tindex252019 imports;
NI readerindex;
NI line;
NI moduleid;
Table252054 syms;
Memfile250202 memfile;
Tsymseq214792* methods;
NimStringDesc* origfile;
NIM_BOOL inviewmode;
};
struct  Tscope214816  {
NI depthlevel;
Tstrtable214794 symbols;
Tnodeseq214784* usingsyms;
Tscope214816* parent;
};
struct  Tlistentry135010  {
  TNimObject Sup;
Tlistentry135010* prev;
Tlistentry135010* next;
};
struct  Tlib214808  {
  Tlistentry135010 Sup;
NU8 kind;
NIM_BOOL generated;
NIM_BOOL isoverriden;
Ropeobj169006* name;
Tnode214790* path;
};
struct  Freecell29630  {
Freecell29630* next;
NI zerofield;
};
struct  Tiipair221159  {
NI key;
NI val;
};
struct Keyvaluepair252060 {
NI Field0;
NI Field1;
Tsym214822* Field2;
};
struct  Tinstantiation214812  {
Tsym214822* sym;
Ttypeseq214824* concretetypes;
TY214913* usedby;
NI compilesid;
};
struct Tsymseq214792 {
  TGenericSeq Sup;
  Tsym214822* data[SEQ_DECL_SIZE];
};
struct TY505062 {
  TGenericSeq Sup;
  Tblock505016 data[SEQ_DECL_SIZE];
};
struct Tnodeseq214784 {
  TGenericSeq Sup;
  Tnode214790* data[SEQ_DECL_SIZE];
};
struct Trunkseq211033 {
  TGenericSeq Sup;
  Trunk211031* data[SEQ_DECL_SIZE];
};
struct Ttypeseq214824 {
  TGenericSeq Sup;
  Ttype214828* data[SEQ_DECL_SIZE];
};
struct TY214925 {
  TGenericSeq Sup;
  Tinstantiation214812* data[SEQ_DECL_SIZE];
};
struct TY214913 {
  TGenericSeq Sup;
  NI32 data[SEQ_DECL_SIZE];
};
struct Tiipairseq221161 {
  TGenericSeq Sup;
  Tiipair221159 data[SEQ_DECL_SIZE];
};
struct Keyvaluepairseq252057 {
  TGenericSeq Sup;
  Keyvaluepair252060 data[SEQ_DECL_SIZE];
};
N_NIMCALL(Tjsgen505006*, newmodule_511964)(Tsym214822* module);
N_NIMCALL(void, nimGCvisit)(void* d, NI op);
N_NIMCALL(void, TMP4634)(void* p, NI op);
N_NIMCALL(void*, newObj)(TNimType* typ, NI size);
static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src);
static N_INLINE(Cell47505*, usrtocell_51440)(void* usr);
static N_INLINE(void, rtladdzct_53001)(Cell47505* c);
N_NOINLINE(void, addzct_51417)(Cellseq47521* s, Cell47505* c);
N_NIMCALL(Tglobals505018*, newglobals_505069)(void);
N_NIMCALL(void, TMP4636)(void* p, NI op);
static N_INLINE(void, nimGCunrefNoCycle)(void* p);
N_NIMCALL(void*, newSeqRC1)(TNimType* typ, NI len);
N_NIMCALL(void, initintset_211885)(Intset211035* Result);
N_NIMCALL(void, internalerror_187113)(NimStringDesc* errmsg);
static N_INLINE(NIM_BOOL, skipcodegen_261065)(Tnode214790* n);
N_NIMCALL(void, internalerror_187100)(Tlineinfo182337 info, NimStringDesc* errmsg);
N_NIMCALL(Tproc505024*, newproc_505201)(Tglobals505018* globals, Tjsgen505006* module, Tnode214790* procdef, NU32 options);
N_NIMCALL(void, TMP4644)(void* p, NI op);
N_NIMCALL(void, TMP4645)(void* p, NI op);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incref_53819)(Cell47505* c);
static N_INLINE(NIM_BOOL, canbecycleroot_51458)(Cell47505* c);
static N_INLINE(void, rtladdcycleroot_52220)(Cell47505* c);
N_NOINLINE(void, incl_48247)(Cellset47517* s, Cell47505* cell);
static N_INLINE(void, decref_53401)(Cell47505* c);
N_NIMCALL(void, genmodule_511993)(Tproc505024* p, Tnode214790* n);
N_NIMCALL(void, addf_170205)(Ropeobj169006** c, NimStringDesc* frmt, Ropeobj169006** args, NI argsLen0);
N_NIMCALL(Ropeobj169006*, makejsstring_505278)(NimStringDesc* s);
N_NIMCALL(Ropeobj169006*, rope_169277)(NimStringDesc* s);
N_NIMCALL(NimStringDesc*, nsuEscape)(NimStringDesc* s, NimStringDesc* prefix, NimStringDesc* suffix);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_NIMCALL(NimStringDesc*, tofilename_183262)(NI32 fileidx);
N_NIMCALL(void, genstmt_505710)(Tproc505024* p, Tnode214790* n);
N_NIMCALL(void, gen_505704)(Tproc505024* p, Tnode214790* n, Tcompres505014* r);
N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_NIMCALL(void, gensym_509176)(Tproc505024* p, Tnode214790* n, Tcompres505014* r);
N_NIMCALL(NU8, maptype_505241)(Ttype214828* typ);
N_NIMCALL(Ttype214828*, skiptypes_218113)(Ttype214828* t, NU64 kinds);
N_NIMCALL(Ttype214828*, lastson_217377)(Ttype214828* n);
N_NIMCALL(Ropeobj169006*, HEX25_169905)(NimStringDesc* frmt, Ropeobj169006** args, NI argsLen0);
N_NIMCALL(Ropeobj169006*, HEX26_169447)(Ropeobj169006* a, NimStringDesc* b);
N_NIMCALL(NIM_BOOL, isindirect_508937)(Tsym214822* v);
N_NIMCALL(void, genconstant_505718)(Tproc505024* p, Tsym214822* c);
N_NIMCALL(NIM_BOOL, containsorincl_211862)(Intset211035* s, NI key);
N_NIMCALL(void, genvarinit_510382)(Tproc505024* p, Tsym214822* v, Tnode214790* n);
N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_NIMCALL(Ropeobj169006*, manglename_505256)(Tsym214822* s);
N_NIMCALL(NimStringDesc*, mangle_468847)(NimStringDesc* name);
N_NIMCALL(void, add_169487)(Ropeobj169006** a, NimStringDesc* b);
N_NIMCALL(void, add_169482)(Ropeobj169006** a, Ropeobj169006* b);
N_NIMCALL(Ropeobj169006*, rope_169401)(NI64 i);
N_NIMCALL(Ropeobj169006*, createvar_510148)(Tproc505024* p, Ttype214828* typ, NIM_BOOL indirect);
N_NIMCALL(Ropeobj169006*, puttoseq_510141)(NimStringDesc* s, NIM_BOOL indirect);
N_NIMCALL(NI64, lengthord_240007)(Ttype214828* t);
N_NIMCALL(Ttype214828*, elemtype_240383)(Ttype214828* t);
N_NIMCALL(void, usemagic_505722)(Tproc505024* p, NimStringDesc* name);
N_NIMCALL(Tsym214822*, getcompilerproc_258748)(NimStringDesc* name);
N_NIMCALL(NimStringDesc*, HEX24_187183)(TY88687 x);
N_NIMCALL(Ropeobj169006*, genproc_505714)(Tproc505024* oldproc, Tsym214822* prc);
N_NIMCALL(Ropeobj169006*, generateheader_508200)(Tproc505024* p, Ttype214828* typ);
N_NIMCALL(NI, sonslen_217351)(Tnode214790* n);
static N_INLINE(NIM_BOOL, iscompiletimeonly_248906)(Ttype214828* t);
N_NIMCALL(Tnode214790*, getbody_254827)(Tsym214822* s);
N_NIMCALL(Ropeobj169006*, genprocbody_511526)(Tproc505024* p, Tsym214822* prc);
static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c);
N_NIMCALL(void, globalerror_187071)(Tlineinfo182337 info, NU16 msg, NimStringDesc* arg);
N_NIMCALL(void, rawmessage_185612)(NU16 msg, NimStringDesc* arg);
N_NIMCALL(Ropeobj169006*, gentypeinfo_505282)(Tproc505024* p, Ttype214828* typ);
N_NIMCALL(void, prepend_169893)(Ropeobj169006** a, Ropeobj169006* b);
N_NIMCALL(void, genenuminfo_505549)(Tproc505024* p, Ttype214828* typ, Ropeobj169006* name);
N_NIMCALL(void, genobjectinfo_505440)(Tproc505024* p, Ttype214828* typ, Ropeobj169006* name);
N_NIMCALL(Ropeobj169006*, genobjectfields_505286)(Tproc505024* p, Ttype214828* typ, Tnode214790* n);
N_NIMCALL(NI64, getordvalue_240118)(Tnode214790* n);
N_NIMCALL(Tnode214790*, lastson_217364)(Tnode214790* n);
N_NIMCALL(void, gentupleinfo_505526)(Tproc505024* p, Ttype214828* typ, Ropeobj169006* name);
N_NIMCALL(Ropeobj169006*, gentuplefields_505487)(Tproc505024* p, Ttype214828* typ);
N_NIMCALL(NI, len_217339)(Ttype214828* n);
N_NIMCALL(NimStringDesc*, reprEnum)(NI e_85009, TNimType* typ);
N_NIMCALL(NI, sonslen_217327)(Ttype214828* n);
N_NIMCALL(void, createobjinitlist_510208)(Tproc505024* p, Ttype214828* typ, Intset211035* excludedfieldids, Ropeobj169006** output);
N_NIMCALL(NI, len_169025)(Ropeobj169006* a);
N_NIMCALL(void, createrecordvaraux_510153)(Tproc505024* p, Tnode214790* rec, Intset211035* excludedfieldids, Ropeobj169006** output);
N_NIMCALL(NIM_BOOL, contains_211811)(Intset211035* s, NI key);
N_NIMCALL(NIM_BOOL, needsnocopy_508444)(Tnode214790* y);
N_NIMCALL(TGenericSeq*, incrSeqV2)(TGenericSeq* seq, NI elemsize);
N_NIMCALL(void, genprocforsymifneeded_509129)(Tproc505024* p, Tsym214822* s);
static N_INLINE(NIM_BOOL, isemptytype_219514)(Ttype214828* t);
N_NIMCALL(NimStringDesc*, tostrmaxprecision_220009)(NF f);
N_NIMCALL(void, genmagic_511035)(Tproc505024* p, Tnode214790* n, Tcompres505014* r);
N_NIMCALL(void, genor_506046)(Tproc505024* p, Tnode214790* a, Tnode214790* b, Tcompres505014* r);
N_NIMCALL(NIM_BOOL, issimpleexpr_505773)(Tnode214790* n);
static N_INLINE(NI, len_215059)(Tnode214790* n);
static N_INLINE(NIM_BOOL, isatom_219492)(Tnode214790* n);
static N_INLINE(Ropeobj169006*, rdloc_505100)(Tcompres505014* a);
N_NIMCALL(Ropeobj169006*, gettemp_505814)(Tproc505024* p, NIM_BOOL defineinlocals);
N_NIMCALL(void, genand_505842)(Tproc505024* p, Tnode214790* a, Tnode214790* b, Tcompres505014* r);
N_NIMCALL(void, arith_506671)(Tproc505024* p, Tnode214790* n, Tcompres505014* r, NU8 op);
N_NIMCALL(void, arithaux_506629)(Tproc505024* p, Tnode214790* n, Tcompres505014* r, NU8 op, Tmagicops506249 ops);
N_NIMCALL(void, genericAssign)(void* dest, void* src, TNimType* mt);
N_NIMCALL(void, genrepr_510973)(Tproc505024* p, Tnode214790* n, Tcompres505014* r);
N_NIMCALL(void, unaryexpr_506618)(Tproc505024* p, Tnode214790* n, Tcompres505014* r, NimStringDesc* magic, NimStringDesc* frmt);
N_NIMCALL(void, genswap_508574)(Tproc505024* p, Tnode214790* n);
N_NIMCALL(void, binaryexpr_506578)(Tproc505024* p, Tnode214790* n, Tcompres505014* r, NimStringDesc* magic, NimStringDesc* frmt);
N_NIMCALL(void, genconstrstr_510891)(Tproc505024* p, Tnode214790* n, Tcompres505014* r);
N_NIMCALL(void, gennew_510844)(Tproc505024* p, Tnode214790* n);
N_NIMCALL(NI64, getsize_240124)(Ttype214828* typ);
N_NIMCALL(void, genord_510874)(Tproc505024* p, Tnode214790* n, Tcompres505014* r);
N_NIMCALL(void, gennewseq_510857)(Tproc505024* p, Tnode214790* n);
N_NIMCALL(void, genof_510984)(Tproc505024* p, Tnode214790* n, Tcompres505014* r);
N_NIMCALL(void, genreset_511023)(Tproc505024* p, Tnode214790* n);
N_NIMCALL(void, genecho_510091)(Tproc505024* p, Tnode214790* n_510094, Tcompres505014* r);
N_NIMCALL(Tnode214790*, skipconv_249082)(Tnode214790* n);
static N_INLINE(Tnode214790*, HEX5BHEX5D_215238)(Tnode214790* n, NI i);
N_NIMCALL(void, genargnoparam_509414)(Tproc505024* p, Tnode214790* n, Tcompres505014* r);
N_NIMCALL(void, localerror_187080)(Tlineinfo182337 info, NU16 msg, NimStringDesc* arg);
N_NIMCALL(void, ternaryexpr_506596)(Tproc505024* p, Tnode214790* n, Tcompres505014* r, NimStringDesc* magic, NimStringDesc* frmt);
N_NIMCALL(void, gencall_510024)(Tproc505024* p, Tnode214790* n, Tcompres505014* r);
N_NIMCALL(void, genargs_509483)(Tproc505024* p, Tnode214790* n, Tcompres505014* r);
N_NIMCALL(void, genarg_509436)(Tproc505024* p, Tnode214790* n, Tsym214822* param, Tcompres505014* r);
N_NIMCALL(void, geninfixcall_510031)(Tproc505024* p, Tnode214790* n, Tcompres505014* r);
N_NIMCALL(void, globalerror_187076)(Tlineinfo182337 info, NimStringDesc* arg);
N_NIMCALL(void, gensetconstr_511112)(Tproc505024* p, Tnode214790* n, Tcompres505014* r);
N_NIMCALL(void, genarrayconstr_511164)(Tproc505024* p, Tnode214790* n, Tcompres505014* r);
N_NIMCALL(void, gentupleconstr_511197)(Tproc505024* p, Tnode214790* n, Tcompres505014* r);
N_NIMCALL(void, genobjconstr_511252)(Tproc505024* p, Tnode214790* n, Tcompres505014* r);
N_NOINLINE(void, chckNil)(void* p);
N_NIMCALL(void, incl_211832)(Intset211035* s, NI key);
N_NIMCALL(void, genconv_511352)(Tproc505024* p, Tnode214790* n, Tcompres505014* r);
N_NIMCALL(void, genaddr_509008)(Tproc505024* p, Tnode214790* n, Tcompres505014* r);
N_NIMCALL(void, gencheckedfieldaddr_508776)(Tproc505024* p, Tnode214790* n, Tcompres505014* r);
N_NIMCALL(void, genfieldaddr_508648)(Tproc505024* p, Tnode214790* n, Tcompres505014* r);
N_NIMCALL(NI, getfieldposition_508640)(Tnode214790* f);
N_NIMCALL(NimStringDesc*, nimIntToStr)(NI x);
N_NIMCALL(NimStringDesc*, HEX24_169856)(Ropeobj169006* r);
N_NIMCALL(void, genfieldaccess_508725)(Tproc505024* p, Tnode214790* n, Tcompres505014* r);
N_NIMCALL(void, genarrayaddr_508817)(Tproc505024* p, Tnode214790* n, Tcompres505014* r);
N_NIMCALL(NI64, firstord_240001)(Ttype214828* t);
N_NIMCALL(NIM_BOOL, isconstexpr_239336)(Tnode214790* n);
N_NIMCALL(void, genderef_509369)(Tproc505024* p, Tnode214790* n, Tcompres505014* r);
N_NIMCALL(void, genarrayaccess_508897)(Tproc505024* p, Tnode214790* n, Tcompres505014* r);
N_NIMCALL(void, gencheckedfieldaccess_508810)(Tproc505024* p, Tnode214790* n, Tcompres505014* r);
N_NIMCALL(void, upconv_511384)(Tproc505024* p, Tnode214790* n, Tcompres505014* r);
N_NIMCALL(void, genrangechck_511391)(Tproc505024* p, Tnode214790* n, Tcompres505014* r, NimStringDesc* magic);
N_NIMCALL(void, convstrtocstr_511419)(Tproc505024* p, Tnode214790* n, Tcompres505014* r);
N_NIMCALL(void, convcstrtostr_511452)(Tproc505024* p, Tnode214790* n, Tcompres505014* r);
N_NIMCALL(void, genblock_507530)(Tproc505024* p, Tnode214790* n, Tcompres505014* r);
N_NIMCALL(TGenericSeq*, setLengthSeq)(TGenericSeq* seq, NI elemsize, NI newlen);
N_NIMCALL(void, genif_508065)(Tproc505024* p, Tnode214790* n, Tcompres505014* r);
N_NIMCALL(void, moveinto_506907)(Tproc505024* p, Tcompres505014* src, Tcompres505014* dest);
N_NIMCALL(NimStringDesc*, nsuRepeatChar)(NIM_CHAR c, NI count);
N_NIMCALL(void, genwhilestmt_506816)(Tproc505024* p, Tnode214790* n);
N_NIMCALL(void, genlinedir_506687)(Tproc505024* p, Tnode214790* n);
static N_INLINE(NI, tolinenumber_183415)(Tlineinfo182337 info);
N_NIMCALL(void, genvarstmt_510506)(Tproc505024* p, Tnode214790* n);
N_NIMCALL(Tnode214790*, lowertupleunpacking_376039)(Tnode214790* n, Tsym214822* owner);
N_NIMCALL(void, gencasejs_507265)(Tproc505024* p, Tnode214790* n, Tcompres505014* r);
N_NIMCALL(Tnode214790*, copynode_218542)(Tnode214790* src);
N_NIMCALL(void, gencaselua_507400)(Tproc505024* p, Tnode214790* n, Tcompres505014* r);
N_NIMCALL(void, genreturnstmt_511485)(Tproc505024* p, Tnode214790* n);
N_NIMCALL(void, genbreakstmt_507625)(Tproc505024* p, Tnode214790* n);
N_NIMCALL(void, genasgn_508562)(Tproc505024* p, Tnode214790* n);
N_NIMCALL(void, genasgnaux_508469)(Tproc505024* p, Tnode214790* x, Tnode214790* y, NIM_BOOL nocopyneeded);
N_NIMCALL(void, genfastasgn_508568)(Tproc505024* p, Tnode214790* n);
N_NIMCALL(void, genasmoremitstmt_508033)(Tproc505024* p, Tnode214790* n);
N_NIMCALL(void, gentry_506937)(Tproc505024* p, Tnode214790* n, Tcompres505014* r);
N_NIMCALL(void, genraisestmt_507240)(Tproc505024* p, Tnode214790* n);
N_NIMCALL(void, genpragma_511715)(Tproc505024* p, Tnode214790* n);
N_NIMCALL(NU16, whichpragma_239525)(Tnode214790* n);
N_NIMCALL(Tnode214790*, myprocess_512028)(Tpasscontext261002* b, Tnode214790* n);
N_NIMCALL(Ropeobj169006*, wholecode_512050)(Tjsgen505006* m);
N_NIMCALL(Tnode214790*, generatemethoddispatchers_375151)(void);
N_NIMCALL(Ropeobj169006*, HEX26_169418)(Ropeobj169006* a, Ropeobj169006* b);
N_NIMCALL(NIM_BOOL, nosisAbsolute)(NimStringDesc* path);
N_NIMCALL(NimStringDesc*, HEX2F_118465)(NimStringDesc* head, NimStringDesc* tail);
N_NIMCALL(NimStringDesc*, nosgetCurrentDir)(void);
N_NIMCALL(NimStringDesc*, noschangeFileExt)(NimStringDesc* filename, NimStringDesc* ext);
N_NIMCALL(NimStringDesc*, completecfilepath_194854)(NimStringDesc* cfile, NIM_BOOL createsubdir);
N_NIMCALL(NIM_BOOL, writeropeifnotequal_170491)(Ropeobj169006* r, NimStringDesc* filename);
N_NIMCALL(Ropeobj169006*, genheader_511988)(void);
STRING_LITERAL(TMP4637, "symbol files are not possible with the JS code generator", 56);
STRING_LITERAL(TMP4638, "myProcess", 9);
STRING_LITERAL(TMP4646, "var F = {procname:$1,prev:framePtr,filename:$2,line:0};$nframeP"
"tr = F;$n", 72);
STRING_LITERAL(TMP4647, "null", 4);
STRING_LITERAL(TMP4648, "\"", 1);
STRING_LITERAL(TMP4649, "module ", 7);
STRING_LITERAL(TMP4650, "symbol has no generated name: ", 30);
STRING_LITERAL(TMP4651, "$1[0]", 5);
STRING_LITERAL(TMP4652, "$1[1]", 5);
STRING_LITERAL(TMP4653, "_Idx", 4);
STRING_LITERAL(TMP4654, "var $1 = $2;$n", 14);
STRING_LITERAL(TMP4655, "local $1 = $2;$n", 16);
STRING_LITERAL(TMP4656, "_", 1);
STRING_LITERAL(TMP4657, "[$1]", 4);
STRING_LITERAL(TMP4658, "0", 1);
STRING_LITERAL(TMP4659, "0.0", 3);
STRING_LITERAL(TMP4660, "{}", 2);
STRING_LITERAL(TMP4661, "false", 5);
STRING_LITERAL(TMP4663, "compiler/jsgen.nim", 18);
NIM_CONST TY88687 TMP4662 = {((NimStringDesc*) &TMP4663),
((NI) 180)}
;
STRING_LITERAL(TMP4664, ", ", 2);
STRING_LITERAL(TMP4665, "var $# = $#;$n", 14);
STRING_LITERAL(TMP4666, "local $# = $#;$n", 16);
STRING_LITERAL(TMP4667, "return [$#, $#];$n", 18);
STRING_LITERAL(TMP4668, "return $#;$n", 12);
STRING_LITERAL(TMP4669, "function $#($#) {$n$#$#$#$#}$n", 30);
STRING_LITERAL(TMP4670, "function $#($#) $n$#$#$#$#$nend$n", 33);
STRING_LITERAL(TMP4671, "var F={procname:$1,prev:framePtr,filename:$2,line:0};$n", 55);
STRING_LITERAL(TMP4672, "local F={procname=$#,prev=framePtr,filename=$#,line=0};$n", 57);
STRING_LITERAL(TMP4673, "framePtr = F;$n", 15);
STRING_LITERAL(TMP4674, "BeforeRet: do {$n$1} while (false); $n", 38);
STRING_LITERAL(TMP4675, "$#;::BeforeRet::$n", 18);
STRING_LITERAL(TMP4676, "try {$n$1} catch (e) {$n alert(\"Unhandled exception:\\n\" + e.mes"
"sage + \"\\n\"$n}", 77);
STRING_LITERAL(TMP4677, "framePtr = framePtr.prev;", 25);
STRING_LITERAL(TMP4678, "arrayConstr", 11);
STRING_LITERAL(TMP4679, "nimCopy", 7);
STRING_LITERAL(TMP4680, "arrayConstr($1, $2, $3)", 23);
STRING_LITERAL(TMP4681, "NTI$1", 5);
STRING_LITERAL(TMP4682, "var $1 = {size: 0,kind: $2,base: null,node: null,finalizer: nul"
"l};$n", 68);
STRING_LITERAL(TMP4683, "$1.base = $2;$n", 15);
STRING_LITERAL(TMP4684, "genEnumInfo", 11);
STRING_LITERAL(TMP4685, "{kind: 1, offset: $1, typ: $2, name: $3, len: 0, sons: null}", 60);
STRING_LITERAL(TMP4686, "var NNI$1 = {kind: 2, offset: 0, typ: null, name: null, len: $2"
", sons: [$3]};$n", 79);
STRING_LITERAL(TMP4687, "var $1 = {size: 0, kind: $2, base: null, node: null, finalizer:"
" null};$n", 72);
STRING_LITERAL(TMP4688, "$1.node = NNI$2;$n", 18);
STRING_LITERAL(TMP4689, "var NNI$1 = $2;$n", 17);
STRING_LITERAL(TMP4690, "{kind: 2, len: $1, offset: 0, typ: null, name: null, sons: [$2]"
"}", 64);
STRING_LITERAL(TMP4691, "{kind: 1, offset: \"$1\", len: 0, typ: $2, name: $3, sons: null}", 62);
STRING_LITERAL(TMP4692, "genObjectFields", 15);
STRING_LITERAL(TMP4693, "genObjectFields; nkOfBranch broken", 34);
STRING_LITERAL(TMP4694, "[$1, $2]", 8);
STRING_LITERAL(TMP4695, "genObjectFields(nkRecCase)", 26);
STRING_LITERAL(TMP4696, "[SetConstr($1), $2]", 19);
STRING_LITERAL(TMP4697, "{kind: 3, offset: \"$1\", len: $3, typ: $2, name: $4, sons: [$5]}", 63);
STRING_LITERAL(TMP4698, "{kind: 1, offset: \"Field$1\", len: 0, typ: $2, name: \"Field$1\", "
"sons: null}", 74);
STRING_LITERAL(TMP4699, "genTypeInfo(", 12);
STRING_LITERAL(TMP4700, "[", 1);
STRING_LITERAL(TMP4701, "]", 1);
STRING_LITERAL(TMP4702, "{", 1);
STRING_LITERAL(TMP4703, "Field$1: $2", 11);
STRING_LITERAL(TMP4704, "Field$# = $#", 12);
STRING_LITERAL(TMP4705, "}", 1);
STRING_LITERAL(TMP4706, "m_type: $1", 10);
STRING_LITERAL(TMP4707, "m_type = $#", 11);
STRING_LITERAL(TMP4708, ": ", 2);
STRING_LITERAL(TMP4709, "createRecordVarAux", 18);
STRING_LITERAL(TMP4710, "{$1}", 4);
STRING_LITERAL(TMP4711, "[null, 0]", 9);
STRING_LITERAL(TMP4712, "{nil, 0}", 8);
STRING_LITERAL(TMP4713, "nil", 3);
STRING_LITERAL(TMP4714, "createVar: ", 11);
static NIM_CONST TY449235 TMP4715 = {
0xE0, 0x07, 0x77, 0xFC, 0xE1, 0x00, 0x00, 0x00,
0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TMP4716, "nimCopy(null, $1, $2)", 21);
STRING_LITERAL(TMP4717, "genVarInit", 10);
STRING_LITERAL(TMP4718, "var $1 = [$2, $3];$n", 20);
STRING_LITERAL(TMP4719, "local $1 = {$2, $3};$n", 22);
STRING_LITERAL(TMP4720, "var $1 = $2; var $1_Idx = $3;$n", 31);
STRING_LITERAL(TMP4721, "local $1 = $2; local $1_Idx = $3;$n", 35);
STRING_LITERAL(TMP4722, "var $1 = /**/[$2];$n", 20);
STRING_LITERAL(TMP4723, "local $1 = {$2};$n", 18);
STRING_LITERAL(TMP4724, "false", 5);
STRING_LITERAL(TMP4725, "true", 4);
STRING_LITERAL(TMP4726, "null", 4);
STRING_LITERAL(TMP4727, "nil", 3);
STRING_LITERAL(TMP4728, "0", 1);
STRING_LITERAL(TMP4729, "cstrToNimstr", 12);
STRING_LITERAL(TMP4730, "cstrToNimstr($1)", 16);
STRING_LITERAL(TMP4731, "NaN", 3);
STRING_LITERAL(TMP4732, "0.0", 3);
STRING_LITERAL(TMP4733, "Infinity", 8);
STRING_LITERAL(TMP4734, "-Infinity", 9);
STRING_LITERAL(TMP4735, "($1 || $2)", 10);
STRING_LITERAL(TMP4736, "($1 or $2)", 10);
STRING_LITERAL(TMP4737, "Tmp$1", 5);
STRING_LITERAL(TMP4738, "var $1;$n", 9);
STRING_LITERAL(TMP4739, "local $1;$n", 11);
STRING_LITERAL(TMP4740, "if ($1) $2 = true; else {", 25);
STRING_LITERAL(TMP4741, "if $1 then $2 = true; else", 26);
STRING_LITERAL(TMP4742, "$2 = $1; }", 10);
STRING_LITERAL(TMP4743, "$2 = $1 end", 11);
STRING_LITERAL(TMP4744, "($1 && $2)", 10);
STRING_LITERAL(TMP4745, "($1 and $2)", 11);
STRING_LITERAL(TMP4746, "if (!$1) $2 = false; else {", 27);
STRING_LITERAL(TMP4747, "if not $1 then $2 = false; else", 31);
STRING_LITERAL(TMP4748, "addInt", 6);
STRING_LITERAL(TMP4749, "", 0);
STRING_LITERAL(TMP4750, "addInt($1, $2)", 14);
STRING_LITERAL(TMP4751, "($1 + $2)", 9);
STRING_LITERAL(TMP4752, "subInt", 6);
STRING_LITERAL(TMP4753, "subInt($1, $2)", 14);
STRING_LITERAL(TMP4754, "($1 - $2)", 9);
STRING_LITERAL(TMP4755, "mulInt", 6);
STRING_LITERAL(TMP4756, "mulInt($1, $2)", 14);
STRING_LITERAL(TMP4757, "($1 * $2)", 9);
STRING_LITERAL(TMP4758, "divInt", 6);
STRING_LITERAL(TMP4759, "divInt($1, $2)", 14);
STRING_LITERAL(TMP4760, "Math.floor($1 / $2)", 19);
STRING_LITERAL(TMP4761, "modInt", 6);
STRING_LITERAL(TMP4762, "modInt($1, $2)", 14);
STRING_LITERAL(TMP4763, "Math.floor($1 % $2)", 19);
STRING_LITERAL(TMP4764, "($1 / $2)", 9);
STRING_LITERAL(TMP4765, "($1 >>> $2)", 11);
STRING_LITERAL(TMP4766, "($1 << $2)", 10);
STRING_LITERAL(TMP4767, "($1 & $2)", 9);
STRING_LITERAL(TMP4768, "($1 | $2)", 9);
STRING_LITERAL(TMP4769, "($1 ^ $2)", 9);
STRING_LITERAL(TMP4770, "nimMin", 6);
STRING_LITERAL(TMP4771, "nimMin($1, $2)", 14);
STRING_LITERAL(TMP4772, "nimMax", 6);
STRING_LITERAL(TMP4773, "nimMax($1, $2)", 14);
STRING_LITERAL(TMP4774, "addU", 4);
STRING_LITERAL(TMP4775, "addU($1, $2)", 12);
STRING_LITERAL(TMP4776, "subU", 4);
STRING_LITERAL(TMP4777, "subU($1, $2)", 12);
STRING_LITERAL(TMP4778, "mulU", 4);
STRING_LITERAL(TMP4779, "mulU($1, $2)", 12);
STRING_LITERAL(TMP4780, "divU", 4);
STRING_LITERAL(TMP4781, "divU($1, $2)", 12);
STRING_LITERAL(TMP4782, "modU", 4);
STRING_LITERAL(TMP4783, "modU($1, $2)", 12);
STRING_LITERAL(TMP4784, "($1 == $2)", 10);
STRING_LITERAL(TMP4785, "($1 <= $2)", 10);
STRING_LITERAL(TMP4786, "($1 < $2)", 9);
STRING_LITERAL(TMP4787, "leU", 3);
STRING_LITERAL(TMP4788, "leU($1, $2)", 11);
STRING_LITERAL(TMP4789, "ltU", 3);
STRING_LITERAL(TMP4790, "ltU($1, $2)", 11);
STRING_LITERAL(TMP4791, "leU64", 5);
STRING_LITERAL(TMP4792, "leU64($1, $2)", 13);
STRING_LITERAL(TMP4793, "ltU64", 5);
STRING_LITERAL(TMP4794, "ltU64($1, $2)", 13);
STRING_LITERAL(TMP4795, "($1 != $2)", 10);
STRING_LITERAL(TMP4796, "negInt", 6);
STRING_LITERAL(TMP4797, "negInt($1)", 10);
STRING_LITERAL(TMP4798, "-($1)", 5);
STRING_LITERAL(TMP4799, "negInt64", 8);
STRING_LITERAL(TMP4800, "negInt64($1)", 12);
STRING_LITERAL(TMP4801, "absInt", 6);
STRING_LITERAL(TMP4802, "absInt($1)", 10);
STRING_LITERAL(TMP4803, "Math.abs($1)", 12);
STRING_LITERAL(TMP4804, "!($1)", 5);
STRING_LITERAL(TMP4805, "+($1)", 5);
STRING_LITERAL(TMP4806, "~($1)", 5);
STRING_LITERAL(TMP4807, "Ze8ToI", 6);
STRING_LITERAL(TMP4808, "Ze8ToI($1)", 10);
STRING_LITERAL(TMP4809, "Ze8ToI64", 8);
STRING_LITERAL(TMP4810, "Ze8ToI64($1)", 12);
STRING_LITERAL(TMP4811, "Ze16ToI", 7);
STRING_LITERAL(TMP4812, "Ze16ToI($1)", 11);
STRING_LITERAL(TMP4813, "Ze16ToI64", 9);
STRING_LITERAL(TMP4814, "Ze16ToI64($1)", 13);
STRING_LITERAL(TMP4815, "Ze32ToI64", 9);
STRING_LITERAL(TMP4816, "Ze32ToI64($1)", 13);
STRING_LITERAL(TMP4817, "ZeIToI64", 8);
STRING_LITERAL(TMP4818, "ZeIToI64($1)", 12);
STRING_LITERAL(TMP4819, "toU8", 4);
STRING_LITERAL(TMP4820, "toU8($1)", 8);
STRING_LITERAL(TMP4821, "toU16", 5);
STRING_LITERAL(TMP4822, "toU16($1)", 9);
STRING_LITERAL(TMP4823, "toU32", 5);
STRING_LITERAL(TMP4824, "toU32($1)", 9);
STRING_LITERAL(TMP4825, "$1", 2);
STRING_LITERAL(TMP4826, "Math.floor($1)", 14);
STRING_LITERAL(TMP4827, "nimCharToStr", 12);
STRING_LITERAL(TMP4828, "nimCharToStr($1)", 16);
STRING_LITERAL(TMP4829, "nimBoolToStr", 12);
STRING_LITERAL(TMP4830, "nimBoolToStr($1)", 16);
STRING_LITERAL(TMP4831, "cstrToNimstr(($1)+\"\")", 21);
NIM_CONST Tmagicops506249 jsops_506252 = {{((NimStringDesc*) &TMP4748),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4750),
((NimStringDesc*) &TMP4751)}
,
{((NimStringDesc*) &TMP4752),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4753),
((NimStringDesc*) &TMP4754)}
,
{((NimStringDesc*) &TMP4755),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4756),
((NimStringDesc*) &TMP4757)}
,
{((NimStringDesc*) &TMP4758),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4759),
((NimStringDesc*) &TMP4760)}
,
{((NimStringDesc*) &TMP4761),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4762),
((NimStringDesc*) &TMP4763)}
,
{((NimStringDesc*) &TMP4748),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4750),
((NimStringDesc*) &TMP4751)}
,
{((NimStringDesc*) &TMP4752),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4753),
((NimStringDesc*) &TMP4754)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4751),
((NimStringDesc*) &TMP4751)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4754),
((NimStringDesc*) &TMP4754)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4757),
((NimStringDesc*) &TMP4757)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4764),
((NimStringDesc*) &TMP4764)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4765),
((NimStringDesc*) &TMP4765)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4766),
((NimStringDesc*) &TMP4766)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4767),
((NimStringDesc*) &TMP4767)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4768),
((NimStringDesc*) &TMP4768)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4769),
((NimStringDesc*) &TMP4769)}
,
{((NimStringDesc*) &TMP4770),
((NimStringDesc*) &TMP4770),
((NimStringDesc*) &TMP4771),
((NimStringDesc*) &TMP4771)}
,
{((NimStringDesc*) &TMP4772),
((NimStringDesc*) &TMP4772),
((NimStringDesc*) &TMP4773),
((NimStringDesc*) &TMP4773)}
,
{((NimStringDesc*) &TMP4770),
((NimStringDesc*) &TMP4770),
((NimStringDesc*) &TMP4771),
((NimStringDesc*) &TMP4771)}
,
{((NimStringDesc*) &TMP4772),
((NimStringDesc*) &TMP4772),
((NimStringDesc*) &TMP4773),
((NimStringDesc*) &TMP4773)}
,
{((NimStringDesc*) &TMP4774),
((NimStringDesc*) &TMP4774),
((NimStringDesc*) &TMP4775),
((NimStringDesc*) &TMP4775)}
,
{((NimStringDesc*) &TMP4776),
((NimStringDesc*) &TMP4776),
((NimStringDesc*) &TMP4777),
((NimStringDesc*) &TMP4777)}
,
{((NimStringDesc*) &TMP4778),
((NimStringDesc*) &TMP4778),
((NimStringDesc*) &TMP4779),
((NimStringDesc*) &TMP4779)}
,
{((NimStringDesc*) &TMP4780),
((NimStringDesc*) &TMP4780),
((NimStringDesc*) &TMP4781),
((NimStringDesc*) &TMP4781)}
,
{((NimStringDesc*) &TMP4782),
((NimStringDesc*) &TMP4782),
((NimStringDesc*) &TMP4783),
((NimStringDesc*) &TMP4783)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4784),
((NimStringDesc*) &TMP4784)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4785),
((NimStringDesc*) &TMP4785)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4786),
((NimStringDesc*) &TMP4786)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4784),
((NimStringDesc*) &TMP4784)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4785),
((NimStringDesc*) &TMP4785)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4786),
((NimStringDesc*) &TMP4786)}
,
{((NimStringDesc*) &TMP4787),
((NimStringDesc*) &TMP4787),
((NimStringDesc*) &TMP4788),
((NimStringDesc*) &TMP4788)}
,
{((NimStringDesc*) &TMP4789),
((NimStringDesc*) &TMP4789),
((NimStringDesc*) &TMP4790),
((NimStringDesc*) &TMP4790)}
,
{((NimStringDesc*) &TMP4791),
((NimStringDesc*) &TMP4791),
((NimStringDesc*) &TMP4792),
((NimStringDesc*) &TMP4792)}
,
{((NimStringDesc*) &TMP4793),
((NimStringDesc*) &TMP4793),
((NimStringDesc*) &TMP4794),
((NimStringDesc*) &TMP4794)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4784),
((NimStringDesc*) &TMP4784)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4785),
((NimStringDesc*) &TMP4785)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4786),
((NimStringDesc*) &TMP4786)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4784),
((NimStringDesc*) &TMP4784)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4785),
((NimStringDesc*) &TMP4785)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4786),
((NimStringDesc*) &TMP4786)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4784),
((NimStringDesc*) &TMP4784)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4785),
((NimStringDesc*) &TMP4785)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4786),
((NimStringDesc*) &TMP4786)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4784),
((NimStringDesc*) &TMP4784)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4784),
((NimStringDesc*) &TMP4784)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4785),
((NimStringDesc*) &TMP4785)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4786),
((NimStringDesc*) &TMP4786)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4784),
((NimStringDesc*) &TMP4784)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4795),
((NimStringDesc*) &TMP4795)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4784),
((NimStringDesc*) &TMP4784)}
,
{((NimStringDesc*) &TMP4796),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4797),
((NimStringDesc*) &TMP4798)}
,
{((NimStringDesc*) &TMP4799),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4800),
((NimStringDesc*) &TMP4798)}
,
{((NimStringDesc*) &TMP4801),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4802),
((NimStringDesc*) &TMP4803)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4804),
((NimStringDesc*) &TMP4804)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4805),
((NimStringDesc*) &TMP4805)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4806),
((NimStringDesc*) &TMP4806)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4805),
((NimStringDesc*) &TMP4805)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4798),
((NimStringDesc*) &TMP4798)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4803),
((NimStringDesc*) &TMP4803)}
,
{((NimStringDesc*) &TMP4807),
((NimStringDesc*) &TMP4807),
((NimStringDesc*) &TMP4808),
((NimStringDesc*) &TMP4808)}
,
{((NimStringDesc*) &TMP4809),
((NimStringDesc*) &TMP4809),
((NimStringDesc*) &TMP4810),
((NimStringDesc*) &TMP4810)}
,
{((NimStringDesc*) &TMP4811),
((NimStringDesc*) &TMP4811),
((NimStringDesc*) &TMP4812),
((NimStringDesc*) &TMP4812)}
,
{((NimStringDesc*) &TMP4813),
((NimStringDesc*) &TMP4813),
((NimStringDesc*) &TMP4814),
((NimStringDesc*) &TMP4814)}
,
{((NimStringDesc*) &TMP4815),
((NimStringDesc*) &TMP4815),
((NimStringDesc*) &TMP4816),
((NimStringDesc*) &TMP4816)}
,
{((NimStringDesc*) &TMP4817),
((NimStringDesc*) &TMP4817),
((NimStringDesc*) &TMP4818),
((NimStringDesc*) &TMP4818)}
,
{((NimStringDesc*) &TMP4819),
((NimStringDesc*) &TMP4819),
((NimStringDesc*) &TMP4820),
((NimStringDesc*) &TMP4820)}
,
{((NimStringDesc*) &TMP4821),
((NimStringDesc*) &TMP4821),
((NimStringDesc*) &TMP4822),
((NimStringDesc*) &TMP4822)}
,
{((NimStringDesc*) &TMP4823),
((NimStringDesc*) &TMP4823),
((NimStringDesc*) &TMP4824),
((NimStringDesc*) &TMP4824)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4825),
((NimStringDesc*) &TMP4825)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4825),
((NimStringDesc*) &TMP4825)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4826),
((NimStringDesc*) &TMP4826)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4826),
((NimStringDesc*) &TMP4826)}
,
{((NimStringDesc*) &TMP4827),
((NimStringDesc*) &TMP4827),
((NimStringDesc*) &TMP4828),
((NimStringDesc*) &TMP4828)}
,
{((NimStringDesc*) &TMP4829),
((NimStringDesc*) &TMP4829),
((NimStringDesc*) &TMP4830),
((NimStringDesc*) &TMP4830)}
,
{((NimStringDesc*) &TMP4729),
((NimStringDesc*) &TMP4729),
((NimStringDesc*) &TMP4831),
((NimStringDesc*) &TMP4831)}
,
{((NimStringDesc*) &TMP4729),
((NimStringDesc*) &TMP4729),
((NimStringDesc*) &TMP4831),
((NimStringDesc*) &TMP4831)}
,
{((NimStringDesc*) &TMP4729),
((NimStringDesc*) &TMP4729),
((NimStringDesc*) &TMP4831),
((NimStringDesc*) &TMP4831)}
,
{((NimStringDesc*) &TMP4729),
((NimStringDesc*) &TMP4729),
((NimStringDesc*) &TMP4730),
((NimStringDesc*) &TMP4730)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4825),
((NimStringDesc*) &TMP4825)}
}
;
STRING_LITERAL(TMP4832, "not ($1)", 8);
NIM_CONST Tmagicops506249 luaops_506415 = {{((NimStringDesc*) &TMP4748),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4750),
((NimStringDesc*) &TMP4751)}
,
{((NimStringDesc*) &TMP4752),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4753),
((NimStringDesc*) &TMP4754)}
,
{((NimStringDesc*) &TMP4755),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4756),
((NimStringDesc*) &TMP4757)}
,
{((NimStringDesc*) &TMP4758),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4759),
((NimStringDesc*) &TMP4760)}
,
{((NimStringDesc*) &TMP4761),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4762),
((NimStringDesc*) &TMP4763)}
,
{((NimStringDesc*) &TMP4748),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4750),
((NimStringDesc*) &TMP4751)}
,
{((NimStringDesc*) &TMP4752),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4753),
((NimStringDesc*) &TMP4754)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4751),
((NimStringDesc*) &TMP4751)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4754),
((NimStringDesc*) &TMP4754)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4757),
((NimStringDesc*) &TMP4757)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4764),
((NimStringDesc*) &TMP4764)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4765),
((NimStringDesc*) &TMP4765)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4766),
((NimStringDesc*) &TMP4766)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4767),
((NimStringDesc*) &TMP4767)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4768),
((NimStringDesc*) &TMP4768)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4769),
((NimStringDesc*) &TMP4769)}
,
{((NimStringDesc*) &TMP4770),
((NimStringDesc*) &TMP4770),
((NimStringDesc*) &TMP4771),
((NimStringDesc*) &TMP4771)}
,
{((NimStringDesc*) &TMP4772),
((NimStringDesc*) &TMP4772),
((NimStringDesc*) &TMP4773),
((NimStringDesc*) &TMP4773)}
,
{((NimStringDesc*) &TMP4770),
((NimStringDesc*) &TMP4770),
((NimStringDesc*) &TMP4771),
((NimStringDesc*) &TMP4771)}
,
{((NimStringDesc*) &TMP4772),
((NimStringDesc*) &TMP4772),
((NimStringDesc*) &TMP4773),
((NimStringDesc*) &TMP4773)}
,
{((NimStringDesc*) &TMP4774),
((NimStringDesc*) &TMP4774),
((NimStringDesc*) &TMP4775),
((NimStringDesc*) &TMP4775)}
,
{((NimStringDesc*) &TMP4776),
((NimStringDesc*) &TMP4776),
((NimStringDesc*) &TMP4777),
((NimStringDesc*) &TMP4777)}
,
{((NimStringDesc*) &TMP4778),
((NimStringDesc*) &TMP4778),
((NimStringDesc*) &TMP4779),
((NimStringDesc*) &TMP4779)}
,
{((NimStringDesc*) &TMP4780),
((NimStringDesc*) &TMP4780),
((NimStringDesc*) &TMP4781),
((NimStringDesc*) &TMP4781)}
,
{((NimStringDesc*) &TMP4782),
((NimStringDesc*) &TMP4782),
((NimStringDesc*) &TMP4783),
((NimStringDesc*) &TMP4783)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4784),
((NimStringDesc*) &TMP4784)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4785),
((NimStringDesc*) &TMP4785)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4786),
((NimStringDesc*) &TMP4786)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4784),
((NimStringDesc*) &TMP4784)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4785),
((NimStringDesc*) &TMP4785)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4786),
((NimStringDesc*) &TMP4786)}
,
{((NimStringDesc*) &TMP4787),
((NimStringDesc*) &TMP4787),
((NimStringDesc*) &TMP4788),
((NimStringDesc*) &TMP4788)}
,
{((NimStringDesc*) &TMP4789),
((NimStringDesc*) &TMP4789),
((NimStringDesc*) &TMP4790),
((NimStringDesc*) &TMP4790)}
,
{((NimStringDesc*) &TMP4791),
((NimStringDesc*) &TMP4791),
((NimStringDesc*) &TMP4792),
((NimStringDesc*) &TMP4792)}
,
{((NimStringDesc*) &TMP4793),
((NimStringDesc*) &TMP4793),
((NimStringDesc*) &TMP4794),
((NimStringDesc*) &TMP4794)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4784),
((NimStringDesc*) &TMP4784)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4785),
((NimStringDesc*) &TMP4785)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4786),
((NimStringDesc*) &TMP4786)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4784),
((NimStringDesc*) &TMP4784)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4785),
((NimStringDesc*) &TMP4785)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4786),
((NimStringDesc*) &TMP4786)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4784),
((NimStringDesc*) &TMP4784)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4785),
((NimStringDesc*) &TMP4785)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4786),
((NimStringDesc*) &TMP4786)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4784),
((NimStringDesc*) &TMP4784)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4784),
((NimStringDesc*) &TMP4784)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4785),
((NimStringDesc*) &TMP4785)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4786),
((NimStringDesc*) &TMP4786)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4784),
((NimStringDesc*) &TMP4784)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4795),
((NimStringDesc*) &TMP4795)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4784),
((NimStringDesc*) &TMP4784)}
,
{((NimStringDesc*) &TMP4796),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4797),
((NimStringDesc*) &TMP4798)}
,
{((NimStringDesc*) &TMP4799),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4800),
((NimStringDesc*) &TMP4798)}
,
{((NimStringDesc*) &TMP4801),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4802),
((NimStringDesc*) &TMP4803)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4832),
((NimStringDesc*) &TMP4832)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4805),
((NimStringDesc*) &TMP4805)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4806),
((NimStringDesc*) &TMP4806)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4805),
((NimStringDesc*) &TMP4805)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4798),
((NimStringDesc*) &TMP4798)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4803),
((NimStringDesc*) &TMP4803)}
,
{((NimStringDesc*) &TMP4807),
((NimStringDesc*) &TMP4807),
((NimStringDesc*) &TMP4808),
((NimStringDesc*) &TMP4808)}
,
{((NimStringDesc*) &TMP4809),
((NimStringDesc*) &TMP4809),
((NimStringDesc*) &TMP4810),
((NimStringDesc*) &TMP4810)}
,
{((NimStringDesc*) &TMP4811),
((NimStringDesc*) &TMP4811),
((NimStringDesc*) &TMP4812),
((NimStringDesc*) &TMP4812)}
,
{((NimStringDesc*) &TMP4813),
((NimStringDesc*) &TMP4813),
((NimStringDesc*) &TMP4814),
((NimStringDesc*) &TMP4814)}
,
{((NimStringDesc*) &TMP4815),
((NimStringDesc*) &TMP4815),
((NimStringDesc*) &TMP4816),
((NimStringDesc*) &TMP4816)}
,
{((NimStringDesc*) &TMP4817),
((NimStringDesc*) &TMP4817),
((NimStringDesc*) &TMP4818),
((NimStringDesc*) &TMP4818)}
,
{((NimStringDesc*) &TMP4819),
((NimStringDesc*) &TMP4819),
((NimStringDesc*) &TMP4820),
((NimStringDesc*) &TMP4820)}
,
{((NimStringDesc*) &TMP4821),
((NimStringDesc*) &TMP4821),
((NimStringDesc*) &TMP4822),
((NimStringDesc*) &TMP4822)}
,
{((NimStringDesc*) &TMP4823),
((NimStringDesc*) &TMP4823),
((NimStringDesc*) &TMP4824),
((NimStringDesc*) &TMP4824)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4825),
((NimStringDesc*) &TMP4825)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4825),
((NimStringDesc*) &TMP4825)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4826),
((NimStringDesc*) &TMP4826)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4826),
((NimStringDesc*) &TMP4826)}
,
{((NimStringDesc*) &TMP4827),
((NimStringDesc*) &TMP4827),
((NimStringDesc*) &TMP4828),
((NimStringDesc*) &TMP4828)}
,
{((NimStringDesc*) &TMP4829),
((NimStringDesc*) &TMP4829),
((NimStringDesc*) &TMP4830),
((NimStringDesc*) &TMP4830)}
,
{((NimStringDesc*) &TMP4729),
((NimStringDesc*) &TMP4729),
((NimStringDesc*) &TMP4831),
((NimStringDesc*) &TMP4831)}
,
{((NimStringDesc*) &TMP4729),
((NimStringDesc*) &TMP4729),
((NimStringDesc*) &TMP4831),
((NimStringDesc*) &TMP4831)}
,
{((NimStringDesc*) &TMP4729),
((NimStringDesc*) &TMP4729),
((NimStringDesc*) &TMP4831),
((NimStringDesc*) &TMP4831)}
,
{((NimStringDesc*) &TMP4729),
((NimStringDesc*) &TMP4729),
((NimStringDesc*) &TMP4730),
((NimStringDesc*) &TMP4730)}
,
{((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4749),
((NimStringDesc*) &TMP4825),
((NimStringDesc*) &TMP4825)}
}
;
STRING_LITERAL(TMP4833, "(\"\"+ ($1))", 10);
STRING_LITERAL(TMP4834, "cstrToNimstr($1.node.sons[$2].name)", 35);
STRING_LITERAL(TMP4835, "genRepr: Not implemented", 24);
STRING_LITERAL(TMP4836, "genSwap", 7);
STRING_LITERAL(TMP4837, "var $1 = $2; $2 = $3; $3 = $1;$n", 32);
STRING_LITERAL(TMP4838, "local $1 = $2; $2 = $3; $3 = $1;$n", 34);
STRING_LITERAL(TMP4839, "var $1 = $2; $2 = $3; $3 = $1;", 30);
STRING_LITERAL(TMP4840, "local $1 = $2; $2 = $3; $3 = $1;", 32);
STRING_LITERAL(TMP4841, "$1 - 1", 6);
STRING_LITERAL(TMP4842, "subInt($1, 1)", 13);
STRING_LITERAL(TMP4843, "addChar", 7);
STRING_LITERAL(TMP4844, "if ($1 != null) { addChar($1, $2); } else { $1 = [$2, 0]; }", 59);
STRING_LITERAL(TMP4845, "if ($1 != null) { $1 += $2; } else { $1 = $2; }", 47);
STRING_LITERAL(TMP4846, "if ($1 != null) { $1 = ($1.slice(0, -1)).concat($2); } else { $"
"1 = $2;}", 71);
STRING_LITERAL(TMP4847, "if ($1 != null) { $1.push($2); } else { $1 = [$2]; }", 52);
STRING_LITERAL(TMP4848, "[$1].concat(", 12);
STRING_LITERAL(TMP4849, "($1.slice(0,-1)).concat(", 24);
STRING_LITERAL(TMP4850, "[$1],", 5);
STRING_LITERAL(TMP4851, "$1.slice(0,-1),", 15);
STRING_LITERAL(TMP4852, "[$1, 0])", 8);
STRING_LITERAL(TMP4853, "$1)", 3);
STRING_LITERAL(TMP4854, "eqStrings", 9);
STRING_LITERAL(TMP4855, "eqStrings($1, $2)", 17);
STRING_LITERAL(TMP4856, "cmpStrings", 10);
STRING_LITERAL(TMP4857, "(cmpStrings($1, $2) <= 0)", 25);
STRING_LITERAL(TMP4858, "(cmpStrings($1, $2) < 0)", 24);
STRING_LITERAL(TMP4859, "$1 == null", 10);
STRING_LITERAL(TMP4860, "$1 = $2;$n", 10);
STRING_LITERAL(TMP4861, "($1 ? 1:0)", 10);
STRING_LITERAL(TMP4862, "toBool($#)", 10);
STRING_LITERAL(TMP4863, "genOrd", 6);
STRING_LITERAL(TMP4864, "($1 != null ? $1.length-1 : 0)", 30);
STRING_LITERAL(TMP4865, "$1.length-1", 11);
STRING_LITERAL(TMP4866, "($1 != null ? $1.length : 0)", 28);
STRING_LITERAL(TMP4867, "$1.length", 9);
STRING_LITERAL(TMP4868, "($1 != null ? ($1.length-2) : -1)", 33);
STRING_LITERAL(TMP4869, "($1 != null ? ($1.length-1) : -1)", 33);
STRING_LITERAL(TMP4870, "$1 += $2", 8);
STRING_LITERAL(TMP4871, "$1 = addInt($1, $2)", 19);
STRING_LITERAL(TMP4872, "$1 -= $2", 8);
STRING_LITERAL(TMP4873, "$1 = subInt($1, $2)", 19);
STRING_LITERAL(TMP4874, "$1.length = $2+1; $1[$1.length-1] = 0", 37);
STRING_LITERAL(TMP4875, "$1.length = $2", 14);
STRING_LITERAL(TMP4876, "SetCard", 7);
STRING_LITERAL(TMP4877, "SetCard($1)", 11);
STRING_LITERAL(TMP4878, "SetLt", 5);
STRING_LITERAL(TMP4879, "SetLt($1, $2)", 13);
STRING_LITERAL(TMP4880, "SetLe", 5);
STRING_LITERAL(TMP4881, "SetLe($1, $2)", 13);
STRING_LITERAL(TMP4882, "SetEq", 5);
STRING_LITERAL(TMP4883, "SetEq($1, $2)", 13);
STRING_LITERAL(TMP4884, "SetMul", 6);
STRING_LITERAL(TMP4885, "SetMul($1, $2)", 14);
STRING_LITERAL(TMP4886, "SetPlus", 7);
STRING_LITERAL(TMP4887, "SetPlus($1, $2)", 15);
STRING_LITERAL(TMP4888, "SetMinus", 8);
STRING_LITERAL(TMP4889, "SetMinus($1, $2)", 16);
STRING_LITERAL(TMP4890, "$1[$2] = true", 13);
STRING_LITERAL(TMP4891, "delete $1[$2]", 13);
STRING_LITERAL(TMP4892, "($1[$2] != undefined)", 21);
STRING_LITERAL(TMP4893, "$1 = new Array($2); for (var i=0;i<$2;++i) {$1[i]=$3;}", 54);
STRING_LITERAL(TMP4894, "($1.m_type == $2)", 17);
STRING_LITERAL(TMP4895, "isObj", 5);
STRING_LITERAL(TMP4896, "isObj($1.m_type, $2)", 20);
STRING_LITERAL(TMP4897, "genericReset", 12);
STRING_LITERAL(TMP4898, "$1 = genericReset($1, $2);$n", 28);
STRING_LITERAL(TMP4899, "toJSStr", 7);
STRING_LITERAL(TMP4900, "rawEcho", 7);
STRING_LITERAL(TMP4901, "rawEcho(", 8);
NIM_CONST TY88687 TMP4902 = {((NimStringDesc*) &TMP4663),
((NI) 1133)}
;
STRING_LITERAL(TMP4903, ")", 1);
STRING_LITERAL(TMP4904, "($1.slice($2))", 14);
STRING_LITERAL(TMP4905, "($1.slice($2, ($3)+1).concat(0))", 32);
STRING_LITERAL(TMP4906, "mnewString", 10);
STRING_LITERAL(TMP4907, "mnewString($1)", 14);
STRING_LITERAL(TMP4908, "mnewString(0)", 13);
STRING_LITERAL(TMP4909, "(", 1);
STRING_LITERAL(TMP4910, "$1[$2]", 6);
STRING_LITERAL(TMP4911, "nimParseBiggestFloat", 20);
STRING_LITERAL(TMP4912, "cannot invoke with infix syntax", 31);
STRING_LITERAL(TMP4913, ".", 1);
STRING_LITERAL(TMP4914, "SetConstr", 9);
STRING_LITERAL(TMP4915, "SetConstr(", 10);
STRING_LITERAL(TMP4916, "Field$#: $#", 11);
NIM_CONST TY88687 TMP4917 = {((NimStringDesc*) &TMP4663),
((NI) 1494)}
;
STRING_LITERAL(TMP4918, "$#: $#", 6);
STRING_LITERAL(TMP4919, "$# = $#", 7);
STRING_LITERAL(TMP4920, "(($1)? 1:0)", 11);
STRING_LITERAL(TMP4921, "($1|0)", 6);
STRING_LITERAL(TMP4922, "genAddr: 3", 10);
STRING_LITERAL(TMP4923, "[0]", 3);
STRING_LITERAL(TMP4924, "genAddr: 2", 10);
NIM_CONST TY88687 TMP4925 = {((NimStringDesc*) &TMP4663),
((NI) 886)}
;
STRING_LITERAL(TMP4926, "Field", 5);
STRING_LITERAL(TMP4927, "genFieldPosition", 16);
STRING_LITERAL(TMP4928, "genFieldAddr", 12);
NIM_CONST TY88687 TMP4929 = {((NimStringDesc*) &TMP4663),
((NI) 868)}
;
STRING_LITERAL(TMP4930, "$1.Field$2", 10);
STRING_LITERAL(TMP4931, "genFieldAccess", 14);
STRING_LITERAL(TMP4932, "$1.$2", 5);
NIM_CONST TY88687 TMP4933 = {((NimStringDesc*) &TMP4663),
((NI) 900)}
;
STRING_LITERAL(TMP4934, "chckIndx", 8);
STRING_LITERAL(TMP4935, "chckIndx($1, $2, $3.length)-$2", 30);
STRING_LITERAL(TMP4936, "($1)-$2", 7);
STRING_LITERAL(TMP4937, "expr(nkBracketExpr, ", 20);
STRING_LITERAL(TMP4938, "genAddr: ", 9);
STRING_LITERAL(TMP4939, "($1 = $2, $1[0][$1[1]])", 23);
STRING_LITERAL(TMP4940, "genDeref", 8);
STRING_LITERAL(TMP4941, "genArrayAccess", 14);
STRING_LITERAL(TMP4942, "chckRange", 9);
STRING_LITERAL(TMP4943, "chckRange($1, $2, $3)", 21);
STRING_LITERAL(TMP4944, "chckRangeF", 10);
STRING_LITERAL(TMP4945, "chckRange64", 11);
STRING_LITERAL(TMP4946, "convStrToCStr", 13);
STRING_LITERAL(TMP4947, "toJSStr($1)", 11);
STRING_LITERAL(TMP4948, "convCStrToStr", 13);
STRING_LITERAL(TMP4949, "genBlock", 8);
STRING_LITERAL(TMP4950, "L$1: do {$n", 11);
STRING_LITERAL(TMP4951, "} while(false);$n", 17);
STRING_LITERAL(TMP4952, "$n::L$#::$n", 11);
STRING_LITERAL(TMP4953, "else {$n", 8);
STRING_LITERAL(TMP4954, "else$n", 6);
STRING_LITERAL(TMP4955, "if ($1) {$n", 11);
STRING_LITERAL(TMP4956, "if $# then$n", 12);
STRING_LITERAL(TMP4957, "$1;$n", 5);
STRING_LITERAL(TMP4958, "}$n", 3);
STRING_LITERAL(TMP4959, "end$n", 5);
NIM_CONST TY88687 TMP4960 = {((NimStringDesc*) &TMP4663),
((NI) 480)}
;
STRING_LITERAL(TMP4961, "// line $2 \"$1\"$n", 17);
STRING_LITERAL(TMP4962, "-- line $2 \"$1\"$n", 17);
STRING_LITERAL(TMP4963, "endb", 4);
STRING_LITERAL(TMP4964, "endb($1);$n", 11);
STRING_LITERAL(TMP4965, "F.line = $1;$n", 14);
STRING_LITERAL(TMP4966, "L$1: while (true) {$n", 21);
STRING_LITERAL(TMP4967, "while true do$n", 15);
STRING_LITERAL(TMP4968, "if (!$1) break L$2;$n", 21);
STRING_LITERAL(TMP4969, "if not $1 then goto ::L$2:: end;$n", 34);
STRING_LITERAL(TMP4970, "end ::L$#::$n", 13);
STRING_LITERAL(TMP4971, "for statement not eliminated", 28);
STRING_LITERAL(TMP4972, "switch (toJSStr($1)) {$n", 24);
STRING_LITERAL(TMP4973, "switch ($1) {$n", 15);
STRING_LITERAL(TMP4974, "case $1: ", 9);
STRING_LITERAL(TMP4975, "jsgen.genCaseStmt: 2", 20);
STRING_LITERAL(TMP4976, "$nbreak;$n", 10);
STRING_LITERAL(TMP4977, "default: $n", 11);
STRING_LITERAL(TMP4978, "break;$n", 8);
STRING_LITERAL(TMP4979, "jsgen.genCaseStmt", 17);
STRING_LITERAL(TMP4980, "eqStr", 5);
STRING_LITERAL(TMP4981, "$nelsif ", 8);
STRING_LITERAL(TMP4982, "if ", 3);
STRING_LITERAL(TMP4983, " or ", 4);
STRING_LITERAL(TMP4984, "$1 >= $2 and $1 <= $3", 21);
STRING_LITERAL(TMP4985, "eqStr($1, $2)", 13);
STRING_LITERAL(TMP4986, "$1 == $2", 8);
STRING_LITERAL(TMP4987, " then$n", 7);
STRING_LITERAL(TMP4988, "$nend$n", 7);
STRING_LITERAL(TMP4989, "genReturnStmt", 13);
STRING_LITERAL(TMP4990, "break BeforeRet;$n", 18);
STRING_LITERAL(TMP4991, "goto ::BeforeRet::;$n", 21);
STRING_LITERAL(TMP4992, "no loop to break", 16);
STRING_LITERAL(TMP4993, "break L$1;$n", 12);
STRING_LITERAL(TMP4994, "goto ::L$1::;$n", 15);
STRING_LITERAL(TMP4995, "$1[0][$1[1]]", 12);
STRING_LITERAL(TMP4996, "nimCopy($1, $2, $3);$n", 22);
STRING_LITERAL(TMP4997, "var $1 = $4; $2 = $1[0]; $3 = $1[1];$n", 38);
STRING_LITERAL(TMP4998, "genAsgn", 7);
STRING_LITERAL(TMP4999, "$1 = $2; $3 = $4;$n", 19);
STRING_LITERAL(TMP5000, "jsgen: genAsmOrEmitStmt()", 25);
STRING_LITERAL(TMP5001, "++excHandler;", 13);
STRING_LITERAL(TMP5002, "local $1 = pcall(", 17);
STRING_LITERAL(TMP5003, "framePtr = F;", 13);
STRING_LITERAL(TMP5004, "try {$n", 7);
STRING_LITERAL(TMP5005, "function()$n", 12);
STRING_LITERAL(TMP5006, "} catch (EXC) {$n var prevJSError = lastJSError;$n lastJSError "
"= EXC;$n --excHandler;$n", 87);
STRING_LITERAL(TMP5007, "end)$n", 6);
STRING_LITERAL(TMP5008, "genTryStmt", 10);
STRING_LITERAL(TMP5009, "||", 2);
STRING_LITERAL(TMP5010, "isObj(lastJSError.m_type, $1)", 29);
STRING_LITERAL(TMP5011, "else ", 5);
STRING_LITERAL(TMP5012, "if (lastJSError && ($2)) {$n", 28);
STRING_LITERAL(TMP5013, "if $1.exc and ($2) then$n", 25);
STRING_LITERAL(TMP5014, "reraiseException", 16);
STRING_LITERAL(TMP5015, "else {", 6);
STRING_LITERAL(TMP5016, "reraiseException();", 19);
STRING_LITERAL(TMP5017, "lastJSError = prevJSError;", 26);
STRING_LITERAL(TMP5018, "} finally {", 11);
STRING_LITERAL(TMP5019, "raiseException", 14);
STRING_LITERAL(TMP5020, "raiseException($1, $2);$n", 25);
STRING_LITERAL(TMP5021, "first class iterators not implemented", 37);
STRING_LITERAL(TMP5022, "gen: unknown node type: ", 24);
STRING_LITERAL(TMP5023, "$#;$n", 5);
STRING_LITERAL(TMP5024, "framePtr = framePtr.prev;$n", 27);
STRING_LITERAL(TMP5025, "js", 2);
STRING_LITERAL(TMP5026, "/* Generated by the Nim Compiler v$1 */$n/*   (c) 2015 Andreas "
"Rumpf */$n$nvar framePtr = null;$nvar excHandler = 0;$nvar lastJ"
"SError = null;$n", 143);
STRING_LITERAL(TMP5027, "0.13.0", 6);
Tglobals505018* globals_511962;
extern TNimType NTI261002; /* TPassContext */
TNimType NTI505006; /* TJSGen */
extern TNimType NTI214788; /* PSym */
TNimType NTI505008; /* BModule */
extern Gcheap49818 gch_49859;
TNimType NTI505018; /* TGlobals */
extern TNimType NTI169004; /* Rope */
extern TNimType NTI214792; /* TSymSeq */
extern TNimType NTI211035; /* IntSet */
TNimType NTI505020; /* PGlobals */
extern NI gerrorcounter_183078;
TNimType NTI505024; /* TProc */
extern TNimType NTI214782; /* PNode */
extern TNimType NTI160011; /* TOptions */
extern TNimType NTI130; /* bool */
TNimType NTI505004; /* TTarget */
extern TNimType NTI104; /* int */
TNimType NTI505016; /* TBlock */
TNimType NTI505062; /* seq[TBlock] */
TNimType NTI505022; /* PProc */
extern NimStringDesc* tnl_167618;
extern TNimType NTI214241; /* TTypeKind */
extern TNimType NTI138; /* string */
TNimType NTI506247; /* TMagicFrmt */
TNimType NTI506249; /* TMagicOps */
extern TNimType NTI214020; /* TNodeKind */
extern NimStringDesc* outfile_160127;
N_NIMCALL(void, TMP4634)(void* p, NI op) {
	Tjsgen505006* a;
	a = (Tjsgen505006*)p;
	nimGCvisit((void*)(*a).module, op);
}

static N_INLINE(Cell47505*, usrtocell_51440)(void* usr) {
	Cell47505* result;
	result = 0;
	result = ((Cell47505*) ((NI)((NU64)(((NI) (usr))) - (NU64)(((NI)sizeof(Cell47505))))));
	return result;
}

static N_INLINE(void, rtladdzct_53001)(Cell47505* c) {
	addzct_51417((&gch_49859.zct), c);
}

static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src) {
	{
		Cell47505* c;
		if (!!((src == NIM_NIL))) goto LA3;
		c = usrtocell_51440(src);
		(*c).refcount += ((NI) 8);
	}
	LA3: ;
	{
		Cell47505* c;
		if (!!(((*dest) == NIM_NIL))) goto LA7;
		c = usrtocell_51440((*dest));
		{
			(*c).refcount -= ((NI) 8);
			if (!((NU64)((*c).refcount) < (NU64)(((NI) 8)))) goto LA11;
			rtladdzct_53001(c);
		}
		LA11: ;
	}
	LA7: ;
	(*dest) = src;
}
N_NIMCALL(void, TMP4636)(void* p, NI op) {
	Tglobals505018* a;
	a = (Tglobals505018*)p;
	nimGCvisit((void*)(*a).typeinfo, op);
	nimGCvisit((void*)(*a).code, op);
	nimGCvisit((void*)(*a).forwarded, op);
	nimGCvisit((void*)(*a).generatedsyms.head, op);
	nimGCvisit((void*)(*a).generatedsyms.data, op);
	nimGCvisit((void*)(*a).typeinfogenerated.head, op);
	nimGCvisit((void*)(*a).typeinfogenerated.data, op);
}

static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
	Cell47505* c;
	c = usrtocell_51440(p);
	{
		(*c).refcount -= ((NI) 8);
		if (!((NU64)((*c).refcount) < (NU64)(((NI) 8)))) goto LA3;
		rtladdzct_53001(c);
	}
	LA3: ;
}

N_NIMCALL(Tglobals505018*, newglobals_505069)(void) {
	Tglobals505018* result;
	result = 0;
	result = (Tglobals505018*) newObj((&NTI505020), sizeof(Tglobals505018));
	if ((*result).forwarded) nimGCunrefNoCycle((*result).forwarded);
	(*result).forwarded = (Tsymseq214792*) newSeqRC1((&NTI214792), 0);
	initintset_211885((&(*result).generatedsyms));
	initintset_211885((&(*result).typeinfogenerated));
	return result;
}

N_NIMCALL(Tjsgen505006*, newmodule_511964)(Tsym214822* module) {
	Tjsgen505006* result;
	result = 0;
	result = (Tjsgen505006*) newObj((&NTI505008), sizeof(Tjsgen505006));
	(*result).Sup.Sup.m_type = (&NTI505006);
	asgnRefNoCycle((void**) (&(*result).module), module);
	{
		if (!(globals_511962 == NIM_NIL)) goto LA3;
		asgnRefNoCycle((void**) (&globals_511962), newglobals_505069());
	}
	LA3: ;
	return result;
}

N_NIMCALL(Tpasscontext261002*, myopen_512129)(Tsym214822* s) {
	Tpasscontext261002* result;
	Tjsgen505006* LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = newmodule_511964(s);
	result = &LOC1->Sup;
	return result;
}

N_NIMCALL(Tpasscontext261002*, myopencached_512124)(Tsym214822* s, Trodreader252021* rd) {
	Tpasscontext261002* result;
	result = 0;
	internalerror_187113(((NimStringDesc*) &TMP4637));
	result = NIM_NIL;
	return result;
}

static N_INLINE(NIM_BOOL, skipcodegen_261065)(Tnode214790* n) {
	NIM_BOOL result;
	result = 0;
	result = (((NI) 0) < gerrorcounter_183078);
	return result;
}
N_NIMCALL(void, TMP4644)(void* p, NI op) {
	TY505062* a;
	NI LOC1;
	a = (TY505062*)p;
	LOC1 = 0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	}
}
N_NIMCALL(void, TMP4645)(void* p, NI op) {
	Tproc505024* a;
	a = (Tproc505024*)p;
	nimGCvisit((void*)(*a).procdef, op);
	nimGCvisit((void*)(*a).prc, op);
	nimGCvisit((void*)(*a).locals, op);
	nimGCvisit((void*)(*a).body, op);
	nimGCvisit((void*)(*a).module, op);
	nimGCvisit((void*)(*a).g, op);
	nimGCvisit((void*)(*a).blocks, op);
	nimGCvisit((void*)(*a).up, op);
}

static N_INLINE(NIM_BOOL, canbecycleroot_51458)(Cell47505* c) {
	NIM_BOOL result;
	result = 0;
	result = !((((*(*c).typ).flags &(1U<<((NU)(((NU8) 1))&7U)))!=0));
	return result;
}

static N_INLINE(void, rtladdcycleroot_52220)(Cell47505* c) {
	{
		if (!!((((NI) ((NI)((*c).refcount & ((NI) 3)))) == ((NI) 3)))) goto LA3;
		(*c).refcount = (NI)((NI)((*c).refcount & ((NI) -4)) | ((NI) 3));
		incl_48247((&gch_49859.cycleroots), c);
	}
	LA3: ;
}

static N_INLINE(void, incref_53819)(Cell47505* c) {
	(*c).refcount = (NI)((NU64)((*c).refcount) + (NU64)(((NI) 8)));
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = canbecycleroot_51458(c);
		if (!LOC3) goto LA4;
		rtladdcycleroot_52220(c);
	}
	LA4: ;
}

static N_INLINE(void, decref_53401)(Cell47505* c) {
	{
		(*c).refcount -= ((NI) 8);
		if (!((NU64)((*c).refcount) < (NU64)(((NI) 8)))) goto LA3;
		rtladdzct_53001(c);
	}
	goto LA1;
	LA3: ;
	{
		NIM_BOOL LOC6;
		LOC6 = 0;
		LOC6 = canbecycleroot_51458(c);
		if (!LOC6) goto LA7;
		rtladdcycleroot_52220(c);
	}
	goto LA1;
	LA7: ;
	LA1: ;
}

static N_INLINE(void, asgnRef)(void** dest, void* src) {
	{
		Cell47505* LOC5;
		if (!!((src == NIM_NIL))) goto LA3;
		LOC5 = 0;
		LOC5 = usrtocell_51440(src);
		incref_53819(LOC5);
	}
	LA3: ;
	{
		Cell47505* LOC10;
		if (!!(((*dest) == NIM_NIL))) goto LA8;
		LOC10 = 0;
		LOC10 = usrtocell_51440((*dest));
		decref_53401(LOC10);
	}
	LA8: ;
	(*dest) = src;
}

N_NIMCALL(Tproc505024*, newproc_505201)(Tglobals505018* globals, Tjsgen505006* module, Tnode214790* procdef, NU32 options) {
	Tproc505024* result;
	Tproc505024* LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = (Tproc505024*) newObj((&NTI505022), sizeof(Tproc505024));
	if ((*LOC1).blocks) nimGCunrefNoCycle((*LOC1).blocks);
	(*LOC1).blocks = (TY505062*) newSeqRC1((&NTI505062), 0);
	(*LOC1).options = options;
	asgnRef((void**) (&(*LOC1).module), module);
	asgnRefNoCycle((void**) (&(*LOC1).procdef), procdef);
	asgnRefNoCycle((void**) (&(*LOC1).g), globals);
	result = LOC1;
	{
		if (!!((procdef == NIM_NIL))) goto LA4;
		asgnRefNoCycle((void**) (&(*result).prc), (*(*procdef).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym);
	}
	LA4: ;
	return result;
}

N_NIMCALL(Ropeobj169006*, makejsstring_505278)(NimStringDesc* s) {
	Ropeobj169006* result;
	result = 0;
	{
		if (!s == 0) goto LA3;
		result = rope_169277(((NimStringDesc*) &TMP4647));
	}
	goto LA1;
	LA3: ;
	{
		NimStringDesc* LOC6;
		LOC6 = 0;
		LOC6 = nsuEscape(s, ((NimStringDesc*) &TMP4648), ((NimStringDesc*) &TMP4648));
		result = rope_169277(LOC6);
	}
	LA1: ;
	return result;
}

static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	memcpy(((NCSTRING) ((&(*dest).data[((*dest).Sup.len)- 0]))), ((NCSTRING) ((*src).data)), (NI)((*src).Sup.len + ((NI) 1)));
	(*dest).Sup.len += (*src).Sup.len;
}

N_NIMCALL(NU8, maptype_505241)(Ttype214828* typ) {
	NU8 result;
	Ttype214828* t;
	result = 0;
	t = skiptypes_218113(typ, IL64(211106232576256));
	switch ((*t).kind) {
	case ((NU8) 23):
	case ((NU8) 22):
	case ((NU8) 21):
	{
		{
			Ttype214828* LOC4;
			Ttype214828* LOC5;
			LOC4 = 0;
			LOC4 = lastson_217377(t);
			LOC5 = 0;
			LOC5 = skiptypes_218113(LOC4, IL64(211106232576256));
			if (!((IL64(316659484000272) &((NU64)1<<((NU)((*LOC5).kind)&63U)))!=0)) goto LA6;
			result = ((NU8) 7);
		}
		goto LA2;
		LA6: ;
		{
			result = ((NU8) 8);
		}
		LA2: ;
	}
	break;
	case ((NU8) 26):
	{
		result = ((NU8) 8);
	}
	break;
	case ((NU8) 20):
	case ((NU8) 13):
	case ((NU8) 15):
	case ((NU8) 46):
	case ((NU8) 47):
	case ((NU8) 49):
	case ((NU8) 50):
	{
		result = maptype_505241((*t).sons->data[((NI) 0)]);
	}
	break;
	case ((NU8) 31) ... ((NU8) 35):
	case ((NU8) 40) ... ((NU8) 44):
	case ((NU8) 14):
	case ((NU8) 2):
	{
		result = ((NU8) 4);
	}
	break;
	case ((NU8) 1):
	{
		result = ((NU8) 3);
	}
	break;
	case ((NU8) 36) ... ((NU8) 39):
	{
		result = ((NU8) 5);
	}
	break;
	case ((NU8) 19):
	{
		result = ((NU8) 7);
	}
	break;
	case ((NU8) 28):
	case ((NU8) 24):
	{
		result = ((NU8) 4);
	}
	break;
	case ((NU8) 17):
	case ((NU8) 16):
	case ((NU8) 4):
	case ((NU8) 18):
	case ((NU8) 27):
	case ((NU8) 45):
	case ((NU8) 48):
	{
		result = ((NU8) 7);
	}
	break;
	case ((NU8) 5):
	{
		result = ((NU8) 1);
	}
	break;
	case ((NU8) 11):
	case ((NU8) 12):
	case ((NU8) 10):
	case ((NU8) 9):
	case ((NU8) 0):
	case ((NU8) 60):
	case ((NU8) 30):
	case ((NU8) 3):
	case ((NU8) 61):
	case ((NU8) 6):
	case ((NU8) 7):
	case ((NU8) 59):
	case ((NU8) 8):
	case ((NU8) 51):
	case ((NU8) 54):
	case ((NU8) 52):
	case ((NU8) 53):
	case ((NU8) 55):
	case ((NU8) 56):
	case ((NU8) 57):
	case ((NU8) 58):
	{
		result = ((NU8) 0);
	}
	break;
	case ((NU8) 25):
	{
		result = ((NU8) 2);
	}
	break;
	case ((NU8) 29):
	{
		result = ((NU8) 6);
	}
	break;
	}
	return result;
}

N_NIMCALL(NIM_BOOL, isindirect_508937)(Tsym214822* v) {
	NIM_BOOL result;
	NIM_BOOL LOC1;
	NIM_BOOL LOC2;
	result = 0;
	LOC1 = 0;
	LOC2 = 0;
	LOC2 = !(((32776 & (*v).flags) == 0));
	if (!(LOC2)) goto LA3;
	LOC2 = ((224 & (*v).flags) == 0);
	LA3: ;
	LOC1 = LOC2;
	if (!(LOC1)) goto LA4;
	LOC1 = !(((63008 &(1U<<((NU)((*v).kind)&31U)))!=0));
	LA4: ;
	result = LOC1;
	return result;
}

N_NIMCALL(Ropeobj169006*, manglename_505256)(Tsym214822* s) {
	Ropeobj169006* result;
	result = 0;
	result = (*s).loc.r;
	{
		NimStringDesc* LOC5;
		Ropeobj169006* LOC6;
		if (!(result == NIM_NIL)) goto LA3;
		LOC5 = 0;
		LOC5 = mangle_468847((*(*s).name).s);
		result = rope_169277(LOC5);
		add_169487(&result, ((NimStringDesc*) &TMP4656));
		LOC6 = 0;
		LOC6 = rope_169401(((NI64) ((*s).Sup.id)));
		add_169482(&result, LOC6);
		asgnRefNoCycle((void**) (&(*s).loc.r), result);
	}
	LA3: ;
	return result;
}

N_NIMCALL(Ropeobj169006*, puttoseq_510141)(NimStringDesc* s, NIM_BOOL indirect) {
	Ropeobj169006* result;
	result = 0;
	result = rope_169277(s);
	{
		TY169507 LOC5;
		if (!indirect) goto LA3;
		memset((void*)LOC5, 0, sizeof(LOC5));
		LOC5[0] = result;
		result = HEX25_169905(((NimStringDesc*) &TMP4657), LOC5, 1);
	}
	LA3: ;
	return result;
}

static N_INLINE(NIM_BOOL, iscompiletimeonly_248906)(Ttype214828* t) {
	NIM_BOOL result;
	result = 0;
	result = ((IL64(576460752303423744) &((NU64)1<<((NU)((*t).kind)&63U)))!=0);
	return result;
}

N_NIMCALL(Ropeobj169006*, generateheader_508200)(Tproc505024* p, Ttype214828* typ) {
	Ropeobj169006* result;
	result = 0;
	result = NIM_NIL;
	{
		NI i_508216;
		NI HEX3Atmp_508435;
		NI LOC2;
		NI res_508438;
		i_508216 = 0;
		HEX3Atmp_508435 = 0;
		LOC2 = 0;
		LOC2 = sonslen_217351((*typ).n);
		HEX3Atmp_508435 = (NI)(LOC2 - ((NI) 1));
		res_508438 = ((NI) 1);
		{
			while (1) {
				if (!(res_508438 <= HEX3Atmp_508435)) goto LA4;
				i_508216 = res_508438;
				{
					Tsym214822* param;
					Ropeobj169006* name;
					param = (*(*(*typ).n).kindU.S6.sons->data[i_508216]).kindU.S4.sym;
					{
						NIM_BOOL LOC8;
						LOC8 = 0;
						LOC8 = iscompiletimeonly_248906((*param).typ);
						if (!LOC8) goto LA9;
						goto LA5;
					}
					LA9: ;
					{
						if (!!((result == NIM_NIL))) goto LA13;
						add_169487(&result, ((NimStringDesc*) &TMP4664));
					}
					LA13: ;
					name = manglename_505256(param);
					add_169482(&result, name);
					{
						NU8 LOC17;
						LOC17 = 0;
						LOC17 = maptype_505241((*param).typ);
						if (!(LOC17 == ((NU8) 8))) goto LA18;
						add_169487(&result, ((NimStringDesc*) &TMP4664));
						add_169482(&result, name);
						add_169487(&result, ((NimStringDesc*) &TMP4653));
					}
					LA18: ;
				} LA5: ;
				res_508438 += ((NI) 1);
			} LA4: ;
		}
	}
	return result;
}

static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c) {
	(*dest).data[((*dest).Sup.len)- 0] = c;
	(*dest).data[((NI)((*dest).Sup.len + ((NI) 1)))- 0] = 0;
	(*dest).Sup.len += ((NI) 1);
}

N_NIMCALL(Ropeobj169006*, genprocbody_511526)(Tproc505024* p, Tsym214822* prc) {
	Ropeobj169006* result;
	result = 0;
	{
		NimStringDesc* LOC5;
		NimStringDesc* LOC6;
		TY501232 LOC12;
		NimStringDesc* LOC13;
		NimStringDesc* LOC14;
		if (!(((*prc).options &(1U<<((NU)(((NU8) 15))&31U)))!=0)) goto LA3;
		LOC5 = 0;
		LOC6 = 0;
		{
			if (!((*p).target == ((NU8) 0))) goto LA9;
			LOC6 = copyString(((NimStringDesc*) &TMP4671));
		}
		goto LA7;
		LA9: ;
		{
			LOC6 = copyString(((NimStringDesc*) &TMP4672));
		}
		LA7: ;
		LOC5 = rawNewString(LOC6->Sup.len + 15);
appendString(LOC5, LOC6);
appendString(LOC5, ((NimStringDesc*) &TMP4673));
		memset((void*)LOC12, 0, sizeof(LOC12));
		LOC13 = 0;
		LOC13 = rawNewString((*(*(*prc).owner).name).s->Sup.len + (*(*prc).name).s->Sup.len + 1);
appendString(LOC13, (*(*(*prc).owner).name).s);
appendChar(LOC13, 46);
appendString(LOC13, (*(*prc).name).s);
		LOC12[0] = makejsstring_505278(LOC13);
		LOC14 = 0;
		LOC14 = tofilename_183262((*prc).info.fileindex);
		LOC12[1] = makejsstring_505278(LOC14);
		result = HEX25_169905(LOC5, LOC12, 2);
	}
	goto LA1;
	LA3: ;
	{
		result = NIM_NIL;
	}
	LA1: ;
	{
		NimStringDesc* LOC20;
		TY169507 LOC26;
		if (!(*p).beforeretneeded) goto LA18;
		LOC20 = 0;
		{
			if (!((*p).target == ((NU8) 0))) goto LA23;
			LOC20 = copyString(((NimStringDesc*) &TMP4674));
		}
		goto LA21;
		LA23: ;
		{
			LOC20 = copyString(((NimStringDesc*) &TMP4675));
		}
		LA21: ;
		memset((void*)LOC26, 0, sizeof(LOC26));
		LOC26[0] = (*p).body;
		addf_170205(&result, LOC20, LOC26, 1);
	}
	goto LA16;
	LA18: ;
	{
		add_169482(&result, (*p).body);
	}
	LA16: ;
	{
		NIM_BOOL LOC30;
		TY169507 LOC34;
		LOC30 = 0;
		LOC30 = ((*(*prc).typ).callconv == ((NU8) 4));
		if (!(LOC30)) goto LA31;
		LOC30 = ((*p).target == ((NU8) 0));
		LA31: ;
		if (!LOC30) goto LA32;
		memset((void*)LOC34, 0, sizeof(LOC34));
		LOC34[0] = result;
		result = HEX25_169905(((NimStringDesc*) &TMP4676), LOC34, 1);
	}
	LA32: ;
	{
		NimStringDesc* LOC39;
		if (!(((*prc).options &(1U<<((NU)(((NU8) 15))&31U)))!=0)) goto LA37;
		LOC39 = 0;
		LOC39 = rawNewString(tnl_167618->Sup.len + 25);
appendString(LOC39, ((NimStringDesc*) &TMP4677));
appendString(LOC39, tnl_167618);
		add_169487(&result, LOC39);
	}
	LA37: ;
	return result;
}

N_NIMCALL(Ropeobj169006*, genproc_505714)(Tproc505024* oldproc, Tsym214822* prc) {
	Ropeobj169006* result;
	Tsym214822* resultsym;
	Ropeobj169006* name;
	Ropeobj169006* returnstmt;
	Ropeobj169006* resultasgn;
	Ropeobj169006* header;
	Tcompres505014 a;
	Tproc505024* p;
	Tnode214790* LOC23;
	NimStringDesc* LOC24;
	TY476247 LOC30;
	result = 0;
	resultsym = 0;
	name = 0;
	returnstmt = 0;
	resultasgn = 0;
	header = 0;
	memset((void*)(&a), 0, sizeof(a));
	p = newproc_505201((*oldproc).g, (*oldproc).module, (*prc).ast, (*prc).options);
	(*p).target = (*oldproc).target;
	asgnRef((void**) (&(*p).up), oldproc);
	returnstmt = NIM_NIL;
	resultasgn = NIM_NIL;
	name = manglename_505256(prc);
	header = generateheader_508200(p, (*prc).typ);
	{
		NIM_BOOL LOC3;
		NimStringDesc* LOC7;
		TY501232 LOC13;
		NIM_BOOL LOC14;
		LOC3 = 0;
		LOC3 = !(((*(*prc).typ).sons->data[((NI) 0)] == NIM_NIL));
		if (!(LOC3)) goto LA4;
		LOC3 = !((((*prc).flags &(1U<<((NU)(((NU8) 9))&31U)))!=0));
		LA4: ;
		if (!LOC3) goto LA5;
		resultsym = (*(*(*prc).ast).kindU.S6.sons->data[((NI) 7)]).kindU.S4.sym;
		LOC7 = 0;
		{
			if (!((*p).target == ((NU8) 0))) goto LA10;
			LOC7 = copyString(((NimStringDesc*) &TMP4665));
		}
		goto LA8;
		LA10: ;
		{
			LOC7 = copyString(((NimStringDesc*) &TMP4666));
		}
		LA8: ;
		memset((void*)LOC13, 0, sizeof(LOC13));
		LOC13[0] = manglename_505256(resultsym);
		LOC14 = 0;
		LOC14 = isindirect_508937(resultsym);
		LOC13[1] = createvar_510148(p, (*resultsym).typ, LOC14);
		resultasgn = HEX25_169905(LOC7, LOC13, 2);
		gen_505704(p, (*(*prc).ast).kindU.S6.sons->data[((NI) 7)], (&a));
		{
			NU8 LOC17;
			TY501232 LOC20;
			LOC17 = 0;
			LOC17 = maptype_505241((*resultsym).typ);
			if (!(LOC17 == ((NU8) 8))) goto LA18;
			memset((void*)LOC20, 0, sizeof(LOC20));
			LOC20[0] = a.address;
			LOC20[1] = a.res;
			returnstmt = HEX25_169905(((NimStringDesc*) &TMP4667), LOC20, 2);
		}
		goto LA15;
		LA18: ;
		{
			TY169507 LOC22;
			memset((void*)LOC22, 0, sizeof(LOC22));
			LOC22[0] = a.res;
			returnstmt = HEX25_169905(((NimStringDesc*) &TMP4668), LOC22, 1);
		}
		LA15: ;
	}
	LA5: ;
	LOC23 = 0;
	LOC23 = getbody_254827(prc);
	genstmt_505710(p, LOC23);
	LOC24 = 0;
	{
		if (!((*p).target == ((NU8) 0))) goto LA27;
		LOC24 = copyString(((NimStringDesc*) &TMP4669));
	}
	goto LA25;
	LA27: ;
	{
		LOC24 = copyString(((NimStringDesc*) &TMP4670));
	}
	LA25: ;
	memset((void*)LOC30, 0, sizeof(LOC30));
	LOC30[0] = name;
	LOC30[1] = header;
	LOC30[2] = (*p).locals;
	LOC30[3] = resultasgn;
	LOC30[4] = genprocbody_511526(p, prc);
	LOC30[5] = returnstmt;
	result = HEX25_169905(LOC24, LOC30, 6);
	return result;
}

N_NIMCALL(void, usemagic_505722)(Tproc505024* p, NimStringDesc* name) {
	Tsym214822* s;
{	{
		if (!((name ? name->Sup.len : 0) == ((NI) 0))) goto LA3;
		goto BeforeRet;
	}
	LA3: ;
	s = getcompilerproc_258748(name);
	{
		if (!!((s == NIM_NIL))) goto LA7;
		{
			NimStringDesc* LOC13;
			if (!!(((45056 &(1U<<((NU)((*s).kind)&31U)))!=0))) goto LA11;
			LOC13 = 0;
			LOC13 = HEX24_187183(TMP4662);
			internalerror_187113(LOC13);
		}
		LA11: ;
		{
			NIM_BOOL LOC16;
			Ropeobj169006* LOC19;
			LOC16 = 0;
			LOC16 = containsorincl_211862((&(*(*p).g).generatedsyms), (*s).Sup.id);
			if (!!(LOC16)) goto LA17;
			LOC19 = 0;
			LOC19 = genproc_505714(p, s);
			add_169482(&(*(*p).g).code, LOC19);
		}
		LA17: ;
	}
	goto LA5;
	LA7: ;
	{
		{
			if (!!(((*p).prc == NIM_NIL))) goto LA23;
			globalerror_187071((*(*p).prc).info, ((NU16) 68), name);
		}
		goto LA21;
		LA23: ;
		{
			rawmessage_185612(((NU16) 68), name);
		}
		LA21: ;
	}
	LA5: ;
	}BeforeRet: ;
}

N_NIMCALL(void, genenuminfo_505549)(Tproc505024* p, Ttype214828* typ, Ropeobj169006* name) {
	NI length;
	Ropeobj169006* s;
	Ropeobj169006* n;
	TY474656 LOC19;
	TY501232 LOC20;
	TY501232 LOC21;
	length = sonslen_217351((*typ).n);
	s = NIM_NIL;
	{
		NI i_505567;
		NI HEX3Atmp_505638;
		NI res_505641;
		i_505567 = 0;
		HEX3Atmp_505638 = 0;
		HEX3Atmp_505638 = (NI)(length - ((NI) 1));
		res_505641 = ((NI) 0);
		{
			while (1) {
				Tsym214822* field;
				NimStringDesc* extname;
				TY474656 LOC18;
				if (!(res_505641 <= HEX3Atmp_505638)) goto LA3;
				i_505567 = res_505641;
				{
					if (!!(((*(*(*typ).n).kindU.S6.sons->data[i_505567]).kind == ((NU8) 3)))) goto LA6;
					internalerror_187100((*(*typ).n).info, ((NimStringDesc*) &TMP4684));
				}
				LA6: ;
				field = (*(*(*typ).n).kindU.S6.sons->data[i_505567]).kindU.S4.sym;
				{
					NimStringDesc* LOC12;
					if (!(((NI) 0) < i_505567)) goto LA10;
					LOC12 = 0;
					LOC12 = rawNewString(tnl_167618->Sup.len + 2);
appendString(LOC12, ((NimStringDesc*) &TMP4664));
appendString(LOC12, tnl_167618);
					add_169487(&s, LOC12);
				}
				LA10: ;
				{
					if (!((*field).ast == NIM_NIL)) goto LA15;
					extname = (*(*field).name).s;
				}
				goto LA13;
				LA15: ;
				{
					extname = (*(*field).ast).kindU.S3.strval;
				}
				LA13: ;
				memset((void*)LOC18, 0, sizeof(LOC18));
				LOC18[0] = rope_169401(((NI64) ((*field).position)));
				LOC18[1] = name;
				LOC18[2] = makejsstring_505278(extname);
				addf_170205(&s, ((NimStringDesc*) &TMP4685), LOC18, 3);
				res_505641 += ((NI) 1);
			} LA3: ;
		}
	}
	memset((void*)LOC19, 0, sizeof(LOC19));
	LOC19[0] = rope_169401(((NI64) ((*typ).Sup.id)));
	LOC19[1] = rope_169401(((NI64) (length)));
	LOC19[2] = s;
	n = HEX25_169905(((NimStringDesc*) &TMP4686), LOC19, 3);
	memset((void*)LOC20, 0, sizeof(LOC20));
	LOC20[0] = name;
	LOC20[1] = rope_169401(((NI64) ((*typ).kind)));
	s = HEX25_169905(((NimStringDesc*) &TMP4687), LOC20, 2);
	prepend_169893(&(*(*p).g).typeinfo, s);
	add_169482(&(*(*p).g).typeinfo, n);
	memset((void*)LOC21, 0, sizeof(LOC21));
	LOC21[0] = name;
	LOC21[1] = rope_169401(((NI64) ((*typ).Sup.id)));
	addf_170205(&(*(*p).g).typeinfo, ((NimStringDesc*) &TMP4688), LOC21, 2);
	{
		TY501232 LOC26;
		if (!!(((*typ).sons->data[((NI) 0)] == NIM_NIL))) goto LA24;
		memset((void*)LOC26, 0, sizeof(LOC26));
		LOC26[0] = name;
		LOC26[1] = gentypeinfo_505282(p, (*typ).sons->data[((NI) 0)]);
		addf_170205(&(*(*p).g).typeinfo, ((NimStringDesc*) &TMP4683), LOC26, 2);
	}
	LA24: ;
}

N_NIMCALL(Ropeobj169006*, genobjectfields_505286)(Tproc505024* p, Ttype214828* typ, Tnode214790* n) {
	Ropeobj169006* result;
	Ropeobj169006* s;
	Ropeobj169006* u;
	NI length;
	Tsym214822* field;
	Tnode214790* b;
	result = 0;
	s = 0;
	u = 0;
	length = 0;
	field = 0;
	b = 0;
	result = NIM_NIL;
	switch ((*n).kind) {
	case ((NU8) 138):
	{
		length = sonslen_217351(n);
		{
			if (!(length == ((NI) 1))) goto LA4;
			result = genobjectfields_505286(p, typ, (*n).kindU.S6.sons->data[((NI) 0)]);
		}
		goto LA2;
		LA4: ;
		{
			TY501232 LOC16;
			s = NIM_NIL;
			{
				NI i_505309;
				NI HEX3Atmp_505417;
				NI res_505420;
				i_505309 = 0;
				HEX3Atmp_505417 = 0;
				HEX3Atmp_505417 = (NI)(length - ((NI) 1));
				res_505420 = ((NI) 0);
				{
					while (1) {
						Ropeobj169006* LOC15;
						if (!(res_505420 <= HEX3Atmp_505417)) goto LA9;
						i_505309 = res_505420;
						{
							NimStringDesc* LOC14;
							if (!(((NI) 0) < i_505309)) goto LA12;
							LOC14 = 0;
							LOC14 = rawNewString(tnl_167618->Sup.len + 2);
appendString(LOC14, ((NimStringDesc*) &TMP4664));
appendString(LOC14, tnl_167618);
							add_169487(&s, LOC14);
						}
						LA12: ;
						LOC15 = 0;
						LOC15 = genobjectfields_505286(p, typ, (*n).kindU.S6.sons->data[i_505309]);
						add_169482(&s, LOC15);
						res_505420 += ((NI) 1);
					} LA9: ;
				}
			}
			memset((void*)LOC16, 0, sizeof(LOC16));
			LOC16[0] = rope_169401(((NI64) (length)));
			LOC16[1] = s;
			result = HEX25_169905(((NimStringDesc*) &TMP4690), LOC16, 2);
		}
		LA2: ;
	}
	break;
	case ((NU8) 3):
	{
		TY474656 LOC18;
		field = (*n).kindU.S4.sym;
		s = gentypeinfo_505282(p, (*field).typ);
		memset((void*)LOC18, 0, sizeof(LOC18));
		LOC18[0] = manglename_505256(field);
		LOC18[1] = s;
		LOC18[2] = makejsstring_505278((*(*field).name).s);
		result = HEX25_169905(((NimStringDesc*) &TMP4691), LOC18, 3);
	}
	break;
	case ((NU8) 139):
	{
		TY475874 LOC61;
		NI64 LOC62;
		length = sonslen_217351(n);
		{
			if (!!(((*(*n).kindU.S6.sons->data[((NI) 0)]).kind == ((NU8) 3)))) goto LA22;
			internalerror_187100((*n).info, ((NimStringDesc*) &TMP4692));
		}
		LA22: ;
		field = (*(*n).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym;
		s = gentypeinfo_505282(p, (*field).typ);
		{
			NI i_505344;
			NI HEX3Atmp_505433;
			NI res_505436;
			i_505344 = 0;
			HEX3Atmp_505433 = 0;
			HEX3Atmp_505433 = (NI)(length - ((NI) 1));
			res_505436 = ((NI) 1);
			{
				while (1) {
					TY501232 LOC59;
					Tnode214790* LOC60;
					if (!(res_505436 <= HEX3Atmp_505433)) goto LA26;
					i_505344 = res_505436;
					b = (*n).kindU.S6.sons->data[i_505344];
					u = NIM_NIL;
					switch ((*b).kind) {
					case ((NU8) 85):
					{
						{
							NI LOC30;
							LOC30 = 0;
							LOC30 = sonslen_217351(b);
							if (!(LOC30 < ((NI) 2))) goto LA31;
							internalerror_187100((*b).info, ((NimStringDesc*) &TMP4693));
						}
						LA31: ;
						{
							NI j_505357;
							NI HEX3Atmp_505426;
							NI LOC34;
							NI res_505429;
							j_505357 = 0;
							HEX3Atmp_505426 = 0;
							LOC34 = 0;
							LOC34 = sonslen_217351(b);
							HEX3Atmp_505426 = (NI)(LOC34 - ((NI) 2));
							res_505429 = ((NI) 0);
							{
								while (1) {
									if (!(res_505429 <= HEX3Atmp_505426)) goto LA36;
									j_505357 = res_505429;
									{
										if (!!((u == NIM_NIL))) goto LA39;
										add_169487(&u, ((NimStringDesc*) &TMP4664));
									}
									LA39: ;
									{
										TY501232 LOC45;
										NI64 LOC46;
										NI64 LOC47;
										if (!((*(*b).kindU.S6.sons->data[j_505357]).kind == ((NU8) 44))) goto LA43;
										memset((void*)LOC45, 0, sizeof(LOC45));
										LOC46 = 0;
										LOC46 = getordvalue_240118((*(*b).kindU.S6.sons->data[j_505357]).kindU.S6.sons->data[((NI) 0)]);
										LOC45[0] = rope_169401(LOC46);
										LOC47 = 0;
										LOC47 = getordvalue_240118((*(*b).kindU.S6.sons->data[j_505357]).kindU.S6.sons->data[((NI) 1)]);
										LOC45[1] = rope_169401(LOC47);
										addf_170205(&u, ((NimStringDesc*) &TMP4694), LOC45, 2);
									}
									goto LA41;
									LA43: ;
									{
										NI64 LOC49;
										Ropeobj169006* LOC50;
										LOC49 = 0;
										LOC49 = getordvalue_240118((*b).kindU.S6.sons->data[j_505357]);
										LOC50 = 0;
										LOC50 = rope_169401(LOC49);
										add_169482(&u, LOC50);
									}
									LA41: ;
									res_505429 += ((NI) 1);
								} LA36: ;
							}
						}
					}
					break;
					case ((NU8) 88):
					{
						NI64 LOC52;
						LOC52 = 0;
						LOC52 = lengthord_240007((*field).typ);
						u = rope_169401(LOC52);
					}
					break;
					default:
					{
						internalerror_187100((*n).info, ((NimStringDesc*) &TMP4695));
					}
					break;
					}
					{
						NimStringDesc* LOC58;
						if (!!((result == NIM_NIL))) goto LA56;
						LOC58 = 0;
						LOC58 = rawNewString(tnl_167618->Sup.len + 2);
appendString(LOC58, ((NimStringDesc*) &TMP4664));
appendString(LOC58, tnl_167618);
						add_169487(&result, LOC58);
					}
					LA56: ;
					memset((void*)LOC59, 0, sizeof(LOC59));
					LOC59[0] = u;
					LOC60 = 0;
					LOC60 = lastson_217364(b);
					LOC59[1] = genobjectfields_505286(p, typ, LOC60);
					addf_170205(&result, ((NimStringDesc*) &TMP4696), LOC59, 2);
					res_505436 += ((NI) 1);
				} LA26: ;
			}
		}
		memset((void*)LOC61, 0, sizeof(LOC61));
		LOC61[0] = manglename_505256(field);
		LOC61[1] = s;
		LOC62 = 0;
		LOC62 = lengthord_240007((*field).typ);
		LOC61[2] = rope_169401(LOC62);
		LOC61[3] = makejsstring_505278((*(*field).name).s);
		LOC61[4] = result;
		result = HEX25_169905(((NimStringDesc*) &TMP4697), LOC61, 5);
	}
	break;
	default:
	{
		internalerror_187100((*n).info, ((NimStringDesc*) &TMP4692));
	}
	break;
	}
	return result;
}

N_NIMCALL(void, genobjectinfo_505440)(Tproc505024* p, Ttype214828* typ, Ropeobj169006* name) {
	Ropeobj169006* s;
	TY501232 LOC1;
	TY501232 LOC2;
	TY501232 LOC3;
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = name;
	LOC1[1] = rope_169401(((NI64) ((*typ).kind)));
	s = HEX25_169905(((NimStringDesc*) &TMP4687), LOC1, 2);
	prepend_169893(&(*(*p).g).typeinfo, s);
	memset((void*)LOC2, 0, sizeof(LOC2));
	LOC2[0] = rope_169401(((NI64) ((*typ).Sup.id)));
	LOC2[1] = genobjectfields_505286(p, typ, (*typ).n);
	addf_170205(&(*(*p).g).typeinfo, ((NimStringDesc*) &TMP4689), LOC2, 2);
	memset((void*)LOC3, 0, sizeof(LOC3));
	LOC3[0] = name;
	LOC3[1] = rope_169401(((NI64) ((*typ).Sup.id)));
	addf_170205(&(*(*p).g).typeinfo, ((NimStringDesc*) &TMP4688), LOC3, 2);
	{
		NIM_BOOL LOC6;
		TY501232 LOC10;
		LOC6 = 0;
		LOC6 = ((*typ).kind == ((NU8) 17));
		if (!(LOC6)) goto LA7;
		LOC6 = !(((*typ).sons->data[((NI) 0)] == NIM_NIL));
		LA7: ;
		if (!LOC6) goto LA8;
		memset((void*)LOC10, 0, sizeof(LOC10));
		LOC10[0] = name;
		LOC10[1] = gentypeinfo_505282(p, (*typ).sons->data[((NI) 0)]);
		addf_170205(&(*(*p).g).typeinfo, ((NimStringDesc*) &TMP4683), LOC10, 2);
	}
	LA8: ;
}

N_NIMCALL(Ropeobj169006*, gentuplefields_505487)(Tproc505024* p, Ttype214828* typ) {
	Ropeobj169006* result;
	Ropeobj169006* s;
	TY501232 LOC11;
	NI LOC12;
	result = 0;
	s = NIM_NIL;
	{
		NI i_505510;
		NI HEX3Atmp_505519;
		NI LOC2;
		NI res_505522;
		i_505510 = 0;
		HEX3Atmp_505519 = 0;
		LOC2 = 0;
		LOC2 = len_217339(typ);
		HEX3Atmp_505519 = (LOC2 - 1);
		res_505522 = ((NI) 0);
		{
			while (1) {
				TY501232 LOC10;
				if (!(res_505522 <= HEX3Atmp_505519)) goto LA4;
				i_505510 = res_505522;
				{
					NimStringDesc* LOC9;
					if (!(((NI) 0) < i_505510)) goto LA7;
					LOC9 = 0;
					LOC9 = rawNewString(tnl_167618->Sup.len + 2);
appendString(LOC9, ((NimStringDesc*) &TMP4664));
appendString(LOC9, tnl_167618);
					add_169487(&s, LOC9);
				}
				LA7: ;
				memset((void*)LOC10, 0, sizeof(LOC10));
				LOC10[0] = rope_169401(((NI64) (i_505510)));
				LOC10[1] = gentypeinfo_505282(p, (*typ).sons->data[i_505510]);
				addf_170205(&s, ((NimStringDesc*) &TMP4698), LOC10, 2);
				res_505522 += ((NI) 1);
			} LA4: ;
		}
	}
	memset((void*)LOC11, 0, sizeof(LOC11));
	LOC12 = 0;
	LOC12 = len_217339(typ);
	LOC11[0] = rope_169401(((NI64) (LOC12)));
	LOC11[1] = s;
	result = HEX25_169905(((NimStringDesc*) &TMP4690), LOC11, 2);
	return result;
}

N_NIMCALL(void, gentupleinfo_505526)(Tproc505024* p, Ttype214828* typ, Ropeobj169006* name) {
	Ropeobj169006* s;
	TY501232 LOC1;
	TY501232 LOC2;
	TY501232 LOC3;
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = name;
	LOC1[1] = rope_169401(((NI64) ((*typ).kind)));
	s = HEX25_169905(((NimStringDesc*) &TMP4687), LOC1, 2);
	prepend_169893(&(*(*p).g).typeinfo, s);
	memset((void*)LOC2, 0, sizeof(LOC2));
	LOC2[0] = rope_169401(((NI64) ((*typ).Sup.id)));
	LOC2[1] = gentuplefields_505487(p, typ);
	addf_170205(&(*(*p).g).typeinfo, ((NimStringDesc*) &TMP4689), LOC2, 2);
	memset((void*)LOC3, 0, sizeof(LOC3));
	LOC3[0] = name;
	LOC3[1] = rope_169401(((NI64) ((*typ).Sup.id)));
	addf_170205(&(*(*p).g).typeinfo, ((NimStringDesc*) &TMP4688), LOC3, 2);
}

N_NIMCALL(Ropeobj169006*, gentypeinfo_505282)(Tproc505024* p, Ttype214828* typ) {
	Ropeobj169006* result;
	Ttype214828* t;
	TY169507 LOC1;
{	result = 0;
	t = skiptypes_218113(typ, 10240);
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = rope_169401(((NI64) ((*t).Sup.id)));
	result = HEX25_169905(((NimStringDesc*) &TMP4681), LOC1, 1);
	{
		NIM_BOOL LOC4;
		LOC4 = 0;
		LOC4 = containsorincl_211862((&(*(*p).g).typeinfogenerated), (*t).Sup.id);
		if (!LOC4) goto LA5;
		goto BeforeRet;
	}
	LA5: ;
	switch ((*t).kind) {
	case ((NU8) 13):
	{
		result = gentypeinfo_505282(p, (*t).sons->data[((NI) 0)]);
	}
	break;
	case ((NU8) 26):
	case ((NU8) 25):
	case ((NU8) 1):
	case ((NU8) 2):
	case ((NU8) 29):
	case ((NU8) 28):
	case ((NU8) 31) ... ((NU8) 44):
	{
		Ropeobj169006* s;
		TY501232 LOC9;
		memset((void*)LOC9, 0, sizeof(LOC9));
		LOC9[0] = result;
		LOC9[1] = rope_169401(((NI64) ((*t).kind)));
		s = HEX25_169905(((NimStringDesc*) &TMP4682), LOC9, 2);
		prepend_169893(&(*(*p).g).typeinfo, s);
	}
	break;
	case ((NU8) 23):
	case ((NU8) 22):
	case ((NU8) 21):
	case ((NU8) 24):
	case ((NU8) 20):
	case ((NU8) 19):
	{
		Ropeobj169006* s;
		TY501232 LOC11;
		TY501232 LOC12;
		Ttype214828* LOC13;
		memset((void*)LOC11, 0, sizeof(LOC11));
		LOC11[0] = result;
		LOC11[1] = rope_169401(((NI64) ((*t).kind)));
		s = HEX25_169905(((NimStringDesc*) &TMP4682), LOC11, 2);
		prepend_169893(&(*(*p).g).typeinfo, s);
		memset((void*)LOC12, 0, sizeof(LOC12));
		LOC12[0] = result;
		LOC13 = 0;
		LOC13 = lastson_217377(t);
		LOC12[1] = gentypeinfo_505282(p, LOC13);
		addf_170205(&(*(*p).g).typeinfo, ((NimStringDesc*) &TMP4683), LOC12, 2);
	}
	break;
	case ((NU8) 4):
	case ((NU8) 16):
	{
		Ropeobj169006* s;
		TY501232 LOC15;
		TY501232 LOC16;
		memset((void*)LOC15, 0, sizeof(LOC15));
		LOC15[0] = result;
		LOC15[1] = rope_169401(((NI64) ((*t).kind)));
		s = HEX25_169905(((NimStringDesc*) &TMP4682), LOC15, 2);
		prepend_169893(&(*(*p).g).typeinfo, s);
		memset((void*)LOC16, 0, sizeof(LOC16));
		LOC16[0] = result;
		LOC16[1] = gentypeinfo_505282(p, (*t).sons->data[((NI) 1)]);
		addf_170205(&(*(*p).g).typeinfo, ((NimStringDesc*) &TMP4683), LOC16, 2);
	}
	break;
	case ((NU8) 14):
	{
		genenuminfo_505549(p, t, result);
	}
	break;
	case ((NU8) 17):
	{
		genobjectinfo_505440(p, t, result);
	}
	break;
	case ((NU8) 18):
	{
		gentupleinfo_505526(p, t, result);
	}
	break;
	default:
	{
		NimStringDesc* LOC21;
		LOC21 = 0;
		LOC21 = rawNewString(reprEnum((*t).kind, (&NTI214241))->Sup.len + 13);
appendString(LOC21, ((NimStringDesc*) &TMP4699));
appendString(LOC21, reprEnum((*t).kind, (&NTI214241)));
appendChar(LOC21, 41);
		internalerror_187113(LOC21);
	}
	break;
	}
	}BeforeRet: ;
	return result;
}

N_NIMCALL(void, createrecordvaraux_510153)(Tproc505024* p, Tnode214790* rec, Intset211035* excludedfieldids, Ropeobj169006** output) {
	switch ((*rec).kind) {
	case ((NU8) 138):
	{
		{
			NI i_510171;
			NI HEX3Atmp_510193;
			NI LOC3;
			NI res_510196;
			i_510171 = 0;
			HEX3Atmp_510193 = 0;
			LOC3 = 0;
			LOC3 = sonslen_217351(rec);
			HEX3Atmp_510193 = (NI)(LOC3 - ((NI) 1));
			res_510196 = ((NI) 0);
			{
				while (1) {
					if (!(res_510196 <= HEX3Atmp_510193)) goto LA5;
					i_510171 = res_510196;
					createrecordvaraux_510153(p, (*rec).kindU.S6.sons->data[i_510171], excludedfieldids, output);
					res_510196 += ((NI) 1);
				} LA5: ;
			}
		}
	}
	break;
	case ((NU8) 139):
	{
		createrecordvaraux_510153(p, (*rec).kindU.S6.sons->data[((NI) 0)], excludedfieldids, output);
		{
			NI i_510185;
			NI HEX3Atmp_510201;
			NI LOC8;
			NI res_510204;
			i_510185 = 0;
			HEX3Atmp_510201 = 0;
			LOC8 = 0;
			LOC8 = sonslen_217351(rec);
			HEX3Atmp_510201 = (NI)(LOC8 - ((NI) 1));
			res_510204 = ((NI) 1);
			{
				while (1) {
					Tnode214790* LOC11;
					if (!(res_510204 <= HEX3Atmp_510201)) goto LA10;
					i_510185 = res_510204;
					LOC11 = 0;
					LOC11 = lastson_217364((*rec).kindU.S6.sons->data[i_510185]);
					createrecordvaraux_510153(p, LOC11, excludedfieldids, output);
					res_510204 += ((NI) 1);
				} LA10: ;
			}
		}
	}
	break;
	case ((NU8) 3):
	{
		{
			NIM_BOOL LOC15;
			Ropeobj169006* LOC23;
			Ropeobj169006* LOC24;
			LOC15 = 0;
			LOC15 = contains_211811(excludedfieldids, (*(*rec).kindU.S4.sym).Sup.id);
			if (!!(LOC15)) goto LA16;
			{
				NI LOC20;
				LOC20 = 0;
				LOC20 = len_169025((*output));
				if (!(((NI) 0) < LOC20)) goto LA21;
				add_169487(output, ((NimStringDesc*) &TMP4664));
			}
			LA21: ;
			LOC23 = 0;
			LOC23 = manglename_505256((*rec).kindU.S4.sym);
			add_169482(output, LOC23);
			add_169487(output, ((NimStringDesc*) &TMP4708));
			LOC24 = 0;
			LOC24 = createvar_510148(p, (*(*rec).kindU.S4.sym).typ, NIM_FALSE);
			add_169482(output, LOC24);
		}
		LA16: ;
	}
	break;
	default:
	{
		internalerror_187100((*rec).info, ((NimStringDesc*) &TMP4709));
	}
	break;
	}
}

N_NIMCALL(void, createobjinitlist_510208)(Tproc505024* p, Ttype214828* typ, Intset211035* excludedfieldids, Ropeobj169006** output) {
	Ttype214828* t;
	t = typ;
	{
		NIM_BOOL LOC3;
		NimStringDesc* LOC12;
		TY169507 LOC18;
		LOC3 = 0;
		LOC3 = !((((*t).flags &(1U<<((NU)(((NU8) 2))&31U)))!=0));
		if (LOC3) goto LA4;
		LOC3 = !(((*t).sons->data[((NI) 0)] == NIM_NIL));
		LA4: ;
		if (!LOC3) goto LA5;
		{
			NI LOC9;
			LOC9 = 0;
			LOC9 = len_169025((*output));
			if (!(((NI) 0) < LOC9)) goto LA10;
			add_169487(output, ((NimStringDesc*) &TMP4664));
		}
		LA10: ;
		LOC12 = 0;
		{
			if (!((*p).target == ((NU8) 0))) goto LA15;
			LOC12 = copyString(((NimStringDesc*) &TMP4706));
		}
		goto LA13;
		LA15: ;
		{
			LOC12 = copyString(((NimStringDesc*) &TMP4707));
		}
		LA13: ;
		memset((void*)LOC18, 0, sizeof(LOC18));
		LOC18[0] = gentypeinfo_505282(p, t);
		addf_170205(output, LOC12, LOC18, 1);
	}
	LA5: ;
	{
		while (1) {
			if (!!((t == NIM_NIL))) goto LA20;
			createrecordvaraux_510153(p, (*t).n, excludedfieldids, output);
			t = (*t).sons->data[((NI) 0)];
		} LA20: ;
	}
}

N_NIMCALL(Ropeobj169006*, createvar_510148)(Tproc505024* p, Ttype214828* typ, NIM_BOOL indirect) {
	Ropeobj169006* result;
	Ttype214828* t;
	result = 0;
	t = skiptypes_218113(typ, IL64(211106232576256));
	switch ((*t).kind) {
	case ((NU8) 31) ... ((NU8) 35):
	case ((NU8) 40) ... ((NU8) 44):
	case ((NU8) 14):
	case ((NU8) 2):
	{
		result = puttoseq_510141(((NimStringDesc*) &TMP4658), indirect);
	}
	break;
	case ((NU8) 36) ... ((NU8) 39):
	{
		result = puttoseq_510141(((NimStringDesc*) &TMP4659), indirect);
	}
	break;
	case ((NU8) 20):
	case ((NU8) 11):
	{
		Ttype214828* LOC4;
		LOC4 = 0;
		LOC4 = lastson_217377(typ);
		result = createvar_510148(p, LOC4, indirect);
	}
	break;
	case ((NU8) 19):
	{
		result = puttoseq_510141(((NimStringDesc*) &TMP4660), indirect);
	}
	break;
	case ((NU8) 1):
	{
		result = puttoseq_510141(((NimStringDesc*) &TMP4661), indirect);
	}
	break;
	case ((NU8) 16):
	case ((NU8) 4):
	{
		NI length;
		NI64 LOC8;
		Ttype214828* e;
		LOC8 = 0;
		LOC8 = lengthord_240007(t);
		length = ((NI) (LOC8));
		e = elemtype_240383(t);
		{
			TY474656 LOC13;
			if (!(((NI) 32) < length)) goto LA11;
			usemagic_505722(p, ((NimStringDesc*) &TMP4678));
			usemagic_505722(p, ((NimStringDesc*) &TMP4679));
			memset((void*)LOC13, 0, sizeof(LOC13));
			LOC13[0] = rope_169401(((NI64) (length)));
			LOC13[1] = createvar_510148(p, e, NIM_FALSE);
			LOC13[2] = gentypeinfo_505282(p, e);
			result = HEX25_169905(((NimStringDesc*) &TMP4680), LOC13, 3);
		}
		goto LA9;
		LA11: ;
		{
			NI i;
			result = rope_169277(((NimStringDesc*) &TMP4700));
			i = ((NI) 0);
			{
				while (1) {
					Ropeobj169006* LOC21;
					if (!(i < length)) goto LA16;
					{
						if (!(((NI) 0) < i)) goto LA19;
						add_169487(&result, ((NimStringDesc*) &TMP4664));
					}
					LA19: ;
					LOC21 = 0;
					LOC21 = createvar_510148(p, e, NIM_FALSE);
					add_169482(&result, LOC21);
					i += ((NI) 1);
				} LA16: ;
			}
			add_169487(&result, ((NimStringDesc*) &TMP4701));
		}
		LA9: ;
		{
			TY169507 LOC26;
			if (!indirect) goto LA24;
			memset((void*)LOC26, 0, sizeof(LOC26));
			LOC26[0] = result;
			result = HEX25_169905(((NimStringDesc*) &TMP4657), LOC26, 1);
		}
		LA24: ;
	}
	break;
	case ((NU8) 18):
	{
		result = rope_169277(((NimStringDesc*) &TMP4702));
		{
			NI i_510305;
			NI HEX3Atmp_510374;
			NI LOC29;
			NI res_510377;
			i_510305 = 0;
			HEX3Atmp_510374 = 0;
			LOC29 = 0;
			LOC29 = sonslen_217327(t);
			HEX3Atmp_510374 = (LOC29 - 1);
			res_510377 = ((NI) 0);
			{
				while (1) {
					NimStringDesc* LOC36;
					TY501232 LOC42;
					if (!(res_510377 <= HEX3Atmp_510374)) goto LA31;
					i_510305 = res_510377;
					{
						if (!(((NI) 0) < i_510305)) goto LA34;
						add_169487(&result, ((NimStringDesc*) &TMP4664));
					}
					LA34: ;
					LOC36 = 0;
					{
						if (!((*p).target == ((NU8) 0))) goto LA39;
						LOC36 = copyString(((NimStringDesc*) &TMP4703));
					}
					goto LA37;
					LA39: ;
					{
						LOC36 = copyString(((NimStringDesc*) &TMP4704));
					}
					LA37: ;
					memset((void*)LOC42, 0, sizeof(LOC42));
					LOC42[0] = rope_169401(((NI64) (i_510305)));
					LOC42[1] = createvar_510148(p, (*t).sons->data[i_510305], NIM_FALSE);
					addf_170205(&result, LOC36, LOC42, 2);
					res_510377 += ((NI) 1);
				} LA31: ;
			}
		}
		add_169487(&result, ((NimStringDesc*) &TMP4705));
		{
			TY169507 LOC47;
			if (!indirect) goto LA45;
			memset((void*)LOC47, 0, sizeof(LOC47));
			LOC47[0] = result;
			result = HEX25_169905(((NimStringDesc*) &TMP4657), LOC47, 1);
		}
		LA45: ;
	}
	break;
	case ((NU8) 17):
	{
		Ropeobj169006* initlist;
		Intset211035 LOC49;
		TY169507 LOC50;
		initlist = 0;
		memset((void*)(&LOC49), 0, sizeof(LOC49));
		initintset_211885((&LOC49));
		createobjinitlist_510208(p, t, (&LOC49), &initlist);
		memset((void*)LOC50, 0, sizeof(LOC50));
		LOC50[0] = initlist;
		result = HEX25_169905(((NimStringDesc*) &TMP4710), LOC50, 1);
		{
			TY169507 LOC55;
			if (!indirect) goto LA53;
			memset((void*)LOC55, 0, sizeof(LOC55));
			LOC55[0] = result;
			result = HEX25_169905(((NimStringDesc*) &TMP4657), LOC55, 1);
		}
		LA53: ;
	}
	break;
	case ((NU8) 23):
	case ((NU8) 21):
	case ((NU8) 22):
	{
		{
			NU8 LOC59;
			NimStringDesc* LOC62;
			LOC59 = 0;
			LOC59 = maptype_505241(t);
			if (!(LOC59 == ((NU8) 8))) goto LA60;
			LOC62 = 0;
			{
				if (!((*p).target == ((NU8) 0))) goto LA65;
				LOC62 = copyString(((NimStringDesc*) &TMP4711));
			}
			goto LA63;
			LA65: ;
			{
				LOC62 = copyString(((NimStringDesc*) &TMP4712));
			}
			LA63: ;
			result = puttoseq_510141(LOC62, indirect);
		}
		goto LA57;
		LA60: ;
		{
			NimStringDesc* LOC69;
			LOC69 = 0;
			{
				if (!((*p).target == ((NU8) 0))) goto LA72;
				LOC69 = copyString(((NimStringDesc*) &TMP4647));
			}
			goto LA70;
			LA72: ;
			{
				LOC69 = copyString(((NimStringDesc*) &TMP4713));
			}
			LA70: ;
			result = puttoseq_510141(LOC69, indirect);
		}
		LA57: ;
	}
	break;
	case ((NU8) 24):
	case ((NU8) 28):
	case ((NU8) 29):
	case ((NU8) 26):
	case ((NU8) 25):
	{
		NimStringDesc* LOC76;
		LOC76 = 0;
		{
			if (!((*p).target == ((NU8) 0))) goto LA79;
			LOC76 = copyString(((NimStringDesc*) &TMP4647));
		}
		goto LA77;
		LA79: ;
		{
			LOC76 = copyString(((NimStringDesc*) &TMP4713));
		}
		LA77: ;
		result = puttoseq_510141(LOC76, indirect);
	}
	break;
	default:
	{
		NimStringDesc* LOC83;
		LOC83 = 0;
		LOC83 = rawNewString(reprEnum((*t).kind, (&NTI214241))->Sup.len + 11);
appendString(LOC83, ((NimStringDesc*) &TMP4714));
appendString(LOC83, reprEnum((*t).kind, (&NTI214241)));
		internalerror_187113(LOC83);
		result = NIM_NIL;
	}
	break;
	}
	return result;
}

N_NIMCALL(NIM_BOOL, needsnocopy_508444)(Tnode214790* y) {
	NIM_BOOL result;
	NIM_BOOL LOC1;
	Ttype214828* LOC3;
	result = 0;
	LOC1 = 0;
	LOC1 = ((TMP4715[(NU)((*y).kind)>>3] &(1U<<((NU)((*y).kind)&7U)))!=0);
	if (LOC1) goto LA2;
	LOC3 = 0;
	LOC3 = skiptypes_218113((*y).typ, IL64(211106232576256));
	LOC1 = ((14680064 &((NU64)1<<((NU)((*LOC3).kind)&63U)))!=0);
	LA2: ;
	result = LOC1;
	return result;
}

N_NIMCALL(void, genvarinit_510382)(Tproc505024* p, Tsym214822* v, Tnode214790* n) {
	Tcompres505014 a;
	Ropeobj169006* s;
{	memset((void*)(&a), 0, sizeof(a));
	s = 0;
	{
		NimStringDesc* LOC5;
		TY501232 LOC11;
		NIM_BOOL LOC12;
		if (!((*n).kind == ((NU8) 1))) goto LA3;
		LOC5 = 0;
		{
			if (!((*p).target == ((NU8) 0))) goto LA8;
			LOC5 = copyString(((NimStringDesc*) &TMP4654));
		}
		goto LA6;
		LA8: ;
		{
			LOC5 = copyString(((NimStringDesc*) &TMP4655));
		}
		LA6: ;
		memset((void*)LOC11, 0, sizeof(LOC11));
		LOC11[0] = manglename_505256(v);
		LOC12 = 0;
		LOC12 = isindirect_508937(v);
		LOC11[1] = createvar_510148(p, (*v).typ, LOC12);
		addf_170205(&(*p).body, LOC5, LOC11, 2);
	}
	goto LA1;
	LA3: ;
	{
		Ropeobj169006* LOC14;
		NU8 LOC15;
		LOC14 = 0;
		LOC14 = manglename_505256(v);
		gen_505704(p, n, (&a));
		LOC15 = 0;
		LOC15 = maptype_505241((*v).typ);
		switch (LOC15) {
		case ((NU8) 7):
		{
			{
				NIM_BOOL LOC19;
				LOC19 = 0;
				LOC19 = needsnocopy_508444(n);
				if (!LOC19) goto LA20;
				s = a.res;
			}
			goto LA17;
			LA20: ;
			{
				TY501232 LOC23;
				usemagic_505722(p, ((NimStringDesc*) &TMP4679));
				memset((void*)LOC23, 0, sizeof(LOC23));
				LOC23[0] = a.res;
				LOC23[1] = gentypeinfo_505282(p, (*n).typ);
				s = HEX25_169905(((NimStringDesc*) &TMP4716), LOC23, 2);
			}
			LA17: ;
		}
		break;
		case ((NU8) 8):
		{
			{
				if (!!((a.typ == ((NU8) 8)))) goto LA27;
				internalerror_187100((*n).info, ((NimStringDesc*) &TMP4717));
			}
			LA27: ;
			{
				NimStringDesc* LOC33;
				TY474656 LOC39;
				if (!!(((32776 & (*v).flags) == 0))) goto LA31;
				LOC33 = 0;
				{
					if (!((*p).target == ((NU8) 0))) goto LA36;
					LOC33 = copyString(((NimStringDesc*) &TMP4718));
				}
				goto LA34;
				LA36: ;
				{
					LOC33 = copyString(((NimStringDesc*) &TMP4719));
				}
				LA34: ;
				memset((void*)LOC39, 0, sizeof(LOC39));
				LOC39[0] = (*v).loc.r;
				LOC39[1] = a.address;
				LOC39[2] = a.res;
				addf_170205(&(*p).body, LOC33, LOC39, 3);
			}
			goto LA29;
			LA31: ;
			{
				NimStringDesc* LOC41;
				TY474656 LOC47;
				LOC41 = 0;
				{
					if (!((*p).target == ((NU8) 0))) goto LA44;
					LOC41 = copyString(((NimStringDesc*) &TMP4720));
				}
				goto LA42;
				LA44: ;
				{
					LOC41 = copyString(((NimStringDesc*) &TMP4721));
				}
				LA42: ;
				memset((void*)LOC47, 0, sizeof(LOC47));
				LOC47[0] = (*v).loc.r;
				LOC47[1] = a.address;
				LOC47[2] = a.res;
				addf_170205(&(*p).body, LOC41, LOC47, 3);
			}
			LA29: ;
			goto BeforeRet;
		}
		break;
		default:
		{
			s = a.res;
		}
		break;
		}
		{
			NIM_BOOL LOC51;
			NimStringDesc* LOC54;
			TY501232 LOC60;
			LOC51 = 0;
			LOC51 = isindirect_508937(v);
			if (!LOC51) goto LA52;
			LOC54 = 0;
			{
				if (!((*p).target == ((NU8) 0))) goto LA57;
				LOC54 = copyString(((NimStringDesc*) &TMP4722));
			}
			goto LA55;
			LA57: ;
			{
				LOC54 = copyString(((NimStringDesc*) &TMP4723));
			}
			LA55: ;
			memset((void*)LOC60, 0, sizeof(LOC60));
			LOC60[0] = (*v).loc.r;
			LOC60[1] = s;
			addf_170205(&(*p).body, LOC54, LOC60, 2);
		}
		goto LA49;
		LA52: ;
		{
			NimStringDesc* LOC62;
			TY501232 LOC68;
			LOC62 = 0;
			{
				if (!((*p).target == ((NU8) 0))) goto LA65;
				LOC62 = copyString(((NimStringDesc*) &TMP4654));
			}
			goto LA63;
			LA65: ;
			{
				LOC62 = copyString(((NimStringDesc*) &TMP4655));
			}
			LA63: ;
			memset((void*)LOC68, 0, sizeof(LOC68));
			LOC68[0] = (*v).loc.r;
			LOC68[1] = s;
			addf_170205(&(*p).body, LOC62, LOC68, 2);
		}
		LA49: ;
	}
	LA1: ;
	}BeforeRet: ;
}

N_NIMCALL(void, genconstant_505718)(Tproc505024* p, Tsym214822* c) {
	{
		NIM_BOOL LOC3;
		NIM_BOOL LOC5;
		Ropeobj169006* oldbody;
		LOC3 = 0;
		LOC3 = !((((*c).loc.flags &(1U<<((NU)(((NU8) 3))&15U)))!=0));
		if (!(LOC3)) goto LA4;
		LOC5 = 0;
		LOC5 = containsorincl_211862((&(*(*p).g).generatedsyms), (*c).Sup.id);
		LOC3 = !(LOC5);
		LA4: ;
		if (!LOC3) goto LA6;
		oldbody = (*p).body;
		asgnRefNoCycle((void**) (&(*p).body), NIM_NIL);
		genvarinit_510382(p, c, (*c).ast);
		add_169482(&(*(*p).g).code, (*p).body);
		asgnRefNoCycle((void**) (&(*p).body), oldbody);
	}
	LA6: ;
}

N_NIMCALL(void, genprocforsymifneeded_509129)(Tproc505024* p, Tsym214822* s) {
	{
		NIM_BOOL LOC3;
		Ropeobj169006* newp;
		Tproc505024* owner;
		LOC3 = 0;
		LOC3 = containsorincl_211862((&(*(*p).g).generatedsyms), (*s).Sup.id);
		if (!!(LOC3)) goto LA4;
		newp = genproc_505714(p, s);
		owner = p;
		{
			while (1) {
				NIM_BOOL LOC8;
				LOC8 = 0;
				LOC8 = !((owner == NIM_NIL));
				if (!(LOC8)) goto LA9;
				LOC8 = !(((*owner).prc == (*s).owner));
				LA9: ;
				if (!LOC8) goto LA7;
				owner = (*owner).up;
			} LA7: ;
		}
		{
			if (!!((owner == NIM_NIL))) goto LA12;
			add_169482(&(*owner).locals, newp);
		}
		goto LA10;
		LA12: ;
		{
			add_169482(&(*(*p).g).code, newp);
		}
		LA10: ;
	}
	LA4: ;
}

N_NIMCALL(void, gensym_509176)(Tproc505024* p, Tnode214790* n, Tcompres505014* r) {
	Tsym214822* s;
	s = (*n).kindU.S4.sym;
	switch ((*s).kind) {
	case ((NU8) 8):
	case ((NU8) 9):
	case ((NU8) 3):
	case ((NU8) 5):
	case ((NU8) 11):
	{
		NU8 k;
		{
			NimStringDesc* LOC6;
			if (!((*s).loc.r == NIM_NIL)) goto LA4;
			LOC6 = 0;
			LOC6 = rawNewString((*(*s).name).s->Sup.len + 30);
appendString(LOC6, ((NimStringDesc*) &TMP4650));
appendString(LOC6, (*(*s).name).s);
			internalerror_187100((*n).info, LOC6);
		}
		LA4: ;
		k = maptype_505241((*s).typ);
		{
			if (!(k == ((NU8) 8))) goto LA9;
			(*r).typ = ((NU8) 8);
			{
				TY169507 LOC15;
				TY169507 LOC16;
				if (!!(((32776 & (*s).flags) == 0))) goto LA13;
				memset((void*)LOC15, 0, sizeof(LOC15));
				LOC15[0] = (*s).loc.r;
				unsureAsgnRef((void**) (&(*r).address), HEX25_169905(((NimStringDesc*) &TMP4651), LOC15, 1));
				memset((void*)LOC16, 0, sizeof(LOC16));
				LOC16[0] = (*s).loc.r;
				unsureAsgnRef((void**) (&(*r).res), HEX25_169905(((NimStringDesc*) &TMP4652), LOC16, 1));
			}
			goto LA11;
			LA13: ;
			{
				unsureAsgnRef((void**) (&(*r).address), (*s).loc.r);
				unsureAsgnRef((void**) (&(*r).res), HEX26_169447((*s).loc.r, ((NimStringDesc*) &TMP4653)));
			}
			LA11: ;
		}
		goto LA7;
		LA9: ;
		{
			NIM_BOOL LOC19;
			TY169507 LOC22;
			LOC19 = 0;
			LOC19 = isindirect_508937(s);
			if (!LOC19) goto LA20;
			memset((void*)LOC22, 0, sizeof(LOC22));
			LOC22[0] = (*s).loc.r;
			unsureAsgnRef((void**) (&(*r).res), HEX25_169905(((NimStringDesc*) &TMP4651), LOC22, 1));
		}
		goto LA7;
		LA20: ;
		{
			unsureAsgnRef((void**) (&(*r).res), (*s).loc.r);
		}
		LA7: ;
	}
	break;
	case ((NU8) 10):
	{
		genconstant_505718(p, s);
		{
			NimStringDesc* LOC29;
			if (!((*s).loc.r == NIM_NIL)) goto LA27;
			LOC29 = 0;
			LOC29 = rawNewString((*(*s).name).s->Sup.len + 30);
appendString(LOC29, ((NimStringDesc*) &TMP4650));
appendString(LOC29, (*(*s).name).s);
			internalerror_187100((*n).info, LOC29);
		}
		LA27: ;
		unsureAsgnRef((void**) (&(*r).res), (*s).loc.r);
	}
	break;
	case ((NU8) 12):
	case ((NU8) 15):
	case ((NU8) 13):
	{
		Ropeobj169006* LOC31;
		LOC31 = 0;
		LOC31 = manglename_505256(s);
		unsureAsgnRef((void**) (&(*r).res), (*s).loc.r);
		{
			NIM_BOOL LOC34;
			NIM_BOOL LOC35;
			LOC34 = 0;
			LOC35 = 0;
			LOC35 = (((*s).loc.flags &(1U<<((NU)(((NU8) 3))&15U)))!=0);
			if (LOC35) goto LA36;
			LOC35 = !(((*s).magic == ((NU8) 0)));
			LA36: ;
			LOC34 = LOC35;
			if (LOC34) goto LA37;
			LOC34 = !(((134217760 & (*s).flags) == 0));
			LA37: ;
			if (!LOC34) goto LA38;
		}
		goto LA32;
		LA38: ;
		{
			NIM_BOOL LOC41;
			Tnode214790* LOC43;
			LOC41 = 0;
			LOC41 = ((*s).kind == ((NU8) 13));
			if (!(LOC41)) goto LA42;
			LOC43 = 0;
			LOC43 = getbody_254827(s);
			LOC41 = ((*LOC43).kind == ((NU8) 1));
			LA42: ;
			if (!LOC41) goto LA44;
		}
		goto LA32;
		LA44: ;
		{
			if (!(((*s).flags &(1U<<((NU)(((NU8) 4))&31U)))!=0)) goto LA47;
			(*(*p).g).forwarded = (Tsymseq214792*) incrSeqV2(&((*(*p).g).forwarded)->Sup, sizeof(Tsym214822*));
			asgnRefNoCycle((void**) (&(*(*p).g).forwarded->data[(*(*p).g).forwarded->Sup.len]), s);
			++(*(*p).g).forwarded->Sup.len;
		}
		goto LA32;
		LA47: ;
		{
			genprocforsymifneeded_509129(p, s);
		}
		LA32: ;
	}
	break;
	default:
	{
		{
			NimStringDesc* LOC55;
			if (!((*s).loc.r == NIM_NIL)) goto LA53;
			LOC55 = 0;
			LOC55 = rawNewString((*(*s).name).s->Sup.len + 30);
appendString(LOC55, ((NimStringDesc*) &TMP4650));
appendString(LOC55, (*(*s).name).s);
			internalerror_187100((*n).info, LOC55);
		}
		LA53: ;
		unsureAsgnRef((void**) (&(*r).res), (*s).loc.r);
	}
	break;
	}
	(*r).kind = ((NU8) 2);
}

static N_INLINE(NIM_BOOL, isemptytype_219514)(Ttype214828* t) {
	NIM_BOOL result;
	NIM_BOOL LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = (t == NIM_NIL);
	if (LOC1) goto LA2;
	LOC1 = ((136 &((NU64)1<<((NU)((*t).kind)&63U)))!=0);
	LA2: ;
	result = LOC1;
	return result;
}

static N_INLINE(NI, len_215059)(Tnode214790* n) {
	NI result;
	result = 0;
	{
		if (!(*n).kindU.S6.sons == 0) goto LA3;
		result = ((NI) 0);
	}
	goto LA1;
	LA3: ;
	{
		result = ((*n).kindU.S6.sons ? (*n).kindU.S6.sons->Sup.len : 0);
	}
	LA1: ;
	return result;
}

static N_INLINE(NIM_BOOL, isatom_219492)(Tnode214790* n) {
	NIM_BOOL result;
	NIM_BOOL LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = (((NU8) 0) <= (*n).kind);
	if (!(LOC1)) goto LA2;
	LOC1 = ((*n).kind <= ((NU8) 23));
	LA2: ;
	result = LOC1;
	return result;
}

N_NIMCALL(NIM_BOOL, issimpleexpr_505773)(Tnode214790* n) {
	NIM_BOOL result;
{	result = 0;
	{
		if (!((*n).kind >= ((NU8) 26) && (*n).kind <= ((NU8) 32) || (*n).kind >= ((NU8) 37) && (*n).kind <= ((NU8) 39) || (*n).kind >= ((NU8) 41) && (*n).kind <= ((NU8) 42) || (*n).kind == ((NU8) 45))) goto LA3;
		{
			Tnode214790* c_505800;
			c_505800 = 0;
			{
				NI i_505807;
				NI HEX3Atmp_505809;
				NI LOC7;
				NI res_505811;
				i_505807 = 0;
				HEX3Atmp_505809 = 0;
				LOC7 = 0;
				LOC7 = len_215059(n);
				HEX3Atmp_505809 = (LOC7 - 1);
				res_505811 = ((NI) 0);
				{
					while (1) {
						if (!(res_505811 <= HEX3Atmp_505809)) goto LA9;
						i_505807 = res_505811;
						c_505800 = (*n).kindU.S6.sons->data[i_505807];
						{
							NIM_BOOL LOC12;
							LOC12 = 0;
							LOC12 = issimpleexpr_505773(c_505800);
							if (!!(LOC12)) goto LA13;
							result = NIM_FALSE;
							goto BeforeRet;
						}
						LA13: ;
						res_505811 += ((NI) 1);
					} LA9: ;
				}
			}
		}
		result = NIM_TRUE;
	}
	goto LA1;
	LA3: ;
	{
		NIM_BOOL LOC16;
		LOC16 = 0;
		LOC16 = isatom_219492(n);
		if (!LOC16) goto LA17;
		result = NIM_TRUE;
	}
	goto LA1;
	LA17: ;
	LA1: ;
	}BeforeRet: ;
	return result;
}

static N_INLINE(Ropeobj169006*, rdloc_505100)(Tcompres505014* a) {
	Ropeobj169006* result;
	result = 0;
	result = (*a).res;
	return result;
}

N_NIMCALL(Ropeobj169006*, gettemp_505814)(Tproc505024* p, NIM_BOOL defineinlocals) {
	Ropeobj169006* result;
	TY169507 LOC1;
	result = 0;
	(*p).unique += ((NI) 1);
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = rope_169401(((NI64) ((*p).unique)));
	result = HEX25_169905(((NimStringDesc*) &TMP4737), LOC1, 1);
	{
		NimStringDesc* LOC6;
		TY169507 LOC12;
		if (!defineinlocals) goto LA4;
		LOC6 = 0;
		{
			if (!((*p).target == ((NU8) 0))) goto LA9;
			LOC6 = copyString(((NimStringDesc*) &TMP4738));
		}
		goto LA7;
		LA9: ;
		{
			LOC6 = copyString(((NimStringDesc*) &TMP4739));
		}
		LA7: ;
		memset((void*)LOC12, 0, sizeof(LOC12));
		LOC12[0] = result;
		addf_170205(&(*p).locals, LOC6, LOC12, 1);
	}
	LA4: ;
	return result;
}

N_NIMCALL(void, genor_506046)(Tproc505024* p, Tnode214790* a, Tnode214790* b, Tcompres505014* r) {
	Tcompres505014 x;
	Tcompres505014 y;
	memset((void*)(&x), 0, sizeof(x));
	memset((void*)(&y), 0, sizeof(y));
	{
		NIM_BOOL LOC3;
		NimStringDesc* LOC7;
		TY501232 LOC13;
		LOC3 = 0;
		LOC3 = issimpleexpr_505773(a);
		if (!(LOC3)) goto LA4;
		LOC3 = issimpleexpr_505773(b);
		LA4: ;
		if (!LOC3) goto LA5;
		gen_505704(p, a, (&x));
		gen_505704(p, b, (&y));
		(*r).kind = ((NU8) 1);
		LOC7 = 0;
		{
			if (!((*p).target == ((NU8) 0))) goto LA10;
			LOC7 = copyString(((NimStringDesc*) &TMP4735));
		}
		goto LA8;
		LA10: ;
		{
			LOC7 = copyString(((NimStringDesc*) &TMP4736));
		}
		LA8: ;
		memset((void*)LOC13, 0, sizeof(LOC13));
		LOC13[0] = rdloc_505100((&x));
		LOC13[1] = rdloc_505100((&y));
		unsureAsgnRef((void**) (&(*r).res), HEX25_169905(LOC7, LOC13, 2));
	}
	goto LA1;
	LA5: ;
	{
		NimStringDesc* LOC15;
		TY501232 LOC21;
		NimStringDesc* LOC22;
		TY501232 LOC28;
		unsureAsgnRef((void**) (&(*r).res), gettemp_505814(p, NIM_TRUE));
		(*r).kind = ((NU8) 2);
		gen_505704(p, a, (&x));
		LOC15 = 0;
		{
			if (!((*p).target == ((NU8) 0))) goto LA18;
			LOC15 = copyString(((NimStringDesc*) &TMP4740));
		}
		goto LA16;
		LA18: ;
		{
			LOC15 = copyString(((NimStringDesc*) &TMP4741));
		}
		LA16: ;
		memset((void*)LOC21, 0, sizeof(LOC21));
		LOC21[0] = rdloc_505100((&x));
		LOC21[1] = rdloc_505100((&(*r)));
		addf_170205(&(*p).body, LOC15, LOC21, 2);
		gen_505704(p, b, (&y));
		LOC22 = 0;
		{
			if (!((*p).target == ((NU8) 0))) goto LA25;
			LOC22 = copyString(((NimStringDesc*) &TMP4742));
		}
		goto LA23;
		LA25: ;
		{
			LOC22 = copyString(((NimStringDesc*) &TMP4743));
		}
		LA23: ;
		memset((void*)LOC28, 0, sizeof(LOC28));
		LOC28[0] = rdloc_505100((&y));
		LOC28[1] = rdloc_505100((&(*r)));
		addf_170205(&(*p).body, LOC22, LOC28, 2);
	}
	LA1: ;
}

N_NIMCALL(void, genand_505842)(Tproc505024* p, Tnode214790* a, Tnode214790* b, Tcompres505014* r) {
	Tcompres505014 x;
	Tcompres505014 y;
	memset((void*)(&x), 0, sizeof(x));
	memset((void*)(&y), 0, sizeof(y));
	{
		NIM_BOOL LOC3;
		NimStringDesc* LOC7;
		TY501232 LOC13;
		LOC3 = 0;
		LOC3 = issimpleexpr_505773(a);
		if (!(LOC3)) goto LA4;
		LOC3 = issimpleexpr_505773(b);
		LA4: ;
		if (!LOC3) goto LA5;
		gen_505704(p, a, (&x));
		gen_505704(p, b, (&y));
		(*r).kind = ((NU8) 1);
		LOC7 = 0;
		{
			if (!((*p).target == ((NU8) 0))) goto LA10;
			LOC7 = copyString(((NimStringDesc*) &TMP4744));
		}
		goto LA8;
		LA10: ;
		{
			LOC7 = copyString(((NimStringDesc*) &TMP4745));
		}
		LA8: ;
		memset((void*)LOC13, 0, sizeof(LOC13));
		LOC13[0] = rdloc_505100((&x));
		LOC13[1] = rdloc_505100((&y));
		unsureAsgnRef((void**) (&(*r).res), HEX25_169905(LOC7, LOC13, 2));
	}
	goto LA1;
	LA5: ;
	{
		NimStringDesc* LOC15;
		TY501232 LOC21;
		NimStringDesc* LOC22;
		TY501232 LOC28;
		unsureAsgnRef((void**) (&(*r).res), gettemp_505814(p, NIM_TRUE));
		(*r).kind = ((NU8) 2);
		gen_505704(p, a, (&x));
		LOC15 = 0;
		{
			if (!((*p).target == ((NU8) 0))) goto LA18;
			LOC15 = copyString(((NimStringDesc*) &TMP4746));
		}
		goto LA16;
		LA18: ;
		{
			LOC15 = copyString(((NimStringDesc*) &TMP4747));
		}
		LA16: ;
		memset((void*)LOC21, 0, sizeof(LOC21));
		LOC21[0] = rdloc_505100((&x));
		LOC21[1] = rdloc_505100((&(*r)));
		addf_170205(&(*p).body, LOC15, LOC21, 2);
		gen_505704(p, b, (&y));
		LOC22 = 0;
		{
			if (!((*p).target == ((NU8) 0))) goto LA25;
			LOC22 = copyString(((NimStringDesc*) &TMP4742));
		}
		goto LA23;
		LA25: ;
		{
			LOC22 = copyString(((NimStringDesc*) &TMP4743));
		}
		LA23: ;
		memset((void*)LOC28, 0, sizeof(LOC28));
		LOC28[0] = rdloc_505100((&y));
		LOC28[1] = rdloc_505100((&(*r)));
		addf_170205(&(*p).body, LOC22, LOC28, 2);
	}
	LA1: ;
}

N_NIMCALL(void, arithaux_506629)(Tproc505024* p, Tnode214790* n, Tcompres505014* r, NU8 op, Tmagicops506249 ops) {
	Tcompres505014 x;
	Tcompres505014 y;
	NI i;
	memset((void*)(&x), 0, sizeof(x));
	memset((void*)(&y), 0, sizeof(y));
	i = !((((*p).options &(1U<<((NU)(((NU8) 5))&31U)))!=0));
	usemagic_505722(p, ops[(op)- 44][(i)- 0]);
	{
		NI LOC3;
		TY501232 LOC6;
		LOC3 = 0;
		LOC3 = sonslen_217351(n);
		if (!(((NI) 2) < LOC3)) goto LA4;
		gen_505704(p, (*n).kindU.S6.sons->data[((NI) 1)], (&x));
		gen_505704(p, (*n).kindU.S6.sons->data[((NI) 2)], (&y));
		memset((void*)LOC6, 0, sizeof(LOC6));
		LOC6[0] = rdloc_505100((&x));
		LOC6[1] = rdloc_505100((&y));
		unsureAsgnRef((void**) (&(*r).res), HEX25_169905(ops[(op)- 44][((NI)(((NI) (i)) + ((NI) 2)))- 0], LOC6, 2));
	}
	goto LA1;
	LA4: ;
	{
		TY169507 LOC8;
		gen_505704(p, (*n).kindU.S6.sons->data[((NI) 1)], r);
		memset((void*)LOC8, 0, sizeof(LOC8));
		LOC8[0] = rdloc_505100((&(*r)));
		unsureAsgnRef((void**) (&(*r).res), HEX25_169905(ops[(op)- 44][((NI)(((NI) (i)) + ((NI) 2)))- 0], LOC8, 1));
	}
	LA1: ;
	(*r).kind = ((NU8) 1);
}

N_NIMCALL(void, arith_506671)(Tproc505024* p, Tnode214790* n, Tcompres505014* r, NU8 op) {
	Tmagicops506249 LOC1;
	memset((void*)LOC1, 0, sizeof(LOC1));
	{
		if (!((*p).target == ((NU8) 0))) goto LA4;
		genericAssign((void*)LOC1, (void*)jsops_506252, (&NTI506249));
	}
	goto LA2;
	LA4: ;
	{
		genericAssign((void*)LOC1, (void*)luaops_506415, (&NTI506249));
	}
	LA2: ;
	arithaux_506629(p, n, r, op, LOC1);
}

N_NIMCALL(void, unaryexpr_506618)(Tproc505024* p, Tnode214790* n, Tcompres505014* r, NimStringDesc* magic, NimStringDesc* frmt) {
	TY169507 LOC1;
	usemagic_505722(p, magic);
	gen_505704(p, (*n).kindU.S6.sons->data[((NI) 1)], r);
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = rdloc_505100((&(*r)));
	unsureAsgnRef((void**) (&(*r).res), HEX25_169905(frmt, LOC1, 1));
	(*r).kind = ((NU8) 1);
}

N_NIMCALL(void, genrepr_510973)(Tproc505024* p, Tnode214790* n, Tcompres505014* r) {
	Ttype214828* t;
	t = skiptypes_218113((*(*n).kindU.S6.sons->data[((NI) 1)]).typ, IL64(211106242013440));
	switch ((*t).kind) {
	case ((NU8) 31) ... ((NU8) 44):
	{
		unaryexpr_506618(p, n, r, ((NimStringDesc*) &TMP4749), ((NimStringDesc*) &TMP4833));
	}
	break;
	case ((NU8) 14):
	case ((NU8) 15):
	{
		TY501232 LOC3;
		gen_505704(p, (*n).kindU.S6.sons->data[((NI) 1)], r);
		usemagic_505722(p, ((NimStringDesc*) &TMP4729));
		(*r).kind = ((NU8) 1);
		memset((void*)LOC3, 0, sizeof(LOC3));
		LOC3[0] = gentypeinfo_505282(p, t);
		LOC3[1] = (*r).res;
		unsureAsgnRef((void**) (&(*r).res), HEX25_169905(((NimStringDesc*) &TMP4834), LOC3, 2));
	}
	break;
	default:
	{
		internalerror_187100((*n).info, ((NimStringDesc*) &TMP4835));
	}
	break;
	}
}

N_NIMCALL(void, genswap_508574)(Tproc505024* p, Tnode214790* n) {
	Tcompres505014 a;
	Tcompres505014 b;
	Ropeobj169006* tmp;
	NimStringDesc* LOC20;
	TY474656 LOC26;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&b), 0, sizeof(b));
	gen_505704(p, (*n).kindU.S6.sons->data[((NI) 1)], (&a));
	gen_505704(p, (*n).kindU.S6.sons->data[((NI) 2)], (&b));
	tmp = gettemp_505814(p, NIM_FALSE);
	{
		Ttype214828* LOC3;
		NU8 LOC4;
		Ropeobj169006* tmp2;
		NimStringDesc* LOC13;
		TY474656 LOC19;
		LOC3 = 0;
		LOC3 = skiptypes_218113((*(*n).kindU.S6.sons->data[((NI) 1)]).typ, IL64(211106240964864));
		LOC4 = 0;
		LOC4 = maptype_505241(LOC3);
		if (!(LOC4 == ((NU8) 8))) goto LA5;
		tmp2 = gettemp_505814(p, NIM_FALSE);
		{
			NIM_BOOL LOC9;
			LOC9 = 0;
			LOC9 = !((a.typ == ((NU8) 8)));
			if (LOC9) goto LA10;
			LOC9 = !((b.typ == ((NU8) 8)));
			LA10: ;
			if (!LOC9) goto LA11;
			internalerror_187100((*n).info, ((NimStringDesc*) &TMP4836));
		}
		LA11: ;
		LOC13 = 0;
		{
			if (!((*p).target == ((NU8) 0))) goto LA16;
			LOC13 = copyString(((NimStringDesc*) &TMP4837));
		}
		goto LA14;
		LA16: ;
		{
			LOC13 = copyString(((NimStringDesc*) &TMP4838));
		}
		LA14: ;
		memset((void*)LOC19, 0, sizeof(LOC19));
		LOC19[0] = tmp;
		LOC19[1] = a.address;
		LOC19[2] = b.address;
		addf_170205(&(*p).body, LOC13, LOC19, 3);
		tmp = tmp2;
	}
	LA5: ;
	LOC20 = 0;
	{
		if (!((*p).target == ((NU8) 0))) goto LA23;
		LOC20 = copyString(((NimStringDesc*) &TMP4839));
	}
	goto LA21;
	LA23: ;
	{
		LOC20 = copyString(((NimStringDesc*) &TMP4840));
	}
	LA21: ;
	memset((void*)LOC26, 0, sizeof(LOC26));
	LOC26[0] = tmp;
	LOC26[1] = a.res;
	LOC26[2] = b.res;
	addf_170205(&(*p).body, LOC20, LOC26, 3);
}

N_NIMCALL(void, binaryexpr_506578)(Tproc505024* p, Tnode214790* n, Tcompres505014* r, NimStringDesc* magic, NimStringDesc* frmt) {
	Tcompres505014 x;
	Tcompres505014 y;
	TY501232 LOC1;
	memset((void*)(&x), 0, sizeof(x));
	memset((void*)(&y), 0, sizeof(y));
	usemagic_505722(p, magic);
	gen_505704(p, (*n).kindU.S6.sons->data[((NI) 1)], (&x));
	gen_505704(p, (*n).kindU.S6.sons->data[((NI) 2)], (&y));
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = rdloc_505100((&x));
	LOC1[1] = rdloc_505100((&y));
	unsureAsgnRef((void**) (&(*r).res), HEX25_169905(frmt, LOC1, 2));
	(*r).kind = ((NU8) 1);
}

N_NIMCALL(void, genconstrstr_510891)(Tproc505024* p, Tnode214790* n, Tcompres505014* r) {
	Tcompres505014 a;
	NI LOC25;
	memset((void*)(&a), 0, sizeof(a));
	gen_505704(p, (*n).kindU.S6.sons->data[((NI) 1)], (&a));
	(*r).kind = ((NU8) 1);
	{
		Ttype214828* LOC3;
		TY169507 LOC6;
		Ropeobj169006* LOC7;
		LOC3 = 0;
		LOC3 = skiptypes_218113((*(*n).kindU.S6.sons->data[((NI) 1)]).typ, IL64(211106242013440));
		if (!((*LOC3).kind == ((NU8) 2))) goto LA4;
		memset((void*)LOC6, 0, sizeof(LOC6));
		LOC6[0] = a.res;
		LOC7 = 0;
		LOC7 = HEX25_169905(((NimStringDesc*) &TMP4848), LOC6, 1);
		add_169482(&(*r).res, LOC7);
	}
	goto LA1;
	LA4: ;
	{
		TY169507 LOC9;
		Ropeobj169006* LOC10;
		memset((void*)LOC9, 0, sizeof(LOC9));
		LOC9[0] = a.res;
		LOC10 = 0;
		LOC10 = HEX25_169905(((NimStringDesc*) &TMP4849), LOC9, 1);
		add_169482(&(*r).res, LOC10);
	}
	LA1: ;
	{
		NI i_510927;
		NI HEX3Atmp_510966;
		NI LOC12;
		NI res_510969;
		i_510927 = 0;
		HEX3Atmp_510966 = 0;
		LOC12 = 0;
		LOC12 = sonslen_217351(n);
		HEX3Atmp_510966 = (NI)(LOC12 - ((NI) 2));
		res_510969 = ((NI) 2);
		{
			while (1) {
				if (!(res_510969 <= HEX3Atmp_510966)) goto LA14;
				i_510927 = res_510969;
				gen_505704(p, (*n).kindU.S6.sons->data[i_510927], (&a));
				{
					Ttype214828* LOC17;
					TY169507 LOC20;
					Ropeobj169006* LOC21;
					LOC17 = 0;
					LOC17 = skiptypes_218113((*(*n).kindU.S6.sons->data[i_510927]).typ, IL64(211106242013440));
					if (!((*LOC17).kind == ((NU8) 2))) goto LA18;
					memset((void*)LOC20, 0, sizeof(LOC20));
					LOC20[0] = a.res;
					LOC21 = 0;
					LOC21 = HEX25_169905(((NimStringDesc*) &TMP4850), LOC20, 1);
					add_169482(&(*r).res, LOC21);
				}
				goto LA15;
				LA18: ;
				{
					TY169507 LOC23;
					Ropeobj169006* LOC24;
					memset((void*)LOC23, 0, sizeof(LOC23));
					LOC23[0] = a.res;
					LOC24 = 0;
					LOC24 = HEX25_169905(((NimStringDesc*) &TMP4851), LOC23, 1);
					add_169482(&(*r).res, LOC24);
				}
				LA15: ;
				res_510969 += ((NI) 1);
			} LA14: ;
		}
	}
	LOC25 = 0;
	LOC25 = sonslen_217351(n);
	gen_505704(p, (*n).kindU.S6.sons->data[(NI)(LOC25 - ((NI) 1))], (&a));
	{
		NI LOC28;
		Ttype214828* LOC29;
		TY169507 LOC32;
		Ropeobj169006* LOC33;
		LOC28 = 0;
		LOC28 = sonslen_217351(n);
		LOC29 = 0;
		LOC29 = skiptypes_218113((*(*n).kindU.S6.sons->data[(NI)(LOC28 - ((NI) 1))]).typ, IL64(211106242013440));
		if (!((*LOC29).kind == ((NU8) 2))) goto LA30;
		memset((void*)LOC32, 0, sizeof(LOC32));
		LOC32[0] = a.res;
		LOC33 = 0;
		LOC33 = HEX25_169905(((NimStringDesc*) &TMP4852), LOC32, 1);
		add_169482(&(*r).res, LOC33);
	}
	goto LA26;
	LA30: ;
	{
		TY169507 LOC35;
		Ropeobj169006* LOC36;
		memset((void*)LOC35, 0, sizeof(LOC35));
		LOC35[0] = a.res;
		LOC36 = 0;
		LOC36 = HEX25_169905(((NimStringDesc*) &TMP4853), LOC35, 1);
		add_169482(&(*r).res, LOC36);
	}
	LA26: ;
}

N_NIMCALL(void, gennew_510844)(Tproc505024* p, Tnode214790* n) {
	Tcompres505014 a;
	Ttype214828* t;
	Ttype214828* LOC1;
	TY501232 LOC2;
	memset((void*)(&a), 0, sizeof(a));
	gen_505704(p, (*n).kindU.S6.sons->data[((NI) 1)], (&a));
	LOC1 = 0;
	LOC1 = skiptypes_218113((*(*n).kindU.S6.sons->data[((NI) 1)]).typ, IL64(211106240964864));
	t = (*LOC1).sons->data[((NI) 0)];
	memset((void*)LOC2, 0, sizeof(LOC2));
	LOC2[0] = a.res;
	LOC2[1] = createvar_510148(p, t, NIM_FALSE);
	addf_170205(&(*p).body, ((NimStringDesc*) &TMP4860), LOC2, 2);
}

N_NIMCALL(void, genord_510874)(Tproc505024* p, Tnode214790* n, Tcompres505014* r) {
	Ttype214828* LOC1;
	LOC1 = 0;
	LOC1 = skiptypes_218113((*(*n).kindU.S6.sons->data[((NI) 1)]).typ, IL64(211106240964864));
	switch ((*LOC1).kind) {
	case ((NU8) 14):
	case ((NU8) 31) ... ((NU8) 35):
	case ((NU8) 2):
	{
		gen_505704(p, (*n).kindU.S6.sons->data[((NI) 1)], r);
	}
	break;
	case ((NU8) 1):
	{
		NimStringDesc* LOC4;
		LOC4 = 0;
		{
			if (!((*p).target == ((NU8) 0))) goto LA7;
			LOC4 = copyString(((NimStringDesc*) &TMP4861));
		}
		goto LA5;
		LA7: ;
		{
			LOC4 = copyString(((NimStringDesc*) &TMP4862));
		}
		LA5: ;
		unaryexpr_506618(p, n, r, ((NimStringDesc*) &TMP4749), LOC4);
	}
	break;
	default:
	{
		internalerror_187100((*n).info, ((NimStringDesc*) &TMP4863));
	}
	break;
	}
}

N_NIMCALL(void, gennewseq_510857)(Tproc505024* p, Tnode214790* n) {
	Tcompres505014 x;
	Tcompres505014 y;
	Ttype214828* t;
	Ttype214828* LOC1;
	TY474656 LOC2;
	memset((void*)(&x), 0, sizeof(x));
	memset((void*)(&y), 0, sizeof(y));
	gen_505704(p, (*n).kindU.S6.sons->data[((NI) 1)], (&x));
	gen_505704(p, (*n).kindU.S6.sons->data[((NI) 2)], (&y));
	LOC1 = 0;
	LOC1 = skiptypes_218113((*(*n).kindU.S6.sons->data[((NI) 1)]).typ, IL64(211106240964864));
	t = (*LOC1).sons->data[((NI) 0)];
	memset((void*)LOC2, 0, sizeof(LOC2));
	LOC2[0] = rdloc_505100((&x));
	LOC2[1] = rdloc_505100((&y));
	LOC2[2] = createvar_510148(p, t, NIM_FALSE);
	addf_170205(&(*p).body, ((NimStringDesc*) &TMP4893), LOC2, 3);
}

N_NIMCALL(void, genof_510984)(Tproc505024* p, Tnode214790* n, Tcompres505014* r) {
	Tcompres505014 x;
	Ttype214828* t;
	memset((void*)(&x), 0, sizeof(x));
	t = skiptypes_218113((*(*n).kindU.S6.sons->data[((NI) 2)]).typ, IL64(211106248304896));
	gen_505704(p, (*n).kindU.S6.sons->data[((NI) 1)], (&x));
	{
		TY501232 LOC5;
		if (!(((*t).flags &(1U<<((NU)(((NU8) 2))&31U)))!=0)) goto LA3;
		memset((void*)LOC5, 0, sizeof(LOC5));
		LOC5[0] = x.res;
		LOC5[1] = gentypeinfo_505282(p, t);
		unsureAsgnRef((void**) (&(*r).res), HEX25_169905(((NimStringDesc*) &TMP4894), LOC5, 2));
	}
	goto LA1;
	LA3: ;
	{
		TY501232 LOC7;
		usemagic_505722(p, ((NimStringDesc*) &TMP4895));
		memset((void*)LOC7, 0, sizeof(LOC7));
		LOC7[0] = x.res;
		LOC7[1] = gentypeinfo_505282(p, t);
		unsureAsgnRef((void**) (&(*r).res), HEX25_169905(((NimStringDesc*) &TMP4896), LOC7, 2));
	}
	LA1: ;
	(*r).kind = ((NU8) 1);
}

N_NIMCALL(void, genreset_511023)(Tproc505024* p, Tnode214790* n) {
	Tcompres505014 x;
	TY501232 LOC1;
	memset((void*)(&x), 0, sizeof(x));
	usemagic_505722(p, ((NimStringDesc*) &TMP4897));
	gen_505704(p, (*n).kindU.S6.sons->data[((NI) 1)], (&x));
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = x.res;
	LOC1[1] = gentypeinfo_505282(p, (*(*n).kindU.S6.sons->data[((NI) 1)]).typ);
	addf_170205(&(*p).body, ((NimStringDesc*) &TMP4898), LOC1, 2);
}

static N_INLINE(Tnode214790*, HEX5BHEX5D_215238)(Tnode214790* n, NI i) {
	Tnode214790* result;
	result = 0;
	result = (*n).kindU.S6.sons->data[i];
	return result;
}

N_NIMCALL(void, genargnoparam_509414)(Tproc505024* p, Tnode214790* n, Tcompres505014* r) {
	Tcompres505014 a;
	memset((void*)(&a), 0, sizeof(a));
	gen_505704(p, n, (&a));
	{
		if (!(a.typ == ((NU8) 8))) goto LA3;
		add_169482(&(*r).res, a.address);
		add_169487(&(*r).res, ((NimStringDesc*) &TMP4664));
		add_169482(&(*r).res, a.res);
	}
	goto LA1;
	LA3: ;
	{
		add_169482(&(*r).res, a.res);
	}
	LA1: ;
}

N_NIMCALL(void, genecho_510091)(Tproc505024* p, Tnode214790* n_510094, Tcompres505014* r) {
	Tnode214790* n;
	Tnode214790* LOC1;
	usemagic_505722(p, ((NimStringDesc*) &TMP4899));
	usemagic_505722(p, ((NimStringDesc*) &TMP4900));
	add_169487(&(*r).res, ((NimStringDesc*) &TMP4901));
	LOC1 = 0;
	LOC1 = HEX5BHEX5D_215238(n_510094, ((NI) 1));
	n = skipconv_249082(LOC1);
	{
		NimStringDesc* LOC6;
		if (!!(((*n).kind == ((NU8) 41)))) goto LA4;
		LOC6 = 0;
		LOC6 = HEX24_187183(TMP4902);
		internalerror_187113(LOC6);
	}
	LA4: ;
	{
		NI i_510127;
		NI HEX3Atmp_510134;
		NI LOC8;
		NI res_510137;
		i_510127 = 0;
		HEX3Atmp_510134 = 0;
		LOC8 = 0;
		LOC8 = sonslen_217351(n);
		HEX3Atmp_510134 = (NI)(LOC8 - ((NI) 1));
		res_510137 = ((NI) 0);
		{
			while (1) {
				if (!(res_510137 <= HEX3Atmp_510134)) goto LA10;
				i_510127 = res_510137;
				{
					Tnode214790* it;
					it = (*n).kindU.S6.sons->data[i_510127];
					{
						NIM_BOOL LOC14;
						LOC14 = 0;
						LOC14 = iscompiletimeonly_248906((*it).typ);
						if (!LOC14) goto LA15;
						goto LA11;
					}
					LA15: ;
					{
						if (!(((NI) 0) < i_510127)) goto LA19;
						add_169487(&(*r).res, ((NimStringDesc*) &TMP4664));
					}
					LA19: ;
					genargnoparam_509414(p, it, r);
				} LA11: ;
				res_510137 += ((NI) 1);
			} LA10: ;
		}
	}
	add_169487(&(*r).res, ((NimStringDesc*) &TMP4903));
	(*r).kind = ((NU8) 1);
}

N_NIMCALL(void, ternaryexpr_506596)(Tproc505024* p, Tnode214790* n, Tcompres505014* r, NimStringDesc* magic, NimStringDesc* frmt) {
	Tcompres505014 x;
	Tcompres505014 y;
	Tcompres505014 z;
	TY474656 LOC1;
	memset((void*)(&x), 0, sizeof(x));
	memset((void*)(&y), 0, sizeof(y));
	memset((void*)(&z), 0, sizeof(z));
	usemagic_505722(p, magic);
	gen_505704(p, (*n).kindU.S6.sons->data[((NI) 1)], (&x));
	gen_505704(p, (*n).kindU.S6.sons->data[((NI) 2)], (&y));
	gen_505704(p, (*n).kindU.S6.sons->data[((NI) 3)], (&z));
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = rdloc_505100((&x));
	LOC1[1] = rdloc_505100((&y));
	LOC1[2] = rdloc_505100((&z));
	unsureAsgnRef((void**) (&(*r).res), HEX25_169905(frmt, LOC1, 3));
	(*r).kind = ((NU8) 1);
}

N_NIMCALL(void, genarg_509436)(Tproc505024* p, Tnode214790* n, Tsym214822* param, Tcompres505014* r) {
	Tcompres505014 a;
	memset((void*)(&a), 0, sizeof(a));
	gen_505704(p, n, (&a));
	{
		NIM_BOOL LOC3;
		Ttype214828* LOC4;
		TY501232 LOC8;
		Ropeobj169006* LOC9;
		LOC3 = 0;
		LOC4 = 0;
		LOC4 = skiptypes_218113((*param).typ, IL64(211106240964864));
		LOC3 = ((IL64(281475110928384) &((NU64)1<<((NU)((*LOC4).kind)&63U)))!=0);
		if (!(LOC3)) goto LA5;
		LOC3 = (a.typ == ((NU8) 8));
		LA5: ;
		if (!LOC3) goto LA6;
		memset((void*)LOC8, 0, sizeof(LOC8));
		LOC8[0] = a.address;
		LOC8[1] = a.res;
		LOC9 = 0;
		LOC9 = HEX25_169905(((NimStringDesc*) &TMP4910), LOC8, 2);
		add_169482(&(*r).res, LOC9);
	}
	goto LA1;
	LA6: ;
	{
		if (!(a.typ == ((NU8) 8))) goto LA11;
		add_169482(&(*r).res, a.address);
		add_169487(&(*r).res, ((NimStringDesc*) &TMP4664));
		add_169482(&(*r).res, a.res);
	}
	goto LA1;
	LA11: ;
	{
		add_169482(&(*r).res, a.res);
	}
	LA1: ;
}

N_NIMCALL(void, genargs_509483)(Tproc505024* p, Tnode214790* n, Tcompres505014* r) {
	NIM_BOOL hasargs;
	Ttype214828* typ;
	add_169487(&(*r).res, ((NimStringDesc*) &TMP4909));
	hasargs = NIM_FALSE;
	typ = skiptypes_218113((*(*n).kindU.S6.sons->data[((NI) 0)]).typ, IL64(211106232576256));
	{
		NI i_509812;
		NI HEX3Atmp_510017;
		NI LOC2;
		NI res_510020;
		i_509812 = 0;
		HEX3Atmp_510017 = 0;
		LOC2 = 0;
		LOC2 = sonslen_217351(n);
		HEX3Atmp_510017 = (NI)(LOC2 - ((NI) 1));
		res_510020 = ((NI) 1);
		{
			while (1) {
				if (!(res_510020 <= HEX3Atmp_510017)) goto LA4;
				i_509812 = res_510020;
				{
					Tnode214790* it;
					Tnode214790* paramtype;
					it = (*n).kindU.S6.sons->data[i_509812];
					paramtype = NIM_NIL;
					{
						NI LOC8;
						LOC8 = 0;
						LOC8 = sonslen_217327(typ);
						if (!(i_509812 < LOC8)) goto LA9;
						paramtype = (*(*typ).n).kindU.S6.sons->data[i_509812];
						{
							NIM_BOOL LOC13;
							LOC13 = 0;
							LOC13 = iscompiletimeonly_248906((*paramtype).typ);
							if (!LOC13) goto LA14;
							goto LA5;
						}
						LA14: ;
					}
					LA9: ;
					{
						if (!hasargs) goto LA18;
						add_169487(&(*r).res, ((NimStringDesc*) &TMP4664));
					}
					LA18: ;
					{
						if (!paramtype == 0) goto LA22;
						genargnoparam_509414(p, it, r);
					}
					goto LA20;
					LA22: ;
					{
						genarg_509436(p, it, (*paramtype).kindU.S4.sym, r);
					}
					LA20: ;
					hasargs = NIM_TRUE;
				} LA5: ;
				res_510020 += ((NI) 1);
			} LA4: ;
		}
	}
	add_169487(&(*r).res, ((NimStringDesc*) &TMP4903));
	(*r).kind = ((NU8) 1);
}

N_NIMCALL(void, gencall_510024)(Tproc505024* p, Tnode214790* n, Tcompres505014* r) {
	gen_505704(p, (*n).kindU.S6.sons->data[((NI) 0)], r);
	genargs_509483(p, n, r);
}

N_NIMCALL(void, genmagic_511035)(Tproc505024* p, Tnode214790* n, Tcompres505014* r) {
	Tcompres505014 a;
	Ropeobj169006* line;
	Ropeobj169006* filen;
	NU8 op;
	memset((void*)(&a), 0, sizeof(a));
	line = 0;
	filen = 0;
	op = (*(*(*n).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym).magic;
	switch (op) {
	case ((NU8) 126):
	{
		genor_506046(p, (*n).kindU.S6.sons->data[((NI) 1)], (*n).kindU.S6.sons->data[((NI) 2)], r);
	}
	break;
	case ((NU8) 125):
	{
		genand_505842(p, (*n).kindU.S6.sons->data[((NI) 1)], (*n).kindU.S6.sons->data[((NI) 2)], r);
	}
	break;
	case ((NU8) 44) ... ((NU8) 123):
	{
		arith_506671(p, n, r, op);
	}
	break;
	case ((NU8) 148):
	{
		genrepr_510973(p, n, r);
	}
	break;
	case ((NU8) 155):
	{
		genswap_508574(p, n);
	}
	break;
	case ((NU8) 25):
	{
		{
			if (!!((((*p).options &(1U<<((NU)(((NU8) 5))&31U)))!=0))) goto LA9;
			unaryexpr_506618(p, n, r, ((NimStringDesc*) &TMP4749), ((NimStringDesc*) &TMP4841));
		}
		goto LA7;
		LA9: ;
		{
			unaryexpr_506618(p, n, r, ((NimStringDesc*) &TMP4752), ((NimStringDesc*) &TMP4842));
		}
		LA7: ;
	}
	break;
	case ((NU8) 143):
	{
		binaryexpr_506578(p, n, r, ((NimStringDesc*) &TMP4843), ((NimStringDesc*) &TMP4844));
	}
	break;
	case ((NU8) 144):
	{
		{
			Ttype214828* LOC16;
			LOC16 = 0;
			LOC16 = skiptypes_218113((*(*n).kindU.S6.sons->data[((NI) 1)]).typ, IL64(211106242013440));
			if (!((*LOC16).kind == ((NU8) 29))) goto LA17;
			binaryexpr_506578(p, n, r, ((NimStringDesc*) &TMP4749), ((NimStringDesc*) &TMP4845));
		}
		goto LA14;
		LA17: ;
		{
			binaryexpr_506578(p, n, r, ((NimStringDesc*) &TMP4749), ((NimStringDesc*) &TMP4846));
		}
		LA14: ;
	}
	break;
	case ((NU8) 145):
	{
		binaryexpr_506578(p, n, r, ((NimStringDesc*) &TMP4749), ((NimStringDesc*) &TMP4847));
	}
	break;
	case ((NU8) 137):
	{
		genconstrstr_510891(p, n, r);
	}
	break;
	case ((NU8) 127):
	{
		binaryexpr_506578(p, n, r, ((NimStringDesc*) &TMP4854), ((NimStringDesc*) &TMP4855));
	}
	break;
	case ((NU8) 128):
	{
		binaryexpr_506578(p, n, r, ((NimStringDesc*) &TMP4856), ((NimStringDesc*) &TMP4857));
	}
	break;
	case ((NU8) 129):
	{
		binaryexpr_506578(p, n, r, ((NimStringDesc*) &TMP4856), ((NimStringDesc*) &TMP4858));
	}
	break;
	case ((NU8) 156):
	{
		unaryexpr_506618(p, n, r, ((NimStringDesc*) &TMP4749), ((NimStringDesc*) &TMP4859));
	}
	break;
	case ((NU8) 124):
	{
		genrepr_510973(p, n, r);
	}
	break;
	case ((NU8) 29):
	case ((NU8) 30):
	{
		gennew_510844(p, n);
	}
	break;
	case ((NU8) 9):
	{
		NI64 LOC29;
		LOC29 = 0;
		LOC29 = getsize_240124((*(*n).kindU.S6.sons->data[((NI) 1)]).typ);
		unsureAsgnRef((void**) (&(*r).res), rope_169401(LOC29));
	}
	break;
	case ((NU8) 41):
	case ((NU8) 157):
	{
		gen_505704(p, (*n).kindU.S6.sons->data[((NI) 1)], r);
	}
	break;
	case ((NU8) 28):
	{
		genord_510874(p, n, r);
	}
	break;
	case ((NU8) 33):
	{
		unaryexpr_506618(p, n, r, ((NimStringDesc*) &TMP4749), ((NimStringDesc*) &TMP4864));
	}
	break;
	case ((NU8) 36):
	{
		unaryexpr_506618(p, n, r, ((NimStringDesc*) &TMP4749), ((NimStringDesc*) &TMP4865));
	}
	break;
	case ((NU8) 35):
	case ((NU8) 32):
	case ((NU8) 34):
	{
		unaryexpr_506618(p, n, r, ((NimStringDesc*) &TMP4749), ((NimStringDesc*) &TMP4866));
	}
	break;
	case ((NU8) 37):
	{
		unaryexpr_506618(p, n, r, ((NimStringDesc*) &TMP4749), ((NimStringDesc*) &TMP4867));
	}
	break;
	case ((NU8) 8):
	{
		{
			Ttype214828* LOC39;
			LOC39 = 0;
			LOC39 = skiptypes_218113((*(*n).kindU.S6.sons->data[((NI) 1)]).typ, IL64(211106240964864));
			if (!((*LOC39).kind == ((NU8) 28))) goto LA40;
			unaryexpr_506618(p, n, r, ((NimStringDesc*) &TMP4749), ((NimStringDesc*) &TMP4868));
		}
		goto LA37;
		LA40: ;
		{
			unaryexpr_506618(p, n, r, ((NimStringDesc*) &TMP4749), ((NimStringDesc*) &TMP4869));
		}
		LA37: ;
	}
	break;
	case ((NU8) 26):
	{
		{
			if (!!((((*p).options &(1U<<((NU)(((NU8) 5))&31U)))!=0))) goto LA46;
			binaryexpr_506578(p, n, r, ((NimStringDesc*) &TMP4749), ((NimStringDesc*) &TMP4870));
		}
		goto LA44;
		LA46: ;
		{
			binaryexpr_506578(p, n, r, ((NimStringDesc*) &TMP4748), ((NimStringDesc*) &TMP4871));
		}
		LA44: ;
	}
	break;
	case ((NU8) 27):
	{
		{
			if (!!((((*p).options &(1U<<((NU)(((NU8) 5))&31U)))!=0))) goto LA52;
			binaryexpr_506578(p, n, r, ((NimStringDesc*) &TMP4749), ((NimStringDesc*) &TMP4872));
		}
		goto LA50;
		LA52: ;
		{
			binaryexpr_506578(p, n, r, ((NimStringDesc*) &TMP4752), ((NimStringDesc*) &TMP4873));
		}
		LA50: ;
	}
	break;
	case ((NU8) 150):
	{
		binaryexpr_506578(p, n, r, ((NimStringDesc*) &TMP4749), ((NimStringDesc*) &TMP4874));
	}
	break;
	case ((NU8) 151):
	{
		binaryexpr_506578(p, n, r, ((NimStringDesc*) &TMP4749), ((NimStringDesc*) &TMP4875));
	}
	break;
	case ((NU8) 40):
	{
		unaryexpr_506618(p, n, r, ((NimStringDesc*) &TMP4876), ((NimStringDesc*) &TMP4877));
	}
	break;
	case ((NU8) 132):
	{
		binaryexpr_506578(p, n, r, ((NimStringDesc*) &TMP4878), ((NimStringDesc*) &TMP4879));
	}
	break;
	case ((NU8) 131):
	{
		binaryexpr_506578(p, n, r, ((NimStringDesc*) &TMP4880), ((NimStringDesc*) &TMP4881));
	}
	break;
	case ((NU8) 130):
	{
		binaryexpr_506578(p, n, r, ((NimStringDesc*) &TMP4882), ((NimStringDesc*) &TMP4883));
	}
	break;
	case ((NU8) 133):
	{
		binaryexpr_506578(p, n, r, ((NimStringDesc*) &TMP4884), ((NimStringDesc*) &TMP4885));
	}
	break;
	case ((NU8) 134):
	{
		binaryexpr_506578(p, n, r, ((NimStringDesc*) &TMP4886), ((NimStringDesc*) &TMP4887));
	}
	break;
	case ((NU8) 135):
	{
		binaryexpr_506578(p, n, r, ((NimStringDesc*) &TMP4888), ((NimStringDesc*) &TMP4889));
	}
	break;
	case ((NU8) 38):
	{
		binaryexpr_506578(p, n, r, ((NimStringDesc*) &TMP4749), ((NimStringDesc*) &TMP4890));
	}
	break;
	case ((NU8) 39):
	{
		binaryexpr_506578(p, n, r, ((NimStringDesc*) &TMP4749), ((NimStringDesc*) &TMP4891));
	}
	break;
	case ((NU8) 147):
	{
		binaryexpr_506578(p, n, r, ((NimStringDesc*) &TMP4749), ((NimStringDesc*) &TMP4892));
	}
	break;
	case ((NU8) 31):
	{
		gennewseq_510857(p, n);
	}
	break;
	case ((NU8) 12):
	{
		genof_510984(p, n, r);
	}
	break;
	case ((NU8) 163):
	{
		genreset_511023(p, n);
	}
	break;
	case ((NU8) 17):
	{
		genecho_510091(p, n, r);
	}
	break;
	case ((NU8) 216) ... ((NU8) 250):
	case ((NU8) 19):
	case ((NU8) 20):
	{
		localerror_187080((*n).info, ((NU16) 229), (*(*(*(*n).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym).name).s);
	}
	break;
	case ((NU8) 158):
	{
		binaryexpr_506578(p, n, r, ((NimStringDesc*) &TMP4749), ((NimStringDesc*) &TMP4904));
	}
	break;
	case ((NU8) 159):
	{
		ternaryexpr_506596(p, n, r, ((NimStringDesc*) &TMP4749), ((NimStringDesc*) &TMP4905));
	}
	break;
	case ((NU8) 160):
	{
		unaryexpr_506618(p, n, r, ((NimStringDesc*) &TMP4906), ((NimStringDesc*) &TMP4907));
	}
	break;
	case ((NU8) 161):
	{
		unaryexpr_506618(p, n, r, ((NimStringDesc*) &TMP4906), ((NimStringDesc*) &TMP4908));
	}
	break;
	case ((NU8) 139):
	{
		genprocforsymifneeded_509129(p, (*(*n).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym);
		gencall_510024(p, n, r);
	}
	break;
	case ((NU8) 162):
	{
		usemagic_505722(p, ((NimStringDesc*) &TMP4911));
		gencall_510024(p, n, r);
	}
	break;
	default:
	{
		gencall_510024(p, n, r);
	}
	break;
	}
}

N_NIMCALL(void, geninfixcall_510031)(Tproc505024* p, Tnode214790* n, Tcompres505014* r) {
	Tcompres505014 op;
	gen_505704(p, (*n).kindU.S6.sons->data[((NI) 1)], r);
	{
		TY501232 LOC9;
		if (!((*r).typ == ((NU8) 8))) goto LA3;
		{
			if (!((*r).address == NIM_NIL)) goto LA7;
			globalerror_187076((*n).info, ((NimStringDesc*) &TMP4912));
		}
		LA7: ;
		memset((void*)LOC9, 0, sizeof(LOC9));
		LOC9[0] = (*r).address;
		LOC9[1] = (*r).res;
		unsureAsgnRef((void**) (&(*r).res), HEX25_169905(((NimStringDesc*) &TMP4910), LOC9, 2));
		unsureAsgnRef((void**) (&(*r).address), NIM_NIL);
		(*r).typ = ((NU8) 0);
	}
	LA3: ;
	add_169487(&(*r).res, ((NimStringDesc*) &TMP4913));
	memset((void*)(&op), 0, sizeof(op));
	gen_505704(p, (*n).kindU.S6.sons->data[((NI) 0)], (&op));
	add_169482(&(*r).res, op.res);
	add_169487(&(*r).res, ((NimStringDesc*) &TMP4909));
	{
		NI i_510078;
		NI HEX3Atmp_510084;
		NI LOC11;
		NI res_510087;
		i_510078 = 0;
		HEX3Atmp_510084 = 0;
		LOC11 = 0;
		LOC11 = sonslen_217351(n);
		HEX3Atmp_510084 = (NI)(LOC11 - ((NI) 1));
		res_510087 = ((NI) 2);
		{
			while (1) {
				if (!(res_510087 <= HEX3Atmp_510084)) goto LA13;
				i_510078 = res_510087;
				{
					if (!(((NI) 2) < i_510078)) goto LA16;
					add_169487(&(*r).res, ((NimStringDesc*) &TMP4664));
				}
				LA16: ;
				genargnoparam_509414(p, (*n).kindU.S6.sons->data[i_510078], r);
				res_510087 += ((NI) 1);
			} LA13: ;
		}
	}
	add_169487(&(*r).res, ((NimStringDesc*) &TMP4903));
	(*r).kind = ((NU8) 1);
}

N_NIMCALL(void, gensetconstr_511112)(Tproc505024* p, Tnode214790* n, Tcompres505014* r) {
	Tcompres505014 a;
	Tcompres505014 b;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&b), 0, sizeof(b));
	usemagic_505722(p, ((NimStringDesc*) &TMP4914));
	unsureAsgnRef((void**) (&(*r).res), rope_169277(((NimStringDesc*) &TMP4915)));
	(*r).kind = ((NU8) 1);
	{
		NI i_511131;
		NI HEX3Atmp_511157;
		NI LOC2;
		NI res_511160;
		i_511131 = 0;
		HEX3Atmp_511157 = 0;
		LOC2 = 0;
		LOC2 = sonslen_217351(n);
		HEX3Atmp_511157 = (NI)(LOC2 - ((NI) 1));
		res_511160 = ((NI) 0);
		{
			while (1) {
				Tnode214790* it;
				if (!(res_511160 <= HEX3Atmp_511157)) goto LA4;
				i_511131 = res_511160;
				{
					if (!(((NI) 0) < i_511131)) goto LA7;
					add_169487(&(*r).res, ((NimStringDesc*) &TMP4664));
				}
				LA7: ;
				it = (*n).kindU.S6.sons->data[i_511131];
				{
					TY501232 LOC13;
					if (!((*it).kind == ((NU8) 44))) goto LA11;
					gen_505704(p, (*it).kindU.S6.sons->data[((NI) 0)], (&a));
					gen_505704(p, (*it).kindU.S6.sons->data[((NI) 1)], (&b));
					memset((void*)LOC13, 0, sizeof(LOC13));
					LOC13[0] = a.res;
					LOC13[1] = b.res;
					addf_170205(&(*r).res, ((NimStringDesc*) &TMP4694), LOC13, 2);
				}
				goto LA9;
				LA11: ;
				{
					gen_505704(p, it, (&a));
					add_169482(&(*r).res, a.res);
				}
				LA9: ;
				res_511160 += ((NI) 1);
			} LA4: ;
		}
	}
	add_169487(&(*r).res, ((NimStringDesc*) &TMP4903));
}

N_NIMCALL(void, genarrayconstr_511164)(Tproc505024* p, Tnode214790* n, Tcompres505014* r) {
	Tcompres505014 a;
	memset((void*)(&a), 0, sizeof(a));
	unsureAsgnRef((void**) (&(*r).res), rope_169277(((NimStringDesc*) &TMP4700)));
	(*r).kind = ((NU8) 1);
	{
		NI i_511182;
		NI HEX3Atmp_511190;
		NI LOC2;
		NI res_511193;
		i_511182 = 0;
		HEX3Atmp_511190 = 0;
		LOC2 = 0;
		LOC2 = sonslen_217351(n);
		HEX3Atmp_511190 = (NI)(LOC2 - ((NI) 1));
		res_511193 = ((NI) 0);
		{
			while (1) {
				if (!(res_511193 <= HEX3Atmp_511190)) goto LA4;
				i_511182 = res_511193;
				{
					if (!(((NI) 0) < i_511182)) goto LA7;
					add_169487(&(*r).res, ((NimStringDesc*) &TMP4664));
				}
				LA7: ;
				gen_505704(p, (*n).kindU.S6.sons->data[i_511182], (&a));
				add_169482(&(*r).res, a.res);
				res_511193 += ((NI) 1);
			} LA4: ;
		}
	}
	add_169487(&(*r).res, ((NimStringDesc*) &TMP4701));
}

N_NIMCALL(void, gentupleconstr_511197)(Tproc505024* p, Tnode214790* n, Tcompres505014* r) {
	Tcompres505014 a;
	memset((void*)(&a), 0, sizeof(a));
	unsureAsgnRef((void**) (&(*r).res), rope_169277(((NimStringDesc*) &TMP4702)));
	(*r).kind = ((NU8) 1);
	{
		NI i_511215;
		NI HEX3Atmp_511245;
		NI LOC2;
		NI res_511248;
		i_511215 = 0;
		HEX3Atmp_511245 = 0;
		LOC2 = 0;
		LOC2 = sonslen_217351(n);
		HEX3Atmp_511245 = (NI)(LOC2 - ((NI) 1));
		res_511248 = ((NI) 0);
		{
			while (1) {
				Tnode214790* it;
				NimStringDesc* LOC13;
				TY501232 LOC19;
				if (!(res_511248 <= HEX3Atmp_511245)) goto LA4;
				i_511215 = res_511248;
				{
					if (!(((NI) 0) < i_511215)) goto LA7;
					add_169487(&(*r).res, ((NimStringDesc*) &TMP4664));
				}
				LA7: ;
				it = (*n).kindU.S6.sons->data[i_511215];
				{
					if (!((*it).kind == ((NU8) 34))) goto LA11;
					it = (*it).kindU.S6.sons->data[((NI) 1)];
				}
				LA11: ;
				gen_505704(p, it, (&a));
				LOC13 = 0;
				{
					if (!((*p).target == ((NU8) 0))) goto LA16;
					LOC13 = copyString(((NimStringDesc*) &TMP4916));
				}
				goto LA14;
				LA16: ;
				{
					LOC13 = copyString(((NimStringDesc*) &TMP4704));
				}
				LA14: ;
				memset((void*)LOC19, 0, sizeof(LOC19));
				LOC19[0] = rope_169401(((NI64) (i_511215)));
				LOC19[1] = a.res;
				addf_170205(&(*r).res, LOC13, LOC19, 2);
				res_511248 += ((NI) 1);
			} LA4: ;
		}
	}
	add_169487(&(*r).res, ((NimStringDesc*) &TMP4705));
}

N_NIMCALL(void, genobjconstr_511252)(Tproc505024* p, Tnode214790* n, Tcompres505014* r) {
	Tcompres505014 a;
	Ropeobj169006* initlist;
	Intset211035 fieldids;
	Ttype214828* t;
	TY169507 LOC25;
	memset((void*)(&a), 0, sizeof(a));
	(*r).kind = ((NU8) 1);
	initlist = 0;
	memset((void*)(&fieldids), 0, sizeof(fieldids));
	chckNil((void*)(&fieldids));
	memset((void*)(&fieldids), 0, sizeof(fieldids));
	initintset_211885((&fieldids));
	{
		NI i_511272;
		NI HEX3Atmp_511345;
		NI LOC2;
		NI res_511348;
		i_511272 = 0;
		HEX3Atmp_511345 = 0;
		LOC2 = 0;
		LOC2 = sonslen_217351(n);
		HEX3Atmp_511345 = (NI)(LOC2 - ((NI) 1));
		res_511348 = ((NI) 1);
		{
			while (1) {
				Tnode214790* it;
				Tsym214822* f;
				NimStringDesc* LOC18;
				TY501232 LOC24;
				if (!(res_511348 <= HEX3Atmp_511345)) goto LA4;
				i_511272 = res_511348;
				{
					if (!(((NI) 1) < i_511272)) goto LA7;
					add_169487(&initlist, ((NimStringDesc*) &TMP4664));
				}
				LA7: ;
				it = (*n).kindU.S6.sons->data[i_511272];
				{
					NimStringDesc* LOC13;
					if (!!(((*it).kind == ((NU8) 34)))) goto LA11;
					LOC13 = 0;
					LOC13 = HEX24_187183(TMP4917);
					internalerror_187113(LOC13);
				}
				LA11: ;
				gen_505704(p, (*it).kindU.S6.sons->data[((NI) 1)], (&a));
				f = (*(*it).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym;
				{
					if (!((*f).loc.r == NIM_NIL)) goto LA16;
					asgnRefNoCycle((void**) (&(*f).loc.r), manglename_505256(f));
				}
				LA16: ;
				incl_211832((&fieldids), (*f).Sup.id);
				LOC18 = 0;
				{
					if (!((*p).target == ((NU8) 0))) goto LA21;
					LOC18 = copyString(((NimStringDesc*) &TMP4918));
				}
				goto LA19;
				LA21: ;
				{
					LOC18 = copyString(((NimStringDesc*) &TMP4919));
				}
				LA19: ;
				memset((void*)LOC24, 0, sizeof(LOC24));
				LOC24[0] = (*f).loc.r;
				LOC24[1] = a.res;
				addf_170205(&initlist, LOC18, LOC24, 2);
				res_511348 += ((NI) 1);
			} LA4: ;
		}
	}
	t = skiptypes_218113((*n).typ, IL64(211106247256320));
	createobjinitlist_510208(p, t, (&fieldids), &initlist);
	memset((void*)LOC25, 0, sizeof(LOC25));
	LOC25[0] = initlist;
	unsureAsgnRef((void**) (&(*r).res), HEX25_169905(((NimStringDesc*) &TMP4710), LOC25, 1));
}

N_NIMCALL(void, genconv_511352)(Tproc505024* p, Tnode214790* n, Tcompres505014* r) {
	Ttype214828* dest;
	Ttype214828* src;
{	dest = skiptypes_218113((*n).typ, IL64(211106242013440));
	src = skiptypes_218113((*(*n).kindU.S6.sons->data[((NI) 1)]).typ, IL64(211106242013440));
	gen_505704(p, (*n).kindU.S6.sons->data[((NI) 1)], r);
	{
		if (!((*dest).kind == (*src).kind)) goto LA3;
		goto BeforeRet;
	}
	LA3: ;
	switch ((*dest).kind) {
	case ((NU8) 1):
	{
		NimStringDesc* LOC6;
		TY169507 LOC12;
		LOC6 = 0;
		{
			if (!((*p).target == ((NU8) 0))) goto LA9;
			LOC6 = copyString(((NimStringDesc*) &TMP4920));
		}
		goto LA7;
		LA9: ;
		{
			LOC6 = copyString(((NimStringDesc*) &TMP4862));
		}
		LA7: ;
		memset((void*)LOC12, 0, sizeof(LOC12));
		LOC12[0] = (*r).res;
		unsureAsgnRef((void**) (&(*r).res), HEX25_169905(LOC6, LOC12, 1));
		(*r).kind = ((NU8) 1);
	}
	break;
	case ((NU8) 31):
	{
		TY169507 LOC14;
		memset((void*)LOC14, 0, sizeof(LOC14));
		LOC14[0] = (*r).res;
		unsureAsgnRef((void**) (&(*r).res), HEX25_169905(((NimStringDesc*) &TMP4921), LOC14, 1));
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet: ;
}

N_NIMCALL(NI, getfieldposition_508640)(Tnode214790* f) {
	NI result;
	result = 0;
	switch ((*f).kind) {
	case ((NU8) 6) ... ((NU8) 15):
	{
		result = ((NI) ((*f).kindU.S1.intval));
	}
	break;
	case ((NU8) 3):
	{
		result = (*(*f).kindU.S4.sym).position;
	}
	break;
	default:
	{
		internalerror_187100((*f).info, ((NimStringDesc*) &TMP4927));
	}
	break;
	}
	return result;
}

N_NIMCALL(void, genfieldaddr_508648)(Tproc505024* p, Tnode214790* n, Tcompres505014* r) {
	Tcompres505014 a;
	Tnode214790* b;
	memset((void*)(&a), 0, sizeof(a));
	(*r).typ = ((NU8) 8);
	{
		if (!((*n).kind == ((NU8) 64))) goto LA3;
		b = (*n).kindU.S6.sons->data[((NI) 0)];
	}
	goto LA1;
	LA3: ;
	{
		b = n;
	}
	LA1: ;
	gen_505704(p, (*b).kindU.S6.sons->data[((NI) 0)], (&a));
	{
		Ttype214828* LOC8;
		NimStringDesc* LOC11;
		NI LOC12;
		NimStringDesc* LOC13;
		LOC8 = 0;
		LOC8 = skiptypes_218113((*(*b).kindU.S6.sons->data[((NI) 0)]).typ, IL64(211106242013440));
		if (!((*LOC8).kind == ((NU8) 18))) goto LA9;
		LOC11 = 0;
		LOC12 = 0;
		LOC12 = getfieldposition_508640((*b).kindU.S6.sons->data[((NI) 1)]);
		LOC13 = 0;
		LOC13 = nimIntToStr(LOC12);
		LOC11 = rawNewString(LOC13->Sup.len + 5);
appendString(LOC11, ((NimStringDesc*) &TMP4926));
appendString(LOC11, LOC13);
		unsureAsgnRef((void**) (&(*r).res), makejsstring_505278(LOC11));
	}
	goto LA6;
	LA9: ;
	{
		Tsym214822* f;
		NimStringDesc* LOC23;
		{
			if (!!(((*(*b).kindU.S6.sons->data[((NI) 1)]).kind == ((NU8) 3)))) goto LA17;
			internalerror_187100((*(*b).kindU.S6.sons->data[((NI) 1)]).info, ((NimStringDesc*) &TMP4928));
		}
		LA17: ;
		f = (*(*b).kindU.S6.sons->data[((NI) 1)]).kindU.S4.sym;
		{
			if (!((*f).loc.r == NIM_NIL)) goto LA21;
			asgnRefNoCycle((void**) (&(*f).loc.r), manglename_505256(f));
		}
		LA21: ;
		LOC23 = 0;
		LOC23 = HEX24_169856((*f).loc.r);
		unsureAsgnRef((void**) (&(*r).res), makejsstring_505278(LOC23));
	}
	LA6: ;
	{
		NimStringDesc* LOC28;
		if (!!(!((a.typ == ((NU8) 8))))) goto LA26;
		LOC28 = 0;
		LOC28 = HEX24_187183(TMP4929);
		internalerror_187113(LOC28);
	}
	LA26: ;
	unsureAsgnRef((void**) (&(*r).address), a.res);
	(*r).kind = ((NU8) 1);
}

N_NIMCALL(void, gencheckedfieldaddr_508776)(Tproc505024* p, Tnode214790* n, Tcompres505014* r) {
	Tnode214790* m;
	{
		if (!((*n).kind == ((NU8) 64))) goto LA3;
		m = (*n).kindU.S6.sons->data[((NI) 0)];
	}
	goto LA1;
	LA3: ;
	{
		m = n;
	}
	LA1: ;
	{
		NimStringDesc* LOC10;
		if (!!(((*m).kind == ((NU8) 46)))) goto LA8;
		LOC10 = 0;
		LOC10 = HEX24_187183(TMP4925);
		internalerror_187113(LOC10);
	}
	LA8: ;
	genfieldaddr_508648(p, (*m).kindU.S6.sons->data[((NI) 0)], r);
}

N_NIMCALL(void, genfieldaccess_508725)(Tproc505024* p, Tnode214790* n, Tcompres505014* r) {
	(*r).typ = ((NU8) 0);
	gen_505704(p, (*n).kindU.S6.sons->data[((NI) 0)], r);
	{
		Ttype214828* LOC3;
		TY501232 LOC6;
		NI LOC7;
		LOC3 = 0;
		LOC3 = skiptypes_218113((*(*n).kindU.S6.sons->data[((NI) 0)]).typ, IL64(211106242013440));
		if (!((*LOC3).kind == ((NU8) 18))) goto LA4;
		memset((void*)LOC6, 0, sizeof(LOC6));
		LOC6[0] = (*r).res;
		LOC7 = 0;
		LOC7 = getfieldposition_508640((*n).kindU.S6.sons->data[((NI) 1)]);
		LOC6[1] = rope_169401(((NI64) (LOC7)));
		unsureAsgnRef((void**) (&(*r).res), HEX25_169905(((NimStringDesc*) &TMP4930), LOC6, 2));
	}
	goto LA1;
	LA4: ;
	{
		Tsym214822* f;
		TY501232 LOC17;
		{
			if (!!(((*(*n).kindU.S6.sons->data[((NI) 1)]).kind == ((NU8) 3)))) goto LA11;
			internalerror_187100((*(*n).kindU.S6.sons->data[((NI) 1)]).info, ((NimStringDesc*) &TMP4931));
		}
		LA11: ;
		f = (*(*n).kindU.S6.sons->data[((NI) 1)]).kindU.S4.sym;
		{
			if (!((*f).loc.r == NIM_NIL)) goto LA15;
			asgnRefNoCycle((void**) (&(*f).loc.r), manglename_505256(f));
		}
		LA15: ;
		memset((void*)LOC17, 0, sizeof(LOC17));
		LOC17[0] = (*r).res;
		LOC17[1] = (*f).loc.r;
		unsureAsgnRef((void**) (&(*r).res), HEX25_169905(((NimStringDesc*) &TMP4932), LOC17, 2));
	}
	LA1: ;
	(*r).kind = ((NU8) 1);
}

N_NIMCALL(void, genarrayaddr_508817)(Tproc505024* p, Tnode214790* n, Tcompres505014* r) {
	Tcompres505014 a;
	Tcompres505014 b;
	NI64 first;
	Tnode214790* m;
	Ttype214828* typ;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&b), 0, sizeof(b));
	first = 0;
	(*r).typ = ((NU8) 8);
	{
		if (!((*n).kind == ((NU8) 64))) goto LA3;
		m = (*n).kindU.S6.sons->data[((NI) 0)];
	}
	goto LA1;
	LA3: ;
	{
		m = n;
	}
	LA1: ;
	gen_505704(p, (*m).kindU.S6.sons->data[((NI) 0)], (&a));
	gen_505704(p, (*m).kindU.S6.sons->data[((NI) 1)], (&b));
	{
		NIM_BOOL LOC8;
		NimStringDesc* LOC12;
		LOC8 = 0;
		LOC8 = !((a.typ == ((NU8) 8)));
		if (!(LOC8)) goto LA9;
		LOC8 = !((b.typ == ((NU8) 8)));
		LA9: ;
		if (!!(LOC8)) goto LA10;
		LOC12 = 0;
		LOC12 = HEX24_187183(TMP4933);
		internalerror_187113(LOC12);
	}
	LA10: ;
	unsureAsgnRef((void**) (&(*r).address), a.res);
	typ = skiptypes_218113((*(*m).kindU.S6.sons->data[((NI) 0)]).typ, IL64(211106247256320));
	{
		if (!((65552 &((NU64)1<<((NU)((*typ).kind)&63U)))!=0)) goto LA15;
		first = firstord_240001((*typ).sons->data[((NI) 0)]);
	}
	goto LA13;
	LA15: ;
	{
		first = IL64(0);
	}
	LA13: ;
	{
		NIM_BOOL LOC20;
		NIM_BOOL LOC22;
		TY474656 LOC25;
		LOC20 = 0;
		LOC20 = (((*p).options &(1U<<((NU)(((NU8) 4))&31U)))!=0);
		if (!(LOC20)) goto LA21;
		LOC22 = 0;
		LOC22 = isconstexpr_239336((*m).kindU.S6.sons->data[((NI) 1)]);
		LOC20 = !(LOC22);
		LA21: ;
		if (!LOC20) goto LA23;
		usemagic_505722(p, ((NimStringDesc*) &TMP4934));
		memset((void*)LOC25, 0, sizeof(LOC25));
		LOC25[0] = b.res;
		LOC25[1] = rope_169401(first);
		LOC25[2] = a.res;
		unsureAsgnRef((void**) (&(*r).res), HEX25_169905(((NimStringDesc*) &TMP4935), LOC25, 3));
	}
	goto LA18;
	LA23: ;
	{
		TY501232 LOC29;
		if (!!((first == IL64(0)))) goto LA27;
		memset((void*)LOC29, 0, sizeof(LOC29));
		LOC29[0] = b.res;
		LOC29[1] = rope_169401(first);
		unsureAsgnRef((void**) (&(*r).res), HEX25_169905(((NimStringDesc*) &TMP4936), LOC29, 2));
	}
	goto LA18;
	LA27: ;
	{
		unsureAsgnRef((void**) (&(*r).res), b.res);
	}
	LA18: ;
	(*r).kind = ((NU8) 1);
}

N_NIMCALL(void, genaddr_509008)(Tproc505024* p, Tnode214790* n, Tcompres505014* r) {
	switch ((*(*n).kindU.S6.sons->data[((NI) 0)]).kind) {
	case ((NU8) 3):
	{
		Tsym214822* s;
		s = (*(*n).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym;
		{
			if (!((*s).loc.r == NIM_NIL)) goto LA4;
			internalerror_187100((*n).info, ((NimStringDesc*) &TMP4922));
		}
		LA4: ;
		switch ((*s).kind) {
		case ((NU8) 8):
		case ((NU8) 9):
		case ((NU8) 11):
		{
			NU8 jstype;
			(*r).kind = ((NU8) 1);
			jstype = maptype_505241((*n).typ);
			{
				if (!(jstype == ((NU8) 7))) goto LA9;
				(*r).typ = ((NU8) 0);
				{
					NIM_BOOL LOC13;
					LOC13 = 0;
					LOC13 = isindirect_508937(s);
					if (!LOC13) goto LA14;
					unsureAsgnRef((void**) (&(*r).res), HEX26_169447((*s).loc.r, ((NimStringDesc*) &TMP4923)));
				}
				goto LA11;
				LA14: ;
				{
					unsureAsgnRef((void**) (&(*r).res), (*s).loc.r);
				}
				LA11: ;
				unsureAsgnRef((void**) (&(*r).address), NIM_NIL);
			}
			goto LA7;
			LA9: ;
			{
				NIM_BOOL LOC18;
				LOC18 = 0;
				LOC18 = !(((32776 & (*s).flags) == 0));
				if (LOC18) goto LA19;
				LOC18 = (jstype == ((NU8) 8));
				LA19: ;
				if (!LOC18) goto LA20;
				(*r).typ = ((NU8) 8);
				unsureAsgnRef((void**) (&(*r).address), (*s).loc.r);
				unsureAsgnRef((void**) (&(*r).res), rope_169277(((NimStringDesc*) &TMP4658)));
			}
			goto LA7;
			LA20: ;
			{
				gen_505704(p, (*n).kindU.S6.sons->data[((NI) 0)], r);
			}
			LA7: ;
		}
		break;
		default:
		{
			internalerror_187100((*n).info, ((NimStringDesc*) &TMP4924));
		}
		break;
		}
	}
	break;
	case ((NU8) 46):
	{
		gencheckedfieldaddr_508776(p, n, r);
	}
	break;
	case ((NU8) 45):
	{
		{
			NU8 LOC28;
			LOC28 = 0;
			LOC28 = maptype_505241((*n).typ);
			if (!(LOC28 == ((NU8) 8))) goto LA29;
			genfieldaddr_508648(p, (*n).kindU.S6.sons->data[((NI) 0)], r);
		}
		goto LA26;
		LA29: ;
		{
			genfieldaccess_508725(p, (*n).kindU.S6.sons->data[((NI) 0)], r);
		}
		LA26: ;
	}
	break;
	case ((NU8) 42):
	{
		Ttype214828* ty;
		ty = skiptypes_218113((*(*n).kindU.S6.sons->data[((NI) 0)]).typ, IL64(211106242013440));
		{
			if (!((IL64(316659484000272) &((NU64)1<<((NU)((*ty).kind)&63U)))!=0)) goto LA35;
			gen_505704(p, (*n).kindU.S6.sons->data[((NI) 0)], r);
		}
		goto LA33;
		LA35: ;
		{
			NU8 kindofindexedexpr;
			Ttype214828* LOC38;
			LOC38 = 0;
			LOC38 = skiptypes_218113((*(*(*n).kindU.S6.sons->data[((NI) 0)]).kindU.S6.sons->data[((NI) 0)]).typ, IL64(211106242013440));
			kindofindexedexpr = (*LOC38).kind;
			switch (kindofindexedexpr) {
			case ((NU8) 16):
			case ((NU8) 4):
			case ((NU8) 27):
			case ((NU8) 24):
			case ((NU8) 28):
			case ((NU8) 29):
			case ((NU8) 48):
			{
				genarrayaddr_508817(p, (*n).kindU.S6.sons->data[((NI) 0)], r);
			}
			break;
			case ((NU8) 18):
			{
				genfieldaddr_508648(p, (*n).kindU.S6.sons->data[((NI) 0)], r);
			}
			break;
			default:
			{
				NimStringDesc* LOC42;
				LOC42 = 0;
				LOC42 = rawNewString(reprEnum(kindofindexedexpr, (&NTI214241))->Sup.len + 21);
appendString(LOC42, ((NimStringDesc*) &TMP4937));
appendString(LOC42, reprEnum(kindofindexedexpr, (&NTI214241)));
appendChar(LOC42, 41);
				internalerror_187100((*(*n).kindU.S6.sons->data[((NI) 0)]).info, LOC42);
			}
			break;
			}
		}
		LA33: ;
	}
	break;
	case ((NU8) 66):
	{
		gen_505704(p, (*n).kindU.S6.sons->data[((NI) 0)], r);
	}
	break;
	default:
	{
		NimStringDesc* LOC45;
		LOC45 = 0;
		LOC45 = rawNewString(reprEnum((*(*n).kindU.S6.sons->data[((NI) 0)]).kind, (&NTI214020))->Sup.len + 9);
appendString(LOC45, ((NimStringDesc*) &TMP4938));
appendString(LOC45, reprEnum((*(*n).kindU.S6.sons->data[((NI) 0)]).kind, (&NTI214020)));
		internalerror_187100((*(*n).kindU.S6.sons->data[((NI) 0)]).info, LOC45);
	}
	break;
	}
}

N_NIMCALL(void, genderef_509369)(Tproc505024* p, Tnode214790* n, Tcompres505014* r) {
	{
		NU8 LOC3;
		LOC3 = 0;
		LOC3 = maptype_505241((*(*n).kindU.S6.sons->data[((NI) 0)]).typ);
		if (!(LOC3 == ((NU8) 7))) goto LA4;
		gen_505704(p, (*n).kindU.S6.sons->data[((NI) 0)], r);
	}
	goto LA1;
	LA4: ;
	{
		Tcompres505014 a;
		memset((void*)(&a), 0, sizeof(a));
		gen_505704(p, (*n).kindU.S6.sons->data[((NI) 0)], (&a));
		{
			TY501232 LOC11;
			if (!(a.typ == ((NU8) 8))) goto LA9;
			memset((void*)LOC11, 0, sizeof(LOC11));
			LOC11[0] = a.address;
			LOC11[1] = a.res;
			unsureAsgnRef((void**) (&(*r).res), HEX25_169905(((NimStringDesc*) &TMP4910), LOC11, 2));
		}
		goto LA7;
		LA9: ;
		{
			Ropeobj169006* tmp;
			TY501232 LOC15;
			if (!((*(*n).kindU.S6.sons->data[((NI) 0)]).kind == ((NU8) 27))) goto LA13;
			tmp = gettemp_505814(p, NIM_TRUE);
			memset((void*)LOC15, 0, sizeof(LOC15));
			LOC15[0] = tmp;
			LOC15[1] = a.res;
			unsureAsgnRef((void**) (&(*r).res), HEX25_169905(((NimStringDesc*) &TMP4939), LOC15, 2));
		}
		goto LA7;
		LA13: ;
		{
			internalerror_187100((*n).info, ((NimStringDesc*) &TMP4940));
		}
		LA7: ;
	}
	LA1: ;
}

N_NIMCALL(void, genarrayaccess_508897)(Tproc505024* p, Tnode214790* n, Tcompres505014* r) {
	Ttype214828* ty;
	TY501232 LOC14;
	ty = skiptypes_218113((*(*n).kindU.S6.sons->data[((NI) 0)]).typ, IL64(211106242013440));
	{
		Ttype214828* LOC5;
		if (!((6291456 &((NU64)1<<((NU)((*ty).kind)&63U)))!=0)) goto LA3;
		LOC5 = 0;
		LOC5 = lastson_217377(ty);
		ty = skiptypes_218113(LOC5, IL64(211106242013440));
	}
	LA3: ;
	switch ((*ty).kind) {
	case ((NU8) 16):
	case ((NU8) 4):
	case ((NU8) 27):
	case ((NU8) 24):
	case ((NU8) 28):
	case ((NU8) 29):
	case ((NU8) 48):
	{
		genarrayaddr_508817(p, n, r);
	}
	break;
	case ((NU8) 18):
	{
		genfieldaddr_508648(p, n, r);
	}
	break;
	default:
	{
		NimStringDesc* LOC9;
		LOC9 = 0;
		LOC9 = rawNewString(reprEnum((*ty).kind, (&NTI214241))->Sup.len + 21);
appendString(LOC9, ((NimStringDesc*) &TMP4937));
appendString(LOC9, reprEnum((*ty).kind, (&NTI214241)));
appendChar(LOC9, 41);
		internalerror_187100((*n).info, LOC9);
	}
	break;
	}
	(*r).typ = ((NU8) 0);
	{
		if (!((*r).res == NIM_NIL)) goto LA12;
		internalerror_187100((*n).info, ((NimStringDesc*) &TMP4941));
	}
	LA12: ;
	memset((void*)LOC14, 0, sizeof(LOC14));
	LOC14[0] = (*r).address;
	LOC14[1] = (*r).res;
	unsureAsgnRef((void**) (&(*r).res), HEX25_169905(((NimStringDesc*) &TMP4910), LOC14, 2));
	unsureAsgnRef((void**) (&(*r).address), NIM_NIL);
	(*r).kind = ((NU8) 1);
}

N_NIMCALL(void, gencheckedfieldaccess_508810)(Tproc505024* p, Tnode214790* n, Tcompres505014* r) {
	genfieldaccess_508725(p, (*n).kindU.S6.sons->data[((NI) 0)], r);
}

N_NIMCALL(void, upconv_511384)(Tproc505024* p, Tnode214790* n, Tcompres505014* r) {
	gen_505704(p, (*n).kindU.S6.sons->data[((NI) 0)], r);
}

N_NIMCALL(void, genrangechck_511391)(Tproc505024* p, Tnode214790* n, Tcompres505014* r, NimStringDesc* magic) {
	Tcompres505014 a;
	Tcompres505014 b;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&b), 0, sizeof(b));
	gen_505704(p, (*n).kindU.S6.sons->data[((NI) 0)], r);
	{
		TY474656 LOC5;
		if (!(((*p).options &(1U<<((NU)(((NU8) 3))&31U)))!=0)) goto LA3;
		gen_505704(p, (*n).kindU.S6.sons->data[((NI) 1)], (&a));
		gen_505704(p, (*n).kindU.S6.sons->data[((NI) 2)], (&b));
		usemagic_505722(p, ((NimStringDesc*) &TMP4942));
		memset((void*)LOC5, 0, sizeof(LOC5));
		LOC5[0] = (*r).res;
		LOC5[1] = a.res;
		LOC5[2] = b.res;
		unsureAsgnRef((void**) (&(*r).res), HEX25_169905(((NimStringDesc*) &TMP4943), LOC5, 3));
		(*r).kind = ((NU8) 1);
	}
	LA3: ;
}

N_NIMCALL(void, convstrtocstr_511419)(Tproc505024* p, Tnode214790* n, Tcompres505014* r) {
	{
		if (!((*(*n).kindU.S6.sons->data[((NI) 0)]).kind == ((NU8) 72))) goto LA3;
		gen_505704(p, (*(*n).kindU.S6.sons->data[((NI) 0)]).kindU.S6.sons->data[((NI) 0)], r);
	}
	goto LA1;
	LA3: ;
	{
		TY169507 LOC10;
		gen_505704(p, (*n).kindU.S6.sons->data[((NI) 0)], r);
		{
			if (!((*r).res == NIM_NIL)) goto LA8;
			internalerror_187100((*n).info, ((NimStringDesc*) &TMP4946));
		}
		LA8: ;
		usemagic_505722(p, ((NimStringDesc*) &TMP4899));
		memset((void*)LOC10, 0, sizeof(LOC10));
		LOC10[0] = (*r).res;
		unsureAsgnRef((void**) (&(*r).res), HEX25_169905(((NimStringDesc*) &TMP4947), LOC10, 1));
		(*r).kind = ((NU8) 1);
	}
	LA1: ;
}

N_NIMCALL(void, convcstrtostr_511452)(Tproc505024* p, Tnode214790* n, Tcompres505014* r) {
	{
		if (!((*(*n).kindU.S6.sons->data[((NI) 0)]).kind == ((NU8) 71))) goto LA3;
		gen_505704(p, (*(*n).kindU.S6.sons->data[((NI) 0)]).kindU.S6.sons->data[((NI) 0)], r);
	}
	goto LA1;
	LA3: ;
	{
		TY169507 LOC10;
		gen_505704(p, (*n).kindU.S6.sons->data[((NI) 0)], r);
		{
			if (!((*r).res == NIM_NIL)) goto LA8;
			internalerror_187100((*n).info, ((NimStringDesc*) &TMP4948));
		}
		LA8: ;
		usemagic_505722(p, ((NimStringDesc*) &TMP4729));
		memset((void*)LOC10, 0, sizeof(LOC10));
		LOC10[0] = (*r).res;
		unsureAsgnRef((void**) (&(*r).res), HEX25_169905(((NimStringDesc*) &TMP4730), LOC10, 1));
		(*r).kind = ((NU8) 1);
	}
	LA1: ;
}

N_NIMCALL(void, genblock_507530)(Tproc505024* p, Tnode214790* n, Tcompres505014* r) {
	NI idx;
	NI labl;
	NimStringDesc* LOC9;
	TY169507 LOC15;
	NimStringDesc* LOC16;
	TY169507 LOC22;
	(*p).unique += ((NI) 1);
	idx = ((*p).blocks ? (*p).blocks->Sup.len : 0);
	{
		Tsym214822* sym;
		if (!!(((*(*n).kindU.S6.sons->data[((NI) 0)]).kind == ((NU8) 1)))) goto LA3;
		{
			if (!!(((*(*n).kindU.S6.sons->data[((NI) 0)]).kind == ((NU8) 3)))) goto LA7;
			internalerror_187100((*n).info, ((NimStringDesc*) &TMP4949));
		}
		LA7: ;
		sym = (*(*n).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym;
		(*sym).loc.k = ((NU8) 10);
		(*sym).position = (NI)(idx + ((NI) 1));
	}
	LA3: ;
	(*p).blocks = (TY505062*) setLengthSeq(&((*p).blocks)->Sup, sizeof(Tblock505016), ((NI) ((NI)(idx + ((NI) 1)))));
	(*p).blocks->data[idx].id = ((NI64)-((*p).unique));
	labl = (*p).unique;
	LOC9 = 0;
	{
		if (!((*p).target == ((NU8) 0))) goto LA12;
		LOC9 = copyString(((NimStringDesc*) &TMP4950));
	}
	goto LA10;
	LA12: ;
	{
		LOC9 = copyString(((NimStringDesc*) &TMP4749));
	}
	LA10: ;
	memset((void*)LOC15, 0, sizeof(LOC15));
	LOC15[0] = rope_169401(((NI64) (labl)));
	addf_170205(&(*p).body, LOC9, LOC15, 1);
	gen_505704(p, (*n).kindU.S6.sons->data[((NI) 1)], r);
	LOC16 = 0;
	{
		if (!((*p).target == ((NU8) 0))) goto LA19;
		LOC16 = copyString(((NimStringDesc*) &TMP4951));
	}
	goto LA17;
	LA19: ;
	{
		LOC16 = copyString(((NimStringDesc*) &TMP4952));
	}
	LA17: ;
	memset((void*)LOC22, 0, sizeof(LOC22));
	LOC22[0] = rope_169401(((NI64) (labl)));
	addf_170205(&(*p).body, LOC16, LOC22, 1);
	(*p).blocks = (TY505062*) setLengthSeq(&((*p).blocks)->Sup, sizeof(Tblock505016), ((NI) (idx)));
}

N_NIMCALL(void, moveinto_506907)(Tproc505024* p, Tcompres505014* src, Tcompres505014* dest) {
	{
		if (!!(((*src).kind == ((NU8) 0)))) goto LA3;
		{
			TY501232 LOC9;
			if (!!(((*dest).kind == ((NU8) 0)))) goto LA7;
			memset((void*)LOC9, 0, sizeof(LOC9));
			LOC9[0] = rdloc_505100(dest);
			LOC9[1] = rdloc_505100((&(*src)));
			addf_170205(&(*p).body, ((NimStringDesc*) &TMP4860), LOC9, 2);
		}
		goto LA5;
		LA7: ;
		{
			TY169507 LOC11;
			memset((void*)LOC11, 0, sizeof(LOC11));
			LOC11[0] = rdloc_505100((&(*src)));
			addf_170205(&(*p).body, ((NimStringDesc*) &TMP4957), LOC11, 1);
		}
		LA5: ;
		(*src).kind = ((NU8) 0);
		unsureAsgnRef((void**) (&(*src).res), NIM_NIL);
	}
	LA3: ;
}

N_NIMCALL(void, genif_508065)(Tproc505024* p, Tnode214790* n, Tcompres505014* r) {
	Tcompres505014 cond;
	Tcompres505014 stmt;
	NI toclose;
	memset((void*)(&cond), 0, sizeof(cond));
	memset((void*)(&stmt), 0, sizeof(stmt));
	toclose = ((NI) 0);
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = isemptytype_219514((*n).typ);
		if (!!(LOC3)) goto LA4;
		(*r).kind = ((NU8) 2);
		unsureAsgnRef((void**) (&(*r).res), gettemp_505814(p, NIM_TRUE));
	}
	LA4: ;
	{
		NI i_508085;
		NI HEX3Atmp_508185;
		NI LOC7;
		NI res_508188;
		i_508085 = 0;
		HEX3Atmp_508185 = 0;
		LOC7 = 0;
		LOC7 = sonslen_217351(n);
		HEX3Atmp_508185 = (NI)(LOC7 - ((NI) 1));
		res_508188 = ((NI) 0);
		{
			while (1) {
				Tnode214790* it;
				NimStringDesc* LOC41;
				TY473064 LOC47;
				if (!(res_508188 <= HEX3Atmp_508185)) goto LA9;
				i_508085 = res_508188;
				it = (*n).kindU.S6.sons->data[i_508085];
				{
					NI LOC12;
					NimStringDesc* LOC26;
					TY169507 LOC32;
					LOC12 = 0;
					LOC12 = sonslen_217351(it);
					if (!!((LOC12 == ((NI) 1)))) goto LA13;
					{
						NimStringDesc* LOC19;
						TY473064 LOC25;
						if (!(((NI) 0) < i_508085)) goto LA17;
						LOC19 = 0;
						{
							if (!((*p).target == ((NU8) 0))) goto LA22;
							LOC19 = copyString(((NimStringDesc*) &TMP4953));
						}
						goto LA20;
						LA22: ;
						{
							LOC19 = copyString(((NimStringDesc*) &TMP4954));
						}
						LA20: ;
						memset((void*)LOC25, 0, sizeof(LOC25));
						addf_170205(&(*p).body, LOC19, LOC25, 0);
						toclose += ((NI) 1);
					}
					LA17: ;
					gen_505704(p, (*it).kindU.S6.sons->data[((NI) 0)], (&cond));
					LOC26 = 0;
					{
						if (!((*p).target == ((NU8) 0))) goto LA29;
						LOC26 = copyString(((NimStringDesc*) &TMP4955));
					}
					goto LA27;
					LA29: ;
					{
						LOC26 = copyString(((NimStringDesc*) &TMP4956));
					}
					LA27: ;
					memset((void*)LOC32, 0, sizeof(LOC32));
					LOC32[0] = rdloc_505100((&cond));
					addf_170205(&(*p).body, LOC26, LOC32, 1);
					gen_505704(p, (*it).kindU.S6.sons->data[((NI) 1)], (&stmt));
				}
				goto LA10;
				LA13: ;
				{
					NimStringDesc* LOC34;
					TY473064 LOC40;
					LOC34 = 0;
					{
						if (!((*p).target == ((NU8) 0))) goto LA37;
						LOC34 = copyString(((NimStringDesc*) &TMP4953));
					}
					goto LA35;
					LA37: ;
					{
						LOC34 = copyString(((NimStringDesc*) &TMP4954));
					}
					LA35: ;
					memset((void*)LOC40, 0, sizeof(LOC40));
					addf_170205(&(*p).body, LOC34, LOC40, 0);
					gen_505704(p, (*it).kindU.S6.sons->data[((NI) 0)], (&stmt));
				}
				LA10: ;
				moveinto_506907(p, (&stmt), (&(*r)));
				LOC41 = 0;
				{
					if (!((*p).target == ((NU8) 0))) goto LA44;
					LOC41 = copyString(((NimStringDesc*) &TMP4958));
				}
				goto LA42;
				LA44: ;
				{
					LOC41 = copyString(((NimStringDesc*) &TMP4959));
				}
				LA42: ;
				memset((void*)LOC47, 0, sizeof(LOC47));
				addf_170205(&(*p).body, LOC41, LOC47, 0);
				res_508188 += ((NI) 1);
			} LA9: ;
		}
	}
	{
		NimStringDesc* LOC52;
		NimStringDesc* LOC53;
		if (!((*p).target == ((NU8) 0))) goto LA50;
		LOC52 = 0;
		LOC53 = 0;
		LOC53 = nsuRepeatChar(125, ((NI) (toclose)));
		LOC52 = rawNewString(LOC53->Sup.len + tnl_167618->Sup.len + 0);
appendString(LOC52, LOC53);
appendString(LOC52, tnl_167618);
		add_169487(&(*p).body, LOC52);
	}
	goto LA48;
	LA50: ;
	{
		{
			NI i_508174;
			NI res_508196;
			i_508174 = 0;
			res_508196 = ((NI) 1);
			{
				while (1) {
					TY473064 LOC58;
					if (!(res_508196 <= toclose)) goto LA57;
					i_508174 = res_508196;
					memset((void*)LOC58, 0, sizeof(LOC58));
					addf_170205(&(*p).body, ((NimStringDesc*) &TMP4959), LOC58, 0);
					res_508196 += ((NI) 1);
				} LA57: ;
			}
		}
	}
	LA48: ;
}

static N_INLINE(NI, tolinenumber_183415)(Tlineinfo182337 info) {
	NI result;
	result = 0;
	result = ((NI) (info.line));
	return result;
}

N_NIMCALL(void, genlinedir_506687)(Tproc505024* p, Tnode214790* n) {
	NI line;
	line = tolinenumber_183415((*n).info);
	{
		NimStringDesc* LOC5;
		TY501232 LOC11;
		NimStringDesc* LOC12;
		if (!(((*p).options &(1U<<((NU)(((NU8) 10))&31U)))!=0)) goto LA3;
		LOC5 = 0;
		{
			if (!((*p).target == ((NU8) 0))) goto LA8;
			LOC5 = copyString(((NimStringDesc*) &TMP4961));
		}
		goto LA6;
		LA8: ;
		{
			LOC5 = copyString(((NimStringDesc*) &TMP4962));
		}
		LA6: ;
		memset((void*)LOC11, 0, sizeof(LOC11));
		LOC12 = 0;
		LOC12 = tofilename_183262((*n).info.fileindex);
		LOC11[0] = rope_169277(LOC12);
		LOC11[1] = rope_169401(((NI64) (line)));
		addf_170205(&(*p).body, LOC5, LOC11, 2);
	}
	LA3: ;
	{
		NIM_BOOL LOC15;
		NIM_BOOL LOC17;
		TY169507 LOC21;
		LOC15 = 0;
		LOC15 = ((163840 & (*p).options) == 163840);
		if (!(LOC15)) goto LA16;
		LOC17 = 0;
		LOC17 = ((*p).prc == NIM_NIL);
		if (LOC17) goto LA18;
		LOC17 = !((((*(*p).prc).flags &(1U<<((NU)(((NU8) 9))&31U)))!=0));
		LA18: ;
		LOC15 = LOC17;
		LA16: ;
		if (!LOC15) goto LA19;
		usemagic_505722(p, ((NimStringDesc*) &TMP4963));
		memset((void*)LOC21, 0, sizeof(LOC21));
		LOC21[0] = rope_169401(((NI64) (line)));
		addf_170205(&(*p).body, ((NimStringDesc*) &TMP4964), LOC21, 1);
	}
	goto LA13;
	LA19: ;
	{
		NIM_BOOL LOC23;
		NIM_BOOL LOC25;
		TY169507 LOC29;
		LOC23 = 0;
		LOC23 = ((98304 & (*p).options) == 98304);
		if (!(LOC23)) goto LA24;
		LOC25 = 0;
		LOC25 = ((*p).prc == NIM_NIL);
		if (LOC25) goto LA26;
		LOC25 = !((((*(*p).prc).flags &(1U<<((NU)(((NU8) 9))&31U)))!=0));
		LA26: ;
		LOC23 = LOC25;
		LA24: ;
		if (!LOC23) goto LA27;
		memset((void*)LOC29, 0, sizeof(LOC29));
		LOC29[0] = rope_169401(((NI64) (line)));
		addf_170205(&(*p).body, ((NimStringDesc*) &TMP4965), LOC29, 1);
	}
	goto LA13;
	LA27: ;
	LA13: ;
}

N_NIMCALL(void, genwhilestmt_506816)(Tproc505024* p, Tnode214790* n) {
	Tcompres505014 cond;
	NI length;
	Ropeobj169006* labl;
	NimStringDesc* LOC7;
	TY169507 LOC13;
	NimStringDesc* LOC14;
	TY501232 LOC20;
	NimStringDesc* LOC21;
	TY169507 LOC27;
	memset((void*)(&cond), 0, sizeof(cond));
	{
		NIM_BOOL LOC3;
		NimStringDesc* LOC6;
		LOC3 = 0;
		LOC3 = isemptytype_219514((*n).typ);
		if (!!(LOC3)) goto LA4;
		LOC6 = 0;
		LOC6 = HEX24_187183(TMP4960);
		internalerror_187113(LOC6);
	}
	LA4: ;
	genlinedir_506687(p, n);
	(*p).unique += ((NI) 1);
	length = ((*p).blocks ? (*p).blocks->Sup.len : 0);
	(*p).blocks = (TY505062*) setLengthSeq(&((*p).blocks)->Sup, sizeof(Tblock505016), ((NI) ((NI)(length + ((NI) 1)))));
	(*p).blocks->data[length].id = ((NI64)-((*p).unique));
	(*p).blocks->data[length].isloop = NIM_TRUE;
	labl = rope_169401(((NI64) ((*p).unique)));
	LOC7 = 0;
	{
		if (!((*p).target == ((NU8) 0))) goto LA10;
		LOC7 = copyString(((NimStringDesc*) &TMP4966));
	}
	goto LA8;
	LA10: ;
	{
		LOC7 = copyString(((NimStringDesc*) &TMP4967));
	}
	LA8: ;
	memset((void*)LOC13, 0, sizeof(LOC13));
	LOC13[0] = labl;
	addf_170205(&(*p).body, LOC7, LOC13, 1);
	gen_505704(p, (*n).kindU.S6.sons->data[((NI) 0)], (&cond));
	LOC14 = 0;
	{
		if (!((*p).target == ((NU8) 0))) goto LA17;
		LOC14 = copyString(((NimStringDesc*) &TMP4968));
	}
	goto LA15;
	LA17: ;
	{
		LOC14 = copyString(((NimStringDesc*) &TMP4969));
	}
	LA15: ;
	memset((void*)LOC20, 0, sizeof(LOC20));
	LOC20[0] = cond.res;
	LOC20[1] = labl;
	addf_170205(&(*p).body, LOC14, LOC20, 2);
	genstmt_505710(p, (*n).kindU.S6.sons->data[((NI) 1)]);
	LOC21 = 0;
	{
		if (!((*p).target == ((NU8) 0))) goto LA24;
		LOC21 = copyString(((NimStringDesc*) &TMP4958));
	}
	goto LA22;
	LA24: ;
	{
		LOC21 = copyString(((NimStringDesc*) &TMP4970));
	}
	LA22: ;
	memset((void*)LOC27, 0, sizeof(LOC27));
	LOC27[0] = labl;
	addf_170205(&(*p).body, LOC21, LOC27, 1);
	(*p).blocks = (TY505062*) setLengthSeq(&((*p).blocks)->Sup, sizeof(Tblock505016), ((NI) (length)));
}

N_NIMCALL(void, genvarstmt_510506)(Tproc505024* p, Tnode214790* n) {
	{
		NI i_510521;
		NI HEX3Atmp_510817;
		NI LOC2;
		NI res_510820;
		i_510521 = 0;
		HEX3Atmp_510817 = 0;
		LOC2 = 0;
		LOC2 = sonslen_217351(n);
		HEX3Atmp_510817 = (NI)(LOC2 - ((NI) 1));
		res_510820 = ((NI) 0);
		{
			while (1) {
				Tnode214790* a;
				if (!(res_510820 <= HEX3Atmp_510817)) goto LA4;
				i_510521 = res_510820;
				a = (*n).kindU.S6.sons->data[i_510521];
				{
					if (!!(((*a).kind == ((NU8) 125)))) goto LA7;
					{
						Tnode214790* unpacked;
						if (!((*a).kind == ((NU8) 36))) goto LA11;
						unpacked = lowertupleunpacking_376039(a, (*p).prc);
						genstmt_505710(p, unpacked);
					}
					goto LA9;
					LA11: ;
					{
						Tsym214822* v;
						v = (*(*a).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym;
						{
							if (!!((((*v).loc.flags &(1U<<((NU)(((NU8) 3))&15U)))!=0))) goto LA16;
							genlinedir_506687(p, a);
							genvarinit_510382(p, v, (*a).kindU.S6.sons->data[((NI) 2)]);
						}
						LA16: ;
					}
					LA9: ;
				}
				LA7: ;
				res_510820 += ((NI) 1);
			} LA4: ;
		}
	}
}

N_NIMCALL(void, gencasejs_507265)(Tproc505024* p, Tnode214790* n, Tcompres505014* r) {
	Tcompres505014 cond;
	Tcompres505014 stmt;
	NIM_BOOL stringswitch;
	Ttype214828* LOC1;
	TY473064 LOC46;
	memset((void*)(&cond), 0, sizeof(cond));
	memset((void*)(&stmt), 0, sizeof(stmt));
	genlinedir_506687(p, n);
	gen_505704(p, (*n).kindU.S6.sons->data[((NI) 0)], (&cond));
	LOC1 = 0;
	LOC1 = skiptypes_218113((*(*n).kindU.S6.sons->data[((NI) 0)]).typ, IL64(211106240964864));
	stringswitch = ((*LOC1).kind == ((NU8) 28));
	{
		TY169507 LOC6;
		if (!stringswitch) goto LA4;
		usemagic_505722(p, ((NimStringDesc*) &TMP4899));
		memset((void*)LOC6, 0, sizeof(LOC6));
		LOC6[0] = rdloc_505100((&cond));
		addf_170205(&(*p).body, ((NimStringDesc*) &TMP4972), LOC6, 1);
	}
	goto LA2;
	LA4: ;
	{
		TY169507 LOC8;
		memset((void*)LOC8, 0, sizeof(LOC8));
		LOC8[0] = rdloc_505100((&cond));
		addf_170205(&(*p).body, ((NimStringDesc*) &TMP4973), LOC8, 1);
	}
	LA2: ;
	{
		NIM_BOOL LOC11;
		LOC11 = 0;
		LOC11 = isemptytype_219514((*n).typ);
		if (!!(LOC11)) goto LA12;
		(*r).kind = ((NU8) 2);
		unsureAsgnRef((void**) (&(*r).res), gettemp_505814(p, NIM_TRUE));
	}
	LA12: ;
	{
		NI i_507303;
		NI HEX3Atmp_507392;
		NI LOC15;
		NI res_507395;
		i_507303 = 0;
		HEX3Atmp_507392 = 0;
		LOC15 = 0;
		LOC15 = sonslen_217351(n);
		HEX3Atmp_507392 = (NI)(LOC15 - ((NI) 1));
		res_507395 = ((NI) 1);
		{
			while (1) {
				Tnode214790* it;
				if (!(res_507395 <= HEX3Atmp_507392)) goto LA17;
				i_507303 = res_507395;
				it = (*n).kindU.S6.sons->data[i_507303];
				switch ((*it).kind) {
				case ((NU8) 85):
				{
					Tnode214790* LOC40;
					TY473064 LOC41;
					{
						NI j_507317;
						NI HEX3Atmp_507382;
						NI LOC20;
						NI res_507385;
						j_507317 = 0;
						HEX3Atmp_507382 = 0;
						LOC20 = 0;
						LOC20 = sonslen_217351(it);
						HEX3Atmp_507382 = (NI)(LOC20 - ((NI) 2));
						res_507385 = ((NI) 0);
						{
							while (1) {
								Tnode214790* e;
								if (!(res_507385 <= HEX3Atmp_507382)) goto LA22;
								j_507317 = res_507385;
								e = (*it).kindU.S6.sons->data[j_507317];
								{
									Tnode214790* v;
									if (!((*e).kind == ((NU8) 44))) goto LA25;
									v = copynode_218542((*e).kindU.S6.sons->data[((NI) 0)]);
									{
										while (1) {
											TY169507 LOC29;
											if (!((*v).kindU.S1.intval <= (*(*e).kindU.S6.sons->data[((NI) 1)]).kindU.S1.intval)) goto LA28;
											gen_505704(p, v, (&cond));
											memset((void*)LOC29, 0, sizeof(LOC29));
											LOC29[0] = rdloc_505100((&cond));
											addf_170205(&(*p).body, ((NimStringDesc*) &TMP4974), LOC29, 1);
											(*v).kindU.S1.intval += ((NI) 1);
										} LA28: ;
									}
								}
								goto LA23;
								LA25: ;
								{
									{
										if (!stringswitch) goto LA33;
										switch ((*e).kind) {
										case ((NU8) 20) ... ((NU8) 22):
										{
											TY169507 LOC36;
											memset((void*)LOC36, 0, sizeof(LOC36));
											LOC36[0] = makejsstring_505278((*e).kindU.S3.strval);
											addf_170205(&(*p).body, ((NimStringDesc*) &TMP4974), LOC36, 1);
										}
										break;
										default:
										{
											internalerror_187100((*e).info, ((NimStringDesc*) &TMP4975));
										}
										break;
										}
									}
									goto LA31;
									LA33: ;
									{
										TY169507 LOC39;
										gen_505704(p, e, (&cond));
										memset((void*)LOC39, 0, sizeof(LOC39));
										LOC39[0] = rdloc_505100((&cond));
										addf_170205(&(*p).body, ((NimStringDesc*) &TMP4974), LOC39, 1);
									}
									LA31: ;
								}
								LA23: ;
								res_507385 += ((NI) 1);
							} LA22: ;
						}
					}
					LOC40 = 0;
					LOC40 = lastson_217364(it);
					gen_505704(p, LOC40, (&stmt));
					moveinto_506907(p, (&stmt), (&(*r)));
					memset((void*)LOC41, 0, sizeof(LOC41));
					addf_170205(&(*p).body, ((NimStringDesc*) &TMP4976), LOC41, 0);
				}
				break;
				case ((NU8) 88):
				{
					TY473064 LOC43;
					TY473064 LOC44;
					memset((void*)LOC43, 0, sizeof(LOC43));
					addf_170205(&(*p).body, ((NimStringDesc*) &TMP4977), LOC43, 0);
					gen_505704(p, (*it).kindU.S6.sons->data[((NI) 0)], (&stmt));
					moveinto_506907(p, (&stmt), (&(*r)));
					memset((void*)LOC44, 0, sizeof(LOC44));
					addf_170205(&(*p).body, ((NimStringDesc*) &TMP4978), LOC44, 0);
				}
				break;
				default:
				{
					internalerror_187100((*it).info, ((NimStringDesc*) &TMP4979));
				}
				break;
				}
				res_507395 += ((NI) 1);
			} LA17: ;
		}
	}
	memset((void*)LOC46, 0, sizeof(LOC46));
	addf_170205(&(*p).body, ((NimStringDesc*) &TMP4958), LOC46, 0);
}

N_NIMCALL(void, gencaselua_507400)(Tproc505024* p, Tnode214790* n, Tcompres505014* r) {
	Tcompres505014 cond;
	Tcompres505014 stmt;
	NIM_BOOL stringswitch;
	Ttype214828* LOC1;
	Ropeobj169006* tmp;
	TY501232 LOC6;
	TY473064 LOC52;
	memset((void*)(&cond), 0, sizeof(cond));
	memset((void*)(&stmt), 0, sizeof(stmt));
	genlinedir_506687(p, n);
	gen_505704(p, (*n).kindU.S6.sons->data[((NI) 0)], (&cond));
	LOC1 = 0;
	LOC1 = skiptypes_218113((*(*n).kindU.S6.sons->data[((NI) 0)]).typ, IL64(211106240964864));
	stringswitch = ((*LOC1).kind == ((NU8) 28));
	{
		if (!stringswitch) goto LA4;
		usemagic_505722(p, ((NimStringDesc*) &TMP4980));
	}
	LA4: ;
	tmp = gettemp_505814(p, NIM_TRUE);
	memset((void*)LOC6, 0, sizeof(LOC6));
	LOC6[0] = tmp;
	LOC6[1] = rdloc_505100((&cond));
	addf_170205(&(*p).body, ((NimStringDesc*) &TMP4860), LOC6, 2);
	{
		NIM_BOOL LOC9;
		LOC9 = 0;
		LOC9 = isemptytype_219514((*n).typ);
		if (!!(LOC9)) goto LA10;
		(*r).kind = ((NU8) 2);
		unsureAsgnRef((void**) (&(*r).res), gettemp_505814(p, NIM_TRUE));
	}
	LA10: ;
	{
		NI i_507436;
		NI HEX3Atmp_507522;
		NI LOC13;
		NI res_507525;
		i_507436 = 0;
		HEX3Atmp_507522 = 0;
		LOC13 = 0;
		LOC13 = sonslen_217351(n);
		HEX3Atmp_507522 = (NI)(LOC13 - ((NI) 1));
		res_507525 = ((NI) 1);
		{
			while (1) {
				Tnode214790* it;
				if (!(res_507525 <= HEX3Atmp_507522)) goto LA15;
				i_507436 = res_507525;
				it = (*n).kindU.S6.sons->data[i_507436];
				switch ((*it).kind) {
				case ((NU8) 85):
				{
					TY473064 LOC47;
					Tnode214790* LOC48;
					{
						TY473064 LOC21;
						if (!!((i_507436 == ((NI) 1)))) goto LA19;
						memset((void*)LOC21, 0, sizeof(LOC21));
						addf_170205(&(*p).body, ((NimStringDesc*) &TMP4981), LOC21, 0);
					}
					goto LA17;
					LA19: ;
					{
						TY473064 LOC23;
						memset((void*)LOC23, 0, sizeof(LOC23));
						addf_170205(&(*p).body, ((NimStringDesc*) &TMP4982), LOC23, 0);
					}
					LA17: ;
					{
						NI j_507458;
						NI HEX3Atmp_507513;
						NI LOC25;
						NI res_507516;
						j_507458 = 0;
						HEX3Atmp_507513 = 0;
						LOC25 = 0;
						LOC25 = sonslen_217351(it);
						HEX3Atmp_507513 = (NI)(LOC25 - ((NI) 2));
						res_507516 = ((NI) 0);
						{
							while (1) {
								Tnode214790* e;
								if (!(res_507516 <= HEX3Atmp_507513)) goto LA27;
								j_507458 = res_507516;
								{
									if (!!((j_507458 == ((NI) 0)))) goto LA30;
									add_169487(&(*p).body, ((NimStringDesc*) &TMP4983));
								}
								LA30: ;
								e = (*it).kindU.S6.sons->data[j_507458];
								{
									Tcompres505014 ia;
									Tcompres505014 ib;
									TY474656 LOC36;
									if (!((*e).kind == ((NU8) 44))) goto LA34;
									memset((void*)(&ia), 0, sizeof(ia));
									memset((void*)(&ib), 0, sizeof(ib));
									gen_505704(p, (*e).kindU.S6.sons->data[((NI) 0)], (&ia));
									gen_505704(p, (*e).kindU.S6.sons->data[((NI) 1)], (&ib));
									memset((void*)LOC36, 0, sizeof(LOC36));
									LOC36[0] = tmp;
									LOC36[1] = rdloc_505100((&ia));
									LOC36[2] = rdloc_505100((&ib));
									addf_170205(&(*p).body, ((NimStringDesc*) &TMP4984), LOC36, 3);
								}
								goto LA32;
								LA34: ;
								{
									{
										if (!stringswitch) goto LA40;
										switch ((*e).kind) {
										case ((NU8) 20) ... ((NU8) 22):
										{
											TY501232 LOC43;
											memset((void*)LOC43, 0, sizeof(LOC43));
											LOC43[0] = tmp;
											LOC43[1] = makejsstring_505278((*e).kindU.S3.strval);
											addf_170205(&(*p).body, ((NimStringDesc*) &TMP4985), LOC43, 2);
										}
										break;
										default:
										{
											internalerror_187100((*e).info, ((NimStringDesc*) &TMP4975));
										}
										break;
										}
									}
									goto LA38;
									LA40: ;
									{
										TY501232 LOC46;
										gen_505704(p, e, (&cond));
										memset((void*)LOC46, 0, sizeof(LOC46));
										LOC46[0] = tmp;
										LOC46[1] = rdloc_505100((&cond));
										addf_170205(&(*p).body, ((NimStringDesc*) &TMP4986), LOC46, 2);
									}
									LA38: ;
								}
								LA32: ;
								res_507516 += ((NI) 1);
							} LA27: ;
						}
					}
					memset((void*)LOC47, 0, sizeof(LOC47));
					addf_170205(&(*p).body, ((NimStringDesc*) &TMP4987), LOC47, 0);
					LOC48 = 0;
					LOC48 = lastson_217364(it);
					gen_505704(p, LOC48, (&stmt));
					moveinto_506907(p, (&stmt), (&(*r)));
				}
				break;
				case ((NU8) 88):
				{
					TY473064 LOC50;
					memset((void*)LOC50, 0, sizeof(LOC50));
					addf_170205(&(*p).body, ((NimStringDesc*) &TMP4954), LOC50, 0);
					gen_505704(p, (*it).kindU.S6.sons->data[((NI) 0)], (&stmt));
					moveinto_506907(p, (&stmt), (&(*r)));
				}
				break;
				default:
				{
					internalerror_187100((*it).info, ((NimStringDesc*) &TMP4979));
				}
				break;
				}
				res_507525 += ((NI) 1);
			} LA15: ;
		}
	}
	memset((void*)LOC52, 0, sizeof(LOC52));
	addf_170205(&(*p).body, ((NimStringDesc*) &TMP4988), LOC52, 0);
}

N_NIMCALL(void, genreturnstmt_511485)(Tproc505024* p, Tnode214790* n) {
	NimStringDesc* LOC10;
	TY473064 LOC16;
	{
		if (!((*p).procdef == NIM_NIL)) goto LA3;
		internalerror_187100((*n).info, ((NimStringDesc*) &TMP4989));
	}
	LA3: ;
	(*p).beforeretneeded = NIM_TRUE;
	{
		if (!!(((*(*n).kindU.S6.sons->data[((NI) 0)]).kind == ((NU8) 1)))) goto LA7;
		genstmt_505710(p, (*n).kindU.S6.sons->data[((NI) 0)]);
	}
	goto LA5;
	LA7: ;
	{
		genlinedir_506687(p, n);
	}
	LA5: ;
	LOC10 = 0;
	{
		if (!((*p).target == ((NU8) 0))) goto LA13;
		LOC10 = copyString(((NimStringDesc*) &TMP4990));
	}
	goto LA11;
	LA13: ;
	{
		LOC10 = copyString(((NimStringDesc*) &TMP4991));
	}
	LA11: ;
	memset((void*)LOC16, 0, sizeof(LOC16));
	addf_170205(&(*p).body, LOC10, LOC16, 0);
}

N_NIMCALL(void, genbreakstmt_507625)(Tproc505024* p, Tnode214790* n) {
	NI idx;
	NimStringDesc* LOC16;
	TY169507 LOC22;
	idx = 0;
	genlinedir_506687(p, n);
	{
		Tsym214822* sym;
		if (!!(((*(*n).kindU.S6.sons->data[((NI) 0)]).kind == ((NU8) 1)))) goto LA3;
		sym = (*(*n).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym;
		idx = (NI)((*sym).position - ((NI) 1));
	}
	goto LA1;
	LA3: ;
	{
		idx = (NI)(((*p).blocks ? (*p).blocks->Sup.len : 0) - ((NI) 1));
		{
			while (1) {
				NIM_BOOL LOC8;
				LOC8 = 0;
				LOC8 = (((NI) 0) <= idx);
				if (!(LOC8)) goto LA9;
				LOC8 = !((*p).blocks->data[idx].isloop);
				LA9: ;
				if (!LOC8) goto LA7;
				idx -= ((NI) 1);
			} LA7: ;
		}
		{
			NIM_BOOL LOC12;
			LOC12 = 0;
			LOC12 = (idx < ((NI) 0));
			if (LOC12) goto LA13;
			LOC12 = !((*p).blocks->data[idx].isloop);
			LA13: ;
			if (!LOC12) goto LA14;
			internalerror_187100((*n).info, ((NimStringDesc*) &TMP4992));
		}
		LA14: ;
	}
	LA1: ;
	(*p).blocks->data[idx].id = ((*p).blocks->data[idx].id > 0? ((*p).blocks->data[idx].id) : -((*p).blocks->data[idx].id));
	LOC16 = 0;
	{
		if (!((*p).target == ((NU8) 0))) goto LA19;
		LOC16 = copyString(((NimStringDesc*) &TMP4993));
	}
	goto LA17;
	LA19: ;
	{
		LOC16 = copyString(((NimStringDesc*) &TMP4994));
	}
	LA17: ;
	memset((void*)LOC22, 0, sizeof(LOC22));
	LOC22[0] = rope_169401(((NI64) ((*p).blocks->data[idx].id)));
	addf_170205(&(*p).body, LOC16, LOC22, 1);
}

N_NIMCALL(void, genasgnaux_508469)(Tproc505024* p, Tnode214790* x, Tnode214790* y, NIM_BOOL nocopyneeded) {
	Tcompres505014 a;
	Tcompres505014 b;
	NU8 xtyp;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&b), 0, sizeof(b));
	gen_505704(p, x, (&a));
	xtyp = maptype_505241((*x).typ);
	{
		NIM_BOOL LOC3;
		NIM_BOOL LOC4;
		Ropeobj169006* tmp;
		TY501232 LOC9;
		TY169507 LOC10;
		LOC3 = 0;
		LOC4 = 0;
		LOC4 = ((*x).kind == ((NU8) 65));
		if (!(LOC4)) goto LA5;
		LOC4 = ((*(*x).kindU.S6.sons->data[((NI) 0)]).kind == ((NU8) 27));
		LA5: ;
		LOC3 = LOC4;
		if (!(LOC3)) goto LA6;
		LOC3 = !((xtyp == ((NU8) 7)));
		LA6: ;
		if (!LOC3) goto LA7;
		gen_505704(p, (*x).kindU.S6.sons->data[((NI) 0)], (&a));
		tmp = gettemp_505814(p, NIM_FALSE);
		memset((void*)LOC9, 0, sizeof(LOC9));
		LOC9[0] = tmp;
		LOC9[1] = rdloc_505100((&a));
		addf_170205(&(*p).body, ((NimStringDesc*) &TMP4654), LOC9, 2);
		memset((void*)LOC10, 0, sizeof(LOC10));
		LOC10[0] = tmp;
		a.res = HEX25_169905(((NimStringDesc*) &TMP4995), LOC10, 1);
	}
	goto LA1;
	LA7: ;
	{
		gen_505704(p, x, (&a));
	}
	LA1: ;
	gen_505704(p, y, (&b));
	switch (xtyp) {
	case ((NU8) 7):
	{
		{
			NIM_BOOL LOC15;
			NIM_BOOL LOC16;
			TY501232 LOC21;
			LOC15 = 0;
			LOC16 = 0;
			LOC16 = needsnocopy_508444(y);
			if (!(LOC16)) goto LA17;
			LOC16 = needsnocopy_508444(x);
			LA17: ;
			LOC15 = LOC16;
			if (LOC15) goto LA18;
			LOC15 = nocopyneeded;
			LA18: ;
			if (!LOC15) goto LA19;
			memset((void*)LOC21, 0, sizeof(LOC21));
			LOC21[0] = rdloc_505100((&a));
			LOC21[1] = rdloc_505100((&b));
			addf_170205(&(*p).body, ((NimStringDesc*) &TMP4860), LOC21, 2);
		}
		goto LA13;
		LA19: ;
		{
			TY474656 LOC23;
			usemagic_505722(p, ((NimStringDesc*) &TMP4679));
			memset((void*)LOC23, 0, sizeof(LOC23));
			LOC23[0] = a.res;
			LOC23[1] = b.res;
			LOC23[2] = gentypeinfo_505282(p, (*y).typ);
			addf_170205(&(*p).body, ((NimStringDesc*) &TMP4996), LOC23, 3);
		}
		LA13: ;
	}
	break;
	case ((NU8) 8):
	{
		{
			NIM_BOOL LOC27;
			LOC27 = 0;
			LOC27 = !((a.typ == ((NU8) 8)));
			if (LOC27) goto LA28;
			LOC27 = !((b.typ == ((NU8) 8)));
			LA28: ;
			if (!LOC27) goto LA29;
			{
				Ropeobj169006* tmp;
				TY474653 LOC35;
				if (!((*y).kind == ((NU8) 27))) goto LA33;
				tmp = gettemp_505814(p, NIM_FALSE);
				memset((void*)LOC35, 0, sizeof(LOC35));
				LOC35[0] = tmp;
				LOC35[1] = a.address;
				LOC35[2] = a.res;
				LOC35[3] = rdloc_505100((&b));
				addf_170205(&(*p).body, ((NimStringDesc*) &TMP4997), LOC35, 4);
			}
			goto LA31;
			LA33: ;
			{
				internalerror_187100((*x).info, ((NimStringDesc*) &TMP4998));
			}
			LA31: ;
		}
		goto LA25;
		LA29: ;
		{
			TY474653 LOC38;
			memset((void*)LOC38, 0, sizeof(LOC38));
			LOC38[0] = a.address;
			LOC38[1] = b.address;
			LOC38[2] = a.res;
			LOC38[3] = b.res;
			addf_170205(&(*p).body, ((NimStringDesc*) &TMP4999), LOC38, 4);
		}
		LA25: ;
	}
	break;
	default:
	{
		TY501232 LOC40;
		memset((void*)LOC40, 0, sizeof(LOC40));
		LOC40[0] = a.res;
		LOC40[1] = b.res;
		addf_170205(&(*p).body, ((NimStringDesc*) &TMP4860), LOC40, 2);
	}
	break;
	}
}

N_NIMCALL(void, genasgn_508562)(Tproc505024* p, Tnode214790* n) {
	genlinedir_506687(p, n);
	genasgnaux_508469(p, (*n).kindU.S6.sons->data[((NI) 0)], (*n).kindU.S6.sons->data[((NI) 1)], NIM_FALSE);
}

N_NIMCALL(void, genfastasgn_508568)(Tproc505024* p, Tnode214790* n) {
	genlinedir_506687(p, n);
	genasgnaux_508469(p, (*n).kindU.S6.sons->data[((NI) 0)], (*n).kindU.S6.sons->data[((NI) 1)], NIM_TRUE);
}

N_NIMCALL(void, genasmoremitstmt_508033)(Tproc505024* p, Tnode214790* n) {
	genlinedir_506687(p, n);
	{
		NI i_508048;
		NI HEX3Atmp_508058;
		NI LOC2;
		NI res_508061;
		i_508048 = 0;
		HEX3Atmp_508058 = 0;
		LOC2 = 0;
		LOC2 = sonslen_217351(n);
		HEX3Atmp_508058 = (NI)(LOC2 - ((NI) 1));
		res_508061 = ((NI) 0);
		{
			while (1) {
				if (!(res_508061 <= HEX3Atmp_508058)) goto LA4;
				i_508048 = res_508061;
				switch ((*(*n).kindU.S6.sons->data[i_508048]).kind) {
				case ((NU8) 20) ... ((NU8) 22):
				{
					add_169487(&(*p).body, (*(*n).kindU.S6.sons->data[i_508048]).kindU.S3.strval);
				}
				break;
				case ((NU8) 3):
				{
					Ropeobj169006* LOC7;
					LOC7 = 0;
					LOC7 = manglename_505256((*(*n).kindU.S6.sons->data[i_508048]).kindU.S4.sym);
					add_169482(&(*p).body, LOC7);
				}
				break;
				default:
				{
					internalerror_187100((*(*n).kindU.S6.sons->data[i_508048]).info, ((NimStringDesc*) &TMP5000));
				}
				break;
				}
				res_508061 += ((NI) 1);
			} LA4: ;
		}
	}
}

N_NIMCALL(void, gentry_506937)(Tproc505024* p, Tnode214790* n, Tcompres505014* r) {
	NI i;
	NI length;
	NIM_BOOL catchbranchesexist;
	NIM_BOOL LOC6;
	Ropeobj169006* safepoint;
	TY169507 LOC13;
	NimStringDesc* LOC14;
	TY169507 LOC20;
	NimStringDesc* LOC26;
	TY473064 LOC32;
	Tcompres505014 a;
	NIM_BOOL generalcatchbranchexists;
	genlinedir_506687(p, n);
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = isemptytype_219514((*n).typ);
		if (!!(LOC3)) goto LA4;
		(*r).kind = ((NU8) 2);
		unsureAsgnRef((void**) (&(*r).res), gettemp_505814(p, NIM_TRUE));
	}
	LA4: ;
	(*p).unique += ((NI) 1);
	i = ((NI) 1);
	length = sonslen_217351(n);
	LOC6 = 0;
	LOC6 = (((NI) 1) < length);
	if (!(LOC6)) goto LA7;
	LOC6 = ((*(*n).kindU.S6.sons->data[i]).kind == ((NU8) 87));
	LA7: ;
	catchbranchesexist = LOC6;
	{
		NimStringDesc* LOC12;
		if (!catchbranchesexist) goto LA10;
		LOC12 = 0;
		LOC12 = rawNewString(tnl_167618->Sup.len + 13);
appendString(LOC12, ((NimStringDesc*) &TMP5001));
appendString(LOC12, tnl_167618);
		add_169487(&(*p).body, LOC12);
	}
	LA10: ;
	memset((void*)LOC13, 0, sizeof(LOC13));
	LOC13[0] = rope_169401(((NI64) ((*p).unique)));
	safepoint = HEX25_169905(((NimStringDesc*) &TMP4737), LOC13, 1);
	LOC14 = 0;
	{
		if (!((*p).target == ((NU8) 0))) goto LA17;
		LOC14 = copyString(((NimStringDesc*) &TMP4749));
	}
	goto LA15;
	LA17: ;
	{
		LOC14 = copyString(((NimStringDesc*) &TMP5002));
	}
	LA15: ;
	memset((void*)LOC20, 0, sizeof(LOC20));
	LOC20[0] = safepoint;
	addf_170205(&(*p).body, LOC14, LOC20, 1);
	{
		NimStringDesc* LOC25;
		if (!(((*p).options &(1U<<((NU)(((NU8) 15))&31U)))!=0)) goto LA23;
		LOC25 = 0;
		LOC25 = rawNewString(tnl_167618->Sup.len + 13);
appendString(LOC25, ((NimStringDesc*) &TMP5003));
appendString(LOC25, tnl_167618);
		add_169487(&(*p).body, LOC25);
	}
	LA23: ;
	LOC26 = 0;
	{
		if (!((*p).target == ((NU8) 0))) goto LA29;
		LOC26 = copyString(((NimStringDesc*) &TMP5004));
	}
	goto LA27;
	LA29: ;
	{
		LOC26 = copyString(((NimStringDesc*) &TMP5005));
	}
	LA27: ;
	memset((void*)LOC32, 0, sizeof(LOC32));
	addf_170205(&(*p).body, LOC26, LOC32, 0);
	memset((void*)(&a), 0, sizeof(a));
	gen_505704(p, (*n).kindU.S6.sons->data[((NI) 0)], (&a));
	moveinto_506907(p, (&a), (&(*r)));
	generalcatchbranchexists = NIM_FALSE;
	{
		NIM_BOOL LOC35;
		TY473064 LOC39;
		LOC35 = 0;
		LOC35 = ((*p).target == ((NU8) 0));
		if (!(LOC35)) goto LA36;
		LOC35 = catchbranchesexist;
		LA36: ;
		if (!LOC35) goto LA37;
		memset((void*)LOC39, 0, sizeof(LOC39));
		addf_170205(&(*p).body, ((NimStringDesc*) &TMP5006), LOC39, 0);
	}
	goto LA33;
	LA37: ;
	{
		TY473064 LOC43;
		if (!((*p).target == ((NU8) 1))) goto LA41;
		memset((void*)LOC43, 0, sizeof(LOC43));
		addf_170205(&(*p).body, ((NimStringDesc*) &TMP5007), LOC43, 0);
	}
	goto LA33;
	LA41: ;
	LA33: ;
	{
		while (1) {
			NIM_BOOL LOC46;
			NI blen;
			LOC46 = 0;
			LOC46 = (i < length);
			if (!(LOC46)) goto LA47;
			LOC46 = ((*(*n).kindU.S6.sons->data[i]).kind == ((NU8) 87));
			LA47: ;
			if (!LOC46) goto LA45;
			blen = sonslen_217351((*n).kindU.S6.sons->data[i]);
			{
				if (!(blen == ((NI) 1))) goto LA50;
				generalcatchbranchexists = NIM_TRUE;
				{
					NimStringDesc* LOC56;
					TY473064 LOC62;
					if (!(((NI) 1) < i)) goto LA54;
					LOC56 = 0;
					{
						if (!((*p).target == ((NU8) 0))) goto LA59;
						LOC56 = copyString(((NimStringDesc*) &TMP4953));
					}
					goto LA57;
					LA59: ;
					{
						LOC56 = copyString(((NimStringDesc*) &TMP4954));
					}
					LA57: ;
					memset((void*)LOC62, 0, sizeof(LOC62));
					addf_170205(&(*p).body, LOC56, LOC62, 0);
				}
				LA54: ;
				gen_505704(p, (*(*n).kindU.S6.sons->data[i]).kindU.S6.sons->data[((NI) 0)], (&a));
				moveinto_506907(p, (&a), (&(*r)));
				{
					NimStringDesc* LOC67;
					TY473064 LOC73;
					if (!(((NI) 1) < i)) goto LA65;
					LOC67 = 0;
					{
						if (!((*p).target == ((NU8) 0))) goto LA70;
						LOC67 = copyString(((NimStringDesc*) &TMP4958));
					}
					goto LA68;
					LA70: ;
					{
						LOC67 = copyString(((NimStringDesc*) &TMP4959));
					}
					LA68: ;
					memset((void*)LOC73, 0, sizeof(LOC73));
					addf_170205(&(*p).body, LOC67, LOC73, 0);
				}
				LA65: ;
			}
			goto LA48;
			LA50: ;
			{
				Ropeobj169006* orexpr;
				NimStringDesc* LOC97;
				TY501232 LOC103;
				NimStringDesc* LOC104;
				TY473064 LOC110;
				orexpr = NIM_NIL;
				usemagic_505722(p, ((NimStringDesc*) &TMP4895));
				{
					NI j_507090;
					NI HEX3Atmp_507232;
					NI res_507235;
					j_507090 = 0;
					HEX3Atmp_507232 = 0;
					HEX3Atmp_507232 = (NI)(blen - ((NI) 2));
					res_507235 = ((NI) 0);
					{
						while (1) {
							TY169507 LOC92;
							if (!(res_507235 <= HEX3Atmp_507232)) goto LA77;
							j_507090 = res_507235;
							{
								if (!!(((*(*(*n).kindU.S6.sons->data[i]).kindU.S6.sons->data[j_507090]).kind == ((NU8) 4)))) goto LA80;
								internalerror_187100((*n).info, ((NimStringDesc*) &TMP5008));
							}
							LA80: ;
							{
								NimStringDesc* LOC86;
								if (!!((orexpr == NIM_NIL))) goto LA84;
								LOC86 = 0;
								{
									if (!((*p).target == ((NU8) 0))) goto LA89;
									LOC86 = copyString(((NimStringDesc*) &TMP5009));
								}
								goto LA87;
								LA89: ;
								{
									LOC86 = copyString(((NimStringDesc*) &TMP4983));
								}
								LA87: ;
								add_169487(&orexpr, LOC86);
							}
							LA84: ;
							memset((void*)LOC92, 0, sizeof(LOC92));
							LOC92[0] = gentypeinfo_505282(p, (*(*(*n).kindU.S6.sons->data[i]).kindU.S6.sons->data[j_507090]).typ);
							addf_170205(&orexpr, ((NimStringDesc*) &TMP5010), LOC92, 1);
							res_507235 += ((NI) 1);
						} LA77: ;
					}
				}
				{
					if (!(((NI) 1) < i)) goto LA95;
					add_169487(&(*p).body, ((NimStringDesc*) &TMP5011));
				}
				LA95: ;
				LOC97 = 0;
				{
					if (!((*p).target == ((NU8) 0))) goto LA100;
					LOC97 = copyString(((NimStringDesc*) &TMP5012));
				}
				goto LA98;
				LA100: ;
				{
					LOC97 = copyString(((NimStringDesc*) &TMP5013));
				}
				LA98: ;
				memset((void*)LOC103, 0, sizeof(LOC103));
				LOC103[0] = safepoint;
				LOC103[1] = orexpr;
				addf_170205(&(*p).body, LOC97, LOC103, 2);
				gen_505704(p, (*(*n).kindU.S6.sons->data[i]).kindU.S6.sons->data[(NI)(blen - ((NI) 1))], (&a));
				moveinto_506907(p, (&a), (&(*r)));
				LOC104 = 0;
				{
					if (!((*p).target == ((NU8) 0))) goto LA107;
					LOC104 = copyString(((NimStringDesc*) &TMP4958));
				}
				goto LA105;
				LA107: ;
				{
					LOC104 = copyString(((NimStringDesc*) &TMP4959));
				}
				LA105: ;
				memset((void*)LOC110, 0, sizeof(LOC110));
				addf_170205(&(*p).body, LOC104, LOC110, 0);
			}
			LA48: ;
			i += ((NI) 1);
		} LA45: ;
	}
	{
		NimStringDesc* LOC125;
		if (!((*p).target == ((NU8) 0))) goto LA113;
		{
			NimStringDesc* LOC124;
			if (!catchbranchesexist) goto LA117;
			{
				NimStringDesc* LOC123;
				if (!!(generalcatchbranchexists)) goto LA121;
				usemagic_505722(p, ((NimStringDesc*) &TMP5014));
				LOC123 = 0;
				LOC123 = rawNewString(tnl_167618->Sup.len + tnl_167618->Sup.len + tnl_167618->Sup.len + 26);
appendString(LOC123, ((NimStringDesc*) &TMP5015));
appendString(LOC123, tnl_167618);
appendString(LOC123, ((NimStringDesc*) &TMP5016));
appendString(LOC123, tnl_167618);
appendString(LOC123, ((NimStringDesc*) &TMP4705));
appendString(LOC123, tnl_167618);
				add_169487(&(*p).body, LOC123);
			}
			LA121: ;
			LOC124 = 0;
			LOC124 = rawNewString(tnl_167618->Sup.len + 26);
appendString(LOC124, ((NimStringDesc*) &TMP5017));
appendString(LOC124, tnl_167618);
			add_169487(&(*p).body, LOC124);
		}
		LA117: ;
		LOC125 = 0;
		LOC125 = rawNewString(tnl_167618->Sup.len + 11);
appendString(LOC125, ((NimStringDesc*) &TMP5018));
appendString(LOC125, tnl_167618);
		add_169487(&(*p).body, LOC125);
	}
	LA113: ;
	{
		NIM_BOOL LOC128;
		LOC128 = 0;
		LOC128 = (i < length);
		if (!(LOC128)) goto LA129;
		LOC128 = ((*(*n).kindU.S6.sons->data[i]).kind == ((NU8) 107));
		LA129: ;
		if (!LOC128) goto LA130;
		genstmt_505710(p, (*(*n).kindU.S6.sons->data[i]).kindU.S6.sons->data[((NI) 0)]);
	}
	LA130: ;
	{
		NimStringDesc* LOC136;
		if (!((*p).target == ((NU8) 0))) goto LA134;
		LOC136 = 0;
		LOC136 = rawNewString(tnl_167618->Sup.len + 1);
appendString(LOC136, ((NimStringDesc*) &TMP4705));
appendString(LOC136, tnl_167618);
		add_169487(&(*p).body, LOC136);
	}
	LA134: ;
	{
		if (!((*p).target == ((NU8) 1))) goto LA139;
		{
			NIM_BOOL LOC143;
			LOC143 = 0;
			LOC143 = (i < length);
			if (!(LOC143)) goto LA144;
			LOC143 = ((*(*n).kindU.S6.sons->data[i]).kind == ((NU8) 107));
			LA144: ;
			if (!LOC143) goto LA145;
			genstmt_505710(p, (*(*n).kindU.S6.sons->data[i]).kindU.S6.sons->data[((NI) 0)]);
		}
		LA145: ;
	}
	LA139: ;
}

N_NIMCALL(void, genraisestmt_507240)(Tproc505024* p, Tnode214790* n) {
	genlinedir_506687(p, n);
	{
		Tcompres505014 a;
		Ttype214828* typ;
		TY501232 LOC5;
		if (!!(((*(*n).kindU.S6.sons->data[((NI) 0)]).kind == ((NU8) 1)))) goto LA3;
		memset((void*)(&a), 0, sizeof(a));
		gen_505704(p, (*n).kindU.S6.sons->data[((NI) 0)], (&a));
		typ = skiptypes_218113((*(*n).kindU.S6.sons->data[((NI) 0)]).typ, IL64(211106247256320));
		usemagic_505722(p, ((NimStringDesc*) &TMP5019));
		memset((void*)LOC5, 0, sizeof(LOC5));
		LOC5[0] = rdloc_505100((&a));
		LOC5[1] = makejsstring_505278((*(*(*typ).sym).name).s);
		addf_170205(&(*p).body, ((NimStringDesc*) &TMP5020), LOC5, 2);
	}
	goto LA1;
	LA3: ;
	{
		NimStringDesc* LOC7;
		usemagic_505722(p, ((NimStringDesc*) &TMP5014));
		LOC7 = 0;
		LOC7 = rawNewString(tnl_167618->Sup.len + 19);
appendString(LOC7, ((NimStringDesc*) &TMP5016));
appendString(LOC7, tnl_167618);
		add_169487(&(*p).body, LOC7);
	}
	LA1: ;
}

N_NIMCALL(void, genpragma_511715)(Tproc505024* p, Tnode214790* n) {
	{
		Tnode214790* it_511728;
		Tnodeseq214784* HEX3Atmp_511731;
		NI i_511734;
		NI L_511736;
		it_511728 = 0;
		HEX3Atmp_511731 = 0;
		HEX3Atmp_511731 = (*n).kindU.S6.sons;
		i_511734 = ((NI) 0);
		L_511736 = (HEX3Atmp_511731 ? HEX3Atmp_511731->Sup.len : 0);
		{
			while (1) {
				NU16 LOC4;
				if (!(i_511734 < L_511736)) goto LA3;
				it_511728 = HEX3Atmp_511731->data[i_511734];
				LOC4 = 0;
				LOC4 = whichpragma_239525(it_511728);
				switch (LOC4) {
				case ((NU16) 189):
				{
					genasmoremitstmt_508033(p, (*it_511728).kindU.S6.sons->data[((NI) 1)]);
				}
				break;
				default:
				{
				}
				break;
				}
				i_511734 += ((NI) 1);
			} LA3: ;
		}
	}
}

N_NIMCALL(void, gen_505704)(Tproc505024* p, Tnode214790* n, Tcompres505014* r) {
	(*r).typ = ((NU8) 0);
	(*r).kind = ((NU8) 0);
	unsureAsgnRef((void**) (&(*r).res), NIM_NIL);
	switch ((*n).kind) {
	case ((NU8) 3):
	{
		gensym_509176(p, n, r);
	}
	break;
	case ((NU8) 5) ... ((NU8) 10):
	{
		{
			if (!((*(*n).typ).kind == ((NU8) 1))) goto LA5;
			{
				if (!((*n).kindU.S1.intval == IL64(0))) goto LA9;
				unsureAsgnRef((void**) (&(*r).res), rope_169277(((NimStringDesc*) &TMP4724)));
			}
			goto LA7;
			LA9: ;
			{
				unsureAsgnRef((void**) (&(*r).res), rope_169277(((NimStringDesc*) &TMP4725)));
			}
			LA7: ;
		}
		goto LA3;
		LA5: ;
		{
			unsureAsgnRef((void**) (&(*r).res), rope_169401((*n).kindU.S1.intval));
		}
		LA3: ;
		(*r).kind = ((NU8) 1);
	}
	break;
	case ((NU8) 23):
	{
		{
			NIM_BOOL LOC16;
			LOC16 = 0;
			LOC16 = isemptytype_219514((*n).typ);
			if (!LOC16) goto LA17;
		}
		goto LA14;
		LA17: ;
		{
			NU8 LOC20;
			LOC20 = 0;
			LOC20 = maptype_505241((*n).typ);
			if (!(LOC20 == ((NU8) 8))) goto LA21;
			(*r).typ = ((NU8) 8);
			{
				if (!((*p).target == ((NU8) 0))) goto LA25;
				unsureAsgnRef((void**) (&(*r).address), rope_169277(((NimStringDesc*) &TMP4726)));
			}
			goto LA23;
			LA25: ;
			{
				unsureAsgnRef((void**) (&(*r).address), rope_169277(((NimStringDesc*) &TMP4727)));
			}
			LA23: ;
			unsureAsgnRef((void**) (&(*r).res), rope_169277(((NimStringDesc*) &TMP4728)));
			(*r).kind = ((NU8) 1);
		}
		goto LA14;
		LA21: ;
		{
			{
				if (!((*p).target == ((NU8) 0))) goto LA31;
				unsureAsgnRef((void**) (&(*r).res), rope_169277(((NimStringDesc*) &TMP4726)));
			}
			goto LA29;
			LA31: ;
			{
				unsureAsgnRef((void**) (&(*r).res), rope_169277(((NimStringDesc*) &TMP4727)));
			}
			LA29: ;
			(*r).kind = ((NU8) 1);
		}
		LA14: ;
	}
	break;
	case ((NU8) 20) ... ((NU8) 22):
	{
		{
			Ttype214828* LOC37;
			TY169507 LOC40;
			LOC37 = 0;
			LOC37 = skiptypes_218113((*n).typ, IL64(211106242013440));
			if (!((*LOC37).kind == ((NU8) 28))) goto LA38;
			usemagic_505722(p, ((NimStringDesc*) &TMP4729));
			memset((void*)LOC40, 0, sizeof(LOC40));
			LOC40[0] = makejsstring_505278((*n).kindU.S3.strval);
			unsureAsgnRef((void**) (&(*r).res), HEX25_169905(((NimStringDesc*) &TMP4730), LOC40, 1));
		}
		goto LA35;
		LA38: ;
		{
			unsureAsgnRef((void**) (&(*r).res), makejsstring_505278((*n).kindU.S3.strval));
		}
		LA35: ;
		(*r).kind = ((NU8) 1);
	}
	break;
	case ((NU8) 16) ... ((NU8) 18):
	{
		NF f;
		f = (*n).kindU.S2.floatval;
		{
			if (!!((f == f))) goto LA45;
			unsureAsgnRef((void**) (&(*r).res), rope_169277(((NimStringDesc*) &TMP4731)));
		}
		goto LA43;
		LA45: ;
		{
			if (!(f == 0.0)) goto LA48;
			unsureAsgnRef((void**) (&(*r).res), rope_169277(((NimStringDesc*) &TMP4732)));
		}
		goto LA43;
		LA48: ;
		{
			if (!(f == ((NF)(5.0000000000000000e-01) * (NF)(f)))) goto LA51;
			{
				if (!(0.0 < f)) goto LA55;
				unsureAsgnRef((void**) (&(*r).res), rope_169277(((NimStringDesc*) &TMP4733)));
			}
			goto LA53;
			LA55: ;
			{
				unsureAsgnRef((void**) (&(*r).res), rope_169277(((NimStringDesc*) &TMP4734)));
			}
			LA53: ;
		}
		goto LA43;
		LA51: ;
		{
			NimStringDesc* LOC59;
			LOC59 = 0;
			LOC59 = tostrmaxprecision_220009(f);
			unsureAsgnRef((void**) (&(*r).res), rope_169277(LOC59));
		}
		LA43: ;
		(*r).kind = ((NU8) 1);
	}
	break;
	case ((NU8) 27):
	case ((NU8) 29):
	case ((NU8) 30):
	case ((NU8) 31):
	case ((NU8) 26):
	case ((NU8) 28):
	case ((NU8) 32):
	{
		{
			NIM_BOOL LOC63;
			LOC63 = 0;
			LOC63 = ((*(*n).kindU.S6.sons->data[((NI) 0)]).kind == ((NU8) 3));
			if (!(LOC63)) goto LA64;
			LOC63 = !(((*(*(*n).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym).magic == ((NU8) 0)));
			LA64: ;
			if (!LOC63) goto LA65;
			genmagic_511035(p, n, r);
		}
		goto LA61;
		LA65: ;
		{
			NIM_BOOL LOC68;
			NIM_BOOL LOC69;
			NI LOC72;
			LOC68 = 0;
			LOC69 = 0;
			LOC69 = ((*(*n).kindU.S6.sons->data[((NI) 0)]).kind == ((NU8) 3));
			if (!(LOC69)) goto LA70;
			LOC69 = (((*(*(*n).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym).flags &(1U<<((NU)(((NU8) 27))&31U)))!=0);
			LA70: ;
			LOC68 = LOC69;
			if (!(LOC68)) goto LA71;
			LOC72 = 0;
			LOC72 = len_215059(n);
			LOC68 = (((NI) 2) <= LOC72);
			LA71: ;
			if (!LOC68) goto LA73;
			geninfixcall_510031(p, n, r);
		}
		goto LA61;
		LA73: ;
		{
			gencall_510024(p, n, r);
		}
		LA61: ;
	}
	break;
	case ((NU8) 39):
	{
		gensetconstr_511112(p, n, r);
	}
	break;
	case ((NU8) 41):
	{
		genarrayconstr_511164(p, n, r);
	}
	break;
	case ((NU8) 37):
	{
		gentupleconstr_511197(p, n, r);
	}
	break;
	case ((NU8) 38):
	{
		genobjconstr_511252(p, n, r);
	}
	break;
	case ((NU8) 58):
	case ((NU8) 59):
	case ((NU8) 60):
	{
		genconv_511352(p, n, r);
	}
	break;
	case ((NU8) 63):
	case ((NU8) 64):
	{
		genaddr_509008(p, n, r);
	}
	break;
	case ((NU8) 47):
	case ((NU8) 65):
	{
		genderef_509369(p, n, r);
	}
	break;
	case ((NU8) 42):
	{
		genarrayaccess_508897(p, n, r);
	}
	break;
	case ((NU8) 45):
	{
		genfieldaccess_508725(p, n, r);
	}
	break;
	case ((NU8) 46):
	{
		gencheckedfieldaccess_508810(p, n, r);
	}
	break;
	case ((NU8) 66):
	{
		gen_505704(p, (*n).kindU.S6.sons->data[((NI) 0)], r);
	}
	break;
	case ((NU8) 67):
	{
		upconv_511384(p, n, r);
	}
	break;
	case ((NU8) 61):
	{
		gen_505704(p, (*n).kindU.S6.sons->data[((NI) 1)], r);
	}
	break;
	case ((NU8) 68):
	{
		genrangechck_511391(p, n, r, ((NimStringDesc*) &TMP4944));
	}
	break;
	case ((NU8) 69):
	{
		genrangechck_511391(p, n, r, ((NimStringDesc*) &TMP4945));
	}
	break;
	case ((NU8) 70):
	{
		genrangechck_511391(p, n, r, ((NimStringDesc*) &TMP4942));
	}
	break;
	case ((NU8) 71):
	{
		convstrtocstr_511419(p, n, r);
	}
	break;
	case ((NU8) 72):
	{
		convcstrtostr_511452(p, n, r);
	}
	break;
	case ((NU8) 1):
	{
	}
	break;
	case ((NU8) 51):
	case ((NU8) 52):
	{
		Tsym214822* s;
		Ropeobj169006* LOC96;
		s = (*(*n).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym;
		LOC96 = 0;
		LOC96 = manglename_505256(s);
		unsureAsgnRef((void**) (&(*r).res), (*s).loc.r);
		{
			NIM_BOOL LOC99;
			LOC99 = 0;
			LOC99 = (((*s).loc.flags &(1U<<((NU)(((NU8) 3))&15U)))!=0);
			if (LOC99) goto LA100;
			LOC99 = !(((*s).magic == ((NU8) 0)));
			LA100: ;
			if (!LOC99) goto LA101;
		}
		goto LA97;
		LA101: ;
		{
			NIM_BOOL LOC104;
			Ropeobj169006* LOC107;
			LOC104 = 0;
			LOC104 = containsorincl_211862((&(*(*p).g).generatedsyms), (*s).Sup.id);
			if (!!(LOC104)) goto LA105;
			LOC107 = 0;
			LOC107 = genproc_505714(p, s);
			add_169482(&(*p).locals, LOC107);
		}
		goto LA97;
		LA105: ;
		LA97: ;
	}
	break;
	case ((NU8) 4):
	{
		unsureAsgnRef((void**) (&(*r).res), gentypeinfo_505282(p, (*n).typ));
	}
	break;
	case ((NU8) 115):
	case ((NU8) 126):
	{
		NIM_BOOL isexpr;
		NIM_BOOL LOC110;
		LOC110 = 0;
		LOC110 = isemptytype_219514((*n).typ);
		isexpr = !(LOC110);
		{
			NI i_511892;
			NI HEX3Atmp_511955;
			NI LOC112;
			NI res_511958;
			i_511892 = 0;
			HEX3Atmp_511955 = 0;
			LOC112 = 0;
			LOC112 = sonslen_217351(n);
			HEX3Atmp_511955 = (NI)((NI)(LOC112 - ((NI) 1)) - ((NI) (isexpr)));
			res_511958 = ((NI) 0);
			{
				while (1) {
					if (!(res_511958 <= HEX3Atmp_511955)) goto LA114;
					i_511892 = res_511958;
					genstmt_505710(p, (*n).kindU.S6.sons->data[i_511892]);
					res_511958 += ((NI) 1);
				} LA114: ;
			}
		}
		{
			Tnode214790* LOC119;
			if (!isexpr) goto LA117;
			LOC119 = 0;
			LOC119 = lastson_217364(n);
			gen_505704(p, LOC119, r);
		}
		LA117: ;
	}
	break;
	case ((NU8) 112):
	case ((NU8) 127):
	{
		genblock_507530(p, n, r);
	}
	break;
	case ((NU8) 92):
	case ((NU8) 48):
	{
		genif_508065(p, n, r);
	}
	break;
	case ((NU8) 93):
	{
		gen_505704(p, (*(*n).kindU.S6.sons->data[((NI) 1)]).kindU.S6.sons->data[((NI) 0)], r);
	}
	break;
	case ((NU8) 96):
	{
		genwhilestmt_506816(p, n);
	}
	break;
	case ((NU8) 99):
	case ((NU8) 100):
	{
		genvarstmt_510506(p, n);
	}
	break;
	case ((NU8) 101):
	{
	}
	break;
	case ((NU8) 94):
	case ((NU8) 95):
	{
		internalerror_187100((*n).info, ((NimStringDesc*) &TMP4971));
	}
	break;
	case ((NU8) 97):
	{
		{
			if (!((*p).target == ((NU8) 0))) goto LA130;
			gencasejs_507265(p, n, r);
		}
		goto LA128;
		LA130: ;
		{
			gencaselua_507400(p, n, r);
		}
		LA128: ;
	}
	break;
	case ((NU8) 109):
	{
		genreturnstmt_511485(p, n);
	}
	break;
	case ((NU8) 110):
	{
		genbreakstmt_507625(p, n);
	}
	break;
	case ((NU8) 73):
	{
		genasgn_508562(p, n);
	}
	break;
	case ((NU8) 74):
	{
		genfastasgn_508568(p, n);
	}
	break;
	case ((NU8) 114):
	{
		{
			if (!!(((*(*n).kindU.S6.sons->data[((NI) 0)]).kind == ((NU8) 1)))) goto LA140;
			genlinedir_506687(p, n);
			gen_505704(p, (*n).kindU.S6.sons->data[((NI) 0)], r);
		}
		LA140: ;
	}
	break;
	case ((NU8) 89):
	{
		genasmoremitstmt_508033(p, n);
	}
	break;
	case ((NU8) 106):
	{
		gentry_506937(p, n, r);
	}
	break;
	case ((NU8) 108):
	{
		genraisestmt_507240(p, n);
	}
	break;
	case ((NU8) 98):
	case ((NU8) 125):
	case ((NU8) 84):
	case ((NU8) 121):
	case ((NU8) 116):
	case ((NU8) 117):
	case ((NU8) 118):
	case ((NU8) 119):
	case ((NU8) 120):
	case ((NU8) 83):
	case ((NU8) 82):
	{
	}
	break;
	case ((NU8) 90):
	{
		genpragma_511715(p, n);
	}
	break;
	case ((NU8) 79):
	case ((NU8) 80):
	case ((NU8) 81):
	{
		Tsym214822* s;
		s = (*(*n).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym;
		{
			if (!((65600 & (*s).flags) == 64)) goto LA150;
			gensym_509176(p, (*n).kindU.S6.sons->data[((NI) 0)], r);
			unsureAsgnRef((void**) (&(*r).res), NIM_NIL);
		}
		LA150: ;
	}
	break;
	case ((NU8) 156):
	case ((NU8) 157):
	{
		internalerror_187100((*n).info, ((NimStringDesc*) &TMP5021));
	}
	break;
	case ((NU8) 91):
	{
		Tnode214790* LOC154;
		LOC154 = 0;
		LOC154 = lastson_217364(n);
		gen_505704(p, LOC154, r);
	}
	break;
	default:
	{
		NimStringDesc* LOC156;
		LOC156 = 0;
		LOC156 = rawNewString(reprEnum((*n).kind, (&NTI214020))->Sup.len + 24);
appendString(LOC156, ((NimStringDesc*) &TMP5022));
appendString(LOC156, reprEnum((*n).kind, (&NTI214020)));
		internalerror_187100((*n).info, LOC156);
	}
	break;
	}
}

N_NIMCALL(void, genstmt_505710)(Tproc505024* p, Tnode214790* n) {
	Tcompres505014 r;
	memset((void*)(&r), 0, sizeof(r));
	gen_505704(p, n, (&r));
	{
		TY169507 LOC5;
		if (!!((r.res == NIM_NIL))) goto LA3;
		memset((void*)LOC5, 0, sizeof(LOC5));
		LOC5[0] = r.res;
		addf_170205(&(*p).body, ((NimStringDesc*) &TMP5023), LOC5, 1);
	}
	LA3: ;
}

N_NIMCALL(void, genmodule_511993)(Tproc505024* p, Tnode214790* n) {
	{
		TY501232 LOC5;
		NimStringDesc* LOC6;
		NimStringDesc* LOC7;
		if (!(((*p).options &(1U<<((NU)(((NU8) 15))&31U)))!=0)) goto LA3;
		memset((void*)LOC5, 0, sizeof(LOC5));
		LOC6 = 0;
		LOC6 = rawNewString((*(*(*(*p).module).module).name).s->Sup.len + 7);
appendString(LOC6, ((NimStringDesc*) &TMP4649));
appendString(LOC6, (*(*(*(*p).module).module).name).s);
		LOC5[0] = makejsstring_505278(LOC6);
		LOC7 = 0;
		LOC7 = tofilename_183262((*(*(*p).module).module).info.fileindex);
		LOC5[1] = makejsstring_505278(LOC7);
		addf_170205(&(*p).body, ((NimStringDesc*) &TMP4646), LOC5, 2);
	}
	LA3: ;
	genstmt_505710(p, n);
	{
		TY473064 LOC12;
		if (!(((*p).options &(1U<<((NU)(((NU8) 15))&31U)))!=0)) goto LA10;
		memset((void*)LOC12, 0, sizeof(LOC12));
		addf_170205(&(*p).body, ((NimStringDesc*) &TMP5024), LOC12, 0);
	}
	LA10: ;
}

N_NIMCALL(Tnode214790*, myprocess_512028)(Tpasscontext261002* b, Tnode214790* n) {
	Tnode214790* result;
	Tjsgen505006* m;
	Tproc505024* p;
{	result = 0;
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = skipcodegen_261065(n);
		if (!LOC3) goto LA4;
		result = n;
		goto BeforeRet;
	}
	LA4: ;
	result = n;
	m = ((Tjsgen505006*) (b));
	{
		if (!((*m).module == NIM_NIL)) goto LA8;
		internalerror_187100((*n).info, ((NimStringDesc*) &TMP4638));
	}
	LA8: ;
	p = newproc_505201(globals_511962, m, NIM_NIL, (*(*m).module).options);
	genmodule_511993(p, n);
	add_169482(&(*(*p).g).code, (*p).locals);
	add_169482(&(*(*p).g).code, (*p).body);
	}BeforeRet: ;
	return result;
}

N_NIMCALL(Ropeobj169006*, wholecode_512050)(Tjsgen505006* m) {
	Ropeobj169006* result;
	Tnode214790* disp;
	result = 0;
	{
		Tsym214822* prc_512062;
		Tsymseq214792* HEX3Atmp_512088;
		NI i_512091;
		NI L_512093;
		prc_512062 = 0;
		HEX3Atmp_512088 = 0;
		HEX3Atmp_512088 = (*globals_511962).forwarded;
		i_512091 = ((NI) 0);
		L_512093 = (HEX3Atmp_512088 ? HEX3Atmp_512088->Sup.len : 0);
		{
			while (1) {
				if (!(i_512091 < L_512093)) goto LA3;
				prc_512062 = HEX3Atmp_512088->data[i_512091];
				{
					NIM_BOOL LOC6;
					Tproc505024* p;
					Ropeobj169006* LOC9;
					LOC6 = 0;
					LOC6 = containsorincl_211862((&(*globals_511962).generatedsyms), (*prc_512062).Sup.id);
					if (!!(LOC6)) goto LA7;
					p = newproc_505201(globals_511962, m, NIM_NIL, (*(*m).module).options);
					LOC9 = 0;
					LOC9 = genproc_505714(p, prc_512062);
					add_169482(&(*(*p).g).code, LOC9);
				}
				LA7: ;
				i_512091 += ((NI) 1);
			} LA3: ;
		}
	}
	disp = generatemethoddispatchers_375151();
	{
		NI i_512078;
		NI HEX3Atmp_512095;
		NI LOC11;
		NI res_512098;
		i_512078 = 0;
		HEX3Atmp_512095 = 0;
		LOC11 = 0;
		LOC11 = sonslen_217351(disp);
		HEX3Atmp_512095 = (NI)(LOC11 - ((NI) 1));
		res_512098 = ((NI) 0);
		{
			while (1) {
				Tsym214822* prc;
				if (!(res_512098 <= HEX3Atmp_512095)) goto LA13;
				i_512078 = res_512098;
				prc = (*(*disp).kindU.S6.sons->data[i_512078]).kindU.S4.sym;
				{
					NIM_BOOL LOC16;
					Tproc505024* p;
					Ropeobj169006* LOC19;
					LOC16 = 0;
					LOC16 = containsorincl_211862((&(*globals_511962).generatedsyms), (*prc).Sup.id);
					if (!!(LOC16)) goto LA17;
					p = newproc_505201(globals_511962, m, NIM_NIL, (*(*m).module).options);
					LOC19 = 0;
					LOC19 = genproc_505714(p, prc);
					add_169482(&(*(*p).g).code, LOC19);
				}
				LA17: ;
				res_512098 += ((NI) 1);
			} LA13: ;
		}
	}
	result = HEX26_169418((*globals_511962).typeinfo, (*globals_511962).code);
	return result;
}

N_NIMCALL(Ropeobj169006*, genheader_511988)(void) {
	Ropeobj169006* result;
	TY169507 LOC1;
	result = 0;
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = rope_169277(((NimStringDesc*) &TMP5027));
	result = HEX25_169905(((NimStringDesc*) &TMP5026), LOC1, 1);
	return result;
}

N_NIMCALL(Tnode214790*, myclose_512102)(Tpasscontext261002* b, Tnode214790* n) {
	Tnode214790* result;
	Tjsgen505006* m;
{	result = 0;
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = skipcodegen_261065(n);
		if (!LOC3) goto LA4;
		result = n;
		goto BeforeRet;
	}
	LA4: ;
	result = myprocess_512028(b, n);
	m = ((Tjsgen505006*) (b));
	{
		Ropeobj169006* code;
		NimStringDesc* outfile;
		Ropeobj169006* LOC24;
		Ropeobj169006* LOC25;
		NIM_BOOL LOC26;
		if (!(((*(*m).module).flags &(1U<<((NU)(((NU8) 12))&31U)))!=0)) goto LA8;
		code = wholecode_512050(m);
		{
			if (!(((NI) 0) < (outfile_160127 ? outfile_160127->Sup.len : 0))) goto LA12;
			{
				NIM_BOOL LOC16;
				LOC16 = 0;
				LOC16 = nosisAbsolute(outfile_160127);
				if (!LOC16) goto LA17;
				outfile = outfile_160127;
			}
			goto LA14;
			LA17: ;
			{
				NimStringDesc* LOC20;
				LOC20 = 0;
				LOC20 = nosgetCurrentDir();
				outfile = HEX2F_118465(LOC20, outfile_160127);
			}
			LA14: ;
		}
		goto LA10;
		LA12: ;
		{
			NimStringDesc* LOC22;
			NimStringDesc* LOC23;
			LOC22 = 0;
			LOC22 = tofilename_183262(((NI32) ((*(*m).module).position)));
			LOC23 = 0;
			LOC23 = completecfilepath_194854(LOC22, NIM_TRUE);
			outfile = noschangeFileExt(LOC23, ((NimStringDesc*) &TMP5025));
		}
		LA10: ;
		LOC24 = 0;
		LOC24 = genheader_511988();
		LOC25 = 0;
		LOC25 = HEX26_169418(LOC24, code);
		LOC26 = 0;
		LOC26 = writeropeifnotequal_170491(LOC25, outfile);
	}
	LA8: ;
	}BeforeRet: ;
	return result;
}
NIM_EXTERNC N_NOINLINE(void, compiler_jsgenInit000)(void) {
}

NIM_EXTERNC N_NOINLINE(void, compiler_jsgenDatInit000)(void) {
static TNimNode* TMP4635[5];
static TNimNode* TMP4639[12];
static TNimNode* TMP4640[2];
NI TMP4642;
static char* NIM_CONST TMP4641[2] = {
"targetJS", 
"targetLua"};
static TNimNode* TMP4643[2];
static TNimNode TMP1179[26];
NTI505006.size = sizeof(Tjsgen505006);
NTI505006.kind = 17;
NTI505006.base = (&NTI261002);
TMP1179[0].kind = 1;
TMP1179[0].offset = offsetof(Tjsgen505006, module);
TMP1179[0].typ = (&NTI214788);
TMP1179[0].name = "module";
NTI505006.node = &TMP1179[0];
NTI505008.size = sizeof(Tjsgen505006*);
NTI505008.kind = 22;
NTI505008.base = (&NTI505006);
NTI505008.marker = TMP4634;
NTI505018.size = sizeof(Tglobals505018);
NTI505018.kind = 18;
NTI505018.base = 0;
NTI505018.flags = 2;
TMP4635[0] = &TMP1179[2];
TMP1179[2].kind = 1;
TMP1179[2].offset = offsetof(Tglobals505018, typeinfo);
TMP1179[2].typ = (&NTI169004);
TMP1179[2].name = "typeInfo";
TMP4635[1] = &TMP1179[3];
TMP1179[3].kind = 1;
TMP1179[3].offset = offsetof(Tglobals505018, code);
TMP1179[3].typ = (&NTI169004);
TMP1179[3].name = "code";
TMP4635[2] = &TMP1179[4];
TMP1179[4].kind = 1;
TMP1179[4].offset = offsetof(Tglobals505018, forwarded);
TMP1179[4].typ = (&NTI214792);
TMP1179[4].name = "forwarded";
TMP4635[3] = &TMP1179[5];
TMP1179[5].kind = 1;
TMP1179[5].offset = offsetof(Tglobals505018, generatedsyms);
TMP1179[5].typ = (&NTI211035);
TMP1179[5].name = "generatedSyms";
TMP4635[4] = &TMP1179[6];
TMP1179[6].kind = 1;
TMP1179[6].offset = offsetof(Tglobals505018, typeinfogenerated);
TMP1179[6].typ = (&NTI211035);
TMP1179[6].name = "typeInfoGenerated";
TMP1179[1].len = 5; TMP1179[1].kind = 2; TMP1179[1].sons = &TMP4635[0];
NTI505018.node = &TMP1179[1];
NTI505020.size = sizeof(Tglobals505018*);
NTI505020.kind = 22;
NTI505020.base = (&NTI505018);
NTI505020.flags = 2;
NTI505020.marker = TMP4636;
NTI505024.size = sizeof(Tproc505024);
NTI505024.kind = 18;
NTI505024.base = 0;
TMP4639[0] = &TMP1179[8];
TMP1179[8].kind = 1;
TMP1179[8].offset = offsetof(Tproc505024, procdef);
TMP1179[8].typ = (&NTI214782);
TMP1179[8].name = "procDef";
TMP4639[1] = &TMP1179[9];
TMP1179[9].kind = 1;
TMP1179[9].offset = offsetof(Tproc505024, prc);
TMP1179[9].typ = (&NTI214788);
TMP1179[9].name = "prc";
TMP4639[2] = &TMP1179[10];
TMP1179[10].kind = 1;
TMP1179[10].offset = offsetof(Tproc505024, locals);
TMP1179[10].typ = (&NTI169004);
TMP1179[10].name = "locals";
TMP4639[3] = &TMP1179[11];
TMP1179[11].kind = 1;
TMP1179[11].offset = offsetof(Tproc505024, body);
TMP1179[11].typ = (&NTI169004);
TMP1179[11].name = "body";
TMP4639[4] = &TMP1179[12];
TMP1179[12].kind = 1;
TMP1179[12].offset = offsetof(Tproc505024, options);
TMP1179[12].typ = (&NTI160011);
TMP1179[12].name = "options";
TMP4639[5] = &TMP1179[13];
TMP1179[13].kind = 1;
TMP1179[13].offset = offsetof(Tproc505024, module);
TMP1179[13].typ = (&NTI505008);
TMP1179[13].name = "module";
TMP4639[6] = &TMP1179[14];
TMP1179[14].kind = 1;
TMP1179[14].offset = offsetof(Tproc505024, g);
TMP1179[14].typ = (&NTI505020);
TMP1179[14].name = "g";
TMP4639[7] = &TMP1179[15];
TMP1179[15].kind = 1;
TMP1179[15].offset = offsetof(Tproc505024, beforeretneeded);
TMP1179[15].typ = (&NTI130);
TMP1179[15].name = "beforeRetNeeded";
TMP4639[8] = &TMP1179[16];
NTI505004.size = sizeof(NU8);
NTI505004.kind = 14;
NTI505004.base = 0;
NTI505004.flags = 3;
for (TMP4642 = 0; TMP4642 < 2; TMP4642++) {
TMP1179[TMP4642+17].kind = 1;
TMP1179[TMP4642+17].offset = TMP4642;
TMP1179[TMP4642+17].name = TMP4641[TMP4642];
TMP4640[TMP4642] = &TMP1179[TMP4642+17];
}
TMP1179[19].len = 2; TMP1179[19].kind = 2; TMP1179[19].sons = &TMP4640[0];
NTI505004.node = &TMP1179[19];
TMP1179[16].kind = 1;
TMP1179[16].offset = offsetof(Tproc505024, target);
TMP1179[16].typ = (&NTI505004);
TMP1179[16].name = "target";
TMP4639[9] = &TMP1179[20];
TMP1179[20].kind = 1;
TMP1179[20].offset = offsetof(Tproc505024, unique);
TMP1179[20].typ = (&NTI104);
TMP1179[20].name = "unique";
TMP4639[10] = &TMP1179[21];
NTI505016.size = sizeof(Tblock505016);
NTI505016.kind = 18;
NTI505016.base = 0;
NTI505016.flags = 3;
TMP4643[0] = &TMP1179[23];
TMP1179[23].kind = 1;
TMP1179[23].offset = offsetof(Tblock505016, id);
TMP1179[23].typ = (&NTI104);
TMP1179[23].name = "id";
TMP4643[1] = &TMP1179[24];
TMP1179[24].kind = 1;
TMP1179[24].offset = offsetof(Tblock505016, isloop);
TMP1179[24].typ = (&NTI130);
TMP1179[24].name = "isLoop";
TMP1179[22].len = 2; TMP1179[22].kind = 2; TMP1179[22].sons = &TMP4643[0];
NTI505016.node = &TMP1179[22];
NTI505062.size = sizeof(TY505062*);
NTI505062.kind = 24;
NTI505062.base = (&NTI505016);
NTI505062.flags = 2;
NTI505062.marker = TMP4644;
TMP1179[21].kind = 1;
TMP1179[21].offset = offsetof(Tproc505024, blocks);
TMP1179[21].typ = (&NTI505062);
TMP1179[21].name = "blocks";
TMP4639[11] = &TMP1179[25];
TMP1179[25].kind = 1;
TMP1179[25].offset = offsetof(Tproc505024, up);
TMP1179[25].typ = (&NTI505022);
TMP1179[25].name = "up";
TMP1179[7].len = 12; TMP1179[7].kind = 2; TMP1179[7].sons = &TMP4639[0];
NTI505024.node = &TMP1179[7];
NTI505022.size = sizeof(Tproc505024*);
NTI505022.kind = 22;
NTI505022.base = (&NTI505024);
NTI505022.marker = TMP4645;
NTI506247.size = sizeof(Tmagicfrmt506247);
NTI506247.kind = 16;
NTI506247.base = (&NTI138);
NTI506247.flags = 2;
NTI506249.size = sizeof(Tmagicops506249);
NTI506249.kind = 16;
NTI506249.base = (&NTI506247);
NTI506249.flags = 2;
}

