/* Generated by Nim Compiler v1.6.14 */
#define NIM_INTBITS 64
#define NIM_EmulateOverflowChecks

#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
#define nimfr_(x, y)
#define nimln_(x, y)
typedef struct tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g;
typedef struct tyObject_CellSeq__nav876ELHgxScHhs30CKiA tyObject_CellSeq__nav876ELHgxScHhs30CKiA;
typedef struct tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ;
typedef struct tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ;
typedef struct tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ;
typedef struct tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw;
typedef struct tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA;
typedef struct tyObject_LLChunk__Fjkr5Ya6Zl0UoUGxG047hA tyObject_LLChunk__Fjkr5Ya6Zl0UoUGxG047hA;
typedef struct tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A;
typedef struct tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg;
typedef struct tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw;
typedef struct tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw;
typedef struct tyTuple__p2vAp9cQ6YrpDq9cI3XzEDWA tyTuple__p2vAp9cQ6YrpDq9cI3XzEDWA;
typedef struct tyObject_GcStat__OG9ams3mtFJyICkjTOHbc9bg tyObject_GcStat__OG9ams3mtFJyICkjTOHbc9bg;
typedef struct tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA;
typedef struct tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ;
typedef struct tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ;
typedef struct tyObject_NimProgcolonObjectType___Jr9aWHEB6RuagsJWaF7L51A tyObject_NimProgcolonObjectType___Jr9aWHEB6RuagsJWaF7L51A;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tyObject_OptParser__Sj2pYlEalgMxSDrjh9cml3w tyObject_OptParser__Sj2pYlEalgMxSDrjh9cml3w;
typedef struct RootObj RootObj;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tyObject_Target__tpQT7iEuCtUPNwog9cc3VgA tyObject_Target__tpQT7iEuCtUPNwog9cc3VgA;
typedef struct tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA;
typedef struct tyObject_MsgConfig__whxq1VkHUSUyso71rqeLKA tyObject_MsgConfig__whxq1VkHUSUyso71rqeLKA;
typedef struct tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw;
typedef struct tySequence__mIo9bZUsotCEUUtEGNhYmaA tySequence__mIo9bZUsotCEUUtEGNhYmaA;
typedef struct tyObject_Table__9cHFtxtpgztIcDsypRz9byKw tyObject_Table__9cHFtxtpgztIcDsypRz9byKw;
typedef struct tySequence__7lEisrXlQEzwtUKW5pzRCw tySequence__7lEisrXlQEzwtUKW5pzRCw;
typedef struct tySequence__8rKxBHaz7QqNR9a4WIZqqqQ tySequence__8rKxBHaz7QqNR9a4WIZqqqQ;
typedef struct tyObject_HashSet__LVIAeIp9cp9c81do0NZpv6Sw tyObject_HashSet__LVIAeIp9cp9c81do0NZpv6Sw;
typedef struct tySequence__4eRCaZmrYLLw2k30GPTiMw tySequence__4eRCaZmrYLLw2k30GPTiMw;
typedef struct tyTuple__47w2DboNEPf69aPgubZdd7Q tyTuple__47w2DboNEPf69aPgubZdd7Q;
typedef struct tySequence__KLItBKQec3LJzPmfiYYfQA tySequence__KLItBKQec3LJzPmfiYYfQA;
typedef struct tyObject_SuggestcolonObjectType___VUPO9alfTq2Ar9a7ZtY9cSPDg tyObject_SuggestcolonObjectType___VUPO9alfTq2Ar9a7ZtY9cSPDg;
typedef struct tyObject_ProfileDatacolonObjectType___EiZfxxvPWlUmMsSkx8Qffg tyObject_ProfileDatacolonObjectType___EiZfxxvPWlUmMsSkx8Qffg;
typedef struct tyTuple__kN8up2W6YKc5YA9avn5mV5w tyTuple__kN8up2W6YKc5YA9avn5mV5w;
typedef struct tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg;
typedef struct tyObject_IOError__5GCiDuy5Wsuc9an2QZvqgIA tyObject_IOError__5GCiDuy5Wsuc9an2QZvqgIA;
typedef struct tyObject_CatchableError__8K3kdpxrBD9aI27J0kpSCpQ tyObject_CatchableError__8K3kdpxrBD9aI27J0kpSCpQ;
typedef struct Exception Exception;
typedef struct tySequence__QbmGqFaLnb1IWWToREeaIA tySequence__QbmGqFaLnb1IWWToREeaIA;
typedef struct tyTuple__U3hs4iGgBd4Y9beL6zJV9boQ tyTuple__U3hs4iGgBd4Y9beL6zJV9boQ;
typedef struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw tyTuple__xYhUhS7X82rKTqbT9bRfCnw;
typedef struct tyObject_TFileInfo__2PBRRPxvvEH2sQ9cRi19bh7w tyObject_TFileInfo__2PBRRPxvvEH2sQ9cRi19bh7w;
typedef struct tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ;
typedef struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw tyTuple__QeWl6B6ffS4pU6WWrtcrDw;
typedef struct tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw;
typedef struct tyObject_StackTraceEntry__3r2E7OgmrW3VdUTaooCuyA tyObject_StackTraceEntry__3r2E7OgmrW3VdUTaooCuyA;
typedef NU8 tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ;
typedef NU8 tySet_tyEnum_TNimTypeFlag__Yt5hq6z2IoHhKZrzIVrc1w;
typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
NI align;
tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ kind;
tySet_tyEnum_TNimTypeFlag__Yt5hq6z2IoHhKZrzIVrc1w flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
typedef NU8 tyEnum_TNimNodeKind__rrp49bl1h9aEkXfXp9bNg0yZw;
struct TNimNode {
tyEnum_TNimNodeKind__rrp49bl1h9aEkXfXp9bNg0yZw kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
typedef N_NIMCALL_PTR(void, tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ) (void);
struct tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g {
NI refcount;
TNimType* typ;
};
struct tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ {
void* bottom;
};
struct tyObject_CellSeq__nav876ELHgxScHhs30CKiA {
NI len;
NI cap;
tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g** d;
};
typedef tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw* tyArray__1eFxjkcKGHnofywkmCV8oQ[256];
typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
typedef tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* tyArray__KxTmKT9a3kTkdwYfqXhEYSw[32];
typedef tyArray__KxTmKT9a3kTkdwYfqXhEYSw tyArray__ATT5LBefmjy9bg8ApRmg3rw[24];
typedef tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg* tyArray__RxhBwkGQwTHLKhoK685Xfg[256];
struct tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A {
tyArray__RxhBwkGQwTHLKhoK685Xfg data;
};
typedef tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* tyArray__DrxDrI9bg9apB70ydOoNZrWw[2];
struct tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw {
tyArray__DrxDrI9bg9apB70ydOoNZrWw link;
NI key;
NI upperBound;
NI level;
};
struct tyTuple__p2vAp9cQ6YrpDq9cI3XzEDWA {
tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* Field0;
NI Field1;
};
typedef tyTuple__p2vAp9cQ6YrpDq9cI3XzEDWA tyArray__wsokuoa9bVBSU4gPLKbFaaw[30];
struct tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw {
NI len;
tyArray__wsokuoa9bVBSU4gPLKbFaaw chunks;
tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw* next;
};
struct tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ {
NI minLargeObj;
NI maxLargeObj;
tyArray__1eFxjkcKGHnofywkmCV8oQ freeSmallChunks;
NU32 flBitmap;
tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
tyArray__ATT5LBefmjy9bg8ApRmg3rw matrix;
tyObject_LLChunk__Fjkr5Ya6Zl0UoUGxG047hA* llmem;
NI currMem;
NI maxMem;
NI freeMem;
NI occ;
NI lastSize;
tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A chunkStarts;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* root;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* deleted;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* last;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* freeAvlNodes;
NIM_BOOL locked;
NIM_BOOL blockChunkSizeIncrease;
NI nextChunkSize;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw bottomData;
tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw heapLinks;
};
struct tyObject_GcStat__OG9ams3mtFJyICkjTOHbc9bg {
NI stackScans;
NI cycleCollections;
NI maxThreshold;
NI maxStackSize;
NI maxStackCells;
NI cycleTableSize;
NI64 maxPause;
};
struct tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA {
NI counter;
NI max;
tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ* head;
tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ** data;
};
struct tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ {
tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ stack;
NI cycleThreshold;
NI zctThreshold;
tyObject_CellSeq__nav876ELHgxScHhs30CKiA zct;
tyObject_CellSeq__nav876ELHgxScHhs30CKiA decStack;
tyObject_CellSeq__nav876ELHgxScHhs30CKiA tempStack;
NI recGcLock;
tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ region;
tyObject_GcStat__OG9ams3mtFJyICkjTOHbc9bg stat;
tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA marked;
tyObject_CellSeq__nav876ELHgxScHhs30CKiA additionalRoots;
NI gcThreadId;
};
typedef NU8 tyEnum_TCmdLinePass__cBZGGr1dZbGRibY9aQJwM8w;
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyEnum_TCmdLinePass__cBZGGr1dZbGRibY9aQJwM8w pass, NimStringDesc* cmd, tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* config, void* ClE_0);
void* ClE_0;
} tyProc__LnSKA9cs9aM49agCdzvl6YaTQ;
struct tyObject_NimProgcolonObjectType___Jr9aWHEB6RuagsJWaF7L51A {
NIM_BOOL suggestMode;
NIM_BOOL supportsStdinFile;
tyProc__LnSKA9cs9aM49agCdzvl6YaTQ processCmdLine;
};
struct RootObj {
TNimType* m_type;
};
typedef NU8 tySet_tyChar__nmiMWKVIe46vacnhAFrQvw[32];
typedef NU8 tyEnum_CmdLineKind__9aoMk7Iv3Zzg24yOE69bmFEA;
struct tyObject_OptParser__Sj2pYlEalgMxSDrjh9cml3w {
  RootObj Sup;
NI pos;
NIM_BOOL inShortState;
NIM_BOOL allowWhitespaceAfterColon;
tySet_tyChar__nmiMWKVIe46vacnhAFrQvw shortNoVal;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* longNoVal;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cmds;
NI idx;
tyEnum_CmdLineKind__9aoMk7Iv3Zzg24yOE69bmFEA kind;
NimStringDesc* key;
NimStringDesc* val;
};
typedef NU8 tyEnum_TBackend__zoooocqvga73vZuhGAAy6A;
typedef NU8 tyEnum_TSystemCPU__bwO2H8lhMFycb5BeZf6MFQ;
typedef NU8 tyEnum_TSystemOS__Vz6QOcCh9a6xfgXqmx3OBpw;
struct tyObject_Target__tpQT7iEuCtUPNwog9cc3VgA {
tyEnum_TSystemCPU__bwO2H8lhMFycb5BeZf6MFQ targetCPU;
tyEnum_TSystemCPU__bwO2H8lhMFycb5BeZf6MFQ hostCPU;
tyEnum_TSystemOS__Vz6QOcCh9a6xfgXqmx3OBpw targetOS;
tyEnum_TSystemOS__Vz6QOcCh9a6xfgXqmx3OBpw hostOS;
NI intSize;
NI floatSize;
NI ptrSize;
NimStringDesc* tnl;
};
typedef NU32 tySet_tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ;
typedef NU64 tySet_tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg;
struct tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw {
NU16 line;
NI16 col;
NI32 fileIndex;
};
typedef NU8 tySet_tyEnum_TErrorOutput__AR9blT7YaZzdImck9a5cntbQ;
struct tyObject_Table__9cHFtxtpgztIcDsypRz9byKw {
tySequence__7lEisrXlQEzwtUKW5pzRCw* data;
NI counter;
};
struct tyObject_MsgConfig__whxq1VkHUSUyso71rqeLKA {
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw trackPos;
NIM_BOOL trackPosAttached;
tySet_tyEnum_TErrorOutput__AR9blT7YaZzdImck9a5cntbQ errorOutputs;
tySequence__mIo9bZUsotCEUUtEGNhYmaA* msgContext;
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw lastError;
tyObject_Table__9cHFtxtpgztIcDsypRz9byKw filenameToIndexTbl;
tySequence__8rKxBHaz7QqNR9a4WIZqqqQ* fileInfos;
NI32 systemFileIdx;
};
typedef NU8 tyEnum_FilenameOption__CPbjHbMoELnjs1sUwb4U6w;
typedef NU8 tyEnum_Command__9bV9cjzU2RVpin7yQI1gAZgg;
typedef NU8 tyEnum_TGCMode__yHeclYqeKaCEfMHNbcWn4w;
typedef NU8 tyEnum_ExceptionSystem__B9agvczdQhYbOz39atZ7Ap3Q;
typedef NU8 tyEnum_SymbolFilesOption__qvBr4umnK8GxeSOSEgbmLg;
struct tyObject_HashSet__LVIAeIp9cp9c81do0NZpv6Sw {
tySequence__4eRCaZmrYLLw2k30GPTiMw* data;
NI counter;
};
typedef NU32 tySet_tyEnum_Feature__T2jOg7rgtA4lKTKRASHfHw;
typedef NU8 tySet_tyEnum_LegacyFeature__YfzcW9bRC8xGYaRkFXliJ2g;
typedef NU8 tyEnum_IdeCmd__p9ct5yRAwVUwh1wTpKTgABg;
typedef NU8 tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ;
typedef NU8 tySet_tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA[12];
struct tyTuple__47w2DboNEPf69aPgubZdd7Q {
NI Field0;
NI Field1;
NI Field2;
};
typedef NU8 tySet_tyEnum_StdOrrKind__iRAzj081qUCWECwmGroJoA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_SuggestcolonObjectType___VUPO9alfTq2Ar9a7ZtY9cSPDg* result, void* ClE_0);
void* ClE_0;
} tyProc__Ox1WDSaSyO73VnvAC2a4UA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (NimStringDesc* output, void* ClE_0);
void* ClE_0;
} tyProc__k2HFjxisIgDALbEUFojxaQ;
typedef NU8 tyEnum_Severity__ai6Qt9bTOrsyOxOrlIkRHUg;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* config, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, NimStringDesc* msg, tyEnum_Severity__ai6Qt9bTOrsyOxOrlIkRHUg severity, void* ClE_0);
void* ClE_0;
} tyProc__2bM7rNPFiQD9bOvwFI49bKLQ;
struct tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ {
tyEnum_TBackend__zoooocqvga73vZuhGAAy6A backend;
tyObject_Target__tpQT7iEuCtUPNwog9cc3VgA target;
NI linesCompiled;
tySet_tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ options;
tySet_tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg globalOptions;
tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* macrosToExpand;
tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* arcToExpand;
tyObject_MsgConfig__whxq1VkHUSUyso71rqeLKA m;
tyEnum_FilenameOption__CPbjHbMoELnjs1sUwb4U6w filenameOption;
NimStringDesc* unitSep;
NI evalTemplateCounter;
NI evalMacroCounter;
NI8 exitcode;
tyEnum_Command__9bV9cjzU2RVpin7yQI1gAZgg cmd;
NimStringDesc* cmdInput;
NIM_BOOL projectIsCmd;
NIM_BOOL implicitCmd;
tyEnum_TGCMode__yHeclYqeKaCEfMHNbcWn4w selectedGC;
tyEnum_ExceptionSystem__B9agvczdQhYbOz39atZ7Ap3Q exc;
NIM_BOOL hintProcessingDots;
NI verbosity;
NI numberOfProcessors;
NF lastCmdTime;
tyEnum_SymbolFilesOption__qvBr4umnK8GxeSOSEgbmLg symbolFiles;
NI spellSuggestMax;
tyObject_HashSet__LVIAeIp9cp9c81do0NZpv6Sw cppDefines;
NimStringDesc* headerFile;
tySet_tyEnum_Feature__T2jOg7rgtA4lKTKRASHfHw features;
tySet_tyEnum_LegacyFeature__YfzcW9bRC8xGYaRkFXliJ2g legacyFeatures;
NimStringDesc* arguments;
tyEnum_IdeCmd__p9ct5yRAwVUwh1wTpKTgABg ideCmd;
NIM_BOOL oldNewlines;
tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ cCompiler;
tySet_tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA modifiedyNotes;
tySet_tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA cmdlineNotes;
tySet_tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA foreignPackageNotes;
tySet_tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA notes;
tySet_tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA warningAsErrors;
tySet_tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA mainPackageNotes;
NI mainPackageId;
NI errorCounter;
NI hintCounter;
NI warnCounter;
NI errorMax;
NI maxLoopIterationsVM;
NIM_BOOL isVmTrace;
tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* configVars;
tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* symbols;
tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* packageCache;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* nimblePaths;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* searchPaths;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* lazyPaths;
NimStringDesc* outFile;
NimStringDesc* outDir;
NimStringDesc* jsonBuildFile;
NimStringDesc* prefixDir;
NimStringDesc* libpath;
NimStringDesc* nimcacheDir;
tyTuple__47w2DboNEPf69aPgubZdd7Q nimStdlibVersion;
tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* dllOverrides;
tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* moduleOverrides;
tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* cfileSpecificOptions;
NimStringDesc* projectName;
NimStringDesc* projectPath;
NimStringDesc* projectFull;
NIM_BOOL projectIsStdin;
tySet_tyEnum_StdOrrKind__iRAzj081qUCWECwmGroJoA lastMsgWasDot;
NI32 projectMainIdx;
NI32 projectMainIdx2;
NimStringDesc* command;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* commandArgs;
NimStringDesc* commandLine;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* extraCmds;
NIM_BOOL keepComments;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* implicitImports;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* implicitIncludes;
NimStringDesc* docSeeSrcUrl;
NimStringDesc* docRoot;
NimStringDesc* docCmd;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* configFiles;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cIncludes;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cLibs;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cLinkedLibs;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* externalToLink;
NimStringDesc* linkOptionsCmd;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* compileOptionsCmd;
NimStringDesc* linkOptions;
NimStringDesc* compileOptions;
NimStringDesc* cCompilerPath;
tySequence__KLItBKQec3LJzPmfiYYfQA* toCompile;
tyProc__Ox1WDSaSyO73VnvAC2a4UA suggestionResultHook;
NI suggestVersion;
NI suggestMaxResults;
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw lastLineInfo;
tyProc__k2HFjxisIgDALbEUFojxaQ writelnHook;
tyProc__2bM7rNPFiQD9bOvwFI49bKLQ structuredErrorHook;
NimStringDesc* cppCustomNamespace;
NimStringDesc* nimMainPrefix;
tyObject_ProfileDatacolonObjectType___EiZfxxvPWlUmMsSkx8Qffg* vmProfileData;
NIM_BOOL expandProgress;
NI expandLevels;
NimStringDesc* expandNodeResult;
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw expandPosition;
};
typedef NU8 tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ;
typedef NU8 tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w;
struct tyTuple__kN8up2W6YKc5YA9avn5mV5w {
NimStringDesc* Field0;
NI Field1;
NI Field2;
};
typedef NU8 tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg;
typedef N_CLOSURE_PTR(void, TM__xOfksDa5lOpfO1acT4wYQg_10) (tyEnum_TCmdLinePass__cBZGGr1dZbGRibY9aQJwM8w pass, NimStringDesc* cmd, tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* config, void* ClE_0);
typedef NU8 tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA;
typedef NimStringDesc* tyArray__nHXaesL0DJZHyVS07ARPRA[1];
struct Exception {
  RootObj Sup;
Exception* parent;
NCSTRING name;
NimStringDesc* message;
tySequence__QbmGqFaLnb1IWWToREeaIA* trace;
Exception* up;
};
struct tyObject_CatchableError__8K3kdpxrBD9aI27J0kpSCpQ {
  Exception Sup;
};
struct tyObject_IOError__5GCiDuy5Wsuc9an2QZvqgIA {
  tyObject_CatchableError__8K3kdpxrBD9aI27J0kpSCpQ Sup;
};
struct tyTuple__U3hs4iGgBd4Y9beL6zJV9boQ {
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw Field0;
NimStringDesc* Field1;
};
struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw {
NI Field0;
NimStringDesc* Field1;
NI32 Field2;
};
struct tyObject_TFileInfo__2PBRRPxvvEH2sQ9cRi19bh7w {
NimStringDesc* fullPath;
NimStringDesc* projPath;
NimStringDesc* shortName;
tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ* quotedName;
tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ* quotedFullName;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* lines;
NimStringDesc* dirtyFile;
NimStringDesc* hash;
NIM_BOOL dirty;
};
struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw {
NI Field0;
NimStringDesc* Field1;
};
typedef NU8 tySet_tyEnum_CfileFlag__S5Qo9byZG8QnIQnJQ0ZDWrA;
struct tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw {
NimStringDesc* nimname;
NimStringDesc* cname;
NimStringDesc* obj;
tySet_tyEnum_CfileFlag__S5Qo9byZG8QnIQnJQ0ZDWrA flags;
NimStringDesc* customArgs;
};
struct tyObject_StackTraceEntry__3r2E7OgmrW3VdUTaooCuyA {
NCSTRING procname;
NI line;
NCSTRING filename;
};
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
  TGenericSeq Sup;
  NimStringDesc* data[SEQ_DECL_SIZE];
};
struct tySequence__mIo9bZUsotCEUUtEGNhYmaA {
  TGenericSeq Sup;
  tyTuple__U3hs4iGgBd4Y9beL6zJV9boQ data[SEQ_DECL_SIZE];
};
struct tySequence__7lEisrXlQEzwtUKW5pzRCw {
  TGenericSeq Sup;
  tyTuple__xYhUhS7X82rKTqbT9bRfCnw data[SEQ_DECL_SIZE];
};
struct tySequence__8rKxBHaz7QqNR9a4WIZqqqQ {
  TGenericSeq Sup;
  tyObject_TFileInfo__2PBRRPxvvEH2sQ9cRi19bh7w data[SEQ_DECL_SIZE];
};
struct tySequence__4eRCaZmrYLLw2k30GPTiMw {
  TGenericSeq Sup;
  tyTuple__QeWl6B6ffS4pU6WWrtcrDw data[SEQ_DECL_SIZE];
};
struct tySequence__KLItBKQec3LJzPmfiYYfQA {
  TGenericSeq Sup;
  tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw data[SEQ_DECL_SIZE];
};
struct tySequence__QbmGqFaLnb1IWWToREeaIA {
  TGenericSeq Sup;
  tyObject_StackTraceEntry__3r2E7OgmrW3VdUTaooCuyA data[SEQ_DECL_SIZE];
};
N_LIB_PRIVATE N_NIMCALL(void, GC_disableMarkAndSweep__system_2267)(void);
N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
static N_NIMCALL(void, TM__xOfksDa5lOpfO1acT4wYQg_2)(void);
N_LIB_PRIVATE N_NIMCALL(void, nimRegisterGlobalMarker)(tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ markerProc);
N_LIB_PRIVATE N_NIMCALL(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ*, newConfigRef__options_2333)(void);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef__system_5340)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
static N_INLINE(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*, usrToCell__system_5302)(void* usr);
static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
static N_INLINE(void, decRef__system_5347)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
static N_INLINE(void, rtlAddZCT__system_5345)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5296)(tyObject_CellSeq__nav876ELHgxScHhs30CKiA* s, tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
N_LIB_PRIVATE N_NIMCALL(void, handleCmdLine__nim_54)(tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* cache, tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf);
N_LIB_PRIVATE N_NOINLINE(void*, newObj)(TNimType* typ, NI size);
N_LIB_PRIVATE N_NIMCALL(void, processCmdLine__nim_29)(tyEnum_TCmdLinePass__cBZGGr1dZbGRibY9aQJwM8w pass, NimStringDesc* cmd, tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* config);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
N_LIB_PRIVATE N_NIMCALL(void, initOptParser__pureZparseopt_51)(NimStringDesc* cmdline, tySet_tyChar__nmiMWKVIe46vacnhAFrQvw shortNoVal, tySequence__sM4lkSb7zS6F7OVMvW9cffQ* longNoVal, NIM_BOOL allowWhitespaceAfterColon, tyObject_OptParser__Sj2pYlEalgMxSDrjh9cml3w* Result);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, setLengthStr)(NimStringDesc* s, NI newLen);
N_LIB_PRIVATE N_NIMCALL(void, nponext)(tyObject_OptParser__Sj2pYlEalgMxSDrjh9cml3w* p);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem__system_1733)(void* dest, void* source, NI size);
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
N_LIB_PRIVATE N_NIMCALL(void, addCmdPrefix__cmdlinehelper_16)(NimStringDesc** result, tyEnum_CmdLineKind__9aoMk7Iv3Zzg24yOE69bmFEA kind);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nospquoteShell)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, processArgument__commands_1522)(tyEnum_TCmdLinePass__cBZGGr1dZbGRibY9aQJwM8w pass, tyObject_OptParser__Sj2pYlEalgMxSDrjh9cml3w* p, NI* argsCount, tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* config);
N_LIB_PRIVATE N_NIMCALL(void, processSwitch__commands_1515)(tyEnum_TCmdLinePass__cBZGGr1dZbGRibY9aQJwM8w pass, tyObject_OptParser__Sj2pYlEalgMxSDrjh9cml3w* p, tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* config);
N_LIB_PRIVATE N_NOINLINE(void, liMessage__msgs_1128)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ msg, NimStringDesc* arg, tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w eh, tyTuple__kN8up2W6YKc5YA9avn5mV5w info2, NIM_BOOL isRaw);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nimbleLockExists__nim_16)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* config);
static N_INLINE(NIM_BOOL, isEmpty__pathutils_94)(NimStringDesc* x);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nosgetCurrentDir)(void);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nosfileExists)(NimStringDesc* filename);
static N_INLINE(NimStringDesc*, slash___pureZos_121)(NimStringDesc* head, NimStringDesc* tail);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nosjoinPath)(NimStringDesc* head, NimStringDesc* tail);
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__system_7774)(NimStringDesc* s, NI first, NI last);
N_LIB_PRIVATE N_NIMCALL(void, disableNimblePath__options_4134)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf);
N_LIB_PRIVATE N_NIMCALL(void, initDefinesProg__cmdlinehelper_28)(tyObject_NimProgcolonObjectType___Jr9aWHEB6RuagsJWaF7L51A* self, tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* name);
N_LIB_PRIVATE N_NIMCALL(NI, paramCount__pureZos_1493)(void);
N_LIB_PRIVATE N_NIMCALL(void, writeCommandLineUsage__commands_169)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf);
N_LIB_PRIVATE N_NIMCALL(void, processCmdLineAndProjectPath__cmdlinehelper_32)(tyObject_NimProgcolonObjectType___Jr9aWHEB6RuagsJWaF7L51A* self, tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf);
N_LIB_PRIVATE N_NIMCALL(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg*, newModuleGraph__modulegraphs_9478)(tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* cache, tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* config);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, loadConfigsAndProcessCmdLine__cmdlinehelper_43)(tyObject_NimProgcolonObjectType___Jr9aWHEB6RuagsJWaF7L51A* self, tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* cache, tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* graph);
N_LIB_PRIVATE N_NIMCALL(void, mainCommand__main_504)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* graph);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasHint__options_530)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA note);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, GC_getStatistics__system_2268)(void);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringDesc** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, absOutFile__options_4073)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getNimRunExe__nim_51)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDefined__options_2292)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* symbol);
static N_INLINE(NimStringDesc*, findNodeJs__nodejs_2)(void);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, findExe__pureZos_626)(NimStringDesc* exe, NIM_BOOL followSymlinks, NimStringDesc** extensions, NI extensionsLen_0);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_LIB_PRIVATE N_NIMCALL(void, raiseExceptionEx)(Exception* e, NCSTRING ename, NCSTRING procname, NCSTRING filename, NI line);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__systemZassertions_56)(NimStringDesc* msg);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, reprEnum)(NI e, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(void, execExternalProgram__extccomp_810)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* cmd, tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ msg);
static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatOpenArray)(NimStringDesc* formatstr, NimStringDesc** a, NI aLen_0);
N_LIB_PRIVATE N_NIMCALL(void, openDefaultBrowser__pureZbrowsers_15)(NimStringDesc* url);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___options_4370)(NimStringDesc* x);
N_LIB_PRIVATE N_NIMCALL(tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ*, newIdentCache__idents_161)(void);
N_LIB_PRIVATE N_NIMCALL(void, msgQuit__msgs_452)(NI8 x);
static N_INLINE(void, initStackBottomWith)(void* locals);
N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatslibatssystematsiodotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatslibatssystemdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatslibatssystemdotnim_Init000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatslibatspureatsstrutilsdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatslibatsposixatsposixdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatslibatspureatstimesdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatslibatspureatstimesdotnim_Init000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatslibatspureatsosdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatslibatspureatsparseoptdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatslibatspureatsstrtabsdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatslibatspureatsterminaldotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatslibatspureatsterminaldotnim_Init000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmropesdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmropesdotnim_Init000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmlineinfosdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmplatformdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmprefixmatchesdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmoptionsdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmwordrecgdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmidentsdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmastdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmastdotnim_Init000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmllstreamdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmnimlexbasedotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmlexerdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmrendererdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatslibatspureatsstreamsdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatslibatspureatsosprocdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatslibatspureatslexbasedotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatslibatspureatsparsejsondotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatslibatspureatsjsondotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmextccompdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmnimblecmddotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmparserdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmsyntaxesdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatslibatsstdatspackedsetsdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmastalgodotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatslibatspureatsmd5dotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmicatsrodfilesdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmicatspacked_astdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmicatsicdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmmodulegraphsdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmtypesdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmvmdefdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmsemdatadotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmlookupsdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmconceptsdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmsemtypinstdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmsigmatchdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmimporterdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmpragmasdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmreorderdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmguardsdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmvarpartitionsdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmnilcheckdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmsighashesdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmndidotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmcgendatadotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmlambdaliftingdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmclosureitersdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmtransfdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmvmgendotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmvmmarshaldotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmvmdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmpatternsdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmsemdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdfadotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atminjectdestructorsdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmsemparalleldotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmcgendotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmscriptconfigdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmnimconfdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmpassauxdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdependsdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmicatsdcedotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmicatsintegritydotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmsourcemapdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmsourcemapdotnim_Init000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmjsgendotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatslibatspackagesatsdocutilsatsrstastdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatslibatspackagesatsdocutilsatshighlitedotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatslibatspackagesatsdocutilsatsrstdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatslibatspackagesatsdocutilsatsrstgendotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdocgendotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmdocgen2dotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmmaindotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, atmcmdlinehelperdotnim_DatInit000)(void);
N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
extern TNimType NTIconfigref__9af1bTLFo0lbM2Q5seW0UFA_;
extern TNimType NTInimprog__uZXQsR9cxx9c8jIS8L4sJw9bw_;
extern TNimType NTIoptparser__Sj2pYlEalgMxSDrjh9cml3w_;
static NIM_CONST tySet_tyChar__nmiMWKVIe46vacnhAFrQvw TM__xOfksDa5lOpfO1acT4wYQg_3 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__xOfksDa5lOpfO1acT4wYQg_4, " ", 1);
STRING_LITERAL(TM__xOfksDa5lOpfO1acT4wYQg_5, "-", 1);
extern NIM_CONST tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw unknownLineInfo__lineinfos_284;
STRING_LITERAL(TM__xOfksDa5lOpfO1acT4wYQg_6, "arguments can only be given if the \'--run\' option is selected", 61);
STRING_LITERAL(TM__xOfksDa5lOpfO1acT4wYQg_8, "/home/runner/work/nightlies/nightlies/nim/compiler/nim.nim", 58);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__xOfksDa5lOpfO1acT4wYQg_7 = {((NimStringDesc*) &TM__xOfksDa5lOpfO1acT4wYQg_8),
((NI) 80),
((NI) 16)}
;
STRING_LITERAL(TM__xOfksDa5lOpfO1acT4wYQg_9, "nimble.lock", 11);
STRING_LITERAL(TM__xOfksDa5lOpfO1acT4wYQg_11, "nim_compiler", 12);
STRING_LITERAL(TM__xOfksDa5lOpfO1acT4wYQg_12, "mingw", 5);
STRING_LITERAL(TM__xOfksDa5lOpfO1acT4wYQg_13, "i386", 4);
STRING_LITERAL(TM__xOfksDa5lOpfO1acT4wYQg_14, "wine", 4);
STRING_LITERAL(TM__xOfksDa5lOpfO1acT4wYQg_15, "amd64", 5);
STRING_LITERAL(TM__xOfksDa5lOpfO1acT4wYQg_16, "wine64", 6);
STRING_LITERAL(TM__xOfksDa5lOpfO1acT4wYQg_17, "nodejs", 6);
extern NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA ExeExts__pureZos_625;
STRING_LITERAL(TM__xOfksDa5lOpfO1acT4wYQg_18, "node", 4);
STRING_LITERAL(TM__xOfksDa5lOpfO1acT4wYQg_20, "Please install NodeJS first, see https://nodejs.org/en/download", 63);
static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__xOfksDa5lOpfO1acT4wYQg_19 = {((NimStringDesc*) &TM__xOfksDa5lOpfO1acT4wYQg_20)}
;
extern TNimType NTIrefioerror__0NUycR3lTt5ae7Mj01Qw8A_;
extern TNimType NTIioerror__5GCiDuy5Wsuc9an2QZvqgIA_;
STRING_LITERAL(TM__xOfksDa5lOpfO1acT4wYQg_21, "NodeJS not found in PATH: ", 26);
STRING_LITERAL(TM__xOfksDa5lOpfO1acT4wYQg_22, " --unhandled-rejections=strict", 30);
STRING_LITERAL(TM__xOfksDa5lOpfO1acT4wYQg_23, "nim.nim(129, 22) `false` ", 25);
extern TNimType NTItbackend__zoooocqvga73vZuhGAAy6A_;
STRING_LITERAL(TM__xOfksDa5lOpfO1acT4wYQg_24, "\'$1 cannot handle arguments", 27);
extern TNimType NTIcommand__9bV9cjzU2RVpin7yQI1gAZgg_;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__xOfksDa5lOpfO1acT4wYQg_25 = {((NimStringDesc*) &TM__xOfksDa5lOpfO1acT4wYQg_8),
((NI) 137),
((NI) 18)}
;
STRING_LITERAL(TM__xOfksDa5lOpfO1acT4wYQg_26, "\'$1 cannot handle --run", 23);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__xOfksDa5lOpfO1acT4wYQg_27 = {((NimStringDesc*) &TM__xOfksDa5lOpfO1acT4wYQg_8),
((NI) 141),
((NI) 16)}
;
N_LIB_PRIVATE tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf__nim_119;
extern tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ gch__system_5249;
static N_NIMCALL(void, TM__xOfksDa5lOpfO1acT4wYQg_2)(void) {
	nimGCvisit((void*)conf__nim_119, 0);
}
static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU64)(((NU) (x))) + (NU64)(((NU) (y))))));
	return result;
}
static N_INLINE(void, incRef__system_5340)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c) {
	(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
}
static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU64)(((NU) (x))) - (NU64)(((NU) (y))))));
	return result;
}
static N_INLINE(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*, usrToCell__system_5302)(void* usr) {
	tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* result;
	NI T1_;
	result = (tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*)0;
	T1_ = (NI)0;
	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 16));
	result = ((tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*) (T1_));
	return result;
}
static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((NU64)(((NU) (x))) < (NU64)(((NU) (y))));
	return result;
}
static N_INLINE(void, rtlAddZCT__system_5345)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c) {
	addZCT__system_5296((&gch__system_5249.zct), c);
}
static N_INLINE(void, decRef__system_5347)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c) {
	(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
		if (!T3_) goto LA4_;
		rtlAddZCT__system_5345(c);
	}
	LA4_: ;
}
static N_INLINE(void, asgnRef)(void** dest, void* src) {
	{
		tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* T5_;
		if (!!((src == NIM_NIL))) goto LA3_;
		T5_ = (tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*)0;
		T5_ = usrToCell__system_5302(src);
		incRef__system_5340(T5_);
	}
	LA3_: ;
	{
		tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* T10_;
		if (!!(((*dest) == NIM_NIL))) goto LA8_;
		T10_ = (tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*)0;
		T10_ = usrToCell__system_5302((*dest));
		decRef__system_5347(T10_);
	}
	LA8_: ;
	(*dest) = src;
}
static N_INLINE(void, nimSetMem__systemZmemory_7)(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__systemZmemory_7(p, ((int) 0), size);
}
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__system_1733)(void* dest, void* source, NI size) {
	nimCopyMem(dest, source, size);
}
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	{
		if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
		copyMem__system_1733(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
		(*dest).Sup.len += (*src).Sup.len;
	}
	LA3_: ;
}
static N_INLINE(NIM_BOOL, isEmpty__pathutils_94)(NimStringDesc* x) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((x ? x->Sup.len : 0) == ((NI) 0));
	return result;
}
static N_INLINE(NimStringDesc*, slash___pureZos_121)(NimStringDesc* head, NimStringDesc* tail) {
	NimStringDesc* result;
	result = NIM_NIL;
	result = nosjoinPath(head, tail);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nimbleLockExists__nim_16)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* config) {
	NIM_BOOL result;
	NimStringDesc* pd;
	NimStringDesc* T67_;
{	result = (NIM_BOOL)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isEmpty__pathutils_94((*config).projectPath);
		if (!!(T3_)) goto LA4_;
		pd = (*config).projectPath;
	}
	goto LA1_;
	LA4_: ;
	{
		pd = nosgetCurrentDir();
	}
	LA1_: ;
	{
		if (!!((((*config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 20))&63U)))!=0))) goto LA9_;
		{
			NimStringDesc* dir;
			NimStringDesc* colontmp_;
			dir = NIM_NIL;
			colontmp_ = NIM_NIL;
			colontmp_ = pd;
			{
				NimStringDesc* current;
				if (!NIM_FALSE) goto LA14_;
				current = copyString(colontmp_);
				{
					if (!NIM_FALSE) goto LA18_;
					dir = colontmp_;
					{
						NimStringDesc* T22_;
						NIM_BOOL T23_;
						T22_ = NIM_NIL;
						T22_ = slash___pureZos_121(dir, ((NimStringDesc*) &TM__xOfksDa5lOpfO1acT4wYQg_9));
						T23_ = (NIM_BOOL)0;
						T23_ = nosfileExists(T22_);
						if (!T23_) goto LA24_;
						result = NIM_TRUE;
						goto BeforeRet_;
					}
					LA24_: ;
				}
				LA18_: ;
				{
					while (1) {
						{
							NIM_BOOL T30_;
							T30_ = (NIM_BOOL)0;
							T30_ = nosisRootDir(current);
							if (!T30_) goto LA31_;
							goto LA26;
						}
						LA31_: ;
						current = nosparentDir(current);
						dir = current;
						{
							NimStringDesc* T35_;
							NIM_BOOL T36_;
							T35_ = NIM_NIL;
							T35_ = slash___pureZos_121(dir, ((NimStringDesc*) &TM__xOfksDa5lOpfO1acT4wYQg_9));
							T36_ = (NIM_BOOL)0;
							T36_ = nosfileExists(T35_);
							if (!T36_) goto LA37_;
							result = NIM_TRUE;
							goto BeforeRet_;
						}
						LA37_: ;
					}
				} LA26: ;
			}
			goto LA12_;
			LA14_: ;
			{
				{
					NI i;
					NI colontmp__2;
					NI res;
					i = (NI)0;
					colontmp__2 = (NI)0;
					colontmp__2 = (NI)((colontmp_ ? colontmp_->Sup.len : 0) - ((NI) 2));
					res = ((NI) 0);
					{
						while (1) {
							if (!(res <= colontmp__2)) goto LA42;
							i = res;
							{
								NIM_BOOL T45_;
								NIM_BOOL T47_;
								T45_ = (NIM_BOOL)0;
								T45_ = (((NU8)(colontmp_->data[i])) == ((NU8)(47)) || ((NU8)(colontmp_->data[i])) == ((NU8)(47)));
								if (!(T45_)) goto LA46_;
								T47_ = (NIM_BOOL)0;
								T47_ = (i == ((NI) 0));
								if (T47_) goto LA48_;
								T47_ = !((((NU8)(colontmp_->data[(NI)(i - ((NI) 1))])) == ((NU8)(47)) || ((NU8)(colontmp_->data[(NI)(i - ((NI) 1))])) == ((NU8)(47))));
								LA48_: ;
								T45_ = T47_;
								LA46_: ;
								if (!T45_) goto LA49_;
								dir = substr__system_7774(colontmp_, ((NI) 0), i);
								{
									NimStringDesc* T53_;
									NIM_BOOL T54_;
									T53_ = NIM_NIL;
									T53_ = slash___pureZos_121(dir, ((NimStringDesc*) &TM__xOfksDa5lOpfO1acT4wYQg_9));
									T54_ = (NIM_BOOL)0;
									T54_ = nosfileExists(T53_);
									if (!T54_) goto LA55_;
									result = NIM_TRUE;
									goto BeforeRet_;
								}
								LA55_: ;
							}
							LA49_: ;
							res += ((NI) 1);
						} LA42: ;
					}
				}
				{
					if (!NIM_FALSE) goto LA59_;
					dir = colontmp_;
					{
						NimStringDesc* T63_;
						NIM_BOOL T64_;
						T63_ = NIM_NIL;
						T63_ = slash___pureZos_121(dir, ((NimStringDesc*) &TM__xOfksDa5lOpfO1acT4wYQg_9));
						T64_ = (NIM_BOOL)0;
						T64_ = nosfileExists(T63_);
						if (!T64_) goto LA65_;
						result = NIM_TRUE;
						goto BeforeRet_;
					}
					LA65_: ;
				}
				LA59_: ;
			}
			LA12_: ;
		}
	}
	LA9_: ;
	T67_ = NIM_NIL;
	T67_ = slash___pureZos_121(pd, ((NimStringDesc*) &TM__xOfksDa5lOpfO1acT4wYQg_9));
	result = nosfileExists(T67_);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, processCmdLine__nim_29)(tyEnum_TCmdLinePass__cBZGGr1dZbGRibY9aQJwM8w pass, NimStringDesc* cmd, tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* config) {
	tyObject_OptParser__Sj2pYlEalgMxSDrjh9cml3w p;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ* T1_;
	NI argsCount;
	nimZeroMem((void*)(&p), sizeof(tyObject_OptParser__Sj2pYlEalgMxSDrjh9cml3w));
	p.Sup.m_type = (&NTIoptparser__Sj2pYlEalgMxSDrjh9cml3w_);
	T1_ = NIM_NIL;
	T1_ = NIM_NIL;
	initOptParser__pureZparseopt_51(cmd, TM__xOfksDa5lOpfO1acT4wYQg_3, T1_, NIM_TRUE, (&p));
	argsCount = ((NI) 0);
	asgnRef((void**) (&(*config).commandLine), setLengthStr((*config).commandLine, ((NI) 0)));
	{
		while (1) {
			nponext((&p));
			switch (p.kind) {
			case ((tyEnum_CmdLineKind__9aoMk7Iv3Zzg24yOE69bmFEA) 0):
			{
				goto LA2;
			}
			break;
			case ((tyEnum_CmdLineKind__9aoMk7Iv3Zzg24yOE69bmFEA) 2):
			case ((tyEnum_CmdLineKind__9aoMk7Iv3Zzg24yOE69bmFEA) 3):
			{
				NimStringDesc* T6_;
				asgnRef((void**) (&(*config).commandLine), resizeString((*config).commandLine, 1));
appendString((*config).commandLine, ((NimStringDesc*) &TM__xOfksDa5lOpfO1acT4wYQg_4));
				addCmdPrefix__cmdlinehelper_16((&(*config).commandLine), p.kind);
				T6_ = NIM_NIL;
				T6_ = nospquoteShell(p.key);
				asgnRef((void**) (&(*config).commandLine), resizeString((*config).commandLine, (T6_ ? T6_->Sup.len : 0) + 0));
appendString((*config).commandLine, T6_);
				{
					NimStringDesc* T11_;
					if (!(((NI) 0) < (p.val ? p.val->Sup.len : 0))) goto LA9_;
					asgnRef((void**) (&(*config).commandLine), addChar((*config).commandLine, 58));
					T11_ = NIM_NIL;
					T11_ = nospquoteShell(p.val);
					asgnRef((void**) (&(*config).commandLine), resizeString((*config).commandLine, (T11_ ? T11_->Sup.len : 0) + 0));
appendString((*config).commandLine, T11_);
				}
				LA9_: ;
				{
					if (!((p.key ? p.key->Sup.len : 0) == 0)) goto LA14_;
					p.key = copyString(((NimStringDesc*) &TM__xOfksDa5lOpfO1acT4wYQg_5));
					{
						NIM_BOOL T18_;
						T18_ = (NIM_BOOL)0;
						T18_ = processArgument__commands_1522(pass, (&p), (&argsCount), config);
						if (!T18_) goto LA19_;
						goto LA2;
					}
					LA19_: ;
				}
				goto LA12_;
				LA14_: ;
				{
					processSwitch__commands_1515(pass, (&p), config);
				}
				LA12_: ;
			}
			break;
			case ((tyEnum_CmdLineKind__9aoMk7Iv3Zzg24yOE69bmFEA) 1):
			{
				NimStringDesc* T23_;
				asgnRef((void**) (&(*config).commandLine), resizeString((*config).commandLine, 1));
appendString((*config).commandLine, ((NimStringDesc*) &TM__xOfksDa5lOpfO1acT4wYQg_4));
				T23_ = NIM_NIL;
				T23_ = nospquoteShell(p.key);
				asgnRef((void**) (&(*config).commandLine), resizeString((*config).commandLine, (T23_ ? T23_->Sup.len : 0) + 0));
appendString((*config).commandLine, T23_);
				{
					NIM_BOOL T26_;
					T26_ = (NIM_BOOL)0;
					T26_ = processArgument__commands_1522(pass, (&p), (&argsCount), config);
					if (!T26_) goto LA27_;
					goto LA2;
				}
				LA27_: ;
			}
			break;
			}
		}
	} LA2: ;
	{
		if (!(pass == ((tyEnum_TCmdLinePass__cBZGGr1dZbGRibY9aQJwM8w) 1))) goto LA31_;
		{
			NIM_BOOL T35_;
			NIM_BOOL T36_;
			T35_ = (NIM_BOOL)0;
			T36_ = (NIM_BOOL)0;
			T36_ = ((4100 & (*config).globalOptions) == 0);
			if (!(T36_)) goto LA37_;
			T36_ = (((NI) 0) < ((*config).arguments ? (*config).arguments->Sup.len : 0));
			LA37_: ;
			T35_ = T36_;
			if (!(T35_)) goto LA38_;
			T35_ = !(((4288 &((NU32)1<<((NU)((*config).cmd)&31U)))!=0));
			LA38_: ;
			if (!T35_) goto LA39_;
			liMessage__msgs_1128(config, unknownLineInfo__lineinfos_284, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__xOfksDa5lOpfO1acT4wYQg_6), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 1), TM__xOfksDa5lOpfO1acT4wYQg_7, NIM_FALSE);
		}
		LA39_: ;
	}
	LA31_: ;
	{
		NIM_BOOL T43_;
		T43_ = (NIM_BOOL)0;
		T43_ = nimbleLockExists__nim_16(config);
		if (!T43_) goto LA44_;
		disableNimblePath__options_4134(config);
	}
	LA44_: ;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getNimRunExe__nim_51)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf) {
	NimStringDesc* result;
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isDefined__options_2292(conf, ((NimStringDesc*) &TM__xOfksDa5lOpfO1acT4wYQg_12));
		if (!T3_) goto LA4_;
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = isDefined__options_2292(conf, ((NimStringDesc*) &TM__xOfksDa5lOpfO1acT4wYQg_13));
			if (!T8_) goto LA9_;
			result = copyString(((NimStringDesc*) &TM__xOfksDa5lOpfO1acT4wYQg_14));
		}
		goto LA6_;
		LA9_: ;
		{
			NIM_BOOL T12_;
			T12_ = (NIM_BOOL)0;
			T12_ = isDefined__options_2292(conf, ((NimStringDesc*) &TM__xOfksDa5lOpfO1acT4wYQg_15));
			if (!T12_) goto LA13_;
			result = copyString(((NimStringDesc*) &TM__xOfksDa5lOpfO1acT4wYQg_16));
		}
		goto LA6_;
		LA13_: ;
		LA6_: ;
	}
	LA4_: ;
	return result;
}
static N_INLINE(NimStringDesc*, findNodeJs__nodejs_2)(void) {
	NimStringDesc* result;
	result = NIM_NIL;
	result = findExe__pureZos_626(((NimStringDesc*) &TM__xOfksDa5lOpfO1acT4wYQg_17), NIM_TRUE, ExeExts__pureZos_625, 1);
	{
		if (!((result ? result->Sup.len : 0) == ((NI) 0))) goto LA3_;
		result = findExe__pureZos_626(((NimStringDesc*) &TM__xOfksDa5lOpfO1acT4wYQg_18), NIM_TRUE, ExeExts__pureZos_625, 1);
	}
	LA3_: ;
	{
		tyObject_IOError__5GCiDuy5Wsuc9an2QZvqgIA* T9_;
		NimStringDesc* T10_;
		if (!((result ? result->Sup.len : 0) == ((NI) 0))) goto LA7_;
		echoBinSafe(TM__xOfksDa5lOpfO1acT4wYQg_19, 1);
		T9_ = NIM_NIL;
		T9_ = (tyObject_IOError__5GCiDuy5Wsuc9an2QZvqgIA*) newObj((&NTIrefioerror__0NUycR3lTt5ae7Mj01Qw8A_), sizeof(tyObject_IOError__5GCiDuy5Wsuc9an2QZvqgIA));
		(*T9_).Sup.Sup.Sup.m_type = (&NTIioerror__5GCiDuy5Wsuc9an2QZvqgIA_);
		(*T9_).Sup.Sup.name = "IOError";
		T10_ = NIM_NIL;
		T10_ = rawNewString((result ? result->Sup.len : 0) + 26);
appendString(T10_, ((NimStringDesc*) &TM__xOfksDa5lOpfO1acT4wYQg_21));
appendString(T10_, result);
		asgnRef((void**) (&(*T9_).Sup.Sup.message), T10_);
		asgnRef((void**) (&(*T9_).Sup.Sup.parent), ((Exception*) NIM_NIL));
		raiseExceptionEx((Exception*)T9_, "IOError", "findNodeJs", "nodejs.nim", 10);
	}
	LA7_: ;
	return result;
}
static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c) {
	(*dest).data[(*dest).Sup.len] = c;
	(*dest).data[(NI)((*dest).Sup.len + ((NI) 1))] = 0;
	(*dest).Sup.len += ((NI) 1);
}
N_LIB_PRIVATE N_NIMCALL(void, handleCmdLine__nim_54)(tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* cache, tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf) {
	tyObject_NimProgcolonObjectType___Jr9aWHEB6RuagsJWaF7L51A* self;
	tyObject_NimProgcolonObjectType___Jr9aWHEB6RuagsJWaF7L51A* T1_;
	tyProc__LnSKA9cs9aM49agCdzvl6YaTQ T2_;
	tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* graph;
{	T1_ = NIM_NIL;
	T1_ = (tyObject_NimProgcolonObjectType___Jr9aWHEB6RuagsJWaF7L51A*) newObj((&NTInimprog__uZXQsR9cxx9c8jIS8L4sJw9bw_), sizeof(tyObject_NimProgcolonObjectType___Jr9aWHEB6RuagsJWaF7L51A));
	(*T1_).supportsStdinFile = NIM_TRUE;
	nimZeroMem((void*)(&T2_), sizeof(tyProc__LnSKA9cs9aM49agCdzvl6YaTQ));
	T2_.ClP_0 = ((TM__xOfksDa5lOpfO1acT4wYQg_10) (processCmdLine__nim_29)); T2_.ClE_0 = NIM_NIL;
	asgnRef((void**) (&(*T1_).processCmdLine.ClE_0), T2_.ClE_0);
	(*T1_).processCmdLine.ClP_0 = T2_.ClP_0;
	self = T1_;
	initDefinesProg__cmdlinehelper_28(self, conf, ((NimStringDesc*) &TM__xOfksDa5lOpfO1acT4wYQg_11));
	{
		NI T5_;
		T5_ = (NI)0;
		T5_ = paramCount__pureZos_1493();
		if (!(T5_ == ((NI) 0))) goto LA6_;
		writeCommandLineUsage__commands_169(conf);
		goto BeforeRet_;
	}
	LA6_: ;
	processCmdLineAndProjectPath__cmdlinehelper_32(self, conf);
	graph = newModuleGraph__modulegraphs_9478(cache, conf);
	{
		NIM_BOOL T10_;
		T10_ = (NIM_BOOL)0;
		T10_ = loadConfigsAndProcessCmdLine__cmdlinehelper_43(self, cache, conf, graph);
		if (!!(T10_)) goto LA11_;
		goto BeforeRet_;
	}
	LA11_: ;
	mainCommand__main_504(graph);
	{
		NIM_BOOL T15_;
		tyArray__nHXaesL0DJZHyVS07ARPRA T18_;
		T15_ = (NIM_BOOL)0;
		T15_ = hasHint__options_530(conf, ((tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA) 99));
		if (!T15_) goto LA16_;
		nimZeroMem((void*)T18_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
		T18_[0] = GC_getStatistics__system_2268();
		echoBinSafe(T18_, 1);
	}
	LA16_: ;
	{
		if (!!(((*conf).errorCounter == ((NI) 0)))) goto LA21_;
		goto BeforeRet_;
	}
	LA21_: ;
	{
		NimStringDesc* output;
		if (!(((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 12))&63U)))!=0)) goto LA25_;
		output = absOutFile__options_4073(conf);
		switch ((*conf).cmd) {
		case ((tyEnum_Command__9bV9cjzU2RVpin7yQI1gAZgg) 2) ... ((tyEnum_Command__9bV9cjzU2RVpin7yQI1gAZgg) 6):
		case ((tyEnum_Command__9bV9cjzU2RVpin7yQI1gAZgg) 7):
		{
			NimStringDesc* nimRunExe;
			NimStringDesc* cmdPrefix;
			NimStringDesc* T50_;
			NimStringDesc* T51_;
			nimRunExe = getNimRunExe__nim_51(conf);
			cmdPrefix = NIM_NIL;
			{
				NimStringDesc* T32_;
				if (!(((NI) 0) < (nimRunExe ? nimRunExe->Sup.len : 0))) goto LA30_;
				T32_ = NIM_NIL;
				T32_ = nospquoteShell(nimRunExe);
				cmdPrefix = resizeString(cmdPrefix, (T32_ ? T32_->Sup.len : 0) + 0);
appendString(cmdPrefix, T32_);
			}
			LA30_: ;
			switch ((*conf).backend) {
			case ((tyEnum_TBackend__zoooocqvga73vZuhGAAy6A) 1):
			case ((tyEnum_TBackend__zoooocqvga73vZuhGAAy6A) 2):
			case ((tyEnum_TBackend__zoooocqvga73vZuhGAAy6A) 4):
			{
			}
			break;
			case ((tyEnum_TBackend__zoooocqvga73vZuhGAAy6A) 3):
			{
				{
					NimStringDesc* T39_;
					if (!((cmdPrefix ? cmdPrefix->Sup.len : 0) == ((NI) 0))) goto LA37_;
					T39_ = NIM_NIL;
					T39_ = findNodeJs__nodejs_2();
					cmdPrefix = nospquoteShell(T39_);
				}
				LA37_: ;
				cmdPrefix = resizeString(cmdPrefix, 30);
appendString(cmdPrefix, ((NimStringDesc*) &TM__xOfksDa5lOpfO1acT4wYQg_22));
			}
			break;
			default:
			{
				{
					NimStringDesc* T45_;
					if (!NIM_TRUE) goto LA43_;
					T45_ = NIM_NIL;
					T45_ = rawNewString((reprEnum((NI)(*conf).backend, (&NTItbackend__zoooocqvga73vZuhGAAy6A_)) ? reprEnum((NI)(*conf).backend, (&NTItbackend__zoooocqvga73vZuhGAAy6A_))->Sup.len : 0) + 25);
appendString(T45_, ((NimStringDesc*) &TM__xOfksDa5lOpfO1acT4wYQg_23));
appendString(T45_, reprEnum((NI)(*conf).backend, (&NTItbackend__zoooocqvga73vZuhGAAy6A_)));
					failedAssertImpl__systemZassertions_56(T45_);
				}
				LA43_: ;
			}
			break;
			}
			{
				if (!(((NI) 0) < (cmdPrefix ? cmdPrefix->Sup.len : 0))) goto LA48_;
				cmdPrefix = resizeString(cmdPrefix, 1);
appendString(cmdPrefix, ((NimStringDesc*) &TM__xOfksDa5lOpfO1acT4wYQg_4));
			}
			LA48_: ;
			T50_ = NIM_NIL;
			T51_ = NIM_NIL;
			T51_ = nospquoteShell(output);
			T50_ = rawNewString((cmdPrefix ? cmdPrefix->Sup.len : 0) + (T51_ ? T51_->Sup.len : 0) + ((*conf).arguments ? (*conf).arguments->Sup.len : 0) + 1);
appendString(T50_, cmdPrefix);
appendString(T50_, T51_);
appendChar(T50_, 32);
appendString(T50_, (*conf).arguments);
			execExternalProgram__extccomp_810(conf, T50_, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 93));
		}
		break;
		case ((tyEnum_Command__9bV9cjzU2RVpin7yQI1gAZgg) 13) ... ((tyEnum_Command__9bV9cjzU2RVpin7yQI1gAZgg) 15):
		case ((tyEnum_Command__9bV9cjzU2RVpin7yQI1gAZgg) 16):
		case ((tyEnum_Command__9bV9cjzU2RVpin7yQI1gAZgg) 17):
		case ((tyEnum_Command__9bV9cjzU2RVpin7yQI1gAZgg) 18) ... ((tyEnum_Command__9bV9cjzU2RVpin7yQI1gAZgg) 21):
		{
			NimStringDesc* T59_;
			{
				tyArray__nHXaesL0DJZHyVS07ARPRA T57_;
				NimStringDesc* T58_;
				if (!(((NI) 0) < ((*conf).arguments ? (*conf).arguments->Sup.len : 0))) goto LA55_;
				nimZeroMem((void*)T57_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
				T57_[0] = reprEnum((NI)(*conf).cmd, (&NTIcommand__9bV9cjzU2RVpin7yQI1gAZgg_));
				T58_ = NIM_NIL;
				T58_ = nsuFormatOpenArray(((NimStringDesc*) &TM__xOfksDa5lOpfO1acT4wYQg_24), T57_, 1);
				liMessage__msgs_1128(conf, unknownLineInfo__lineinfos_284, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T58_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 1), TM__xOfksDa5lOpfO1acT4wYQg_25, NIM_FALSE);
			}
			LA55_: ;
			T59_ = NIM_NIL;
			T59_ = dollar___options_4370(output);
			openDefaultBrowser__pureZbrowsers_15(T59_);
		}
		break;
		default:
		{
			tyArray__nHXaesL0DJZHyVS07ARPRA T61_;
			NimStringDesc* T62_;
			nimZeroMem((void*)T61_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
			T61_[0] = reprEnum((NI)(*conf).cmd, (&NTIcommand__9bV9cjzU2RVpin7yQI1gAZgg_));
			T62_ = NIM_NIL;
			T62_ = nsuFormatOpenArray(((NimStringDesc*) &TM__xOfksDa5lOpfO1acT4wYQg_26), T61_, 1);
			liMessage__msgs_1128(conf, unknownLineInfo__lineinfos_284, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T62_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 1), TM__xOfksDa5lOpfO1acT4wYQg_27, NIM_FALSE);
		}
		break;
		}
	}
	LA25_: ;
	}BeforeRet_: ;
}
static N_INLINE(void, initStackBottomWith)(void* locals) {
	nimGC_setStackBottom(locals);
}

N_LIB_PRIVATE void PreMainInner(void) {
	atmdotdotatslibatspureatstimesdotnim_Init000();
	atmdotdotatslibatspureatsterminaldotnim_Init000();
	atmropesdotnim_Init000();
	atmastdotnim_Init000();
	atmsourcemapdotnim_Init000();
}

	N_LIB_PRIVATE int cmdCount;
	N_LIB_PRIVATE char** cmdLine;
	N_LIB_PRIVATE char** gEnv;
N_LIB_PRIVATE void PreMain(void) {
	void (*volatile inner)(void);
	inner = PreMainInner;
	atmdotdotatslibatssystematsiodotnim_DatInit000();
	atmdotdotatslibatssystemdotnim_DatInit000();
	initStackBottomWith((void *)&inner);
	atmdotdotatslibatssystemdotnim_Init000();
	atmdotdotatslibatspureatsstrutilsdotnim_DatInit000();
	atmdotdotatslibatsposixatsposixdotnim_DatInit000();
	atmdotdotatslibatspureatstimesdotnim_DatInit000();
	atmdotdotatslibatspureatsosdotnim_DatInit000();
	atmdotdotatslibatspureatsparseoptdotnim_DatInit000();
	atmdotdotatslibatspureatsstrtabsdotnim_DatInit000();
	atmdotdotatslibatspureatsterminaldotnim_DatInit000();
	atmropesdotnim_DatInit000();
	atmlineinfosdotnim_DatInit000();
	atmplatformdotnim_DatInit000();
	atmprefixmatchesdotnim_DatInit000();
	atmoptionsdotnim_DatInit000();
	atmwordrecgdotnim_DatInit000();
	atmidentsdotnim_DatInit000();
	atmastdotnim_DatInit000();
	atmllstreamdotnim_DatInit000();
	atmnimlexbasedotnim_DatInit000();
	atmlexerdotnim_DatInit000();
	atmrendererdotnim_DatInit000();
	atmdotdotatslibatspureatsstreamsdotnim_DatInit000();
	atmdotdotatslibatspureatsosprocdotnim_DatInit000();
	atmdotdotatslibatspureatslexbasedotnim_DatInit000();
	atmdotdotatslibatspureatsparsejsondotnim_DatInit000();
	atmdotdotatslibatspureatsjsondotnim_DatInit000();
	atmextccompdotnim_DatInit000();
	atmnimblecmddotnim_DatInit000();
	atmparserdotnim_DatInit000();
	atmsyntaxesdotnim_DatInit000();
	atmdotdotatslibatsstdatspackedsetsdotnim_DatInit000();
	atmastalgodotnim_DatInit000();
	atmdotdotatslibatspureatsmd5dotnim_DatInit000();
	atmicatsrodfilesdotnim_DatInit000();
	atmicatspacked_astdotnim_DatInit000();
	atmicatsicdotnim_DatInit000();
	atmmodulegraphsdotnim_DatInit000();
	atmtypesdotnim_DatInit000();
	atmvmdefdotnim_DatInit000();
	atmsemdatadotnim_DatInit000();
	atmlookupsdotnim_DatInit000();
	atmconceptsdotnim_DatInit000();
	atmsemtypinstdotnim_DatInit000();
	atmsigmatchdotnim_DatInit000();
	atmimporterdotnim_DatInit000();
	atmpragmasdotnim_DatInit000();
	atmreorderdotnim_DatInit000();
	atmguardsdotnim_DatInit000();
	atmvarpartitionsdotnim_DatInit000();
	atmnilcheckdotnim_DatInit000();
	atmsighashesdotnim_DatInit000();
	atmndidotnim_DatInit000();
	atmcgendatadotnim_DatInit000();
	atmlambdaliftingdotnim_DatInit000();
	atmclosureitersdotnim_DatInit000();
	atmtransfdotnim_DatInit000();
	atmvmgendotnim_DatInit000();
	atmvmmarshaldotnim_DatInit000();
	atmvmdotnim_DatInit000();
	atmpatternsdotnim_DatInit000();
	atmsemdotnim_DatInit000();
	atmdfadotnim_DatInit000();
	atminjectdestructorsdotnim_DatInit000();
	atmsemparalleldotnim_DatInit000();
	atmcgendotnim_DatInit000();
	atmscriptconfigdotnim_DatInit000();
	atmnimconfdotnim_DatInit000();
	atmpassauxdotnim_DatInit000();
	atmdependsdotnim_DatInit000();
	atmicatsdcedotnim_DatInit000();
	atmicatsintegritydotnim_DatInit000();
	atmsourcemapdotnim_DatInit000();
	atmjsgendotnim_DatInit000();
	atmdotdotatslibatspackagesatsdocutilsatsrstastdotnim_DatInit000();
	atmdotdotatslibatspackagesatsdocutilsatshighlitedotnim_DatInit000();
	atmdotdotatslibatspackagesatsdocutilsatsrstdotnim_DatInit000();
	atmdotdotatslibatspackagesatsdocutilsatsrstgendotnim_DatInit000();
	atmdocgendotnim_DatInit000();
	atmdocgen2dotnim_DatInit000();
	atmmaindotnim_DatInit000();
	atmcmdlinehelperdotnim_DatInit000();
	(*inner)();
}

N_LIB_PRIVATE N_CDECL(void, NimMainInner)(void) {
	NimMainModule();
}

N_CDECL(void, NimMain)(void) {
	void (*volatile inner)(void);
	PreMain();
	inner = NimMainInner;
	initStackBottomWith((void *)&inner);
	(*inner)();
}

int main(int argc, char** args, char** env) {
	cmdLine = args;
	cmdCount = argc;
	gEnv = env;
	NimMain();
	return nim_program_result;
}

N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void) {
{
	TFrame FR_; FR_.len = 0;

	nimRegisterGlobalMarker(TM__xOfksDa5lOpfO1acT4wYQg_2);

}/* preInitProc end */
{
	tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* T1_;
	GC_disableMarkAndSweep__system_2267();
	asgnRef((void**) (&conf__nim_119), newConfigRef__options_2333());
	T1_ = NIM_NIL;
	T1_ = newIdentCache__idents_161();
	handleCmdLine__nim_54(T1_, conf__nim_119);
	msgQuit__msgs_452(((NI8) ((((NI) 0) < (*conf__nim_119).errorCounter))));
}
}

