/* Generated by Nimrod Compiler v0.9.5 */
/*   (c) 2014 Andreas Rumpf */
/* The generated code is subject to the original license. */
/* Compiled for: Linux, i386, gcc */
/* Command for C compiler:
   gcc -c  -w -O3 -fno-strict-aliasing  -I/build/nimrod/src/nimrod/lib -o compiler/nimcache/ccgmerge.o compiler/nimcache/ccgmerge.c */
#define NIM_INTBITS 32
#include "nimbase.h"

#include <string.h>

#include <stdio.h>
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tcgen465030 tcgen465030;
typedef struct tllstream176204 tllstream176204;
typedef struct tbaselexer178018 tbaselexer178018;
typedef struct TNimObject TNimObject;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tidtable188849 tidtable188849;
typedef struct tidobj167013 tidobj167013;
typedef struct ttype188837 ttype188837;
typedef struct ttypeseq188835 ttypeseq188835;
typedef struct tnode188803 tnode188803;
typedef struct tsym188833 tsym188833;
typedef struct tloc188817 tloc188817;
typedef struct trope145007 trope145007;
typedef struct tpasscontext246003 tpasscontext246003;
typedef struct tidpairseq188847 tidpairseq188847;
typedef struct tidpair188845 tidpair188845;
typedef struct tintset185047 tintset185047;
typedef struct ttrunk185043 ttrunk185043;
typedef struct ttrunkseq185045 ttrunkseq185045;
typedef struct tlinkedlist118023 tlinkedlist118023;
typedef struct tlistentry118017 tlistentry118017;
typedef struct tcproc465026 tcproc465026;
typedef struct tnodetable188861 tnodetable188861;
typedef struct tnodepairseq188859 tnodepairseq188859;
typedef struct tnodepair188857 tnodepair188857;
typedef struct tsymseq188805 tsymseq188805;
typedef struct tnodeseq188797 tnodeseq188797;
typedef struct TY163540 TY163540;
typedef struct TY465097 TY465097;
typedef struct tblock465024 tblock465024;
typedef struct tmergesections466849 tmergesections466849;
typedef struct tcell41090 tcell41090;
typedef struct tcellseq41106 tcellseq41106;
typedef struct tgcheap43016 tgcheap43016;
typedef struct tcellset41102 tcellset41102;
typedef struct tpagedesc41098 tpagedesc41098;
typedef struct tmemregion23410 tmemregion23410;
typedef struct tsmallchunk22638 tsmallchunk22638;
typedef struct tllchunk23404 tllchunk23404;
typedef struct tbigchunk22640 tbigchunk22640;
typedef struct tintset22615 tintset22615;
typedef struct ttrunk22611 ttrunk22611;
typedef struct tavlnode23408 tavlnode23408;
typedef struct tgcstat43014 tgcstat43014;
typedef struct tlineinfo163527 tlineinfo163527;
typedef struct tident167019 tident167019;
typedef struct tscope188827 tscope188827;
typedef struct TY188933 TY188933;
typedef struct tinstantiation188823 tinstantiation188823;
typedef struct tstrtable188807 tstrtable188807;
typedef struct tlib188821 tlib188821;
typedef struct tbasechunk22636 tbasechunk22636;
typedef struct tfreecell22628 tfreecell22628;
typedef struct TY188922 TY188922;
struct  TGenericSeq  {
NI len;
NI reserved;
};
struct  NimStringDesc  {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef N_NIMCALL_PTR(void, TY2289) (void* p, NI op);
struct  TNimType  {
NI size;
NU8 kind;
NU8 flags;
TNimType* base;
TNimNode* node;
void* finalizer;
TY2289 marker;
};
struct  TNimObject  {
TNimType* m_type;
};
struct  tbaselexer178018  {
  TNimObject Sup;
NI Bufpos;
NCSTRING Buf;
NI Buflen;
tllstream176204* Stream;
NI Linenumber;
NI Sentinel;
NI Linestart;
};
struct  TNimNode  {
NU8 kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct  tidobj167013  {
  TNimObject Sup;
NI Id;
};
struct  tloc188817  {
NU8 K;
NU8 S;
NU8 Flags;
ttype188837* T;
trope145007* R;
trope145007* Heaproot;
NI A;
};
struct  ttype188837  {
  tidobj167013 Sup;
NU8 Kind;
NU8 Callconv;
NU32 Flags;
ttypeseq188835* Sons;
tnode188803* N;
tsym188833* Destructor;
tsym188833* Owner;
tsym188833* Sym;
NI64 Size;
NI Align;
tloc188817 Loc;
};
struct  tpasscontext246003  {
  TNimObject Sup;
NIM_BOOL Fromcache;
};
typedef trope145007* tcfilesections465014[18];
struct  tidpair188845  {
tidobj167013* Key;
TNimObject* Val;
};
struct  tidtable188849  {
NI Counter;
tidpairseq188847* Data;
};
struct  tintset185047  {
NI Counter;
NI Max;
ttrunk185043* Head;
ttrunkseq185045* Data;
};
struct  tlinkedlist118023  {
tlistentry118017* Head;
tlistentry118017* Tail;
NI Counter;
};
struct  tnodepair188857  {
NI H;
tnode188803* Key;
NI Val;
};
struct  tnodetable188861  {
NI Counter;
tnodepairseq188859* Data;
};
typedef trope145007* TY465132[10];
struct  tcgen465030  {
  tpasscontext246003 Sup;
tsym188833* Module;
NimStringDesc* Filename;
tcfilesections465014 S;
NIM_BOOL Preventstacktrace;
NIM_BOOL Usesthreadvars;
NIM_BOOL Framedeclared;
NIM_BOOL Isheaderfile;
NIM_BOOL Includesstringh;
NimStringDesc* Cfilename;
tidtable188849 Typecache;
tidtable188849 Forwtypecache;
tintset185047 Declaredthings;
tintset185047 Declaredprotos;
tlinkedlist118023 Headerfiles;
tintset185047 Typeinfomarker;
tcproc465026* Initproc;
tcproc465026* Postinitproc;
tcproc465026* Preinitproc;
ttypeseq188835* Typestack;
tnodetable188861 Datacache;
tsymseq188805* Forwardedprocs;
NI Typenodes;
NI Nimtypes;
trope145007* Typenodesname;
trope145007* Nimtypesname;
NI Labels;
TY465132 Extensionloaders;
trope145007* Injectstmt;
};
typedef trope145007* tcprocsections465018[3];
struct  tblock465024  {
NI Id;
trope145007* Label;
tcprocsections465018 Sections;
NIM_BOOL Isloop;
NI16 Nestedtrystmts;
NI16 Nestedexceptstmts;
NI16 Framelen;
};
struct  tcproc465026  {
tsym188833* Prc;
NIM_BOOL Beforeretneeded;
NIM_BOOL Threadvaraccessed;
tnodeseq188797* Nestedtrystmts;
NI Inexceptblock;
TY163540* Finallysafepoints;
NI Labels;
TY465097* Blocks;
NI Breakidx;
NU32 Options;
NI Maxframelen;
tcgen465030* Module;
NI Withinloop;
NI Gcframeid;
trope145007* Gcframetype;
};
struct  tmergesections466849  {
tcfilesections465014 F;
tcprocsections465018 P;
};
typedef NimStringDesc* TY466009[18];
typedef NimStringDesc* TY466015[3];
struct  tcell41090  {
NI Refcount;
TNimType* Typ;
};
struct  tcellseq41106  {
NI Len;
NI Cap;
tcell41090** D;
};
struct  tcellset41102  {
NI Counter;
NI Max;
tpagedesc41098* Head;
tpagedesc41098** Data;
};
typedef tsmallchunk22638* TY23422[512];
typedef ttrunk22611* ttrunkbuckets22613[256];
struct  tintset22615  {
ttrunkbuckets22613 Data;
};
struct  tmemregion23410  {
NI Minlargeobj;
NI Maxlargeobj;
TY23422 Freesmallchunks;
tllchunk23404* Llmem;
NI Currmem;
NI Maxmem;
NI Freemem;
NI Lastsize;
tbigchunk22640* Freechunkslist;
tintset22615 Chunkstarts;
tavlnode23408* Root;
tavlnode23408* Deleted;
tavlnode23408* Last;
tavlnode23408* Freeavlnodes;
};
struct  tgcstat43014  {
NI Stackscans;
NI Cyclecollections;
NI Maxthreshold;
NI Maxstacksize;
NI Maxstackcells;
NI Cycletablesize;
NI64 Maxpause;
};
struct  tgcheap43016  {
void* Stackbottom;
NI Cyclethreshold;
tcellseq41106 Zct;
tcellseq41106 Decstack;
tcellset41102 Cycleroots;
tcellseq41106 Tempstack;
NI Recgclock;
tmemregion23410 Region;
tgcstat43014 Stat;
};
typedef NI TY22618[16];
struct  ttrunk185043  {
ttrunk185043* Next;
NI Key;
TY22618 Bits;
};
struct  tllstream176204  {
  TNimObject Sup;
NU8 Kind;
FILE* F;
NimStringDesc* S;
NI Rd;
NI Wr;
NI Lineoffset;
};
struct  tlineinfo163527  {
NI16 Line;
NI16 Col;
NI32 Fileindex;
};
struct  tnode188803  {
ttype188837* Typ;
tlineinfo163527 Info;
NU16 Flags;
NU8 Kind;
union {
struct {NI64 Intval;
} S1;
struct {NF Floatval;
} S2;
struct {NimStringDesc* Strval;
} S3;
struct {tsym188833* Sym;
} S4;
struct {tident167019* Ident;
} S5;
struct {tnodeseq188797* Sons;
} S6;
} kindU;
NimStringDesc* Comment;
};
struct  tstrtable188807  {
NI Counter;
tsymseq188805* Data;
};
struct  tsym188833  {
  tidobj167013 Sup;
NU8 Kind;
union {
struct {ttypeseq188835* Typeinstcache;
tscope188827* Typscope;
} S1;
struct {TY188933* Procinstcache;
tscope188827* Scope;
} S2;
struct {TY188933* Usedgenerics;
tstrtable188807 Tab;
} S3;
} kindU;
NU16 Magic;
ttype188837* Typ;
tident167019* Name;
tlineinfo163527 Info;
tsym188833* Owner;
NU32 Flags;
tnode188803* Ast;
NU32 Options;
NI Position;
NI Offset;
tloc188817 Loc;
tlib188821* Annex;
tnode188803* Constraint;
};
struct  trope145007  {
  TNimObject Sup;
trope145007* Left;
trope145007* Right;
NI Length;
NimStringDesc* Data;
};
struct  tlistentry118017  {
  TNimObject Sup;
tlistentry118017* Prev;
tlistentry118017* Next;
};
struct  tpagedesc41098  {
tpagedesc41098* Next;
NI Key;
TY22618 Bits;
};
struct  tbasechunk22636  {
NI Prevsize;
NI Size;
NIM_BOOL Used;
};
struct  tsmallchunk22638  {
  tbasechunk22636 Sup;
tsmallchunk22638* Next;
tsmallchunk22638* Prev;
tfreecell22628* Freelist;
NI Free;
NI Acc;
NF Data;
};
struct  tllchunk23404  {
NI Size;
NI Acc;
tllchunk23404* Next;
};
struct  tbigchunk22640  {
  tbasechunk22636 Sup;
tbigchunk22640* Next;
tbigchunk22640* Prev;
NI Align;
NF Data;
};
struct  ttrunk22611  {
ttrunk22611* Next;
NI Key;
TY22618 Bits;
};
typedef tavlnode23408* TY23414[2];
struct  tavlnode23408  {
TY23414 Link;
NI Key;
NI Upperbound;
NI Level;
};
struct  tident167019  {
  tidobj167013 Sup;
NimStringDesc* S;
tident167019* Next;
NI H;
};
struct  tscope188827  {
NI Depthlevel;
tstrtable188807 Symbols;
tnodeseq188797* Usingsyms;
tscope188827* Parent;
};
struct  tinstantiation188823  {
tsym188833* Sym;
ttypeseq188835* Concretetypes;
TY188922* Usedby;
};
struct  tlib188821  {
  tlistentry118017 Sup;
NU8 Kind;
NIM_BOOL Generated;
NIM_BOOL Isoverriden;
trope145007* Name;
tnode188803* Path;
};
struct  tfreecell22628  {
tfreecell22628* Next;
NI Zerofield;
};
struct ttypeseq188835 {
  TGenericSeq Sup;
  ttype188837* data[SEQ_DECL_SIZE];
};
struct tidpairseq188847 {
  TGenericSeq Sup;
  tidpair188845 data[SEQ_DECL_SIZE];
};
struct ttrunkseq185045 {
  TGenericSeq Sup;
  ttrunk185043* data[SEQ_DECL_SIZE];
};
struct tnodepairseq188859 {
  TGenericSeq Sup;
  tnodepair188857 data[SEQ_DECL_SIZE];
};
struct tsymseq188805 {
  TGenericSeq Sup;
  tsym188833* data[SEQ_DECL_SIZE];
};
struct tnodeseq188797 {
  TGenericSeq Sup;
  tnode188803* data[SEQ_DECL_SIZE];
};
struct TY163540 {
  TGenericSeq Sup;
  trope145007* data[SEQ_DECL_SIZE];
};
struct TY465097 {
  TGenericSeq Sup;
  tblock465024 data[SEQ_DECL_SIZE];
};
struct TY188933 {
  TGenericSeq Sup;
  tinstantiation188823* data[SEQ_DECL_SIZE];
};
struct TY188922 {
  TGenericSeq Sup;
  NI32 data[SEQ_DECL_SIZE];
};
N_NIMCALL(tllstream176204*, llstreamopen_176227)(NimStringDesc* filename, NU8 mode);
N_NIMCALL(void, openbaselexer_178027)(tbaselexer178018* l, tllstream176204* inputstream, NI buflen);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_NIMCALL(NimStringDesc*, rawNewString)(NI cap);
N_NIMCALL(void, skipuntilcmd_466332)(tbaselexer178018* l);
N_NIMCALL(NI, handlecr_178050)(tbaselexer178018* l, NI pos);
N_NIMCALL(NI, handlelf_178056)(tbaselexer178018* l, NI pos);
N_NIMCALL(void, readkey_466459)(tbaselexer178018* l, NimStringDesc** result);
N_NIMCALL(NimStringDesc*, setLengthStr)(NimStringDesc* s, NI newlen);
N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
N_NIMCALL(void, internalerror_165606)(NimStringDesc* errmsg);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
N_NIMCALL(void, processmergeinfo_466625)(tbaselexer178018* l, tcgen465030* m);
N_NIMCALL(void, skipwhite_466308)(tbaselexer178018* l);
N_NIMCALL(void, readtypecache_466521)(tbaselexer178018* l, tidtable188849* result);
N_NIMCALL(NI, decodevint_196305)(NCSTRING s, NI* pos);
N_NIMCALL(NimStringDesc*, decodestr_196126)(NCSTRING s, NI* pos);
N_NIMCALL(void, idtableput_197147)(tidtable188849* t, tidobj167013* key, TNimObject* val);
N_NIMCALL(ttype188837*, newfaketype_466499)(NI id);
N_NIMCALL(void*, newObj)(TNimType* typ, NI size);
N_NIMCALL(trope145007*, torope_145058)(NimStringDesc* s);
N_NIMCALL(void, readintset_466582)(tbaselexer178018* l, tintset185047* result);
N_NIMCALL(void, incl_185849)(tintset185047* s, NI key);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
N_NIMCALL(void, closebaselexer_178035)(tbaselexer178018* l);
static N_INLINE(trope145007**, s_465173)(tcproc465026* p, NU8 s);
N_NIMCALL(void, readmergesections_466854)(NimStringDesc* cfilename, tmergesections466849* m);
N_NIMCALL(trope145007*, readverbatimsection_466415)(tbaselexer178018* l);
N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
N_NIMCALL(NIM_BOOL, atendmark_466388)(NCSTRING buf, NI pos);
static N_INLINE(NI, find_466905)(TY466009 a_466910, NimStringDesc* item_466912);
N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
static N_INLINE(NI, find_466996)(TY466015 a_467001, NimStringDesc* item_467003);
N_NIMCALL(trope145007*, con_145020)(trope145007* a, trope145007* b);
static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src);
static N_INLINE(tcell41090*, usrtocell_44443)(void* usr);
static N_INLINE(void, rtladdzct_46002)(tcell41090* c);
N_NOINLINE(void, addzct_44418)(tcellseq41106* s, tcell41090* c);
N_NIMCALL(void, app_145046)(trope145007** a, NimStringDesc* b);
N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_NIMCALL(void, writetypecache_466202)(tidtable188849 a, NimStringDesc** s);
N_NIMCALL(void, encodevint_196256)(NI x, NimStringDesc** result);
N_NIMCALL(void, encodestr_196031)(NimStringDesc* s, NimStringDesc** result);
N_NIMCALL(NimStringDesc*, ropetostr_145075)(trope145007* p);
N_NIMCALL(void, writeintset_466235)(tintset185047 a, NimStringDesc** s);
STRING_LITERAL(TMP3770, "ccgmerge: \':\' expected", 22);
STRING_LITERAL(TMP3771, "NIM_merge_INFO", 14);
STRING_LITERAL(TMP3772, "typeCache", 9);
STRING_LITERAL(TMP3773, "declared", 8);
STRING_LITERAL(TMP3774, "typeInfo", 8);
STRING_LITERAL(TMP3775, "labels", 6);
STRING_LITERAL(TMP3776, "hasframe", 8);
STRING_LITERAL(TMP3777, "ccgmerge: \'{\' expected", 22);
STRING_LITERAL(TMP3778, "ccgmerge: unkown key: ", 22);
STRING_LITERAL(TMP3844, "ccgmerge: expected: /*\011NIM_merge_END:*/", 39);
STRING_LITERAL(TMP3845, "/*\011NIM_merge_END:*/", 19);
STRING_LITERAL(TMP3846, "", 0);
STRING_LITERAL(TMP3847, "NIM_merge_HEADERS", 17);
STRING_LITERAL(TMP3848, "NIM_merge_FORWARD_TYPES", 23);
STRING_LITERAL(TMP3849, "NIM_merge_TYPES", 15);
STRING_LITERAL(TMP3850, "NIM_merge_SEQ_TYPES", 19);
STRING_LITERAL(TMP3851, "NIM_merge_FIELD_INFO", 20);
STRING_LITERAL(TMP3852, "NIM_merge_TYPE_INFO", 19);
STRING_LITERAL(TMP3853, "NIM_merge_PROC_HEADERS", 22);
STRING_LITERAL(TMP3854, "NIM_merge_DATA", 14);
STRING_LITERAL(TMP3855, "NIM_merge_VARS", 14);
STRING_LITERAL(TMP3856, "NIM_merge_PROCS", 15);
STRING_LITERAL(TMP3857, "NIM_merge_INIT_PROC", 19);
STRING_LITERAL(TMP3858, "NIM_merge_TYPE_INIT1", 20);
STRING_LITERAL(TMP3859, "NIM_merge_TYPE_INIT2", 20);
STRING_LITERAL(TMP3860, "NIM_merge_TYPE_INIT3", 20);
STRING_LITERAL(TMP3861, "NIM_merge_DEBUG_INIT", 20);
STRING_LITERAL(TMP3862, "NIM_merge_DYNLIB_INIT", 21);
STRING_LITERAL(TMP3863, "NIM_merge_DYNLIB_DEINIT", 23);
NIM_CONST TY466009 cfilesectionnames_466008 = {((NimStringDesc*) &TMP3846),
((NimStringDesc*) &TMP3847),
((NimStringDesc*) &TMP3848),
((NimStringDesc*) &TMP3849),
((NimStringDesc*) &TMP3850),
((NimStringDesc*) &TMP3851),
((NimStringDesc*) &TMP3852),
((NimStringDesc*) &TMP3853),
((NimStringDesc*) &TMP3854),
((NimStringDesc*) &TMP3855),
((NimStringDesc*) &TMP3856),
((NimStringDesc*) &TMP3857),
((NimStringDesc*) &TMP3858),
((NimStringDesc*) &TMP3859),
((NimStringDesc*) &TMP3860),
((NimStringDesc*) &TMP3861),
((NimStringDesc*) &TMP3862),
((NimStringDesc*) &TMP3863)}
;
STRING_LITERAL(TMP3864, "NIM_merge_PROC_LOCALS", 21);
STRING_LITERAL(TMP3865, "NIM_merge_PROC_INIT", 19);
STRING_LITERAL(TMP3866, "NIM_merge_PROC_BODY", 19);
NIM_CONST TY466015 cprocsectionnames_466014 = {((NimStringDesc*) &TMP3864),
((NimStringDesc*) &TMP3865),
((NimStringDesc*) &TMP3866)}
;
STRING_LITERAL(TMP3867, "ccgmerge: unknown section: ", 27);
STRING_LITERAL(TMP3868, "ccgmerge: \'*/\' expected", 23);
STRING_LITERAL(TMP3873, "/*\011", 3);
STRING_LITERAL(TMP3874, ":*/", 3);
STRING_LITERAL(TMP3884, "/*\011NIM_merge_INFO:", 18);
STRING_LITERAL(TMP3885, "typeCache:{", 11);
STRING_LITERAL(TMP3886, "declared:{", 10);
STRING_LITERAL(TMP3887, "typeInfo:{", 10);
STRING_LITERAL(TMP3888, "labels:", 7);
STRING_LITERAL(TMP3889, " hasframe:", 10);
STRING_LITERAL(TMP3890, "*/", 2);
extern TNimType NTI178018; /* TBaseLexer */
extern TNimType NTI188799; /* PType */
extern TNimType NTI188837; /* TType */
extern NimStringDesc* tnl_142593;
extern tgcheap43016 gch_43044;
extern NU32 gglobaloptions_137111;

N_NIMCALL(void, skipuntilcmd_466332)(tbaselexer178018* l) {
	NI pos;
	pos = (*l).Bufpos;
	while (1) {
		switch (((NU8)((*l).Buf[pos]))) {
		case 13:
		{
			pos = handlecr_178050(l, pos);
		}
		break;
		case 10:
		{
			pos = handlelf_178056(l, pos);
		}
		break;
		case 0:
		{
			goto LA1;
		}
		break;
		case 47:
		{
			{
				NIM_BOOL LOC8;
				LOC8 = 0;
				LOC8 = ((NU8)((*l).Buf[(NI32)(pos + 1)]) == (NU8)(42));
				if (!(LOC8)) goto LA9;
				LOC8 = ((NU8)((*l).Buf[(NI32)(pos + 2)]) == (NU8)(9));
				LA9: ;
				if (!LOC8) goto LA10;
				pos += 3;
				goto LA1;
			}
			LA10: ;
			pos += 1;
		}
		break;
		default:
		{
			pos += 1;
		}
		break;
		}
	} LA1: ;
	(*l).Bufpos = pos;
}

N_NIMCALL(void, readkey_466459)(tbaselexer178018* l, NimStringDesc** result) {
	NI pos;
	NCSTRING buf;
	pos = (*l).Bufpos;
	buf = (*l).Buf;
	(*result) = setLengthStr((*result), 0);
	while (1) {
		if (!(((NU8)(buf[pos])) >= ((NU8)(97)) && ((NU8)(buf[pos])) <= ((NU8)(122)) || ((NU8)(buf[pos])) >= ((NU8)(65)) && ((NU8)(buf[pos])) <= ((NU8)(90)) || ((NU8)(buf[pos])) >= ((NU8)(48)) && ((NU8)(buf[pos])) <= ((NU8)(57)) || ((NU8)(buf[pos])) == ((NU8)(95)))) goto LA1;
		(*result) = addChar((*result), buf[pos]);
		pos += 1;
	} LA1: ;
	{
		if (!!(((NU8)(buf[pos]) == (NU8)(58)))) goto LA4;
		internalerror_165606(((NimStringDesc*) &TMP3770));
	}
	LA4: ;
	(*l).Bufpos = (NI32)(pos + 1);
}

static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b) {
	NIM_BOOL result;
	NIM_BOOL LOC11;
	int LOC13;
	result = 0;
	{
		if (!(a == b)) goto LA3;
		result = NIM_TRUE;
		goto BeforeRet;
	}
	LA3: ;
	{
		NIM_BOOL LOC7;
		LOC7 = 0;
		LOC7 = (a == NIM_NIL);
		if (LOC7) goto LA8;
		LOC7 = (b == NIM_NIL);
		LA8: ;
		if (!LOC7) goto LA9;
		result = NIM_FALSE;
		goto BeforeRet;
	}
	LA9: ;
	LOC11 = 0;
	LOC11 = ((*a).Sup.len == (*b).Sup.len);
	if (!(LOC11)) goto LA12;
	LOC13 = 0;
	LOC13 = memcmp(((NCSTRING) ((*a).data)), ((NCSTRING) ((*b).data)), (NI32)((*a).Sup.len * 1));
	LOC11 = (LOC13 == ((NI32) 0));
	LA12: ;
	result = LOC11;
	goto BeforeRet;
	BeforeRet: ;
	return result;
}

N_NIMCALL(void, skipwhite_466308)(tbaselexer178018* l) {
	NI pos;
	pos = (*l).Bufpos;
	while (1) {
		switch (((NU8)((*l).Buf[pos]))) {
		case 13:
		{
			pos = handlecr_178050(l, pos);
		}
		break;
		case 10:
		{
			pos = handlelf_178056(l, pos);
		}
		break;
		case 32:
		{
			pos += 1;
		}
		break;
		default:
		{
			goto LA1;
		}
		break;
		}
	} LA1: ;
	(*l).Bufpos = pos;
}

N_NIMCALL(ttype188837*, newfaketype_466499)(NI id) {
	ttype188837* result;
	result = 0;
	result = (ttype188837*) newObj((&NTI188799), sizeof(ttype188837));
	(*result).Sup.Sup.m_type = (&NTI188837);
	(*result).Sup.Id = id;
	return result;
}

N_NIMCALL(void, readtypecache_466521)(tbaselexer178018* l, tidtable188849* result) {
	{
		if (!!(((NU8)((*l).Buf[(*l).Bufpos]) == (NU8)(123)))) goto LA3;
		internalerror_165606(((NimStringDesc*) &TMP3777));
	}
	LA3: ;
	(*l).Bufpos += 1;
	while (1) {
		NI key;
		NimStringDesc* value;
		ttype188837* LOC10;
		trope145007* LOC11;
		if (!!(((NU8)((*l).Buf[(*l).Bufpos]) == (NU8)(125)))) goto LA5;
		skipwhite_466308(l);
		key = decodevint_196305((*l).Buf, &(*l).Bufpos);
		{
			if (!!(((NU8)((*l).Buf[(*l).Bufpos]) == (NU8)(58)))) goto LA8;
			internalerror_165606(((NimStringDesc*) &TMP3770));
		}
		LA8: ;
		(*l).Bufpos += 1;
		value = decodestr_196126((*l).Buf, &(*l).Bufpos);
		LOC10 = 0;
		LOC10 = newfaketype_466499(key);
		LOC11 = 0;
		LOC11 = torope_145058(value);
		idtableput_197147(result, &LOC10->Sup, &LOC11->Sup);
	} LA5: ;
	(*l).Bufpos += 1;
}

N_NIMCALL(void, readintset_466582)(tbaselexer178018* l, tintset185047* result) {
	{
		if (!!(((NU8)((*l).Buf[(*l).Bufpos]) == (NU8)(123)))) goto LA3;
		internalerror_165606(((NimStringDesc*) &TMP3777));
	}
	LA3: ;
	(*l).Bufpos += 1;
	while (1) {
		NI key;
		if (!!(((NU8)((*l).Buf[(*l).Bufpos]) == (NU8)(125)))) goto LA5;
		skipwhite_466308(l);
		key = decodevint_196305((*l).Buf, &(*l).Bufpos);
		incl_185849(result, key);
	} LA5: ;
	(*l).Bufpos += 1;
}

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

N_NIMCALL(void, processmergeinfo_466625)(tbaselexer178018* l, tcgen465030* m) {
	NimStringDesc* k;
	k = rawNewString(9);
	while (1) {
		skipwhite_466308(l);
		{
			NIM_BOOL LOC4;
			LOC4 = 0;
			LOC4 = ((NU8)((*l).Buf[(*l).Bufpos]) == (NU8)(42));
			if (!(LOC4)) goto LA5;
			LOC4 = ((NU8)((*l).Buf[(NI32)((*l).Bufpos + 1)]) == (NU8)(47));
			LA5: ;
			if (!LOC4) goto LA6;
			(*l).Bufpos += 2;
			goto LA1;
		}
		LA6: ;
		readkey_466459(l, &k);
		if (eqStrings(k, ((NimStringDesc*) &TMP3772))) goto LA8;
		if (eqStrings(k, ((NimStringDesc*) &TMP3773))) goto LA9;
		if (eqStrings(k, ((NimStringDesc*) &TMP3774))) goto LA10;
		if (eqStrings(k, ((NimStringDesc*) &TMP3775))) goto LA11;
		if (eqStrings(k, ((NimStringDesc*) &TMP3776))) goto LA12;
		goto LA13;
		LA8: ;
		{
			readtypecache_466521(l, &(*m).Typecache);
		}
		goto LA14;
		LA9: ;
		{
			readintset_466582(l, &(*m).Declaredthings);
		}
		goto LA14;
		LA10: ;
		{
			readintset_466582(l, &(*m).Typeinfomarker);
		}
		goto LA14;
		LA11: ;
		{
			NI LOC19;
			LOC19 = 0;
			LOC19 = decodevint_196305((*l).Buf, &(*l).Bufpos);
			(*m).Labels = ((NI) (LOC19));
		}
		goto LA14;
		LA12: ;
		{
			NI LOC21;
			LOC21 = 0;
			LOC21 = decodevint_196305((*l).Buf, &(*l).Bufpos);
			(*m).Framedeclared = !((LOC21 == 0));
		}
		goto LA14;
		LA13: ;
		{
			NimStringDesc* LOC23;
			LOC23 = 0;
			LOC23 = rawNewString(k->Sup.len + 22);
appendString(LOC23, ((NimStringDesc*) &TMP3778));
appendString(LOC23, k);
			internalerror_165606(LOC23);
		}
		LA14: ;
	} LA1: ;
}

N_NIMCALL(void, readmergeinfo_466813)(NimStringDesc* cfilename, tcgen465030* m) {
	tllstream176204* s_466818;
	tbaselexer178018 l;
	NimStringDesc* k;
	s_466818 = llstreamopen_176227(cfilename, ((NU8) 0));
	{
		if (!(s_466818 == NIM_NIL)) goto LA3;
		goto BeforeRet;
	}
	LA3: ;
	memset((void*)&l, 0, sizeof(l));
	l.Sup.m_type = (&NTI178018);
	openbaselexer_178027(&l, s_466818, 8192);
	k = rawNewString(23);
	while (1) {
		skipuntilcmd_466332(&l);
		{
			if (!((NU8)(l.Buf[l.Bufpos]) == (NU8)(0))) goto LA8;
			goto LA5;
		}
		LA8: ;
		readkey_466459(&l, &k);
		{
			if (!eqStrings(k, ((NimStringDesc*) &TMP3771))) goto LA12;
			processmergeinfo_466625(&l, m);
			goto LA5;
		}
		LA12: ;
	} LA5: ;
	closebaselexer_178035(&l);
	BeforeRet: ;
}

static N_INLINE(trope145007**, s_465173)(tcproc465026* p, NU8 s) {
	trope145007** result;
	result = 0;
	result = &(*p).Blocks->data[(NI32)((*p).Blocks->Sup.len - 1)].Sections[(s)- 0];
	return result;
}

N_NIMCALL(NIM_BOOL, mergerequired_467094)(tcgen465030* m) {
	NIM_BOOL result;
	NU8 i_467138;
	NU8 res_467217;
	NU8 i_467198;
	NU8 res_467222;
	result = 0;
	i_467138 = 0;
	res_467217 = ((NU8) 1);
	while (1) {
		if (!(res_467217 <= ((NU8) 10))) goto LA1;
		i_467138 = res_467217;
		{
			if (!!(((*m).S[(i_467138)- 0] == NIM_NIL))) goto LA4;
			result = NIM_TRUE;
			goto BeforeRet;
		}
		LA4: ;
		res_467217 += 1;
	} LA1: ;
	i_467198 = 0;
	res_467222 = ((NU8) 0);
	while (1) {
		if (!(res_467222 <= ((NU8) 2))) goto LA6;
		i_467198 = res_467222;
		{
			trope145007** LOC9;
			LOC9 = 0;
			LOC9 = s_465173((*m).Initproc, i_467198);
			if (!!(((*LOC9) == NIM_NIL))) goto LA10;
			result = NIM_TRUE;
			goto BeforeRet;
		}
		LA10: ;
		res_467222 += 1;
	} LA6: ;
	BeforeRet: ;
	return result;
}

N_NIMCALL(NIM_BOOL, atendmark_466388)(NCSTRING buf, NI pos) {
	NIM_BOOL result;
	NI s;
	result = 0;
	s = 0;
	while (1) {
		NIM_BOOL LOC2;
		LOC2 = 0;
		LOC2 = (s < 19);
		if (!(LOC2)) goto LA3;
		LOC2 = ((NU8)(buf[(NI32)(pos + s)]) == (NU8)(((NimStringDesc*) &TMP3845)->data[s]));
		LA3: ;
		if (!LOC2) goto LA1;
		s += 1;
	} LA1: ;
	result = (s == 19);
	return result;
}

N_NIMCALL(trope145007*, readverbatimsection_466415)(tbaselexer178018* l) {
	trope145007* result;
	NI pos;
	NCSTRING buf;
	NimStringDesc* r;
	result = 0;
	pos = (*l).Bufpos;
	buf = (*l).Buf;
	r = rawNewString(30000);
	while (1) {
		switch (((NU8)(buf[pos]))) {
		case 13:
		{
			pos = handlecr_178050(l, pos);
			buf = (*l).Buf;
			r = resizeString(r, tnl_142593->Sup.len + 0);
appendString(r, tnl_142593);
		}
		break;
		case 10:
		{
			pos = handlelf_178056(l, pos);
			buf = (*l).Buf;
			r = resizeString(r, tnl_142593->Sup.len + 0);
appendString(r, tnl_142593);
		}
		break;
		case 0:
		{
			internalerror_165606(((NimStringDesc*) &TMP3844));
			goto LA1;
		}
		break;
		default:
		{
			{
				NIM_BOOL LOC8;
				LOC8 = 0;
				LOC8 = atendmark_466388(buf, pos);
				if (!LOC8) goto LA9;
				pos += 19;
				goto LA1;
			}
			LA9: ;
			r = addChar(r, buf[pos]);
			pos += 1;
		}
		break;
		}
	} LA1: ;
	(*l).Bufpos = pos;
	result = torope_145058(r);
	return result;
}

static N_INLINE(NI, find_466905)(TY466009 a_466910, NimStringDesc* item_466912) {
	NI result;
	NimStringDesc* i_466970;
	NU8 i_466988;
	result = 0;
	i_466970 = 0;
	i_466988 = ((NU8) 0);
	{
		if (!(i_466988 <= ((NU8) 17))) goto LA3;
		while (1) {
			i_466970 = a_466910[(i_466988)- 0];
			{
				if (!eqStrings(i_466970, item_466912)) goto LA8;
				goto BeforeRet;
			}
			LA8: ;
			result += 1;
			{
				if (!(((NU8) 17) <= i_466988)) goto LA12;
				goto LA5;
			}
			LA12: ;
			i_466988 += 1;
		} LA5: ;
	}
	LA3: ;
	result = -1;
	BeforeRet: ;
	return result;
}

static N_INLINE(NI, find_466996)(TY466015 a_467001, NimStringDesc* item_467003) {
	NI result;
	NimStringDesc* i_467061;
	NU8 i_467079;
	result = 0;
	i_467061 = 0;
	i_467079 = ((NU8) 0);
	{
		if (!(i_467079 <= ((NU8) 2))) goto LA3;
		while (1) {
			i_467061 = a_467001[(i_467079)- 0];
			{
				if (!eqStrings(i_467061, item_467003)) goto LA8;
				goto BeforeRet;
			}
			LA8: ;
			result += 1;
			{
				if (!(((NU8) 2) <= i_467079)) goto LA12;
				goto LA5;
			}
			LA12: ;
			i_467079 += 1;
		} LA5: ;
	}
	LA3: ;
	result = -1;
	BeforeRet: ;
	return result;
}

N_NIMCALL(void, readmergesections_466854)(NimStringDesc* cfilename, tmergesections466849* m) {
	tllstream176204* s_466860;
	tbaselexer178018 l;
	NimStringDesc* k;
	s_466860 = llstreamopen_176227(cfilename, ((NU8) 0));
	{
		if (!(s_466860 == NIM_NIL)) goto LA3;
		goto BeforeRet;
	}
	LA3: ;
	memset((void*)&l, 0, sizeof(l));
	l.Sup.m_type = (&NTI178018);
	openbaselexer_178027(&l, s_466860, 8192);
	k = rawNewString(23);
	while (1) {
		skipuntilcmd_466332(&l);
		{
			if (!((NU8)(l.Buf[l.Bufpos]) == (NU8)(0))) goto LA8;
			goto LA5;
		}
		LA8: ;
		readkey_466459(&l, &k);
		{
			if (!eqStrings(k, ((NimStringDesc*) &TMP3771))) goto LA12;
		}
		goto LA10;
		LA12: ;
		{
			NIM_BOOL LOC15;
			trope145007* verbatim;
			NI sectiona;
			LOC15 = 0;
			LOC15 = ((NU8)(l.Buf[l.Bufpos]) == (NU8)(42));
			if (!(LOC15)) goto LA16;
			LOC15 = ((NU8)(l.Buf[(NI32)(l.Bufpos + 1)]) == (NU8)(47));
			LA16: ;
			if (!LOC15) goto LA17;
			l.Bufpos += 2;
			skipwhite_466308(&l);
			verbatim = readverbatimsection_466415(&l);
			skipwhite_466308(&l);
			sectiona = find_466905(cfilesectionnames_466008, k);
			{
				NIM_BOOL LOC21;
				LOC21 = 0;
				LOC21 = (0 < sectiona);
				if (!(LOC21)) goto LA22;
				LOC21 = (sectiona <= 17);
				LA22: ;
				if (!LOC21) goto LA23;
				unsureAsgnRef((void**) &(*m).F[(sectiona)- 0], verbatim);
			}
			goto LA19;
			LA23: ;
			{
				NI sectionb;
				sectionb = find_466996(cprocsectionnames_466014, k);
				{
					NIM_BOOL LOC28;
					LOC28 = 0;
					LOC28 = (0 <= sectionb);
					if (!(LOC28)) goto LA29;
					LOC28 = (sectionb <= 2);
					LA29: ;
					if (!LOC28) goto LA30;
					unsureAsgnRef((void**) &(*m).P[(sectionb)- 0], verbatim);
				}
				goto LA26;
				LA30: ;
				{
					NimStringDesc* LOC33;
					LOC33 = 0;
					LOC33 = rawNewString(k->Sup.len + 27);
appendString(LOC33, ((NimStringDesc*) &TMP3867));
appendString(LOC33, k);
					internalerror_165606(LOC33);
				}
				LA26: ;
			}
			LA19: ;
		}
		goto LA10;
		LA17: ;
		{
			internalerror_165606(((NimStringDesc*) &TMP3868));
		}
		LA10: ;
	} LA5: ;
	closebaselexer_178035(&l);
	BeforeRet: ;
}

static N_INLINE(tcell41090*, usrtocell_44443)(void* usr) {
	tcell41090* result;
	result = 0;
	result = ((tcell41090*) ((NI)((NU32)(((NI) (usr))) - (NU32)(((NI)sizeof(tcell41090))))));
	return result;
}

static N_INLINE(void, rtladdzct_46002)(tcell41090* c) {
	addzct_44418(&gch_43044.Zct, c);
}

static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src) {
	{
		tcell41090* c;
		if (!!((src == NIM_NIL))) goto LA3;
		c = usrtocell_44443(src);
		(*c).Refcount += 8;
	}
	LA3: ;
	{
		tcell41090* c;
		if (!!(((*dest) == NIM_NIL))) goto LA7;
		c = usrtocell_44443((*dest));
		{
			(*c).Refcount -= 8;
			if (!((NU32)((*c).Refcount) < (NU32)(8))) goto LA11;
			rtladdzct_46002(c);
		}
		LA11: ;
	}
	LA7: ;
	(*dest) = src;
}

N_NIMCALL(void, mergefiles_467228)(NimStringDesc* cfilename, tcgen465030* m) {
	tmergesections466849 old;
	NU8 i_467246;
	NU8 res_467268;
	NU8 i_467261;
	NU8 res_467273;
	memset((void*)&old, 0, sizeof(old));
	readmergesections_466854(cfilename, &old);
	i_467246 = 0;
	res_467268 = ((NU8) 0);
	while (1) {
		if (!(res_467268 <= ((NU8) 17))) goto LA1;
		i_467246 = res_467268;
		asgnRefNoCycle((void**) &(*m).S[(i_467246)- 0], con_145020(old.F[(i_467246)- 0], (*m).S[(i_467246)- 0]));
		res_467268 += 1;
	} LA1: ;
	i_467261 = 0;
	res_467273 = ((NU8) 0);
	while (1) {
		trope145007** LOC3;
		trope145007** LOC4;
		if (!(res_467273 <= ((NU8) 2))) goto LA2;
		i_467261 = res_467273;
		LOC3 = 0;
		LOC3 = s_465173((*m).Initproc, i_467261);
		LOC4 = 0;
		LOC4 = s_465173((*m).Initproc, i_467261);
		unsureAsgnRef((void**) &(*LOC3), con_145020(old.P[(i_467261)- 0], (*LOC4)));
		res_467273 += 1;
	} LA2: ;
}

N_NIMCALL(trope145007*, gensectionstart_466112)(NU8 ps) {
	trope145007* result;
	result = 0;
	{
		if (!!(((49152 & gglobaloptions_137111) == 0))) goto LA3;
		result = torope_145058(tnl_142593);
		app_145046(&result, ((NimStringDesc*) &TMP3873));
		app_145046(&result, cprocsectionnames_466014[(ps)- 0]);
		app_145046(&result, ((NimStringDesc*) &TMP3874));
		app_145046(&result, tnl_142593);
	}
	LA3: ;
	return result;
}

N_NIMCALL(trope145007*, gensectionend_466159)(NU8 ps) {
	trope145007* result;
	result = 0;
	{
		NimStringDesc* LOC5;
		if (!!(((49152 & gglobaloptions_137111) == 0))) goto LA3;
		LOC5 = 0;
		LOC5 = rawNewString(tnl_142593->Sup.len + 19);
appendString(LOC5, ((NimStringDesc*) &TMP3845));
appendString(LOC5, tnl_142593);
		result = torope_145058(LOC5);
	}
	LA3: ;
	return result;
}

N_NIMCALL(trope145007*, gensectionstart_466022)(NU8 fs) {
	trope145007* result;
	result = 0;
	{
		if (!!(((49152 & gglobaloptions_137111) == 0))) goto LA3;
		result = torope_145058(tnl_142593);
		app_145046(&result, ((NimStringDesc*) &TMP3873));
		app_145046(&result, cfilesectionnames_466008[(fs)- 0]);
		app_145046(&result, ((NimStringDesc*) &TMP3874));
		app_145046(&result, tnl_142593);
	}
	LA3: ;
	return result;
}

N_NIMCALL(trope145007*, gensectionend_466069)(NU8 fs) {
	trope145007* result;
	result = 0;
	{
		NimStringDesc* LOC5;
		if (!!(((49152 & gglobaloptions_137111) == 0))) goto LA3;
		LOC5 = 0;
		LOC5 = rawNewString(tnl_142593->Sup.len + 19);
appendString(LOC5, ((NimStringDesc*) &TMP3845));
appendString(LOC5, tnl_142593);
		result = torope_145058(LOC5);
	}
	LA3: ;
	return result;
}

N_NIMCALL(void, writetypecache_466202)(tidtable188849 a, NimStringDesc** s) {
	NI i;
	NI id_466208;
	TNimObject* value_466209;
	NI i_466227;
	NI HEX3Atmp_466229;
	NI res_466231;
	i = 0;
	id_466208 = 0;
	value_466209 = 0;
	i_466227 = 0;
	HEX3Atmp_466229 = 0;
	HEX3Atmp_466229 = (a.Data->Sup.len-1);
	res_466231 = 0;
	while (1) {
		if (!(res_466231 <= HEX3Atmp_466229)) goto LA1;
		i_466227 = res_466231;
		{
			NimStringDesc* LOC11;
			if (!!((a.Data->data[i_466227].Key == NIM_NIL))) goto LA4;
			id_466208 = (*a.Data->data[i_466227].Key).Id;
			value_466209 = a.Data->data[i_466227].Val;
			{
				if (!(i == 10)) goto LA8;
				i = 0;
				(*s) = resizeString((*s), tnl_142593->Sup.len + 0);
appendString((*s), tnl_142593);
			}
			goto LA6;
			LA8: ;
			{
				(*s) = addChar((*s), 32);
			}
			LA6: ;
			encodevint_196256(id_466208, s);
			(*s) = addChar((*s), 58);
			LOC11 = 0;
			LOC11 = ropetostr_145075(((trope145007*) (value_466209)));
			encodestr_196031(LOC11, s);
			i += 1;
		}
		LA4: ;
		res_466231 += 1;
	} LA1: ;
	(*s) = addChar((*s), 125);
}

N_NIMCALL(void, writeintset_466235)(tintset185047 a, NimStringDesc** s) {
	NI i;
	NI x_466241;
	ttrunk185043* r_466259;
	i = 0;
	x_466241 = 0;
	r_466259 = a.Head;
	while (1) {
		NI i_466261;
		if (!!((r_466259 == NIM_NIL))) goto LA1;
		i_466261 = 0;
		while (1) {
			NI w_466263;
			NI j_466265;
			if (!(i_466261 <= 15)) goto LA2;
			w_466263 = (*r_466259).Bits[(i_466261)- 0];
			j_466265 = 0;
			while (1) {
				if (!!((w_466263 == 0))) goto LA3;
				{
					if (!!((((NI) ((NI)(w_466263 & 1))) == 0))) goto LA6;
					x_466241 = (NI)((NI)((NU32)((*r_466259).Key) << (NU32)(9)) | (NI)((NU32)((NI)((NU32)(i_466261) << (NU32)(5))) + (NU32)(j_466265)));
					{
						if (!(i == 10)) goto LA10;
						i = 0;
						(*s) = resizeString((*s), tnl_142593->Sup.len + 0);
appendString((*s), tnl_142593);
					}
					goto LA8;
					LA10: ;
					{
						(*s) = addChar((*s), 32);
					}
					LA8: ;
					encodevint_196256(x_466241, s);
					i += 1;
				}
				LA6: ;
				j_466265 += 1;
				w_466263 = (NI)((NU32)(w_466263) >> (NU32)(1));
			} LA3: ;
			i_466261 += 1;
		} LA2: ;
		r_466259 = (*r_466259).Next;
	} LA1: ;
	(*s) = addChar((*s), 125);
}

N_NIMCALL(trope145007*, genmergeinfo_466271)(tcgen465030* m) {
	trope145007* result;
	NimStringDesc* s;
	result = 0;
	{
		if (!!(((gglobaloptions_137111 &(1<<((((NU8) 14))&31)))!=0))) goto LA3;
		result = NIM_NIL;
		goto BeforeRet;
	}
	LA3: ;
	s = copyString(((NimStringDesc*) &TMP3884));
	s = resizeString(s, tnl_142593->Sup.len + 0);
appendString(s, tnl_142593);
	s = resizeString(s, 11);
appendString(s, ((NimStringDesc*) &TMP3885));
	writetypecache_466202((*m).Typecache, &s);
	s = resizeString(s, 10);
appendString(s, ((NimStringDesc*) &TMP3886));
	writeintset_466235((*m).Declaredthings, &s);
	s = resizeString(s, 10);
appendString(s, ((NimStringDesc*) &TMP3887));
	writeintset_466235((*m).Typeinfomarker, &s);
	s = resizeString(s, 7);
appendString(s, ((NimStringDesc*) &TMP3888));
	encodevint_196256(((NI) ((*m).Labels)), &s);
	s = resizeString(s, 10);
appendString(s, ((NimStringDesc*) &TMP3889));
	encodevint_196256(((NI) ((*m).Framedeclared)), &s);
	s = resizeString(s, tnl_142593->Sup.len + 0);
appendString(s, tnl_142593);
	s = resizeString(s, 2);
appendString(s, ((NimStringDesc*) &TMP3890));
	result = torope_145058(s);
	BeforeRet: ;
	return result;
}
N_NOINLINE(void, ccgmergeInit)(void) {
}

N_NOINLINE(void, ccgmergeDatInit)(void) {
}

