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

#include "nimbase.h"
#include <string.h>
#include <stdio.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
#define nimfr_(x, y)
#define nimln_(x, y)
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tyObject_IdentCachecolonObjectType__TzLHS09bRH9a0TYLs39cqcNaw tyObject_IdentCachecolonObjectType__TzLHS09bRH9a0TYLs39cqcNaw;
typedef struct tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw;
typedef struct tySequence_sM4lkSb7zS6F7OVMvW9cffQ tySequence_sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tyObject_Target_9abOl5DLX8suLujOaHSvGzw tyObject_Target_9abOl5DLX8suLujOaHSvGzw;
typedef struct tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg;
typedef struct tyObject_MsgConfig_kV7r8HWT0SqOYW2k2ukC6A tyObject_MsgConfig_kV7r8HWT0SqOYW2k2ukC6A;
typedef struct tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q;
typedef struct tySequence_tNFrR3kRuS1FSwuiLGoSSA tySequence_tNFrR3kRuS1FSwuiLGoSSA;
typedef struct tyObject_Table_Ab4q9c36aMR4mtkEOIBzdzA tyObject_Table_Ab4q9c36aMR4mtkEOIBzdzA;
typedef struct tySequence_7lEisrXlQEzwtUKW5pzRCw tySequence_7lEisrXlQEzwtUKW5pzRCw;
typedef struct tySequence_Zi9cGbCWofbtABoHJ5RbLNQ tySequence_Zi9cGbCWofbtABoHJ5RbLNQ;
typedef struct tyObject_HashSet_CD8Dpv0WGmASelVaNSo6zg tyObject_HashSet_CD8Dpv0WGmASelVaNSo6zg;
typedef struct tySequence_4eRCaZmrYLLw2k30GPTiMw tySequence_4eRCaZmrYLLw2k30GPTiMw;
typedef struct tySequence_pK3qSsBZwdXd6qyUMkd5Jw tySequence_pK3qSsBZwdXd6qyUMkd5Jw;
typedef struct tyObject_SuggestcolonObjectType__bkMuTTb2G70XfpzAiyNrnQ tyObject_SuggestcolonObjectType__bkMuTTb2G70XfpzAiyNrnQ;
typedef struct tyObject_TLexer_PdyFIzn4patQ2zB5OFD9cjw tyObject_TLexer_PdyFIzn4patQ2zB5OFD9cjw;
typedef struct tyObject_TBaseLexer_jTxk7Uc2dfr9aTDL2dZhO9ag tyObject_TBaseLexer_jTxk7Uc2dfr9aTDL2dZhO9ag;
typedef struct RootObj RootObj;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tyObject_TLLStream_a5oZYQ9aTktYME2449ayEi6g tyObject_TLLStream_a5oZYQ9aTktYME2449ayEi6g;
typedef struct tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ;
typedef struct tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA;
typedef struct tySequence_shxop0zPIs5Ec3k71aCLuQ tySequence_shxop0zPIs5Ec3k71aCLuQ;
typedef struct tyObject_TIdObj_iIXPrEsiKHiioLj0HSkQhA tyObject_TIdObj_iIXPrEsiKHiioLj0HSkQhA;
typedef struct tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g;
typedef struct tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w;
typedef struct tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ;
typedef struct tyObject_GcStack_7fytPA5bBsob6See21YMRA tyObject_GcStack_7fytPA5bBsob6See21YMRA;
typedef struct tyObject_MemRegion_x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion_x81NhDv59b8ercDZ9bi85jyg;
typedef struct tyObject_SmallChunk_tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk_tXn60W2f8h3jgAYdEmy5NQ;
typedef struct tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg;
typedef struct tyObject_LLChunk_XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk_XsENErzHIZV9bhvyJx56wGw;
typedef struct tyObject_IntSet_EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet_EZObFrE3NC9bIb3YMkY9crZA;
typedef struct tyObject_Trunk_W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk_W0r8S0Y3UGke6T9bIUWnnuw;
typedef struct tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw;
typedef struct tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg;
typedef struct tyTuple_ujsjpB2O9cjj3uDHsXbnSzg tyTuple_ujsjpB2O9cjj3uDHsXbnSzg;
typedef struct tyObject_GcStat_0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat_0RwLoVBHZPfUAcLczmfQAg;
typedef struct tyObject_CellSet_jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet_jG87P0AI9aZtss9ccTYBIISQ;
typedef struct tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg;
typedef struct tyTuple_z822nu9bFF1AlQnLrHjdwpA tyTuple_z822nu9bFF1AlQnLrHjdwpA;
typedef struct tyTuple_xYhUhS7X82rKTqbT9bRfCnw tyTuple_xYhUhS7X82rKTqbT9bRfCnw;
typedef struct tyObject_TFileInfo_GE3hAakXKOEpch4ap3zXAw tyObject_TFileInfo_GE3hAakXKOEpch4ap3zXAw;
typedef struct tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA;
typedef struct tyTuple_QeWl6B6ffS4pU6WWrtcrDw tyTuple_QeWl6B6ffS4pU6WWrtcrDw;
typedef struct tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg;
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef NU8 tyEnum_TSystemCPU_XYDt7D1G3qcClFyZy1Ky9ag;
typedef NU8 tyEnum_TSystemOS_s7Mlr1t66SUqP6BKJMXLaQ;
struct tyObject_Target_9abOl5DLX8suLujOaHSvGzw {
tyEnum_TSystemCPU_XYDt7D1G3qcClFyZy1Ky9ag targetCPU;
tyEnum_TSystemCPU_XYDt7D1G3qcClFyZy1Ky9ag hostCPU;
tyEnum_TSystemOS_s7Mlr1t66SUqP6BKJMXLaQ targetOS;
tyEnum_TSystemOS_s7Mlr1t66SUqP6BKJMXLaQ hostOS;
NI intSize;
NI floatSize;
NI ptrSize;
NimStringDesc* tnl;
};
typedef NU32 tySet_tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg;
typedef NU64 tySet_tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw;
struct tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q {
NU16 line;
NI16 col;
NI32 fileIndex;
};
typedef NU8 tySet_tyEnum_TErrorOutput_fBf8Teueoz9aAkO5cXaxrpA;
struct tyObject_Table_Ab4q9c36aMR4mtkEOIBzdzA {
tySequence_7lEisrXlQEzwtUKW5pzRCw* data;
NI counter;
};
struct tyObject_MsgConfig_kV7r8HWT0SqOYW2k2ukC6A {
tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q trackPos;
NIM_BOOL trackPosAttached;
tySet_tyEnum_TErrorOutput_fBf8Teueoz9aAkO5cXaxrpA errorOutputs;
tySequence_tNFrR3kRuS1FSwuiLGoSSA* msgContext;
tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q lastError;
tyObject_Table_Ab4q9c36aMR4mtkEOIBzdzA filenameToIndexTbl;
tySequence_Zi9cGbCWofbtABoHJ5RbLNQ* fileInfos;
NI32 systemFileIdx;
};
typedef NU8 tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw;
typedef NU8 tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw;
typedef NU8 tyEnum_SymbolFilesOption_gBES9bqm1ru9ape8SeMRAFgQ;
struct tyObject_HashSet_CD8Dpv0WGmASelVaNSo6zg {
tySequence_4eRCaZmrYLLw2k30GPTiMw* data;
NI counter;
};
typedef NU16 tySet_tyEnum_Feature_01UoAKYz1MxZiuG1X2VhNQ;
typedef NU8 tyEnum_IdeCmd_1Ced39bl5eePmZ1PKMPXigQ;
typedef NU8 tyEnum_TSystemCC_1eWBJUonHMOnlBwsOvpFmA;
typedef NU64 tySet_tyEnum_TMsgKind_Ns87ee9bXonvIM8SMewfbmA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_SuggestcolonObjectType__bkMuTTb2G70XfpzAiyNrnQ* result, void* ClE_0);
void* ClE_0;
} tyProc_QYEVXrYc9beQ379crS3rzqRA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (NimStringDesc* output, void* ClE_0);
void* ClE_0;
} tyProc_Q1W5D85O9cNu3iq9cZ9alS9aWA;
typedef NU8 tyEnum_Severity_x5BWBPGAbIH9clm5pmNp5DA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, NimStringDesc* msg, tyEnum_Severity_x5BWBPGAbIH9clm5pmNp5DA severity, void* ClE_0);
void* ClE_0;
} tyProc_22mgIiTBBoqNe1T0FSw9ahQ;
struct tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw {
tyObject_Target_9abOl5DLX8suLujOaHSvGzw target;
NI linesCompiled;
tySet_tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg options;
tySet_tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw globalOptions;
tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg* macrosToExpand;
tyObject_MsgConfig_kV7r8HWT0SqOYW2k2ukC6A m;
NI evalTemplateCounter;
NI evalMacroCounter;
NI8 exitcode;
tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw cmd;
tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw selectedGC;
NI verbosity;
NI numberOfProcessors;
NimStringDesc* evalExpr;
NF lastCmdTime;
tyEnum_SymbolFilesOption_gBES9bqm1ru9ape8SeMRAFgQ symbolFiles;
tyObject_HashSet_CD8Dpv0WGmASelVaNSo6zg cppDefines;
NimStringDesc* headerFile;
tySet_tyEnum_Feature_01UoAKYz1MxZiuG1X2VhNQ features;
NimStringDesc* arguments;
tyEnum_IdeCmd_1Ced39bl5eePmZ1PKMPXigQ ideCmd;
NIM_BOOL oldNewlines;
tyEnum_TSystemCC_1eWBJUonHMOnlBwsOvpFmA cCompiler;
tySet_tyEnum_TMsgKind_Ns87ee9bXonvIM8SMewfbmA enableNotes;
tySet_tyEnum_TMsgKind_Ns87ee9bXonvIM8SMewfbmA disableNotes;
tySet_tyEnum_TMsgKind_Ns87ee9bXonvIM8SMewfbmA foreignPackageNotes;
tySet_tyEnum_TMsgKind_Ns87ee9bXonvIM8SMewfbmA notes;
tySet_tyEnum_TMsgKind_Ns87ee9bXonvIM8SMewfbmA mainPackageNotes;
NI mainPackageId;
NI errorCounter;
NI hintCounter;
NI warnCounter;
NI errorMax;
tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg* configVars;
tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg* symbols;
tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg* packageCache;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* searchPaths;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* lazyPaths;
NimStringDesc* outFile;
NimStringDesc* outDir;
NimStringDesc* prefixDir;
NimStringDesc* libpath;
NimStringDesc* nimcacheDir;
tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg* dllOverrides;
tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg* moduleOverrides;
NimStringDesc* projectName;
NimStringDesc* projectPath;
NimStringDesc* projectFull;
NIM_BOOL projectIsStdin;
NI32 projectMainIdx;
NimStringDesc* command;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* commandArgs;
NIM_BOOL keepComments;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* implicitImports;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* implicitIncludes;
NimStringDesc* docSeeSrcUrl;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* cIncludes;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* cLibs;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* cLinkedLibs;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* externalToLink;
NimStringDesc* linkOptionsCmd;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* compileOptionsCmd;
NimStringDesc* linkOptions;
NimStringDesc* compileOptions;
NimStringDesc* ccompilerpath;
tySequence_pK3qSsBZwdXd6qyUMkd5Jw* toCompile;
tyProc_QYEVXrYc9beQ379crS3rzqRA suggestionResultHook;
NI suggestVersion;
NI suggestMaxResults;
tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q lastLineInfo;
tyProc_Q1W5D85O9cNu3iq9cZ9alS9aWA writelnHook;
tyProc_22mgIiTBBoqNe1T0FSw9ahQ structuredErrorHook;
NimStringDesc* cppCustomNamespace;
};
typedef NU8 tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw;
typedef NU8 tyEnum_TNimKind_jIBKr1ejBgsfM33Kxw4j7A;
typedef NU8 tySet_tyEnum_TNimTypeFlag_v8QUszD1sWlSIWZz7mC4bQ;
typedef N_NIMCALL_PTR(void, tyProc_ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc_WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
tyEnum_TNimKind_jIBKr1ejBgsfM33Kxw4j7A kind;
tySet_tyEnum_TNimTypeFlag_v8QUszD1sWlSIWZz7mC4bQ flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc_ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc_WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
struct RootObj {
TNimType* m_type;
};
struct tyObject_TBaseLexer_jTxk7Uc2dfr9aTDL2dZhO9ag {
  RootObj Sup;
NI bufpos;
NimStringDesc* buf;
tyObject_TLLStream_a5oZYQ9aTktYME2449ayEi6g* stream;
NI lineNumber;
NI sentinel;
NI lineStart;
NI offsetBase;
};
typedef NU8 tyEnum_CursorPosition_moKbK9a5baLOKMP3AQAcKoQ;
typedef NU8 tyEnum_TMsgKind_29cbg2fC1z5iM1PAI28kR5w;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, tyEnum_TMsgKind_29cbg2fC1z5iM1PAI28kR5w msg, NimStringDesc* arg, void* ClE_0);
void* ClE_0;
} tyProc_eADjAhqPI0ogAK7A2xrf0A;
struct tyObject_TLexer_PdyFIzn4patQ2zB5OFD9cjw {
  tyObject_TBaseLexer_jTxk7Uc2dfr9aTDL2dZhO9ag Sup;
NI32 fileIdx;
NI indentAhead;
NI currLineIndent;
NIM_BOOL strongSpaces;
NIM_BOOL allowTabs;
tyEnum_CursorPosition_moKbK9a5baLOKMP3AQAcKoQ cursor;
tyProc_eADjAhqPI0ogAK7A2xrf0A errorHandler;
tyObject_IdentCachecolonObjectType__TzLHS09bRH9a0TYLs39cqcNaw* cache;
tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config;
};
typedef NU8 tyEnum_TNimNodeKind_unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind_unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
typedef NU8 tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA;
typedef NU8 tyEnum_TNumericalBase_9cbxR9czWgoXwHHSzHtd9aV7Q;
struct tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ {
tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA tokType;
NI indent;
tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA* ident;
NI64 iNumber;
NF fNumber;
tyEnum_TNumericalBase_9cbxR9czWgoXwHHSzHtd9aV7Q base;
NI8 strongSpaceA;
NI8 strongSpaceB;
NimStringDesc* literal;
NI line;
NI col;
};
typedef NU8 tyEnum_TLLStreamKind_jVcKY16LbOamXE9bxXUD6pQ;
typedef struct {
N_NIMCALL_PTR(NI, ClP_0) (tyObject_TLLStream_a5oZYQ9aTktYME2449ayEi6g* s, void* buf, NI bufLen, void* ClE_0);
void* ClE_0;
} tyProc_vqN8F2I9cNb9agHf5QUpC2lg;
struct tyObject_TLLStream_a5oZYQ9aTktYME2449ayEi6g {
  RootObj Sup;
tyEnum_TLLStreamKind_jVcKY16LbOamXE9bxXUD6pQ kind;
FILE* f;
NimStringDesc* s;
NI rd;
NI wr;
NI lineOffset;
tyProc_vqN8F2I9cNb9agHf5QUpC2lg repl;
};
typedef NU8 tyEnum_FileMode_ZJfK20XeZ9bv2j1pZjw9aswg;
struct tyObject_TIdObj_iIXPrEsiKHiioLj0HSkQhA {
  RootObj Sup;
NI id;
};
struct tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA {
  tyObject_TIdObj_iIXPrEsiKHiioLj0HSkQhA Sup;
NimStringDesc* s;
tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA* next;
NI h;
};
typedef NU16 tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw;
typedef NU8 tyEnum_TJumpDest_cqZXj5qWN1LkH2B3t29cnfw;
typedef NU8 tySet_tyEnum_MsgFlag_BzRTaQ6LrPDZKEKt9bswkOQ;
typedef NU8 tySet_tyEnum_FormatFlag_F4vlKAV4d0Kt9aXmu9cVNBrg;
typedef NU8 tyEnum_TCmdLinePass_IiBn9cB6WYIMDHOT44O82wA;
struct tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g {
NI refcount;
TNimType* typ;
};
struct tyObject_GcStack_7fytPA5bBsob6See21YMRA {
void* bottom;
};
struct tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w {
NI len;
NI cap;
tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g** d;
};
typedef tyObject_SmallChunk_tXn60W2f8h3jgAYdEmy5NQ* tyArray_SiRwrEKZdLgxqz9a9aoVBglg[512];
typedef NU32 tyArray_BHbOSqU1t9b3Gt7K2c6fQig[24];
typedef tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg* tyArray_N1u1nqOgmuJN9cSZrnMHgOQ[32];
typedef tyArray_N1u1nqOgmuJN9cSZrnMHgOQ tyArray_B6durA4ZCi1xjJvRtyYxMg[24];
typedef tyObject_Trunk_W0r8S0Y3UGke6T9bIUWnnuw* tyArray_lh2A89ahMmYg9bCmpVaplLbA[256];
struct tyObject_IntSet_EZObFrE3NC9bIb3YMkY9crZA {
tyArray_lh2A89ahMmYg9bCmpVaplLbA data;
};
typedef tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* tyArray_0aOLqZchNi8nWtMTi8ND8w[2];
struct tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw {
tyArray_0aOLqZchNi8nWtMTi8ND8w link;
NI key;
NI upperBound;
NI level;
};
struct tyTuple_ujsjpB2O9cjj3uDHsXbnSzg {
tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg* Field0;
NI Field1;
};
typedef tyTuple_ujsjpB2O9cjj3uDHsXbnSzg tyArray_LzOv2eCDGiceMKQstCLmhw[30];
struct tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg {
NI len;
tyArray_LzOv2eCDGiceMKQstCLmhw chunks;
tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg* next;
};
struct tyObject_MemRegion_x81NhDv59b8ercDZ9bi85jyg {
NI minLargeObj;
NI maxLargeObj;
tyArray_SiRwrEKZdLgxqz9a9aoVBglg freeSmallChunks;
NU32 flBitmap;
tyArray_BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
tyArray_B6durA4ZCi1xjJvRtyYxMg matrix;
tyObject_LLChunk_XsENErzHIZV9bhvyJx56wGw* llmem;
NI currMem;
NI maxMem;
NI freeMem;
NI occ;
NI lastSize;
tyObject_IntSet_EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* root;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* deleted;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* last;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
NIM_BOOL locked;
NIM_BOOL blockChunkSizeIncrease;
NI nextChunkSize;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw bottomData;
tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
};
struct tyObject_GcStat_0RwLoVBHZPfUAcLczmfQAg {
NI stackScans;
NI cycleCollections;
NI maxThreshold;
NI maxStackSize;
NI maxStackCells;
NI cycleTableSize;
NI64 maxPause;
};
struct tyObject_CellSet_jG87P0AI9aZtss9ccTYBIISQ {
NI counter;
NI max;
tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg* head;
tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg** data;
};
struct tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ {
tyObject_GcStack_7fytPA5bBsob6See21YMRA stack;
NI cycleThreshold;
NI zctThreshold;
tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w zct;
tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w decStack;
tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w tempStack;
NI recGcLock;
tyObject_MemRegion_x81NhDv59b8ercDZ9bi85jyg region;
tyObject_GcStat_0RwLoVBHZPfUAcLczmfQAg stat;
tyObject_CellSet_jG87P0AI9aZtss9ccTYBIISQ marked;
tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w additionalRoots;
NI gcThreadId;
};
struct tyTuple_z822nu9bFF1AlQnLrHjdwpA {
tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q Field0;
NimStringDesc* Field1;
};
struct tyTuple_xYhUhS7X82rKTqbT9bRfCnw {
NI Field0;
NimStringDesc* Field1;
NI32 Field2;
};
struct tyObject_TFileInfo_GE3hAakXKOEpch4ap3zXAw {
NimStringDesc* fullPath;
NimStringDesc* projPath;
NimStringDesc* shortName;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* quotedName;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* quotedFullName;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* lines;
NimStringDesc* dirtyfile;
NimStringDesc* hash;
NIM_BOOL dirty;
};
struct tyTuple_QeWl6B6ffS4pU6WWrtcrDw {
NI Field0;
NimStringDesc* Field1;
};
typedef NU8 tySet_tyEnum_CfileFlag_Vl9c9ayddDuXiWtnWTsEYGsA;
struct tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg {
NimStringDesc* nimname;
NimStringDesc* cname;
NimStringDesc* obj;
tySet_tyEnum_CfileFlag_Vl9c9ayddDuXiWtnWTsEYGsA flags;
};
struct tySequence_sM4lkSb7zS6F7OVMvW9cffQ {
  TGenericSeq Sup;
  NimStringDesc* data[SEQ_DECL_SIZE];
};
struct tySequence_shxop0zPIs5Ec3k71aCLuQ {
  TGenericSeq Sup;
  NIM_BOOL data[SEQ_DECL_SIZE];
};
struct tySequence_tNFrR3kRuS1FSwuiLGoSSA {
  TGenericSeq Sup;
  tyTuple_z822nu9bFF1AlQnLrHjdwpA data[SEQ_DECL_SIZE];
};
struct tySequence_7lEisrXlQEzwtUKW5pzRCw {
  TGenericSeq Sup;
  tyTuple_xYhUhS7X82rKTqbT9bRfCnw data[SEQ_DECL_SIZE];
};
struct tySequence_Zi9cGbCWofbtABoHJ5RbLNQ {
  TGenericSeq Sup;
  tyObject_TFileInfo_GE3hAakXKOEpch4ap3zXAw data[SEQ_DECL_SIZE];
};
struct tySequence_4eRCaZmrYLLw2k30GPTiMw {
  TGenericSeq Sup;
  tyTuple_QeWl6B6ffS4pU6WWrtcrDw data[SEQ_DECL_SIZE];
};
struct tySequence_pK3qSsBZwdXd6qyUMkd5Jw {
  TGenericSeq Sup;
  tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg data[SEQ_DECL_SIZE];
};
N_LIB_PRIVATE N_NIMCALL(void, setDefaultLibpath_CQGypz7djD4eDZIXokhWpg_2)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(tySequence_sM4lkSb7zS6F7OVMvW9cffQ*, newSeq_XBEivtAkQKaRR3thJ0t9amQ)(NI len);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getSystemConfigPath_20ZvyukzMEoGWloXckQXaw)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* filename);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getPrefixDir_oltK69akg0xLqkR2ITKbomg)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, slash__QVqo5OOQAdrjFqBsPctklw)(NimStringDesc* base, NimStringDesc* f);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, slash__0U8YTiSB6NvFwgvyimFN2Q)(NimStringDesc* base, NimStringDesc* f);
static N_INLINE(NIM_BOOL, fileExists_2KLbGVKGy3qOdtJ4Bb1ADgos)(NimStringDesc* filename);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nosexistsFile)(NimStringDesc* filename);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, readConfigFile_WGk9b9cMkjqLCtaEjFZBmykg)(NimStringDesc* filename, tyObject_IdentCachecolonObjectType__TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem_zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size);
N_LIB_PRIVATE N_NIMCALL(tyObject_TLLStream_a5oZYQ9aTktYME2449ayEi6g*, llStreamOpen_knWUQJsEzojha6AJCi6LcA)(NimStringDesc* filename, tyEnum_FileMode_ZJfK20XeZ9bv2j1pZjw9aswg mode);
N_LIB_PRIVATE N_NIMCALL(void, initToken_EaKJR9ap6SPzmmvwWz9aMd1g)(tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* L);
N_LIB_PRIVATE N_NIMCALL(void, openLexer_jJb0YCOUxTG2lqKbbQe89cA)(tyObject_TLexer_PdyFIzn4patQ2zB5OFD9cjw* lex, NimStringDesc* filename, tyObject_TLLStream_a5oZYQ9aTktYME2449ayEi6g* inputstream, tyObject_IdentCachecolonObjectType__TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config);
N_LIB_PRIVATE N_NIMCALL(void, confTok_gRRIWO4ECEOm1XpeGf9aODw)(tyObject_TLexer_PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config, tySequence_shxop0zPIs5Ec3k71aCLuQ** condStack);
N_LIB_PRIVATE N_NIMCALL(void, ppGetTok_Pv9b5JG6ypNS8qlCixaK7SA)(tyObject_TLexer_PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok);
N_LIB_PRIVATE N_NIMCALL(void, rawGetTok_rwBXgYq6A9aRSWDrvp6B9cQg)(tyObject_TLexer_PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NIM_BOOL, equalMem_9bGgqEk7RXXl6eqM9c1HdELAsystem)(void* a, void* b, NI size);
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
N_LIB_PRIVATE N_NIMCALL(void, parseDirective_gRRIWO4ECEOm1XpeGf9aODw_2)(tyObject_TLexer_PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config, tySequence_shxop0zPIs5Ec3k71aCLuQ** condStack);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw, whichKeyword_sZUQNPhNGEM8MllfcWvRiw)(tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA* id);
static N_INLINE(NI, addInt)(NI a, NI b);
N_NOINLINE(void, raiseOverflow)(void);
static N_INLINE(NI, chckRange)(NI i, NI a, NI b);
N_NOINLINE(void, raiseRangeError)(NI64 val);
N_NIMCALL(TGenericSeq*, setLengthSeqV2)(TGenericSeq* s, TNimType* typ, NI newLen);
static N_NIMCALL(void, Marker_tySequence_shxop0zPIs5Ec3k71aCLuQ)(void* p, NI op);
N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, evalppIf_6Vyk9bCiMmOBPCWuQwelZMQ)(tyObject_TLexer_PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, parseExpr_6Vyk9bCiMmOBPCWuQwelZMQ_2)(tyObject_TLexer_PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, parseAndExpr_6Vyk9bCiMmOBPCWuQwelZMQ_3)(tyObject_TLexer_PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, parseAtom_6Vyk9bCiMmOBPCWuQwelZMQ_4)(tyObject_TLexer_PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config);
N_LIB_PRIVATE N_NIMCALL(void, lexMessage_7sgxHfR2r4xBBAjZv1DqbQ)(tyObject_TLexer_PdyFIzn4patQ2zB5OFD9cjw* L, tyEnum_TMsgKind_29cbg2fC1z5iM1PAI28kR5w msg, NimStringDesc* arg);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDefined_jkXTnxDf8MX1Pmks3s0XxA)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* symbol);
N_NOINLINE(void, raiseIndexError2)(NI i, NI n);
N_LIB_PRIVATE N_NIMCALL(void, jumpToDirective_9cEnnbRfPuYZFc8kt9baR1Iw)(tyObject_TLexer_PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok, tyEnum_TJumpDest_cqZXj5qWN1LkH2B3t29cnfw dest, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config, tySequence_shxop0zPIs5Ec3k71aCLuQ** condStack);
N_LIB_PRIVATE N_NIMCALL(void, doElse_gRRIWO4ECEOm1XpeGf9aODw_3)(tyObject_TLexer_PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config, tySequence_shxop0zPIs5Ec3k71aCLuQ** condStack);
N_LIB_PRIVATE N_NIMCALL(void, doElif_gRRIWO4ECEOm1XpeGf9aODw_4)(tyObject_TLexer_PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config, tySequence_shxop0zPIs5Ec3k71aCLuQ** condStack);
N_LIB_PRIVATE N_NIMCALL(void, doEnd_XwtSLjWzw9annOCYUHu3Xvg)(tyObject_TLexer_PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok, tySequence_shxop0zPIs5Ec3k71aCLuQ** condStack);
static N_INLINE(NI, subInt)(NI a, NI b);
N_LIB_PRIVATE N_NIMCALL(void, msgWriteln_PO49anyWCbe63GYNOs9cVuvg)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* s, tySet_tyEnum_MsgFlag_BzRTaQ6LrPDZKEKt9bswkOQ flags);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nstFormat)(NimStringDesc* f, tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg* t, tySet_tyEnum_FormatFlag_F4vlKAV4d0Kt9aXmu9cVNBrg flags);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, tokToStr_d3YnHm5OyfXf5tTfAaERTg_2)(tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuNormalize)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(void, putEnv_YVZCqlK3fKyVR367JpYgKA)(NimStringDesc* key, NimStringDesc* val);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem_i80o3k0SgEI5gTRCzYdyWAsystem)(void* dest, void* source, NI size);
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getEnv_hhED57tMl0Iaa5bOg9cJaig)(NimStringDesc* key, NimStringDesc* default_0);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatSingleElem)(NimStringDesc* formatstr, NimStringDesc* a);
N_LIB_PRIVATE N_NIMCALL(void, parseAssignment_gRRIWO4ECEOm1XpeGf9aODw_5)(tyObject_TLexer_PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config, tySequence_shxop0zPIs5Ec3k71aCLuQ** condStack);
static N_INLINE(tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q, getLineInfo_lGlzs3oAU9bZxh6O9ctsjl5Qlexer)(tyObject_TLexer_PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok);
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q, newLineInfo_NPagzbOMpGo9aqJmfnDrITg)(NI32 fileInfoIdx, NI line, NI col);
N_LIB_PRIVATE N_NIMCALL(void, checkSymbol_f9cVXYnX3fK6Aa5Fm5sf7mg)(tyObject_TLexer_PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok);
N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
N_LIB_PRIVATE N_NIMCALL(void, processSwitch_DS57z9bPOnpy1Lyf6Fyb2vA)(NimStringDesc* switch_0, NimStringDesc* arg, tyEnum_TCmdLinePass_IiBn9cB6WYIMDHOT44O82wA pass, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(void, closeLexer_ukE4jLLltKtD9aVT9bIEv6Gg)(tyObject_TLexer_PdyFIzn4patQ2zB5OFD9cjw* lex);
N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
static N_INLINE(void, nimGCunrefNoCycle)(void* p);
static N_INLINE(void, decRef_AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(void, rtlAddZCT_AT1eRuflKWyTTBdLjEDZbg_2system)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NOINLINE(void, addZCT_Y66tOYFjgwJ0k4aLz4bc0Q)(tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell_QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getUserConfigPath_JWCVdcP9a8q9acNEgF9aYr8sA)(NimStringDesc* filename);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nosgetConfigDir)(void);
static N_INLINE(NIM_BOOL, isEmpty_ZNWb41IwBSHCUIjlqlGoxgpathutils)(NimStringDesc* x);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nosgetCurrentDir)(void);
N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nosisRootDir)(NimStringDesc* path);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nosparentDir)(NimStringDesc* path);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr_2yh9cer0ymNRHlOOg8P7IuA)(NimStringDesc* s, NI first, NI last);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, noschangeFileExt)(NimStringDesc* filename, NimStringDesc* ext);
N_LIB_PRIVATE N_NIMCALL(void, rawMessage_h30HgTFwbGq0PsyHmRqZ8g)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyEnum_TMsgKind_29cbg2fC1z5iM1PAI28kR5w msg, NimStringDesc* arg);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A)(NimStringDesc* msg);
extern TNimType NTI_PdyFIzn4patQ2zB5OFD9cjw_;
extern TNimType NTI_VaVACK0bpYmqIQ0mKcHfQQ_;
TNimType NTI_shxop0zPIs5Ec3k71aCLuQ_;
extern TNimType NTI_sM4lkSb7zS6F7OVMvW9cffQ_;
extern tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ gch_IcYaEuuWivYAS86vFMTS3Q;
STRING_LITERAL(TM_6P25SLSLz0kOcUlvm51BiA_2, "config", 6);
STRING_LITERAL(TM_6P25SLSLz0kOcUlvm51BiA_3, "etc/nim", 7);
STRING_LITERAL(TM_6P25SLSLz0kOcUlvm51BiA_4, "/etc/nim", 8);
STRING_LITERAL(TM_6P25SLSLz0kOcUlvm51BiA_5, "@", 1);
STRING_LITERAL(TM_6P25SLSLz0kOcUlvm51BiA_7, "expected closing \')\'", 20);
STRING_LITERAL(TM_6P25SLSLz0kOcUlvm51BiA_8, "expected \':\'", 12);
STRING_LITERAL(TM_6P25SLSLz0kOcUlvm51BiA_10, "expected @if", 12);
STRING_LITERAL(TM_6P25SLSLz0kOcUlvm51BiA_12, "expected @end", 13);
STRING_LITERAL(TM_6P25SLSLz0kOcUlvm51BiA_13, "putenv", 6);
STRING_LITERAL(TM_6P25SLSLz0kOcUlvm51BiA_14, "prependenv", 10);
STRING_LITERAL(TM_6P25SLSLz0kOcUlvm51BiA_15, "appendenv", 9);
STRING_LITERAL(TM_6P25SLSLz0kOcUlvm51BiA_16, "invalid directive: \'$1\'", 23);
STRING_LITERAL(TM_6P25SLSLz0kOcUlvm51BiA_17, "-", 1);
STRING_LITERAL(TM_6P25SLSLz0kOcUlvm51BiA_18, "--", 2);
STRING_LITERAL(TM_6P25SLSLz0kOcUlvm51BiA_19, "expected identifier, but got: ", 30);
STRING_LITERAL(TM_6P25SLSLz0kOcUlvm51BiA_20, "expected closing \']\'", 20);
STRING_LITERAL(TM_6P25SLSLz0kOcUlvm51BiA_21, "%=", 2);
STRING_LITERAL(TM_6P25SLSLz0kOcUlvm51BiA_22, "&", 1);
STRING_LITERAL(TM_6P25SLSLz0kOcUlvm51BiA_23, "nim", 3);
STRING_LITERAL(TM_6P25SLSLz0kOcUlvm51BiA_27, "nimcfg", 6);
STRING_LITERAL(TM_6P25SLSLz0kOcUlvm51BiA_28, "nim.cfg", 7);
STRING_LITERAL(TM_6P25SLSLz0kOcUlvm51BiA_30, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/lib/system/iterators.nim(190, 11) `len(a) ="
"= L` the length of the seq changed while iterating over it", 185);

static N_INLINE(NIM_BOOL, fileExists_2KLbGVKGy3qOdtJ4Bb1ADgos)(NimStringDesc* filename) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = nosexistsFile(filename);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getSystemConfigPath_20ZvyukzMEoGWloXckQXaw)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* filename) {
	NimStringDesc* result;
	NimStringDesc* p;
	NimStringDesc* T1_;
	result = (NimStringDesc*)0;
	p = getPrefixDir_oltK69akg0xLqkR2ITKbomg(conf);
	T1_ = (NimStringDesc*)0;
	T1_ = slash__0U8YTiSB6NvFwgvyimFN2Q(p, ((NimStringDesc*) &TM_6P25SLSLz0kOcUlvm51BiA_2));
	result = slash__QVqo5OOQAdrjFqBsPctklw(T1_, filename);
	{
		NIM_BOOL T4_;
		NimStringDesc* T7_;
		T4_ = (NIM_BOOL)0;
		T4_ = fileExists_2KLbGVKGy3qOdtJ4Bb1ADgos(result);
		if (!!(T4_)) goto LA5_;
		T7_ = (NimStringDesc*)0;
		T7_ = slash__0U8YTiSB6NvFwgvyimFN2Q(p, ((NimStringDesc*) &TM_6P25SLSLz0kOcUlvm51BiA_3));
		result = slash__QVqo5OOQAdrjFqBsPctklw(T7_, filename);
	}
	LA5_: ;
	{
		NIM_BOOL T10_;
		T10_ = (NIM_BOOL)0;
		T10_ = fileExists_2KLbGVKGy3qOdtJ4Bb1ADgos(result);
		if (!!(T10_)) goto LA11_;
		result = slash__QVqo5OOQAdrjFqBsPctklw(((NimStringDesc*) &TM_6P25SLSLz0kOcUlvm51BiA_4), filename);
	}
	LA11_: ;
	return result;
}

static N_INLINE(void, nimSetMem_zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memset(a, v, ((size_t) (size)));
}

static N_INLINE(void, nimZeroMem)(void* p, NI size) {
	nimSetMem_zxfKBYntu9cBapkhrCOk1fgmemory(p, ((int) 0), size);
}

N_LIB_PRIVATE N_NIMCALL(void, ppGetTok_Pv9b5JG6ypNS8qlCixaK7SA)(tyObject_TLexer_PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok) {
	rawGetTok_rwBXgYq6A9aRSWDrvp6B9cQg(L, tok);
	{
		while (1) {
			if (!((*tok).tokType == ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 110))) goto LA2;
			rawGetTok_rwBXgYq6A9aRSWDrvp6B9cQg(L, tok);
		} LA2: ;
	}
}

static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size) {
	int result;
	result = (int)0;
	result = memcmp(a, b, ((size_t) (size)));
	return result;
}

static N_INLINE(NIM_BOOL, equalMem_9bGgqEk7RXXl6eqM9c1HdELAsystem)(void* a, void* b, NI size) {
	NIM_BOOL result;
	int T1_;
	result = (NIM_BOOL)0;
	T1_ = (int)0;
	T1_ = nimCmpMem(a, b, size);
	result = (T1_ == ((NI32) 0));
	return result;
}

static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b) {
	NIM_BOOL result;
	NI alen;
	NI blen;
{	result = (NIM_BOOL)0;
	alen = (a ? a->Sup.len : 0);
	blen = (b ? b->Sup.len : 0);
	{
		if (!(alen == blen)) goto LA3_;
		{
			if (!(alen == ((NI) 0))) goto LA7_;
			result = NIM_TRUE;
			goto BeforeRet_;
		}
		LA7_: ;
		result = equalMem_9bGgqEk7RXXl6eqM9c1HdELAsystem(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
		goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}

static N_INLINE(NI, addInt)(NI a, NI b) {
	NI result;
{	result = (NI)0;
	result = (NI)((NU64)(a) + (NU64)(b));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) 0) <= (NI)(result ^ a));
		if (T3_) goto LA4_;
		T3_ = (((NI) 0) <= (NI)(result ^ b));
		LA4_: ;
		if (!T3_) goto LA5_;
		goto BeforeRet_;
	}
	LA5_: ;
	raiseOverflow();
	}BeforeRet_: ;
	return result;
}

static N_INLINE(NI, chckRange)(NI i, NI a, NI b) {
	NI result;
{	result = (NI)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (a <= i);
		if (!(T3_)) goto LA4_;
		T3_ = (i <= b);
		LA4_: ;
		if (!T3_) goto LA5_;
		result = i;
		goto BeforeRet_;
	}
	goto LA1_;
	LA5_: ;
	{
		raiseRangeError(((NI64) (i)));
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
static N_NIMCALL(void, Marker_tySequence_shxop0zPIs5Ec3k71aCLuQ)(void* p, NI op) {
	tySequence_shxop0zPIs5Ec3k71aCLuQ* a;
	NI T1_;
	a = (tySequence_shxop0zPIs5Ec3k71aCLuQ*)p;
	T1_ = (NI)0;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, parseAtom_6Vyk9bCiMmOBPCWuQwelZMQ_4)(tyObject_TLexer_PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		if (!((*tok).tokType == ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 89))) goto LA3_;
		ppGetTok_Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
		result = parseExpr_6Vyk9bCiMmOBPCWuQwelZMQ_2(L, tok, config);
		{
			if (!((*tok).tokType == ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 90))) goto LA7_;
			ppGetTok_Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
		}
		goto LA5_;
		LA7_: ;
		{
			lexMessage_7sgxHfR2r4xBBAjZv1DqbQ((&(*L)), ((tyEnum_TMsgKind_29cbg2fC1z5iM1PAI28kR5w) 9), ((NimStringDesc*) &TM_6P25SLSLz0kOcUlvm51BiA_7));
		}
		LA5_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T13_;
		if (!((*tok).tokType == ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 45))) goto LA11_;
		ppGetTok_Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
		T13_ = (NIM_BOOL)0;
		T13_ = parseAtom_6Vyk9bCiMmOBPCWuQwelZMQ_4(L, tok, config);
		result = !(T13_);
	}
	goto LA1_;
	LA11_: ;
	{
		result = isDefined_jkXTnxDf8MX1Pmks3s0XxA(config, (*(*tok).ident).s);
		ppGetTok_Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, parseAndExpr_6Vyk9bCiMmOBPCWuQwelZMQ_3)(tyObject_TLexer_PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = parseAtom_6Vyk9bCiMmOBPCWuQwelZMQ_4(L, tok, config);
	{
		while (1) {
			NIM_BOOL b;
			NIM_BOOL T3_;
			if (!((*tok).tokType == ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 4))) goto LA2;
			ppGetTok_Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
			b = parseAtom_6Vyk9bCiMmOBPCWuQwelZMQ_4(L, tok, config);
			T3_ = (NIM_BOOL)0;
			T3_ = result;
			if (!(T3_)) goto LA4_;
			T3_ = b;
			LA4_: ;
			result = T3_;
		} LA2: ;
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, parseExpr_6Vyk9bCiMmOBPCWuQwelZMQ_2)(tyObject_TLexer_PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = parseAndExpr_6Vyk9bCiMmOBPCWuQwelZMQ_3(L, tok, config);
	{
		while (1) {
			NIM_BOOL b;
			NIM_BOOL T3_;
			if (!((*tok).tokType == ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 49))) goto LA2;
			ppGetTok_Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
			b = parseAndExpr_6Vyk9bCiMmOBPCWuQwelZMQ_3(L, tok, config);
			T3_ = (NIM_BOOL)0;
			T3_ = result;
			if (T3_) goto LA4_;
			T3_ = b;
			LA4_: ;
			result = T3_;
		} LA2: ;
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, evalppIf_6Vyk9bCiMmOBPCWuQwelZMQ)(tyObject_TLexer_PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	ppGetTok_Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
	result = parseExpr_6Vyk9bCiMmOBPCWuQwelZMQ_2(L, tok, config);
	{
		if (!((*tok).tokType == ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 103))) goto LA3_;
		ppGetTok_Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
	}
	goto LA1_;
	LA3_: ;
	{
		lexMessage_7sgxHfR2r4xBBAjZv1DqbQ((&(*L)), ((tyEnum_TMsgKind_29cbg2fC1z5iM1PAI28kR5w) 9), ((NimStringDesc*) &TM_6P25SLSLz0kOcUlvm51BiA_8));
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, doElse_gRRIWO4ECEOm1XpeGf9aODw_3)(tyObject_TLexer_PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config, tySequence_shxop0zPIs5Ec3k71aCLuQ** condStack) {
	{
		NI T3_;
		T3_ = (((*condStack) ? (*condStack)->Sup.len : 0)-1);
		if (!(T3_ < ((NI) 0))) goto LA4_;
		lexMessage_7sgxHfR2r4xBBAjZv1DqbQ((&(*L)), ((tyEnum_TMsgKind_29cbg2fC1z5iM1PAI28kR5w) 9), ((NimStringDesc*) &TM_6P25SLSLz0kOcUlvm51BiA_10));
	}
	LA4_: ;
	ppGetTok_Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
	{
		if (!((*tok).tokType == ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 103))) goto LA8_;
		ppGetTok_Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
	}
	LA8_: ;
	{
		NI T12_;
		T12_ = (((*condStack) ? (*condStack)->Sup.len : 0)-1);
		if ((NU)(T12_) >= (NU)((*condStack) ? (*condStack)->Sup.len : 0)) raiseIndexError2(T12_,((*condStack) ? (*condStack)->Sup.len : 0)-1);
		if (!(*condStack)->data[T12_]) goto LA13_;
		jumpToDirective_9cEnnbRfPuYZFc8kt9baR1Iw(L, tok, ((tyEnum_TJumpDest_cqZXj5qWN1LkH2B3t29cnfw) 0), config, condStack);
	}
	LA13_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, doElif_gRRIWO4ECEOm1XpeGf9aODw_4)(tyObject_TLexer_PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config, tySequence_shxop0zPIs5Ec3k71aCLuQ** condStack) {
	NIM_BOOL res;
	{
		NI T3_;
		T3_ = (((*condStack) ? (*condStack)->Sup.len : 0)-1);
		if (!(T3_ < ((NI) 0))) goto LA4_;
		lexMessage_7sgxHfR2r4xBBAjZv1DqbQ((&(*L)), ((tyEnum_TMsgKind_29cbg2fC1z5iM1PAI28kR5w) 9), ((NimStringDesc*) &TM_6P25SLSLz0kOcUlvm51BiA_10));
	}
	LA4_: ;
	res = evalppIf_6Vyk9bCiMmOBPCWuQwelZMQ(L, tok, config);
	{
		NIM_BOOL T8_;
		NI T9_;
		T8_ = (NIM_BOOL)0;
		T9_ = (((*condStack) ? (*condStack)->Sup.len : 0)-1);
		if ((NU)(T9_) >= (NU)((*condStack) ? (*condStack)->Sup.len : 0)) raiseIndexError2(T9_,((*condStack) ? (*condStack)->Sup.len : 0)-1);
		T8_ = (*condStack)->data[T9_];
		if (T8_) goto LA10_;
		T8_ = !(res);
		LA10_: ;
		if (!T8_) goto LA11_;
		jumpToDirective_9cEnnbRfPuYZFc8kt9baR1Iw(L, tok, ((tyEnum_TJumpDest_cqZXj5qWN1LkH2B3t29cnfw) 1), config, condStack);
	}
	goto LA6_;
	LA11_: ;
	{
		NI T14_;
		T14_ = (((*condStack) ? (*condStack)->Sup.len : 0)-1);
		if ((NU)(T14_) >= (NU)((*condStack) ? (*condStack)->Sup.len : 0)) raiseIndexError2(T14_,((*condStack) ? (*condStack)->Sup.len : 0)-1);
		(*condStack)->data[T14_] = NIM_TRUE;
	}
	LA6_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, doEnd_XwtSLjWzw9annOCYUHu3Xvg)(tyObject_TLexer_PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok, tySequence_shxop0zPIs5Ec3k71aCLuQ** condStack) {
	NI T6_;
	{
		NI T3_;
		T3_ = (((*condStack) ? (*condStack)->Sup.len : 0)-1);
		if (!(T3_ < ((NI) 0))) goto LA4_;
		lexMessage_7sgxHfR2r4xBBAjZv1DqbQ((&(*L)), ((tyEnum_TMsgKind_29cbg2fC1z5iM1PAI28kR5w) 9), ((NimStringDesc*) &TM_6P25SLSLz0kOcUlvm51BiA_10));
	}
	LA4_: ;
	ppGetTok_Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
	T6_ = (((*condStack) ? (*condStack)->Sup.len : 0)-1);
	unsureAsgnRef((void**) (&(*condStack)), (tySequence_shxop0zPIs5Ec3k71aCLuQ*) setLengthSeqV2(&((*condStack))->Sup, (&NTI_shxop0zPIs5Ec3k71aCLuQ_), ((NI)chckRange(T6_, ((NI) 0), ((NI) IL64(9223372036854775807))))));
}

static N_INLINE(NI, subInt)(NI a, NI b) {
	NI result;
{	result = (NI)0;
	result = (NI)((NU64)(a) - (NU64)(b));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) 0) <= (NI)(result ^ a));
		if (T3_) goto LA4_;
		T3_ = (((NI) 0) <= (NI)(result ^ (NI)((NU64) ~(b))));
		LA4_: ;
		if (!T3_) goto LA5_;
		goto BeforeRet_;
	}
	LA5_: ;
	raiseOverflow();
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, jumpToDirective_9cEnnbRfPuYZFc8kt9baR1Iw)(tyObject_TLexer_PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok, tyEnum_TJumpDest_cqZXj5qWN1LkH2B3t29cnfw dest, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config, tySequence_shxop0zPIs5Ec3k71aCLuQ** condStack) {
	NI nestedIfs;
	nestedIfs = ((NI) 0);
	{
		while (1) {
			{
				NIM_BOOL T5_;
				tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw T9_;
				T5_ = (NIM_BOOL)0;
				T5_ = !(((*tok).ident == NIM_NIL));
				if (!(T5_)) goto LA6_;
				T5_ = eqStrings((*(*tok).ident).s, ((NimStringDesc*) &TM_6P25SLSLz0kOcUlvm51BiA_5));
				LA6_: ;
				if (!T5_) goto LA7_;
				ppGetTok_Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
				T9_ = (tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw)0;
				T9_ = whichKeyword_sZUQNPhNGEM8MllfcWvRiw((*tok).ident);
				switch (T9_) {
				case ((tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw) 29):
				{
					NI TM_6P25SLSLz0kOcUlvm51BiA_9;
					TM_6P25SLSLz0kOcUlvm51BiA_9 = addInt(nestedIfs, ((NI) 1));
					nestedIfs = (NI)(TM_6P25SLSLz0kOcUlvm51BiA_9);
				}
				break;
				case ((tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw) 20):
				{
					{
						NIM_BOOL T14_;
						T14_ = (NIM_BOOL)0;
						T14_ = (dest == ((tyEnum_TJumpDest_cqZXj5qWN1LkH2B3t29cnfw) 1));
						if (!(T14_)) goto LA15_;
						T14_ = (nestedIfs == ((NI) 0));
						LA15_: ;
						if (!T14_) goto LA16_;
						doElse_gRRIWO4ECEOm1XpeGf9aODw_3(L, tok, config, condStack);
						goto LA1;
					}
					LA16_: ;
				}
				break;
				case ((tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw) 19):
				{
					{
						NIM_BOOL T21_;
						T21_ = (NIM_BOOL)0;
						T21_ = (dest == ((tyEnum_TJumpDest_cqZXj5qWN1LkH2B3t29cnfw) 1));
						if (!(T21_)) goto LA22_;
						T21_ = (nestedIfs == ((NI) 0));
						LA22_: ;
						if (!T21_) goto LA23_;
						doElif_gRRIWO4ECEOm1XpeGf9aODw_4(L, tok, config, condStack);
						goto LA1;
					}
					LA23_: ;
				}
				break;
				case ((tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw) 21):
				{
					{
						if (!(nestedIfs == ((NI) 0))) goto LA28_;
						doEnd_XwtSLjWzw9annOCYUHu3Xvg(L, tok, condStack);
						goto LA1;
					}
					LA28_: ;
					{
						NI TM_6P25SLSLz0kOcUlvm51BiA_11;
						if (!(((NI) 0) < nestedIfs)) goto LA32_;
						TM_6P25SLSLz0kOcUlvm51BiA_11 = subInt(nestedIfs, ((NI) 1));
						nestedIfs = (NI)(TM_6P25SLSLz0kOcUlvm51BiA_11);
					}
					LA32_: ;
				}
				break;
				default:
				{
				}
				break;
				}
				ppGetTok_Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
			}
			goto LA3_;
			LA7_: ;
			{
				if (!((*tok).tokType == ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 1))) goto LA36_;
				lexMessage_7sgxHfR2r4xBBAjZv1DqbQ((&(*L)), ((tyEnum_TMsgKind_29cbg2fC1z5iM1PAI28kR5w) 9), ((NimStringDesc*) &TM_6P25SLSLz0kOcUlvm51BiA_12));
			}
			goto LA3_;
			LA36_: ;
			{
				ppGetTok_Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
			}
			LA3_: ;
		}
	} LA1: ;
}

static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memcpy(dest, source, ((size_t) (size)));
}

static N_INLINE(void, copyMem_i80o3k0SgEI5gTRCzYdyWAsystem)(void* dest, void* source, NI size) {
	nimCopyMem(dest, source, size);
}

static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	{
		if (!!((src == NIM_NIL))) goto LA3_;
		copyMem_i80o3k0SgEI5gTRCzYdyWAsystem(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
		(*dest).Sup.len += (*src).Sup.len;
	}
	LA3_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, parseDirective_gRRIWO4ECEOm1XpeGf9aODw_2)(tyObject_TLexer_PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config, tySequence_shxop0zPIs5Ec3k71aCLuQ** condStack) {
	tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw T1_;
	ppGetTok_Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
	T1_ = (tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw)0;
	T1_ = whichKeyword_sZUQNPhNGEM8MllfcWvRiw((*tok).ident);
	switch (T1_) {
	case ((tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw) 29):
	{
		NI T3_;
		NI TM_6P25SLSLz0kOcUlvm51BiA_6;
		NIM_BOOL res;
		NI T4_;
		T3_ = ((*condStack) ? (*condStack)->Sup.len : 0);
		TM_6P25SLSLz0kOcUlvm51BiA_6 = addInt(T3_, ((NI) 1));
		unsureAsgnRef((void**) (&(*condStack)), (tySequence_shxop0zPIs5Ec3k71aCLuQ*) setLengthSeqV2(&((*condStack))->Sup, (&NTI_shxop0zPIs5Ec3k71aCLuQ_), ((NI)chckRange((NI)(TM_6P25SLSLz0kOcUlvm51BiA_6), ((NI) 0), ((NI) IL64(9223372036854775807))))));
		res = evalppIf_6Vyk9bCiMmOBPCWuQwelZMQ(L, tok, config);
		T4_ = (((*condStack) ? (*condStack)->Sup.len : 0)-1);
		if ((NU)(T4_) >= (NU)((*condStack) ? (*condStack)->Sup.len : 0)) raiseIndexError2(T4_,((*condStack) ? (*condStack)->Sup.len : 0)-1);
		(*condStack)->data[T4_] = res;
		{
			if (!!(res)) goto LA7_;
			jumpToDirective_9cEnnbRfPuYZFc8kt9baR1Iw(L, tok, ((tyEnum_TJumpDest_cqZXj5qWN1LkH2B3t29cnfw) 1), config, condStack);
		}
		LA7_: ;
	}
	break;
	case ((tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw) 19):
	{
		doElif_gRRIWO4ECEOm1XpeGf9aODw_4(L, tok, config, condStack);
	}
	break;
	case ((tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw) 20):
	{
		doElse_gRRIWO4ECEOm1XpeGf9aODw_3(L, tok, config, condStack);
	}
	break;
	case ((tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw) 21):
	{
		doEnd_XwtSLjWzw9annOCYUHu3Xvg(L, tok, condStack);
	}
	break;
	case ((tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw) 191):
	{
		NimStringDesc* T13_;
		NimStringDesc* T14_;
		ppGetTok_Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
		T13_ = (NimStringDesc*)0;
		T13_ = tokToStr_d3YnHm5OyfXf5tTfAaERTg_2((&(*tok)));
		T14_ = (NimStringDesc*)0;
		T14_ = nstFormat(T13_, (*config).configVars, 5);
		msgWriteln_PO49anyWCbe63GYNOs9cVuvg(config, T14_, 0);
		ppGetTok_Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
	}
	break;
	default:
	{
		NimStringDesc* T16_;
		T16_ = (NimStringDesc*)0;
		T16_ = nsuNormalize((*(*tok).ident).s);
		if (eqStrings(T16_, ((NimStringDesc*) &TM_6P25SLSLz0kOcUlvm51BiA_13))) goto LA17_;
		if (eqStrings(T16_, ((NimStringDesc*) &TM_6P25SLSLz0kOcUlvm51BiA_14))) goto LA18_;
		if (eqStrings(T16_, ((NimStringDesc*) &TM_6P25SLSLz0kOcUlvm51BiA_15))) goto LA19_;
		goto LA20_;
		LA17_: ;
		{
			NimStringDesc* key;
			NimStringDesc* T23_;
			ppGetTok_Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
			key = tokToStr_d3YnHm5OyfXf5tTfAaERTg_2((&(*tok)));
			ppGetTok_Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
			T23_ = (NimStringDesc*)0;
			T23_ = tokToStr_d3YnHm5OyfXf5tTfAaERTg_2((&(*tok)));
			putEnv_YVZCqlK3fKyVR367JpYgKA(key, T23_);
			ppGetTok_Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
		}
		goto LA21_;
		LA18_: ;
		{
			NimStringDesc* key_2;
			NimStringDesc* T25_;
			NimStringDesc* T26_;
			NimStringDesc* T27_;
			ppGetTok_Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
			key_2 = tokToStr_d3YnHm5OyfXf5tTfAaERTg_2((&(*tok)));
			ppGetTok_Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
			T25_ = (NimStringDesc*)0;
			T26_ = (NimStringDesc*)0;
			T26_ = tokToStr_d3YnHm5OyfXf5tTfAaERTg_2((&(*tok)));
			T27_ = (NimStringDesc*)0;
			T27_ = getEnv_hhED57tMl0Iaa5bOg9cJaig(key_2, ((NimStringDesc*) NIM_NIL));
			T25_ = rawNewString((T26_ ? T26_->Sup.len : 0) + (T27_ ? T27_->Sup.len : 0) + 0);
appendString(T25_, T26_);
appendString(T25_, T27_);
			putEnv_YVZCqlK3fKyVR367JpYgKA(key_2, T25_);
			ppGetTok_Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
		}
		goto LA21_;
		LA19_: ;
		{
			NimStringDesc* key_3;
			NimStringDesc* T29_;
			NimStringDesc* T30_;
			NimStringDesc* T31_;
			ppGetTok_Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
			key_3 = tokToStr_d3YnHm5OyfXf5tTfAaERTg_2((&(*tok)));
			ppGetTok_Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
			T29_ = (NimStringDesc*)0;
			T30_ = (NimStringDesc*)0;
			T30_ = getEnv_hhED57tMl0Iaa5bOg9cJaig(key_3, ((NimStringDesc*) NIM_NIL));
			T31_ = (NimStringDesc*)0;
			T31_ = tokToStr_d3YnHm5OyfXf5tTfAaERTg_2((&(*tok)));
			T29_ = rawNewString((T30_ ? T30_->Sup.len : 0) + (T31_ ? T31_->Sup.len : 0) + 0);
appendString(T29_, T30_);
appendString(T29_, T31_);
			putEnv_YVZCqlK3fKyVR367JpYgKA(key_3, T29_);
			ppGetTok_Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
		}
		goto LA21_;
		LA20_: ;
		{
			NimStringDesc* T33_;
			NimStringDesc* T34_;
			T33_ = (NimStringDesc*)0;
			T33_ = tokToStr_d3YnHm5OyfXf5tTfAaERTg_2((&(*tok)));
			T34_ = (NimStringDesc*)0;
			T34_ = nsuFormatSingleElem(((NimStringDesc*) &TM_6P25SLSLz0kOcUlvm51BiA_16), T33_);
			lexMessage_7sgxHfR2r4xBBAjZv1DqbQ((&(*L)), ((tyEnum_TMsgKind_29cbg2fC1z5iM1PAI28kR5w) 9), T34_);
		}
		LA21_: ;
	}
	break;
	}
}

N_LIB_PRIVATE N_NIMCALL(void, confTok_gRRIWO4ECEOm1XpeGf9aODw)(tyObject_TLexer_PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config, tySequence_shxop0zPIs5Ec3k71aCLuQ** condStack) {
	ppGetTok_Pv9b5JG6ypNS8qlCixaK7SA(L, tok);
	{
		while (1) {
			NIM_BOOL T3_;
			T3_ = (NIM_BOOL)0;
			T3_ = !(((*tok).ident == NIM_NIL));
			if (!(T3_)) goto LA4_;
			T3_ = eqStrings((*(*tok).ident).s, ((NimStringDesc*) &TM_6P25SLSLz0kOcUlvm51BiA_5));
			LA4_: ;
			if (!T3_) goto LA2;
			parseDirective_gRRIWO4ECEOm1XpeGf9aODw_2(L, tok, config, condStack);
		} LA2: ;
	}
}

static N_INLINE(tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q, getLineInfo_lGlzs3oAU9bZxh6O9ctsjl5Qlexer)(tyObject_TLexer_PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok) {
	tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q result;
	nimZeroMem((void*)(&result), sizeof(tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q));
	result = newLineInfo_NPagzbOMpGo9aqJmfnDrITg((*L).fileIdx, (*tok).line, (*tok).col);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, checkSymbol_f9cVXYnX3fK6Aa5Fm5sf7mg)(tyObject_TLexer_PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok) {
	{
		NimStringDesc* T5_;
		NimStringDesc* T6_;
		if (!!(((*tok).tokType >= ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 2) && (*tok).tokType <= ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 73) || (*tok).tokType >= ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 83) && (*tok).tokType <= ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 85)))) goto LA3_;
		T5_ = (NimStringDesc*)0;
		T6_ = (NimStringDesc*)0;
		T6_ = tokToStr_d3YnHm5OyfXf5tTfAaERTg_2(tok);
		T5_ = rawNewString((T6_ ? T6_->Sup.len : 0) + 30);
appendString(T5_, ((NimStringDesc*) &TM_6P25SLSLz0kOcUlvm51BiA_19));
appendString(T5_, T6_);
		lexMessage_7sgxHfR2r4xBBAjZv1DqbQ(L, ((tyEnum_TMsgKind_29cbg2fC1z5iM1PAI28kR5w) 9), T5_);
	}
	LA3_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, parseAssignment_gRRIWO4ECEOm1XpeGf9aODw_5)(tyObject_TLexer_PdyFIzn4patQ2zB5OFD9cjw* L, tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ* tok, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config, tySequence_shxop0zPIs5Ec3k71aCLuQ** condStack) {
	tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info;
	NimStringDesc* s;
	NimStringDesc* val;
	NIM_BOOL percent;
	NIM_BOOL T20_;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = eqStrings((*(*tok).ident).s, ((NimStringDesc*) &TM_6P25SLSLz0kOcUlvm51BiA_17));
		if (T3_) goto LA4_;
		T3_ = eqStrings((*(*tok).ident).s, ((NimStringDesc*) &TM_6P25SLSLz0kOcUlvm51BiA_18));
		LA4_: ;
		if (!T3_) goto LA5_;
		confTok_gRRIWO4ECEOm1XpeGf9aODw(L, tok, config, condStack);
	}
	LA5_: ;
	info = getLineInfo_lGlzs3oAU9bZxh6O9ctsjl5Qlexer((&(*L)), (&(*tok)));
	checkSymbol_f9cVXYnX3fK6Aa5Fm5sf7mg((&(*L)), (&(*tok)));
	s = tokToStr_d3YnHm5OyfXf5tTfAaERTg_2((&(*tok)));
	confTok_gRRIWO4ECEOm1XpeGf9aODw(L, tok, config, condStack);
	val = ((NimStringDesc*) NIM_NIL);
	{
		while (1) {
			NimStringDesc* T9_;
			if (!((*tok).tokType == ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 106))) goto LA8;
			s = addChar(s, 46);
			confTok_gRRIWO4ECEOm1XpeGf9aODw(L, tok, config, condStack);
			checkSymbol_f9cVXYnX3fK6Aa5Fm5sf7mg((&(*L)), (&(*tok)));
			T9_ = (NimStringDesc*)0;
			T9_ = tokToStr_d3YnHm5OyfXf5tTfAaERTg_2((&(*tok)));
			s = resizeString(s, (T9_ ? T9_->Sup.len : 0) + 0);
appendString(s, T9_);
			confTok_gRRIWO4ECEOm1XpeGf9aODw(L, tok, config, condStack);
		} LA8: ;
	}
	{
		NimStringDesc* T14_;
		if (!((*tok).tokType == ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 91))) goto LA12_;
		confTok_gRRIWO4ECEOm1XpeGf9aODw(L, tok, config, condStack);
		checkSymbol_f9cVXYnX3fK6Aa5Fm5sf7mg((&(*L)), (&(*tok)));
		val = addChar(val, 91);
		T14_ = (NimStringDesc*)0;
		T14_ = tokToStr_d3YnHm5OyfXf5tTfAaERTg_2((&(*tok)));
		val = resizeString(val, (T14_ ? T14_->Sup.len : 0) + 0);
appendString(val, T14_);
		confTok_gRRIWO4ECEOm1XpeGf9aODw(L, tok, config, condStack);
		{
			if (!((*tok).tokType == ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 92))) goto LA17_;
			confTok_gRRIWO4ECEOm1XpeGf9aODw(L, tok, config, condStack);
		}
		goto LA15_;
		LA17_: ;
		{
			lexMessage_7sgxHfR2r4xBBAjZv1DqbQ((&(*L)), ((tyEnum_TMsgKind_29cbg2fC1z5iM1PAI28kR5w) 9), ((NimStringDesc*) &TM_6P25SLSLz0kOcUlvm51BiA_20));
		}
		LA15_: ;
		val = addChar(val, 93);
	}
	LA12_: ;
	T20_ = (NIM_BOOL)0;
	T20_ = !(((*tok).ident == NIM_NIL));
	if (!(T20_)) goto LA21_;
	T20_ = eqStrings((*(*tok).ident).s, ((NimStringDesc*) &TM_6P25SLSLz0kOcUlvm51BiA_21));
	LA21_: ;
	percent = T20_;
	{
		NIM_BOOL T24_;
		NimStringDesc* T32_;
		T24_ = (NIM_BOOL)0;
		T24_ = ((*tok).tokType == ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 103) || (*tok).tokType == ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 105));
		if (T24_) goto LA25_;
		T24_ = percent;
		LA25_: ;
		if (!T24_) goto LA26_;
		{
			if (!(((NI) 0) < (val ? val->Sup.len : 0))) goto LA30_;
			val = addChar(val, 58);
		}
		LA30_: ;
		confTok_gRRIWO4ECEOm1XpeGf9aODw(L, tok, config, condStack);
		checkSymbol_f9cVXYnX3fK6Aa5Fm5sf7mg((&(*L)), (&(*tok)));
		T32_ = (NimStringDesc*)0;
		T32_ = tokToStr_d3YnHm5OyfXf5tTfAaERTg_2((&(*tok)));
		val = resizeString(val, (T32_ ? T32_->Sup.len : 0) + 0);
appendString(val, T32_);
		confTok_gRRIWO4ECEOm1XpeGf9aODw(L, tok, config, condStack);
		{
			while (1) {
				NIM_BOOL T35_;
				NimStringDesc* T37_;
				T35_ = (NIM_BOOL)0;
				T35_ = !(((*tok).ident == NIM_NIL));
				if (!(T35_)) goto LA36_;
				T35_ = eqStrings((*(*tok).ident).s, ((NimStringDesc*) &TM_6P25SLSLz0kOcUlvm51BiA_22));
				LA36_: ;
				if (!T35_) goto LA34;
				confTok_gRRIWO4ECEOm1XpeGf9aODw(L, tok, config, condStack);
				checkSymbol_f9cVXYnX3fK6Aa5Fm5sf7mg((&(*L)), (&(*tok)));
				T37_ = (NimStringDesc*)0;
				T37_ = tokToStr_d3YnHm5OyfXf5tTfAaERTg_2((&(*tok)));
				val = resizeString(val, (T37_ ? T37_->Sup.len : 0) + 0);
appendString(val, T37_);
				confTok_gRRIWO4ECEOm1XpeGf9aODw(L, tok, config, condStack);
			} LA34: ;
		}
	}
	LA26_: ;
	{
		NimStringDesc* T42_;
		if (!percent) goto LA40_;
		T42_ = (NimStringDesc*)0;
		T42_ = nstFormat(val, (*config).configVars, 3);
		processSwitch_DS57z9bPOnpy1Lyf6Fyb2vA(s, T42_, ((tyEnum_TCmdLinePass_IiBn9cB6WYIMDHOT44O82wA) 2), info, config);
	}
	goto LA38_;
	LA40_: ;
	{
		processSwitch_DS57z9bPOnpy1Lyf6Fyb2vA(s, val, ((tyEnum_TCmdLinePass_IiBn9cB6WYIMDHOT44O82wA) 2), info, config);
	}
	LA38_: ;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, readConfigFile_WGk9b9cMkjqLCtaEjFZBmykg)(NimStringDesc* filename, tyObject_IdentCachecolonObjectType__TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config) {
	NIM_BOOL result;
	tyObject_TLexer_PdyFIzn4patQ2zB5OFD9cjw L;
	tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ tok;
	tyObject_TLLStream_a5oZYQ9aTktYME2449ayEi6g* stream;
{	result = (NIM_BOOL)0;
	nimZeroMem((void*)(&L), sizeof(tyObject_TLexer_PdyFIzn4patQ2zB5OFD9cjw));
	L.Sup.Sup.m_type = (&NTI_PdyFIzn4patQ2zB5OFD9cjw_);
	nimZeroMem((void*)(&tok), sizeof(tyObject_TToken_kLaEEPwLj8cag79cbYQIkHQ));
	stream = (tyObject_TLLStream_a5oZYQ9aTktYME2449ayEi6g*)0;
	stream = llStreamOpen_knWUQJsEzojha6AJCi6LcA(filename, ((tyEnum_FileMode_ZJfK20XeZ9bv2j1pZjw9aswg) 0));
	{
		tySequence_shxop0zPIs5Ec3k71aCLuQ* condStack;
		if (!!((stream == NIM_NIL))) goto LA3_;
		initToken_EaKJR9ap6SPzmmvwWz9aMd1g((&tok));
		openLexer_jJb0YCOUxTG2lqKbbQe89cA((&L), filename, stream, cache, config);
		tok.tokType = ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 1);
		condStack = NIM_NIL;
		confTok_gRRIWO4ECEOm1XpeGf9aODw((&L), (&tok), config, (&condStack));
		{
			while (1) {
				if (!!((tok.tokType == ((tyEnum_TTokType_vw8YkgaVtNadqP8v5OpXKA) 1)))) goto LA6;
				parseAssignment_gRRIWO4ECEOm1XpeGf9aODw_5((&L), (&tok), config, (&condStack));
			} LA6: ;
		}
		{
			NI T9_;
			T9_ = (condStack ? condStack->Sup.len : 0);
			if (!(((NI) 0) < T9_)) goto LA10_;
			lexMessage_7sgxHfR2r4xBBAjZv1DqbQ((&L), ((tyEnum_TMsgKind_29cbg2fC1z5iM1PAI28kR5w) 9), ((NimStringDesc*) &TM_6P25SLSLz0kOcUlvm51BiA_12));
		}
		LA10_: ;
		closeLexer_ukE4jLLltKtD9aVT9bIEv6Gg((&L));
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}

static N_INLINE(void, rtlAddZCT_AT1eRuflKWyTTBdLjEDZbg_2system)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c) {
	addZCT_Y66tOYFjgwJ0k4aLz4bc0Q((&gch_IcYaEuuWivYAS86vFMTS3Q.zct), c);
}

static N_INLINE(void, decRef_AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c) {
	(*c).refcount = (NI)((NU64)((*c).refcount) - (NU64)(((NI) 8)));
	{
		if (!((NU64)((*c).refcount) < (NU64)(((NI) 8)))) goto LA3_;
		rtlAddZCT_AT1eRuflKWyTTBdLjEDZbg_2system(c);
	}
	LA3_: ;
}

static N_INLINE(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell_QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr) {
	tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* result;
	result = (tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
	result = ((tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*) ((NI)((NU64)(((NI) (ptrdiff_t) (usr))) - (NU64)(((NI) 16)))));
	return result;
}

static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
	tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* T1_;
	T1_ = (tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
	T1_ = usrToCell_QFQqcLB3lgOdwipkv9a60xwsystem(p);
	decRef_AT1eRuflKWyTTBdLjEDZbgsystem(T1_);
}

N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getUserConfigPath_JWCVdcP9a8q9acNEgF9aYr8sA)(NimStringDesc* filename) {
	NimStringDesc* result;
	NimStringDesc* T1_;
	NimStringDesc* T2_;
	result = (NimStringDesc*)0;
	T1_ = (NimStringDesc*)0;
	T1_ = nosgetConfigDir();
	T2_ = (NimStringDesc*)0;
	T2_ = slash__0U8YTiSB6NvFwgvyimFN2Q(T1_, ((NimStringDesc*) &TM_6P25SLSLz0kOcUlvm51BiA_23));
	result = slash__QVqo5OOQAdrjFqBsPctklw(T2_, filename);
	return result;
}

static N_INLINE(NIM_BOOL, isEmpty_ZNWb41IwBSHCUIjlqlGoxgpathutils)(NimStringDesc* x) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((x ? x->Sup.len : 0) == ((NI) 0));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, loadConfigs_YEwEmZgkg9cjY353WcQKcEQ)(NimStringDesc* cfg, tyObject_IdentCachecolonObjectType__TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf) {
	tySequence_sM4lkSb7zS6F7OVMvW9cffQ* configFiles;
	NimStringDesc* pd;
	setDefaultLibpath_CQGypz7djD4eDZIXokhWpg_2(conf);
	configFiles = newSeq_XBEivtAkQKaRR3thJ0t9amQ(((NI) 0));
	{
		NimStringDesc* configPath;
		if (!!((((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 15))&63U)))!=0))) goto LA3_;
		configPath = getSystemConfigPath_20ZvyukzMEoGWloXckQXaw(conf, cfg);
		{
			NIM_BOOL T7_;
			NI T10_;
			NimStringDesc* T11_;
			T7_ = (NIM_BOOL)0;
			T7_ = readConfigFile_WGk9b9cMkjqLCtaEjFZBmykg(configPath, cache, conf);
			if (!T7_) goto LA8_;
			configFiles = (tySequence_sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(configFiles), (&NTI_sM4lkSb7zS6F7OVMvW9cffQ_));
			T10_ = configFiles->Sup.len++;
			T11_ = (NimStringDesc*)0;
			T11_ = configFiles->data[T10_]; configFiles->data[T10_] = copyStringRC1(configPath);
			if (T11_) nimGCunrefNoCycle(T11_);
		}
		LA8_: ;
	}
	LA3_: ;
	{
		NimStringDesc* configPath_2;
		if (!!((((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 17))&63U)))!=0))) goto LA14_;
		configPath_2 = getUserConfigPath_JWCVdcP9a8q9acNEgF9aYr8sA(cfg);
		{
			NIM_BOOL T18_;
			NI T21_;
			NimStringDesc* T22_;
			T18_ = (NIM_BOOL)0;
			T18_ = readConfigFile_WGk9b9cMkjqLCtaEjFZBmykg(configPath_2, cache, conf);
			if (!T18_) goto LA19_;
			configFiles = (tySequence_sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(configFiles), (&NTI_sM4lkSb7zS6F7OVMvW9cffQ_));
			T21_ = configFiles->Sup.len++;
			T22_ = (NimStringDesc*)0;
			T22_ = configFiles->data[T21_]; configFiles->data[T21_] = copyStringRC1(configPath_2);
			if (T22_) nimGCunrefNoCycle(T22_);
		}
		LA19_: ;
	}
	LA14_: ;
	{
		NIM_BOOL T25_;
		T25_ = (NIM_BOOL)0;
		T25_ = isEmpty_ZNWb41IwBSHCUIjlqlGoxgpathutils((*conf).projectPath);
		if (!!(T25_)) goto LA26_;
		pd = (*conf).projectPath;
	}
	goto LA23_;
	LA26_: ;
	{
		pd = nosgetCurrentDir();
	}
	LA23_: ;
	{
		if (!!((((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 18))&63U)))!=0))) goto LA31_;
		{
			NimStringDesc* dir;
			NimStringDesc* colontmp_;
			dir = (NimStringDesc*)0;
			colontmp_ = (NimStringDesc*)0;
			colontmp_ = pd;
			{
				NimStringDesc* current;
				if (!NIM_FALSE) goto LA36_;
				current = copyString(colontmp_);
				{
					NimStringDesc* configPath_3;
					if (!NIM_FALSE) goto LA40_;
					dir = colontmp_;
					configPath_3 = slash__QVqo5OOQAdrjFqBsPctklw(dir, cfg);
					{
						NIM_BOOL T44_;
						NI T47_;
						NimStringDesc* T48_;
						T44_ = (NIM_BOOL)0;
						T44_ = readConfigFile_WGk9b9cMkjqLCtaEjFZBmykg(configPath_3, cache, conf);
						if (!T44_) goto LA45_;
						configFiles = (tySequence_sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(configFiles), (&NTI_sM4lkSb7zS6F7OVMvW9cffQ_));
						T47_ = configFiles->Sup.len++;
						T48_ = (NimStringDesc*)0;
						T48_ = configFiles->data[T47_]; configFiles->data[T47_] = copyStringRC1(configPath_3);
						if (T48_) nimGCunrefNoCycle(T48_);
					}
					LA45_: ;
				}
				LA40_: ;
				{
					while (1) {
						NimStringDesc* configPath_4;
						{
							NIM_BOOL T53_;
							T53_ = (NIM_BOOL)0;
							T53_ = nosisRootDir(current);
							if (!T53_) goto LA54_;
							goto LA49;
						}
						LA54_: ;
						current = nosparentDir(current);
						dir = current;
						configPath_4 = slash__QVqo5OOQAdrjFqBsPctklw(dir, cfg);
						{
							NIM_BOOL T58_;
							NI T61_;
							NimStringDesc* T62_;
							T58_ = (NIM_BOOL)0;
							T58_ = readConfigFile_WGk9b9cMkjqLCtaEjFZBmykg(configPath_4, cache, conf);
							if (!T58_) goto LA59_;
							configFiles = (tySequence_sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(configFiles), (&NTI_sM4lkSb7zS6F7OVMvW9cffQ_));
							T61_ = configFiles->Sup.len++;
							T62_ = (NimStringDesc*)0;
							T62_ = configFiles->data[T61_]; configFiles->data[T61_] = copyStringRC1(configPath_4);
							if (T62_) nimGCunrefNoCycle(T62_);
						}
						LA59_: ;
					}
				} LA49: ;
			}
			goto LA34_;
			LA36_: ;
			{
				{
					NI i;
					NI colontmp__2;
					NI TM_6P25SLSLz0kOcUlvm51BiA_24;
					NI res;
					i = (NI)0;
					colontmp__2 = (NI)0;
					TM_6P25SLSLz0kOcUlvm51BiA_24 = subInt((colontmp_ ? colontmp_->Sup.len : 0), ((NI) 2));
					colontmp__2 = (NI)(TM_6P25SLSLz0kOcUlvm51BiA_24);
					res = ((NI) 0);
					{
						while (1) {
							NI TM_6P25SLSLz0kOcUlvm51BiA_26;
							if (!(res <= colontmp__2)) goto LA66;
							i = res;
							{
								NIM_BOOL T69_;
								NIM_BOOL T71_;
								NI TM_6P25SLSLz0kOcUlvm51BiA_25;
								NimStringDesc* configPath_5;
								T69_ = (NIM_BOOL)0;
								if ((NU)(i) >= (NU)(colontmp_ ? colontmp_->Sup.len : 0)) raiseIndexError2(i,(colontmp_ ? colontmp_->Sup.len : 0)-1);
								T69_ = (((NU8)(colontmp_->data[i])) == ((NU8)(47)) || ((NU8)(colontmp_->data[i])) == ((NU8)(47)));
								if (!(T69_)) goto LA70_;
								T71_ = (NIM_BOOL)0;
								T71_ = (i == ((NI) 0));
								if (T71_) goto LA72_;
								TM_6P25SLSLz0kOcUlvm51BiA_25 = subInt(i, ((NI) 1));
								if ((NU)((NI)(TM_6P25SLSLz0kOcUlvm51BiA_25)) >= (NU)(colontmp_ ? colontmp_->Sup.len : 0)) raiseIndexError2((NI)(TM_6P25SLSLz0kOcUlvm51BiA_25),(colontmp_ ? colontmp_->Sup.len : 0)-1);
								T71_ = !((((NU8)(colontmp_->data[(NI)(TM_6P25SLSLz0kOcUlvm51BiA_25)])) == ((NU8)(47)) || ((NU8)(colontmp_->data[(NI)(TM_6P25SLSLz0kOcUlvm51BiA_25)])) == ((NU8)(47))));
								LA72_: ;
								T69_ = T71_;
								LA70_: ;
								if (!T69_) goto LA73_;
								dir = substr_2yh9cer0ymNRHlOOg8P7IuA(colontmp_, ((NI) 0), i);
								configPath_5 = slash__QVqo5OOQAdrjFqBsPctklw(dir, cfg);
								{
									NIM_BOOL T77_;
									NI T80_;
									NimStringDesc* T81_;
									T77_ = (NIM_BOOL)0;
									T77_ = readConfigFile_WGk9b9cMkjqLCtaEjFZBmykg(configPath_5, cache, conf);
									if (!T77_) goto LA78_;
									configFiles = (tySequence_sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(configFiles), (&NTI_sM4lkSb7zS6F7OVMvW9cffQ_));
									T80_ = configFiles->Sup.len++;
									T81_ = (NimStringDesc*)0;
									T81_ = configFiles->data[T80_]; configFiles->data[T80_] = copyStringRC1(configPath_5);
									if (T81_) nimGCunrefNoCycle(T81_);
								}
								LA78_: ;
							}
							LA73_: ;
							TM_6P25SLSLz0kOcUlvm51BiA_26 = addInt(res, ((NI) 1));
							res = (NI)(TM_6P25SLSLz0kOcUlvm51BiA_26);
						} LA66: ;
					}
				}
				{
					NimStringDesc* configPath_6;
					if (!NIM_FALSE) goto LA84_;
					dir = colontmp_;
					configPath_6 = slash__QVqo5OOQAdrjFqBsPctklw(dir, cfg);
					{
						NIM_BOOL T88_;
						NI T91_;
						NimStringDesc* T92_;
						T88_ = (NIM_BOOL)0;
						T88_ = readConfigFile_WGk9b9cMkjqLCtaEjFZBmykg(configPath_6, cache, conf);
						if (!T88_) goto LA89_;
						configFiles = (tySequence_sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(configFiles), (&NTI_sM4lkSb7zS6F7OVMvW9cffQ_));
						T91_ = configFiles->Sup.len++;
						T92_ = (NimStringDesc*)0;
						T92_ = configFiles->data[T91_]; configFiles->data[T91_] = copyStringRC1(configPath_6);
						if (T92_) nimGCunrefNoCycle(T92_);
					}
					LA89_: ;
				}
				LA84_: ;
			}
			LA34_: ;
		}
	}
	LA31_: ;
	{
		NimStringDesc* configPath_7;
		if (!!((((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 16))&63U)))!=0))) goto LA95_;
		configPath_7 = slash__QVqo5OOQAdrjFqBsPctklw(pd, cfg);
		{
			NIM_BOOL T99_;
			NI T102_;
			NimStringDesc* T103_;
			T99_ = (NIM_BOOL)0;
			T99_ = readConfigFile_WGk9b9cMkjqLCtaEjFZBmykg(configPath_7, cache, conf);
			if (!T99_) goto LA100_;
			configFiles = (tySequence_sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(configFiles), (&NTI_sM4lkSb7zS6F7OVMvW9cffQ_));
			T102_ = configFiles->Sup.len++;
			T103_ = (NimStringDesc*)0;
			T103_ = configFiles->data[T102_]; configFiles->data[T102_] = copyStringRC1(configPath_7);
			if (T103_) nimGCunrefNoCycle(T103_);
		}
		LA100_: ;
		{
			NimStringDesc* projectConfig;
			NimStringDesc* configPath_8;
			if (!!((((*conf).projectName ? (*conf).projectName->Sup.len : 0) == ((NI) 0)))) goto LA106_;
			projectConfig = noschangeFileExt((*conf).projectFull, ((NimStringDesc*) &TM_6P25SLSLz0kOcUlvm51BiA_27));
			{
				NIM_BOOL T110_;
				T110_ = (NIM_BOOL)0;
				T110_ = fileExists_2KLbGVKGy3qOdtJ4Bb1ADgos(projectConfig);
				if (!!(T110_)) goto LA111_;
				projectConfig = noschangeFileExt((*conf).projectFull, ((NimStringDesc*) &TM_6P25SLSLz0kOcUlvm51BiA_28));
			}
			LA111_: ;
			configPath_8 = projectConfig;
			{
				NIM_BOOL T115_;
				NI T118_;
				NimStringDesc* T119_;
				T115_ = (NIM_BOOL)0;
				T115_ = readConfigFile_WGk9b9cMkjqLCtaEjFZBmykg(configPath_8, cache, conf);
				if (!T115_) goto LA116_;
				configFiles = (tySequence_sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(configFiles), (&NTI_sM4lkSb7zS6F7OVMvW9cffQ_));
				T118_ = configFiles->Sup.len++;
				T119_ = (NimStringDesc*)0;
				T119_ = configFiles->data[T118_]; configFiles->data[T118_] = copyStringRC1(configPath_8);
				if (T119_) nimGCunrefNoCycle(T119_);
			}
			LA116_: ;
		}
		LA106_: ;
	}
	LA95_: ;
	{
		NimStringDesc* filename;
		NI i_2;
		NI L;
		NI T121_;
		filename = (NimStringDesc*)0;
		i_2 = ((NI) 0);
		T121_ = (configFiles ? configFiles->Sup.len : 0);
		L = T121_;
		{
			while (1) {
				NI TM_6P25SLSLz0kOcUlvm51BiA_29;
				if (!(i_2 < L)) goto LA123;
				if ((NU)(i_2) >= (NU)(configFiles ? configFiles->Sup.len : 0)) raiseIndexError2(i_2,(configFiles ? configFiles->Sup.len : 0)-1);
				filename = configFiles->data[i_2];
				rawMessage_h30HgTFwbGq0PsyHmRqZ8g(conf, ((tyEnum_TMsgKind_29cbg2fC1z5iM1PAI28kR5w) 54), filename);
				TM_6P25SLSLz0kOcUlvm51BiA_29 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM_6P25SLSLz0kOcUlvm51BiA_29);
				{
					NI T126_;
					T126_ = (configFiles ? configFiles->Sup.len : 0);
					if (!!((T126_ == L))) goto LA127_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_6P25SLSLz0kOcUlvm51BiA_30));
				}
				LA127_: ;
			} LA123: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, compiler_nimconfDatInit000)(void) {
NTI_shxop0zPIs5Ec3k71aCLuQ_.size = sizeof(tySequence_shxop0zPIs5Ec3k71aCLuQ*);
NTI_shxop0zPIs5Ec3k71aCLuQ_.kind = 24;
NTI_shxop0zPIs5Ec3k71aCLuQ_.base = (&NTI_VaVACK0bpYmqIQ0mKcHfQQ_);
NTI_shxop0zPIs5Ec3k71aCLuQ_.flags = 2;
NTI_shxop0zPIs5Ec3k71aCLuQ_.marker = Marker_tySequence_shxop0zPIs5Ec3k71aCLuQ;
}

