text: /* Generated by Nim Compiler v1.6.2 */
  #define NIM_INTBITS 32
  
  #include "nimbase.h"
  #include <string.h>
  #undef LANGUAGE_C
  #undef MIPSEB
  #undef MIPSEL
  #undef PPC
  #undef R3000
  #undef R4000
  #undef i386
  #undef linux
  #undef mips
  #undef near
  #undef far
  #undef powerpc
  #undef unix
  #define nimfr_(x, y)
  #define nimln_(x, y)
  typedef struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw;
  typedef struct tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ;
  typedef struct tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw;
  typedef struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw;
  typedef struct tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q;
  typedef struct tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w;
  typedef struct RootObj RootObj;
  typedef struct TNimType TNimType;
  typedef struct TNimNode TNimNode;
  typedef struct tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g;
  typedef struct tyObject_TType__facALICuu8zUj0hjvbTLFg tyObject_TType__facALICuu8zUj0hjvbTLFg;
  typedef struct tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA;
  typedef struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q;
  typedef struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA;
  typedef struct tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA;
  typedef struct tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA;
  typedef struct NimStringDesc NimStringDesc;
  typedef struct TGenericSeq TGenericSeq;
  typedef struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ;
  typedef struct tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A;
  typedef struct tyTuple__kN8up2W6YKc5YA9avn5mV5w tyTuple__kN8up2W6YKc5YA9avn5mV5w;
  typedef struct tyObject_Ctx__A9b2QU9aJFjQJmSPHiXNYt7g tyObject_Ctx__A9b2QU9aJFjQJmSPHiXNYt7g;
  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 NU16 tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw;
  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;
  NI align;
  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_ItemId__ozxAxZLHTQ9c3akTzYvt67g {
  NI32 module;
  NI32 item;
  };
  struct tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w {
    RootObj Sup;
  tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g itemId;
  };
  typedef NU8 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw;
  typedef NU16 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg;
  struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q {
  NU16 line;
  NI16 col;
  NI32 fileIndex;
  };
  typedef NU64 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw;
  typedef NU32 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg;
  typedef NU8 tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg;
  typedef NU8 tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw;
  typedef NU16 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA;
  struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA {
  tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg k;
  tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw storage;
  tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA flags;
  tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* lode;
  tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r;
  };
  struct tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ {
    tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w Sup;
  tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind;
  union{
  struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* gcUnsafetyReason;
  tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* transformedBody;
  } _kind_1;
  struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* guard;
  NI bitsize;
  NI alignment;
  } _kind_2;
  };
  tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic;
  tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
  tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* name;
  tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
  tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
  tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw flags;
  tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ast;
  tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
  NI position;
  NI offset;
  tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
  tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA* annex;
  tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* constraint;
  };
  typedef NU32 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg;
  typedef NU8 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw;
  struct TGenericSeq {
  NI len;
  NI reserved;
  };
  struct NimStringDesc {
    TGenericSeq Sup;
  NIM_CHAR data[SEQ_DECL_SIZE];
  };
  struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw {
  tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
  tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
  tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg flags;
  tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind;
  union{
  struct {NI64 intVal;
  } _kind_1;
  struct {NF floatVal;
  } _kind_2;
  struct {NimStringDesc* strVal;
  } _kind_3;
  struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
  } _kind_4;
  struct {tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* ident;
  } _kind_5;
  struct {tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* sons;
  } _kind_6;
  };
  };
  struct tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA {
  NI id;
  NimStringDesc* s;
  tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* next;
  NI h;
  };
  typedef NU8 tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag;
  typedef NU8 tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA;
  typedef NU64 tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
  struct tyObject_TType__facALICuu8zUj0hjvbTLFg {
    tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w Sup;
  tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind;
  tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA callConv;
  tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw flags;
  tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* sons;
  tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
  tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
  tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
  NI64 size;
  NI16 align;
  NI16 paddingAtEnd;
  NI16 lockLevel;
  tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
  tyObject_TType__facALICuu8zUj0hjvbTLFg* typeInst;
  tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g uniqueId;
  };
  typedef NU8 tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w;
  typedef NU8 tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw;
  struct tyTuple__kN8up2W6YKc5YA9avn5mV5w {
  NimStringDesc* Field0;
  NI Field1;
  NI Field2;
  };
  typedef NimStringDesc* tyArray__Re75IspeoxXy2oCZHwcRrA[2];
  typedef NU8 tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag[9];
  typedef NU8 tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
  struct tyObject_Ctx__A9b2QU9aJFjQJmSPHiXNYt7g {
  tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* partialParam;
  tyObject_TType__facALICuu8zUj0hjvbTLFg* objType;
  tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache;
  tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen;
  };
  typedef tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tyArray__jlWPjgtbdjE069arIWHC9c9bg[1];
  typedef NU8 tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw;
  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__SPr7N6UKfuF549bNPiUvSRw[256];
  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__SPr7N6UKfuF549bNPiUvSRw 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 tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ {
    TGenericSeq Sup;
    tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
  };
  struct tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A {
    TGenericSeq Sup;
    tyObject_TType__facALICuu8zUj0hjvbTLFg* data[SEQ_DECL_SIZE];
  };
  N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getPragmaVal__pragmas_95)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* procAst, tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw name);
  N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, lookupParam__liftlocals_59)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* params, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest);
  static N_INLINE(NI, len__ast_3198)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
  N_LIB_PRIVATE N_NOINLINE(void, liMessage__msgs_1118)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msg, NimStringDesc* arg, tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw eh, tyTuple__kN8up2W6YKc5YA9avn5mV5w info2, NIM_BOOL isRaw);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatOpenArray)(NimStringDesc* formatstr, NimStringDesc** a, NI aLen_0);
  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(NimStringDesc*, dollar___renderer_2106)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
  N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, skipTypes__ast_3735)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kinds);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatSingleElem)(NimStringDesc* formatstr, NimStringDesc* a);
  N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newTree__ast_3392)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** children, NI childrenLen_0);
  N_LIB_PRIVATE N_NIMCALL(void, liftLocals__liftlocals_47)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI i, tyObject_Ctx__A9b2QU9aJFjQJmSPHiXNYt7g* c);
  static N_INLINE(NIM_BOOL, interestingVar__liftlocals_17)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
  N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lookupOrAdd__liftlocals_28)(tyObject_Ctx__A9b2QU9aJFjQJmSPHiXNYt7g* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
  N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, addUniqueField__lowerings_443)(tyObject_TType__facALICuu8zUj0hjvbTLFg* obj, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen);
  N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeI__ast_3356)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
  static N_INLINE(void, asgnRef)(void** dest, void* src);
  static N_INLINE(void, incRef__system_5308)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
  static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
  static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5270)(void* usr);
  static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
  static N_INLINE(void, decRef__system_5315)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
  static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
  static N_INLINE(void, rtlAddZCT__system_5313)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
  N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5264)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
  N_LIB_PRIVATE N_NIMCALL(void, add__ast_4797)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* son);
  N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newSymNode__ast_3719)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
  N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newSymNode__ast_3716)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym);
  static N_INLINE(NI, safeLen__ast_3191)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
  STRING_LITERAL(TM__xMgMWEFctBTF9b4zdqZ9bcYg_2, "\'$1\' is not a parameter of \'$2\'", 31);
  STRING_LITERAL(TM__xMgMWEFctBTF9b4zdqZ9bcYg_4, "/home/runner/work/nightlies/nightlies/nim/compiler/liftlocals.nim", 65);
  static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__xMgMWEFctBTF9b4zdqZ9bcYg_3 = {((NimStringDesc*) &TM__xMgMWEFctBTF9b4zdqZ9bcYg_4),
  ((NI) 63),
  ((NI) 14)}
  ;
  static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__xMgMWEFctBTF9b4zdqZ9bcYg_5 = {
  0x10, 0xa9, 0xe0, 0x00, 0x00, 0xe0, 0x80, 0x00,
  0x00}
  ;
  STRING_LITERAL(TM__xMgMWEFctBTF9b4zdqZ9bcYg_6, "parameter \'$1\' is not a pointer to a partial object", 51);
  static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__xMgMWEFctBTF9b4zdqZ9bcYg_7 = {((NimStringDesc*) &TM__xMgMWEFctBTF9b4zdqZ9bcYg_4),
  ((NI) 68),
  ((NI) 14)}
  ;
  extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__system_5217;
  static N_INLINE(NI, len__ast_3198)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
  	NI result;
  	NI T1_;
  	result = (NI)0;
  	T1_ = ((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0);
  	result = T1_;
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, lookupParam__liftlocals_59)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* params, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest) {
  	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* result;
  {	result = NIM_NIL;
  	{
  		if (!!(((*dest).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2)))) goto LA3_;
  		result = ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL);
  		goto BeforeRet_;
  	}
  	LA3_: ;
  	{
  		NI i;
  		NI colontmp_;
  		NI i_2;
  		i = (NI)0;
  		colontmp_ = (NI)0;
  		colontmp_ = len__ast_3198(params);
  		i_2 = ((NI) 1);
  		{
  			while (1) {
  				if (!(i_2 < colontmp_)) goto LA7;
  				i = i_2;
  				{
  					NIM_BOOL T10_;
  					T10_ = (NIM_BOOL)0;
  					T10_ = ((*(*params)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
  					if (!(T10_)) goto LA11_;
  					T10_ = ((*(*(*(*params)._kind_6.sons->data[i])._kind_4.sym).name).id == (*(*dest)._kind_5.ident).id);
  					LA11_: ;
  					if (!T10_) goto LA12_;
  					result = (*(*params)._kind_6.sons->data[i])._kind_4.sym;
  					goto BeforeRet_;
  				}
  				LA12_: ;
  				i_2 += ((NI) 1);
  			} LA7: ;
  		}
  	}
  	}BeforeRet_: ;
  	return result;
  }
  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(NIM_BOOL, interestingVar__liftlocals_17)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s) {
  	NIM_BOOL result;
  	NIM_BOOL T1_;
  	result = (NIM_BOOL)0;
  	T1_ = (NIM_BOOL)0;
  	T1_ = ((2100000 &((NU32)1<<((NU)((*s).kind)&31U)))!=0);
  	if (!(T1_)) goto LA2_;
  	T1_ = !((((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0));
  	LA2_: ;
  	result = T1_;
  	return result;
  }
  static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
  	NI result;
  	result = (NI)0;
  	result = ((NI) ((NU)((NU32)(((NU) (x))) + (NU32)(((NU) (y))))));
  	return result;
  }
  static N_INLINE(void, incRef__system_5308)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* 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)((NU32)(((NU) (x))) - (NU32)(((NU) (y))))));
  	return result;
  }
  static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5270)(void* usr) {
  	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
  	NI T1_;
  	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
  	T1_ = (NI)0;
  	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 8));
  	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
  	return result;
  }
  static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
  	NIM_BOOL result;
  	result = (NIM_BOOL)0;
  	result = ((NU32)(((NU) (x))) < (NU32)(((NU) (y))));
  	return result;
  }
  static N_INLINE(void, rtlAddZCT__system_5313)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
  	addZCT__system_5264((&gch__system_5217.zct), c);
  }
  static N_INLINE(void, decRef__system_5315)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* 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_5313(c);
  	}
  	LA4_: ;
  }
  static N_INLINE(void, asgnRef)(void** dest, void* src) {
  	{
  		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
  		if (!!((src == NIM_NIL))) goto LA3_;
  		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
  		T5_ = usrToCell__system_5270(src);
  		incRef__system_5308(T5_);
  	}
  	LA3_: ;
  	{
  		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
  		if (!!(((*dest) == NIM_NIL))) goto LA8_;
  		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
  		T10_ = usrToCell__system_5270((*dest));
  		decRef__system_5315(T10_);
  	}
  	LA8_: ;
  	(*dest) = src;
  }
  N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lookupOrAdd__liftlocals_28)(tyObject_Ctx__A9b2QU9aJFjQJmSPHiXNYt7g* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
  	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
  	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* field;
  	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* deref;
  	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
  	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
  	result = NIM_NIL;
  	field = addUniqueField__lowerings_443((*c).objType, s, (*c).cache, (*c).idgen);
  	deref = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65), info);
  	asgnRef((void**) (&(*deref).typ), (*c).objType);
  	T1_ = NIM_NIL;
  	T1_ = newSymNode__ast_3719((*c).partialParam, info);
  	add__ast_4797(deref, T1_);
  	result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45), info);
  	add__ast_4797(result, deref);
  	T2_ = NIM_NIL;
  	T2_ = newSymNode__ast_3716(field);
  	add__ast_4797(result, T2_);
  	asgnRef((void**) (&(*result).typ), (*field).typ);
  	return result;
  }
  static N_INLINE(NI, safeLen__ast_3191)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
  	NI result;
  	result = (NI)0;
  	{
  		if (!((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 0) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA3_;
  		result = ((NI) 0);
  	}
  	goto LA1_;
  	LA3_: ;
  	{
  		result = len__ast_3198(n);
  	}
  	LA1_: ;
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(void, liftLocals__liftlocals_47)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI i, tyObject_Ctx__A9b2QU9aJFjQJmSPHiXNYt7g* c) {
  	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
  	it = (*n)._kind_6.sons->data[i];
  	switch ((*it).kind) {
  	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
  	{
  		{
  			NIM_BOOL T4_;
  			T4_ = (NIM_BOOL)0;
  			T4_ = interestingVar__liftlocals_17((*it)._kind_4.sym);
  			if (!T4_) goto LA5_;
  			asgnRef((void**) (&(*n)._kind_6.sons->data[i]), lookupOrAdd__liftlocals_28(c, (*it)._kind_4.sym, (*it).info));
  		}
  		LA5_: ;
  	}
  	break;
  	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
  	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98):
  	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 123):
  	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 122):
  	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 81):
  	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84):
  	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159):
  	{
  	}
  	break;
  	default:
  	{
  		{
  			NI i_2;
  			NI colontmp_;
  			NI i_3;
  			i_2 = (NI)0;
  			colontmp_ = (NI)0;
  			colontmp_ = safeLen__ast_3191(it);
  			i_3 = ((NI) 0);
  			{
  				while (1) {
  					if (!(i_3 < colontmp_)) goto LA11;
  					i_2 = i_3;
  					liftLocals__liftlocals_47(it, i_2, c);
  					i_3 += ((NI) 1);
  				} LA11: ;
  			}
  		}
  	}
  	break;
  	}
  }
  N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, liftLocalsIfRequested__liftlocals_82)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* prc, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen) {
  	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
  	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* liftDest;
  	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* partialParam;
  	tyObject_TType__facALICuu8zUj0hjvbTLFg* objType;
  	tyObject_Ctx__A9b2QU9aJFjQJmSPHiXNYt7g c;
  	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* w;
  	tyArray__jlWPjgtbdjE069arIWHC9c9bg T19_;
  {	result = NIM_NIL;
  	liftDest = getPragmaVal__pragmas_95((*prc).ast, ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 224));
  	{
  		if (!(liftDest == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA3_;
  		result = n;
  		goto BeforeRet_;
  	}
  	LA3_: ;
  	partialParam = lookupParam__liftlocals_59((*(*prc).typ).n, liftDest);
  	{
  		tyArray__Re75IspeoxXy2oCZHwcRrA T9_;
  		NimStringDesc* T10_;
  		if (!(partialParam == 0)) goto LA7_;
  		nimZeroMem((void*)T9_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
  		T9_[0] = dollar___renderer_2106(liftDest);
  		T9_[1] = copyString((*(*prc).name).s);
  		T10_ = NIM_NIL;
  		T10_ = nsuFormatOpenArray(((NimStringDesc*) &TM__xMgMWEFctBTF9b4zdqZ9bcYg_2), T9_, 2);
  		liMessage__msgs_1118(conf, (*liftDest).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), T10_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__xMgMWEFctBTF9b4zdqZ9bcYg_3, NIM_FALSE);
  		result = n;
  		goto BeforeRet_;
  	}
  	LA7_: ;
  	objType = skipTypes__ast_3735((*partialParam).typ, TM__xMgMWEFctBTF9b4zdqZ9bcYg_5);
  	{
  		NIM_BOOL T13_;
  		NimStringDesc* T17_;
  		NimStringDesc* T18_;
  		T13_ = (NIM_BOOL)0;
  		T13_ = !(((*objType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17)));
  		if (T13_) goto LA14_;
  		T13_ = !((((*objType).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 16))&63U)))!=0));
  		LA14_: ;
  		if (!T13_) goto LA15_;
  		T17_ = NIM_NIL;
  		T17_ = dollar___renderer_2106(liftDest);
  		T18_ = NIM_NIL;
  		T18_ = nsuFormatSingleElem(((NimStringDesc*) &TM__xMgMWEFctBTF9b4zdqZ9bcYg_6), T17_);
  		liMessage__msgs_1118(conf, (*liftDest).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), T18_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__xMgMWEFctBTF9b4zdqZ9bcYg_7, NIM_FALSE);
  		result = n;
  		goto BeforeRet_;
  	}
  	LA15_: ;
  	nimZeroMem((void*)(&c), sizeof(tyObject_Ctx__A9b2QU9aJFjQJmSPHiXNYt7g));
  	nimZeroMem((void*)(&c), sizeof(tyObject_Ctx__A9b2QU9aJFjQJmSPHiXNYt7g));
  	c.partialParam = partialParam;
  	c.objType = objType;
  	c.cache = cache;
  	c.idgen = idgen;
  	nimZeroMem((void*)T19_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
  	T19_[0] = n;
  	w = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T19_, 1);
  	liftLocals__liftlocals_47(w, ((NI) 0), (&c));
  	result = (*w)._kind_6.sons->data[((NI) 0)];
  	}BeforeRet_: ;
  	return result;
  }
  