/* Generated by Nim Compiler v2.2.4 */
#define NIM_INTBITS 32

#include "nimbase.h"
#include <string.h>
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef far
#undef powerpc
#undef unix
typedef struct tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ;
typedef struct tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg;
typedef struct tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg;
typedef struct tyObject_IdentCachecolonObjectType___ieLwK4T49bbUIZTTVH9cycZA tyObject_IdentCachecolonObjectType___ieLwK4T49bbUIZTTVH9cycZA;
typedef struct tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug;
typedef struct tyObject_TemplCtx__C2znzhCQHqMlcyIaEjxKLg tyObject_TemplCtx__C2znzhCQHqMlcyIaEjxKLg;
typedef struct tyObject_Table__xeOIWsM4quPb3BCnL7MpLQ tyObject_Table__xeOIWsM4quPb3BCnL7MpLQ;
typedef struct tySequence__UMsKPUfB9aFjRPWwXJCk6ug tySequence__UMsKPUfB9aFjRPWwXJCk6ug;
typedef struct tySequence__UMsKPUfB9aFjRPWwXJCk6ug_Content tySequence__UMsKPUfB9aFjRPWwXJCk6ug_Content;
typedef struct tyObject_Target__GzbDkV2u8Pgzlf9azvC43FA tyObject_Target__GzbDkV2u8Pgzlf9azvC43FA;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
typedef struct tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg;
typedef struct tyObject_MsgConfig__E1VAUnnaNIOngCdEgTI2Dw tyObject_MsgConfig__E1VAUnnaNIOngCdEgTI2Dw;
typedef struct tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA;
typedef struct tySequence__E0kio2ZnplNTuln9bsnljSA tySequence__E0kio2ZnplNTuln9bsnljSA;
typedef struct tySequence__E0kio2ZnplNTuln9bsnljSA_Content tySequence__E0kio2ZnplNTuln9bsnljSA_Content;
typedef struct tyObject_Table__JArSTGkZV9bC6esVaXtV5AQ tyObject_Table__JArSTGkZV9bC6esVaXtV5AQ;
typedef struct tySequence__7lEisrXlQEzwtUKW5pzRCw tySequence__7lEisrXlQEzwtUKW5pzRCw;
typedef struct tySequence__7lEisrXlQEzwtUKW5pzRCw_Content tySequence__7lEisrXlQEzwtUKW5pzRCw_Content;
typedef struct tySequence__hTEiKNj3evQAjIXUI21elA tySequence__hTEiKNj3evQAjIXUI21elA;
typedef struct tySequence__hTEiKNj3evQAjIXUI21elA_Content tySequence__hTEiKNj3evQAjIXUI21elA_Content;
typedef struct tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw;
typedef struct tySequence__4eRCaZmrYLLw2k30GPTiMw tySequence__4eRCaZmrYLLw2k30GPTiMw;
typedef struct tySequence__4eRCaZmrYLLw2k30GPTiMw_Content tySequence__4eRCaZmrYLLw2k30GPTiMw_Content;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content;
typedef struct tySequence__xOJ2kx2lq9bBfIm3IXnde3Q tySequence__xOJ2kx2lq9bBfIm3IXnde3Q;
typedef struct tySequence__xOJ2kx2lq9bBfIm3IXnde3Q_Content tySequence__xOJ2kx2lq9bBfIm3IXnde3Q_Content;
typedef struct tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA;
typedef struct tyObject_ProfileDatacolonObjectType___R9cEb9cNTzPRldVmD9bCDO0xQ tyObject_ProfileDatacolonObjectType___R9cEb9cNTzPRldVmD9bCDO0xQ;
typedef struct tyTuple__kN8up2W6YKc5YA9avn5mV5w tyTuple__kN8up2W6YKc5YA9avn5mV5w;
typedef struct tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg;
typedef struct tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA;
typedef struct tySequence__9ahcSjIErJohSBBFLwuF56Q tySequence__9ahcSjIErJohSBBFLwuF56Q;
typedef struct tySequence__9ahcSjIErJohSBBFLwuF56Q_Content tySequence__9ahcSjIErJohSBBFLwuF56Q_Content;
typedef struct tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA;
typedef struct tyObject_TLoc__KvQVlvKb6mbV567NQ0hMOw tyObject_TLoc__KvQVlvKb6mbV567NQ0hMOw;
typedef struct tyObject_TLib__sVuuRvQkiYNOUiPRZhmZig tyObject_TLib__sVuuRvQkiYNOUiPRZhmZig;
typedef struct tySequence__d8ZV4IMgHt9biik9cS9a0hrmg tySequence__d8ZV4IMgHt9biik9cS9a0hrmg;
typedef struct tySequence__d8ZV4IMgHt9biik9cS9a0hrmg_Content tySequence__d8ZV4IMgHt9biik9cS9a0hrmg_Content;
typedef struct tyObject_CountTable__5N9carAoH8U5E301UN9ccEmQ tyObject_CountTable__5N9carAoH8U5E301UN9ccEmQ;
typedef struct tySequence__hRbbzIynOoxrYjHTIKZ3Gw tySequence__hRbbzIynOoxrYjHTIKZ3Gw;
typedef struct tySequence__hRbbzIynOoxrYjHTIKZ3Gw_Content tySequence__hRbbzIynOoxrYjHTIKZ3Gw_Content;
typedef struct tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A;
typedef struct tyTuple__cLVE9cY9aBaG4CyDWuxb2PrQ tyTuple__cLVE9cY9aBaG4CyDWuxb2PrQ;
typedef struct tyTuple__ji9a7IXpM9cONa0mh0VGCVrQ tyTuple__ji9a7IXpM9cONa0mh0VGCVrQ;
typedef struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw tyTuple__xYhUhS7X82rKTqbT9bRfCnw;
typedef struct tyObject_TFileInfo__xPdjmgevOVG8T0Aq8BK7jw tyObject_TFileInfo__xPdjmgevOVG8T0Aq8BK7jw;
typedef struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw tyTuple__QeWl6B6ffS4pU6WWrtcrDw;
typedef struct tyObject_Cfile__DANcxQKXbKf7Ve5cK3l3Wg tyObject_Cfile__DANcxQKXbKf7Ve5cK3l3Wg;
typedef struct tyTuple__Oubp8LPEu86EPyDuc56AXg tyTuple__Oubp8LPEu86EPyDuc56AXg;
struct tySequence__UMsKPUfB9aFjRPWwXJCk6ug {
  NI len; tySequence__UMsKPUfB9aFjRPWwXJCk6ug_Content* p;
};
struct tyObject_Table__xeOIWsM4quPb3BCnL7MpLQ {
	tySequence__UMsKPUfB9aFjRPWwXJCk6ug data;
	NI counter;
};
struct tyObject_TemplCtx__C2znzhCQHqMlcyIaEjxKLg {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* owner;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* genSymOwner;
	NIM_BOOL instLines;
	NIM_BOOL isDeclarative;
	tyObject_Table__xeOIWsM4quPb3BCnL7MpLQ mapping;
	tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* config;
	tyObject_IdentCachecolonObjectType___ieLwK4T49bbUIZTTVH9cycZA* ic;
	NI instID;
	tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug* idgen;
};
typedef NU8 tyEnum_TBackend__CGWF9bdzxEysXyGIUwpK8cw;
typedef NU8 tyEnum_TSystemCPU__3f9cinURS2hpZEHtBX69bm9cw;
typedef NU8 tyEnum_TSystemOS__Ze8KQVBa9adXItTgDtW0Iqw;
struct NimStrPayload {
	NI cap;
	NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
	NI len;
	NimStrPayload* p;
};
struct tyObject_Target__GzbDkV2u8Pgzlf9azvC43FA {
	tyEnum_TSystemCPU__3f9cinURS2hpZEHtBX69bm9cw targetCPU;
	tyEnum_TSystemCPU__3f9cinURS2hpZEHtBX69bm9cw hostCPU;
	tyEnum_TSystemOS__Ze8KQVBa9adXItTgDtW0Iqw targetOS;
	tyEnum_TSystemOS__Ze8KQVBa9adXItTgDtW0Iqw hostOS;
	NI intSize;
	NI floatSize;
	NI ptrSize;
	NimStringV2 tnl;
};
typedef NU32 tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ;
typedef NU64 tySet_tyEnum_TGlobalOption__bV0ebQD3RnR6keJ3pWsG8A;
struct tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA {
	NU16 line;
	NI16 col;
	NI32 fileIndex;
};
typedef NU8 tySet_tyEnum_TErrorOutput__wGgqZXVnY1wkKEe8EL9cL9aw;
struct tySequence__E0kio2ZnplNTuln9bsnljSA {
  NI len; tySequence__E0kio2ZnplNTuln9bsnljSA_Content* p;
};
struct tySequence__7lEisrXlQEzwtUKW5pzRCw {
  NI len; tySequence__7lEisrXlQEzwtUKW5pzRCw_Content* p;
};
struct tyObject_Table__JArSTGkZV9bC6esVaXtV5AQ {
	tySequence__7lEisrXlQEzwtUKW5pzRCw data;
	NI counter;
};
struct tySequence__hTEiKNj3evQAjIXUI21elA {
  NI len; tySequence__hTEiKNj3evQAjIXUI21elA_Content* p;
};
struct tyObject_MsgConfig__E1VAUnnaNIOngCdEgTI2Dw {
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA trackPos;
	NIM_BOOL trackPosAttached;
	tySet_tyEnum_TErrorOutput__wGgqZXVnY1wkKEe8EL9cL9aw errorOutputs;
	tySequence__E0kio2ZnplNTuln9bsnljSA msgContext;
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA lastError;
	tyObject_Table__JArSTGkZV9bC6esVaXtV5AQ filenameToIndexTbl;
	tySequence__hTEiKNj3evQAjIXUI21elA fileInfos;
	NI32 systemFileIdx;
};
typedef NU8 tyEnum_FilenameOption__o3jmnnVs6HdBg5KcNAzYiQ;
typedef NU8 tyEnum_Command__juUdcDlEGhwCRcct3jVHmQ;
typedef NU8 tyEnum_TGCMode__WW4nMw6ktfZDxJ6q84Mivg;
typedef NU8 tyEnum_ExceptionSystem__dJ6sXW7k8NDYNNBUjVZmnw;
typedef NU8 tyEnum_SymbolFilesOption__2eyIIreuRXhYT9buPPZbBYA;
struct tySequence__4eRCaZmrYLLw2k30GPTiMw {
  NI len; tySequence__4eRCaZmrYLLw2k30GPTiMw_Content* p;
};
struct tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw {
	tySequence__4eRCaZmrYLLw2k30GPTiMw data;
	NI counter;
};
typedef NU32 tySet_tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ;
typedef NU8 tySet_tyEnum_LegacyFeature__yvNVqOQTgcxHpvo1MvfBfA;
typedef NU8 tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng;
typedef NU8 tyEnum_TSystemCC__A5wZwpTXF1SiKGvwgH1wrA;
typedef NU8 tySet_tyEnum_TMsgKind__cEzzaeCrXWo9cfLClsd4c3w[13];
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
  NI len; tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content* p;
};
typedef NU8 tySet_tyEnum_StdOrrKind__so1PI9cHP1cN622ePtqa0yw;
struct tySequence__xOJ2kx2lq9bBfIm3IXnde3Q {
  NI len; tySequence__xOJ2kx2lq9bBfIm3IXnde3Q_Content* p;
};
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* result_p0, void* ClE_0);
void* ClE_0;
} tyProc__QQyR5yGA47tr5TwLxcC4Gw;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (NimStringV2 output_p0, void* ClE_0);
void* ClE_0;
} tyProc__k2HFjxisIgDALbEUFojxaQ;
typedef NU8 tyEnum_Severity__mHEDvws7FmOtnFhcQsM8UA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* config_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1, NimStringV2 msg_p2, tyEnum_Severity__mHEDvws7FmOtnFhcQsM8UA severity_p3, void* ClE_0);
void* ClE_0;
} tyProc__DA9aR62IikoxFqfC5rIT9cuw;
struct tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg {
	tyEnum_TBackend__CGWF9bdzxEysXyGIUwpK8cw backend;
	tyObject_Target__GzbDkV2u8Pgzlf9azvC43FA target;
	NI linesCompiled;
	tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ options;
	tySet_tyEnum_TGlobalOption__bV0ebQD3RnR6keJ3pWsG8A globalOptions;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* macrosToExpand;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* arcToExpand;
	tyObject_MsgConfig__E1VAUnnaNIOngCdEgTI2Dw m;
	tyEnum_FilenameOption__o3jmnnVs6HdBg5KcNAzYiQ filenameOption;
	NimStringV2 unitSep;
	NI evalTemplateCounter;
	NI evalMacroCounter;
	NI8 exitcode;
	tyEnum_Command__juUdcDlEGhwCRcct3jVHmQ cmd;
	NimStringV2 cmdInput;
	NIM_BOOL projectIsCmd;
	NIM_BOOL implicitCmd;
	tyEnum_TGCMode__WW4nMw6ktfZDxJ6q84Mivg selectedGC;
	tyEnum_ExceptionSystem__dJ6sXW7k8NDYNNBUjVZmnw exc;
	NIM_BOOL hintProcessingDots;
	NI verbosity;
	NI numberOfProcessors;
	NF lastCmdTime;
	tyEnum_SymbolFilesOption__2eyIIreuRXhYT9buPPZbBYA symbolFiles;
	NI spellSuggestMax;
	tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw cppDefines;
	NimStringV2 headerFile;
	NimStringV2 nimbasePattern;
	tySet_tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ features;
	tySet_tyEnum_LegacyFeature__yvNVqOQTgcxHpvo1MvfBfA legacyFeatures;
	NimStringV2 arguments;
	tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng ideCmd;
	tyEnum_TSystemCC__A5wZwpTXF1SiKGvwgH1wrA cCompiler;
	tySet_tyEnum_TMsgKind__cEzzaeCrXWo9cfLClsd4c3w modifiedyNotes;
	tySet_tyEnum_TMsgKind__cEzzaeCrXWo9cfLClsd4c3w cmdlineNotes;
	tySet_tyEnum_TMsgKind__cEzzaeCrXWo9cfLClsd4c3w foreignPackageNotes;
	tySet_tyEnum_TMsgKind__cEzzaeCrXWo9cfLClsd4c3w notes;
	tySet_tyEnum_TMsgKind__cEzzaeCrXWo9cfLClsd4c3w warningAsErrors;
	tySet_tyEnum_TMsgKind__cEzzaeCrXWo9cfLClsd4c3w mainPackageNotes;
	NI mainPackageId;
	NI errorCounter;
	NI hintCounter;
	NI warnCounter;
	NI errorMax;
	NI maxLoopIterationsVM;
	NI maxCallDepthVM;
	NIM_BOOL isVmTrace;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* configVars;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* symbols;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* packageCache;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ nimblePaths;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ searchPaths;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ lazyPaths;
	NimStringV2 outFile;
	NimStringV2 outDir;
	NimStringV2 jsonBuildFile;
	NimStringV2 prefixDir;
	NimStringV2 libpath;
	NimStringV2 nimcacheDir;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* dllOverrides;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* moduleOverrides;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* cfileSpecificOptions;
	NimStringV2 projectName;
	NimStringV2 projectPath;
	NimStringV2 projectFull;
	NIM_BOOL projectIsStdin;
	NimStringV2 stdinFile;
	tySet_tyEnum_StdOrrKind__so1PI9cHP1cN622ePtqa0yw lastMsgWasDot;
	NI32 projectMainIdx;
	NI32 projectMainIdx2;
	NimStringV2 command;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ commandArgs;
	NimStringV2 commandLine;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ extraCmds;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ implicitImports;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ implicitIncludes;
	NimStringV2 docSeeSrcUrl;
	NimStringV2 docRoot;
	NimStringV2 docCmd;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ configFiles;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ cIncludes;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ cLibs;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ cLinkedLibs;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ externalToLink;
	NimStringV2 linkOptionsCmd;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ compileOptionsCmd;
	NimStringV2 linkOptions;
	NimStringV2 compileOptions;
	NimStringV2 cCompilerPath;
	tySequence__xOJ2kx2lq9bBfIm3IXnde3Q toCompile;
	tyProc__QQyR5yGA47tr5TwLxcC4Gw suggestionResultHook;
	NI suggestVersion;
	NI suggestMaxResults;
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA lastLineInfo;
	tyProc__k2HFjxisIgDALbEUFojxaQ writelnHook;
	tyProc__DA9aR62IikoxFqfC5rIT9cuw structuredErrorHook;
	NimStringV2 cppCustomNamespace;
	NimStringV2 nimMainPrefix;
	tyObject_ProfileDatacolonObjectType___R9cEb9cNTzPRldVmD9bCDO0xQ* vmProfileData;
	NIM_BOOL expandProgress;
	NI expandLevels;
	NimStringV2 expandNodeResult;
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA expandPosition;
	NimStringV2 currentConfigDir;
	NI clientProcessId;
};
typedef NU8 tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA;
typedef NU8 tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w;
struct tyTuple__kN8up2W6YKc5YA9avn5mV5w {
	NimStringV2 Field0;
	NI Field1;
	NI Field2;
};
typedef NU32 tySet_tyEnum_TNodeFlag__3UjGgL9bLM4RXBnoZJs9cviw;
typedef NU8 tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw;
struct tySequence__9ahcSjIErJohSBBFLwuF56Q {
  NI len; tySequence__9ahcSjIErJohSBBFLwuF56Q_Content* p;
};
struct tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typField;
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info;
	tySet_tyEnum_TNodeFlag__3UjGgL9bLM4RXBnoZJs9cviw flags;
	tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw kind;
union{
	struct {
	NI64 intVal;
} _kind_1;
	struct {
	NF floatVal;
} _kind_2;
	struct {
	NimStringV2 strVal;
} _kind_3;
	struct {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* sym;
} _kind_4;
	struct {
	tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* ident;
} _kind_5;
	struct {
	tySequence__9ahcSjIErJohSBBFLwuF56Q sons;
} _kind_6;
};
};
struct tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA {
	NI32 module;
	NI32 item;
};
typedef NU8 tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q;
typedef NU16 tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg;
typedef NU64 tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg;
typedef NU8 tyEnum_TLocKind__4f5UmCRM8alrCgj32FqIRQ;
typedef NU8 tyEnum_TStorageLoc__f19b6ZkRyh7BNPxlyjRbEGg;
typedef NU16 tySet_tyEnum_TLocFlag__Df76pxukl21zlyRFq9aa0Bg;
struct tyObject_TLoc__KvQVlvKb6mbV567NQ0hMOw {
	tyEnum_TLocKind__4f5UmCRM8alrCgj32FqIRQ k;
	tyEnum_TStorageLoc__f19b6ZkRyh7BNPxlyjRbEGg storage;
	tySet_tyEnum_TLocFlag__Df76pxukl21zlyRFq9aa0Bg flags;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* lode;
	NimStringV2 snippet;
};
struct tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg {
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA itemId;
	tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q kind;
union{
	struct {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* gcUnsafetyReason;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* transformedBody;
} _kind_1;
	struct {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* guard;
	NI bitsize;
	NI alignment;
} _kind_2;
};
	tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg magic;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ;
	tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* name;
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* ownerField;
	tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg flags;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* ast;
	tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ options;
	NI position;
	NI32 offset;
	NI32 disamb;
	tyObject_TLoc__KvQVlvKb6mbV567NQ0hMOw loc;
	tyObject_TLib__sVuuRvQkiYNOUiPRZhmZig* annex;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* constraint;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* instantiatedFrom;
};
typedef NU8 tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg;
typedef NU8 tyEnum_TCallingConvention__MvGn9cvx9bNYQKo7Hhd5GM9cQ;
typedef NU64 tySet_tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A;
struct tySequence__d8ZV4IMgHt9biik9cS9a0hrmg {
  NI len; tySequence__d8ZV4IMgHt9biik9cS9a0hrmg_Content* p;
};
struct tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg {
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA itemId;
	tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg kind;
	tyEnum_TCallingConvention__MvGn9cvx9bNYQKo7Hhd5GM9cQ callConv;
	tySet_tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A flags;
	tySequence__d8ZV4IMgHt9biik9cS9a0hrmg sons;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* ownerField;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* sym;
	NI64 size;
	NI16 align;
	NI16 paddingAtEnd;
	tyObject_TLoc__KvQVlvKb6mbV567NQ0hMOw loc;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typeInst;
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA uniqueId;
};
typedef NU16 tySet_tyEnum_TRenderFlag__Il2q467fyuki59ci9aspexFg;
typedef tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* tyArray__aMPNKijXt2rlhNLnjmVf0A[8192];
struct tyObject_IdentCachecolonObjectType___ieLwK4T49bbUIZTTVH9cycZA {
	tyArray__aMPNKijXt2rlhNLnjmVf0A buckets;
	NI wordCounter;
	tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* idAnon;
	tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* idDelegator;
	tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* emptyIdent;
};
struct tySequence__hRbbzIynOoxrYjHTIKZ3Gw {
  NI len; tySequence__hRbbzIynOoxrYjHTIKZ3Gw_Content* p;
};
struct tyObject_CountTable__5N9carAoH8U5E301UN9ccEmQ {
	tySequence__hRbbzIynOoxrYjHTIKZ3Gw data;
	NI counter;
	NIM_BOOL isSorted;
};
struct tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug {
	NI32 module;
	NI32 symId;
	NI32 typeId_0;
	NIM_BOOL sealed;
	tyObject_CountTable__5N9carAoH8U5E301UN9ccEmQ disambTable;
};
typedef NU8 tyEnum_TNodeFlag__3UjGgL9bLM4RXBnoZJs9cviw;
typedef NU8 tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg;
struct tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA {
	NI id;
	NimStringV2 s;
	tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* next;
	NI h;
};
typedef NU8 tySet_tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw[21];
struct tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A {
	NI rc;
	NI rootIdx;
};
struct tyTuple__cLVE9cY9aBaG4CyDWuxb2PrQ {
	NI Field0;
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA Field1;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* Field2;
};
struct tySequence__UMsKPUfB9aFjRPWwXJCk6ug_Content { NI cap; tyTuple__cLVE9cY9aBaG4CyDWuxb2PrQ data[SEQ_DECL_SIZE]; };
struct tyTuple__ji9a7IXpM9cONa0mh0VGCVrQ {
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA Field0;
	NimStringV2 Field1;
};
struct tySequence__E0kio2ZnplNTuln9bsnljSA_Content { NI cap; tyTuple__ji9a7IXpM9cONa0mh0VGCVrQ data[SEQ_DECL_SIZE]; };
struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw {
	NI Field0;
	NimStringV2 Field1;
	NI32 Field2;
};
struct tySequence__7lEisrXlQEzwtUKW5pzRCw_Content { NI cap; tyTuple__xYhUhS7X82rKTqbT9bRfCnw data[SEQ_DECL_SIZE]; };
struct tyObject_TFileInfo__xPdjmgevOVG8T0Aq8BK7jw {
	NimStringV2 fullPath;
	NimStringV2 projPath;
	NimStringV2 shortName;
	NimStringV2 quotedName;
	NimStringV2 quotedFullName;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ lines;
	NimStringV2 dirtyFile;
	NimStringV2 hash;
	NIM_BOOL dirty;
};
struct tySequence__hTEiKNj3evQAjIXUI21elA_Content { NI cap; tyObject_TFileInfo__xPdjmgevOVG8T0Aq8BK7jw data[SEQ_DECL_SIZE]; };
struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw {
	NI Field0;
	NimStringV2 Field1;
};
struct tySequence__4eRCaZmrYLLw2k30GPTiMw_Content { NI cap; tyTuple__QeWl6B6ffS4pU6WWrtcrDw data[SEQ_DECL_SIZE]; };
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content { NI cap; NimStringV2 data[SEQ_DECL_SIZE]; };
typedef NU8 tySet_tyEnum_CfileFlag__qhMBL5cBz484papsb5WgFQ;
struct tyObject_Cfile__DANcxQKXbKf7Ve5cK3l3Wg {
	NimStringV2 nimname;
	NimStringV2 cname;
	NimStringV2 obj;
	tySet_tyEnum_CfileFlag__qhMBL5cBz484papsb5WgFQ flags;
	NimStringV2 customArgs;
};
struct tySequence__xOJ2kx2lq9bBfIm3IXnde3Q_Content { NI cap; tyObject_Cfile__DANcxQKXbKf7Ve5cK3l3Wg data[SEQ_DECL_SIZE]; };
struct tySequence__9ahcSjIErJohSBBFLwuF56Q_Content { NI cap; tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* data[SEQ_DECL_SIZE]; };
struct tySequence__d8ZV4IMgHt9biik9cS9a0hrmg_Content { NI cap; tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* data[SEQ_DECL_SIZE]; };
struct tyTuple__Oubp8LPEu86EPyDuc56AXg {
	tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* Field0;
	NI Field1;
};
struct tySequence__hRbbzIynOoxrYjHTIKZ3Gw_Content { NI cap; tyTuple__Oubp8LPEu86EPyDuc56AXg data[SEQ_DECL_SIZE]; };
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1);
static N_INLINE(void, nimSetMem__systemZmemory_u7)(void* a_p0, int v_p1, NI size_p2);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NOINLINE(void, liMessage__msgs_u1223)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1, tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA msg_p2, NimStringV2 arg_p3, tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w eh_p4, tyTuple__kN8up2W6YKc5YA9avn5mV5w info2_p5, NIM_BOOL isRaw_p6, NIM_BOOL ignoreError_p7);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___ast_u3240)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** dest_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* src_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, evalTemplateArgs__evaltempl_u294)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p1, tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p2, NIM_BOOL fromHlo_p3);
static N_INLINE(NI, len__ast_u3175)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
static N_INLINE(NI, paramsLen__ast_u5595)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nsuFormatSingleElem)(NimStringV2 formatstr_p0, NimStringV2 a_p1);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, renderTree__renderer_u59)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0, tySet_tyEnum_TRenderFlag__Il2q467fyuki59ci9aspexFg renderFlags_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___system_u2627)(NimStringV2 dest_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, newNodeI__ast_u4076)(tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw kind_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1);
N_LIB_PRIVATE N_NIMCALL(void, add__ast_u3200)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* father_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* son_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_u3237)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* dest_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, copyTree__ast_u6862)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* src_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, eqdup___ast_u4564)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* src_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg*, eqdup___options_u2140)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* src_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_IdentCachecolonObjectType___ieLwK4T49bbUIZTTVH9cycZA*, eqdup___idents_u344)(tyObject_IdentCachecolonObjectType___ieLwK4T49bbUIZTTVH9cycZA* src_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_Table__xeOIWsM4quPb3BCnL7MpLQ, initTable__semdata_u1099)(NI initialSize_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug*, eqdup___ast_u3091)(tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug* src_p0);
static N_INLINE(NIM_BOOL, isAtom__ast_u7194)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
N_LIB_PRIVATE N_NIMCALL(void, evalTemplateAux__evaltempl_u25)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* templ_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* actual_p1, tyObject_TemplCtx__C2znzhCQHqMlcyIaEjxKLg* c_p2, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* result_p3);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___ast_u4561)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg** dest_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* src_p1);
static N_INLINE(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, owner__ast_u6233)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p0);
static N_INLINE(NI, safeLen__ast_u3182)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, copyNode__ast_u6707)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* src_p0);
static N_INLINE(NI, signatureLen__ast_u5589)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_u4558)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* dest_p0);
static N_INLINE(NimStringV2, toFileLineCol__msgs_u701)(tyTuple__kN8up2W6YKc5YA9avn5mV5w info_p0);
static N_INLINE(void, appendString)(NimStringV2* dest_p0, NimStringV2 src_p1);
static N_INLINE(void, copyMem__system_u1718)(void* dest_p0, void* source_p1, NI size_p2);
static N_INLINE(void, nimCopyMem)(void* dest_p0, void* source_p1, NI size_p2);
N_LIB_PRIVATE N_NIMCALL(void, prepareAdd)(NimStringV2* s_p0, NI addLen_p1);
static N_INLINE(void, addInt__stdZprivateZdigitsutils_u204)(NimStringV2* result_p0, NI x_p1);
N_LIB_PRIVATE N_NIMCALL(void, addInt__stdZprivateZdigitsutils_u187)(NimStringV2* result_p0, NI64 x_p1);
N_LIB_PRIVATE N_NIMCALL(void, internalErrorImpl__msgs_u1594)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1, NimStringV2 errMsg_p2, tyTuple__kN8up2W6YKc5YA9avn5mV5w info2_p3);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, getOrDefault__semdata_u2628)(tyObject_Table__xeOIWsM4quPb3BCnL7MpLQ t_p0, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___ast_u4567)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg** dest_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* src_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, copySym__ast_u6229)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p0, tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug* idgen_p1);
static N_INLINE(void, setOwner__icZic_u12873)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* owner_p1);
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___semdata_u1182)(tyObject_Table__xeOIWsM4quPb3BCnL7MpLQ* t_p0, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key_p1, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* val_p2);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, newIdentNode__ast_u5143)(tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* ident_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA*, getIdent__idents_u206)(tyObject_IdentCachecolonObjectType___ieLwK4T49bbUIZTTVH9cycZA* ic_p0, NimStringV2 identifier_p1);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___systemZdollars_u9)(NI xX60gensym0__p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, rawNewString)(NI space_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___idents_u155)(tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* dest_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, newSymNode__ast_u5150)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* sym_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, copyNode__evaltempl_u20)(tyObject_TemplCtx__C2znzhCQHqMlcyIaEjxKLg* ctx_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* a_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* b_p2);
N_LIB_PRIVATE N_NIMCALL(void, setInfoRecursive__ast_u4039)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isRunnableExamples__trees_u411)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___ast_u3246)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** dest_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* src_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, wrapInComesFrom__evaltempl_u328)(tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* sym_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* res_p2);
static N_INLINE(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, lastSon__ast_u5187)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
static N_INLINE(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ**, X5BX5D___ast_u5190)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** s_p0, NI s_p0Len_0, NI i_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___evaltempl_u397)(tyObject_TemplCtx__C2znzhCQHqMlcyIaEjxKLg* dest_p0);
static N_INLINE(NIM_BOOL, nimDecRefIsLastDyn)(void* p_p0);
static N_INLINE(NI, minuspercent___system_u805)(NI x_p0, NI y_p1);
N_LIB_PRIVATE N_NIMCALL(void, unregisterCycle__system_u3067)(tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A* s_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_u3454)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, nimRawDispose)(void* p_p0, NI alignment_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___semdata_u743)(tySequence__UMsKPUfB9aFjRPWwXJCk6ug dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___options_u1750)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* dest_p0);
static N_INLINE(NIM_BOOL, nimDecRefIsLast)(void* p_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___idents_u274)(tyObject_IdentCachecolonObjectType___ieLwK4T49bbUIZTTVH9cycZA* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_u3059)(tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug* dest_p0);
static const struct {
  NI cap; NIM_CHAR data[33+1];
} TM__N0xGjswvcjwwH43PvVNJAg_2 = { 33 | NIM_STRLIT_FLAG, "template instantiation too nested" };
static const NimStringV2 TM__N0xGjswvcjwwH43PvVNJAg_3 = {33, (NimStrPayload*)&TM__N0xGjswvcjwwH43PvVNJAg_2};
static const struct {
  NI cap; NIM_CHAR data[64+1];
} TM__N0xGjswvcjwwH43PvVNJAg_5 = { 64 | NIM_STRLIT_FLAG, "/home/runner/work/nightlies/nightlies/nim/compiler/evaltempl.nim" };
static const struct {
  NI cap; NIM_CHAR data[25+1];
} TM__N0xGjswvcjwwH43PvVNJAg_6 = { 25 | NIM_STRLIT_FLAG, "wrong number of arguments" };
static const NimStringV2 TM__N0xGjswvcjwwH43PvVNJAg_7 = {25, (NimStrPayload*)&TM__N0xGjswvcjwwH43PvVNJAg_6};
static const struct {
  NI cap; NIM_CHAR data[39+1];
} TM__N0xGjswvcjwwH43PvVNJAg_9 = { 39 | NIM_STRLIT_FLAG, "\'$1\' has unspecified generic parameters" };
static const NimStringV2 TM__N0xGjswvcjwwH43PvVNJAg_10 = {39, (NimStrPayload*)&TM__N0xGjswvcjwwH43PvVNJAg_9};
static const NimStringV2 TM__N0xGjswvcjwwH43PvVNJAg_12 = {25, (NimStrPayload*)&TM__N0xGjswvcjwwH43PvVNJAg_6};
static const struct {
  NI cap; NIM_CHAR data[0+1];
} TM__N0xGjswvcjwwH43PvVNJAg_14 = { 0 | NIM_STRLIT_FLAG, "" };
static const NimStringV2 TM__N0xGjswvcjwwH43PvVNJAg_15 = {0, (NimStrPayload*)&TM__N0xGjswvcjwwH43PvVNJAg_14};
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__N0xGjswvcjwwH43PvVNJAg_16 = { 1 | NIM_STRLIT_FLAG, "(" };
static const NimStringV2 TM__N0xGjswvcjwwH43PvVNJAg_17 = {1, (NimStrPayload*)&TM__N0xGjswvcjwwH43PvVNJAg_16};
static const struct {
  NI cap; NIM_CHAR data[2+1];
} TM__N0xGjswvcjwwH43PvVNJAg_18 = { 2 | NIM_STRLIT_FLAG, ", " };
static const NimStringV2 TM__N0xGjswvcjwwH43PvVNJAg_19 = {2, (NimStrPayload*)&TM__N0xGjswvcjwwH43PvVNJAg_18};
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__N0xGjswvcjwwH43PvVNJAg_20 = { 1 | NIM_STRLIT_FLAG, ")" };
static const NimStringV2 TM__N0xGjswvcjwwH43PvVNJAg_21 = {1, (NimStrPayload*)&TM__N0xGjswvcjwwH43PvVNJAg_20};
static const struct {
  NI cap; NIM_CHAR data[7+1];
} TM__N0xGjswvcjwwH43PvVNJAg_23 = { 7 | NIM_STRLIT_FLAG, "`gensym" };
static const NimStringV2 TM__N0xGjswvcjwwH43PvVNJAg_24 = {7, (NimStrPayload*)&TM__N0xGjswvcjwwH43PvVNJAg_23};
static NIM_CONST tySet_tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw TM__N0xGjswvcjwwH43PvVNJAg_25 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x80, 0x1f, 0x00, 0x3c, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x80, 0x00}
;
static const struct {
  NI cap; NIM_CHAR data[15+1];
} TM__N0xGjswvcjwwH43PvVNJAg_26 = { 15 | NIM_STRLIT_FLAG, "illformed AST: " };
static const NimStringV2 TM__N0xGjswvcjwwH43PvVNJAg_27 = {15, (NimStrPayload*)&TM__N0xGjswvcjwwH43PvVNJAg_26};
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__N0xGjswvcjwwH43PvVNJAg_4 = {{64, (NimStrPayload*)&TM__N0xGjswvcjwwH43PvVNJAg_5},
((NI)194),
((NI)15)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__N0xGjswvcjwwH43PvVNJAg_8 = {{64, (NimStrPayload*)&TM__N0xGjswvcjwwH43PvVNJAg_5},
((NI)138),
((NI)15)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__N0xGjswvcjwwH43PvVNJAg_11 = {{64, (NimStrPayload*)&TM__N0xGjswvcjwwH43PvVNJAg_5},
((NI)141),
((NI)15)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__N0xGjswvcjwwH43PvVNJAg_13 = {{64, (NimStrPayload*)&TM__N0xGjswvcjwwH43PvVNJAg_5},
((NI)153),
((NI)16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__N0xGjswvcjwwH43PvVNJAg_22 = {{64, (NimStrPayload*)&TM__N0xGjswvcjwwH43PvVNJAg_5},
((NI)62),
((NI)8)}
;
extern NIM_CONST tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA unknownLineInfo__lineinfos_u361;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__N0xGjswvcjwwH43PvVNJAg_28 = {{64, (NimStrPayload*)&TM__N0xGjswvcjwwH43PvVNJAg_5},
((NI)215),
((NI)16)}
;
extern NIM_BOOL nimInErrorMode__system_u4304;
static N_INLINE(void, nimSetMem__systemZmemory_u7)(void* a_p0, int v_p1, NI size_p2) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memset(a_p0, v_p1, ((size_t) (size_p2)));
}
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
	NIM_BOOL* result;
	result = (&nimInErrorMode__system_u4304);
	return result;
}
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimSetMem__systemZmemory_u7(p_p0, ((int)0), size_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(NI, len__ast_u3175)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0) {
	NI result;
	NI T1_;
	T1_ = (*n_p0)._kind_6.sons.len;
	result = T1_;
	return result;
}
static N_INLINE(NI, paramsLen__ast_u5595)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NI result;
	NI T1_;
	T1_ = (*t_p0).sons.len;
	result = (NI)(T1_ - ((NI)1));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, evalTemplateArgs__evaltempl_u294)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p1, tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p2, NIM_BOOL fromHlo_p3) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* result;
	NI colontmpD_;
	NI colontmpD__2;
	NI colontmpD__3;
	NI colontmpD__4;
	NI totalParams_1;
	NI genericParams_1;
	NI expectedRegularParams_1;
	NI givenRegularParams_1;
NIM_BOOL oldNimErrFin38_;
NIM_BOOL oldNimErrFin42_;
NIM_BOOL oldNimErrFin31_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	colontmpD_ = (NI)0;
	colontmpD__2 = (NI)0;
	colontmpD__3 = (NI)0;
	colontmpD__4 = (NI)0;
	switch ((*n_p0).kind) {
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)26) ... ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)32):
	{
		NI T2_;
		T2_ = (NI)0;
		T2_ = len__ast_u3175(n_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		colontmpD_ = (NI)(T2_ - ((NI)1));
		totalParams_1 = colontmpD_;
	}
	break;
	default:
	{
		colontmpD__2 = ((NI)0);
		totalParams_1 = colontmpD__2;
	}
	break;
	}
	{
		if (!fromHlo_p3) goto LA6_;
		colontmpD__3 = ((NI)0);
		genericParams_1 = colontmpD__3;
	}
	goto LA4_;
LA6_: ;
	{
		colontmpD__4 = len__ast_u3175((*(*s_p1).ast)._kind_6.sons.p->data[((NI)2)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		genericParams_1 = colontmpD__4;
	}
LA4_: ;
	expectedRegularParams_1 = paramsLen__ast_u5595((*s_p1).typ);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	givenRegularParams_1 = (NI)(totalParams_1 - genericParams_1);
	{
		if (!(givenRegularParams_1 < ((NI)0))) goto LA11_;
		givenRegularParams_1 = ((NI)0);
	}
LA11_: ;
	{
		if (!((NI)(expectedRegularParams_1 + genericParams_1) < totalParams_1)) goto LA15_;
		liMessage__msgs_u1223(conf_p2, (*n_p0).info, ((tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA)17), TM__N0xGjswvcjwwH43PvVNJAg_7, ((tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w)2), TM__N0xGjswvcjwwH43PvVNJAg_8, NIM_FALSE, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA15_: ;
	{
		NimStringV2 colontmpD__5;
		NimStringV2 colontmpD__6;
		tySet_tyEnum_TRenderFlag__Il2q467fyuki59ci9aspexFg T22_;
		if (!(totalParams_1 < genericParams_1)) goto LA19_;
		colontmpD__5.len = 0; colontmpD__5.p = NIM_NIL;
		colontmpD__6.len = 0; colontmpD__6.p = NIM_NIL;
		T22_ = 0;
		colontmpD__5 = renderTree__renderer_u59(n_p0, T22_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA21_;
		colontmpD__6 = nsuFormatSingleElem(TM__N0xGjswvcjwwH43PvVNJAg_10, colontmpD__5);
		if (NIM_UNLIKELY(*nimErr_)) goto LA21_;
		liMessage__msgs_u1223(conf_p2, (*n_p0).info, ((tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA)17), colontmpD__6, ((tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w)2), TM__N0xGjswvcjwwH43PvVNJAg_11, NIM_FALSE, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto LA21_;
		{
			LA21_:;
		}
		{
			eqdestroy___system_u2627(colontmpD__6);
			eqdestroy___system_u2627(colontmpD__5);
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA19_: ;
	result = newNodeI__ast_u4076(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)152), (*n_p0).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NI i_1;
		NI res_1;
		i_1 = (NI)0;
		res_1 = ((NI)1);
		{
			while (1) {
				if (!(res_1 <= givenRegularParams_1)) goto LA27;
				i_1 = ((NI) (res_1));
				add__ast_u3200(result, (*n_p0)._kind_6.sons.p->data[i_1]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				res_1 += ((NI)1);
			} LA27: ;
		}
	}
	{
		NI i_2;
		NI colontmp_;
		NI res_2;
		i_2 = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)(givenRegularParams_1 + ((NI)1));
		res_2 = colontmp_;
		{
			while (1) {
				tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* default_1;
				if (!(res_2 <= expectedRegularParams_1)) goto LA30;
				default_1 = NIM_NIL;
				i_2 = ((NI) (res_2));
				eqcopy___ast_u3240(&default_1, (*(*(*(*(*s_p1).typ).n)._kind_6.sons.p->data[i_2])._kind_4.sym).ast);
				if (NIM_UNLIKELY(*nimErr_)) goto LA31_;
				{
					NIM_BOOL T34_;
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__7;
					T34_ = (NIM_BOOL)0;
					T34_ = (default_1 == 0);
					if (T34_) goto LA35_;
					T34_ = ((*default_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)1));
LA35_: ;
					if (!T34_) goto LA36_;
					colontmpD__7 = NIM_NIL;
					liMessage__msgs_u1223(conf_p2, (*n_p0).info, ((tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA)17), TM__N0xGjswvcjwwH43PvVNJAg_12, ((tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w)0), TM__N0xGjswvcjwwH43PvVNJAg_13, NIM_FALSE, NIM_FALSE);
					if (NIM_UNLIKELY(*nimErr_)) goto LA38_;
					colontmpD__7 = newNodeI__ast_u4076(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)1), (*n_p0).info);
					if (NIM_UNLIKELY(*nimErr_)) goto LA38_;
					add__ast_u3200(result, colontmpD__7);
					if (NIM_UNLIKELY(*nimErr_)) goto LA38_;
					{
						LA38_:;
					}
					{
						oldNimErrFin38_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3237(colontmpD__7);
						if (NIM_UNLIKELY(*nimErr_)) goto LA31_;
						*nimErr_ = oldNimErrFin38_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA31_;
				}
				goto LA32_;
LA36_: ;
				{
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__8;
					colontmpD__8 = NIM_NIL;
					colontmpD__8 = copyTree__ast_u6862(default_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
					add__ast_u3200(result, colontmpD__8);
					if (NIM_UNLIKELY(*nimErr_)) goto LA42_;
					{
						LA42_:;
					}
					{
						oldNimErrFin42_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3237(colontmpD__8);
						if (NIM_UNLIKELY(*nimErr_)) goto LA31_;
						*nimErr_ = oldNimErrFin42_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA31_;
				}
LA32_: ;
				res_2 += ((NI)1);
				{
					LA31_:;
				}
				{
					oldNimErrFin31_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3237(default_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					*nimErr_ = oldNimErrFin31_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			} LA30: ;
		}
	}
	{
		NI i_3;
		NI res_3;
		i_3 = (NI)0;
		res_3 = ((NI)1);
		{
			while (1) {
				if (!(res_3 <= genericParams_1)) goto LA49;
				i_3 = ((NI) (res_3));
				add__ast_u3200(result, (*n_p0)._kind_6.sons.p->data[(NI)(givenRegularParams_1 + i_3)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				res_3 += ((NI)1);
			} LA49: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isAtom__ast_u7194)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	T1_ = (NIM_BOOL)0;
	T1_ = (((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)0) <= (*n_p0).kind);
	if (!(T1_)) goto LA2_;
	T1_ = ((*n_p0).kind <= ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)23));
LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, owner__ast_u6233)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p0) {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	eqcopy___ast_u4561(&result, (*s_p0).ownerField);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, safeLen__ast_u3182)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0) {
	NI result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	{
		if (!((*n_p0).kind >= ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)0) && (*n_p0).kind <= ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)23))) goto LA3_;
		result = ((NI)0);
	}
	goto LA1_;
LA3_: ;
	{
		result = len__ast_u3175(n_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, signatureLen__ast_u5589)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NI result;
	NI T1_;
	T1_ = (*t_p0).sons.len;
	result = T1_;
	return result;
}
static N_INLINE(void, nimCopyMem)(void* dest_p0, void* source_p1, NI size_p2) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memcpy(dest_p0, source_p1, ((size_t) (size_p2)));
}
static N_INLINE(void, copyMem__system_u1718)(void* dest_p0, void* source_p1, NI size_p2) {
	nimCopyMem(dest_p0, source_p1, size_p2);
}
static N_INLINE(void, appendString)(NimStringV2* dest_p0, NimStringV2 src_p1) {
	{
		if (!(((NI)0) < src_p1.len)) goto LA3_;
		copyMem__system_u1718(((void*) ((&(*(*dest_p0).p).data[(*dest_p0).len]))), ((void*) ((&(*src_p1.p).data[((NI)0)]))), (src_p1.len));
		(*dest_p0).len += src_p1.len;
		(*(*dest_p0).p).data[(*dest_p0).len] = 0;
	}
LA3_: ;
}
static N_INLINE(void, addInt__stdZprivateZdigitsutils_u204)(NimStringV2* result_p0, NI x_p1) {
	addInt__stdZprivateZdigitsutils_u187(result_p0, ((NI64) (x_p1)));
}
static N_INLINE(NimStringV2, toFileLineCol__msgs_u701)(tyTuple__kN8up2W6YKc5YA9avn5mV5w info_p0) {
	NimStringV2 result;
	result = TM__N0xGjswvcjwwH43PvVNJAg_15;
	prepareAdd((&result), info_p0.Field0.len + 0);
appendString((&result), info_p0.Field0);
	{
		if (!(((NI)0) < info_p0.Field1)) goto LA3_;
		prepareAdd((&result), 1);
appendString((&result), TM__N0xGjswvcjwwH43PvVNJAg_17);
		addInt__stdZprivateZdigitsutils_u204((&result), info_p0.Field1);
		{
			if (!(((NI)0) < (NI)(info_p0.Field2 + ((NI)1)))) goto LA7_;
			prepareAdd((&result), 2);
appendString((&result), TM__N0xGjswvcjwwH43PvVNJAg_19);
			addInt__stdZprivateZdigitsutils_u204((&result), (NI)(info_p0.Field2 + ((NI)1)));
		}
LA7_: ;
		prepareAdd((&result), 1);
appendString((&result), TM__N0xGjswvcjwwH43PvVNJAg_21);
	}
LA3_: ;
	return result;
}
static N_INLINE(void, setOwner__icZic_u12873)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* owner_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	eqcopy___ast_u4561(&(*s_p0).ownerField, owner_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, copyNode__evaltempl_u20)(tyObject_TemplCtx__C2znzhCQHqMlcyIaEjxKLg* ctx_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* a_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* b_p2) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	result = copyNode__ast_u6707(a_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!(*ctx_p0).instLines) goto LA3_;
		setInfoRecursive__ast_u4039(result, (*b_p2).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA3_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, evalTemplateAux__evaltempl_u25)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* templ_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* actual_p1, tyObject_TemplCtx__C2znzhCQHqMlcyIaEjxKLg* c_p2, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* result_p3) {
NIM_BOOL oldNimErrFin30_;
NIM_BOOL oldNimErrFin48_;
NIM_BOOL oldNimErrFin18_;
NIM_BOOL oldNimErrFin77_;
NIM_BOOL oldNimErrFin95_;
NIM_BOOL oldNimErrFin64_;
NIM_BOOL oldNimErrFin101_;
NIM_BOOL oldNimErrFin11_;
NIM_BOOL oldNimErrFin139_;
NIM_BOOL oldNimErrFin2_;
NIM_BOOL oldNimErrFin145_;
NIM_BOOL oldNimErrFin153_;
NIM_BOOL oldNimErrFin176_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	switch ((*templ_p0).kind) {
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3):
	{
		tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_1;
		tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD_;
		tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD__2;
		s_1 = NIM_NIL;
		colontmpD_ = NIM_NIL;
		colontmpD__2 = NIM_NIL;
		eqcopy___ast_u4561(&s_1, (*templ_p0)._kind_4.sym);
		if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
		{
			NIM_BOOL T5_;
			NIM_BOOL T6_;
			tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD__3;
			T5_ = (NIM_BOOL)0;
			T6_ = (NIM_BOOL)0;
			colontmpD_ = owner__ast_u6233(s_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
			T6_ = (colontmpD_ == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL));
			if (!(T6_)) goto LA7_;
			T6_ = ((*s_1).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)3));
LA7_: ;
			T5_ = T6_;
			if (T5_) goto LA8_;
			colontmpD__2 = owner__ast_u6233(s_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
			T5_ = (colontmpD__2 == (*c_p2).owner);
LA8_: ;
			if (!T5_) goto LA9_;
			colontmpD__3 = NIM_NIL;
			{
				NIM_BOOL T14_;
				tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* xX60gensym0__1;
				T14_ = (NIM_BOOL)0;
				T14_ = ((*s_1).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)3));
				if (!(T14_)) goto LA15_;
				T14_ = ((IL64(1236950581248) & (*s_1).flags) == IL64(1099511627776));
LA15_: ;
				if (!T14_) goto LA16_;
				xX60gensym0__1 = NIM_NIL;
				eqcopy___ast_u3240(&xX60gensym0__1, (*actual_p1)._kind_6.sons.p->data[(*s_1).position]);
				if (NIM_UNLIKELY(*nimErr_)) goto LA18_;
				{
					if (!((*xX60gensym0__1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)152))) goto LA21_;
					{
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* yX60gensym0__1;
						yX60gensym0__1 = NIM_NIL;
						{
							NI i_1;
							NI colontmp_;
							NI i_2;
							i_1 = (NI)0;
							colontmp_ = (NI)0;
							colontmp_ = safeLen__ast_u3182(xX60gensym0__1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA18_;
							i_2 = ((NI)0);
							{
								while (1) {
									if (!(i_2 < colontmp_)) goto LA26;
									i_1 = i_2;
									eqcopy___ast_u3240(&yX60gensym0__1, (*xX60gensym0__1)._kind_6.sons.p->data[i_1]);
									if (NIM_UNLIKELY(*nimErr_)) goto LA18_;
									add__ast_u3200(result_p3, yX60gensym0__1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA18_;
									i_2 += ((NI)1);
								} LA26: ;
							}
						}
						eqdestroy___ast_u3237(yX60gensym0__1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA18_;
					}
				}
				goto LA19_;
LA21_: ;
				{
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* resX60gensym0__1;
					if (!(((*xX60gensym0__1).flags &((NU32)1<<((NU)((((tyEnum_TNodeFlag__3UjGgL9bLM4RXBnoZJs9cviw)19)))&31U)))!=0)) goto LA28_;
					resX60gensym0__1 = NIM_NIL;
					{
						NIM_BOOL T33_;
						T33_ = (NIM_BOOL)0;
						T33_ = isAtom__ast_u7194(xX60gensym0__1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA30_;
						if (!T33_) goto LA34_;
						resX60gensym0__1 = newNodeI__ast_u4076(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)37), (*xX60gensym0__1).info);
						if (NIM_UNLIKELY(*nimErr_)) goto LA30_;
						evalTemplateAux__evaltempl_u25(xX60gensym0__1, actual_p1, c_p2, resX60gensym0__1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA30_;
						{
							NI T38_;
							T38_ = (NI)0;
							T38_ = len__ast_u3175(resX60gensym0__1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA30_;
							if (!(T38_ == ((NI)1))) goto LA39_;
							eqcopy___ast_u3240(&resX60gensym0__1, (*resX60gensym0__1)._kind_6.sons.p->data[((NI)0)]);
							if (NIM_UNLIKELY(*nimErr_)) goto LA30_;
						}
LA39_: ;
					}
					goto LA31_;
LA34_: ;
					{
						resX60gensym0__1 = copyNode__ast_u6707(xX60gensym0__1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA30_;
						{
							NI iX60gensym0__1;
							NI colontmp__2;
							NI i_3;
							iX60gensym0__1 = (NI)0;
							colontmp__2 = (NI)0;
							colontmp__2 = safeLen__ast_u3182(xX60gensym0__1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA30_;
							i_3 = ((NI)0);
							{
								while (1) {
									if (!(i_3 < colontmp__2)) goto LA44;
									iX60gensym0__1 = i_3;
									evalTemplateAux__evaltempl_u25((*xX60gensym0__1)._kind_6.sons.p->data[iX60gensym0__1], actual_p1, c_p2, resX60gensym0__1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA30_;
									i_3 += ((NI)1);
								} LA44: ;
							}
						}
					}
LA31_: ;
					add__ast_u3200(result_p3, resX60gensym0__1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA30_;
					{
						LA30_:;
					}
					{
						oldNimErrFin30_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3237(resX60gensym0__1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA18_;
						*nimErr_ = oldNimErrFin30_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA18_;
				}
				goto LA19_;
LA28_: ;
				{
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__4;
					colontmpD__4 = NIM_NIL;
					colontmpD__4 = copyTree__ast_u6862(xX60gensym0__1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA48_;
					add__ast_u3200(result_p3, colontmpD__4);
					if (NIM_UNLIKELY(*nimErr_)) goto LA48_;
					{
						LA48_:;
					}
					{
						oldNimErrFin48_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3237(colontmpD__4);
						if (NIM_UNLIKELY(*nimErr_)) goto LA18_;
						*nimErr_ = oldNimErrFin48_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA18_;
				}
LA19_: ;
				{
					LA18_:;
				}
				{
					oldNimErrFin18_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3237(xX60gensym0__1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
					*nimErr_ = oldNimErrFin18_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
			}
			goto LA12_;
LA16_: ;
			{
				NIM_BOOL T54_;
				NIM_BOOL T56_;
				NIM_BOOL T58_;
				NIM_BOOL T59_;
				tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* xX60gensym7__1;
				tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD__5;
				NI T65_;
				T54_ = (NIM_BOOL)0;
				colontmpD__3 = owner__ast_u6233(s_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
				T54_ = !((colontmpD__3 == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)));
				if (!(T54_)) goto LA55_;
				T56_ = (NIM_BOOL)0;
				T56_ = ((*s_1).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)4));
				if (T56_) goto LA57_;
				T58_ = (NIM_BOOL)0;
				T59_ = (NIM_BOOL)0;
				T59_ = ((*s_1).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)7));
				if (!(T59_)) goto LA60_;
				T59_ = !(((*s_1).typ == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
LA60_: ;
				T58_ = T59_;
				if (!(T58_)) goto LA61_;
				T58_ = ((*(*s_1).typ).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)12));
LA61_: ;
				T56_ = T58_;
LA57_: ;
				T54_ = T56_;
LA55_: ;
				if (!T54_) goto LA62_;
				xX60gensym7__1 = NIM_NIL;
				colontmpD__5 = NIM_NIL;
				colontmpD__5 = owner__ast_u6233(s_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA64_;
				T65_ = (NI)0;
				T65_ = signatureLen__ast_u5589((*colontmpD__5).typ);
				if (NIM_UNLIKELY(*nimErr_)) goto LA64_;
				eqcopy___ast_u3240(&xX60gensym7__1, (*actual_p1)._kind_6.sons.p->data[(NI)((NI)(T65_ + (*s_1).position) - ((NI)1))]);
				if (NIM_UNLIKELY(*nimErr_)) goto LA64_;
				{
					if (!((*xX60gensym7__1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)152))) goto LA68_;
					{
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* yX60gensym7__1;
						yX60gensym7__1 = NIM_NIL;
						{
							NI i_4;
							NI colontmp__3;
							NI i_5;
							i_4 = (NI)0;
							colontmp__3 = (NI)0;
							colontmp__3 = safeLen__ast_u3182(xX60gensym7__1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA64_;
							i_5 = ((NI)0);
							{
								while (1) {
									if (!(i_5 < colontmp__3)) goto LA73;
									i_4 = i_5;
									eqcopy___ast_u3240(&yX60gensym7__1, (*xX60gensym7__1)._kind_6.sons.p->data[i_4]);
									if (NIM_UNLIKELY(*nimErr_)) goto LA64_;
									add__ast_u3200(result_p3, yX60gensym7__1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA64_;
									i_5 += ((NI)1);
								} LA73: ;
							}
						}
						eqdestroy___ast_u3237(yX60gensym7__1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA64_;
					}
				}
				goto LA66_;
LA68_: ;
				{
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* resX60gensym7__1;
					if (!(((*xX60gensym7__1).flags &((NU32)1<<((NU)((((tyEnum_TNodeFlag__3UjGgL9bLM4RXBnoZJs9cviw)19)))&31U)))!=0)) goto LA75_;
					resX60gensym7__1 = NIM_NIL;
					{
						NIM_BOOL T80_;
						T80_ = (NIM_BOOL)0;
						T80_ = isAtom__ast_u7194(xX60gensym7__1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA77_;
						if (!T80_) goto LA81_;
						resX60gensym7__1 = newNodeI__ast_u4076(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)37), (*xX60gensym7__1).info);
						if (NIM_UNLIKELY(*nimErr_)) goto LA77_;
						evalTemplateAux__evaltempl_u25(xX60gensym7__1, actual_p1, c_p2, resX60gensym7__1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA77_;
						{
							NI T85_;
							T85_ = (NI)0;
							T85_ = len__ast_u3175(resX60gensym7__1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA77_;
							if (!(T85_ == ((NI)1))) goto LA86_;
							eqcopy___ast_u3240(&resX60gensym7__1, (*resX60gensym7__1)._kind_6.sons.p->data[((NI)0)]);
							if (NIM_UNLIKELY(*nimErr_)) goto LA77_;
						}
LA86_: ;
					}
					goto LA78_;
LA81_: ;
					{
						resX60gensym7__1 = copyNode__ast_u6707(xX60gensym7__1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA77_;
						{
							NI iX60gensym7__1;
							NI colontmp__4;
							NI i_6;
							iX60gensym7__1 = (NI)0;
							colontmp__4 = (NI)0;
							colontmp__4 = safeLen__ast_u3182(xX60gensym7__1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA77_;
							i_6 = ((NI)0);
							{
								while (1) {
									if (!(i_6 < colontmp__4)) goto LA91;
									iX60gensym7__1 = i_6;
									evalTemplateAux__evaltempl_u25((*xX60gensym7__1)._kind_6.sons.p->data[iX60gensym7__1], actual_p1, c_p2, resX60gensym7__1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA77_;
									i_6 += ((NI)1);
								} LA91: ;
							}
						}
					}
LA78_: ;
					add__ast_u3200(result_p3, resX60gensym7__1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA77_;
					{
						LA77_:;
					}
					{
						oldNimErrFin77_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3237(resX60gensym7__1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA64_;
						*nimErr_ = oldNimErrFin77_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA64_;
				}
				goto LA66_;
LA75_: ;
				{
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__6;
					colontmpD__6 = NIM_NIL;
					colontmpD__6 = copyTree__ast_u6862(xX60gensym7__1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA95_;
					add__ast_u3200(result_p3, colontmpD__6);
					if (NIM_UNLIKELY(*nimErr_)) goto LA95_;
					{
						LA95_:;
					}
					{
						oldNimErrFin95_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3237(colontmpD__6);
						if (NIM_UNLIKELY(*nimErr_)) goto LA64_;
						*nimErr_ = oldNimErrFin95_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA64_;
				}
LA66_: ;
				{
					LA64_:;
				}
				{
					oldNimErrFin64_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u4558(colontmpD__5);
					if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
					eqdestroy___ast_u3237(xX60gensym7__1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
					*nimErr_ = oldNimErrFin64_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
			}
			goto LA12_;
LA62_: ;
			{
				tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* x_1;
				x_1 = NIM_NIL;
				{
					NIM_BOOL T104_;
					NimStringV2 argX60gensym13__1;
					T104_ = (NIM_BOOL)0;
					T104_ = (((*s_1).flags &((NU64)1<<((NU)((((tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg)37)))&63U)))!=0);
					if (T104_) goto LA105_;
					T104_ = ((*s_1).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)7));
LA105_: ;
					if (!!(T104_)) goto LA106_;
					argX60gensym13__1.len = 0; argX60gensym13__1.p = NIM_NIL;
					argX60gensym13__1 = toFileLineCol__msgs_u701(TM__N0xGjswvcjwwH43PvVNJAg_22);
					if (NIM_UNLIKELY(*nimErr_)) goto LA108_;
					internalErrorImpl__msgs_u1594((*c_p2).config, unknownLineInfo__lineinfos_u361, argX60gensym13__1, TM__N0xGjswvcjwwH43PvVNJAg_22);
					if (NIM_UNLIKELY(*nimErr_)) goto LA108_;
					{
						LA108_:;
					}
					{
						eqdestroy___system_u2627(argX60gensym13__1);
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA101_;
				}
LA106_: ;
				x_1 = getOrDefault__semdata_u2628((*c_p2).mapping, (*s_1).itemId);
				if (NIM_UNLIKELY(*nimErr_)) goto LA101_;
				{
					tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD__7;
					tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* T115_;
					if (!(x_1 == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL))) goto LA113_;
					colontmpD__7 = NIM_NIL;
					T115_ = NIM_NIL;
					T115_ = copySym__ast_u6229(s_1, (*c_p2).idgen);
					if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u4558(T115_); goto LA101_;}
					eqsink___ast_u4567(&x_1, T115_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA101_;
					setOwner__icZic_u12873(x_1, ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL));
					if (NIM_UNLIKELY(*nimErr_)) goto LA101_;
					colontmpD__7 = eqdup___ast_u4564(x_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA101_;
					X5BX5Deq___semdata_u1182((&(*c_p2).mapping), (*s_1).itemId, colontmpD__7);
					if (NIM_UNLIKELY(*nimErr_)) goto LA101_;
				}
LA113_: ;
				{
					NimStringV2 colontmpD__8;
					NimStringV2 colontmpD__9;
					tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* colontmpD__10;
					tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA colontmpD__11;
					tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA colontmpD__12;
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__13;
					NimStringV2 T120_;
					tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA T121_;
					if (!(((*s_1).flags &((NU64)1<<((NU)((((tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg)37)))&63U)))!=0)) goto LA118_;
					colontmpD__8.len = 0; colontmpD__8.p = NIM_NIL;
					colontmpD__9.len = 0; colontmpD__9.p = NIM_NIL;
					colontmpD__10 = NIM_NIL;
					nimZeroMem((void*)(&colontmpD__11), sizeof(tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA));
					nimZeroMem((void*)(&colontmpD__12), sizeof(tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA));
					colontmpD__13 = NIM_NIL;
					T120_.len = 0; T120_.p = NIM_NIL;
					colontmpD__8 = dollar___systemZdollars_u9((*c_p2).instID);
					if (NIM_UNLIKELY(*nimErr_)) goto LA101_;
					T120_ = rawNewString((*(*x_1).name).s.len + colontmpD__8.len + 7);
appendString((&T120_), (*(*x_1).name).s);
appendString((&T120_), TM__N0xGjswvcjwwH43PvVNJAg_24);
appendString((&T120_), colontmpD__8);
					colontmpD__9 = T120_;
					colontmpD__10 = getIdent__idents_u206((*c_p2).ic, colontmpD__9);
					if (NIM_UNLIKELY(*nimErr_)) goto LA101_;
					{
						if (!(*c_p2).instLines) goto LA124_;
						colontmpD__11 = (*actual_p1).info;
						T121_ = colontmpD__11;
					}
					goto LA122_;
LA124_: ;
					{
						colontmpD__12 = (*templ_p0).info;
						T121_ = colontmpD__12;
					}
LA122_: ;
					colontmpD__13 = newIdentNode__ast_u5143(colontmpD__10, T121_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA101_;
					add__ast_u3200(result_p3, colontmpD__13);
					if (NIM_UNLIKELY(*nimErr_)) goto LA101_;
					eqdestroy___ast_u3237(colontmpD__13);
					if (NIM_UNLIKELY(*nimErr_)) goto LA101_;
					eqdestroy___idents_u155(colontmpD__10);
					if (NIM_UNLIKELY(*nimErr_)) goto LA101_;
					eqdestroy___system_u2627(colontmpD__9);
					eqdestroy___system_u2627(colontmpD__8);
				}
				goto LA116_;
LA118_: ;
				{
					tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA colontmpD__14;
					tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA colontmpD__15;
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__16;
					tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA T128_;
					nimZeroMem((void*)(&colontmpD__14), sizeof(tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA));
					nimZeroMem((void*)(&colontmpD__15), sizeof(tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA));
					colontmpD__16 = NIM_NIL;
					{
						if (!(*c_p2).instLines) goto LA131_;
						colontmpD__14 = (*actual_p1).info;
						T128_ = colontmpD__14;
					}
					goto LA129_;
LA131_: ;
					{
						colontmpD__15 = (*templ_p0).info;
						T128_ = colontmpD__15;
					}
LA129_: ;
					colontmpD__16 = newSymNode__ast_u5150(x_1, T128_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA101_;
					add__ast_u3200(result_p3, colontmpD__16);
					if (NIM_UNLIKELY(*nimErr_)) goto LA101_;
					eqdestroy___ast_u3237(colontmpD__16);
					if (NIM_UNLIKELY(*nimErr_)) goto LA101_;
				}
LA116_: ;
				{
					LA101_:;
				}
				{
					oldNimErrFin101_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u4558(x_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
					*nimErr_ = oldNimErrFin101_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
			}
LA12_: ;
			{
				LA11_:;
			}
			{
				oldNimErrFin11_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u4558(colontmpD__3);
				if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
				*nimErr_ = oldNimErrFin11_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
		}
		goto LA3_;
LA9_: ;
		{
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__17;
			colontmpD__17 = NIM_NIL;
			colontmpD__17 = copyNode__evaltempl_u20((&(*c_p2)), templ_p0, actual_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA139_;
			add__ast_u3200(result_p3, colontmpD__17);
			if (NIM_UNLIKELY(*nimErr_)) goto LA139_;
			{
				LA139_:;
			}
			{
				oldNimErrFin139_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3237(colontmpD__17);
				if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
				*nimErr_ = oldNimErrFin139_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
		}
LA3_: ;
		{
			LA2_:;
		}
		{
			oldNimErrFin2_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u4558(colontmpD__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u4558(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u4558(s_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin2_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)0) ... ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)2):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)4) ... ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)23):
	{
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__18;
		colontmpD__18 = NIM_NIL;
		colontmpD__18 = copyNode__evaltempl_u20((&(*c_p2)), templ_p0, actual_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA145_;
		add__ast_u3200(result_p3, colontmpD__18);
		if (NIM_UNLIKELY(*nimErr_)) goto LA145_;
		{
			LA145_:;
		}
		{
			oldNimErrFin145_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3237(colontmpD__18);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin145_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)125):
	{
		{
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* res_1;
			if (!(*c_p2).isDeclarative) goto LA151_;
			res_1 = NIM_NIL;
			res_1 = copyNode__evaltempl_u20((&(*c_p2)), templ_p0, actual_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA153_;
			{
				NI i_7;
				NI colontmp__5;
				NI i_8;
				i_7 = (NI)0;
				colontmp__5 = (NI)0;
				colontmp__5 = len__ast_u3175(templ_p0);
				if (NIM_UNLIKELY(*nimErr_)) goto LA153_;
				i_8 = ((NI)0);
				{
					while (1) {
						if (!(i_8 < colontmp__5)) goto LA156;
						i_7 = i_8;
						evalTemplateAux__evaltempl_u25((*templ_p0)._kind_6.sons.p->data[i_7], actual_p1, c_p2, res_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA153_;
						i_8 += ((NI)1);
					} LA156: ;
				}
			}
			add__ast_u3200(result_p3, res_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA153_;
			{
				LA153_:;
			}
			{
				oldNimErrFin153_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3237(res_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				*nimErr_ = oldNimErrFin153_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA149_;
LA151_: ;
		{
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__19;
			colontmpD__19 = NIM_NIL;
			colontmpD__19 = newNodeI__ast_u4076(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)1), (*templ_p0).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			add__ast_u3200(result_p3, colontmpD__19);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___ast_u3237(colontmpD__19);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA149_: ;
	}
	break;
	default:
	{
		NIM_BOOL isDeclarative_1;
		isDeclarative_1 = NIM_FALSE;
		{
			NIM_BOOL T163_;
			T163_ = (NIM_BOOL)0;
			T163_ = ((TM__N0xGjswvcjwwH43PvVNJAg_25[(NU)(((*templ_p0).kind))>>3] &(1U<<((NU)(((*templ_p0).kind))&7U)))!=0);
			if (!(T163_)) goto LA164_;
			T163_ = !((*c_p2).isDeclarative);
LA164_: ;
			if (!T163_) goto LA165_;
			(*c_p2).isDeclarative = NIM_TRUE;
			isDeclarative_1 = NIM_TRUE;
		}
LA165_: ;
		{
			NIM_BOOL T169_;
			NIM_BOOL T170_;
			T169_ = (NIM_BOOL)0;
			T170_ = (NIM_BOOL)0;
			T170_ = !((*c_p2).isDeclarative);
			if (!(T170_)) goto LA171_;
			T170_ = ((*templ_p0).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)27) || (*templ_p0).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)29) || (*templ_p0).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)30) || (*templ_p0).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)31) || (*templ_p0).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)26) || (*templ_p0).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)28) || (*templ_p0).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)32));
LA171_: ;
			T169_ = T170_;
			if (!(T169_)) goto LA172_;
			T169_ = isRunnableExamples__trees_u411((*templ_p0)._kind_6.sons.p->data[((NI)0)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
LA172_: ;
			if (!T169_) goto LA173_;
		}
		goto LA167_;
LA173_: ;
		{
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* res_2;
			res_2 = NIM_NIL;
			res_2 = copyNode__evaltempl_u20((&(*c_p2)), templ_p0, actual_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA176_;
			{
				NI i_9;
				NI colontmp__6;
				NI i_10;
				i_9 = (NI)0;
				colontmp__6 = (NI)0;
				colontmp__6 = len__ast_u3175(templ_p0);
				if (NIM_UNLIKELY(*nimErr_)) goto LA176_;
				i_10 = ((NI)0);
				{
					while (1) {
						if (!(i_10 < colontmp__6)) goto LA179;
						i_9 = i_10;
						evalTemplateAux__evaltempl_u25((*templ_p0)._kind_6.sons.p->data[i_9], actual_p1, c_p2, res_2);
						if (NIM_UNLIKELY(*nimErr_)) goto LA176_;
						i_10 += ((NI)1);
					} LA179: ;
				}
			}
			add__ast_u3200(result_p3, res_2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA176_;
			{
				LA176_:;
			}
			{
				oldNimErrFin176_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3237(res_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				*nimErr_ = oldNimErrFin176_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA167_: ;
		{
			if (!isDeclarative_1) goto LA184_;
			(*c_p2).isDeclarative = NIM_FALSE;
		}
LA184_: ;
	}
	break;
	}
	}BeforeRet_: ;
}
static N_INLINE(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ**, X5BX5D___ast_u5190)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** s_p0, NI s_p0Len_0, NI i_p1) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** result;
	result = &s_p0[(NI)(s_p0Len_0 - i_p1)];
	return result;
}
static N_INLINE(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, lastSon__ast_u5187)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* result;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	T1_ = (tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ**)0;
	T1_ = X5BX5D___ast_u5190((((*n_p0)._kind_6.sons).p) ? ((*n_p0)._kind_6.sons.p->data) : NIM_NIL, (*n_p0)._kind_6.sons.len, ((NI)1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqcopy___ast_u3240(&result, (*T1_));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, wrapInComesFrom__evaltempl_u328)(tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* sym_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* res_p2) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	eqcopy___ast_u3240(&result, res_p2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).info = info_p0;
	{
		NIM_BOOL T3_;
		NI T5_;
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*result).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)115) || (*result).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)126));
		if (!(T3_)) goto LA4_;
		T5_ = (NI)0;
		T5_ = len__ast_u3175(result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T3_ = (((NI)0) < T5_);
LA4_: ;
		if (!T3_) goto LA6_;
		colontmpD_ = NIM_NIL;
		colontmpD_ = lastSon__ast_u5187(result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*colontmpD_).info = info_p0;
		eqdestroy___ast_u3237(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA6_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, minuspercent___system_u805)(NI x_p0, NI y_p1) {
	NI result;
	result = ((NI) ((NU)((NU32)(((NU) (x_p0))) - (NU32)(((NU) (y_p1))))));
	return result;
}
static N_INLINE(NIM_BOOL, nimDecRefIsLastDyn)(void* p_p0) {
	NIM_BOOL result;
	result = NIM_FALSE;
	{
		tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A* cell_1;
		NI T5_;
		if (!!((p_p0 == NIM_NIL))) goto LA3_;
		T5_ = (NI)0;
		T5_ = minuspercent___system_u805(((NI) (ptrdiff_t) (p_p0)), ((NI)8));
		cell_1 = ((tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A*) (T5_));
		{
			if (!((NI)((*cell_1).rc & ((NI)-16)) == ((NI)0))) goto LA8_;
			result = NIM_TRUE;
		}
		goto LA6_;
LA8_: ;
		{
			(*cell_1).rc -= ((NI)16);
		}
LA6_: ;
		{
			if (!result) goto LA13_;
			{
				if (!(((NI)0) < (*cell_1).rootIdx)) goto LA17_;
				unregisterCycle__system_u3067(cell_1);
			}
LA17_: ;
		}
LA13_: ;
	}
LA3_: ;
	return result;
}
static N_INLINE(NIM_BOOL, nimDecRefIsLast)(void* p_p0) {
	NIM_BOOL result;
	result = NIM_FALSE;
	{
		tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A* cell_1;
		NI T5_;
		if (!!((p_p0 == NIM_NIL))) goto LA3_;
		T5_ = (NI)0;
		T5_ = minuspercent___system_u805(((NI) (ptrdiff_t) (p_p0)), ((NI)8));
		cell_1 = ((tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A*) (T5_));
		{
			if (!((NI)((NI32)((*cell_1).rc) >> (NU32)(((NI)4))) == ((NI)0))) goto LA8_;
			result = NIM_TRUE;
		}
		goto LA6_;
LA8_: ;
		{
			(*cell_1).rc -= ((NI)16);
		}
LA6_: ;
	}
LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___evaltempl_u397)(tyObject_TemplCtx__C2znzhCQHqMlcyIaEjxKLg* dest_p0) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = nimDecRefIsLastDyn((*dest_p0).owner);
		if (!T3_) goto LA4_;
		eqdestroy___ast_u3454((&(*(*dest_p0).owner)));
		nimRawDispose((*dest_p0).owner, ((NI)8));
	}
LA4_: ;
	{
		NIM_BOOL T8_;
		T8_ = (NIM_BOOL)0;
		T8_ = nimDecRefIsLastDyn((*dest_p0).genSymOwner);
		if (!T8_) goto LA9_;
		eqdestroy___ast_u3454((&(*(*dest_p0).genSymOwner)));
		nimRawDispose((*dest_p0).genSymOwner, ((NI)8));
	}
LA9_: ;
	eqdestroy___semdata_u743((*dest_p0).mapping.data);
	{
		NIM_BOOL T13_;
		T13_ = (NIM_BOOL)0;
		T13_ = nimDecRefIsLastDyn((*dest_p0).config);
		if (!T13_) goto LA14_;
		eqdestroy___options_u1750((&(*(*dest_p0).config)));
		nimRawDispose((*dest_p0).config, ((NI)8));
	}
LA14_: ;
	{
		NIM_BOOL T18_;
		T18_ = (NIM_BOOL)0;
		T18_ = nimDecRefIsLast((*dest_p0).ic);
		if (!T18_) goto LA19_;
		eqdestroy___idents_u274((&(*(*dest_p0).ic)));
		nimRawDispose((*dest_p0).ic, ((NI)4));
	}
LA19_: ;
	{
		NIM_BOOL T23_;
		T23_ = (NIM_BOOL)0;
		T23_ = nimDecRefIsLast((*dest_p0).idgen);
		if (!T23_) goto LA24_;
		eqdestroy___ast_u3059((&(*(*dest_p0).idgen)));
		nimRawDispose((*dest_p0).idgen, ((NI)4));
	}
LA24_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, evalTemplate__evaltempl_u337)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* tmpl_p1, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* genSymOwner_p2, tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p3, tyObject_IdentCachecolonObjectType___ieLwK4T49bbUIZTTVH9cycZA* ic_p4, NI* instID_p5, tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug* idgen_p6, NIM_BOOL fromHlo_p7) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* result;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* args_1;
	tyObject_TemplCtx__C2znzhCQHqMlcyIaEjxKLg ctx_1;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD_;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD__2;
	tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* colontmpD__3;
	tyObject_IdentCachecolonObjectType___ieLwK4T49bbUIZTTVH9cycZA* colontmpD__4;
	NI colontmpD__5;
	tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug* colontmpD__6;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* body_1;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T29_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	args_1 = NIM_NIL;
	nimZeroMem((void*)(&ctx_1), sizeof(tyObject_TemplCtx__C2znzhCQHqMlcyIaEjxKLg));
	colontmpD_ = NIM_NIL;
	colontmpD__2 = NIM_NIL;
	colontmpD__3 = NIM_NIL;
	colontmpD__4 = NIM_NIL;
	colontmpD__5 = (NI)0;
	colontmpD__6 = NIM_NIL;
	body_1 = NIM_NIL;
	(*conf_p3).evalTemplateCounter += ((NI)1);
	{
		if (!(((NI)1000) < (*conf_p3).evalTemplateCounter)) goto LA4_;
		liMessage__msgs_u1223(conf_p3, (*n_p0).info, ((tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA)17), TM__N0xGjswvcjwwH43PvVNJAg_3, ((tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w)2), TM__N0xGjswvcjwwH43PvVNJAg_4, NIM_FALSE, NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqcopy___ast_u3240(&result, n_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA4_: ;
	args_1 = evalTemplateArgs__evaltempl_u294(n_p0, tmpl_p1, conf_p3, fromHlo_p7);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	nimZeroMem((void*)(&ctx_1), sizeof(tyObject_TemplCtx__C2znzhCQHqMlcyIaEjxKLg));
	colontmpD_ = eqdup___ast_u4564(tmpl_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	ctx_1.owner = colontmpD_;
	colontmpD__2 = eqdup___ast_u4564(genSymOwner_p2);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	ctx_1.genSymOwner = colontmpD__2;
	colontmpD__3 = eqdup___options_u2140(conf_p3);
	ctx_1.config = colontmpD__3;
	colontmpD__4 = eqdup___idents_u344(ic_p4);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	ctx_1.ic = colontmpD__4;
	ctx_1.mapping = initTable__semdata_u1099(((NI)32));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	colontmpD__5 = (*instID_p5);
	ctx_1.instID = colontmpD__5;
	colontmpD__6 = eqdup___ast_u3091(idgen_p6);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	ctx_1.idgen = colontmpD__6;
	eqcopy___ast_u3240(&body_1, (*(*tmpl_p1).ast)._kind_6.sons.p->data[((NI)6)]);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		NIM_BOOL T8_;
		T8_ = (NIM_BOOL)0;
		T8_ = isAtom__ast_u7194(body_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		if (!T8_) goto LA9_;
		result = newNodeI__ast_u4076(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)37), (*body_1).info);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		evalTemplateAux__evaltempl_u25(body_1, args_1, (&ctx_1), result);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		{
			NI T13_;
			T13_ = (NI)0;
			T13_ = len__ast_u3175(result);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			if (!(T13_ == ((NI)1))) goto LA14_;
			eqcopy___ast_u3240(&result, (*result)._kind_6.sons.p->data[((NI)0)]);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
		goto LA11_;
LA14_: ;
		{
			NimStringV2 colontmpD__7;
			NimStringV2 colontmpD__8;
			NimStringV2 T18_;
			colontmpD__7.len = 0; colontmpD__7.p = NIM_NIL;
			colontmpD__8.len = 0; colontmpD__8.p = NIM_NIL;
			T18_.len = 0; T18_.p = NIM_NIL;
			colontmpD__7 = renderTree__renderer_u59(result, 4);
			if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
			T18_ = rawNewString(colontmpD__7.len + 15);
appendString((&T18_), TM__N0xGjswvcjwwH43PvVNJAg_27);
appendString((&T18_), colontmpD__7);
			colontmpD__8 = T18_;
			liMessage__msgs_u1223(conf_p3, (*result).info, ((tyEnum_TMsgKind__Ug4VJQkHi8g218Fa9bQrePA)17), colontmpD__8, ((tyEnum_TErrorHandling__9aJ2MrE0UrBy3xCw3BT762w)0), TM__N0xGjswvcjwwH43PvVNJAg_28, NIM_FALSE, NIM_FALSE);
			if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
			{
				LA17_:;
			}
			{
				eqdestroy___system_u2627(colontmpD__8);
				eqdestroy___system_u2627(colontmpD__7);
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA11_: ;
	}
	goto LA6_;
LA9_: ;
	{
		result = copyNode__ast_u6707(body_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		ctx_1.instLines = (((*tmpl_p1).flags &((NU64)1<<((NU)((((tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg)36)))&63U)))!=0);
		{
			if (!ctx_1.instLines) goto LA24_;
			setInfoRecursive__ast_u4039(result, (*n_p0).info);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA24_: ;
		{
			NI i_1;
			NI colontmp_;
			NI i_2;
			i_1 = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__ast_u3182(body_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			i_2 = ((NI)0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA28;
					i_1 = i_2;
					evalTemplateAux__evaltempl_u25((*body_1)._kind_6.sons.p->data[i_1], args_1, (&ctx_1), result);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					i_2 += ((NI)1);
				} LA28: ;
			}
		}
	}
LA6_: ;
	(*result).flags |= ((NU32)1)<<(((((tyEnum_TNodeFlag__3UjGgL9bLM4RXBnoZJs9cviw)17))) & 31);
	T29_ = NIM_NIL;
	T29_ = wrapInComesFrom__evaltempl_u328((*n_p0).info, tmpl_p1, result);
	if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3237(T29_); goto LA1_;}
	eqsink___ast_u3246(&result, T29_);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	(*conf_p3).evalTemplateCounter -= ((NI)1);
	(*instID_p5) += ((NI)1);
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3237(body_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___evaltempl_u397((&ctx_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3237(args_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
