/* Generated by Nim Compiler v1.4.2 */
/*   (c) 2020 Andreas Rumpf */
/* The generated code is subject to the original license. */
#define NIM_INTBITS 32
#define NIM_EmulateOverflowChecks

/* section: NIM_merge_HEADERS */

#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

/* section: NIM_merge_FRAME_DEFINES */
#define nimfr_(x, y)
#define nimln_(x, y)

/* section: NIM_merge_FORWARD_TYPES */
typedef struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw;
typedef struct tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ;
typedef struct tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w;
typedef struct tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA;
typedef struct RootObj RootObj;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tySequence__Ef05srmQTDulnBdXR4Ja6Q tySequence__Ef05srmQTDulnBdXR4Ja6Q;
typedef struct tySequence__DXS6mEo7PVUFJkirsQ9bNQA tySequence__DXS6mEo7PVUFJkirsQ9bNQA;
typedef struct tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA;
typedef struct tySequence__DfgJFJEYoj4YBAHLZPl5lQ tySequence__DfgJFJEYoj4YBAHLZPl5lQ;
typedef struct tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ;
typedef struct tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA;
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 tySequence__MvZmat48bhe9b6x9aUD58D5Q tySequence__MvZmat48bhe9b6x9aUD58D5Q;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ;
typedef struct tyObject_Con__mVYRtnERc9advo79cBQUudxg tyObject_Con__mVYRtnERc9advo79cBQUudxg;
typedef struct tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ;
typedef struct tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg;
typedef struct tyObject_Trunk__ul49aWfv9aes8cutmeltT3gQ tyObject_Trunk__ul49aWfv9aes8cutmeltT3gQ;
typedef struct tySequence__9brg1xNurxcus33lU4IE1Dw tySequence__9brg1xNurxcus33lU4IE1Dw;
typedef struct tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg;
typedef struct tyObject_Table__fdKWDDO1P17zvuQPReVgRA tyObject_Table__fdKWDDO1P17zvuQPReVgRA;
typedef struct tySequence__fdmz6VkIf1ewwrssKYqRFg tySequence__fdmz6VkIf1ewwrssKYqRFg;
typedef struct tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ;
typedef struct tySequence__kxu4GK0onha2t9bo86mdVAg tySequence__kxu4GK0onha2t9bo86mdVAg;
typedef struct tySequence__48JTohSgTy339bRxHzUD8KA tySequence__48JTohSgTy339bRxHzUD8KA;
typedef struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw;
typedef struct tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw;
typedef struct tySequence__bWZXqEvLFwhLvAqSRoFNgQ tySequence__bWZXqEvLFwhLvAqSRoFNgQ;
typedef struct tyObject_IncrementalCtx__sdH7TnbKACuAzE7DBabnCA tyObject_IncrementalCtx__sdH7TnbKACuAzE7DBabnCA;
typedef struct tyObject_Table__IioUJGdqPI6xC7S7QF8MBw tyObject_Table__IioUJGdqPI6xC7S7QF8MBw;
typedef struct tySequence__Qr6E8eH7btq79cFKGaJfGLw tySequence__Qr6E8eH7btq79cFKGaJfGLw;
typedef struct tyObject_Table__G1v8c16HePOldLeucwe05Q tyObject_Table__G1v8c16HePOldLeucwe05Q;
typedef struct tySequence__fIB1rTQ55aFonoft9a9bmljQ tySequence__fIB1rTQ55aFonoft9a9bmljQ;
typedef struct tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA;
typedef struct tySequence__23SMqauuRsbDANhthj9bWlA tySequence__23SMqauuRsbDANhthj9bWlA;
typedef struct tyObject_Table__NttoEzoiq5CiphZe81oadg tyObject_Table__NttoEzoiq5CiphZe81oadg;
typedef struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA tySequence__squ9b9bUH4OLHf6cEMrt6hVA;
typedef struct tyObject_Table__nagDFX4QHx0s6Fvma9blmSg tyObject_Table__nagDFX4QHx0s6Fvma9blmSg;
typedef struct tySequence__pHNq3oXj9av2sEUdqaqeZjw tySequence__pHNq3oXj9av2sEUdqaqeZjw;
typedef struct tySequence__PzqTLBFNawCGiqTk0UORYw tySequence__PzqTLBFNawCGiqTk0UORYw;
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 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__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tySequence__pK3qSsBZwdXd6qyUMkd5Jw tySequence__pK3qSsBZwdXd6qyUMkd5Jw;
typedef struct tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ;
typedef struct tyObject_ProfileDatacolonObjectType___rPBBfFL4X0b9cQ6rfMNPXig tyObject_ProfileDatacolonObjectType___rPBBfFL4X0b9cQ6rfMNPXig;
typedef struct tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ;
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__kN8up2W6YKc5YA9avn5mV5w tyTuple__kN8up2W6YKc5YA9avn5mV5w;
typedef struct tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA;
typedef struct tyTuple__zwpS6d6iewrdlBSTNFoyVA tyTuple__zwpS6d6iewrdlBSTNFoyVA;
typedef struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q;
typedef struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ tyTuple__xDU9bZmv1ZbZkJDaATBekIQ;
typedef struct tyTuple__quA39a2QdEQU9cSEIUSibApQ tyTuple__quA39a2QdEQU9cSEIUSibApQ;
typedef struct tyTuple__EkGTYRWQ6y9cppXTlT8Xm5g tyTuple__EkGTYRWQ6y9cppXTlT8Xm5g;
typedef struct tyTuple__OJFzEczluV8Jmo9bRpBfkzw tyTuple__OJFzEczluV8Jmo9bRpBfkzw;
typedef struct tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw;
typedef struct tyTuple__F3gkSrMB1qp2Tvf9bixVXwg tyTuple__F3gkSrMB1qp2Tvf9bixVXwg;
typedef struct tyTuple__wcNatyuf8WOqAhGLhSvgiw tyTuple__wcNatyuf8WOqAhGLhSvgiw;
typedef struct tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg;
typedef struct tyObject_NodecolonObjectType___dNELmBSmY7nthjhZupWO6g tyObject_NodecolonObjectType___dNELmBSmY7nthjhZupWO6g;
typedef struct tyTuple__euPCXX9bc3XzndEhYlqNS7g tyTuple__euPCXX9bc3XzndEhYlqNS7g;
typedef struct tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w;
typedef struct tyTuple__z822nu9bFF1AlQnLrHjdwpA tyTuple__z822nu9bFF1AlQnLrHjdwpA;
typedef struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw tyTuple__xYhUhS7X82rKTqbT9bRfCnw;
typedef struct tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw;
typedef struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw tyTuple__QeWl6B6ffS4pU6WWrtcrDw;
typedef struct tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg;

/* section: NIM_merge_TYPES */
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_TIdObj__iIXPrEsiKHiioLj0HSkQhA {
  RootObj Sup;
NI id;
};
typedef NU8 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw;
struct tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA {
NI counter;
tySequence__DfgJFJEYoj4YBAHLZPl5lQ* data;
};
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__JpsEh5i1AcKChGYbg7aV4w {
  tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA Sup;
tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind;
union{
struct {tySequence__Ef05srmQTDulnBdXR4Ja6Q* typeInstCache;
} _kind_1;
struct {tySequence__DXS6mEo7PVUFJkirsQ9bNQA* procInstCache;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* gcUnsafetyReason;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* transformedBody;
} _kind_2;
struct {tySequence__DXS6mEo7PVUFJkirsQ9bNQA* usedGenerics;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA tab;
} _kind_3;
struct {tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* guard;
NI bitsize;
NI alignment;
} _kind_4;
};
tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic;
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* name;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* 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 NU8 tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw;
typedef NU8 tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag;
typedef NU8 tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA;
typedef NU64 tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
typedef tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* tyArray__PsPyPA45AAjHu4uDGHNjTg[6];
struct tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ {
  tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA Sup;
tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind;
tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA callConv;
tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw flags;
tySequence__Ef05srmQTDulnBdXR4Ja6Q* sons;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym;
tyArray__PsPyPA45AAjHu4uDGHNjTg attachedOps;
tySequence__MvZmat48bhe9b6x9aUD58D5Q* methods;
NI64 size;
NI16 align;
NI16 paddingAtEnd;
NI16 lockLevel;
tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typeInst;
NI uniqueId;
};
typedef NU8 tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
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__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* 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__JpsEh5i1AcKChGYbg7aV4w* sym;
} _kind_4;
struct {tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* ident;
} _kind_5;
struct {tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* sons;
} _kind_6;
};
NimStringDesc* comment;
};
typedef NI tyArray__emiAJ8okywrJw7ZHLzlXbQ[34];
struct tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg {
NI elems;
NI counter;
NI max;
tyObject_Trunk__ul49aWfv9aes8cutmeltT3gQ* head;
tySequence__9brg1xNurxcus33lU4IE1Dw* data;
tyArray__emiAJ8okywrJw7ZHLzlXbQ a;
};
struct tyObject_Con__mVYRtnERc9advo79cBQUudxg {
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner;
tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ* g;
tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* otherRead;
NI inLoop;
NI inSpawn;
NI inLoopCond;
tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg uninit;
NIM_BOOL uninitComputed;
};
typedef NU8 tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ;
struct tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg {
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ kind;
union{
NI dest;
};
};
struct tyObject_Table__fdKWDDO1P17zvuQPReVgRA {
tySequence__fdmz6VkIf1ewwrssKYqRFg* data;
NI counter;
};
struct tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ {
tySequence__kxu4GK0onha2t9bo86mdVAg* data;
NI counter;
};
typedef struct {
N_NIMCALL_PTR(NIM_BOOL, ClP_0) (void* ClE_0);
void* ClE_0;
} tyProc__In3g79a0qTcRmbTbJp9ba9ctg;
typedef tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* tyArray__OLX364rHC66WkzRbMp49aQg[64];
typedef tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* tyArray__6GDJmNRiFxkWAAdMgUie8g[70];
struct tyObject_IncrementalCtx__sdH7TnbKACuAzE7DBabnCA {
char dummy;
};
struct tyObject_Table__IioUJGdqPI6xC7S7QF8MBw {
tySequence__Qr6E8eH7btq79cFKGaJfGLw* data;
NI counter;
};
struct tyObject_Table__G1v8c16HePOldLeucwe05Q {
tySequence__fIB1rTQ55aFonoft9a9bmljQ* data;
NI counter;
};
typedef N_NIMCALL_PTR(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, tyProc__c6vdo1yHyj19b9bS17tijS2w) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* m, NI32 fileIdx);
typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__d5yEkT9aXkAtHvVerr7IeCQ) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* m, NI32 fileIdx);
typedef N_NIMCALL_PTR(void, tyProc__sP1I7TbCn358eLy9bX4IphA) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
struct tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA {
tySequence__23SMqauuRsbDANhthj9bWlA* data;
NI counter;
};
struct tyObject_Table__NttoEzoiq5CiphZe81oadg {
tySequence__squ9b9bUH4OLHf6cEMrt6hVA* data;
NI counter;
};
struct tyObject_Table__nagDFX4QHx0s6Fvma9blmSg {
tySequence__pHNq3oXj9av2sEUdqaqeZjw* data;
NI counter;
};
typedef N_NIMCALL_PTR(void, tyProc__R9aa9aO9cNhvWgTGK9bAAvuSRA) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__3TeLOx1euAsRk3YCaQCuPg) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* formal, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* actual);
struct tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ {
tySequence__DfgJFJEYoj4YBAHLZPl5lQ* modules;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA packageSyms;
tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg deps;
tyObject_Table__fdKWDDO1P17zvuQPReVgRA importDeps;
NIM_BOOL suggestMode;
NIM_BOOL invalidTransitiveClosure;
tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ inclToMod;
tySequence__48JTohSgTy339bRxHzUD8KA* importStack;
RootObj* backend;
tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config;
tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache;
RootObj* vm;
tyProc__In3g79a0qTcRmbTbJp9ba9ctg doStopCompile;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* usageSym;
tySequence__DfgJFJEYoj4YBAHLZPl5lQ* owners;
tySequence__bWZXqEvLFwhLvAqSRoFNgQ* methods;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* systemModule;
tyArray__OLX364rHC66WkzRbMp49aQg sysTypes;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA compilerprocs;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA exposed;
tyArray__6GDJmNRiFxkWAAdMgUie8g intTypeCache;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* opContains;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* opNot;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* emptyNode;
tyObject_IncrementalCtx__sdH7TnbKACuAzE7DBabnCA incr;
tyObject_Table__IioUJGdqPI6xC7S7QF8MBw canonTypes;
tyObject_Table__G1v8c16HePOldLeucwe05Q symBodyHashes;
tyProc__c6vdo1yHyj19b9bS17tijS2w importModuleCallback;
tyProc__d5yEkT9aXkAtHvVerr7IeCQ includeFileCallback;
tyProc__sP1I7TbCn358eLy9bX4IphA recordStmt;
tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA cacheSeqs;
tyObject_Table__NttoEzoiq5CiphZe81oadg cacheCounters;
tyObject_Table__nagDFX4QHx0s6Fvma9blmSg cacheTables;
tySequence__PzqTLBFNawCGiqTk0UORYw* passes;
tyProc__R9aa9aO9cNhvWgTGK9bAAvuSRA onDefinition;
tyProc__R9aa9aO9cNhvWgTGK9bAAvuSRA onDefinitionResolveForward;
tyProc__R9aa9aO9cNhvWgTGK9bAAvuSRA onUsage;
tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* globalDestructors;
tyProc__sP1I7TbCn358eLy9bX4IphA strongSemCheck;
tyProc__3TeLOx1euAsRk3YCaQCuPg compatibleProps;
};
typedef NU8 tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g;
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 NU64 tySet_tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw;
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_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ;
typedef NU8 tyEnum_SymbolFilesOption__gBES9bqm1ru9ape8SeMRAFgQ;
struct tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg {
tySequence__4eRCaZmrYLLw2k30GPTiMw* data;
NI counter;
};
typedef NU16 tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ;
typedef NU8 tySet_tyEnum_LegacyFeature__hGCD9aOrxPvpXn4Ne6W6OVA;
typedef NU8 tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ;
typedef NU8 tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA;
typedef NU8 tySet_tyEnum_TMsgKind__6kx5ul0BSa9aHxHPGwkvVHg[9];
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* result, void* ClE_0);
void* ClE_0;
} tyProc__YD0MR9bJ2x4beJkZdnjXN9cA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (NimStringDesc* output, void* ClE_0);
void* ClE_0;
} tyProc__k2HFjxisIgDALbEUFojxaQ;
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__oL9coyIA2VDTGdUcur9aL9bew;
struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw {
tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g backend;
tyObject_Target__9abOl5DLX8suLujOaHSvGzw target;
NI linesCompiled;
tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
tySet_tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw globalOptions;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* macrosToExpand;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* arcToExpand;
tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A m;
NI evalTemplateCounter;
NI evalMacroCounter;
NI8 exitcode;
tyEnum_TCommands__VH3ghgQVwLSg3krOAoXigw cmd;
tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw selectedGC;
tyEnum_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ exc;
NI verbosity;
NI numberOfProcessors;
NimStringDesc* evalExpr;
NF lastCmdTime;
tyEnum_SymbolFilesOption__gBES9bqm1ru9ape8SeMRAFgQ symbolFiles;
tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg cppDefines;
NimStringDesc* headerFile;
tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ features;
tySet_tyEnum_LegacyFeature__hGCD9aOrxPvpXn4Ne6W6OVA legacyFeatures;
NimStringDesc* arguments;
tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ ideCmd;
NIM_BOOL oldNewlines;
tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA cCompiler;
tySet_tyEnum_TMsgKind__6kx5ul0BSa9aHxHPGwkvVHg modifiedyNotes;
tySet_tyEnum_TMsgKind__6kx5ul0BSa9aHxHPGwkvVHg cmdlineNotes;
tySet_tyEnum_TMsgKind__6kx5ul0BSa9aHxHPGwkvVHg foreignPackageNotes;
tySet_tyEnum_TMsgKind__6kx5ul0BSa9aHxHPGwkvVHg notes;
tySet_tyEnum_TMsgKind__6kx5ul0BSa9aHxHPGwkvVHg warningAsErrors;
tySet_tyEnum_TMsgKind__6kx5ul0BSa9aHxHPGwkvVHg mainPackageNotes;
NI mainPackageId;
NI errorCounter;
NI hintCounter;
NI warnCounter;
NI errorMax;
NI maxLoopIterationsVM;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* configVars;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* symbols;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* packageCache;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* nimblePaths;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* searchPaths;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* lazyPaths;
NimStringDesc* outFile;
NimStringDesc* outDir;
NimStringDesc* jsonBuildFile;
NimStringDesc* prefixDir;
NimStringDesc* libpath;
NimStringDesc* nimcacheDir;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* dllOverrides;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* moduleOverrides;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* cfileSpecificOptions;
NimStringDesc* projectName;
NimStringDesc* projectPath;
NimStringDesc* projectFull;
NIM_BOOL projectIsStdin;
NIM_BOOL 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* 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__YD0MR9bJ2x4beJkZdnjXN9cA suggestionResultHook;
NI suggestVersion;
NI suggestMaxResults;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q lastLineInfo;
tyProc__k2HFjxisIgDALbEUFojxaQ writelnHook;
tyProc__oL9coyIA2VDTGdUcur9aL9bew structuredErrorHook;
NimStringDesc* cppCustomNamespace;
tyObject_ProfileDatacolonObjectType___rPBBfFL4X0b9cQ6rfMNPXig* vmProfileData;
};
typedef NU8 tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg;
struct tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ {
tySequence__DfgJFJEYoj4YBAHLZPl5lQ* vars;
tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* wasMoved;
tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* final;
NIM_BOOL needsTry;
tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* parent;
};
typedef NU8 tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw;
typedef NU8 tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw[21];
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;
};
typedef tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tyArray__T6RKPw8xfAeNaoei9aZGzXg[3];
typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
typedef NU8 tyEnum_InstrTargetKind__jS7zjwSSXtKIkBLJzNXXAQ;
typedef tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tyArray__AB6yfoUgfWM2NtGe9bzkCmw[2];
typedef NU64 tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag;
typedef NU8 tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg;
typedef NU8 tyArray__qtqsWM5aXmcpMIVmvq3kAA[16];
typedef NU8 tySet_tyEnum_ConsiderFlag__9a9az8WnKmq9bvt8EXoSUES7g;
typedef NU8 tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w;
typedef NU8 tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw;
struct tyTuple__kN8up2W6YKc5YA9avn5mV5w {
NimStringDesc* Field0;
NI Field1;
NI Field2;
};
typedef NimStringDesc* tyArray__JXkBzVsE9bvmcpuZvrueLVg[6];
typedef NU8 tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw;
typedef NU16 tySet_tyEnum_TRenderFlag__wrPgUo1ExBlHvFnXN2nSHw;
struct tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA {
  tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA Sup;
NimStringDesc* s;
tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* next;
NI h;
};
typedef NU8 tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw;
typedef tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tyArray__jlWPjgtbdjE069arIWHC9c9bg[1];
typedef NimStringDesc* tyArray__Re75IspeoxXy2oCZHwcRrA[2];
typedef NimStringDesc* tyArray__nHXaesL0DJZHyVS07ARPRA[1];
typedef tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tyArray__cypz0nHJsd9cnKgpO7fP5hQ[1];
struct tyTuple__zwpS6d6iewrdlBSTNFoyVA {
NI Field0;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* Field1;
};
struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q {
NI Field0;
NI32 Field1;
tySequence__48JTohSgTy339bRxHzUD8KA* Field2;
};
struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ {
NI Field0;
NI32 Field1;
NI32 Field2;
};
struct tyTuple__quA39a2QdEQU9cSEIUSibApQ {
tySequence__DfgJFJEYoj4YBAHLZPl5lQ* Field0;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* Field1;
};
struct tyTuple__EkGTYRWQ6y9cppXTlT8Xm5g {
NI Field0;
tyArray__qtqsWM5aXmcpMIVmvq3kAA Field1;
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* Field2;
};
struct tyTuple__OJFzEczluV8Jmo9bRpBfkzw {
NI Field0;
NI Field1;
tyArray__qtqsWM5aXmcpMIVmvq3kAA Field2;
};
struct tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw {
NI Field0;
NimStringDesc* Field1;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* Field2;
};
struct tyTuple__F3gkSrMB1qp2Tvf9bixVXwg {
NI Field0;
NimStringDesc* Field1;
NI64 Field2;
};
struct tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg {
tyObject_NodecolonObjectType___dNELmBSmY7nthjhZupWO6g* root;
NI entries;
};
struct tyTuple__wcNatyuf8WOqAhGLhSvgiw {
NI Field0;
NimStringDesc* Field1;
tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg Field2;
};
typedef N_NIMCALL_PTR(tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w*, tyProc__8ooe5vdoqmvpHnfXV29bP3w) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* module);
typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__A7Sdoem70tRxSEmKrf9cmyg) (tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* topLevelStmt);
typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__EAEKmBUgKFg29agoUGtzDEQ) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
struct tyTuple__euPCXX9bc3XzndEhYlqNS7g {
tyProc__8ooe5vdoqmvpHnfXV29bP3w Field0;
tyProc__A7Sdoem70tRxSEmKrf9cmyg Field1;
tyProc__EAEKmBUgKFg29agoUGtzDEQ Field2;
NIM_BOOL Field3;
};
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;
NimStringDesc* customArgs;
};

/* section: NIM_merge_SEQ_TYPES */
struct tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ {
  TGenericSeq Sup;
  tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg data[SEQ_DECL_SIZE];
};
struct tySequence__DfgJFJEYoj4YBAHLZPl5lQ {
  TGenericSeq Sup;
  tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* data[SEQ_DECL_SIZE];
};
struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ {
  TGenericSeq Sup;
  tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
};
struct tySequence__Ef05srmQTDulnBdXR4Ja6Q {
  TGenericSeq Sup;
  tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* data[SEQ_DECL_SIZE];
};
struct tySequence__DXS6mEo7PVUFJkirsQ9bNQA {
  TGenericSeq Sup;
  tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA* data[SEQ_DECL_SIZE];
};
struct tySequence__MvZmat48bhe9b6x9aUD58D5Q {
  TGenericSeq Sup;
  tyTuple__zwpS6d6iewrdlBSTNFoyVA data[SEQ_DECL_SIZE];
};
struct tySequence__9brg1xNurxcus33lU4IE1Dw {
  TGenericSeq Sup;
  tyObject_Trunk__ul49aWfv9aes8cutmeltT3gQ* data[SEQ_DECL_SIZE];
};
struct tySequence__48JTohSgTy339bRxHzUD8KA {
  TGenericSeq Sup;
  NI32 data[SEQ_DECL_SIZE];
};
struct tySequence__fdmz6VkIf1ewwrssKYqRFg {
  TGenericSeq Sup;
  tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q data[SEQ_DECL_SIZE];
};
struct tySequence__kxu4GK0onha2t9bo86mdVAg {
  TGenericSeq Sup;
  tyTuple__xDU9bZmv1ZbZkJDaATBekIQ data[SEQ_DECL_SIZE];
};
struct tySequence__bWZXqEvLFwhLvAqSRoFNgQ {
  TGenericSeq Sup;
  tyTuple__quA39a2QdEQU9cSEIUSibApQ data[SEQ_DECL_SIZE];
};
struct tySequence__Qr6E8eH7btq79cFKGaJfGLw {
  TGenericSeq Sup;
  tyTuple__EkGTYRWQ6y9cppXTlT8Xm5g data[SEQ_DECL_SIZE];
};
struct tySequence__fIB1rTQ55aFonoft9a9bmljQ {
  TGenericSeq Sup;
  tyTuple__OJFzEczluV8Jmo9bRpBfkzw data[SEQ_DECL_SIZE];
};
struct tySequence__23SMqauuRsbDANhthj9bWlA {
  TGenericSeq Sup;
  tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw data[SEQ_DECL_SIZE];
};
struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA {
  TGenericSeq Sup;
  tyTuple__F3gkSrMB1qp2Tvf9bixVXwg data[SEQ_DECL_SIZE];
};
struct tySequence__pHNq3oXj9av2sEUdqaqeZjw {
  TGenericSeq Sup;
  tyTuple__wcNatyuf8WOqAhGLhSvgiw data[SEQ_DECL_SIZE];
};
struct tySequence__PzqTLBFNawCGiqTk0UORYw {
  TGenericSeq Sup;
  tyTuple__euPCXX9bc3XzndEhYlqNS7g 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__sM4lkSb7zS6F7OVMvW9cffQ {
  TGenericSeq Sup;
  NimStringDesc* data[SEQ_DECL_SIZE];
};
struct tySequence__pK3qSsBZwdXd6qyUMkd5Jw {
  TGenericSeq Sup;
  tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg data[SEQ_DECL_SIZE];
};

/* section: NIM_merge_PROC_HEADERS */
static N_INLINE(NIM_BOOL, isInlineIterator__EhCVbB6PynSh7XFAFVMiJAast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__JE6t4x7Z3v2iVz27Nx0MRAmemory)(void* a, int v, NI size);
N_LIB_PRIVATE N_NIMCALL(tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ*, constructCfg__gYr9aUQRxyROXIIqCy8VmDg)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body);
N_LIB_PRIVATE N_NIMCALL(void, computeCursors__x9aeseeV2cxKOgYDfLuYbXA)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, p__PTsSyPSfjwGJy89cb8X3Ylw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw mode);
static N_INLINE(NI, len__P89cqdlERShb9alU3iC0yj8wast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
N_LIB_PRIVATE N_NIMCALL(void, add__P8dDSotTW25BkfbyspojGg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* son);
static N_INLINE(NIM_BOOL, isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, shallowCopy__Dsjo9bte8vGxzhtcSrsTyiQ_3)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, copyTree__Dsjo9bte8vGxzhtcSrsTyiQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef__AT1eRuflKWyTTBdLjEDZbg_3system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(NI, pluspercent___dgYAo7RfdUVVpvkfKDym8wsystem)(NI x, NI y);
static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr);
static N_INLINE(NI, minuspercent___dgYAo7RfdUVVpvkfKDym8w_2system)(NI x, NI y);
static N_INLINE(void, decRef__AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(NIM_BOOL, ltpercent___hPljn3JCDQ00ua1R07X9bxQsystem)(NI x, NI y);
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);
N_LIB_PRIVATE N_NIMCALL(void, nestedScope__ni4yTthPfyagpkFgPFjv8Q)(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* parent, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* Result);
N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, processScope__ur1q32ALAU6hCaCkFnKb1w)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ret);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeI__vokyXY9cZDshCSxFKChhG9bg)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newTree__FpOm4fidh9bWdkMa1BMRJkQ)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** children, NI childrenLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newSymNode__I2DV2TmmOysY1ZEGW19b9bRg)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newTryFinally__WU9bcLfpyH2zHBQqGau0nNQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* final);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getTemp__KB0wf28km02QmgKPPOnujQ)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, newSym__IXbidcxhXTQGZY9abN63Cxg)(tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw symKind, tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* name, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options);
N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*, getIdent__9coBOmdXN09be4rJvXK6fQGQ)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* ic, NimStringDesc* identifier);
N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
static N_INLINE(NIM_BOOL, hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, moveOrCopy__cVidUei9a721N3SvKgbe69bw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, NIM_BOOL isDecl);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genSink__v3XxtcbOOdZOlr1QqHxmIA)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, NIM_BOOL isDecl);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isAnalysableFieldAccess__scxG86YRKjb7mFYULG1CyQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* orig, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isFirstWrite__cXlunxLFt2VNVqtuIWbJWg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipConvDfa__vedgqlRdnLUAAjvLVHCgqg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NI, isFirstWrite__1mYeXIvu8IPZVtV1GH9ajmw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* location, tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ* cfg, NI pc, NI until);
N_LIB_PRIVATE N_NIMCALL(tyEnum_InstrTargetKind__jS7zjwSSXtKIkBLJzNXXAQ, instrTargets__w1KaHRCZ7rX9a4bWRvZGRmQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* insloc, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* loc);
static N_INLINE(NIM_BOOL, isNoInit__jwHjlQc0bLe9aCvMwOaI4Qwinjectdestructors)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kinds);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genOp__cuD9c1RVF9b519bTmoMT05bxQ)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg kind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri);
N_LIB_PRIVATE N_NIMCALL(void, hashType__UdooXLclXL8uld7qLI5JRw)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tySet_tyEnum_ConsiderFlag__9a9az8WnKmq9bvt8EXoSUES7g flags, tyArray__qtqsWM5aXmcpMIVmvq3kAA Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, getOrDefault__osKkoxC3A03cBoj9bK1Or9cQ)(tyObject_Table__IioUJGdqPI6xC7S7QF8MBw t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key);
N_LIB_PRIVATE N_NOINLINE(void, liMessage__Q6JNH4uRwLyZrj0dJakHew)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msg, NimStringDesc* arg, tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw eh, tyTuple__kN8up2W6YKc5YA9avn5mV5w info2, NIM_BOOL isRaw);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem__M04YC71iJg1N7gBF3HZTngsystem)(void* dest, void* source, NI size);
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, typeToString__QlvraUan7WbHowhAbvDvdA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_LIB_PRIVATE N_NIMCALL(void, checkForErrorPragma__jsGlMYodrX9aBF5joJnt6nA)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, NimStringDesc* opname);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NIM_BOOL, equalMem__Bj9c9cm9cBM9coLsuNsT5BvZ9awsystem)(void* a, void* b, NI size);
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TRenderFlag__wrPgUo1ExBlHvFnXN2nSHw renderFlags);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___aQsiZUvE4SFfnWyKx1JgKA)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
static N_INLINE(NIM_BOOL, isSinkType__nPImuPGZIdcrAfCNyf4oxA_3ast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genOp__dlYECyD9bG06toVGQ4mMceA)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* op, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, makePtrType__xpZfx5xv8dk9abIT9boxAcWw)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* baseType);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, newType__SNqpa06pdVCLFFBR28119aQ)(tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner);
N_LIB_PRIVATE N_NIMCALL(void, addSonSkipIntLit__2IwAMgUJgjdjR7Qyvt9bjCQ)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* father, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* son);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genDestroy__eh46xmsJR79buekuc0oQIdQ)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isLastRead__cXlunxLFt2VNVqtuIWbJWg_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c);
N_LIB_PRIVATE N_NIMCALL(NI, isLastRead__0x5XS4sakMCpEg7F32ukEA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* location, tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ* cfg, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** otherRead, NI pc, NI until);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, aliases__X88oJcf8606anlqCac3FtQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* obj, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* field);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genWasMoved__Tj0baeAMp9cue8UExOxI59bg)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, createMagic__MzNJxZ0htpjW89c9b2wBN5rQ)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, NimStringDesc* name, tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg m);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genCopy__rZPv7jnASufmG3HjltXEIQ)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genCopyNoCheck__fxxbJMldVAEuurLy2QTJZA)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri);
static N_INLINE(NIM_BOOL, isDangerousSeq__L3rR2eriYpBBvT5CvR8Rnginjectdestructors)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
static N_INLINE(NIM_BOOL, isSinkParam__Ye2MiAptq3GrXxTQeyXNeA_4ast)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
static N_INLINE(NIM_BOOL, canBeMoved__s3DnXtISoFCBs0uMQckThQ_2injectdestructors)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isCursor__U5eKhGaSBKhqqv1iUFOkVQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, pRaiseStmt__BDQdBbgsT8pCjPIGSq869bQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lastSon__UPSW0jLTX5qJL51YMUAHgw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsConstSeq__3rzbQm9aIqUljCutfRquODA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NI, safeLen__P89cqdlERShb9alU3iC0yj8w_2ast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, passCopyToSink__BDQdBbgsT8pCjPIGSq869bQ_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isLValue__kCP6QlI8uS4X0pOQUdr7tg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isCapturedVar__3rzbQm9aIqUljCutfRquODA_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, getRoot__QppXrRxPfamDSGF2rYPMlw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatSingleElem)(NimStringDesc* formatstr, NimStringDesc* a);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___qX5C9b0n9bOP7jk69amC8dA7A)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, destructiveMoveVar__BDQdBbgsT8pCjPIGSq869bQ_3)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeI__UY1ElYk2XqXDzuz9cGLG1Kw)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NI children);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipConv__BH9abOhPX8pH0DnEWlRxmlw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, ensureDestruction__3uQEgn0k2q4kiGbXS12GXw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* orig, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s);
static N_INLINE(NI, len__5mJADrRYkP3r9auuiuDZN9cQast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* n);
static N_INLINE(NIM_BOOL, isCompileTimeOnly__F9ciDIanrWYqbJ4rgLlNAAg_3types)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isSinkTypeForParam__YPjOkGV9axAnGR3UfLeWZ1g_11)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, canRaise__qAerQ9bftuf70QDk42UIFXg_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fn);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lowerTupleUnpacking__8A4G64HByteFanrMUexmNw_2)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner);
N_LIB_PRIVATE N_NIMCALL(void, pVarTopLevel__GROdgBo9cGIJkwoEZ3yTrew)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* v, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* res);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genDefaultCall__jDZnpAAtuqqpzyrgS2mXUg)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, cycleCheck__VtuMNEAsvSYfebdKUbJwfA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, exprStructuralEquivalent__E1mnSzj2NONtG7h9cR3AuFA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b, NIM_BOOL strictSymEquality);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatOpenArray)(NimStringDesc* formatstr, NimStringDesc** a, NI aLen_0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDiscriminantField__OTZyO2oJpdYpHVBZuRXuRQ_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genDiscriminantAsgn__SmwM1MUiEEj81Il1sHk1nA)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, produceDestructorForDiscriminator__xB6uw9cGyS9bONpHGgcB87oA)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* field, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, getMagicEqSymForType__ff3Uma5kkjydzFHzZlldyg)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* errMsg, tyTuple__kN8up2W6YKc5YA9avn5mV5w info2);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, reprEnum)(NI e, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, optimize__VCZeNpSpiHRRAv9coeudyIg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nsthasKey)(tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* t, NimStringDesc* key);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringDesc** args, NI argsLen_0);

/* section: NIM_merge_DATA */
static NIM_CONST tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw TM__dJ4qrEWDmqGA8FWJ0TYKJQ_2 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
0x00, 0x00, 0x00, 0xb0, 0x03, 0x04, 0x09, 0xc0,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_3, ":tmpD", 5);
extern TNimType NTI__DfgJFJEYoj4YBAHLZPl5lQ_;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_4, "internal error: \'", 17);
extern NIM_CONST tyArray__JXkBzVsE9bvmcpuZvrueLVg AttachedOpToStr__gGSR5Ulzx6g21lOISgt9aWA;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_5, "\' operator not found for type ", 30);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_7, "/home/runner/work/nightlies/nightlies/nim/compiler/injectdestru"
"ctors.nim", 72);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__dJ4qrEWDmqGA8FWJ0TYKJQ_6 = {((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_7),
((NI) 272),
((NI) 15)}
;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_8, "\' operator is generic", 21);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__dJ4qrEWDmqGA8FWJ0TYKJQ_9 = {((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_7),
((NI) 275),
((NI) 15)}
;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_10, "\'", 1);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_11, "\' is not available for type <", 29);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_12, ">", 1);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_13, "=", 1);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_14, "=copy", 5);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_15, "; requires a copy because it\'s not the last read of \'", 53);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_16, "; another read is done here: ", 29);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_17, "; try to make ", 14);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_18, " a \'sink\' parameter", 19);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_19, "; routine: ", 11);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__dJ4qrEWDmqGA8FWJ0TYKJQ_20 = {((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_7),
((NI) 251),
((NI) 12)}
;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_21, "wasMoved", 8);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_22, "passing \'$1\' to a sink parameter introduces an implicit copy; i"
"f possible, rearrange your program\'s control flow to prevent it", 126);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__dJ4qrEWDmqGA8FWJ0TYKJQ_23 = {((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_7),
((NI) 409),
((NI) 13)}
;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_24, "cannot create an implicit openArray copy to be passed to a sink"
" parameter", 73);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__dJ4qrEWDmqGA8FWJ0TYKJQ_25 = {((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_7),
((NI) 416),
((NI) 16)}
;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_26, "blitTmp", 7);
extern TNimType NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_27, "default", 7);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_28, "\'$#\' creates an uncollectable ref cycle; annotate \'$#\' with .cu"
"rsor", 67);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_29, "\'$#\' creates an uncollectable ref cycle", 39);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__dJ4qrEWDmqGA8FWJ0TYKJQ_30 = {((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_7),
((NI) 482),
((NI) 13)}
;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_31, "Assignment to discriminant for objects with user defined destru"
"ctor is not supported, object must have default destructor.\012It i"
"s best to factor out piece of object that needs custom destructo"
"r into separate object or not use discriminator assignment", 249);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__dJ4qrEWDmqGA8FWJ0TYKJQ_32 = {((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_7),
((NI) 343),
((NI) 16)}
;
extern NIM_CONST tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q unknownLineInfo__Adg58D2FIbt5TWh9aavBqbg;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_33, "not", 3);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_34, "nkWhileStmt should have been handled earlier", 44);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__dJ4qrEWDmqGA8FWJ0TYKJQ_35 = {((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_7),
((NI) 841),
((NI) 19)}
;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_36, "cannot inject destructors to node kind: ", 40);
extern TNimType NTI__G4E4Gxe7oI2Cm03rkiOzQw_;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__dJ4qrEWDmqGA8FWJ0TYKJQ_37 = {((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_7),
((NI) 927),
((NI) 19)}
;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_38, "--expandArc: ", 13);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_40, "-- end of expandArc ------------------------", 44);
static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__dJ4qrEWDmqGA8FWJ0TYKJQ_39 = {((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_40)}
;

/* section: NIM_merge_VARS */
extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__IcYaEuuWivYAS86vFMTS3Q;

/* section: NIM_merge_PROCS */
static N_INLINE(NIM_BOOL, isInlineIterator__EhCVbB6PynSh7XFAFVMiJAast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = ((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
	if (!(T2_)) goto LA3_;
	T2_ = (((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 15))&63U)))!=0);
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T1_ = !(((*typ).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9)));
	LA4_: ;
	result = T1_;
	return result;
}
static N_INLINE(void, nimSetMem__JE6t4x7Z3v2iVz27Nx0MRAmemory)(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__JE6t4x7Z3v2iVz27Nx0MRAmemory(p, ((int) 0), size);
}
static N_INLINE(NI, len__P89cqdlERShb9alU3iC0yj8wast)(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;
}
static N_INLINE(NIM_BOOL, isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (t == ((tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*) NIM_NIL));
	if (T1_) goto LA2_;
	T1_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 63) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7));
	LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(NI, pluspercent___dgYAo7RfdUVVpvkfKDym8wsystem)(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__AT1eRuflKWyTTBdLjEDZbg_3system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
	(*c).refcount = pluspercent___dgYAo7RfdUVVpvkfKDym8wsystem((*c).refcount, ((NI) 8));
}
static N_INLINE(NI, minuspercent___dgYAo7RfdUVVpvkfKDym8w_2system)(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__QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr) {
	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
	NI T1_;
	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
	T1_ = (NI)0;
	T1_ = minuspercent___dgYAo7RfdUVVpvkfKDym8w_2system(((NI) (ptrdiff_t) (usr)), ((NI) 8));
	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
	return result;
}
static N_INLINE(NIM_BOOL, ltpercent___hPljn3JCDQ00ua1R07X9bxQsystem)(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__AT1eRuflKWyTTBdLjEDZbg_2system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
	addZCT__Y66tOYFjgwJ0k4aLz4bc0Q((&gch__IcYaEuuWivYAS86vFMTS3Q.zct), c);
}
static N_INLINE(void, decRef__AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
	(*c).refcount = minuspercent___dgYAo7RfdUVVpvkfKDym8w_2system((*c).refcount, ((NI) 8));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ltpercent___hPljn3JCDQ00ua1R07X9bxQsystem((*c).refcount, ((NI) 8));
		if (!T3_) goto LA4_;
		rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_2system(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__QFQqcLB3lgOdwipkv9a60xwsystem(src);
		incRef__AT1eRuflKWyTTBdLjEDZbg_3system(T5_);
	}
	LA3_: ;
	{
		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
		if (!!(((*dest) == NIM_NIL))) goto LA8_;
		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T10_ = usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem((*dest));
		decRef__AT1eRuflKWyTTBdLjEDZbgsystem(T10_);
	}
	LA8_: ;
	(*dest) = src;
}
N_LIB_PRIVATE N_NIMCALL(void, nestedScope__ni4yTthPfyagpkFgPFjv8Q)(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* parent, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* Result) {
	unsureAsgnRef((void**)&(*Result).vars, NIM_NIL);
	unsureAsgnRef((void**)&(*Result).wasMoved, NIM_NIL);
	unsureAsgnRef((void**)&(*Result).final, NIM_NIL);
	(*Result).needsTry = 0;
	(*Result).parent = NIM_NIL;
	unsureAsgnRef((void**) (&(*Result).vars), NIM_NIL);
	unsureAsgnRef((void**) (&(*Result).wasMoved), NIM_NIL);
	unsureAsgnRef((void**) (&(*Result).final), NIM_NIL);
	(*Result).needsTry = NIM_FALSE;
	(*Result).parent = parent;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, processScope__ur1q32ALAU6hCaCkFnKb1w)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ret) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*ret).info);
	{
		NI T3_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSection;
		T3_ = ((*s).vars ? (*s).vars->Sup.len : 0);
		if (!(((NI) 0) < T3_)) goto LA4_;
		varSection = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*ret).info);
		{
			tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w** tmp;
			NI i;
			NI L;
			NI T7_;
			tmp = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w**)0;
			i = ((NI) 0);
			T7_ = ((*s).vars ? (*s).vars->Sup.len : 0);
			L = T7_;
			{
				while (1) {
					tyArray__T6RKPw8xfAeNaoei9aZGzXg T10_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T11_;
					if (!(i < L)) goto LA9;
					tmp = &(*s).vars->data[i];
					nimZeroMem((void*)T10_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
					T10_[0] = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*tmp));
					T10_[1] = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*ret).info);
					T10_[2] = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*ret).info);
					T11_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T11_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T10_, 3);
					add__P8dDSotTW25BkfbyspojGg(varSection, T11_);
					i += ((NI) 1);
				} LA9: ;
			}
		}
		add__P8dDSotTW25BkfbyspojGg(result, varSection);
	}
	LA4_: ;
	{
		NIM_BOOL T14_;
		NI T15_;
		NI T17_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSection;
		T14_ = (NIM_BOOL)0;
		T15_ = ((*s).wasMoved ? (*s).wasMoved->Sup.len : 0);
		T14_ = (((NI) 0) < T15_);
		if (T14_) goto LA16_;
		T17_ = ((*s).final ? (*s).final->Sup.len : 0);
		T14_ = (((NI) 0) < T17_);
		LA16_: ;
		if (!T14_) goto LA18_;
		finSection = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*ret).info);
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** m;
			NI i_2;
			NI L_2;
			NI T21_;
			m = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
			i_2 = ((NI) 0);
			T21_ = ((*s).wasMoved ? (*s).wasMoved->Sup.len : 0);
			L_2 = T21_;
			{
				while (1) {
					if (!(i_2 < L_2)) goto LA23;
					m = &(*s).wasMoved->data[i_2];
					add__P8dDSotTW25BkfbyspojGg(finSection, (*m));
					i_2 += ((NI) 1);
				} LA23: ;
			}
		}
		{
			NI i_3;
			NI colontmp_;
			NI T25_;
			NI res;
			i_3 = (NI)0;
			colontmp_ = (NI)0;
			T25_ = (((*s).final ? (*s).final->Sup.len : 0)-1);
			colontmp_ = T25_;
			res = colontmp_;
			{
				while (1) {
					if (!(((NI) 0) <= res)) goto LA27;
					i_3 = res;
					add__P8dDSotTW25BkfbyspojGg(finSection, (*s).final->data[i_3]);
					res -= ((NI) 1);
				} LA27: ;
			}
		}
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T32_;
			if (!(*s).needsTry) goto LA30_;
			T32_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T32_ = newTryFinally__WU9bcLfpyH2zHBQqGau0nNQ(ret, finSection);
			add__P8dDSotTW25BkfbyspojGg(result, T32_);
		}
		goto LA28_;
		LA30_: ;
		{
			add__P8dDSotTW25BkfbyspojGg(result, ret);
			add__P8dDSotTW25BkfbyspojGg(result, finSection);
		}
		LA28_: ;
	}
	goto LA12_;
	LA18_: ;
	{
		add__P8dDSotTW25BkfbyspojGg(result, ret);
	}
	LA12_: ;
	{
		NIM_BOOL T39_;
		if (!!(((*s).parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL)))) goto LA37_;
		T39_ = (NIM_BOOL)0;
		T39_ = (*(*s).parent).needsTry;
		if (T39_) goto LA40_;
		T39_ = (*s).needsTry;
		LA40_: ;
		(*(*s).parent).needsTry = T39_;
	}
	LA37_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getTemp__KB0wf28km02QmgKPPOnujQ)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym;
	tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T1_;
	NI T2_;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
	T1_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*(*c).graph).cache, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_3));
	sym = newSym__IXbidcxhXTQGZY9abN63Cxg(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 5), T1_, (*c).owner, info, 0);
	asgnRef((void**) (&(*sym).typ), typ);
	unsureAsgnRef((void**) (&(*s).vars), (tySequence__DfgJFJEYoj4YBAHLZPl5lQ*) incrSeqV3((TGenericSeq*)((*s).vars), (&NTI__DfgJFJEYoj4YBAHLZPl5lQ_)));
	T2_ = (*s).vars->Sup.len++;
	asgnRef((void**) (&(*s).vars->data[T2_]), sym);
	result = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(sym);
	return result;
}
static N_INLINE(NIM_BOOL, hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = !(((IL64(2147483664) & (*t).flags) == 0));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, isFirstWrite__1mYeXIvu8IPZVtV1GH9ajmw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* location, tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ* cfg, NI pc, NI until) {
	NI result;
	NI pc_2;
{	result = (NI)0;
	pc_2 = pc;
	{
		while (1) {
			if (!(pc_2 < until)) goto LA2;
			switch (cfg->data[pc_2].kind) {
			case ((tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ) 2):
			{
				{
					tyEnum_InstrTargetKind__jS7zjwSSXtKIkBLJzNXXAQ T6_;
					T6_ = (tyEnum_InstrTargetKind__jS7zjwSSXtKIkBLJzNXXAQ)0;
					T6_ = instrTargets__w1KaHRCZ7rX9a4bWRvZGRmQ(cfg->data[pc_2].n, location);
					if (!!((T6_ == ((tyEnum_InstrTargetKind__jS7zjwSSXtKIkBLJzNXXAQ) 0)))) goto LA7_;
					result = ((NI) -1);
					goto BeforeRet_;
				}
				LA7_: ;
				pc_2 += ((NI) 1);
			}
			break;
			case ((tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ) 3):
			{
				{
					tyEnum_InstrTargetKind__jS7zjwSSXtKIkBLJzNXXAQ T12_;
					T12_ = (tyEnum_InstrTargetKind__jS7zjwSSXtKIkBLJzNXXAQ)0;
					T12_ = instrTargets__w1KaHRCZ7rX9a4bWRvZGRmQ(cfg->data[pc_2].n, location);
					if (!!((T12_ == ((tyEnum_InstrTargetKind__jS7zjwSSXtKIkBLJzNXXAQ) 0)))) goto LA13_;
					result = ((NI) -1);
					goto BeforeRet_;
				}
				LA13_: ;
				pc_2 += ((NI) 1);
			}
			break;
			case ((tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ) 0):
			{
				pc_2 += cfg->data[pc_2].dest;
			}
			break;
			case ((tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ) 1):
			{
				NI variantA;
				NI variantB;
				variantA = (NI)(pc_2 + ((NI) 1));
				variantB = (NI)(pc_2 + cfg->data[pc_2].dest);
				{
					while (1) {
						if (!!((variantA == variantB))) goto LA18;
						{
							if (!(((variantA <= variantB) ? variantA : variantB) < ((NI) 0))) goto LA21_;
							result = ((NI) -1);
							goto BeforeRet_;
						}
						LA21_: ;
						{
							if (!(until < ((variantA >= variantB) ? variantA : variantB))) goto LA25_;
							goto LA17;
						}
						LA25_: ;
						{
							if (!(variantA < variantB)) goto LA29_;
							variantA = isFirstWrite__1mYeXIvu8IPZVtV1GH9ajmw(location, cfg, variantA, ((variantB <= until) ? variantB : until));
						}
						goto LA27_;
						LA29_: ;
						{
							variantB = isFirstWrite__1mYeXIvu8IPZVtV1GH9ajmw(location, cfg, variantB, ((variantA <= until) ? variantA : until));
						}
						LA27_: ;
					} LA18: ;
				} LA17: ;
				pc_2 = ((variantA <= variantB) ? variantA : variantB);
			}
			break;
			}
		} LA2: ;
	}
	result = pc_2;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isFirstWrite__cXlunxLFt2VNVqtuIWbJWg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c) {
	NIM_BOOL result;
	NI instr;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* m;
	NI T23_;
{	result = (NIM_BOOL)0;
	instr = ((NI) -1);
	m = skipConvDfa__vedgqlRdnLUAAjvLVHCgqg(n);
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = ((*c).g ? (*c).g->Sup.len : 0);
		colontmp_ = (NI)(T2_ - ((NI) 1));
		res = colontmp_;
		{
			while (1) {
				if (!(((NI) 0) <= res)) goto LA4;
				i = res;
				{
					NIM_BOOL T7_;
					T7_ = (NIM_BOOL)0;
					T7_ = ((*c).g->data[i].kind == ((tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ) 2));
					if (!(T7_)) goto LA8_;
					T7_ = ((*c).g->data[i].n == m);
					LA8_: ;
					if (!T7_) goto LA9_;
					{
						if (!(instr < ((NI) 0))) goto LA13_;
						instr = i;
						goto LA1;
					}
					LA13_: ;
				}
				LA9_: ;
				res -= ((NI) 1);
			} LA4: ;
		}
	} LA1: ;
	{
		if (!(instr < ((NI) 0))) goto LA17_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA17_: ;
	{
		if (!(instr == ((NI) 0))) goto LA21_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA21_: ;
	T23_ = (NI)0;
	T23_ = isFirstWrite__1mYeXIvu8IPZVtV1GH9ajmw(n, (*c).g, ((NI) 0), instr);
	result = (((NI) 0) <= T23_);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isNoInit__jwHjlQc0bLe9aCvMwOaI4Qwinjectdestructors)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*dest).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
	if (!(T1_)) goto LA2_;
	T1_ = (((*(*dest)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 14))&63U)))!=0);
	LA2_: ;
	result = T1_;
	return result;
}
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__M04YC71iJg1N7gBF3HZTngsystem)(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__M04YC71iJg1N7gBF3HZTngsystem(((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(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__Bj9c9cm9cBM9coLsuNsT5BvZ9awsystem)(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__Bj9c9cm9cBM9coLsuNsT5BvZ9awsystem(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
		goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isSinkType__nPImuPGZIdcrAfCNyf4oxA_3ast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46));
	if (T1_) goto LA2_;
	T1_ = (((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 4))&63U)))!=0);
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, checkForErrorPragma__jsGlMYodrX9aBF5joJnt6nA)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, NimStringDesc* opname) {
	NimStringDesc* m;
	NimStringDesc* T1_;
	NimStringDesc* T2_;
	T1_ = (NimStringDesc*)0;
	T2_ = (NimStringDesc*)0;
	T2_ = typeToString__QlvraUan7WbHowhAbvDvdA(t, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
	T1_ = rawNewString((opname ? opname->Sup.len : 0) + (T2_ ? T2_->Sup.len : 0) + 31);
appendString(T1_, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_10));
appendString(T1_, opname);
appendString(T1_, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_11));
appendString(T1_, T2_);
appendString(T1_, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_12));
	m = T1_;
	{
		NIM_BOOL T5_;
		NIM_BOOL T6_;
		NimStringDesc* T11_;
		T5_ = (NIM_BOOL)0;
		T6_ = (NIM_BOOL)0;
		T6_ = eqStrings(opname, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_13));
		if (T6_) goto LA7_;
		T6_ = eqStrings(opname, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_14));
		LA7_: ;
		T5_ = T6_;
		if (!(T5_)) goto LA8_;
		T5_ = !((ri == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
		LA8_: ;
		if (!T5_) goto LA9_;
		m = resizeString(m, 53);
appendString(m, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_15));
		T11_ = (NimStringDesc*)0;
		T11_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(ri, 0);
		m = resizeString(m, (T11_ ? T11_->Sup.len : 0) + 0);
appendString(m, T11_);
		m = addChar(m, 39);
		{
			NimStringDesc* T16_;
			if (!!(((*c).otherRead == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA14_;
			m = resizeString(m, 29);
appendString(m, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_16));
			T16_ = (NimStringDesc*)0;
			T16_ = dollar___aQsiZUvE4SFfnWyKx1JgKA((*(*c).graph).config, (*(*c).otherRead).info);
			m = resizeString(m, (T16_ ? T16_->Sup.len : 0) + 0);
appendString(m, T16_);
		}
		goto LA12_;
		LA14_: ;
		{
			NIM_BOOL T18_;
			NIM_BOOL T19_;
			NIM_BOOL T22_;
			NimStringDesc* T25_;
			T18_ = (NIM_BOOL)0;
			T19_ = (NIM_BOOL)0;
			T19_ = ((*ri).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T19_)) goto LA20_;
			T19_ = ((*(*ri)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
			LA20_: ;
			T18_ = T19_;
			if (!(T18_)) goto LA21_;
			T22_ = (NIM_BOOL)0;
			T22_ = isSinkType__nPImuPGZIdcrAfCNyf4oxA_3ast((*(*ri)._kind_4.sym).typ);
			T18_ = !(T22_);
			LA21_: ;
			if (!T18_) goto LA23_;
			m = resizeString(m, 14);
appendString(m, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_17));
			T25_ = (NimStringDesc*)0;
			T25_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(ri, 0);
			m = resizeString(m, (T25_ ? T25_->Sup.len : 0) + 0);
appendString(m, T25_);
			m = resizeString(m, 19);
appendString(m, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_18));
		}
		goto LA12_;
		LA23_: ;
		LA12_: ;
	}
	LA9_: ;
	m = resizeString(m, 11);
appendString(m, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_19));
	m = resizeString(m, ((*(*(*c).owner).name).s ? (*(*(*c).owner).name).s->Sup.len : 0) + 0);
appendString(m, (*(*(*c).owner).name).s);
	liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*ri).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), m, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__dJ4qrEWDmqGA8FWJ0TYKJQ_20, NIM_FALSE);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, makePtrType__xpZfx5xv8dk9abIT9boxAcWw)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* baseType) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	result = newType__SNqpa06pdVCLFFBR28119aQ(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21), (*c).owner);
	addSonSkipIntLit__2IwAMgUJgjdjR7Qyvt9bjCQ(result, baseType);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genOp__dlYECyD9bG06toVGQ4mMceA)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* op, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* addrExp;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T2_;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = makePtrType__xpZfx5xv8dk9abIT9boxAcWw(c, (*dest).typ);
	addrExp = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64), (*dest).info, T1_);
	add__P8dDSotTW25BkfbyspojGg(addrExp, dest);
	nimZeroMem((void*)T2_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
	T2_[0] = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(op);
	T2_[1] = addrExp;
	result = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), T2_, 2);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genOp__cuD9c1RVF9b519bTmoMT05bxQ)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg kind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* op;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	op = (*t).attachedOps[(kind)- 0];
	{
		NIM_BOOL T3_;
		tyArray__qtqsWM5aXmcpMIVmvq3kAA h;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* canon;
		T3_ = (NIM_BOOL)0;
		T3_ = (op == ((tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*) NIM_NIL));
		if (T3_) goto LA4_;
		T3_ = !(((*(*(*op).ast)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)));
		LA4_: ;
		if (!T3_) goto LA5_;
		nimZeroMem((void*)h, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
		hashType__UdooXLclXL8uld7qLI5JRw(t, 50, h);
		canon = getOrDefault__osKkoxC3A03cBoj9bK1Or9cQ((*(*c).graph).canonTypes, h);
		{
			if (!!((canon == ((tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*) NIM_NIL)))) goto LA9_;
			op = (*canon).attachedOps[(kind)- 0];
		}
		LA9_: ;
	}
	LA5_: ;
	{
		NimStringDesc* T15_;
		NimStringDesc* T16_;
		if (!(op == ((tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*) NIM_NIL))) goto LA13_;
		T15_ = (NimStringDesc*)0;
		T16_ = (NimStringDesc*)0;
		T16_ = typeToString__QlvraUan7WbHowhAbvDvdA(t, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
		T15_ = rawNewString((AttachedOpToStr__gGSR5Ulzx6g21lOISgt9aWA[(kind)- 0] ? AttachedOpToStr__gGSR5Ulzx6g21lOISgt9aWA[(kind)- 0]->Sup.len : 0) + (T16_ ? T16_->Sup.len : 0) + 47);
appendString(T15_, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_4));
appendString(T15_, AttachedOpToStr__gGSR5Ulzx6g21lOISgt9aWA[(kind)- 0]);
appendString(T15_, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_5));
appendString(T15_, T16_);
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*dest).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T15_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__dJ4qrEWDmqGA8FWJ0TYKJQ_6, NIM_FALSE);
	}
	goto LA11_;
	LA13_: ;
	{
		NimStringDesc* T20_;
		if (!!(((*(*(*op).ast)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA18_;
		T20_ = (NimStringDesc*)0;
		T20_ = rawNewString((AttachedOpToStr__gGSR5Ulzx6g21lOISgt9aWA[(kind)- 0] ? AttachedOpToStr__gGSR5Ulzx6g21lOISgt9aWA[(kind)- 0]->Sup.len : 0) + 38);
appendString(T20_, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_4));
appendString(T20_, AttachedOpToStr__gGSR5Ulzx6g21lOISgt9aWA[(kind)- 0]);
appendString(T20_, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_8));
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*dest).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T20_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__dJ4qrEWDmqGA8FWJ0TYKJQ_9, NIM_FALSE);
	}
	goto LA11_;
	LA18_: ;
	LA11_: ;
	{
		if (!(((*op).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 24))&63U)))!=0)) goto LA23_;
		checkForErrorPragma__jsGlMYodrX9aBF5joJnt6nA(c, t, ri, AttachedOpToStr__gGSR5Ulzx6g21lOISgt9aWA[(kind)- 0]);
	}
	LA23_: ;
	result = genOp__dlYECyD9bG06toVGQ4mMceA(c, op, dest);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genDestroy__eh46xmsJR79buekuc0oQIdQ)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*dest).typ, IL64(70368744179728));
	result = genOp__cuD9c1RVF9b519bTmoMT05bxQ(c, t, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0), dest, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genSink__v3XxtcbOOdZOlr1QqHxmIA)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, NIM_BOOL isDecl) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NIM_BOOL T6_;
		NIM_BOOL T7_;
		NIM_BOOL T8_;
		NIM_BOOL T9_;
		NIM_BOOL T14_;
		tyArray__AB6yfoUgfWM2NtGe9bzkCmw T19_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = ((*c).inLoopCond == ((NI) 0));
		if (!(T4_)) goto LA5_;
		T6_ = (NIM_BOOL)0;
		T7_ = (NIM_BOOL)0;
		T8_ = (NIM_BOOL)0;
		T9_ = (NIM_BOOL)0;
		T9_ = ((*dest).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
		if (!(T9_)) goto LA10_;
		T9_ = ((*(*dest)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 5));
		LA10_: ;
		T8_ = T9_;
		if (!(T8_)) goto LA11_;
		T8_ = ((*(*(*dest)._kind_4.sym).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18));
		LA11_: ;
		T7_ = T8_;
		if (T7_) goto LA12_;
		T7_ = isDecl;
		LA12_: ;
		T6_ = T7_;
		if (T6_) goto LA13_;
		T14_ = (NIM_BOOL)0;
		T14_ = isAnalysableFieldAccess__scxG86YRKjb7mFYULG1CyQ(dest, (*c).owner);
		if (!(T14_)) goto LA15_;
		T14_ = isFirstWrite__cXlunxLFt2VNVqtuIWbJWg(dest, c);
		LA15_: ;
		T6_ = T14_;
		LA13_: ;
		T4_ = T6_;
		LA5_: ;
		T3_ = T4_;
		if (T3_) goto LA16_;
		T3_ = isNoInit__jwHjlQc0bLe9aCvMwOaI4Qwinjectdestructors(dest);
		LA16_: ;
		if (!T3_) goto LA17_;
		nimZeroMem((void*)T19_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
		T19_[0] = dest;
		T19_[1] = ri;
		result = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T19_, 2);
	}
	goto LA1_;
	LA17_: ;
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
		t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*dest).typ, IL64(70368744179728));
		{
			if (!!(((*t).attachedOps[(((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 2))- 0] == ((tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*) NIM_NIL)))) goto LA23_;
			result = genOp__cuD9c1RVF9b519bTmoMT05bxQ((&(*c)), t, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 2), dest, ri);
			add__P8dDSotTW25BkfbyspojGg(result, ri);
		}
		goto LA21_;
		LA23_: ;
		{
			tyArray__AB6yfoUgfWM2NtGe9bzkCmw T26_;
			tyArray__AB6yfoUgfWM2NtGe9bzkCmw T27_;
			nimZeroMem((void*)T26_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
			T26_[0] = genDestroy__eh46xmsJR79buekuc0oQIdQ((&(*c)), dest);
			nimZeroMem((void*)T27_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
			T27_[0] = dest;
			T27_[1] = ri;
			T26_[1] = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T27_, 2);
			result = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T26_, 2);
		}
		LA21_: ;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, isLastRead__0x5XS4sakMCpEg7F32ukEA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* location, tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ* cfg, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** otherRead, NI pc, NI until) {
	NI result;
	NI pc_2;
{	result = (NI)0;
	pc_2 = pc;
	{
		while (1) {
			NIM_BOOL T3_;
			NI T4_;
			T3_ = (NIM_BOOL)0;
			T4_ = (cfg ? cfg->Sup.len : 0);
			T3_ = (pc_2 < T4_);
			if (!(T3_)) goto LA5_;
			T3_ = (pc_2 < until);
			LA5_: ;
			if (!T3_) goto LA2;
			switch (cfg->data[pc_2].kind) {
			case ((tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ) 2):
			{
				{
					tyEnum_InstrTargetKind__jS7zjwSSXtKIkBLJzNXXAQ T9_;
					T9_ = (tyEnum_InstrTargetKind__jS7zjwSSXtKIkBLJzNXXAQ)0;
					T9_ = instrTargets__w1KaHRCZ7rX9a4bWRvZGRmQ(cfg->data[pc_2].n, location);
					if (!(T9_ == ((tyEnum_InstrTargetKind__jS7zjwSSXtKIkBLJzNXXAQ) 1))) goto LA10_;
					result = ((NI) 2147483647);
					goto BeforeRet_;
				}
				goto LA7_;
				LA10_: ;
				{
					tyEnum_InstrTargetKind__jS7zjwSSXtKIkBLJzNXXAQ T13_;
					T13_ = (tyEnum_InstrTargetKind__jS7zjwSSXtKIkBLJzNXXAQ)0;
					T13_ = instrTargets__w1KaHRCZ7rX9a4bWRvZGRmQ(cfg->data[pc_2].n, location);
					if (!(T13_ == ((tyEnum_InstrTargetKind__jS7zjwSSXtKIkBLJzNXXAQ) 2))) goto LA14_;
					unsureAsgnRef((void**) (&(*otherRead)), cfg->data[pc_2].n);
					result = ((NI) -1);
					goto BeforeRet_;
				}
				goto LA7_;
				LA14_: ;
				LA7_: ;
				pc_2 += ((NI) 1);
			}
			break;
			case ((tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ) 3):
			{
				{
					tyEnum_InstrTargetKind__jS7zjwSSXtKIkBLJzNXXAQ T19_;
					T19_ = (tyEnum_InstrTargetKind__jS7zjwSSXtKIkBLJzNXXAQ)0;
					T19_ = instrTargets__w1KaHRCZ7rX9a4bWRvZGRmQ(cfg->data[pc_2].n, location);
					if (!!((T19_ == ((tyEnum_InstrTargetKind__jS7zjwSSXtKIkBLJzNXXAQ) 0)))) goto LA20_;
					unsureAsgnRef((void**) (&(*otherRead)), cfg->data[pc_2].n);
					result = ((NI) -1);
					goto BeforeRet_;
				}
				LA20_: ;
				pc_2 += ((NI) 1);
			}
			break;
			case ((tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ) 0):
			{
				pc_2 += cfg->data[pc_2].dest;
			}
			break;
			case ((tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ) 1):
			{
				NI variantA;
				NI variantB;
				variantA = (NI)(pc_2 + ((NI) 1));
				variantB = (NI)(pc_2 + cfg->data[pc_2].dest);
				{
					while (1) {
						if (!!((variantA == variantB))) goto LA25;
						{
							if (!(((variantA <= variantB) ? variantA : variantB) < ((NI) 0))) goto LA28_;
							result = ((NI) -1);
							goto BeforeRet_;
						}
						LA28_: ;
						{
							NIM_BOOL T32_;
							NI T33_;
							T32_ = (NIM_BOOL)0;
							T33_ = (cfg ? cfg->Sup.len : 0);
							T32_ = (T33_ <= ((variantA >= variantB) ? variantA : variantB));
							if (T32_) goto LA34_;
							T32_ = (until <= ((variantA <= variantB) ? variantA : variantB));
							LA34_: ;
							if (!T32_) goto LA35_;
							goto LA24;
						}
						LA35_: ;
						{
							if (!(variantA < variantB)) goto LA39_;
							variantA = isLastRead__0x5XS4sakMCpEg7F32ukEA(location, cfg, otherRead, variantA, ((variantB <= until) ? variantB : until));
						}
						goto LA37_;
						LA39_: ;
						{
							variantB = isLastRead__0x5XS4sakMCpEg7F32ukEA(location, cfg, otherRead, variantB, ((variantA <= until) ? variantA : until));
						}
						LA37_: ;
					} LA25: ;
				} LA24: ;
				pc_2 = ((variantA <= variantB) ? variantA : variantB);
			}
			break;
			}
		} LA2: ;
	}
	result = pc_2;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isLastRead__cXlunxLFt2VNVqtuIWbJWg_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c) {
	NIM_BOOL result;
	NI instr;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* m;
	NI T30_;
{	result = (NIM_BOOL)0;
	instr = ((NI) -1);
	m = skipConvDfa__vedgqlRdnLUAAjvLVHCgqg(n);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*m).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
		if (!(T3_)) goto LA4_;
		T3_ = (((*(*m)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 44))&63U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA5_: ;
	{
		NI i;
		NI colontmp_;
		NI T8_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T8_ = ((*c).g ? (*c).g->Sup.len : 0);
		colontmp_ = T8_;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA10;
				i = i_2;
				{
					NIM_BOOL T13_;
					T13_ = (NIM_BOOL)0;
					T13_ = ((*c).g->data[i].kind == ((tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ) 3));
					if (!(T13_)) goto LA14_;
					T13_ = ((*c).g->data[i].n == m);
					LA14_: ;
					if (!T13_) goto LA15_;
					{
						if (!(instr < ((NI) 0))) goto LA19_;
						instr = i;
						goto LA7;
					}
					LA19_: ;
				}
				LA15_: ;
				i_2 += ((NI) 1);
			} LA10: ;
		}
	} LA7: ;
	{
		if (!(instr < ((NI) 0))) goto LA23_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA23_: ;
	{
		NI T27_;
		T27_ = ((*c).g ? (*c).g->Sup.len : 0);
		if (!(T27_ <= (NI)(instr + ((NI) 1)))) goto LA28_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA28_: ;
	unsureAsgnRef((void**) (&(*c).otherRead), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
	T30_ = (NI)0;
	T30_ = isLastRead__0x5XS4sakMCpEg7F32ukEA(n, (*c).g, &(*c).otherRead, (NI)(instr + ((NI) 1)), ((NI) 2147483647));
	result = (((NI) 0) <= T30_);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genWasMoved__Tj0baeAMp9cue8UExOxI59bg)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info);
	T1_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T1_ = createMagic__MzNJxZ0htpjW89c9b2wBN5rQ((*c).graph, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_21), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 149));
	T2_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T2_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(T1_);
	add__P8dDSotTW25BkfbyspojGg(result, T2_);
	T3_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T3_ = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(n);
	add__P8dDSotTW25BkfbyspojGg(result, T3_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genCopyNoCheck__fxxbJMldVAEuurLy2QTJZA)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*dest).typ, IL64(70368744179728));
	result = genOp__cuD9c1RVF9b519bTmoMT05bxQ(c, t, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 1), dest, ri);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genCopy__rZPv7jnASufmG3HjltXEIQ)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	t = (*dest).typ;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 4))&63U)))!=0);
		if (!(T3_)) goto LA4_;
		T3_ = !(((*ri).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23)));
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			NIM_BOOL T11_;
			if (!((*c).otherRead == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA9_;
			T11_ = (NIM_BOOL)0;
			T11_ = isLastRead__cXlunxLFt2VNVqtuIWbJWg_2(ri, c);
			(void)(T11_);
		}
		LA9_: ;
		checkForErrorPragma__jsGlMYodrX9aBF5joJnt6nA((&(*c)), t, ri, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_14));
	}
	LA5_: ;
	result = genCopyNoCheck__fxxbJMldVAEuurLy2QTJZA((&(*c)), dest, ri);
	return result;
}
static N_INLINE(NIM_BOOL, isDangerousSeq__L3rR2eriYpBBvT5CvR8Rnginjectdestructors)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	NIM_BOOL result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t_2;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	t_2 = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(36134350135273744));
	T1_ = (NIM_BOOL)0;
	T1_ = ((*t_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24));
	if (!(T1_)) goto LA2_;
	T1_ = !((((*(*t_2).sons->data[((NI) 0)]).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 4))&63U)))!=0));
	LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL, isSinkParam__Ye2MiAptq3GrXxTQeyXNeA_4ast)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
	if (!(T1_)) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T3_ = ((*(*s).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46));
	if (T3_) goto LA4_;
	T3_ = (((*(*s).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 4))&63U)))!=0);
	LA4_: ;
	T1_ = T3_;
	LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL, canBeMoved__s3DnXtISoFCBs0uMQckThQ_2injectdestructors)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	NIM_BOOL result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t_2;
	result = (NIM_BOOL)0;
	t_2 = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(70368744179728));
	{
		NIM_BOOL T5_;
		if (!(((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 42))&63U)))!=0)) goto LA3_;
		T5_ = (NIM_BOOL)0;
		T5_ = !(((*t_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22)));
		if (!(T5_)) goto LA6_;
		T5_ = !(((*t_2).attachedOps[(((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 2))- 0] == ((tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*) NIM_NIL)));
		LA6_: ;
		result = T5_;
	}
	goto LA1_;
	LA3_: ;
	{
		result = !(((*t_2).attachedOps[(((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 2))- 0] == ((tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*) NIM_NIL)));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isCursor__U5eKhGaSBKhqqv1iUFOkVQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		result = (((*(*n)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 40))&63U)))!=0);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
	{
		result = isCursor__U5eKhGaSBKhqqv1iUFOkVQ((*n)._kind_6.sons->data[((NI) 1)], c);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46):
	{
		result = isCursor__U5eKhGaSBKhqqv1iUFOkVQ((*n)._kind_6.sons->data[((NI) 0)], c);
	}
	break;
	default:
	{
		result = NIM_FALSE;
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, pRaiseStmt__BDQdBbgsT8pCjPIGSq869bQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 42))&63U)))!=0);
		if (!(T3_)) goto LA4_;
		T3_ = !(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)));
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* call;
			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32))) goto LA9_;
			call = p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
			result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(n);
			add__P8dDSotTW25BkfbyspojGg(result, call);
		}
		goto LA7_;
		LA9_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmp;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* m;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T12_;
			tyArray__AB6yfoUgfWM2NtGe9bzkCmw T13_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* toDisarm;
			tyArray__jlWPjgtbdjE069arIWHC9c9bg T25_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T26_;
			tmp = getTemp__KB0wf28km02QmgKPPOnujQ(c, s, (*(*n)._kind_6.sons->data[((NI) 0)]).typ, (*n).info);
			m = genCopyNoCheck__fxxbJMldVAEuurLy2QTJZA((&(*c)), tmp, (*n)._kind_6.sons->data[((NI) 0)]);
			T12_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T12_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
			add__P8dDSotTW25BkfbyspojGg(m, T12_);
			nimZeroMem((void*)T13_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
			T13_[0] = genWasMoved__Tj0baeAMp9cue8UExOxI59bg(c, tmp);
			T13_[1] = m;
			result = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T13_, 2);
			toDisarm = (*n)._kind_6.sons->data[((NI) 0)];
			{
				if (!((*toDisarm).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126))) goto LA16_;
				toDisarm = lastSon__UPSW0jLTX5qJL51YMUAHgw(toDisarm);
			}
			LA16_: ;
			{
				NIM_BOOL T20_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T24_;
				T20_ = (NIM_BOOL)0;
				T20_ = ((*toDisarm).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
				if (!(T20_)) goto LA21_;
				T20_ = ((*(*toDisarm)._kind_4.sym).owner == (*c).owner);
				LA21_: ;
				if (!T20_) goto LA22_;
				T24_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T24_ = genWasMoved__Tj0baeAMp9cue8UExOxI59bg(c, toDisarm);
				add__P8dDSotTW25BkfbyspojGg(result, T24_);
			}
			LA22_: ;
			nimZeroMem((void*)T25_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
			T25_[0] = tmp;
			T26_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T26_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 108), T25_, 1);
			add__P8dDSotTW25BkfbyspojGg(result, T26_);
		}
		LA7_: ;
	}
	goto LA1_;
	LA5_: ;
	{
		result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(n);
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T32_;
			if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA30_;
			T32_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T32_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 2));
			add__P8dDSotTW25BkfbyspojGg(result, T32_);
		}
		goto LA28_;
		LA30_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T34_;
			T34_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T34_ = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2((*n)._kind_6.sons->data[((NI) 0)]);
			add__P8dDSotTW25BkfbyspojGg(result, T34_);
		}
		LA28_: ;
	}
	LA1_: ;
	(*s).needsTry = NIM_TRUE;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, moveOrCopy__cVidUei9a721N3SvKgbe69bw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, NIM_BOOL isDecl) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
{	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	switch ((*ri).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
		T2_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T2_ = p__PTsSyPSfjwGJy89cb8X3Ylw(ri, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
		result = genSink__v3XxtcbOOdZOlr1QqHxmIA(c, dest, T2_, isDecl);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
	{
		{
			NIM_BOOL T6_;
			NIM_BOOL T7_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T12_;
			T6_ = (NIM_BOOL)0;
			T7_ = (NIM_BOOL)0;
			T7_ = ((*(*ri)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T7_)) goto LA8_;
			T7_ = ((*(*(*ri)._kind_6.sons->data[((NI) 0)])._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 5));
			LA8_: ;
			T6_ = T7_;
			if (!(T6_)) goto LA9_;
			T6_ = ((*(*(*(*ri)._kind_6.sons->data[((NI) 0)])._kind_4.sym).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18));
			LA9_: ;
			if (!T6_) goto LA10_;
			T12_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T12_ = p__PTsSyPSfjwGJy89cb8X3Ylw(ri, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
			result = genSink__v3XxtcbOOdZOlr1QqHxmIA(c, dest, T12_, isDecl);
		}
		goto LA4_;
		LA10_: ;
		{
			NIM_BOOL T14_;
			NIM_BOOL T15_;
			NIM_BOOL T18_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* snk;
			tyArray__AB6yfoUgfWM2NtGe9bzkCmw T21_;
			T14_ = (NIM_BOOL)0;
			T15_ = (NIM_BOOL)0;
			T15_ = isAnalysableFieldAccess__scxG86YRKjb7mFYULG1CyQ(ri, (*c).owner);
			if (!(T15_)) goto LA16_;
			T15_ = isLastRead__cXlunxLFt2VNVqtuIWbJWg_2(ri, c);
			LA16_: ;
			T14_ = T15_;
			if (!(T14_)) goto LA17_;
			T18_ = (NIM_BOOL)0;
			T18_ = aliases__X88oJcf8606anlqCac3FtQ(dest, ri);
			T14_ = !(T18_);
			LA17_: ;
			if (!T14_) goto LA19_;
			snk = genSink__v3XxtcbOOdZOlr1QqHxmIA(c, dest, ri, isDecl);
			nimZeroMem((void*)T21_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
			T21_[0] = snk;
			T21_[1] = genWasMoved__Tj0baeAMp9cue8UExOxI59bg(c, ri);
			result = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T21_, 2);
		}
		goto LA4_;
		LA19_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T23_;
			result = genCopy__rZPv7jnASufmG3HjltXEIQ(c, dest, ri);
			T23_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T23_ = p__PTsSyPSfjwGJy89cb8X3Ylw(ri, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
			add__P8dDSotTW25BkfbyspojGg(result, T23_);
		}
		LA4_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41):
	{
		{
			NIM_BOOL T27_;
			NI T28_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T32_;
			T27_ = (NIM_BOOL)0;
			T28_ = (NI)0;
			T28_ = len__P89cqdlERShb9alU3iC0yj8wast(ri);
			T27_ = (((NI) 0) < T28_);
			if (!(T27_)) goto LA29_;
			T27_ = isDangerousSeq__L3rR2eriYpBBvT5CvR8Rnginjectdestructors((*ri).typ);
			LA29_: ;
			if (!T27_) goto LA30_;
			result = genCopy__rZPv7jnASufmG3HjltXEIQ(c, dest, ri);
			T32_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T32_ = p__PTsSyPSfjwGJy89cb8X3Ylw(ri, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
			add__P8dDSotTW25BkfbyspojGg(result, T32_);
		}
		goto LA25_;
		LA30_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T34_;
			T34_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T34_ = p__PTsSyPSfjwGJy89cb8X3Ylw(ri, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
			result = genSink__v3XxtcbOOdZOlr1QqHxmIA(c, dest, T34_, isDecl);
		}
		LA25_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 155):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T36_;
		T36_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T36_ = p__PTsSyPSfjwGJy89cb8X3Ylw(ri, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
		result = genSink__v3XxtcbOOdZOlr1QqHxmIA(c, dest, T36_, isDecl);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		{
			NIM_BOOL T40_;
			T40_ = (NIM_BOOL)0;
			T40_ = ((*dest).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T40_)) goto LA41_;
			T40_ = ((*dest)._kind_4.sym == (*ri)._kind_4.sym);
			LA41_: ;
			if (!T40_) goto LA42_;
			result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*dest).info);
		}
		goto LA38_;
		LA42_: ;
		{
			NIM_BOOL T45_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* snk_2;
			tyArray__AB6yfoUgfWM2NtGe9bzkCmw T49_;
			T45_ = (NIM_BOOL)0;
			T45_ = isSinkParam__Ye2MiAptq3GrXxTQeyXNeA_4ast((*ri)._kind_4.sym);
			if (!(T45_)) goto LA46_;
			T45_ = isLastRead__cXlunxLFt2VNVqtuIWbJWg_2(ri, c);
			LA46_: ;
			if (!T45_) goto LA47_;
			snk_2 = genSink__v3XxtcbOOdZOlr1QqHxmIA(c, dest, ri, isDecl);
			nimZeroMem((void*)T49_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
			T49_[0] = snk_2;
			T49_[1] = genWasMoved__Tj0baeAMp9cue8UExOxI59bg(c, ri);
			result = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T49_, 2);
		}
		goto LA38_;
		LA47_: ;
		{
			NIM_BOOL T51_;
			NIM_BOOL T52_;
			NIM_BOOL T53_;
			NIM_BOOL T54_;
			NIM_BOOL T59_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* snk_3;
			tyArray__AB6yfoUgfWM2NtGe9bzkCmw T62_;
			T51_ = (NIM_BOOL)0;
			T52_ = (NIM_BOOL)0;
			T53_ = (NIM_BOOL)0;
			T54_ = (NIM_BOOL)0;
			T54_ = !(((*(*ri)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3)));
			if (!(T54_)) goto LA55_;
			T54_ = ((*(*ri)._kind_4.sym).owner == (*c).owner);
			LA55_: ;
			T53_ = T54_;
			if (!(T53_)) goto LA56_;
			T53_ = isLastRead__cXlunxLFt2VNVqtuIWbJWg_2(ri, c);
			LA56_: ;
			T52_ = T53_;
			if (!(T52_)) goto LA57_;
			T52_ = canBeMoved__s3DnXtISoFCBs0uMQckThQ_2injectdestructors((&(*c)), (*dest).typ);
			LA57_: ;
			T51_ = T52_;
			if (!(T51_)) goto LA58_;
			T59_ = (NIM_BOOL)0;
			T59_ = isCursor__U5eKhGaSBKhqqv1iUFOkVQ(ri, (&(*c)));
			T51_ = !(T59_);
			LA58_: ;
			if (!T51_) goto LA60_;
			snk_3 = genSink__v3XxtcbOOdZOlr1QqHxmIA(c, dest, ri, isDecl);
			nimZeroMem((void*)T62_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
			T62_[0] = snk_3;
			T62_[1] = genWasMoved__Tj0baeAMp9cue8UExOxI59bg(c, ri);
			result = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T62_, 2);
		}
		goto LA38_;
		LA60_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T64_;
			result = genCopy__rZPv7jnASufmG3HjltXEIQ(c, dest, ri);
			T64_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T64_ = p__PTsSyPSfjwGJy89cb8X3Ylw(ri, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
			add__P8dDSotTW25BkfbyspojGg(result, T64_);
		}
		LA38_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 60):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 67):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T66_;
		T66_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T66_ = p__PTsSyPSfjwGJy89cb8X3Ylw(ri, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 2));
		result = genSink__v3XxtcbOOdZOlr1QqHxmIA(c, dest, T66_, isDecl);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 127):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 48):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 97):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 106):
	{
		switch ((*ri).kind) {
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126):
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T79_;
			{
				NI T71_;
				T71_ = (NI)0;
				T71_ = len__P89cqdlERShb9alU3iC0yj8wast(ri);
				if (!(T71_ == ((NI) 0))) goto LA72_;
				result = ri;
				goto BeforeRet_;
			}
			LA72_: ;
			result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(ri);
			{
				NI iX60gensym406_;
				NI colontmp_;
				NI T75_;
				NI i;
				iX60gensym406_ = (NI)0;
				colontmp_ = (NI)0;
				T75_ = (NI)0;
				T75_ = len__P89cqdlERShb9alU3iC0yj8wast(ri);
				colontmp_ = (NI)(T75_ - ((NI) 1));
				i = ((NI) 0);
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T78_;
						if (!(i < colontmp_)) goto LA77;
						iX60gensym406_ = i;
						T78_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T78_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*ri)._kind_6.sons->data[iX60gensym406_], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
						add__P8dDSotTW25BkfbyspojGg(result, T78_);
						i += ((NI) 1);
					} LA77: ;
				}
			}
			T79_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI T82_;
				NIM_BOOL T83_;
				NI T86_;
				T82_ = (NI)0;
				T82_ = len__P89cqdlERShb9alU3iC0yj8wast(ri);
				T83_ = (NIM_BOOL)0;
				T83_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*(*ri)._kind_6.sons->data[(NI)(T82_ - ((NI) 1))]).typ);
				if (!T83_) goto LA84_;
				T86_ = (NI)0;
				T86_ = len__P89cqdlERShb9alU3iC0yj8wast(ri);
				T79_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*ri)._kind_6.sons->data[(NI)(T86_ - ((NI) 1))], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
			}
			goto LA80_;
			LA84_: ;
			{
				NI T88_;
				T88_ = (NI)0;
				T88_ = len__P89cqdlERShb9alU3iC0yj8wast(ri);
				T79_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(dest, (*ri)._kind_6.sons->data[(NI)(T88_ - ((NI) 1))], c, s, isDecl);
			}
			LA80_: ;
			add__P8dDSotTW25BkfbyspojGg(result, T79_);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 97):
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T90_;
			result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(ri);
			T90_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T90_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*ri)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
			add__P8dDSotTW25BkfbyspojGg(result, T90_);
			{
				NI iX60gensym406__2;
				NI colontmp__2;
				NI i_2;
				iX60gensym406__2 = (NI)0;
				colontmp__2 = (NI)0;
				colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(ri);
				i_2 = ((NI) 1);
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* itX60gensym406_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchX60gensym406_;
						tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ ofScopeX60gensym406_;
						NI T98_;
						if (!(i_2 < colontmp__2)) goto LA93;
						iX60gensym406__2 = i_2;
						itX60gensym406_ = (*ri)._kind_6.sons->data[iX60gensym406__2];
						branchX60gensym406_ = shallowCopy__Dsjo9bte8vGxzhtcSrsTyiQ_3(itX60gensym406_);
						{
							NI jX60gensym406_;
							NI colontmp__3;
							NI T95_;
							NI i_3;
							jX60gensym406_ = (NI)0;
							colontmp__3 = (NI)0;
							T95_ = (NI)0;
							T95_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym406_);
							colontmp__3 = (NI)(T95_ - ((NI) 1));
							i_3 = ((NI) 0);
							{
								while (1) {
									if (!(i_3 < colontmp__3)) goto LA97;
									jX60gensym406_ = i_3;
									asgnRef((void**) (&(*branchX60gensym406_)._kind_6.sons->data[jX60gensym406_]), copyTree__Dsjo9bte8vGxzhtcSrsTyiQ((*itX60gensym406_)._kind_6.sons->data[jX60gensym406_]));
									i_3 += ((NI) 1);
								} LA97: ;
							}
						}
						nimZeroMem((void*)(&ofScopeX60gensym406_), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
						nestedScope__ni4yTthPfyagpkFgPFjv8Q(s, (&ofScopeX60gensym406_));
						T98_ = (NI)0;
						T98_ = len__P89cqdlERShb9alU3iC0yj8wast(branchX60gensym406_);
						{
							NIM_BOOL T101_;
							NI T102_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T106_;
							T101_ = (NIM_BOOL)0;
							T102_ = (NI)0;
							T102_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym406_);
							T101_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*(*itX60gensym406_)._kind_6.sons->data[(NI)(T102_ - ((NI) 1))]).typ);
							if (T101_) goto LA103_;
							T101_ = NIM_TRUE;
							LA103_: ;
							if (!T101_) goto LA104_;
							T106_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							{
								NI T109_;
								NIM_BOOL T110_;
								NI T113_;
								T109_ = (NI)0;
								T109_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym406_);
								T110_ = (NIM_BOOL)0;
								T110_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*(*itX60gensym406_)._kind_6.sons->data[(NI)(T109_ - ((NI) 1))]).typ);
								if (!T110_) goto LA111_;
								T113_ = (NI)0;
								T113_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym406_);
								T106_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*itX60gensym406_)._kind_6.sons->data[(NI)(T113_ - ((NI) 1))], c, (&ofScopeX60gensym406_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
							}
							goto LA107_;
							LA111_: ;
							{
								NI T115_;
								T115_ = (NI)0;
								T115_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym406_);
								T106_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(dest, (*itX60gensym406_)._kind_6.sons->data[(NI)(T115_ - ((NI) 1))], c, (&ofScopeX60gensym406_), isDecl);
							}
							LA107_: ;
							asgnRef((void**) (&(*branchX60gensym406_)._kind_6.sons->data[(NI)(T98_ - ((NI) 1))]), processScope__ur1q32ALAU6hCaCkFnKb1w(c, (&ofScopeX60gensym406_), T106_));
						}
						goto LA99_;
						LA104_: ;
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym444_;
							NI T117_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym444_;
							NI T118_;
							NI T119_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym444_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym444_;
							NI T144_;
							T117_ = (NI)0;
							T117_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym406_);
							resultX60gensym444_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*itX60gensym406_)._kind_6.sons->data[(NI)(T117_ - ((NI) 1))]).info);
							T118_ = (NI)0;
							T118_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym406_);
							T119_ = (NI)0;
							T119_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym406_);
							tmpX60gensym444_ = getTemp__KB0wf28km02QmgKPPOnujQ(c, ofScopeX60gensym406_.parent, (*(*itX60gensym406_)._kind_6.sons->data[(NI)(T118_ - ((NI) 1))]).typ, (*(*itX60gensym406_)._kind_6.sons->data[(NI)(T119_ - ((NI) 1))]).info);
							(*(*tmpX60gensym444_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 44)) & 63);
							{
								NI T122_;
								NIM_BOOL T123_;
								NI T126_;
								T122_ = (NI)0;
								T122_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym406_);
								T123_ = (NIM_BOOL)0;
								T123_ = hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors((&(*c)), (*(*itX60gensym406_)._kind_6.sons->data[(NI)(T122_ - ((NI) 1))]).typ);
								if (!T123_) goto LA124_;
								T126_ = (NI)0;
								T126_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym406_);
								cpyX60gensym444_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(tmpX60gensym444_, (*itX60gensym406_)._kind_6.sons->data[(NI)(T126_ - ((NI) 1))], c, (&ofScopeX60gensym406_), NIM_TRUE);
							}
							goto LA120_;
							LA124_: ;
							{
								tyArray__AB6yfoUgfWM2NtGe9bzkCmw T128_;
								NI T129_;
								nimZeroMem((void*)T128_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
								T128_[0] = tmpX60gensym444_;
								T129_ = (NI)0;
								T129_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym406_);
								T128_[1] = p__PTsSyPSfjwGJy89cb8X3Ylw((*itX60gensym406_)._kind_6.sons->data[(NI)(T129_ - ((NI) 1))], c, (&ofScopeX60gensym406_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
								cpyX60gensym444_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T128_, 2);
							}
							LA120_: ;
							{
								NI T132_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym444_;
								NI T135_;
								T132_ = (ofScopeX60gensym406_.vars ? ofScopeX60gensym406_.vars->Sup.len : 0);
								if (!(((NI) 0) < T132_)) goto LA133_;
								T135_ = (NI)0;
								T135_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym406_);
								varSectionX60gensym444_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*itX60gensym406_)._kind_6.sons->data[(NI)(T135_ - ((NI) 1))]).info);
								{
									tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w** tmpX60gensym444__2;
									NI i_4;
									NI L;
									NI T137_;
									tmpX60gensym444__2 = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w**)0;
									i_4 = ((NI) 0);
									T137_ = (ofScopeX60gensym406_.vars ? ofScopeX60gensym406_.vars->Sup.len : 0);
									L = T137_;
									{
										while (1) {
											tyArray__T6RKPw8xfAeNaoei9aZGzXg T140_;
											NI T141_;
											NI T142_;
											tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T143_;
											if (!(i_4 < L)) goto LA139;
											tmpX60gensym444__2 = &ofScopeX60gensym406_.vars->data[i_4];
											nimZeroMem((void*)T140_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
											T140_[0] = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*tmpX60gensym444__2));
											T141_ = (NI)0;
											T141_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym406_);
											T140_[1] = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym406_)._kind_6.sons->data[(NI)(T141_ - ((NI) 1))]).info);
											T142_ = (NI)0;
											T142_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym406_);
											T140_[2] = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym406_)._kind_6.sons->data[(NI)(T142_ - ((NI) 1))]).info);
											T143_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
											T143_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T140_, 3);
											add__P8dDSotTW25BkfbyspojGg(varSectionX60gensym444_, T143_);
											i_4 += ((NI) 1);
										} LA139: ;
									}
								}
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym444_, varSectionX60gensym444_);
							}
							LA133_: ;
							T144_ = (NI)0;
							T144_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym406_);
							finSectionX60gensym444_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*itX60gensym406_)._kind_6.sons->data[(NI)(T144_ - ((NI) 1))]).info);
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym444_;
								NI i_5;
								NI L_2;
								NI T146_;
								mX60gensym444_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
								i_5 = ((NI) 0);
								T146_ = (ofScopeX60gensym406_.wasMoved ? ofScopeX60gensym406_.wasMoved->Sup.len : 0);
								L_2 = T146_;
								{
									while (1) {
										if (!(i_5 < L_2)) goto LA148;
										mX60gensym444_ = &ofScopeX60gensym406_.wasMoved->data[i_5];
										add__P8dDSotTW25BkfbyspojGg(finSectionX60gensym444_, (*mX60gensym444_));
										i_5 += ((NI) 1);
									} LA148: ;
								}
							}
							{
								NI iX60gensym444_;
								NI colontmp__4;
								NI T150_;
								NI res;
								iX60gensym444_ = (NI)0;
								colontmp__4 = (NI)0;
								T150_ = ((ofScopeX60gensym406_.final ? ofScopeX60gensym406_.final->Sup.len : 0)-1);
								colontmp__4 = T150_;
								res = colontmp__4;
								{
									while (1) {
										if (!(((NI) 0) <= res)) goto LA152;
										iX60gensym444_ = res;
										add__P8dDSotTW25BkfbyspojGg(finSectionX60gensym444_, ofScopeX60gensym406_.final->data[iX60gensym444_]);
										res -= ((NI) 1);
									} LA152: ;
								}
							}
							{
								tyArray__AB6yfoUgfWM2NtGe9bzkCmw T157_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T158_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T159_;
								if (!ofScopeX60gensym406_.needsTry) goto LA155_;
								nimZeroMem((void*)T157_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
								T157_[0] = cpyX60gensym444_;
								T157_[1] = moveOrCopy__cVidUei9a721N3SvKgbe69bw(dest, tmpX60gensym444_, c, ofScopeX60gensym406_.parent, isDecl);
								T158_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T158_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T157_, 2);
								T159_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T159_ = newTryFinally__WU9bcLfpyH2zHBQqGau0nNQ(T158_, finSectionX60gensym444_);
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym444_, T159_);
							}
							goto LA153_;
							LA155_: ;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T161_;
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym444_, cpyX60gensym444_);
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym444_, finSectionX60gensym444_);
								T161_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T161_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(dest, tmpX60gensym444_, c, ofScopeX60gensym406_.parent, isDecl);
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym444_, T161_);
							}
							LA153_: ;
							{
								NIM_BOOL T166_;
								if (!!((ofScopeX60gensym406_.parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL)))) goto LA164_;
								T166_ = (NIM_BOOL)0;
								T166_ = (*ofScopeX60gensym406_.parent).needsTry;
								if (T166_) goto LA167_;
								T166_ = ofScopeX60gensym406_.needsTry;
								LA167_: ;
								(*ofScopeX60gensym406_.parent).needsTry = T166_;
							}
							LA164_: ;
							asgnRef((void**) (&(*branchX60gensym406_)._kind_6.sons->data[(NI)(T98_ - ((NI) 1))]), resultX60gensym444_);
						}
						LA99_: ;
						add__P8dDSotTW25BkfbyspojGg(result, branchX60gensym406_);
						i_2 += ((NI) 1);
					} LA93: ;
				}
			}
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 96):
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T169_;
			tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ bodyScopeX60gensym406_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* bodyResultX60gensym406_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T170_;
			(*c).inLoop += ((NI) 1);
			(*c).inLoopCond += ((NI) 1);
			result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(ri);
			T169_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T169_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*ri)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
			add__P8dDSotTW25BkfbyspojGg(result, T169_);
			(*c).inLoopCond -= ((NI) 1);
			nimZeroMem((void*)(&bodyScopeX60gensym406_), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
			nestedScope__ni4yTthPfyagpkFgPFjv8Q(s, (&bodyScopeX60gensym406_));
			bodyResultX60gensym406_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*ri)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym406_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
			T170_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T170_ = processScope__ur1q32ALAU6hCaCkFnKb1w(c, (&bodyScopeX60gensym406_), bodyResultX60gensym406_);
			add__P8dDSotTW25BkfbyspojGg(result, T170_);
			(*c).inLoop -= ((NI) 1);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 95):
		{
			NI lastX60gensym406_;
			NI T172_;
			tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ bodyScopeX60gensym406__2;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* bodyResultX60gensym406__2;
			(*c).inLoop += ((NI) 1);
			result = shallowCopy__Dsjo9bte8vGxzhtcSrsTyiQ_3(ri);
			T172_ = (NI)0;
			T172_ = len__P89cqdlERShb9alU3iC0yj8wast(ri);
			lastX60gensym406_ = (NI)(T172_ - ((NI) 1));
			{
				NI iX60gensym406__3;
				NI colontmp__5;
				NI i_6;
				iX60gensym406__3 = (NI)0;
				colontmp__5 = (NI)0;
				colontmp__5 = (NI)(lastX60gensym406_ - ((NI) 1));
				i_6 = ((NI) 0);
				{
					while (1) {
						if (!(i_6 < colontmp__5)) goto LA175;
						iX60gensym406__3 = i_6;
						asgnRef((void**) (&(*result)._kind_6.sons->data[iX60gensym406__3]), (*ri)._kind_6.sons->data[iX60gensym406__3]);
						i_6 += ((NI) 1);
					} LA175: ;
				}
			}
			asgnRef((void**) (&(*result)._kind_6.sons->data[(NI)(lastX60gensym406_ - ((NI) 1))]), p__PTsSyPSfjwGJy89cb8X3Ylw((*ri)._kind_6.sons->data[(NI)(lastX60gensym406_ - ((NI) 1))], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0)));
			nimZeroMem((void*)(&bodyScopeX60gensym406__2), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
			nestedScope__ni4yTthPfyagpkFgPFjv8Q(s, (&bodyScopeX60gensym406__2));
			bodyResultX60gensym406__2 = p__PTsSyPSfjwGJy89cb8X3Ylw((*ri)._kind_6.sons->data[lastX60gensym406_], c, (&bodyScopeX60gensym406__2), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
			asgnRef((void**) (&(*result)._kind_6.sons->data[lastX60gensym406_]), processScope__ur1q32ALAU6hCaCkFnKb1w(c, (&bodyScopeX60gensym406__2), bodyResultX60gensym406__2));
			(*c).inLoop -= ((NI) 1);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 112):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 127):
		{
			tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ bodyScopeX60gensym406__3;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T177_;
			result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(ri);
			add__P8dDSotTW25BkfbyspojGg(result, (*ri)._kind_6.sons->data[((NI) 0)]);
			nimZeroMem((void*)(&bodyScopeX60gensym406__3), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
			nestedScope__ni4yTthPfyagpkFgPFjv8Q(s, (&bodyScopeX60gensym406__3));
			T177_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NIM_BOOL T180_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T184_;
				T180_ = (NIM_BOOL)0;
				T180_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*(*ri)._kind_6.sons->data[((NI) 1)]).typ);
				if (T180_) goto LA181_;
				T180_ = NIM_TRUE;
				LA181_: ;
				if (!T180_) goto LA182_;
				T184_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T184_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(dest, (*ri)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym406__3), isDecl);
				T177_ = processScope__ur1q32ALAU6hCaCkFnKb1w(c, (&bodyScopeX60gensym406__3), T184_);
			}
			goto LA178_;
			LA182_: ;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym466_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym466_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym466_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym466_;
				resultX60gensym466_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
				tmpX60gensym466_ = getTemp__KB0wf28km02QmgKPPOnujQ(c, bodyScopeX60gensym406__3.parent, (*(*ri)._kind_6.sons->data[((NI) 1)]).typ, (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
				(*(*tmpX60gensym466_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 44)) & 63);
				{
					NIM_BOOL T188_;
					T188_ = (NIM_BOOL)0;
					T188_ = hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors((&(*c)), (*(*ri)._kind_6.sons->data[((NI) 1)]).typ);
					if (!T188_) goto LA189_;
					cpyX60gensym466_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(tmpX60gensym466_, (*ri)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym406__3), NIM_TRUE);
				}
				goto LA186_;
				LA189_: ;
				{
					tyArray__AB6yfoUgfWM2NtGe9bzkCmw T192_;
					nimZeroMem((void*)T192_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
					T192_[0] = tmpX60gensym466_;
					T192_[1] = p__PTsSyPSfjwGJy89cb8X3Ylw((*ri)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym406__3), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
					cpyX60gensym466_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T192_, 2);
				}
				LA186_: ;
				{
					NI T195_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym466_;
					T195_ = (bodyScopeX60gensym406__3.vars ? bodyScopeX60gensym406__3.vars->Sup.len : 0);
					if (!(((NI) 0) < T195_)) goto LA196_;
					varSectionX60gensym466_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
					{
						tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w** tmpX60gensym466__2;
						NI i_7;
						NI L_3;
						NI T199_;
						tmpX60gensym466__2 = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w**)0;
						i_7 = ((NI) 0);
						T199_ = (bodyScopeX60gensym406__3.vars ? bodyScopeX60gensym406__3.vars->Sup.len : 0);
						L_3 = T199_;
						{
							while (1) {
								tyArray__T6RKPw8xfAeNaoei9aZGzXg T202_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T203_;
								if (!(i_7 < L_3)) goto LA201;
								tmpX60gensym466__2 = &bodyScopeX60gensym406__3.vars->data[i_7];
								nimZeroMem((void*)T202_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
								T202_[0] = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*tmpX60gensym466__2));
								T202_[1] = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
								T202_[2] = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
								T203_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T203_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T202_, 3);
								add__P8dDSotTW25BkfbyspojGg(varSectionX60gensym466_, T203_);
								i_7 += ((NI) 1);
							} LA201: ;
						}
					}
					add__P8dDSotTW25BkfbyspojGg(resultX60gensym466_, varSectionX60gensym466_);
				}
				LA196_: ;
				finSectionX60gensym466_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym466_;
					NI i_8;
					NI L_4;
					NI T205_;
					mX60gensym466_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
					i_8 = ((NI) 0);
					T205_ = (bodyScopeX60gensym406__3.wasMoved ? bodyScopeX60gensym406__3.wasMoved->Sup.len : 0);
					L_4 = T205_;
					{
						while (1) {
							if (!(i_8 < L_4)) goto LA207;
							mX60gensym466_ = &bodyScopeX60gensym406__3.wasMoved->data[i_8];
							add__P8dDSotTW25BkfbyspojGg(finSectionX60gensym466_, (*mX60gensym466_));
							i_8 += ((NI) 1);
						} LA207: ;
					}
				}
				{
					NI iX60gensym466_;
					NI colontmp__6;
					NI T209_;
					NI res_2;
					iX60gensym466_ = (NI)0;
					colontmp__6 = (NI)0;
					T209_ = ((bodyScopeX60gensym406__3.final ? bodyScopeX60gensym406__3.final->Sup.len : 0)-1);
					colontmp__6 = T209_;
					res_2 = colontmp__6;
					{
						while (1) {
							if (!(((NI) 0) <= res_2)) goto LA211;
							iX60gensym466_ = res_2;
							add__P8dDSotTW25BkfbyspojGg(finSectionX60gensym466_, bodyScopeX60gensym406__3.final->data[iX60gensym466_]);
							res_2 -= ((NI) 1);
						} LA211: ;
					}
				}
				{
					tyArray__AB6yfoUgfWM2NtGe9bzkCmw T216_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T217_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T218_;
					if (!bodyScopeX60gensym406__3.needsTry) goto LA214_;
					nimZeroMem((void*)T216_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
					T216_[0] = cpyX60gensym466_;
					T216_[1] = moveOrCopy__cVidUei9a721N3SvKgbe69bw(dest, tmpX60gensym466_, c, bodyScopeX60gensym406__3.parent, isDecl);
					T217_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T217_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T216_, 2);
					T218_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T218_ = newTryFinally__WU9bcLfpyH2zHBQqGau0nNQ(T217_, finSectionX60gensym466_);
					add__P8dDSotTW25BkfbyspojGg(resultX60gensym466_, T218_);
				}
				goto LA212_;
				LA214_: ;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T220_;
					add__P8dDSotTW25BkfbyspojGg(resultX60gensym466_, cpyX60gensym466_);
					add__P8dDSotTW25BkfbyspojGg(resultX60gensym466_, finSectionX60gensym466_);
					T220_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T220_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(dest, tmpX60gensym466_, c, bodyScopeX60gensym406__3.parent, isDecl);
					add__P8dDSotTW25BkfbyspojGg(resultX60gensym466_, T220_);
				}
				LA212_: ;
				{
					NIM_BOOL T225_;
					if (!!((bodyScopeX60gensym406__3.parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL)))) goto LA223_;
					T225_ = (NIM_BOOL)0;
					T225_ = (*bodyScopeX60gensym406__3.parent).needsTry;
					if (T225_) goto LA226_;
					T225_ = bodyScopeX60gensym406__3.needsTry;
					LA226_: ;
					(*bodyScopeX60gensym406__3.parent).needsTry = T225_;
				}
				LA223_: ;
				T177_ = resultX60gensym466_;
			}
			LA178_: ;
			add__P8dDSotTW25BkfbyspojGg(result, T177_);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 48):
		{
			result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(ri);
			{
				NI iX60gensym406__4;
				NI colontmp__7;
				NI i_9;
				iX60gensym406__4 = (NI)0;
				colontmp__7 = (NI)0;
				colontmp__7 = len__P89cqdlERShb9alU3iC0yj8wast(ri);
				i_9 = ((NI) 0);
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* itX60gensym406__2;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchX60gensym406__2;
						tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ branchScopeX60gensym406_;
						NI T235_;
						if (!(i_9 < colontmp__7)) goto LA230;
						iX60gensym406__4 = i_9;
						itX60gensym406__2 = (*ri)._kind_6.sons->data[iX60gensym406__4];
						branchX60gensym406__2 = shallowCopy__Dsjo9bte8vGxzhtcSrsTyiQ_3(itX60gensym406__2);
						nimZeroMem((void*)(&branchScopeX60gensym406_), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
						nestedScope__ni4yTthPfyagpkFgPFjv8Q(s, (&branchScopeX60gensym406_));
						{
							if (!((*itX60gensym406__2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86) || (*itX60gensym406__2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 49))) goto LA233_;
							asgnRef((void**) (&(*branchX60gensym406__2)._kind_6.sons->data[((NI) 0)]), p__PTsSyPSfjwGJy89cb8X3Ylw((*itX60gensym406__2)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0)));
						}
						LA233_: ;
						T235_ = (NI)0;
						T235_ = len__P89cqdlERShb9alU3iC0yj8wast(branchX60gensym406__2);
						{
							NIM_BOOL T238_;
							NI T239_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T243_;
							T238_ = (NIM_BOOL)0;
							T239_ = (NI)0;
							T239_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym406__2);
							T238_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*(*itX60gensym406__2)._kind_6.sons->data[(NI)(T239_ - ((NI) 1))]).typ);
							if (T238_) goto LA240_;
							T238_ = NIM_TRUE;
							LA240_: ;
							if (!T238_) goto LA241_;
							T243_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							{
								NI T246_;
								NIM_BOOL T247_;
								NI T250_;
								T246_ = (NI)0;
								T246_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym406__2);
								T247_ = (NIM_BOOL)0;
								T247_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*(*itX60gensym406__2)._kind_6.sons->data[(NI)(T246_ - ((NI) 1))]).typ);
								if (!T247_) goto LA248_;
								T250_ = (NI)0;
								T250_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym406__2);
								T243_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*itX60gensym406__2)._kind_6.sons->data[(NI)(T250_ - ((NI) 1))], c, (&branchScopeX60gensym406_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
							}
							goto LA244_;
							LA248_: ;
							{
								NI T252_;
								T252_ = (NI)0;
								T252_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym406__2);
								T243_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(dest, (*itX60gensym406__2)._kind_6.sons->data[(NI)(T252_ - ((NI) 1))], c, (&branchScopeX60gensym406_), isDecl);
							}
							LA244_: ;
							asgnRef((void**) (&(*branchX60gensym406__2)._kind_6.sons->data[(NI)(T235_ - ((NI) 1))]), processScope__ur1q32ALAU6hCaCkFnKb1w(c, (&branchScopeX60gensym406_), T243_));
						}
						goto LA236_;
						LA241_: ;
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym495_;
							NI T254_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym495_;
							NI T255_;
							NI T256_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym495_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym495_;
							NI T281_;
							T254_ = (NI)0;
							T254_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym406__2);
							resultX60gensym495_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*itX60gensym406__2)._kind_6.sons->data[(NI)(T254_ - ((NI) 1))]).info);
							T255_ = (NI)0;
							T255_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym406__2);
							T256_ = (NI)0;
							T256_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym406__2);
							tmpX60gensym495_ = getTemp__KB0wf28km02QmgKPPOnujQ(c, branchScopeX60gensym406_.parent, (*(*itX60gensym406__2)._kind_6.sons->data[(NI)(T255_ - ((NI) 1))]).typ, (*(*itX60gensym406__2)._kind_6.sons->data[(NI)(T256_ - ((NI) 1))]).info);
							(*(*tmpX60gensym495_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 44)) & 63);
							{
								NI T259_;
								NIM_BOOL T260_;
								NI T263_;
								T259_ = (NI)0;
								T259_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym406__2);
								T260_ = (NIM_BOOL)0;
								T260_ = hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors((&(*c)), (*(*itX60gensym406__2)._kind_6.sons->data[(NI)(T259_ - ((NI) 1))]).typ);
								if (!T260_) goto LA261_;
								T263_ = (NI)0;
								T263_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym406__2);
								cpyX60gensym495_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(tmpX60gensym495_, (*itX60gensym406__2)._kind_6.sons->data[(NI)(T263_ - ((NI) 1))], c, (&branchScopeX60gensym406_), NIM_TRUE);
							}
							goto LA257_;
							LA261_: ;
							{
								tyArray__AB6yfoUgfWM2NtGe9bzkCmw T265_;
								NI T266_;
								nimZeroMem((void*)T265_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
								T265_[0] = tmpX60gensym495_;
								T266_ = (NI)0;
								T266_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym406__2);
								T265_[1] = p__PTsSyPSfjwGJy89cb8X3Ylw((*itX60gensym406__2)._kind_6.sons->data[(NI)(T266_ - ((NI) 1))], c, (&branchScopeX60gensym406_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
								cpyX60gensym495_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T265_, 2);
							}
							LA257_: ;
							{
								NI T269_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym495_;
								NI T272_;
								T269_ = (branchScopeX60gensym406_.vars ? branchScopeX60gensym406_.vars->Sup.len : 0);
								if (!(((NI) 0) < T269_)) goto LA270_;
								T272_ = (NI)0;
								T272_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym406__2);
								varSectionX60gensym495_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*itX60gensym406__2)._kind_6.sons->data[(NI)(T272_ - ((NI) 1))]).info);
								{
									tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w** tmpX60gensym495__2;
									NI i_10;
									NI L_5;
									NI T274_;
									tmpX60gensym495__2 = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w**)0;
									i_10 = ((NI) 0);
									T274_ = (branchScopeX60gensym406_.vars ? branchScopeX60gensym406_.vars->Sup.len : 0);
									L_5 = T274_;
									{
										while (1) {
											tyArray__T6RKPw8xfAeNaoei9aZGzXg T277_;
											NI T278_;
											NI T279_;
											tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T280_;
											if (!(i_10 < L_5)) goto LA276;
											tmpX60gensym495__2 = &branchScopeX60gensym406_.vars->data[i_10];
											nimZeroMem((void*)T277_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
											T277_[0] = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*tmpX60gensym495__2));
											T278_ = (NI)0;
											T278_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym406__2);
											T277_[1] = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym406__2)._kind_6.sons->data[(NI)(T278_ - ((NI) 1))]).info);
											T279_ = (NI)0;
											T279_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym406__2);
											T277_[2] = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym406__2)._kind_6.sons->data[(NI)(T279_ - ((NI) 1))]).info);
											T280_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
											T280_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T277_, 3);
											add__P8dDSotTW25BkfbyspojGg(varSectionX60gensym495_, T280_);
											i_10 += ((NI) 1);
										} LA276: ;
									}
								}
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym495_, varSectionX60gensym495_);
							}
							LA270_: ;
							T281_ = (NI)0;
							T281_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym406__2);
							finSectionX60gensym495_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*itX60gensym406__2)._kind_6.sons->data[(NI)(T281_ - ((NI) 1))]).info);
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym495_;
								NI i_11;
								NI L_6;
								NI T283_;
								mX60gensym495_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
								i_11 = ((NI) 0);
								T283_ = (branchScopeX60gensym406_.wasMoved ? branchScopeX60gensym406_.wasMoved->Sup.len : 0);
								L_6 = T283_;
								{
									while (1) {
										if (!(i_11 < L_6)) goto LA285;
										mX60gensym495_ = &branchScopeX60gensym406_.wasMoved->data[i_11];
										add__P8dDSotTW25BkfbyspojGg(finSectionX60gensym495_, (*mX60gensym495_));
										i_11 += ((NI) 1);
									} LA285: ;
								}
							}
							{
								NI iX60gensym495_;
								NI colontmp__8;
								NI T287_;
								NI res_3;
								iX60gensym495_ = (NI)0;
								colontmp__8 = (NI)0;
								T287_ = ((branchScopeX60gensym406_.final ? branchScopeX60gensym406_.final->Sup.len : 0)-1);
								colontmp__8 = T287_;
								res_3 = colontmp__8;
								{
									while (1) {
										if (!(((NI) 0) <= res_3)) goto LA289;
										iX60gensym495_ = res_3;
										add__P8dDSotTW25BkfbyspojGg(finSectionX60gensym495_, branchScopeX60gensym406_.final->data[iX60gensym495_]);
										res_3 -= ((NI) 1);
									} LA289: ;
								}
							}
							{
								tyArray__AB6yfoUgfWM2NtGe9bzkCmw T294_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T295_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T296_;
								if (!branchScopeX60gensym406_.needsTry) goto LA292_;
								nimZeroMem((void*)T294_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
								T294_[0] = cpyX60gensym495_;
								T294_[1] = moveOrCopy__cVidUei9a721N3SvKgbe69bw(dest, tmpX60gensym495_, c, branchScopeX60gensym406_.parent, isDecl);
								T295_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T295_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T294_, 2);
								T296_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T296_ = newTryFinally__WU9bcLfpyH2zHBQqGau0nNQ(T295_, finSectionX60gensym495_);
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym495_, T296_);
							}
							goto LA290_;
							LA292_: ;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T298_;
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym495_, cpyX60gensym495_);
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym495_, finSectionX60gensym495_);
								T298_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T298_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(dest, tmpX60gensym495_, c, branchScopeX60gensym406_.parent, isDecl);
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym495_, T298_);
							}
							LA290_: ;
							{
								NIM_BOOL T303_;
								if (!!((branchScopeX60gensym406_.parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL)))) goto LA301_;
								T303_ = (NIM_BOOL)0;
								T303_ = (*branchScopeX60gensym406_.parent).needsTry;
								if (T303_) goto LA304_;
								T303_ = branchScopeX60gensym406_.needsTry;
								LA304_: ;
								(*branchScopeX60gensym406_.parent).needsTry = T303_;
							}
							LA301_: ;
							asgnRef((void**) (&(*branchX60gensym406__2)._kind_6.sons->data[(NI)(T235_ - ((NI) 1))]), resultX60gensym495_);
						}
						LA236_: ;
						add__P8dDSotTW25BkfbyspojGg(result, branchX60gensym406__2);
						i_9 += ((NI) 1);
					} LA230: ;
				}
			}
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 106):
		{
			tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ tryScopeX60gensym406_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T306_;
			result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(ri);
			nimZeroMem((void*)(&tryScopeX60gensym406_), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
			nestedScope__ni4yTthPfyagpkFgPFjv8Q(s, (&tryScopeX60gensym406_));
			T306_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NIM_BOOL T309_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T313_;
				T309_ = (NIM_BOOL)0;
				T309_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*(*ri)._kind_6.sons->data[((NI) 0)]).typ);
				if (T309_) goto LA310_;
				T309_ = NIM_TRUE;
				LA310_: ;
				if (!T309_) goto LA311_;
				T313_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				{
					NIM_BOOL T316_;
					T316_ = (NIM_BOOL)0;
					T316_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*(*ri)._kind_6.sons->data[((NI) 0)]).typ);
					if (!T316_) goto LA317_;
					T313_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*ri)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym406_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
				}
				goto LA314_;
				LA317_: ;
				{
					T313_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(dest, (*ri)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym406_), isDecl);
				}
				LA314_: ;
				T306_ = processScope__ur1q32ALAU6hCaCkFnKb1w(c, (&tryScopeX60gensym406_), T313_);
			}
			goto LA307_;
			LA311_: ;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym511_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym511_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym511_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym511_;
				resultX60gensym511_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*ri)._kind_6.sons->data[((NI) 0)]).info);
				tmpX60gensym511_ = getTemp__KB0wf28km02QmgKPPOnujQ(c, tryScopeX60gensym406_.parent, (*(*ri)._kind_6.sons->data[((NI) 0)]).typ, (*(*ri)._kind_6.sons->data[((NI) 0)]).info);
				(*(*tmpX60gensym511_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 44)) & 63);
				{
					NIM_BOOL T323_;
					T323_ = (NIM_BOOL)0;
					T323_ = hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors((&(*c)), (*(*ri)._kind_6.sons->data[((NI) 0)]).typ);
					if (!T323_) goto LA324_;
					cpyX60gensym511_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(tmpX60gensym511_, (*ri)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym406_), NIM_TRUE);
				}
				goto LA321_;
				LA324_: ;
				{
					tyArray__AB6yfoUgfWM2NtGe9bzkCmw T327_;
					nimZeroMem((void*)T327_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
					T327_[0] = tmpX60gensym511_;
					T327_[1] = p__PTsSyPSfjwGJy89cb8X3Ylw((*ri)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym406_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
					cpyX60gensym511_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T327_, 2);
				}
				LA321_: ;
				{
					NI T330_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym511_;
					T330_ = (tryScopeX60gensym406_.vars ? tryScopeX60gensym406_.vars->Sup.len : 0);
					if (!(((NI) 0) < T330_)) goto LA331_;
					varSectionX60gensym511_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*ri)._kind_6.sons->data[((NI) 0)]).info);
					{
						tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w** tmpX60gensym511__2;
						NI i_12;
						NI L_7;
						NI T334_;
						tmpX60gensym511__2 = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w**)0;
						i_12 = ((NI) 0);
						T334_ = (tryScopeX60gensym406_.vars ? tryScopeX60gensym406_.vars->Sup.len : 0);
						L_7 = T334_;
						{
							while (1) {
								tyArray__T6RKPw8xfAeNaoei9aZGzXg T337_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T338_;
								if (!(i_12 < L_7)) goto LA336;
								tmpX60gensym511__2 = &tryScopeX60gensym406_.vars->data[i_12];
								nimZeroMem((void*)T337_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
								T337_[0] = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*tmpX60gensym511__2));
								T337_[1] = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*ri)._kind_6.sons->data[((NI) 0)]).info);
								T337_[2] = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*ri)._kind_6.sons->data[((NI) 0)]).info);
								T338_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T338_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T337_, 3);
								add__P8dDSotTW25BkfbyspojGg(varSectionX60gensym511_, T338_);
								i_12 += ((NI) 1);
							} LA336: ;
						}
					}
					add__P8dDSotTW25BkfbyspojGg(resultX60gensym511_, varSectionX60gensym511_);
				}
				LA331_: ;
				finSectionX60gensym511_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*ri)._kind_6.sons->data[((NI) 0)]).info);
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym511_;
					NI i_13;
					NI L_8;
					NI T340_;
					mX60gensym511_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
					i_13 = ((NI) 0);
					T340_ = (tryScopeX60gensym406_.wasMoved ? tryScopeX60gensym406_.wasMoved->Sup.len : 0);
					L_8 = T340_;
					{
						while (1) {
							if (!(i_13 < L_8)) goto LA342;
							mX60gensym511_ = &tryScopeX60gensym406_.wasMoved->data[i_13];
							add__P8dDSotTW25BkfbyspojGg(finSectionX60gensym511_, (*mX60gensym511_));
							i_13 += ((NI) 1);
						} LA342: ;
					}
				}
				{
					NI iX60gensym511_;
					NI colontmp__9;
					NI T344_;
					NI res_4;
					iX60gensym511_ = (NI)0;
					colontmp__9 = (NI)0;
					T344_ = ((tryScopeX60gensym406_.final ? tryScopeX60gensym406_.final->Sup.len : 0)-1);
					colontmp__9 = T344_;
					res_4 = colontmp__9;
					{
						while (1) {
							if (!(((NI) 0) <= res_4)) goto LA346;
							iX60gensym511_ = res_4;
							add__P8dDSotTW25BkfbyspojGg(finSectionX60gensym511_, tryScopeX60gensym406_.final->data[iX60gensym511_]);
							res_4 -= ((NI) 1);
						} LA346: ;
					}
				}
				{
					tyArray__AB6yfoUgfWM2NtGe9bzkCmw T351_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T358_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T359_;
					if (!tryScopeX60gensym406_.needsTry) goto LA349_;
					nimZeroMem((void*)T351_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
					T351_[0] = cpyX60gensym511_;
					{
						NIM_BOOL T354_;
						T354_ = (NIM_BOOL)0;
						T354_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*tmpX60gensym511_).typ);
						if (!T354_) goto LA355_;
						T351_[1] = p__PTsSyPSfjwGJy89cb8X3Ylw(tmpX60gensym511_, c, tryScopeX60gensym406_.parent, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
					}
					goto LA352_;
					LA355_: ;
					{
						T351_[1] = moveOrCopy__cVidUei9a721N3SvKgbe69bw(dest, tmpX60gensym511_, c, tryScopeX60gensym406_.parent, isDecl);
					}
					LA352_: ;
					T358_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T358_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T351_, 2);
					T359_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T359_ = newTryFinally__WU9bcLfpyH2zHBQqGau0nNQ(T358_, finSectionX60gensym511_);
					add__P8dDSotTW25BkfbyspojGg(resultX60gensym511_, T359_);
				}
				goto LA347_;
				LA349_: ;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T361_;
					add__P8dDSotTW25BkfbyspojGg(resultX60gensym511_, cpyX60gensym511_);
					add__P8dDSotTW25BkfbyspojGg(resultX60gensym511_, finSectionX60gensym511_);
					T361_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					{
						NIM_BOOL T364_;
						T364_ = (NIM_BOOL)0;
						T364_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*tmpX60gensym511_).typ);
						if (!T364_) goto LA365_;
						T361_ = p__PTsSyPSfjwGJy89cb8X3Ylw(tmpX60gensym511_, c, tryScopeX60gensym406_.parent, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
					}
					goto LA362_;
					LA365_: ;
					{
						T361_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(dest, tmpX60gensym511_, c, tryScopeX60gensym406_.parent, isDecl);
					}
					LA362_: ;
					add__P8dDSotTW25BkfbyspojGg(resultX60gensym511_, T361_);
				}
				LA347_: ;
				{
					NIM_BOOL T372_;
					if (!!((tryScopeX60gensym406_.parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL)))) goto LA370_;
					T372_ = (NIM_BOOL)0;
					T372_ = (*tryScopeX60gensym406_.parent).needsTry;
					if (T372_) goto LA373_;
					T372_ = tryScopeX60gensym406_.needsTry;
					LA373_: ;
					(*tryScopeX60gensym406_.parent).needsTry = T372_;
				}
				LA370_: ;
				T306_ = resultX60gensym511_;
			}
			LA307_: ;
			add__P8dDSotTW25BkfbyspojGg(result, T306_);
			{
				NI iX60gensym406__5;
				NI colontmp__10;
				NI i_14;
				iX60gensym406__5 = (NI)0;
				colontmp__10 = (NI)0;
				colontmp__10 = len__P89cqdlERShb9alU3iC0yj8wast(ri);
				i_14 = ((NI) 1);
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* itX60gensym406__3;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchX60gensym406__3;
						tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ branchScopeX60gensym406__2;
						NI T377_;
						if (!(i_14 < colontmp__10)) goto LA376;
						iX60gensym406__5 = i_14;
						itX60gensym406__3 = (*ri)._kind_6.sons->data[iX60gensym406__5];
						branchX60gensym406__3 = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(itX60gensym406__3);
						nimZeroMem((void*)(&branchScopeX60gensym406__2), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
						nestedScope__ni4yTthPfyagpkFgPFjv8Q(s, (&branchScopeX60gensym406__2));
						T377_ = (NI)0;
						T377_ = len__P89cqdlERShb9alU3iC0yj8wast(branchX60gensym406__3);
						{
							NIM_BOOL T380_;
							NIM_BOOL T381_;
							NI T382_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T387_;
							T380_ = (NIM_BOOL)0;
							T381_ = (NIM_BOOL)0;
							T382_ = (NI)0;
							T382_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym406__3);
							T381_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*(*itX60gensym406__3)._kind_6.sons->data[(NI)(T382_ - ((NI) 1))]).typ);
							if (T381_) goto LA383_;
							T381_ = NIM_TRUE;
							LA383_: ;
							T380_ = T381_;
							if (T380_) goto LA384_;
							T380_ = ((*itX60gensym406__3).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107));
							LA384_: ;
							if (!T380_) goto LA385_;
							T387_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							{
								NI T392_;
								if (!((*itX60gensym406__3).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107))) goto LA390_;
								T392_ = (NI)0;
								T392_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym406__3);
								T387_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*itX60gensym406__3)._kind_6.sons->data[(NI)(T392_ - ((NI) 1))], c, (&branchScopeX60gensym406__2), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
							}
							goto LA388_;
							LA390_: ;
							{
								{
									NI T396_;
									NIM_BOOL T397_;
									NI T400_;
									T396_ = (NI)0;
									T396_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym406__3);
									T397_ = (NIM_BOOL)0;
									T397_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*(*itX60gensym406__3)._kind_6.sons->data[(NI)(T396_ - ((NI) 1))]).typ);
									if (!T397_) goto LA398_;
									T400_ = (NI)0;
									T400_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym406__3);
									T387_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*itX60gensym406__3)._kind_6.sons->data[(NI)(T400_ - ((NI) 1))], c, (&branchScopeX60gensym406__2), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
								}
								goto LA394_;
								LA398_: ;
								{
									NI T402_;
									T402_ = (NI)0;
									T402_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym406__3);
									T387_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(dest, (*itX60gensym406__3)._kind_6.sons->data[(NI)(T402_ - ((NI) 1))], c, (&branchScopeX60gensym406__2), isDecl);
								}
								LA394_: ;
							}
							LA388_: ;
							asgnRef((void**) (&(*branchX60gensym406__3)._kind_6.sons->data[(NI)(T377_ - ((NI) 1))]), processScope__ur1q32ALAU6hCaCkFnKb1w(c, (&branchScopeX60gensym406__2), T387_));
						}
						goto LA378_;
						LA385_: ;
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym542_;
							NI T404_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym542_;
							NI T405_;
							NI T406_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym542_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym542_;
							NI T431_;
							T404_ = (NI)0;
							T404_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym406__3);
							resultX60gensym542_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*itX60gensym406__3)._kind_6.sons->data[(NI)(T404_ - ((NI) 1))]).info);
							T405_ = (NI)0;
							T405_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym406__3);
							T406_ = (NI)0;
							T406_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym406__3);
							tmpX60gensym542_ = getTemp__KB0wf28km02QmgKPPOnujQ(c, branchScopeX60gensym406__2.parent, (*(*itX60gensym406__3)._kind_6.sons->data[(NI)(T405_ - ((NI) 1))]).typ, (*(*itX60gensym406__3)._kind_6.sons->data[(NI)(T406_ - ((NI) 1))]).info);
							(*(*tmpX60gensym542_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 44)) & 63);
							{
								NI T409_;
								NIM_BOOL T410_;
								NI T413_;
								T409_ = (NI)0;
								T409_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym406__3);
								T410_ = (NIM_BOOL)0;
								T410_ = hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors((&(*c)), (*(*itX60gensym406__3)._kind_6.sons->data[(NI)(T409_ - ((NI) 1))]).typ);
								if (!T410_) goto LA411_;
								T413_ = (NI)0;
								T413_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym406__3);
								cpyX60gensym542_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(tmpX60gensym542_, (*itX60gensym406__3)._kind_6.sons->data[(NI)(T413_ - ((NI) 1))], c, (&branchScopeX60gensym406__2), NIM_TRUE);
							}
							goto LA407_;
							LA411_: ;
							{
								tyArray__AB6yfoUgfWM2NtGe9bzkCmw T415_;
								NI T416_;
								nimZeroMem((void*)T415_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
								T415_[0] = tmpX60gensym542_;
								T416_ = (NI)0;
								T416_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym406__3);
								T415_[1] = p__PTsSyPSfjwGJy89cb8X3Ylw((*itX60gensym406__3)._kind_6.sons->data[(NI)(T416_ - ((NI) 1))], c, (&branchScopeX60gensym406__2), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
								cpyX60gensym542_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T415_, 2);
							}
							LA407_: ;
							{
								NI T419_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym542_;
								NI T422_;
								T419_ = (branchScopeX60gensym406__2.vars ? branchScopeX60gensym406__2.vars->Sup.len : 0);
								if (!(((NI) 0) < T419_)) goto LA420_;
								T422_ = (NI)0;
								T422_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym406__3);
								varSectionX60gensym542_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*itX60gensym406__3)._kind_6.sons->data[(NI)(T422_ - ((NI) 1))]).info);
								{
									tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w** tmpX60gensym542__2;
									NI i_15;
									NI L_9;
									NI T424_;
									tmpX60gensym542__2 = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w**)0;
									i_15 = ((NI) 0);
									T424_ = (branchScopeX60gensym406__2.vars ? branchScopeX60gensym406__2.vars->Sup.len : 0);
									L_9 = T424_;
									{
										while (1) {
											tyArray__T6RKPw8xfAeNaoei9aZGzXg T427_;
											NI T428_;
											NI T429_;
											tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T430_;
											if (!(i_15 < L_9)) goto LA426;
											tmpX60gensym542__2 = &branchScopeX60gensym406__2.vars->data[i_15];
											nimZeroMem((void*)T427_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
											T427_[0] = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*tmpX60gensym542__2));
											T428_ = (NI)0;
											T428_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym406__3);
											T427_[1] = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym406__3)._kind_6.sons->data[(NI)(T428_ - ((NI) 1))]).info);
											T429_ = (NI)0;
											T429_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym406__3);
											T427_[2] = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym406__3)._kind_6.sons->data[(NI)(T429_ - ((NI) 1))]).info);
											T430_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
											T430_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T427_, 3);
											add__P8dDSotTW25BkfbyspojGg(varSectionX60gensym542_, T430_);
											i_15 += ((NI) 1);
										} LA426: ;
									}
								}
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym542_, varSectionX60gensym542_);
							}
							LA420_: ;
							T431_ = (NI)0;
							T431_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym406__3);
							finSectionX60gensym542_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*itX60gensym406__3)._kind_6.sons->data[(NI)(T431_ - ((NI) 1))]).info);
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym542_;
								NI i_16;
								NI L_10;
								NI T433_;
								mX60gensym542_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
								i_16 = ((NI) 0);
								T433_ = (branchScopeX60gensym406__2.wasMoved ? branchScopeX60gensym406__2.wasMoved->Sup.len : 0);
								L_10 = T433_;
								{
									while (1) {
										if (!(i_16 < L_10)) goto LA435;
										mX60gensym542_ = &branchScopeX60gensym406__2.wasMoved->data[i_16];
										add__P8dDSotTW25BkfbyspojGg(finSectionX60gensym542_, (*mX60gensym542_));
										i_16 += ((NI) 1);
									} LA435: ;
								}
							}
							{
								NI iX60gensym542_;
								NI colontmp__11;
								NI T437_;
								NI res_5;
								iX60gensym542_ = (NI)0;
								colontmp__11 = (NI)0;
								T437_ = ((branchScopeX60gensym406__2.final ? branchScopeX60gensym406__2.final->Sup.len : 0)-1);
								colontmp__11 = T437_;
								res_5 = colontmp__11;
								{
									while (1) {
										if (!(((NI) 0) <= res_5)) goto LA439;
										iX60gensym542_ = res_5;
										add__P8dDSotTW25BkfbyspojGg(finSectionX60gensym542_, branchScopeX60gensym406__2.final->data[iX60gensym542_]);
										res_5 -= ((NI) 1);
									} LA439: ;
								}
							}
							{
								tyArray__AB6yfoUgfWM2NtGe9bzkCmw T444_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T445_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T446_;
								if (!branchScopeX60gensym406__2.needsTry) goto LA442_;
								nimZeroMem((void*)T444_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
								T444_[0] = cpyX60gensym542_;
								T444_[1] = moveOrCopy__cVidUei9a721N3SvKgbe69bw(dest, tmpX60gensym542_, c, branchScopeX60gensym406__2.parent, isDecl);
								T445_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T445_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T444_, 2);
								T446_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T446_ = newTryFinally__WU9bcLfpyH2zHBQqGau0nNQ(T445_, finSectionX60gensym542_);
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym542_, T446_);
							}
							goto LA440_;
							LA442_: ;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T448_;
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym542_, cpyX60gensym542_);
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym542_, finSectionX60gensym542_);
								T448_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T448_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(dest, tmpX60gensym542_, c, branchScopeX60gensym406__2.parent, isDecl);
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym542_, T448_);
							}
							LA440_: ;
							{
								NIM_BOOL T453_;
								if (!!((branchScopeX60gensym406__2.parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL)))) goto LA451_;
								T453_ = (NIM_BOOL)0;
								T453_ = (*branchScopeX60gensym406__2.parent).needsTry;
								if (T453_) goto LA454_;
								T453_ = branchScopeX60gensym406__2.needsTry;
								LA454_: ;
								(*branchScopeX60gensym406__2.parent).needsTry = T453_;
							}
							LA451_: ;
							asgnRef((void**) (&(*branchX60gensym406__3)._kind_6.sons->data[(NI)(T377_ - ((NI) 1))]), resultX60gensym542_);
						}
						LA378_: ;
						add__P8dDSotTW25BkfbyspojGg(result, branchX60gensym406__3);
						i_14 += ((NI) 1);
					} LA376: ;
				}
			}
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 93):
		{
			result = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(ri);
			asgnRef((void**) (&(*(*result)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)]), moveOrCopy__cVidUei9a721N3SvKgbe69bw(dest, (*(*ri)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)], c, s, isDecl));
		}
		break;
		default:
		{
		}
		break;
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 108):
	{
		result = pRaiseStmt__BDQdBbgsT8pCjPIGSq869bQ(ri, c, s);
	}
	break;
	default:
	{
		{
			NIM_BOOL T461_;
			NIM_BOOL T462_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* snk_4;
			tyArray__AB6yfoUgfWM2NtGe9bzkCmw T467_;
			T461_ = (NIM_BOOL)0;
			T462_ = (NIM_BOOL)0;
			T462_ = isAnalysableFieldAccess__scxG86YRKjb7mFYULG1CyQ(ri, (*c).owner);
			if (!(T462_)) goto LA463_;
			T462_ = isLastRead__cXlunxLFt2VNVqtuIWbJWg_2(ri, c);
			LA463_: ;
			T461_ = T462_;
			if (!(T461_)) goto LA464_;
			T461_ = canBeMoved__s3DnXtISoFCBs0uMQckThQ_2injectdestructors((&(*c)), (*dest).typ);
			LA464_: ;
			if (!T461_) goto LA465_;
			snk_4 = genSink__v3XxtcbOOdZOlr1QqHxmIA(c, dest, ri, isDecl);
			nimZeroMem((void*)T467_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
			T467_[0] = snk_4;
			T467_[1] = genWasMoved__Tj0baeAMp9cue8UExOxI59bg(c, ri);
			result = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T467_, 2);
		}
		goto LA459_;
		LA465_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T469_;
			result = genCopy__rZPv7jnASufmG3HjltXEIQ(c, dest, ri);
			T469_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T469_ = p__PTsSyPSfjwGJy89cb8X3Ylw(ri, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
			add__P8dDSotTW25BkfbyspojGg(result, T469_);
		}
		LA459_: ;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, safeLen__P89cqdlERShb9alU3iC0yj8w_2ast)(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__P89cqdlERShb9alU3iC0yj8wast(n);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsConstSeq__3rzbQm9aIqUljCutfRquODA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NIM_BOOL T5_;
		NI T7_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41));
		if (!(T5_)) goto LA6_;
		T7_ = (NI)0;
		T7_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		T5_ = (((NI) 0) < T7_);
		LA6_: ;
		T4_ = T5_;
		if (!(T4_)) goto LA8_;
		T4_ = !(((*n).typ == ((tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*) NIM_NIL)));
		LA8_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA9_;
		T3_ = isDangerousSeq__L3rR2eriYpBBvT5CvR8Rnginjectdestructors((*n).typ);
		LA9_: ;
		if (!T3_) goto LA10_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA10_: ;
	result = NIM_FALSE;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 33):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
	{
		result = containsConstSeq__3rzbQm9aIqUljCutfRquODA((*n)._kind_6.sons->data[((NI) 1)]);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 155):
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			i_2 = ((NI) 1);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA16;
					i = i_2;
					{
						NIM_BOOL T19_;
						T19_ = (NIM_BOOL)0;
						T19_ = containsConstSeq__3rzbQm9aIqUljCutfRquODA((*n)._kind_6.sons->data[i]);
						if (!T19_) goto LA20_;
						result = NIM_TRUE;
						goto BeforeRet_;
					}
					LA20_: ;
					i_2 += ((NI) 1);
				} LA16: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160):
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* son;
			son = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i_3;
				NI colontmp__2;
				NI i_4;
				i_3 = (NI)0;
				colontmp__2 = (NI)0;
				colontmp__2 = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
				i_4 = ((NI) 0);
				{
					while (1) {
						if (!(i_4 < colontmp__2)) goto LA26;
						i_3 = i_4;
						son = (*n)._kind_6.sons->data[i_3];
						{
							NIM_BOOL T29_;
							T29_ = (NIM_BOOL)0;
							T29_ = containsConstSeq__3rzbQm9aIqUljCutfRquODA(son);
							if (!T29_) goto LA30_;
							result = NIM_TRUE;
							goto BeforeRet_;
						}
						LA30_: ;
						i_4 += ((NI) 1);
					} LA26: ;
				}
			}
		}
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isCapturedVar__3rzbQm9aIqUljCutfRquODA_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* root;
	result = (NIM_BOOL)0;
	root = getRoot__QppXrRxPfamDSGF2rYPMlw(n);
	{
		if (!!((root == ((tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*) NIM_NIL)))) goto LA3_;
		result = ((NU8)((*(*root).name).s->data[((NI) 0)]) == (NU8)(58));
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, passCopyToSink__BDQdBbgsT8pCjPIGSq869bQ_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmp;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*n).info, (*n).typ);
	tmp = getTemp__KB0wf28km02QmgKPPOnujQ(c, s, (*n).typ, (*n).info);
	{
		NIM_BOOL T3_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* m;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors((&(*c)), (*n).typ);
		if (!T3_) goto LA4_;
		T6_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T6_ = genWasMoved__Tj0baeAMp9cue8UExOxI59bg(c, tmp);
		add__P8dDSotTW25BkfbyspojGg(result, T6_);
		m = genCopy__rZPv7jnASufmG3HjltXEIQ(c, tmp, n);
		T7_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T7_ = p__PTsSyPSfjwGJy89cb8X3Ylw(n, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
		add__P8dDSotTW25BkfbyspojGg(m, T7_);
		add__P8dDSotTW25BkfbyspojGg(result, m);
		{
			NIM_BOOL T10_;
			NIM_BOOL T11_;
			NIM_BOOL T12_;
			NIM_BOOL T14_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T16_;
			NimStringDesc* T20_;
			NimStringDesc* T21_;
			T10_ = (NIM_BOOL)0;
			T11_ = (NIM_BOOL)0;
			T12_ = (NIM_BOOL)0;
			T12_ = isLValue__kCP6QlI8uS4X0pOQUdr7tg(n);
			if (!(T12_)) goto LA13_;
			T14_ = (NIM_BOOL)0;
			T14_ = isCapturedVar__3rzbQm9aIqUljCutfRquODA_2(n);
			T12_ = !(T14_);
			LA13_: ;
			T11_ = T12_;
			if (!(T11_)) goto LA15_;
			T16_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T16_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36134350135273744));
			T11_ = !(((*T16_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22)));
			LA15_: ;
			T10_ = T11_;
			if (!(T10_)) goto LA17_;
			T10_ = ((*c).inSpawn == ((NI) 0));
			LA17_: ;
			if (!T10_) goto LA18_;
			T20_ = (NimStringDesc*)0;
			T20_ = dollar___qX5C9b0n9bOP7jk69amC8dA7A(n);
			T21_ = (NimStringDesc*)0;
			T21_ = nsuFormatSingleElem(((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_22), T20_);
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 75), T21_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__dJ4qrEWDmqGA8FWJ0TYKJQ_23, NIM_FALSE);
		}
		LA18_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		tyArray__AB6yfoUgfWM2NtGe9bzkCmw T32_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T33_;
		{
			if (!((48 &((NU16)1<<((NU)((*(*(*c).graph).config).selectedGC)&15U)))!=0)) goto LA25_;
		}
		LA25_: ;
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T29_;
			T29_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T29_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36134350135273744));
			if (!((*T29_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27) || (*T29_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48))) goto LA30_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_24), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__dJ4qrEWDmqGA8FWJ0TYKJQ_25, NIM_FALSE);
		}
		LA30_: ;
		nimZeroMem((void*)T32_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
		T32_[0] = tmp;
		T32_[1] = p__PTsSyPSfjwGJy89cb8X3Ylw(n, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
		T33_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T33_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73), T32_, 2);
		add__P8dDSotTW25BkfbyspojGg(result, T33_);
	}
	LA1_: ;
	add__P8dDSotTW25BkfbyspojGg(result, tmp);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, destructiveMoveVar__BDQdBbgsT8pCjPIGSq869bQ_3)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors((&(*c)), (*n).typ);
		if (!!(T3_)) goto LA4_;
		result = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(n);
	}
	goto LA1_;
	LA4_: ;
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* temp;
		tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T7_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* v;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tempAsNode;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* vpart;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* wasMovedCall;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T8_;
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*n).info, (*n).typ);
		T7_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
		T7_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*(*c).graph).cache, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_26));
		temp = newSym__IXbidcxhXTQGZY9abN63Cxg(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 9), T7_, (*c).owner, (*n).info, 0);
		asgnRef((void**) (&(*temp).typ), (*n).typ);
		v = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 100), (*n).info);
		tempAsNode = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(temp);
		vpart = newNodeI__UY1ElYk2XqXDzuz9cGLG1Kw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), (*tempAsNode).info, ((NI) 3));
		asgnRef((void**) (&(*vpart)._kind_6.sons->data[((NI) 0)]), tempAsNode);
		asgnRef((void**) (&(*vpart)._kind_6.sons->data[((NI) 1)]), newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*tempAsNode).info));
		asgnRef((void**) (&(*vpart)._kind_6.sons->data[((NI) 2)]), n);
		add__P8dDSotTW25BkfbyspojGg(v, vpart);
		add__P8dDSotTW25BkfbyspojGg(result, v);
		T8_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T8_ = skipConv__BH9abOhPX8pH0DnEWlRxmlw(n);
		wasMovedCall = genWasMoved__Tj0baeAMp9cue8UExOxI59bg(c, T8_);
		add__P8dDSotTW25BkfbyspojGg(result, wasMovedCall);
		add__P8dDSotTW25BkfbyspojGg(result, tempAsNode);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, ensureDestruction__3uQEgn0k2q4kiGbXS12GXw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* orig, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NIM_BOOL T3_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmp;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T7_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T8_;
		NI T9_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*arg).typ == ((tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*) NIM_NIL)));
		if (!(T3_)) goto LA4_;
		T3_ = hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors((&(*c)), (*arg).typ);
		LA4_: ;
		if (!T3_) goto LA5_;
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*arg).info, (*arg).typ);
		tmp = getTemp__KB0wf28km02QmgKPPOnujQ(c, s, (*arg).typ, (*arg).info);
		T7_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T7_ = genSink__v3XxtcbOOdZOlr1QqHxmIA(c, tmp, arg, NIM_TRUE);
		add__P8dDSotTW25BkfbyspojGg(result, T7_);
		add__P8dDSotTW25BkfbyspojGg(result, tmp);
		T8_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T8_ = genDestroy__eh46xmsJR79buekuc0oQIdQ((&(*c)), tmp);
		unsureAsgnRef((void**) (&(*s).final), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*s).final), (&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
		T9_ = (*s).final->Sup.len++;
		asgnRef((void**) (&(*s).final->data[T9_]), T8_);
	}
	goto LA1_;
	LA5_: ;
	{
		result = arg;
	}
	LA1_: ;
	return result;
}
static N_INLINE(NI, len__5mJADrRYkP3r9auuiuDZN9cQast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* n) {
	NI result;
	NI T1_;
	result = (NI)0;
	T1_ = ((*n).sons ? (*n).sons->Sup.len : 0);
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL, isCompileTimeOnly__F9ciDIanrWYqbJ4rgLlNAAg_3types)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genDefaultCall__jDZnpAAtuqqpzyrgS2mXUg)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), info);
	T1_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T1_ = createMagic__MzNJxZ0htpjW89c9b2wBN5rQ((*c).graph, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_27), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 151));
	T2_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T2_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(T1_);
	add__P8dDSotTW25BkfbyspojGg(result, T2_);
	asgnRef((void**) (&(*result).typ), t);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, pVarTopLevel__GROdgBo9cGIJkwoEZ3yTrew)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* v, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* res) {
	NI T1_;
	unsureAsgnRef((void**) (&(*s).vars), (tySequence__DfgJFJEYoj4YBAHLZPl5lQ*) incrSeqV3((TGenericSeq*)((*s).vars), (&NTI__DfgJFJEYoj4YBAHLZPl5lQ_)));
	T1_ = (*s).vars->Sup.len++;
	asgnRef((void**) (&(*s).vars->data[T1_]), (*v)._kind_4.sym);
	{
		NIM_BOOL T4_;
		NIM_BOOL T5_;
		T4_ = (NIM_BOOL)0;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*v).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
		if (!(T5_)) goto LA6_;
		T5_ = ((*(*v)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 5));
		LA6_: ;
		T4_ = T5_;
		if (!(T4_)) goto LA7_;
		T4_ = ((*(*(*v)._kind_4.sym).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18));
		LA7_: ;
		if (!T4_) goto LA8_;
		{
			tyArray__AB6yfoUgfWM2NtGe9bzkCmw T14_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T15_;
			if (!(((NI) 0) < (*c).inLoop)) goto LA12_;
			nimZeroMem((void*)T14_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
			T14_[0] = v;
			T14_[1] = genDefaultCall__jDZnpAAtuqqpzyrgS2mXUg((*v).typ, (&(*c)), (*v).info);
			T15_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T15_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T14_, 2);
			add__P8dDSotTW25BkfbyspojGg(res, T15_);
		}
		LA12_: ;
	}
	goto LA2_;
	LA8_: ;
	{
		if (!!((((*(*v)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 26))&63U)))!=0))) goto LA17_;
		{
			NIM_BOOL T21_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T25_;
			NI T26_;
			T21_ = (NIM_BOOL)0;
			T21_ = (((*(*v)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0);
			if (!(T21_)) goto LA22_;
			T21_ = ((*s).parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL));
			LA22_: ;
			if (!T21_) goto LA23_;
			T25_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T25_ = genDestroy__eh46xmsJR79buekuc0oQIdQ((&(*c)), v);
			asgnRef((void**) (&(*(*c).graph).globalDestructors), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*(*c).graph).globalDestructors), (&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
			T26_ = (*(*c).graph).globalDestructors->Sup.len++;
			asgnRef((void**) (&(*(*c).graph).globalDestructors->data[T26_]), T25_);
		}
		goto LA19_;
		LA23_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T28_;
			NI T29_;
			T28_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T28_ = genDestroy__eh46xmsJR79buekuc0oQIdQ((&(*c)), v);
			unsureAsgnRef((void**) (&(*s).final), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*s).final), (&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
			T29_ = (*s).final->Sup.len++;
			asgnRef((void**) (&(*s).final->data[T29_]), T28_);
		}
		LA19_: ;
	}
	goto LA2_;
	LA17_: ;
	LA2_: ;
	{
		NIM_BOOL T32_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T36_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T37_;
		T32_ = (NIM_BOOL)0;
		T32_ = ((*ri).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
		if (!(T32_)) goto LA33_;
		T32_ = (((NI) 0) < (*c).inLoop);
		LA33_: ;
		if (!T32_) goto LA34_;
		T36_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T36_ = genDefaultCall__jDZnpAAtuqqpzyrgS2mXUg((*v).typ, (&(*c)), (*v).info);
		T37_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T37_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(v, T36_, c, s, NIM_TRUE);
		add__P8dDSotTW25BkfbyspojGg(res, T37_);
	}
	goto LA30_;
	LA34_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T41_;
		if (!!(((*ri).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA39_;
		T41_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T41_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(v, ri, c, s, NIM_TRUE);
		add__P8dDSotTW25BkfbyspojGg(res, T41_);
	}
	goto LA30_;
	LA39_: ;
	LA30_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, cycleCheck__VtuMNEAsvSYfebdKUbJwfA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* value;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* destTyp;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* field;
{	{
		if (!!(((*(*(*c).graph).config).selectedGC == ((tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw) 4)))) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	value = (*n)._kind_6.sons->data[((NI) 1)];
	{
		if (!((*value).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 155))) goto LA7_;
		value = (*value)._kind_6.sons->data[((NI) 1)];
	}
	LA7_: ;
	{
		if (!((*value).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA11_;
		goto BeforeRet_;
	}
	LA11_: ;
	destTyp = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 0)]).typ, IL64(36134350135273744));
	{
		NIM_BOOL T15_;
		NIM_BOOL T17_;
		T15_ = (NIM_BOOL)0;
		T15_ = !(((*destTyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22)));
		if (!(T15_)) goto LA16_;
		T17_ = (NIM_BOOL)0;
		T17_ = ((*destTyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
		if (!(T17_)) goto LA18_;
		T17_ = ((*destTyp).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9));
		LA18_: ;
		T15_ = !(T17_);
		LA16_: ;
		if (!T15_) goto LA19_;
		goto BeforeRet_;
	}
	LA19_: ;
	x = (*n)._kind_6.sons->data[((NI) 0)];
	field = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
	{
		while (1) {
			{
				if (!((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45))) goto LA25_;
				field = (*x)._kind_6.sons->data[((NI) 1)];
				{
					NIM_BOOL T29_;
					T29_ = (NIM_BOOL)0;
					T29_ = ((*field).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
					if (!(T29_)) goto LA30_;
					T29_ = (((*(*field)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 40))&63U)))!=0);
					LA30_: ;
					if (!T29_) goto LA31_;
					goto BeforeRet_;
				}
				LA31_: ;
				x = (*x)._kind_6.sons->data[((NI) 0)];
			}
			goto LA23_;
			LA25_: ;
			{
				if (!((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65))) goto LA34_;
				x = (*x)._kind_6.sons->data[((NI) 0)];
			}
			goto LA23_;
			LA34_: ;
			{
				goto LA21;
			}
			LA23_: ;
			{
				NIM_BOOL T39_;
				NimStringDesc* msg;
				T39_ = (NIM_BOOL)0;
				T39_ = exprStructuralEquivalent__E1mnSzj2NONtG7h9cR3AuFA(x, value, NIM_TRUE);
				if (!T39_) goto LA40_;
				{
					tyArray__Re75IspeoxXy2oCZHwcRrA T46_;
					if (!!((field == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA44_;
					nimZeroMem((void*)T46_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
					T46_[0] = dollar___qX5C9b0n9bOP7jk69amC8dA7A(n);
					T46_[1] = dollar___qX5C9b0n9bOP7jk69amC8dA7A(field);
					msg = nsuFormatOpenArray(((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_28), T46_, 2);
				}
				goto LA42_;
				LA44_: ;
				{
					tyArray__nHXaesL0DJZHyVS07ARPRA T48_;
					nimZeroMem((void*)T48_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
					T48_[0] = dollar___qX5C9b0n9bOP7jk69amC8dA7A(n);
					msg = nsuFormatOpenArray(((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_29), T48_, 1);
				}
				LA42_: ;
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 49), msg, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__dJ4qrEWDmqGA8FWJ0TYKJQ_30, NIM_FALSE);
				goto LA21;
			}
			LA40_: ;
		}
	} LA21: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genDiscriminantAsgn__SmwM1MUiEEj81Il1sHk1nA)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmp;
	tyArray__cypz0nHJsd9cnKgpO7fP5hQ T1_;
	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T2_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T4_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* le;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* leDotExpr;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* objType;
	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T32_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T33_;
{	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	tmp = getTemp__KB0wf28km02QmgKPPOnujQ(c, s, (*(*n)._kind_6.sons->data[((NI) 1)]).typ, (*n).info);
	nimZeroMem((void*)T1_, sizeof(tyArray__cypz0nHJsd9cnKgpO7fP5hQ));
	result = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T1_, 0);
	nimZeroMem((void*)T2_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
	T2_[0] = tmp;
	T2_[1] = p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 1)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
	T3_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T3_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T2_, 2);
	add__P8dDSotTW25BkfbyspojGg(result, T3_);
	T4_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T4_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
	add__P8dDSotTW25BkfbyspojGg(result, T4_);
	le = p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
	{
		if (!((*le).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46))) goto LA7_;
		leDotExpr = (*le)._kind_6.sons->data[((NI) 0)];
	}
	goto LA5_;
	LA7_: ;
	{
		leDotExpr = le;
	}
	LA5_: ;
	objType = (*(*leDotExpr)._kind_6.sons->data[((NI) 0)]).typ;
	{
		NIM_BOOL T12_;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* branchDestructor;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cond;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T23_;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T24_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T25_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* notExpr;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T26_;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T27_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T28_;
		tyArray__jlWPjgtbdjE069arIWHC9c9bg T29_;
		tyArray__AB6yfoUgfWM2NtGe9bzkCmw T30_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T31_;
		T12_ = (NIM_BOOL)0;
		T12_ = hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors((&(*c)), objType);
		if (!T12_) goto LA13_;
		{
			NIM_BOOL T17_;
			tyArray__AB6yfoUgfWM2NtGe9bzkCmw T21_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T22_;
			T17_ = (NIM_BOOL)0;
			T17_ = !(((*objType).attachedOps[(((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0))- 0] == ((tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*) NIM_NIL)));
			if (!(T17_)) goto LA18_;
			T17_ = (((*(*objType).attachedOps[(((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0))- 0]).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 34))&63U)))!=0);
			LA18_: ;
			if (!T17_) goto LA19_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_31), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__dJ4qrEWDmqGA8FWJ0TYKJQ_32, NIM_FALSE);
			nimZeroMem((void*)T21_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
			T21_[0] = le;
			T21_[1] = tmp;
			T22_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T22_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T21_, 2);
			add__P8dDSotTW25BkfbyspojGg(result, T22_);
			goto BeforeRet_;
		}
		LA19_: ;
		branchDestructor = produceDestructorForDiscriminator__xB6uw9cGyS9bONpHGgcB87oA((*c).graph, objType, (*(*leDotExpr)._kind_6.sons->data[((NI) 1)])._kind_4.sym, (*n).info);
		T23_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T23_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, unknownLineInfo__Adg58D2FIbt5TWh9aavBqbg, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1));
		cond = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29), (*n).info, T23_);
		T24_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		T24_ = getMagicEqSymForType__ff3Uma5kkjydzFHzZlldyg((*c).graph, (*le).typ, (*n).info);
		T25_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T25_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(T24_);
		add__P8dDSotTW25BkfbyspojGg(cond, T25_);
		add__P8dDSotTW25BkfbyspojGg(cond, le);
		add__P8dDSotTW25BkfbyspojGg(cond, tmp);
		T26_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T26_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, unknownLineInfo__Adg58D2FIbt5TWh9aavBqbg, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1));
		notExpr = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30), (*n).info, T26_);
		T27_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		T27_ = createMagic__MzNJxZ0htpjW89c9b2wBN5rQ((*c).graph, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_33), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 96));
		T28_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T28_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(T27_);
		add__P8dDSotTW25BkfbyspojGg(notExpr, T28_);
		add__P8dDSotTW25BkfbyspojGg(notExpr, cond);
		nimZeroMem((void*)T29_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
		nimZeroMem((void*)T30_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
		T30_[0] = notExpr;
		T30_[1] = genOp__dlYECyD9bG06toVGQ4mMceA((&(*c)), branchDestructor, le);
		T29_[0] = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86), T30_, 2);
		T31_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T31_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92), T29_, 1);
		add__P8dDSotTW25BkfbyspojGg(result, T31_);
	}
	LA13_: ;
	nimZeroMem((void*)T32_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
	T32_[0] = le;
	T32_[1] = tmp;
	T33_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T33_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T32_, 2);
	add__P8dDSotTW25BkfbyspojGg(result, T33_);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, p__PTsSyPSfjwGJy89cb8X3Ylw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw mode) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
{	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		if (!((TM__dJ4qrEWDmqGA8FWJ0TYKJQ_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) goto LA3_;
		switch ((*n).kind) {
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126):
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T16_;
			{
				NI T8_;
				T8_ = (NI)0;
				T8_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
				if (!(T8_ == ((NI) 0))) goto LA9_;
				result = n;
				goto BeforeRet_;
			}
			LA9_: ;
			result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(n);
			{
				NI iX60gensym125_;
				NI colontmp_;
				NI T12_;
				NI i;
				iX60gensym125_ = (NI)0;
				colontmp_ = (NI)0;
				T12_ = (NI)0;
				T12_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
				colontmp_ = (NI)(T12_ - ((NI) 1));
				i = ((NI) 0);
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T15_;
						if (!(i < colontmp_)) goto LA14;
						iX60gensym125_ = i;
						T15_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T15_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[iX60gensym125_], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
						add__P8dDSotTW25BkfbyspojGg(result, T15_);
						i += ((NI) 1);
					} LA14: ;
				}
			}
			T16_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI T19_;
				NIM_BOOL T20_;
				NI T23_;
				T19_ = (NI)0;
				T19_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
				T20_ = (NIM_BOOL)0;
				T20_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*(*n)._kind_6.sons->data[(NI)(T19_ - ((NI) 1))]).typ);
				if (!T20_) goto LA21_;
				T23_ = (NI)0;
				T23_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
				T16_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[(NI)(T23_ - ((NI) 1))], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
			}
			goto LA17_;
			LA21_: ;
			{
				NI T25_;
				T25_ = (NI)0;
				T25_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
				T16_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[(NI)(T25_ - ((NI) 1))], c, s, mode);
			}
			LA17_: ;
			add__P8dDSotTW25BkfbyspojGg(result, T16_);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 97):
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T27_;
			result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(n);
			T27_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T27_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
			add__P8dDSotTW25BkfbyspojGg(result, T27_);
			{
				NI iX60gensym125__2;
				NI colontmp__2;
				NI i_2;
				iX60gensym125__2 = (NI)0;
				colontmp__2 = (NI)0;
				colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(n);
				i_2 = ((NI) 1);
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* itX60gensym125_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchX60gensym125_;
						tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ ofScopeX60gensym125_;
						NI T35_;
						if (!(i_2 < colontmp__2)) goto LA30;
						iX60gensym125__2 = i_2;
						itX60gensym125_ = (*n)._kind_6.sons->data[iX60gensym125__2];
						branchX60gensym125_ = shallowCopy__Dsjo9bte8vGxzhtcSrsTyiQ_3(itX60gensym125_);
						{
							NI jX60gensym125_;
							NI colontmp__3;
							NI T32_;
							NI i_3;
							jX60gensym125_ = (NI)0;
							colontmp__3 = (NI)0;
							T32_ = (NI)0;
							T32_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125_);
							colontmp__3 = (NI)(T32_ - ((NI) 1));
							i_3 = ((NI) 0);
							{
								while (1) {
									if (!(i_3 < colontmp__3)) goto LA34;
									jX60gensym125_ = i_3;
									asgnRef((void**) (&(*branchX60gensym125_)._kind_6.sons->data[jX60gensym125_]), copyTree__Dsjo9bte8vGxzhtcSrsTyiQ((*itX60gensym125_)._kind_6.sons->data[jX60gensym125_]));
									i_3 += ((NI) 1);
								} LA34: ;
							}
						}
						nimZeroMem((void*)(&ofScopeX60gensym125_), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
						nestedScope__ni4yTthPfyagpkFgPFjv8Q(s, (&ofScopeX60gensym125_));
						T35_ = (NI)0;
						T35_ = len__P89cqdlERShb9alU3iC0yj8wast(branchX60gensym125_);
						{
							NIM_BOOL T38_;
							NI T39_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T43_;
							T38_ = (NIM_BOOL)0;
							T39_ = (NI)0;
							T39_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125_);
							T38_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*(*itX60gensym125_)._kind_6.sons->data[(NI)(T39_ - ((NI) 1))]).typ);
							if (T38_) goto LA40_;
							T38_ = NIM_FALSE;
							LA40_: ;
							if (!T38_) goto LA41_;
							T43_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							{
								NI T46_;
								NIM_BOOL T47_;
								NI T50_;
								T46_ = (NI)0;
								T46_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125_);
								T47_ = (NIM_BOOL)0;
								T47_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*(*itX60gensym125_)._kind_6.sons->data[(NI)(T46_ - ((NI) 1))]).typ);
								if (!T47_) goto LA48_;
								T50_ = (NI)0;
								T50_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125_);
								T43_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*itX60gensym125_)._kind_6.sons->data[(NI)(T50_ - ((NI) 1))], c, (&ofScopeX60gensym125_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
							}
							goto LA44_;
							LA48_: ;
							{
								NI T52_;
								T52_ = (NI)0;
								T52_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125_);
								T43_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*itX60gensym125_)._kind_6.sons->data[(NI)(T52_ - ((NI) 1))], c, (&ofScopeX60gensym125_), mode);
							}
							LA44_: ;
							asgnRef((void**) (&(*branchX60gensym125_)._kind_6.sons->data[(NI)(T35_ - ((NI) 1))]), processScope__ur1q32ALAU6hCaCkFnKb1w(c, (&ofScopeX60gensym125_), T43_));
						}
						goto LA36_;
						LA41_: ;
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym163_;
							NI T54_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym163_;
							NI T55_;
							NI T56_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym163_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym163_;
							NI T81_;
							T54_ = (NI)0;
							T54_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125_);
							resultX60gensym163_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*itX60gensym125_)._kind_6.sons->data[(NI)(T54_ - ((NI) 1))]).info);
							T55_ = (NI)0;
							T55_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125_);
							T56_ = (NI)0;
							T56_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125_);
							tmpX60gensym163_ = getTemp__KB0wf28km02QmgKPPOnujQ(c, ofScopeX60gensym125_.parent, (*(*itX60gensym125_)._kind_6.sons->data[(NI)(T55_ - ((NI) 1))]).typ, (*(*itX60gensym125_)._kind_6.sons->data[(NI)(T56_ - ((NI) 1))]).info);
							(*(*tmpX60gensym163_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 44)) & 63);
							{
								NI T59_;
								NIM_BOOL T60_;
								NI T63_;
								T59_ = (NI)0;
								T59_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125_);
								T60_ = (NIM_BOOL)0;
								T60_ = hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors((&(*c)), (*(*itX60gensym125_)._kind_6.sons->data[(NI)(T59_ - ((NI) 1))]).typ);
								if (!T60_) goto LA61_;
								T63_ = (NI)0;
								T63_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125_);
								cpyX60gensym163_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(tmpX60gensym163_, (*itX60gensym125_)._kind_6.sons->data[(NI)(T63_ - ((NI) 1))], c, (&ofScopeX60gensym125_), NIM_TRUE);
							}
							goto LA57_;
							LA61_: ;
							{
								tyArray__AB6yfoUgfWM2NtGe9bzkCmw T65_;
								NI T66_;
								nimZeroMem((void*)T65_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
								T65_[0] = tmpX60gensym163_;
								T66_ = (NI)0;
								T66_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125_);
								T65_[1] = p__PTsSyPSfjwGJy89cb8X3Ylw((*itX60gensym125_)._kind_6.sons->data[(NI)(T66_ - ((NI) 1))], c, (&ofScopeX60gensym125_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
								cpyX60gensym163_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T65_, 2);
							}
							LA57_: ;
							{
								NI T69_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym163_;
								NI T72_;
								T69_ = (ofScopeX60gensym125_.vars ? ofScopeX60gensym125_.vars->Sup.len : 0);
								if (!(((NI) 0) < T69_)) goto LA70_;
								T72_ = (NI)0;
								T72_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125_);
								varSectionX60gensym163_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*itX60gensym125_)._kind_6.sons->data[(NI)(T72_ - ((NI) 1))]).info);
								{
									tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w** tmpX60gensym163__2;
									NI i_4;
									NI L;
									NI T74_;
									tmpX60gensym163__2 = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w**)0;
									i_4 = ((NI) 0);
									T74_ = (ofScopeX60gensym125_.vars ? ofScopeX60gensym125_.vars->Sup.len : 0);
									L = T74_;
									{
										while (1) {
											tyArray__T6RKPw8xfAeNaoei9aZGzXg T77_;
											NI T78_;
											NI T79_;
											tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T80_;
											if (!(i_4 < L)) goto LA76;
											tmpX60gensym163__2 = &ofScopeX60gensym125_.vars->data[i_4];
											nimZeroMem((void*)T77_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
											T77_[0] = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*tmpX60gensym163__2));
											T78_ = (NI)0;
											T78_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125_);
											T77_[1] = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym125_)._kind_6.sons->data[(NI)(T78_ - ((NI) 1))]).info);
											T79_ = (NI)0;
											T79_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125_);
											T77_[2] = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym125_)._kind_6.sons->data[(NI)(T79_ - ((NI) 1))]).info);
											T80_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
											T80_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T77_, 3);
											add__P8dDSotTW25BkfbyspojGg(varSectionX60gensym163_, T80_);
											i_4 += ((NI) 1);
										} LA76: ;
									}
								}
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym163_, varSectionX60gensym163_);
							}
							LA70_: ;
							T81_ = (NI)0;
							T81_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125_);
							finSectionX60gensym163_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*itX60gensym125_)._kind_6.sons->data[(NI)(T81_ - ((NI) 1))]).info);
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym163_;
								NI i_5;
								NI L_2;
								NI T83_;
								mX60gensym163_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
								i_5 = ((NI) 0);
								T83_ = (ofScopeX60gensym125_.wasMoved ? ofScopeX60gensym125_.wasMoved->Sup.len : 0);
								L_2 = T83_;
								{
									while (1) {
										if (!(i_5 < L_2)) goto LA85;
										mX60gensym163_ = &ofScopeX60gensym125_.wasMoved->data[i_5];
										add__P8dDSotTW25BkfbyspojGg(finSectionX60gensym163_, (*mX60gensym163_));
										i_5 += ((NI) 1);
									} LA85: ;
								}
							}
							{
								NI iX60gensym163_;
								NI colontmp__4;
								NI T87_;
								NI res;
								iX60gensym163_ = (NI)0;
								colontmp__4 = (NI)0;
								T87_ = ((ofScopeX60gensym125_.final ? ofScopeX60gensym125_.final->Sup.len : 0)-1);
								colontmp__4 = T87_;
								res = colontmp__4;
								{
									while (1) {
										if (!(((NI) 0) <= res)) goto LA89;
										iX60gensym163_ = res;
										add__P8dDSotTW25BkfbyspojGg(finSectionX60gensym163_, ofScopeX60gensym125_.final->data[iX60gensym163_]);
										res -= ((NI) 1);
									} LA89: ;
								}
							}
							{
								tyArray__AB6yfoUgfWM2NtGe9bzkCmw T94_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T95_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T96_;
								if (!ofScopeX60gensym125_.needsTry) goto LA92_;
								nimZeroMem((void*)T94_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
								T94_[0] = cpyX60gensym163_;
								T94_[1] = p__PTsSyPSfjwGJy89cb8X3Ylw(tmpX60gensym163_, c, ofScopeX60gensym125_.parent, mode);
								T95_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T95_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T94_, 2);
								T96_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T96_ = newTryFinally__WU9bcLfpyH2zHBQqGau0nNQ(T95_, finSectionX60gensym163_);
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym163_, T96_);
							}
							goto LA90_;
							LA92_: ;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T98_;
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym163_, cpyX60gensym163_);
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym163_, finSectionX60gensym163_);
								T98_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T98_ = p__PTsSyPSfjwGJy89cb8X3Ylw(tmpX60gensym163_, c, ofScopeX60gensym125_.parent, mode);
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym163_, T98_);
							}
							LA90_: ;
							{
								NIM_BOOL T103_;
								if (!!((ofScopeX60gensym125_.parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL)))) goto LA101_;
								T103_ = (NIM_BOOL)0;
								T103_ = (*ofScopeX60gensym125_.parent).needsTry;
								if (T103_) goto LA104_;
								T103_ = ofScopeX60gensym125_.needsTry;
								LA104_: ;
								(*ofScopeX60gensym125_.parent).needsTry = T103_;
							}
							LA101_: ;
							asgnRef((void**) (&(*branchX60gensym125_)._kind_6.sons->data[(NI)(T35_ - ((NI) 1))]), resultX60gensym163_);
						}
						LA36_: ;
						add__P8dDSotTW25BkfbyspojGg(result, branchX60gensym125_);
						i_2 += ((NI) 1);
					} LA30: ;
				}
			}
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 96):
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T106_;
			tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ bodyScopeX60gensym125_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* bodyResultX60gensym125_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T107_;
			(*c).inLoop += ((NI) 1);
			(*c).inLoopCond += ((NI) 1);
			result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(n);
			T106_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T106_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
			add__P8dDSotTW25BkfbyspojGg(result, T106_);
			(*c).inLoopCond -= ((NI) 1);
			nimZeroMem((void*)(&bodyScopeX60gensym125_), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
			nestedScope__ni4yTthPfyagpkFgPFjv8Q(s, (&bodyScopeX60gensym125_));
			bodyResultX60gensym125_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym125_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
			T107_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T107_ = processScope__ur1q32ALAU6hCaCkFnKb1w(c, (&bodyScopeX60gensym125_), bodyResultX60gensym125_);
			add__P8dDSotTW25BkfbyspojGg(result, T107_);
			(*c).inLoop -= ((NI) 1);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 95):
		{
			NI lastX60gensym125_;
			NI T109_;
			tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ bodyScopeX60gensym125__2;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* bodyResultX60gensym125__2;
			(*c).inLoop += ((NI) 1);
			result = shallowCopy__Dsjo9bte8vGxzhtcSrsTyiQ_3(n);
			T109_ = (NI)0;
			T109_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			lastX60gensym125_ = (NI)(T109_ - ((NI) 1));
			{
				NI iX60gensym125__3;
				NI colontmp__5;
				NI i_6;
				iX60gensym125__3 = (NI)0;
				colontmp__5 = (NI)0;
				colontmp__5 = (NI)(lastX60gensym125_ - ((NI) 1));
				i_6 = ((NI) 0);
				{
					while (1) {
						if (!(i_6 < colontmp__5)) goto LA112;
						iX60gensym125__3 = i_6;
						asgnRef((void**) (&(*result)._kind_6.sons->data[iX60gensym125__3]), (*n)._kind_6.sons->data[iX60gensym125__3]);
						i_6 += ((NI) 1);
					} LA112: ;
				}
			}
			asgnRef((void**) (&(*result)._kind_6.sons->data[(NI)(lastX60gensym125_ - ((NI) 1))]), p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[(NI)(lastX60gensym125_ - ((NI) 1))], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0)));
			nimZeroMem((void*)(&bodyScopeX60gensym125__2), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
			nestedScope__ni4yTthPfyagpkFgPFjv8Q(s, (&bodyScopeX60gensym125__2));
			bodyResultX60gensym125__2 = p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[lastX60gensym125_], c, (&bodyScopeX60gensym125__2), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
			asgnRef((void**) (&(*result)._kind_6.sons->data[lastX60gensym125_]), processScope__ur1q32ALAU6hCaCkFnKb1w(c, (&bodyScopeX60gensym125__2), bodyResultX60gensym125__2));
			(*c).inLoop -= ((NI) 1);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 112):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 127):
		{
			tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ bodyScopeX60gensym125__3;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T114_;
			result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(n);
			add__P8dDSotTW25BkfbyspojGg(result, (*n)._kind_6.sons->data[((NI) 0)]);
			nimZeroMem((void*)(&bodyScopeX60gensym125__3), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
			nestedScope__ni4yTthPfyagpkFgPFjv8Q(s, (&bodyScopeX60gensym125__3));
			T114_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NIM_BOOL T117_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T121_;
				T117_ = (NIM_BOOL)0;
				T117_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*(*n)._kind_6.sons->data[((NI) 1)]).typ);
				if (T117_) goto LA118_;
				T117_ = NIM_FALSE;
				LA118_: ;
				if (!T117_) goto LA119_;
				T121_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T121_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym125__3), mode);
				T114_ = processScope__ur1q32ALAU6hCaCkFnKb1w(c, (&bodyScopeX60gensym125__3), T121_);
			}
			goto LA115_;
			LA119_: ;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym185_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym185_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym185_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym185_;
				resultX60gensym185_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*n)._kind_6.sons->data[((NI) 1)]).info);
				tmpX60gensym185_ = getTemp__KB0wf28km02QmgKPPOnujQ(c, bodyScopeX60gensym125__3.parent, (*(*n)._kind_6.sons->data[((NI) 1)]).typ, (*(*n)._kind_6.sons->data[((NI) 1)]).info);
				(*(*tmpX60gensym185_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 44)) & 63);
				{
					NIM_BOOL T125_;
					T125_ = (NIM_BOOL)0;
					T125_ = hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors((&(*c)), (*(*n)._kind_6.sons->data[((NI) 1)]).typ);
					if (!T125_) goto LA126_;
					cpyX60gensym185_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(tmpX60gensym185_, (*n)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym125__3), NIM_TRUE);
				}
				goto LA123_;
				LA126_: ;
				{
					tyArray__AB6yfoUgfWM2NtGe9bzkCmw T129_;
					nimZeroMem((void*)T129_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
					T129_[0] = tmpX60gensym185_;
					T129_[1] = p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym125__3), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
					cpyX60gensym185_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T129_, 2);
				}
				LA123_: ;
				{
					NI T132_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym185_;
					T132_ = (bodyScopeX60gensym125__3.vars ? bodyScopeX60gensym125__3.vars->Sup.len : 0);
					if (!(((NI) 0) < T132_)) goto LA133_;
					varSectionX60gensym185_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*n)._kind_6.sons->data[((NI) 1)]).info);
					{
						tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w** tmpX60gensym185__2;
						NI i_7;
						NI L_3;
						NI T136_;
						tmpX60gensym185__2 = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w**)0;
						i_7 = ((NI) 0);
						T136_ = (bodyScopeX60gensym125__3.vars ? bodyScopeX60gensym125__3.vars->Sup.len : 0);
						L_3 = T136_;
						{
							while (1) {
								tyArray__T6RKPw8xfAeNaoei9aZGzXg T139_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T140_;
								if (!(i_7 < L_3)) goto LA138;
								tmpX60gensym185__2 = &bodyScopeX60gensym125__3.vars->data[i_7];
								nimZeroMem((void*)T139_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
								T139_[0] = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*tmpX60gensym185__2));
								T139_[1] = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*n)._kind_6.sons->data[((NI) 1)]).info);
								T139_[2] = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*n)._kind_6.sons->data[((NI) 1)]).info);
								T140_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T140_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T139_, 3);
								add__P8dDSotTW25BkfbyspojGg(varSectionX60gensym185_, T140_);
								i_7 += ((NI) 1);
							} LA138: ;
						}
					}
					add__P8dDSotTW25BkfbyspojGg(resultX60gensym185_, varSectionX60gensym185_);
				}
				LA133_: ;
				finSectionX60gensym185_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*n)._kind_6.sons->data[((NI) 1)]).info);
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym185_;
					NI i_8;
					NI L_4;
					NI T142_;
					mX60gensym185_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
					i_8 = ((NI) 0);
					T142_ = (bodyScopeX60gensym125__3.wasMoved ? bodyScopeX60gensym125__3.wasMoved->Sup.len : 0);
					L_4 = T142_;
					{
						while (1) {
							if (!(i_8 < L_4)) goto LA144;
							mX60gensym185_ = &bodyScopeX60gensym125__3.wasMoved->data[i_8];
							add__P8dDSotTW25BkfbyspojGg(finSectionX60gensym185_, (*mX60gensym185_));
							i_8 += ((NI) 1);
						} LA144: ;
					}
				}
				{
					NI iX60gensym185_;
					NI colontmp__6;
					NI T146_;
					NI res_2;
					iX60gensym185_ = (NI)0;
					colontmp__6 = (NI)0;
					T146_ = ((bodyScopeX60gensym125__3.final ? bodyScopeX60gensym125__3.final->Sup.len : 0)-1);
					colontmp__6 = T146_;
					res_2 = colontmp__6;
					{
						while (1) {
							if (!(((NI) 0) <= res_2)) goto LA148;
							iX60gensym185_ = res_2;
							add__P8dDSotTW25BkfbyspojGg(finSectionX60gensym185_, bodyScopeX60gensym125__3.final->data[iX60gensym185_]);
							res_2 -= ((NI) 1);
						} LA148: ;
					}
				}
				{
					tyArray__AB6yfoUgfWM2NtGe9bzkCmw T153_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T154_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T155_;
					if (!bodyScopeX60gensym125__3.needsTry) goto LA151_;
					nimZeroMem((void*)T153_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
					T153_[0] = cpyX60gensym185_;
					T153_[1] = p__PTsSyPSfjwGJy89cb8X3Ylw(tmpX60gensym185_, c, bodyScopeX60gensym125__3.parent, mode);
					T154_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T154_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T153_, 2);
					T155_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T155_ = newTryFinally__WU9bcLfpyH2zHBQqGau0nNQ(T154_, finSectionX60gensym185_);
					add__P8dDSotTW25BkfbyspojGg(resultX60gensym185_, T155_);
				}
				goto LA149_;
				LA151_: ;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T157_;
					add__P8dDSotTW25BkfbyspojGg(resultX60gensym185_, cpyX60gensym185_);
					add__P8dDSotTW25BkfbyspojGg(resultX60gensym185_, finSectionX60gensym185_);
					T157_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T157_ = p__PTsSyPSfjwGJy89cb8X3Ylw(tmpX60gensym185_, c, bodyScopeX60gensym125__3.parent, mode);
					add__P8dDSotTW25BkfbyspojGg(resultX60gensym185_, T157_);
				}
				LA149_: ;
				{
					NIM_BOOL T162_;
					if (!!((bodyScopeX60gensym125__3.parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL)))) goto LA160_;
					T162_ = (NIM_BOOL)0;
					T162_ = (*bodyScopeX60gensym125__3.parent).needsTry;
					if (T162_) goto LA163_;
					T162_ = bodyScopeX60gensym125__3.needsTry;
					LA163_: ;
					(*bodyScopeX60gensym125__3.parent).needsTry = T162_;
				}
				LA160_: ;
				T114_ = resultX60gensym185_;
			}
			LA115_: ;
			add__P8dDSotTW25BkfbyspojGg(result, T114_);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 48):
		{
			result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(n);
			{
				NI iX60gensym125__4;
				NI colontmp__7;
				NI i_9;
				iX60gensym125__4 = (NI)0;
				colontmp__7 = (NI)0;
				colontmp__7 = len__P89cqdlERShb9alU3iC0yj8wast(n);
				i_9 = ((NI) 0);
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* itX60gensym125__2;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchX60gensym125__2;
						tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ branchScopeX60gensym125_;
						NI T172_;
						if (!(i_9 < colontmp__7)) goto LA167;
						iX60gensym125__4 = i_9;
						itX60gensym125__2 = (*n)._kind_6.sons->data[iX60gensym125__4];
						branchX60gensym125__2 = shallowCopy__Dsjo9bte8vGxzhtcSrsTyiQ_3(itX60gensym125__2);
						nimZeroMem((void*)(&branchScopeX60gensym125_), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
						nestedScope__ni4yTthPfyagpkFgPFjv8Q(s, (&branchScopeX60gensym125_));
						{
							if (!((*itX60gensym125__2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86) || (*itX60gensym125__2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 49))) goto LA170_;
							asgnRef((void**) (&(*branchX60gensym125__2)._kind_6.sons->data[((NI) 0)]), p__PTsSyPSfjwGJy89cb8X3Ylw((*itX60gensym125__2)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0)));
						}
						LA170_: ;
						T172_ = (NI)0;
						T172_ = len__P89cqdlERShb9alU3iC0yj8wast(branchX60gensym125__2);
						{
							NIM_BOOL T175_;
							NI T176_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T180_;
							T175_ = (NIM_BOOL)0;
							T176_ = (NI)0;
							T176_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__2);
							T175_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*(*itX60gensym125__2)._kind_6.sons->data[(NI)(T176_ - ((NI) 1))]).typ);
							if (T175_) goto LA177_;
							T175_ = NIM_FALSE;
							LA177_: ;
							if (!T175_) goto LA178_;
							T180_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							{
								NI T183_;
								NIM_BOOL T184_;
								NI T187_;
								T183_ = (NI)0;
								T183_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__2);
								T184_ = (NIM_BOOL)0;
								T184_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*(*itX60gensym125__2)._kind_6.sons->data[(NI)(T183_ - ((NI) 1))]).typ);
								if (!T184_) goto LA185_;
								T187_ = (NI)0;
								T187_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__2);
								T180_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*itX60gensym125__2)._kind_6.sons->data[(NI)(T187_ - ((NI) 1))], c, (&branchScopeX60gensym125_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
							}
							goto LA181_;
							LA185_: ;
							{
								NI T189_;
								T189_ = (NI)0;
								T189_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__2);
								T180_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*itX60gensym125__2)._kind_6.sons->data[(NI)(T189_ - ((NI) 1))], c, (&branchScopeX60gensym125_), mode);
							}
							LA181_: ;
							asgnRef((void**) (&(*branchX60gensym125__2)._kind_6.sons->data[(NI)(T172_ - ((NI) 1))]), processScope__ur1q32ALAU6hCaCkFnKb1w(c, (&branchScopeX60gensym125_), T180_));
						}
						goto LA173_;
						LA178_: ;
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym214_;
							NI T191_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym214_;
							NI T192_;
							NI T193_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym214_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym214_;
							NI T218_;
							T191_ = (NI)0;
							T191_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__2);
							resultX60gensym214_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*itX60gensym125__2)._kind_6.sons->data[(NI)(T191_ - ((NI) 1))]).info);
							T192_ = (NI)0;
							T192_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__2);
							T193_ = (NI)0;
							T193_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__2);
							tmpX60gensym214_ = getTemp__KB0wf28km02QmgKPPOnujQ(c, branchScopeX60gensym125_.parent, (*(*itX60gensym125__2)._kind_6.sons->data[(NI)(T192_ - ((NI) 1))]).typ, (*(*itX60gensym125__2)._kind_6.sons->data[(NI)(T193_ - ((NI) 1))]).info);
							(*(*tmpX60gensym214_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 44)) & 63);
							{
								NI T196_;
								NIM_BOOL T197_;
								NI T200_;
								T196_ = (NI)0;
								T196_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__2);
								T197_ = (NIM_BOOL)0;
								T197_ = hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors((&(*c)), (*(*itX60gensym125__2)._kind_6.sons->data[(NI)(T196_ - ((NI) 1))]).typ);
								if (!T197_) goto LA198_;
								T200_ = (NI)0;
								T200_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__2);
								cpyX60gensym214_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(tmpX60gensym214_, (*itX60gensym125__2)._kind_6.sons->data[(NI)(T200_ - ((NI) 1))], c, (&branchScopeX60gensym125_), NIM_TRUE);
							}
							goto LA194_;
							LA198_: ;
							{
								tyArray__AB6yfoUgfWM2NtGe9bzkCmw T202_;
								NI T203_;
								nimZeroMem((void*)T202_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
								T202_[0] = tmpX60gensym214_;
								T203_ = (NI)0;
								T203_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__2);
								T202_[1] = p__PTsSyPSfjwGJy89cb8X3Ylw((*itX60gensym125__2)._kind_6.sons->data[(NI)(T203_ - ((NI) 1))], c, (&branchScopeX60gensym125_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
								cpyX60gensym214_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T202_, 2);
							}
							LA194_: ;
							{
								NI T206_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym214_;
								NI T209_;
								T206_ = (branchScopeX60gensym125_.vars ? branchScopeX60gensym125_.vars->Sup.len : 0);
								if (!(((NI) 0) < T206_)) goto LA207_;
								T209_ = (NI)0;
								T209_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__2);
								varSectionX60gensym214_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*itX60gensym125__2)._kind_6.sons->data[(NI)(T209_ - ((NI) 1))]).info);
								{
									tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w** tmpX60gensym214__2;
									NI i_10;
									NI L_5;
									NI T211_;
									tmpX60gensym214__2 = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w**)0;
									i_10 = ((NI) 0);
									T211_ = (branchScopeX60gensym125_.vars ? branchScopeX60gensym125_.vars->Sup.len : 0);
									L_5 = T211_;
									{
										while (1) {
											tyArray__T6RKPw8xfAeNaoei9aZGzXg T214_;
											NI T215_;
											NI T216_;
											tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T217_;
											if (!(i_10 < L_5)) goto LA213;
											tmpX60gensym214__2 = &branchScopeX60gensym125_.vars->data[i_10];
											nimZeroMem((void*)T214_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
											T214_[0] = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*tmpX60gensym214__2));
											T215_ = (NI)0;
											T215_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__2);
											T214_[1] = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym125__2)._kind_6.sons->data[(NI)(T215_ - ((NI) 1))]).info);
											T216_ = (NI)0;
											T216_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__2);
											T214_[2] = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym125__2)._kind_6.sons->data[(NI)(T216_ - ((NI) 1))]).info);
											T217_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
											T217_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T214_, 3);
											add__P8dDSotTW25BkfbyspojGg(varSectionX60gensym214_, T217_);
											i_10 += ((NI) 1);
										} LA213: ;
									}
								}
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym214_, varSectionX60gensym214_);
							}
							LA207_: ;
							T218_ = (NI)0;
							T218_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__2);
							finSectionX60gensym214_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*itX60gensym125__2)._kind_6.sons->data[(NI)(T218_ - ((NI) 1))]).info);
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym214_;
								NI i_11;
								NI L_6;
								NI T220_;
								mX60gensym214_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
								i_11 = ((NI) 0);
								T220_ = (branchScopeX60gensym125_.wasMoved ? branchScopeX60gensym125_.wasMoved->Sup.len : 0);
								L_6 = T220_;
								{
									while (1) {
										if (!(i_11 < L_6)) goto LA222;
										mX60gensym214_ = &branchScopeX60gensym125_.wasMoved->data[i_11];
										add__P8dDSotTW25BkfbyspojGg(finSectionX60gensym214_, (*mX60gensym214_));
										i_11 += ((NI) 1);
									} LA222: ;
								}
							}
							{
								NI iX60gensym214_;
								NI colontmp__8;
								NI T224_;
								NI res_3;
								iX60gensym214_ = (NI)0;
								colontmp__8 = (NI)0;
								T224_ = ((branchScopeX60gensym125_.final ? branchScopeX60gensym125_.final->Sup.len : 0)-1);
								colontmp__8 = T224_;
								res_3 = colontmp__8;
								{
									while (1) {
										if (!(((NI) 0) <= res_3)) goto LA226;
										iX60gensym214_ = res_3;
										add__P8dDSotTW25BkfbyspojGg(finSectionX60gensym214_, branchScopeX60gensym125_.final->data[iX60gensym214_]);
										res_3 -= ((NI) 1);
									} LA226: ;
								}
							}
							{
								tyArray__AB6yfoUgfWM2NtGe9bzkCmw T231_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T232_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T233_;
								if (!branchScopeX60gensym125_.needsTry) goto LA229_;
								nimZeroMem((void*)T231_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
								T231_[0] = cpyX60gensym214_;
								T231_[1] = p__PTsSyPSfjwGJy89cb8X3Ylw(tmpX60gensym214_, c, branchScopeX60gensym125_.parent, mode);
								T232_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T232_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T231_, 2);
								T233_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T233_ = newTryFinally__WU9bcLfpyH2zHBQqGau0nNQ(T232_, finSectionX60gensym214_);
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym214_, T233_);
							}
							goto LA227_;
							LA229_: ;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T235_;
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym214_, cpyX60gensym214_);
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym214_, finSectionX60gensym214_);
								T235_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T235_ = p__PTsSyPSfjwGJy89cb8X3Ylw(tmpX60gensym214_, c, branchScopeX60gensym125_.parent, mode);
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym214_, T235_);
							}
							LA227_: ;
							{
								NIM_BOOL T240_;
								if (!!((branchScopeX60gensym125_.parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL)))) goto LA238_;
								T240_ = (NIM_BOOL)0;
								T240_ = (*branchScopeX60gensym125_.parent).needsTry;
								if (T240_) goto LA241_;
								T240_ = branchScopeX60gensym125_.needsTry;
								LA241_: ;
								(*branchScopeX60gensym125_.parent).needsTry = T240_;
							}
							LA238_: ;
							asgnRef((void**) (&(*branchX60gensym125__2)._kind_6.sons->data[(NI)(T172_ - ((NI) 1))]), resultX60gensym214_);
						}
						LA173_: ;
						add__P8dDSotTW25BkfbyspojGg(result, branchX60gensym125__2);
						i_9 += ((NI) 1);
					} LA167: ;
				}
			}
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 106):
		{
			tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ tryScopeX60gensym125_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T243_;
			result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(n);
			nimZeroMem((void*)(&tryScopeX60gensym125_), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
			nestedScope__ni4yTthPfyagpkFgPFjv8Q(s, (&tryScopeX60gensym125_));
			T243_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NIM_BOOL T246_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T250_;
				T246_ = (NIM_BOOL)0;
				T246_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*(*n)._kind_6.sons->data[((NI) 0)]).typ);
				if (T246_) goto LA247_;
				T246_ = NIM_FALSE;
				LA247_: ;
				if (!T246_) goto LA248_;
				T250_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				{
					NIM_BOOL T253_;
					T253_ = (NIM_BOOL)0;
					T253_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*(*n)._kind_6.sons->data[((NI) 0)]).typ);
					if (!T253_) goto LA254_;
					T250_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym125_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
				}
				goto LA251_;
				LA254_: ;
				{
					T250_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym125_), mode);
				}
				LA251_: ;
				T243_ = processScope__ur1q32ALAU6hCaCkFnKb1w(c, (&tryScopeX60gensym125_), T250_);
			}
			goto LA244_;
			LA248_: ;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym230_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym230_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym230_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym230_;
				resultX60gensym230_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*n)._kind_6.sons->data[((NI) 0)]).info);
				tmpX60gensym230_ = getTemp__KB0wf28km02QmgKPPOnujQ(c, tryScopeX60gensym125_.parent, (*(*n)._kind_6.sons->data[((NI) 0)]).typ, (*(*n)._kind_6.sons->data[((NI) 0)]).info);
				(*(*tmpX60gensym230_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 44)) & 63);
				{
					NIM_BOOL T260_;
					T260_ = (NIM_BOOL)0;
					T260_ = hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors((&(*c)), (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
					if (!T260_) goto LA261_;
					cpyX60gensym230_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(tmpX60gensym230_, (*n)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym125_), NIM_TRUE);
				}
				goto LA258_;
				LA261_: ;
				{
					tyArray__AB6yfoUgfWM2NtGe9bzkCmw T264_;
					nimZeroMem((void*)T264_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
					T264_[0] = tmpX60gensym230_;
					T264_[1] = p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym125_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
					cpyX60gensym230_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T264_, 2);
				}
				LA258_: ;
				{
					NI T267_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym230_;
					T267_ = (tryScopeX60gensym125_.vars ? tryScopeX60gensym125_.vars->Sup.len : 0);
					if (!(((NI) 0) < T267_)) goto LA268_;
					varSectionX60gensym230_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*n)._kind_6.sons->data[((NI) 0)]).info);
					{
						tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w** tmpX60gensym230__2;
						NI i_12;
						NI L_7;
						NI T271_;
						tmpX60gensym230__2 = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w**)0;
						i_12 = ((NI) 0);
						T271_ = (tryScopeX60gensym125_.vars ? tryScopeX60gensym125_.vars->Sup.len : 0);
						L_7 = T271_;
						{
							while (1) {
								tyArray__T6RKPw8xfAeNaoei9aZGzXg T274_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T275_;
								if (!(i_12 < L_7)) goto LA273;
								tmpX60gensym230__2 = &tryScopeX60gensym125_.vars->data[i_12];
								nimZeroMem((void*)T274_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
								T274_[0] = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*tmpX60gensym230__2));
								T274_[1] = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*n)._kind_6.sons->data[((NI) 0)]).info);
								T274_[2] = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*n)._kind_6.sons->data[((NI) 0)]).info);
								T275_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T275_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T274_, 3);
								add__P8dDSotTW25BkfbyspojGg(varSectionX60gensym230_, T275_);
								i_12 += ((NI) 1);
							} LA273: ;
						}
					}
					add__P8dDSotTW25BkfbyspojGg(resultX60gensym230_, varSectionX60gensym230_);
				}
				LA268_: ;
				finSectionX60gensym230_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*n)._kind_6.sons->data[((NI) 0)]).info);
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym230_;
					NI i_13;
					NI L_8;
					NI T277_;
					mX60gensym230_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
					i_13 = ((NI) 0);
					T277_ = (tryScopeX60gensym125_.wasMoved ? tryScopeX60gensym125_.wasMoved->Sup.len : 0);
					L_8 = T277_;
					{
						while (1) {
							if (!(i_13 < L_8)) goto LA279;
							mX60gensym230_ = &tryScopeX60gensym125_.wasMoved->data[i_13];
							add__P8dDSotTW25BkfbyspojGg(finSectionX60gensym230_, (*mX60gensym230_));
							i_13 += ((NI) 1);
						} LA279: ;
					}
				}
				{
					NI iX60gensym230_;
					NI colontmp__9;
					NI T281_;
					NI res_4;
					iX60gensym230_ = (NI)0;
					colontmp__9 = (NI)0;
					T281_ = ((tryScopeX60gensym125_.final ? tryScopeX60gensym125_.final->Sup.len : 0)-1);
					colontmp__9 = T281_;
					res_4 = colontmp__9;
					{
						while (1) {
							if (!(((NI) 0) <= res_4)) goto LA283;
							iX60gensym230_ = res_4;
							add__P8dDSotTW25BkfbyspojGg(finSectionX60gensym230_, tryScopeX60gensym125_.final->data[iX60gensym230_]);
							res_4 -= ((NI) 1);
						} LA283: ;
					}
				}
				{
					tyArray__AB6yfoUgfWM2NtGe9bzkCmw T288_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T295_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T296_;
					if (!tryScopeX60gensym125_.needsTry) goto LA286_;
					nimZeroMem((void*)T288_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
					T288_[0] = cpyX60gensym230_;
					{
						NIM_BOOL T291_;
						T291_ = (NIM_BOOL)0;
						T291_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*tmpX60gensym230_).typ);
						if (!T291_) goto LA292_;
						T288_[1] = p__PTsSyPSfjwGJy89cb8X3Ylw(tmpX60gensym230_, c, tryScopeX60gensym125_.parent, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
					}
					goto LA289_;
					LA292_: ;
					{
						T288_[1] = p__PTsSyPSfjwGJy89cb8X3Ylw(tmpX60gensym230_, c, tryScopeX60gensym125_.parent, mode);
					}
					LA289_: ;
					T295_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T295_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T288_, 2);
					T296_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T296_ = newTryFinally__WU9bcLfpyH2zHBQqGau0nNQ(T295_, finSectionX60gensym230_);
					add__P8dDSotTW25BkfbyspojGg(resultX60gensym230_, T296_);
				}
				goto LA284_;
				LA286_: ;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T298_;
					add__P8dDSotTW25BkfbyspojGg(resultX60gensym230_, cpyX60gensym230_);
					add__P8dDSotTW25BkfbyspojGg(resultX60gensym230_, finSectionX60gensym230_);
					T298_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					{
						NIM_BOOL T301_;
						T301_ = (NIM_BOOL)0;
						T301_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*tmpX60gensym230_).typ);
						if (!T301_) goto LA302_;
						T298_ = p__PTsSyPSfjwGJy89cb8X3Ylw(tmpX60gensym230_, c, tryScopeX60gensym125_.parent, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
					}
					goto LA299_;
					LA302_: ;
					{
						T298_ = p__PTsSyPSfjwGJy89cb8X3Ylw(tmpX60gensym230_, c, tryScopeX60gensym125_.parent, mode);
					}
					LA299_: ;
					add__P8dDSotTW25BkfbyspojGg(resultX60gensym230_, T298_);
				}
				LA284_: ;
				{
					NIM_BOOL T309_;
					if (!!((tryScopeX60gensym125_.parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL)))) goto LA307_;
					T309_ = (NIM_BOOL)0;
					T309_ = (*tryScopeX60gensym125_.parent).needsTry;
					if (T309_) goto LA310_;
					T309_ = tryScopeX60gensym125_.needsTry;
					LA310_: ;
					(*tryScopeX60gensym125_.parent).needsTry = T309_;
				}
				LA307_: ;
				T243_ = resultX60gensym230_;
			}
			LA244_: ;
			add__P8dDSotTW25BkfbyspojGg(result, T243_);
			{
				NI iX60gensym125__5;
				NI colontmp__10;
				NI i_14;
				iX60gensym125__5 = (NI)0;
				colontmp__10 = (NI)0;
				colontmp__10 = len__P89cqdlERShb9alU3iC0yj8wast(n);
				i_14 = ((NI) 1);
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* itX60gensym125__3;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchX60gensym125__3;
						tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ branchScopeX60gensym125__2;
						NI T314_;
						if (!(i_14 < colontmp__10)) goto LA313;
						iX60gensym125__5 = i_14;
						itX60gensym125__3 = (*n)._kind_6.sons->data[iX60gensym125__5];
						branchX60gensym125__3 = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(itX60gensym125__3);
						nimZeroMem((void*)(&branchScopeX60gensym125__2), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
						nestedScope__ni4yTthPfyagpkFgPFjv8Q(s, (&branchScopeX60gensym125__2));
						T314_ = (NI)0;
						T314_ = len__P89cqdlERShb9alU3iC0yj8wast(branchX60gensym125__3);
						{
							NIM_BOOL T317_;
							NIM_BOOL T318_;
							NI T319_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T324_;
							T317_ = (NIM_BOOL)0;
							T318_ = (NIM_BOOL)0;
							T319_ = (NI)0;
							T319_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__3);
							T318_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*(*itX60gensym125__3)._kind_6.sons->data[(NI)(T319_ - ((NI) 1))]).typ);
							if (T318_) goto LA320_;
							T318_ = NIM_FALSE;
							LA320_: ;
							T317_ = T318_;
							if (T317_) goto LA321_;
							T317_ = ((*itX60gensym125__3).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107));
							LA321_: ;
							if (!T317_) goto LA322_;
							T324_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							{
								NI T329_;
								if (!((*itX60gensym125__3).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107))) goto LA327_;
								T329_ = (NI)0;
								T329_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__3);
								T324_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*itX60gensym125__3)._kind_6.sons->data[(NI)(T329_ - ((NI) 1))], c, (&branchScopeX60gensym125__2), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
							}
							goto LA325_;
							LA327_: ;
							{
								{
									NI T333_;
									NIM_BOOL T334_;
									NI T337_;
									T333_ = (NI)0;
									T333_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__3);
									T334_ = (NIM_BOOL)0;
									T334_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*(*itX60gensym125__3)._kind_6.sons->data[(NI)(T333_ - ((NI) 1))]).typ);
									if (!T334_) goto LA335_;
									T337_ = (NI)0;
									T337_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__3);
									T324_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*itX60gensym125__3)._kind_6.sons->data[(NI)(T337_ - ((NI) 1))], c, (&branchScopeX60gensym125__2), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
								}
								goto LA331_;
								LA335_: ;
								{
									NI T339_;
									T339_ = (NI)0;
									T339_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__3);
									T324_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*itX60gensym125__3)._kind_6.sons->data[(NI)(T339_ - ((NI) 1))], c, (&branchScopeX60gensym125__2), mode);
								}
								LA331_: ;
							}
							LA325_: ;
							asgnRef((void**) (&(*branchX60gensym125__3)._kind_6.sons->data[(NI)(T314_ - ((NI) 1))]), processScope__ur1q32ALAU6hCaCkFnKb1w(c, (&branchScopeX60gensym125__2), T324_));
						}
						goto LA315_;
						LA322_: ;
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym261_;
							NI T341_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym261_;
							NI T342_;
							NI T343_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym261_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym261_;
							NI T368_;
							T341_ = (NI)0;
							T341_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__3);
							resultX60gensym261_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*itX60gensym125__3)._kind_6.sons->data[(NI)(T341_ - ((NI) 1))]).info);
							T342_ = (NI)0;
							T342_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__3);
							T343_ = (NI)0;
							T343_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__3);
							tmpX60gensym261_ = getTemp__KB0wf28km02QmgKPPOnujQ(c, branchScopeX60gensym125__2.parent, (*(*itX60gensym125__3)._kind_6.sons->data[(NI)(T342_ - ((NI) 1))]).typ, (*(*itX60gensym125__3)._kind_6.sons->data[(NI)(T343_ - ((NI) 1))]).info);
							(*(*tmpX60gensym261_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 44)) & 63);
							{
								NI T346_;
								NIM_BOOL T347_;
								NI T350_;
								T346_ = (NI)0;
								T346_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__3);
								T347_ = (NIM_BOOL)0;
								T347_ = hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors((&(*c)), (*(*itX60gensym125__3)._kind_6.sons->data[(NI)(T346_ - ((NI) 1))]).typ);
								if (!T347_) goto LA348_;
								T350_ = (NI)0;
								T350_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__3);
								cpyX60gensym261_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(tmpX60gensym261_, (*itX60gensym125__3)._kind_6.sons->data[(NI)(T350_ - ((NI) 1))], c, (&branchScopeX60gensym125__2), NIM_TRUE);
							}
							goto LA344_;
							LA348_: ;
							{
								tyArray__AB6yfoUgfWM2NtGe9bzkCmw T352_;
								NI T353_;
								nimZeroMem((void*)T352_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
								T352_[0] = tmpX60gensym261_;
								T353_ = (NI)0;
								T353_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__3);
								T352_[1] = p__PTsSyPSfjwGJy89cb8X3Ylw((*itX60gensym125__3)._kind_6.sons->data[(NI)(T353_ - ((NI) 1))], c, (&branchScopeX60gensym125__2), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
								cpyX60gensym261_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T352_, 2);
							}
							LA344_: ;
							{
								NI T356_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym261_;
								NI T359_;
								T356_ = (branchScopeX60gensym125__2.vars ? branchScopeX60gensym125__2.vars->Sup.len : 0);
								if (!(((NI) 0) < T356_)) goto LA357_;
								T359_ = (NI)0;
								T359_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__3);
								varSectionX60gensym261_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*itX60gensym125__3)._kind_6.sons->data[(NI)(T359_ - ((NI) 1))]).info);
								{
									tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w** tmpX60gensym261__2;
									NI i_15;
									NI L_9;
									NI T361_;
									tmpX60gensym261__2 = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w**)0;
									i_15 = ((NI) 0);
									T361_ = (branchScopeX60gensym125__2.vars ? branchScopeX60gensym125__2.vars->Sup.len : 0);
									L_9 = T361_;
									{
										while (1) {
											tyArray__T6RKPw8xfAeNaoei9aZGzXg T364_;
											NI T365_;
											NI T366_;
											tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T367_;
											if (!(i_15 < L_9)) goto LA363;
											tmpX60gensym261__2 = &branchScopeX60gensym125__2.vars->data[i_15];
											nimZeroMem((void*)T364_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
											T364_[0] = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*tmpX60gensym261__2));
											T365_ = (NI)0;
											T365_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__3);
											T364_[1] = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym125__3)._kind_6.sons->data[(NI)(T365_ - ((NI) 1))]).info);
											T366_ = (NI)0;
											T366_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__3);
											T364_[2] = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym125__3)._kind_6.sons->data[(NI)(T366_ - ((NI) 1))]).info);
											T367_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
											T367_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T364_, 3);
											add__P8dDSotTW25BkfbyspojGg(varSectionX60gensym261_, T367_);
											i_15 += ((NI) 1);
										} LA363: ;
									}
								}
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym261_, varSectionX60gensym261_);
							}
							LA357_: ;
							T368_ = (NI)0;
							T368_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__3);
							finSectionX60gensym261_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*itX60gensym125__3)._kind_6.sons->data[(NI)(T368_ - ((NI) 1))]).info);
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym261_;
								NI i_16;
								NI L_10;
								NI T370_;
								mX60gensym261_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
								i_16 = ((NI) 0);
								T370_ = (branchScopeX60gensym125__2.wasMoved ? branchScopeX60gensym125__2.wasMoved->Sup.len : 0);
								L_10 = T370_;
								{
									while (1) {
										if (!(i_16 < L_10)) goto LA372;
										mX60gensym261_ = &branchScopeX60gensym125__2.wasMoved->data[i_16];
										add__P8dDSotTW25BkfbyspojGg(finSectionX60gensym261_, (*mX60gensym261_));
										i_16 += ((NI) 1);
									} LA372: ;
								}
							}
							{
								NI iX60gensym261_;
								NI colontmp__11;
								NI T374_;
								NI res_5;
								iX60gensym261_ = (NI)0;
								colontmp__11 = (NI)0;
								T374_ = ((branchScopeX60gensym125__2.final ? branchScopeX60gensym125__2.final->Sup.len : 0)-1);
								colontmp__11 = T374_;
								res_5 = colontmp__11;
								{
									while (1) {
										if (!(((NI) 0) <= res_5)) goto LA376;
										iX60gensym261_ = res_5;
										add__P8dDSotTW25BkfbyspojGg(finSectionX60gensym261_, branchScopeX60gensym125__2.final->data[iX60gensym261_]);
										res_5 -= ((NI) 1);
									} LA376: ;
								}
							}
							{
								tyArray__AB6yfoUgfWM2NtGe9bzkCmw T381_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T382_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T383_;
								if (!branchScopeX60gensym125__2.needsTry) goto LA379_;
								nimZeroMem((void*)T381_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
								T381_[0] = cpyX60gensym261_;
								T381_[1] = p__PTsSyPSfjwGJy89cb8X3Ylw(tmpX60gensym261_, c, branchScopeX60gensym125__2.parent, mode);
								T382_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T382_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T381_, 2);
								T383_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T383_ = newTryFinally__WU9bcLfpyH2zHBQqGau0nNQ(T382_, finSectionX60gensym261_);
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym261_, T383_);
							}
							goto LA377_;
							LA379_: ;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T385_;
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym261_, cpyX60gensym261_);
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym261_, finSectionX60gensym261_);
								T385_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T385_ = p__PTsSyPSfjwGJy89cb8X3Ylw(tmpX60gensym261_, c, branchScopeX60gensym125__2.parent, mode);
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym261_, T385_);
							}
							LA377_: ;
							{
								NIM_BOOL T390_;
								if (!!((branchScopeX60gensym125__2.parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL)))) goto LA388_;
								T390_ = (NIM_BOOL)0;
								T390_ = (*branchScopeX60gensym125__2.parent).needsTry;
								if (T390_) goto LA391_;
								T390_ = branchScopeX60gensym125__2.needsTry;
								LA391_: ;
								(*branchScopeX60gensym125__2.parent).needsTry = T390_;
							}
							LA388_: ;
							asgnRef((void**) (&(*branchX60gensym125__3)._kind_6.sons->data[(NI)(T314_ - ((NI) 1))]), resultX60gensym261_);
						}
						LA315_: ;
						add__P8dDSotTW25BkfbyspojGg(result, branchX60gensym125__3);
						i_14 += ((NI) 1);
					} LA313: ;
				}
			}
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 93):
		{
			result = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(n);
			asgnRef((void**) (&(*(*result)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)]), p__PTsSyPSfjwGJy89cb8X3Ylw((*(*n)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)], c, s, mode));
		}
		break;
		default:
		{
		}
		break;
		}
	}
	goto LA1_;
	LA3_: ;
	{
		if (!(mode == ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 2))) goto LA395_;
		{
			NIM_BOOL T399_;
			T399_ = (NIM_BOOL)0;
			T399_ = containsConstSeq__3rzbQm9aIqUljCutfRquODA(n);
			if (!T399_) goto LA400_;
			result = passCopyToSink__BDQdBbgsT8pCjPIGSq869bQ_2(n, c, s);
		}
		goto LA397_;
		LA400_: ;
		{
			if (!((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23) || (*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 155) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160))) goto LA403_;
			result = p__PTsSyPSfjwGJy89cb8X3Ylw(n, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
		}
		goto LA397_;
		LA403_: ;
		{
			NIM_BOOL T406_;
			NIM_BOOL T407_;
			NIM_BOOL T408_;
			NIM_BOOL T409_;
			NIM_BOOL T414_;
			T406_ = (NIM_BOOL)0;
			T407_ = (NIM_BOOL)0;
			T408_ = (NIM_BOOL)0;
			T409_ = (NIM_BOOL)0;
			T409_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T409_)) goto LA410_;
			T409_ = isSinkParam__Ye2MiAptq3GrXxTQeyXNeA_4ast((*n)._kind_4.sym);
			LA410_: ;
			T408_ = T409_;
			if (T408_) goto LA411_;
			T408_ = isAnalysableFieldAccess__scxG86YRKjb7mFYULG1CyQ(n, (*c).owner);
			LA411_: ;
			T407_ = T408_;
			if (!(T407_)) goto LA412_;
			T407_ = isLastRead__cXlunxLFt2VNVqtuIWbJWg_2(n, c);
			LA412_: ;
			T406_ = T407_;
			if (!(T406_)) goto LA413_;
			T414_ = (NIM_BOOL)0;
			T414_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T414_)) goto LA415_;
			T414_ = isCursor__U5eKhGaSBKhqqv1iUFOkVQ(n, (&(*c)));
			LA415_: ;
			T406_ = !(T414_);
			LA413_: ;
			if (!T406_) goto LA416_;
			result = destructiveMoveVar__BDQdBbgsT8pCjPIGSq869bQ_3(n, c, s);
		}
		goto LA397_;
		LA416_: ;
		{
			if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 60))) goto LA419_;
			result = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(n);
			{
				NIM_BOOL T423_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T424_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T426_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* nTyp;
				T423_ = (NIM_BOOL)0;
				T424_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T424_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36099165763184912));
				T423_ = !(((*T424_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45)));
				if (!(T423_)) goto LA425_;
				T426_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T426_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 1)]).typ, IL64(36099165763184912));
				T423_ = ((*T426_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45));
				LA425_: ;
				if (!T423_) goto LA427_;
				nTyp = (*(*n)._kind_6.sons->data[((NI) 1)]).typ;
				asgnRef((void**) (&(*(*n)._kind_6.sons->data[((NI) 1)]).typ), (*n).typ);
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 1)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 2)));
				asgnRef((void**) (&(*(*result)._kind_6.sons->data[((NI) 1)]).typ), nTyp);
			}
			goto LA421_;
			LA427_: ;
			{
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 1)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 2)));
			}
			LA421_: ;
		}
		goto LA397_;
		LA419_: ;
		{
			if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 67))) goto LA431_;
			result = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(n);
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 2)));
		}
		goto LA397_;
		LA431_: ;
		{
			if (!((*n).typ == ((tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*) NIM_NIL))) goto LA434_;
			result = p__PTsSyPSfjwGJy89cb8X3Ylw(n, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
		}
		goto LA397_;
		LA434_: ;
		{
			result = passCopyToSink__BDQdBbgsT8pCjPIGSq869bQ_2(n, c, s);
		}
		LA397_: ;
	}
	goto LA1_;
	LA395_: ;
	{
		switch ((*n).kind) {
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 155):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39):
		{
			NIM_BOOL isRefConstr;
			NIM_BOOL T439_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T441_;
			tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw m;
			T439_ = (NIM_BOOL)0;
			T439_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38));
			if (!(T439_)) goto LA440_;
			T441_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T441_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36134350135273744));
			T439_ = ((*T441_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22));
			LA440_: ;
			isRefConstr = T439_;
			{
				if (!isRefConstr) goto LA444_;
				m = ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 2);
			}
			goto LA442_;
			LA444_: ;
			{
				if (!(mode == ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0))) goto LA447_;
				m = ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0);
			}
			goto LA442_;
			LA447_: ;
			{
				m = ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 2);
			}
			LA442_: ;
			result = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(n);
			{
				NI i_17;
				NI colontmp__12;
				NI colontmp__13;
				NI i_18;
				i_17 = (NI)0;
				colontmp__12 = (NI)0;
				colontmp__13 = (NI)0;
				colontmp__12 = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 155));
				colontmp__13 = len__P89cqdlERShb9alU3iC0yj8wast(n);
				i_18 = colontmp__12;
				{
					while (1) {
						if (!(i_18 < colontmp__13)) goto LA452;
						i_17 = i_18;
						{
							if (!((*(*n)._kind_6.sons->data[i_17]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA455_;
							asgnRef((void**) (&(*(*result)._kind_6.sons->data[i_17])._kind_6.sons->data[((NI) 1)]), p__PTsSyPSfjwGJy89cb8X3Ylw((*(*n)._kind_6.sons->data[i_17])._kind_6.sons->data[((NI) 1)], c, s, m));
						}
						goto LA453_;
						LA455_: ;
						{
							if (!((*(*n)._kind_6.sons->data[i_17]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA458_;
							asgnRef((void**) (&(*(*result)._kind_6.sons->data[i_17])._kind_6.sons->data[((NI) 0)]), p__PTsSyPSfjwGJy89cb8X3Ylw((*(*n)._kind_6.sons->data[i_17])._kind_6.sons->data[((NI) 0)], c, s, m));
							asgnRef((void**) (&(*(*result)._kind_6.sons->data[i_17])._kind_6.sons->data[((NI) 1)]), p__PTsSyPSfjwGJy89cb8X3Ylw((*(*n)._kind_6.sons->data[i_17])._kind_6.sons->data[((NI) 1)], c, s, m));
						}
						goto LA453_;
						LA458_: ;
						{
							asgnRef((void**) (&(*result)._kind_6.sons->data[i_17]), p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[i_17], c, s, m));
						}
						LA453_: ;
						i_18 += ((NI) 1);
					} LA452: ;
				}
			}
			{
				NIM_BOOL T463_;
				T463_ = (NIM_BOOL)0;
				T463_ = (mode == ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
				if (!(T463_)) goto LA464_;
				T463_ = isRefConstr;
				LA464_: ;
				if (!T463_) goto LA465_;
				result = ensureDestruction__3uQEgn0k2q4kiGbXS12GXw(result, n, c, s);
			}
			LA465_: ;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32):
		{
			NI inSpawn;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* parameters;
			NI L_11;
			inSpawn = (*c).inSpawn;
			{
				NIM_BOOL T470_;
				T470_ = (NIM_BOOL)0;
				T470_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
				if (!(T470_)) goto LA471_;
				T470_ = ((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 194));
				LA471_: ;
				if (!T470_) goto LA472_;
				(*c).inSpawn += ((NI) 1);
			}
			goto LA468_;
			LA472_: ;
			{
				if (!(((NI) 0) < (*c).inSpawn)) goto LA475_;
				(*c).inSpawn -= ((NI) 1);
			}
			goto LA468_;
			LA475_: ;
			LA468_: ;
			parameters = (*(*n)._kind_6.sons->data[((NI) 0)]).typ;
			{
				if (!!((parameters == ((tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*) NIM_NIL)))) goto LA479_;
				L_11 = len__5mJADrRYkP3r9auuiuDZN9cQast(parameters);
			}
			goto LA477_;
			LA479_: ;
			{
				L_11 = ((NI) 0);
			}
			LA477_: ;
			result = shallowCopy__Dsjo9bte8vGxzhtcSrsTyiQ_3(n);
			{
				NI i_19;
				NI colontmp__14;
				NI i_20;
				i_19 = (NI)0;
				colontmp__14 = (NI)0;
				colontmp__14 = len__P89cqdlERShb9alU3iC0yj8wast(n);
				i_20 = ((NI) 1);
				{
					while (1) {
						if (!(i_20 < colontmp__14)) goto LA484;
						i_19 = i_20;
						{
							NIM_BOOL T487_;
							T487_ = (NIM_BOOL)0;
							T487_ = (i_19 < L_11);
							if (!(T487_)) goto LA488_;
							T487_ = isCompileTimeOnly__F9ciDIanrWYqbJ4rgLlNAAg_3types((*parameters).sons->data[i_19]);
							LA488_: ;
							if (!T487_) goto LA489_;
							asgnRef((void**) (&(*result)._kind_6.sons->data[i_19]), (*n)._kind_6.sons->data[i_19]);
						}
						goto LA485_;
						LA489_: ;
						{
							NIM_BOOL T492_;
							NIM_BOOL T494_;
							T492_ = (NIM_BOOL)0;
							T492_ = (i_19 < L_11);
							if (!(T492_)) goto LA493_;
							T494_ = (NIM_BOOL)0;
							T494_ = isSinkTypeForParam__YPjOkGV9axAnGR3UfLeWZ1g_11((*parameters).sons->data[i_19]);
							if (T494_) goto LA495_;
							T494_ = (((NI) 0) < inSpawn);
							LA495_: ;
							T492_ = T494_;
							LA493_: ;
							if (!T492_) goto LA496_;
							asgnRef((void**) (&(*result)._kind_6.sons->data[i_19]), p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[i_19], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 2)));
						}
						goto LA485_;
						LA496_: ;
						{
							asgnRef((void**) (&(*result)._kind_6.sons->data[i_19]), p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[i_19], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0)));
						}
						LA485_: ;
						i_20 += ((NI) 1);
					} LA484: ;
				}
			}
			{
				NIM_BOOL T501_;
				T501_ = (NIM_BOOL)0;
				T501_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
				if (!(T501_)) goto LA502_;
				T501_ = ((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 32) || (*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 33));
				LA502_: ;
				if (!T501_) goto LA503_;
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), copyTree__Dsjo9bte8vGxzhtcSrsTyiQ((*n)._kind_6.sons->data[((NI) 0)]));
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* destroyOld;
					tyArray__AB6yfoUgfWM2NtGe9bzkCmw T509_;
					if (!((176 &((NU16)1<<((NU)((*(*(*c).graph).config).selectedGC)&15U)))!=0)) goto LA507_;
					destroyOld = genDestroy__eh46xmsJR79buekuc0oQIdQ((&(*c)), (*result)._kind_6.sons->data[((NI) 1)]);
					nimZeroMem((void*)T509_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
					T509_[0] = destroyOld;
					T509_[1] = result;
					result = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T509_, 2);
				}
				LA507_: ;
			}
			goto LA499_;
			LA503_: ;
			{
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0)));
			}
			LA499_: ;
			{
				NIM_BOOL T513_;
				T513_ = (NIM_BOOL)0;
				T513_ = canRaise__qAerQ9bftuf70QDk42UIFXg_2((*n)._kind_6.sons->data[((NI) 0)]);
				if (!T513_) goto LA514_;
				(*s).needsTry = NIM_TRUE;
			}
			LA514_: ;
			{
				if (!(mode == ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0))) goto LA518_;
				result = ensureDestruction__3uQEgn0k2q4kiGbXS12GXw(result, n, c, s);
			}
			LA518_: ;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 114):
		{
			result = shallowCopy__Dsjo9bte8vGxzhtcSrsTyiQ_3(n);
			{
				if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA523_;
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0)));
			}
			goto LA521_;
			LA523_: ;
			{
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2((*n)._kind_6.sons->data[((NI) 0)]));
			}
			LA521_: ;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 100):
		{
			result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
				it = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				{
					NI i_21;
					NI colontmp__15;
					NI i_22;
					i_21 = (NI)0;
					colontmp__15 = (NI)0;
					colontmp__15 = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
					i_22 = ((NI) 0);
					{
						while (1) {
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri;
							NI T531_;
							if (!(i_22 < colontmp__15)) goto LA530;
							i_21 = i_22;
							it = (*n)._kind_6.sons->data[i_21];
							T531_ = (NI)0;
							T531_ = len__P89cqdlERShb9alU3iC0yj8wast(it);
							ri = (*it)._kind_6.sons->data[(NI)(T531_ - ((NI) 1))];
							{
								NIM_BOOL T534_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T538_;
								T534_ = (NIM_BOOL)0;
								T534_ = ((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36));
								if (!(T534_)) goto LA535_;
								T534_ = hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors((&(*c)), (*ri).typ);
								LA535_: ;
								if (!T534_) goto LA536_;
								x = lowerTupleUnpacking__8A4G64HByteFanrMUexmNw_2((*c).graph, it, (*c).owner);
								T538_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T538_ = p__PTsSyPSfjwGJy89cb8X3Ylw(x, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
								add__P8dDSotTW25BkfbyspojGg(result, T538_);
							}
							goto LA532_;
							LA536_: ;
							{
								NIM_BOOL T540_;
								NIM_BOOL T541_;
								NIM_BOOL T544_;
								T540_ = (NIM_BOOL)0;
								T541_ = (NIM_BOOL)0;
								T541_ = ((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35));
								if (!(T541_)) goto LA542_;
								T541_ = hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors((&(*c)), (*(*it)._kind_6.sons->data[((NI) 0)]).typ);
								LA542_: ;
								T540_ = T541_;
								if (!(T540_)) goto LA543_;
								T544_ = (NIM_BOOL)0;
								T544_ = isCursor__U5eKhGaSBKhqqv1iUFOkVQ((*it)._kind_6.sons->data[((NI) 0)], (&(*c)));
								T540_ = !(T544_);
								LA543_: ;
								if (!T540_) goto LA545_;
								{
									NI j;
									NI colontmp__16;
									NI T548_;
									NI i_23;
									j = (NI)0;
									colontmp__16 = (NI)0;
									T548_ = (NI)0;
									T548_ = len__P89cqdlERShb9alU3iC0yj8wast(it);
									colontmp__16 = (NI)(T548_ - ((NI) 2));
									i_23 = ((NI) 0);
									{
										while (1) {
											if (!(i_23 < colontmp__16)) goto LA550;
											j = i_23;
											{
												tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* v;
												v = (*it)._kind_6.sons->data[j];
												{
													if (!((*v).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA554_;
													{
														if (!(((*(*v)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 27))&63U)))!=0)) goto LA558_;
														goto LA551;
													}
													LA558_: ;
													pVarTopLevel__GROdgBo9cGIJkwoEZ3yTrew(v, c, s, ri, result);
												}
												goto LA552_;
												LA554_: ;
												{
													{
														NIM_BOOL T563_;
														T563_ = (NIM_BOOL)0;
														T563_ = ((*ri).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
														if (!(T563_)) goto LA564_;
														T563_ = (((NI) 0) < (*c).inLoop);
														LA564_: ;
														if (!T563_) goto LA565_;
														ri = genDefaultCall__jDZnpAAtuqqpzyrgS2mXUg((*v).typ, (&(*c)), (*v).info);
													}
													LA565_: ;
													{
														tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T571_;
														if (!!(((*ri).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA569_;
														T571_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
														T571_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(v, ri, c, s, NIM_FALSE);
														add__P8dDSotTW25BkfbyspojGg(result, T571_);
													}
													LA569_: ;
												}
												LA552_: ;
											} LA551: ;
											i_23 += ((NI) 1);
										} LA550: ;
									}
								}
							}
							goto LA532_;
							LA545_: ;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* v_2;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* itCopy;
								NI T577_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T578_;
								v_2 = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(n);
								itCopy = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(it);
								{
									NI j_2;
									NI colontmp__17;
									NI T574_;
									NI i_24;
									j_2 = (NI)0;
									colontmp__17 = (NI)0;
									T574_ = (NI)0;
									T574_ = len__P89cqdlERShb9alU3iC0yj8wast(it);
									colontmp__17 = (NI)(T574_ - ((NI) 1));
									i_24 = ((NI) 0);
									{
										while (1) {
											if (!(i_24 < colontmp__17)) goto LA576;
											j_2 = i_24;
											add__P8dDSotTW25BkfbyspojGg(itCopy, (*it)._kind_6.sons->data[j_2]);
											i_24 += ((NI) 1);
										} LA576: ;
									}
								}
								T577_ = (NI)0;
								T577_ = len__P89cqdlERShb9alU3iC0yj8wast(it);
								T578_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T578_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*it)._kind_6.sons->data[(NI)(T577_ - ((NI) 1))], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
								add__P8dDSotTW25BkfbyspojGg(itCopy, T578_);
								add__P8dDSotTW25BkfbyspojGg(v_2, itCopy);
								add__P8dDSotTW25BkfbyspojGg(result, v_2);
							}
							LA532_: ;
							i_22 += ((NI) 1);
						} LA530: ;
					}
				}
			}
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74):
		{
			{
				NIM_BOOL T582_;
				NIM_BOOL T583_;
				NIM_BOOL T586_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T593_;
				T582_ = (NIM_BOOL)0;
				T583_ = (NIM_BOOL)0;
				T583_ = hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors((&(*c)), (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
				if (!(T583_)) goto LA584_;
				T583_ = !(((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) || (*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52) || (*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51)));
				LA584_: ;
				T582_ = T583_;
				if (!(T582_)) goto LA585_;
				T586_ = (NIM_BOOL)0;
				T586_ = isCursor__U5eKhGaSBKhqqv1iUFOkVQ((*n)._kind_6.sons->data[((NI) 0)], (&(*c)));
				T582_ = !(T586_);
				LA585_: ;
				if (!T582_) goto LA587_;
				{
					if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46))) goto LA591_;
					cycleCheck__VtuMNEAsvSYfebdKUbJwfA(n, c);
				}
				LA591_: ;
				T593_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T593_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 0)], c, s, mode);
				result = moveOrCopy__cVidUei9a721N3SvKgbe69bw(T593_, (*n)._kind_6.sons->data[((NI) 1)], c, s, NIM_FALSE);
			}
			goto LA580_;
			LA587_: ;
			{
				NIM_BOOL T595_;
				T595_ = (NIM_BOOL)0;
				T595_ = isDiscriminantField__OTZyO2oJpdYpHVBZuRXuRQ_2((*n)._kind_6.sons->data[((NI) 0)]);
				if (!T595_) goto LA596_;
				result = genDiscriminantAsgn__SmwM1MUiEEj81Il1sHk1nA(c, s, n);
			}
			goto LA580_;
			LA596_: ;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T599_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T600_;
				result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(n);
				T599_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T599_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 0)], c, s, mode);
				add__P8dDSotTW25BkfbyspojGg(result, T599_);
				T600_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T600_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 1)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
				add__P8dDSotTW25BkfbyspojGg(result, T600_);
			}
			LA580_: ;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 108):
		{
			result = pRaiseStmt__BDQdBbgsT8pCjPIGSq869bQ(n, c, s);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 96):
		{
			internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, (*n).info, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_34), TM__dJ4qrEWDmqGA8FWJ0TYKJQ_35);
			result = n;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 0) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 81):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 80):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 82):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 83):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 101):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 102):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 121):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 116):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 118):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 90):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 158):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 132):
		{
			result = n;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 71):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 72):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 68):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 69):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 70):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 91):
		{
			result = shallowCopy__Dsjo9bte8vGxzhtcSrsTyiQ_3(n);
			{
				NI i_25;
				NI colontmp__18;
				NI i_26;
				i_25 = (NI)0;
				colontmp__18 = (NI)0;
				colontmp__18 = len__P89cqdlERShb9alU3iC0yj8wast(n);
				i_26 = ((NI) 0);
				{
					while (1) {
						if (!(i_26 < colontmp__18)) goto LA607;
						i_25 = i_26;
						asgnRef((void**) (&(*result)._kind_6.sons->data[i_25]), p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[i_25], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0)));
						i_26 += ((NI) 1);
					} LA607: ;
				}
			}
			{
				NIM_BOOL T610_;
				T610_ = (NIM_BOOL)0;
				T610_ = !(((*n).typ == ((tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*) NIM_NIL)));
				if (!(T610_)) goto LA611_;
				T610_ = hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors((&(*c)), (*n).typ);
				LA611_: ;
				if (!T610_) goto LA612_;
				{
					if (!(mode == ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0))) goto LA616_;
					result = ensureDestruction__3uQEgn0k2q4kiGbXS12GXw(result, n, c, s);
				}
				LA616_: ;
			}
			LA612_: ;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 60):
		{
			result = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(n);
			{
				NIM_BOOL T621_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T622_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T624_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* nTyp_2;
				T621_ = (NIM_BOOL)0;
				T622_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T622_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36099165763184912));
				T621_ = !(((*T622_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45)));
				if (!(T621_)) goto LA623_;
				T624_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T624_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 1)]).typ, IL64(36099165763184912));
				T621_ = ((*T624_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45));
				LA623_: ;
				if (!T621_) goto LA625_;
				nTyp_2 = (*(*n)._kind_6.sons->data[((NI) 1)]).typ;
				asgnRef((void**) (&(*(*n)._kind_6.sons->data[((NI) 1)]).typ), (*n).typ);
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 1)], c, s, mode));
				asgnRef((void**) (&(*(*result)._kind_6.sons->data[((NI) 1)]).typ), nTyp_2);
			}
			goto LA619_;
			LA625_: ;
			{
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 1)], c, s, mode));
			}
			LA619_: ;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 67):
		{
			result = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(n);
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 0)], c, s, mode));
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
		{
			result = shallowCopy__Dsjo9bte8vGxzhtcSrsTyiQ_3(n);
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0)));
			{
				NI i_27;
				NI colontmp__19;
				NI i_28;
				i_27 = (NI)0;
				colontmp__19 = (NI)0;
				colontmp__19 = len__P89cqdlERShb9alU3iC0yj8wast(n);
				i_28 = ((NI) 1);
				{
					while (1) {
						if (!(i_28 < colontmp__19)) goto LA632;
						i_27 = i_28;
						asgnRef((void**) (&(*result)._kind_6.sons->data[i_27]), (*n)._kind_6.sons->data[i_27]);
						i_28 += ((NI) 1);
					} LA632: ;
				}
			}
			{
				NIM_BOOL T635_;
				T635_ = (NIM_BOOL)0;
				T635_ = (mode == ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 2));
				if (!(T635_)) goto LA636_;
				T635_ = hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors((&(*c)), (*n).typ);
				LA636_: ;
				if (!T635_) goto LA637_;
				{
					NIM_BOOL T641_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T645_;
					NI T646_;
					T641_ = (NIM_BOOL)0;
					T641_ = isAnalysableFieldAccess__scxG86YRKjb7mFYULG1CyQ(n, (*c).owner);
					if (!(T641_)) goto LA642_;
					T641_ = isLastRead__cXlunxLFt2VNVqtuIWbJWg_2(n, c);
					LA642_: ;
					if (!T641_) goto LA643_;
					T645_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T645_ = genWasMoved__Tj0baeAMp9cue8UExOxI59bg(c, n);
					unsureAsgnRef((void**) (&(*s).wasMoved), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*s).wasMoved), (&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
					T646_ = (*s).wasMoved->Sup.len++;
					asgnRef((void**) (&(*s).wasMoved->data[T646_]), T645_);
				}
				goto LA639_;
				LA643_: ;
				{
					result = passCopyToSink__BDQdBbgsT8pCjPIGSq869bQ_2(result, c, s);
				}
				LA639_: ;
			}
			LA637_: ;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 63):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65):
		{
			result = shallowCopy__Dsjo9bte8vGxzhtcSrsTyiQ_3(n);
			{
				NI i_29;
				NI colontmp__20;
				NI i_30;
				i_29 = (NI)0;
				colontmp__20 = (NI)0;
				colontmp__20 = len__P89cqdlERShb9alU3iC0yj8wast(n);
				i_30 = ((NI) 0);
				{
					while (1) {
						if (!(i_30 < colontmp__20)) goto LA651;
						i_29 = i_30;
						asgnRef((void**) (&(*result)._kind_6.sons->data[i_29]), p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[i_29], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0)));
						i_30 += ((NI) 1);
					} LA651: ;
				}
			}
			{
				NIM_BOOL T654_;
				T654_ = (NIM_BOOL)0;
				T654_ = (mode == ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 2));
				if (!(T654_)) goto LA655_;
				T654_ = hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors((&(*c)), (*n).typ);
				LA655_: ;
				if (!T654_) goto LA656_;
				{
					NIM_BOOL T660_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T664_;
					NI T665_;
					T660_ = (NIM_BOOL)0;
					T660_ = isAnalysableFieldAccess__scxG86YRKjb7mFYULG1CyQ(n, (*c).owner);
					if (!(T660_)) goto LA661_;
					T660_ = isLastRead__cXlunxLFt2VNVqtuIWbJWg_2(n, c);
					LA661_: ;
					if (!T660_) goto LA662_;
					T664_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T664_ = genWasMoved__Tj0baeAMp9cue8UExOxI59bg(c, n);
					unsureAsgnRef((void**) (&(*s).wasMoved), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*s).wasMoved), (&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
					T665_ = (*s).wasMoved->Sup.len++;
					asgnRef((void**) (&(*s).wasMoved->data[T665_]), T664_);
				}
				goto LA658_;
				LA662_: ;
				{
					result = passCopyToSink__BDQdBbgsT8pCjPIGSq869bQ_2(result, c, s);
				}
				LA658_: ;
			}
			LA656_: ;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 105):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44):
		{
			result = shallowCopy__Dsjo9bte8vGxzhtcSrsTyiQ_3(n);
			{
				NI i_31;
				NI colontmp__21;
				NI i_32;
				i_31 = (NI)0;
				colontmp__21 = (NI)0;
				colontmp__21 = len__P89cqdlERShb9alU3iC0yj8wast(n);
				i_32 = ((NI) 0);
				{
					while (1) {
						if (!(i_32 < colontmp__21)) goto LA670;
						i_31 = i_32;
						asgnRef((void**) (&(*result)._kind_6.sons->data[i_31]), p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[i_31], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0)));
						i_32 += ((NI) 1);
					} LA670: ;
				}
			}
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 110):
		{
			(*s).needsTry = NIM_TRUE;
			result = n;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 109):
		{
			result = shallowCopy__Dsjo9bte8vGxzhtcSrsTyiQ_3(n);
			{
				NI i_33;
				NI colontmp__22;
				NI i_34;
				i_33 = (NI)0;
				colontmp__22 = (NI)0;
				colontmp__22 = len__P89cqdlERShb9alU3iC0yj8wast(n);
				i_34 = ((NI) 0);
				{
					while (1) {
						if (!(i_34 < colontmp__22)) goto LA675;
						i_33 = i_34;
						asgnRef((void**) (&(*result)._kind_6.sons->data[i_33]), p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[i_33], c, s, mode));
						i_34 += ((NI) 1);
					} LA675: ;
				}
			}
			(*s).needsTry = NIM_TRUE;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 61):
		{
			result = shallowCopy__Dsjo9bte8vGxzhtcSrsTyiQ_3(n);
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), (*n)._kind_6.sons->data[((NI) 0)]);
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 1)], c, s, mode));
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46):
		{
			result = shallowCopy__Dsjo9bte8vGxzhtcSrsTyiQ_3(n);
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 0)], c, s, mode));
			{
				NI i_35;
				NI colontmp__23;
				NI i_36;
				i_35 = (NI)0;
				colontmp__23 = (NI)0;
				colontmp__23 = len__P89cqdlERShb9alU3iC0yj8wast(n);
				i_36 = ((NI) 1);
				{
					while (1) {
						if (!(i_36 < colontmp__23)) goto LA680;
						i_35 = i_36;
						asgnRef((void**) (&(*result)._kind_6.sons->data[i_35]), (*n)._kind_6.sons->data[i_35]);
						i_36 += ((NI) 1);
					} LA680: ;
				}
			}
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 156):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 157):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 89):
		{
			result = n;
		}
		break;
		default:
		{
			NimStringDesc* T683_;
			T683_ = (NimStringDesc*)0;
			T683_ = rawNewString((reprEnum((NI)(*n).kind, (&NTI__G4E4Gxe7oI2Cm03rkiOzQw_)) ? reprEnum((NI)(*n).kind, (&NTI__G4E4Gxe7oI2Cm03rkiOzQw_))->Sup.len : 0) + 40);
appendString(T683_, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_36));
appendString(T683_, reprEnum((NI)(*n).kind, (&NTI__G4E4Gxe7oI2Cm03rkiOzQw_)));
			internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, (*n).info, T683_, TM__dJ4qrEWDmqGA8FWJ0TYKJQ_37);
		}
		break;
		}
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, injectDestructorCalls__vFi0WDJke19caFCX1tc1FkQ)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_Con__mVYRtnERc9advo79cBQUudxg c;
	tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ scope;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T29_;
{	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((*owner).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 38))&63U)))!=0);
		if (T3_) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*owner).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 15));
		if (!(T5_)) goto LA6_;
		T5_ = isInlineIterator__EhCVbB6PynSh7XFAFVMiJAast((*owner).typ);
		LA6_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA7_;
		result = n;
		goto BeforeRet_;
	}
	LA7_: ;
	nimZeroMem((void*)(&c), sizeof(tyObject_Con__mVYRtnERc9advo79cBQUudxg));
	nimZeroMem((void*)(&c), sizeof(tyObject_Con__mVYRtnERc9advo79cBQUudxg));
	c.owner = owner;
	c.graph = g;
	c.g = constructCfg__gYr9aUQRxyROXIIqCy8VmDg(owner, n);
	{
		if (!(((*(*g).config).options &((NU32)1<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 27))&31U)))!=0)) goto LA11_;
		computeCursors__x9aeseeV2cxKOgYDfLuYbXA(owner, n, (*g).config);
	}
	LA11_: ;
	nimZeroMem((void*)(&scope), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
	body = p__PTsSyPSfjwGJy89cb8X3Ylw(n, (&c), (&scope), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* params;
		if (!((126976 &((NU32)1<<((NU)((*owner).kind)&31U)))!=0)) goto LA15_;
		params = (*(*owner).typ).n;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(params);
			i_2 = ((NI) 1);
			{
				while (1) {
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
					if (!(i_2 < colontmp_)) goto LA19;
					i = i_2;
					t = (*(*(*params)._kind_6.sons->data[i])._kind_4.sym).typ;
					{
						NIM_BOOL T22_;
						tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T24_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T27_;
						NI T28_;
						T22_ = (NIM_BOOL)0;
						T22_ = isSinkTypeForParam__YPjOkGV9axAnGR3UfLeWZ1g_11(t);
						if (!(T22_)) goto LA23_;
						T24_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
						T24_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(70368744177664));
						T22_ = hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors((&c), T24_);
						LA23_: ;
						if (!T22_) goto LA25_;
						T27_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T27_ = genDestroy__eh46xmsJR79buekuc0oQIdQ((&c), (*params)._kind_6.sons->data[i]);
						scope.final = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)(scope.final), (&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_));
						T28_ = scope.final->Sup.len++;
						asgnRef((void**) (&scope.final->data[T28_]), T27_);
					}
					LA25_: ;
					i_2 += ((NI) 1);
				} LA19: ;
			}
		}
	}
	LA15_: ;
	T29_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T29_ = processScope__ur1q32ALAU6hCaCkFnKb1w((&c), (&scope), body);
	result = optimize__VCZeNpSpiHRRAv9coeudyIg(T29_);
	{
		NIM_BOOL T32_;
		tyArray__Re75IspeoxXy2oCZHwcRrA T35_;
		tyArray__nHXaesL0DJZHyVS07ARPRA T36_;
		T32_ = (NIM_BOOL)0;
		T32_ = nsthasKey((*(*g).config).arcToExpand, (*(*owner).name).s);
		if (!T32_) goto LA33_;
		nimZeroMem((void*)T35_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
		T35_[0] = copyString(((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_38));
		T35_[1] = copyString((*(*owner).name).s);
		echoBinSafe(T35_, 2);
		nimZeroMem((void*)T36_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
		T36_[0] = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(result, 516);
		echoBinSafe(T36_, 1);
		echoBinSafe(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_39, 1);
	}
	LA33_: ;
	}BeforeRet_: ;
	return result;
}
