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

#include "nimbase.h"
#include <string.h>
#include <stdio.h>
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef far
#undef powerpc
#undef unix
typedef struct tyObject_TPassContext_ZmGcnZ1NlGbjfV1h4uuYdw tyObject_TPassContext_ZmGcnZ1NlGbjfV1h4uuYdw;
typedef struct tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ;
typedef struct tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w;
typedef struct tySequence_DfgJFJEYoj4YBAHLZPl5lQ tySequence_DfgJFJEYoj4YBAHLZPl5lQ;
typedef struct tyObject_TStrTable_f07aOS3dr28kGa5wcE29aFA tyObject_TStrTable_f07aOS3dr28kGa5wcE29aFA;
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_Table_e2Ciu0s1q49aVQ7ULXy7l9bQ tyObject_Table_e2Ciu0s1q49aVQ7ULXy7l9bQ;
typedef struct tySequence_kxu4GK0onha2t9bo86mdVAg tySequence_kxu4GK0onha2t9bo86mdVAg;
typedef struct tySequence_48JTohSgTy339bRxHzUD8KA tySequence_48JTohSgTy339bRxHzUD8KA;
typedef struct RootObj RootObj;
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_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ;
typedef struct tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw;
typedef struct tyObject_IncrementalCtx_sdH7TnbKACuAzE7DBabnCA tyObject_IncrementalCtx_sdH7TnbKACuAzE7DBabnCA;
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 TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tyObject_BModuleListcolonObjectType__CpP4eJLbv5ZwofQXpESuGA tyObject_BModuleListcolonObjectType__CpP4eJLbv5ZwofQXpESuGA;
typedef struct tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA;
typedef struct tySequence_eW29aEKsgOrJUkJmVmw30lg tySequence_eW29aEKsgOrJUkJmVmw30lg;
typedef struct tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A;
typedef struct tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA;
typedef struct tySequence_sII3pVVRkIdBZ2HDPdZddA tySequence_sII3pVVRkIdBZ2HDPdZddA;
typedef struct tySequence_Ef05srmQTDulnBdXR4Ja6Q tySequence_Ef05srmQTDulnBdXR4Ja6Q;
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 NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tySequence_sM4lkSb7zS6F7OVMvW9cffQ tySequence_sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q;
typedef struct tyObject_TNodeTable_wN7B39cKxLpMkvKNm9bduZ0A tyObject_TNodeTable_wN7B39cKxLpMkvKNm9bduZ0A;
typedef struct tySequence_vhmj4KkIKPinmRXny9c2Q6Q tySequence_vhmj4KkIKPinmRXny9c2Q6Q;
typedef struct tyObject_CountTable_tUMxxU9cRgLolsrW9b7IBGsQ tyObject_CountTable_tUMxxU9cRgLolsrW9b7IBGsQ;
typedef struct tySequence_XUL1TrMU0tgXmaMFCIYgFQ tySequence_XUL1TrMU0tgXmaMFCIYgFQ;
typedef struct tyObject_NdiFile_9cEuXfAnHp9bnWFK409cMtsEw tyObject_NdiFile_9cEuXfAnHp9bnWFK409cMtsEw;
typedef struct tyObject_TIdObj_iIXPrEsiKHiioLj0HSkQhA tyObject_TIdObj_iIXPrEsiKHiioLj0HSkQhA;
typedef struct tySequence_DXS6mEo7PVUFJkirsQ9bNQA tySequence_DXS6mEo7PVUFJkirsQ9bNQA;
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_TLib_NBMxlJ6g3utqUlplqTTHkA tyObject_TLib_NBMxlJ6g3utqUlplqTTHkA;
typedef struct tySequence_P9c6Y5h4sjjYLVGti5AELHg tySequence_P9c6Y5h4sjjYLVGti5AELHg;
typedef struct tySequence_WwUFq9cJ2xKRlsAWVEHyPRg tySequence_WwUFq9cJ2xKRlsAWVEHyPRg;
typedef struct tySequence_oUyaggHmIX9bpJcMeoG6lpA tySequence_oUyaggHmIX9bpJcMeoG6lpA;
typedef struct tyObject_CountTable_chlLjy9bvnFM9b9bSZfiIkyGg tyObject_CountTable_chlLjy9bvnFM9b9bSZfiIkyGg;
typedef struct tySequence_jwzrUFjG9akTIJTBBFvvqxw tySequence_jwzrUFjG9akTIJTBBFvvqxw;
typedef struct tyObject_Target_9abOl5DLX8suLujOaHSvGzw tyObject_Target_9abOl5DLX8suLujOaHSvGzw;
typedef struct tyObject_MsgConfig_kV7r8HWT0SqOYW2k2ukC6A tyObject_MsgConfig_kV7r8HWT0SqOYW2k2ukC6A;
typedef struct tySequence_PJMRIt5QxCm6bRaVyQ5CGA tySequence_PJMRIt5QxCm6bRaVyQ5CGA;
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 tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg;
typedef struct tySequence_pK3qSsBZwdXd6qyUMkd5Jw tySequence_pK3qSsBZwdXd6qyUMkd5Jw;
typedef struct tyObject_SuggestcolonObjectType__bkMuTTb2G70XfpzAiyNrnQ tyObject_SuggestcolonObjectType__bkMuTTb2G70XfpzAiyNrnQ;
typedef struct tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ;
typedef struct tySequence_MvZmat48bhe9b6x9aUD58D5Q tySequence_MvZmat48bhe9b6x9aUD58D5Q;
typedef struct tyTuple_kN8up2W6YKc5YA9avn5mV5w tyTuple_kN8up2W6YKc5YA9avn5mV5w;
typedef struct tyTuple_u79c2fI4jf7n3cZOvTDviyA tyTuple_u79c2fI4jf7n3cZOvTDviyA;
typedef struct tyObject_TBlock_GFhahvekTq3dDOkWyhchMA tyObject_TBlock_GFhahvekTq3dDOkWyhchMA;
typedef struct tyObject_TTraversalClosure_xQv4a9atAYFpL11GCS9cY9bCg tyObject_TTraversalClosure_xQv4a9atAYFpL11GCS9cY9bCg;
typedef struct tySequence_pxbIse2JUQkJU0n9blV9bY5g tySequence_pxbIse2JUQkJU0n9blV9bY5g;
typedef struct tyObject_TFileInfo_GE3hAakXKOEpch4ap3zXAw tyObject_TFileInfo_GE3hAakXKOEpch4ap3zXAw;
typedef struct tyTuple_aTNxDjHI7v9cq37xS7PT7jA tyTuple_aTNxDjHI7v9cq37xS7PT7jA;
typedef struct tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg;
typedef struct tyTuple_5L3fCt9bX0gyEcO30ervPLw tyTuple_5L3fCt9bX0gyEcO30ervPLw;
typedef struct tyTuple_UpiOGlu5Ux6DLM73wSrdpg tyTuple_UpiOGlu5Ux6DLM73wSrdpg;
typedef struct tyTuple_7q7q3E6Oj24ZNVJb9aonhAg tyTuple_7q7q3E6Oj24ZNVJb9aonhAg;
typedef struct tyTuple_xDU9bZmv1ZbZkJDaATBekIQ tyTuple_xDU9bZmv1ZbZkJDaATBekIQ;
typedef struct tyTuple_quA39a2QdEQU9cSEIUSibApQ tyTuple_quA39a2QdEQU9cSEIUSibApQ;
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_wROVfG5RQYpjEAhvO3LqdQ tyTuple_wROVfG5RQYpjEAhvO3LqdQ;
typedef struct tyObject_TNodePair_EZfI4tFqtDSTQys2UInNjg tyObject_TNodePair_EZfI4tFqtDSTQys2UInNjg;
typedef struct tyTuple_tA7Q8IrfOKH7Mn89cK9cBAIg tyTuple_tA7Q8IrfOKH7Mn89cK9cBAIg;
typedef struct tyObject_TInstantiation_5LqgVn6Tq9ainQRK7TQAQxA tyObject_TInstantiation_5LqgVn6Tq9ainQRK7TQAQxA;
typedef struct tyTuple_XOVT24GHXwqiEj5GCsEGCA tyTuple_XOVT24GHXwqiEj5GCsEGCA;
typedef struct tyTuple_xYhUhS7X82rKTqbT9bRfCnw tyTuple_xYhUhS7X82rKTqbT9bRfCnw;
typedef struct tyTuple_QeWl6B6ffS4pU6WWrtcrDw tyTuple_QeWl6B6ffS4pU6WWrtcrDw;
typedef struct tyTuple_zwpS6d6iewrdlBSTNFoyVA tyTuple_zwpS6d6iewrdlBSTNFoyVA;
struct tyObject_TStrTable_f07aOS3dr28kGa5wcE29aFA {
NI counter;
tySequence_DfgJFJEYoj4YBAHLZPl5lQ* data;
};
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_Table_e2Ciu0s1q49aVQ7ULXy7l9bQ {
tySequence_kxu4GK0onha2t9bo86mdVAg* data;
NI counter;
};
typedef struct {
N_NIMCALL_PTR(NIM_BOOL, ClP_0) (void* ClE_0);
void* ClE_0;
} tyProc_xdLb0cyzx3FuM6Q4NnRTpQ;
typedef tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* tyArray_OLX364rHC66WkzRbMp49aQg[64];
typedef tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* tyArray_6GDJmNRiFxkWAAdMgUie8g[70];
struct tyObject_IncrementalCtx_sdH7TnbKACuAzE7DBabnCA {
char dummy;
};
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;
};
struct tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ {
tySequence_DfgJFJEYoj4YBAHLZPl5lQ* modules;
tyObject_TStrTable_f07aOS3dr28kGa5wcE29aFA packageSyms;
tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg deps;
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_xdLb0cyzx3FuM6Q4NnRTpQ 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;
tyProc_c6vdo1yHyj19b9bS17tijS2w importModuleCallback;
tyProc_d5yEkT9aXkAtHvVerr7IeCQ includeFileCallback;
tyProc_sP1I7TbCn358eLy9bX4IphA recordStmt;
tyObject_Table_0Y2brGGKD9bV6GJLXT9aUDgA cacheSeqs;
tyObject_Table_NttoEzoiq5CiphZe81oadg cacheCounters;
tyObject_Table_nagDFX4QHx0s6Fvma9blmSg cacheTables;
};
typedef NU8 tyEnum_TNimKind_jIBKr1ejBgsfM33Kxw4j7A;
typedef NU8 tySet_tyEnum_TNimTypeFlag_v8QUszD1sWlSIWZz7mC4bQ;
typedef N_NIMCALL_PTR(void, tyProc_ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc_WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
tyEnum_TNimKind_jIBKr1ejBgsfM33Kxw4j7A kind;
tySet_tyEnum_TNimTypeFlag_v8QUszD1sWlSIWZz7mC4bQ flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc_ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc_WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
struct RootObj {
TNimType* m_type;
};
struct tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA {
tySequence_sII3pVVRkIdBZ2HDPdZddA* data;
NI counter;
};
struct tyObject_BModuleListcolonObjectType__CpP4eJLbv5ZwofQXpESuGA {
  RootObj Sup;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* mainModProcs;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* mainModInit;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* otherModsInit;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* mainDatInit;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* mapping;
tySequence_eW29aEKsgOrJUkJmVmw30lg* modules;
NI forwardedProcsCounter;
tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* generatedHeader;
NI breakPointId;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* breakpoints;
tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA typeInfoMarker;
tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config;
tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* graph;
NI strVersion;
NI seqVersion;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* nimtv;
tySequence_Ef05srmQTDulnBdXR4Ja6Q* nimtvDeps;
tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg nimtvDeclared;
};
struct tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g {
NI refcount;
TNimType* typ;
};
struct tyObject_GcStack_7fytPA5bBsob6See21YMRA {
void* bottom;
};
struct tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w {
NI len;
NI cap;
tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g** d;
};
typedef tyObject_SmallChunk_tXn60W2f8h3jgAYdEmy5NQ* tyArray_SiRwrEKZdLgxqz9a9aoVBglg[512];
typedef NU32 tyArray_BHbOSqU1t9b3Gt7K2c6fQig[24];
typedef tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg* tyArray_N1u1nqOgmuJN9cSZrnMHgOQ[32];
typedef tyArray_N1u1nqOgmuJN9cSZrnMHgOQ tyArray_B6durA4ZCi1xjJvRtyYxMg[24];
typedef tyObject_Trunk_W0r8S0Y3UGke6T9bIUWnnuw* tyArray_lh2A89ahMmYg9bCmpVaplLbA[256];
struct tyObject_IntSet_EZObFrE3NC9bIb3YMkY9crZA {
tyArray_lh2A89ahMmYg9bCmpVaplLbA data;
};
typedef tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* tyArray_0aOLqZchNi8nWtMTi8ND8w[2];
struct tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw {
tyArray_0aOLqZchNi8nWtMTi8ND8w link;
NI key;
NI upperBound;
NI level;
};
struct tyTuple_ujsjpB2O9cjj3uDHsXbnSzg {
tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg* Field0;
NI Field1;
};
typedef tyTuple_ujsjpB2O9cjj3uDHsXbnSzg tyArray_LzOv2eCDGiceMKQstCLmhw[30];
struct tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg {
NI len;
tyArray_LzOv2eCDGiceMKQstCLmhw chunks;
tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg* next;
};
struct tyObject_MemRegion_x81NhDv59b8ercDZ9bi85jyg {
NI minLargeObj;
NI maxLargeObj;
tyArray_SiRwrEKZdLgxqz9a9aoVBglg freeSmallChunks;
NU32 flBitmap;
tyArray_BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
tyArray_B6durA4ZCi1xjJvRtyYxMg matrix;
tyObject_LLChunk_XsENErzHIZV9bhvyJx56wGw* llmem;
NI currMem;
NI maxMem;
NI freeMem;
NI occ;
NI lastSize;
tyObject_IntSet_EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* root;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* deleted;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* last;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
NIM_BOOL locked;
NIM_BOOL blockChunkSizeIncrease;
NI nextChunkSize;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw bottomData;
tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
};
struct tyObject_GcStat_0RwLoVBHZPfUAcLczmfQAg {
NI stackScans;
NI cycleCollections;
NI maxThreshold;
NI maxStackSize;
NI maxStackCells;
NI cycleTableSize;
NI64 maxPause;
};
struct tyObject_CellSet_jG87P0AI9aZtss9ccTYBIISQ {
NI counter;
NI max;
tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg* head;
tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg** data;
};
struct tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ {
tyObject_GcStack_7fytPA5bBsob6See21YMRA stack;
NI cycleThreshold;
tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w zct;
tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w decStack;
tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w tempStack;
NI recGcLock;
tyObject_MemRegion_x81NhDv59b8ercDZ9bi85jyg region;
tyObject_GcStat_0RwLoVBHZPfUAcLczmfQAg stat;
tyObject_CellSet_jG87P0AI9aZtss9ccTYBIISQ marked;
tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w additionalRoots;
NI gcThreadId;
};
struct tyObject_TPassContext_ZmGcnZ1NlGbjfV1h4uuYdw {
  RootObj Sup;
};
typedef tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tyArray_pujFC2IN5RzE4MXkqaMD9aQ[18];
typedef NU8 tySet_tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q;
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tyObject_TNodeTable_wN7B39cKxLpMkvKNm9bduZ0A {
NI counter;
tySequence_vhmj4KkIKPinmRXny9c2Q6Q* data;
};
typedef tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tyArray_MxT2Arb3Nlp7V9bRITO3dvg[10];
struct tyObject_CountTable_tUMxxU9cRgLolsrW9b7IBGsQ {
tySequence_XUL1TrMU0tgXmaMFCIYgFQ* data;
NI counter;
};
struct tyObject_NdiFile_9cEuXfAnHp9bnWFK409cMtsEw {
NIM_BOOL enabled;
FILE* f;
NimStringDesc* buf;
};
struct tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A {
  tyObject_TPassContext_ZmGcnZ1NlGbjfV1h4uuYdw Sup;
tyArray_pujFC2IN5RzE4MXkqaMD9aQ s;
tySet_tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q flags;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* module;
NimStringDesc* filename;
NimStringDesc* cfilename;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tmpBase;
tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA typeCache;
tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA forwTypeCache;
tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg declaredThings;
tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg declaredProtos;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* headerFiles;
tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA typeInfoMarker;
tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* initProc;
tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* preInitProc;
tySequence_Ef05srmQTDulnBdXR4Ja6Q* typeStack;
tyObject_TNodeTable_wN7B39cKxLpMkvKNm9bduZ0A dataCache;
tySequence_DfgJFJEYoj4YBAHLZPl5lQ* forwardedProcs;
NI typeNodes;
NI nimTypes;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* typeNodesName;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* nimTypesName;
NI labels;
tyArray_MxT2Arb3Nlp7V9bRITO3dvg extensionLoaders;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* injectStmt;
tyObject_CountTable_tUMxxU9cRgLolsrW9b7IBGsQ sigConflicts;
tyObject_BModuleListcolonObjectType__CpP4eJLbv5ZwofQXpESuGA* g;
tyObject_NdiFile_9cEuXfAnHp9bnWFK409cMtsEw ndi;
};
typedef NU8 tyEnum_TNimNodeKind_unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind_unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA {
  RootObj Sup;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* left;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* right;
NI L;
NimStringDesc* data;
};
typedef NU8 tyArray_qtqsWM5aXmcpMIVmvq3kAA[16];
struct tyObject_TIdObj_iIXPrEsiKHiioLj0HSkQhA {
  RootObj Sup;
NI id;
};
typedef NU8 tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw;
typedef NU16 tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg;
struct tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q {
NU16 line;
NI16 col;
NI32 fileIndex;
};
typedef NU64 tySet_tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw;
typedef NU32 tySet_tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg;
typedef NU8 tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg;
typedef NU8 tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw;
typedef NU16 tySet_tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA;
struct tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA {
tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg k;
tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw storage;
tySet_tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA flags;
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* lode;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* dup;
};
struct tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w {
  tyObject_TIdObj_iIXPrEsiKHiioLj0HSkQhA Sup;
tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw kind;
union{
struct {tySequence_Ef05srmQTDulnBdXR4Ja6Q* typeInstCache;
} S1;
struct {tySequence_DXS6mEo7PVUFJkirsQ9bNQA* procInstCache;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* gcUnsafetyReason;
} S2;
struct {tySequence_DXS6mEo7PVUFJkirsQ9bNQA* usedGenerics;
tyObject_TStrTable_f07aOS3dr28kGa5wcE29aFA tab;
} S3;
struct {tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* guard;
NI bitsize;
} S4;
} _Ukind;
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;
};
struct tyObject_CountTable_chlLjy9bvnFM9b9bSZfiIkyGg {
tySequence_jwzrUFjG9akTIJTBBFvvqxw* data;
NI counter;
};
struct tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q {
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc;
NIM_BOOL beforeRetNeeded;
NIM_BOOL threadVarAccessed;
NIM_BOOL hasCurFramePointer;
tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q lastLineInfo;
tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q currLineInfo;
tySequence_P9c6Y5h4sjjYLVGti5AELHg* nestedTryStmts;
tySequence_WwUFq9cJ2xKRlsAWVEHyPRg* finallySafePoints;
NI labels;
tySequence_oUyaggHmIX9bpJcMeoG6lpA* blocks;
NI breakIdx;
tySet_tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg options;
NI maxFrameLen;
tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* module;
NI withinLoop;
NI splitDecls;
NI gcFrameId;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* gcFrameType;
tyObject_CountTable_chlLjy9bvnFM9b9bSZfiIkyGg sigConflicts;
};
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_PJMRIt5QxCm6bRaVyQ5CGA* msgContext;
tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q lastError;
tyObject_Table_Ab4q9c36aMR4mtkEOIBzdzA filenameToIndexTbl;
tySequence_Zi9cGbCWofbtABoHJ5RbLNQ* fileInfos;
NI32 systemFileIdx;
};
typedef NU8 tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw;
typedef NU8 tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw;
typedef NU8 tyEnum_SymbolFilesOption_gBES9bqm1ru9ape8SeMRAFgQ;
struct tyObject_HashSet_CD8Dpv0WGmASelVaNSo6zg {
tySequence_4eRCaZmrYLLw2k30GPTiMw* data;
NI counter;
};
typedef NU16 tySet_tyEnum_Feature_01UoAKYz1MxZiuG1X2VhNQ;
typedef NU8 tyEnum_IdeCmd_1Ced39bl5eePmZ1PKMPXigQ;
typedef NU8 tyEnum_TSystemCC_1eWBJUonHMOnlBwsOvpFmA;
typedef NU64 tySet_tyEnum_TMsgKind_ZQWti4neSCb9bXB2tK1JcKg;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_SuggestcolonObjectType__bkMuTTb2G70XfpzAiyNrnQ* result, void* ClE_0);
void* ClE_0;
} tyProc_QYEVXrYc9beQ379crS3rzqRA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (NimStringDesc* output, void* ClE_0);
void* ClE_0;
} tyProc_Q1W5D85O9cNu3iq9cZ9alS9aWA;
typedef NU8 tyEnum_Severity_x5BWBPGAbIH9clm5pmNp5DA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, NimStringDesc* msg, tyEnum_Severity_x5BWBPGAbIH9clm5pmNp5DA severity, void* ClE_0);
void* ClE_0;
} tyProc_22mgIiTBBoqNe1T0FSw9ahQ;
struct tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw {
tyObject_Target_9abOl5DLX8suLujOaHSvGzw target;
NI linesCompiled;
tySet_tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg options;
tySet_tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw globalOptions;
tyObject_MsgConfig_kV7r8HWT0SqOYW2k2ukC6A m;
NI evalTemplateCounter;
NI evalMacroCounter;
NI8 exitcode;
tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw cmd;
tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw selectedGC;
NI verbosity;
NI numberOfProcessors;
NimStringDesc* evalExpr;
NF lastCmdTime;
tyEnum_SymbolFilesOption_gBES9bqm1ru9ape8SeMRAFgQ symbolFiles;
tyObject_HashSet_CD8Dpv0WGmASelVaNSo6zg cppDefines;
NimStringDesc* headerFile;
tySet_tyEnum_Feature_01UoAKYz1MxZiuG1X2VhNQ features;
NimStringDesc* arguments;
NIM_BOOL helpWritten;
tyEnum_IdeCmd_1Ced39bl5eePmZ1PKMPXigQ ideCmd;
NIM_BOOL oldNewlines;
tyEnum_TSystemCC_1eWBJUonHMOnlBwsOvpFmA cCompiler;
tySet_tyEnum_TMsgKind_ZQWti4neSCb9bXB2tK1JcKg enableNotes;
tySet_tyEnum_TMsgKind_ZQWti4neSCb9bXB2tK1JcKg disableNotes;
tySet_tyEnum_TMsgKind_ZQWti4neSCb9bXB2tK1JcKg foreignPackageNotes;
tySet_tyEnum_TMsgKind_ZQWti4neSCb9bXB2tK1JcKg notes;
tySet_tyEnum_TMsgKind_ZQWti4neSCb9bXB2tK1JcKg mainPackageNotes;
NI mainPackageId;
NI errorCounter;
NI hintCounter;
NI warnCounter;
NI errorMax;
tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg* configVars;
tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg* symbols;
tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg* packageCache;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* searchPaths;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* lazyPaths;
NimStringDesc* outFile;
NimStringDesc* prefixDir;
NimStringDesc* libpath;
NimStringDesc* nimcacheDir;
tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg* dllOverrides;
tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg* moduleOverrides;
NimStringDesc* projectName;
NimStringDesc* projectPath;
NimStringDesc* projectFull;
NIM_BOOL projectIsStdin;
NI32 projectMainIdx;
NimStringDesc* command;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* commandArgs;
NIM_BOOL keepComments;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* implicitImports;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* implicitIncludes;
NimStringDesc* docSeeSrcUrl;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* cIncludes;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* cLibs;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* cLinkedLibs;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* externalToLink;
NimStringDesc* linkOptionsCmd;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* compileOptionsCmd;
NimStringDesc* linkOptions;
NimStringDesc* compileOptions;
NimStringDesc* ccompilerpath;
tySequence_pK3qSsBZwdXd6qyUMkd5Jw* toCompile;
tyProc_QYEVXrYc9beQ379crS3rzqRA suggestionResultHook;
NI suggestVersion;
NI suggestMaxResults;
tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q lastLineInfo;
tyProc_Q1W5D85O9cNu3iq9cZ9alS9aWA writelnHook;
tyProc_22mgIiTBBoqNe1T0FSw9ahQ structuredErrorHook;
NimStringDesc* cppCustomNamespace;
};
typedef NU8 tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw;
typedef NU8 tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q;
typedef NU8 tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg;
typedef NU8 tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw;
typedef NU32 tySet_tyEnum_TNodeFlag_jyh9acXHkhZANSSvPIY7ZLg;
typedef NU8 tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw;
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;
} S1;
struct {NF floatVal;
} S2;
struct {NimStringDesc* strVal;
} S3;
struct {tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym;
} S4;
struct {tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA* ident;
} S5;
struct {tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ* sons;
} S6;
} _Ukind;
NimStringDesc* comment;
};
typedef NU8 tyEnum_TMsgKind_ZQWti4neSCb9bXB2tK1JcKg;
struct tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA {
  tyObject_TIdObj_iIXPrEsiKHiioLj0HSkQhA Sup;
NimStringDesc* s;
tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA* next;
NI h;
};
typedef NU8 tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA;
typedef NU8 tyEnum_TLibKind_9b8v60kso59bBaw9cp8B9a9apKQ;
struct tyObject_TLib_NBMxlJ6g3utqUlplqTTHkA {
tyEnum_TLibKind_9b8v60kso59bBaw9cp8B9a9apKQ kind;
NIM_BOOL generated;
NIM_BOOL isOverriden;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name;
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* path;
};
typedef NU8 tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg;
typedef NU8 tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag;
typedef NU8 tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA;
typedef NU64 tySet_tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw;
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;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* destructor;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* deepCopy;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* assignment;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sink;
tySequence_MvZmat48bhe9b6x9aUD58D5Q* methods;
NI64 size;
NI16 align;
NI16 lockLevel;
tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA loc;
tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typeInst;
};
typedef tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tyArray_mrugoXXRZUEeG9bEXo9auBKw[2];
typedef NU8 tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w;
typedef NU8 tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw;
typedef NU64 tySet_tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag;
typedef tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tyArray_qTjAvTvKF9anytN1At69aJMQ[1];
typedef NU8 tyEnum_TPreferedDesc_tnd4qt9c4xddV8oKV5zyusw;
typedef NU8 tySet_tyEnum_ConsiderFlag_9a9az8WnKmq9bvt8EXoSUES7g;
typedef NimStringDesc* tyArray_Sjq0yxKksnvb1U6tEMqzYg[14];
typedef tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tyArray_JiWwrsTRC6xqNlGcBthSVA[1];
typedef tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tyArray_f7nG5LD47BH5K9c6mASit3g[4];
typedef NimStringDesc* tyArray_t1sx1FVcaX4m77XqENedIQ[10];
typedef tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tyArray_wqYjTJU9ab2ZgEFMaQc3vNA[3];
struct tyTuple_kN8up2W6YKc5YA9avn5mV5w {
NimStringDesc* Field0;
NI Field1;
NI Field2;
};
typedef NU8 tySet_tyEnum_TRenderFlag_wrPgUo1ExBlHvFnXN2nSHw;
typedef NU8 tySet_tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg;
struct tyTuple_u79c2fI4jf7n3cZOvTDviyA {
NimStringDesc* Field0;
NimStringDesc* Field1;
NimStringDesc* Field2;
NimStringDesc* Field3;
NimStringDesc* Field4;
NimStringDesc* Field5;
NimStringDesc* Field6;
NimStringDesc* Field7;
NimStringDesc* Field8;
NimStringDesc* Field9;
NimStringDesc* Field10;
NimStringDesc* Field11;
NimStringDesc* Field12;
NimStringDesc* Field13;
NimStringDesc* Field14;
NimStringDesc* Field15;
NimStringDesc* Field16;
NimStringDesc* Field17;
NimStringDesc* Field18;
tySet_tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg Field19;
};
typedef tyTuple_u79c2fI4jf7n3cZOvTDviyA tyArray_ixAZbXJC2p0msaMC9bpeftw[14];
typedef NU8 tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg;
typedef NU8 tyEnum_TNodeFlag_jyh9acXHkhZANSSvPIY7ZLg;
typedef NU8 tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg;
typedef tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tyArray_c9b9aKKmyKnqxZD8lAny45jg[3];
struct tyObject_TBlock_GFhahvekTq3dDOkWyhchMA {
NI id;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* label;
tyArray_c9b9aKKmyKnqxZD8lAny45jg sections;
NIM_BOOL isLoop;
NI16 nestedTryStmts;
NI16 nestedExceptStmts;
NI16 frameLen;
};
struct tyObject_TTraversalClosure_xQv4a9atAYFpL11GCS9cY9bCg {
tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p;
NimStringDesc* visitorFrmt;
};
typedef NU8 tyEnum_TTypeFieldResult_aBXTX9cIKT9b0yNlXSu9aPT9cw;
typedef tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tyArray_dNfZYyzVYdaWfURv4pxodA[6];
typedef tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tyArray_YcHYlgE5mhtkt9a3rnoucVg[7];
typedef tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tyArray_duFhZXIIlrbrM62cWjNekg[5];
typedef NU8 tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg;
typedef NU8 tySet_tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw;
typedef NU8 tyEnum_TMsgKind_29cbg2fC1z5iM1PAI28kR5w;
typedef NU8 tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw;
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;
};
typedef NimStringDesc* tyArray_Z9bQn9b5tGFWiuVSr82ZpACA[19];
typedef NimStringDesc* tyArray_TynMtFnQDyyrdq7PkUp8PQ[3];
typedef NimStringDesc* tyArray_mldSoslZLKnaU1VaydXOkQ[4];
typedef NimStringDesc* tyArray_QJgXKRh3GS6o8vhP9b9bRayg[43];
typedef NimStringDesc* tyArray_3bXWG4VoECF3Z9aw8eHMKSA[7];
typedef NimStringDesc* tyArray_H8bljeYwRVBMsVXxvskZog[2];
typedef NU8 tyEnum_TClosureTypeKind_cLHRMz1vnpSK0uePy2qbWw;
typedef NU8 tyEnum_TAnalysisResult_p9a9bcrXoRmLT4eUuwrDq9b4w;
typedef NU8 tySet_tyChar_nmiMWKVIe46vacnhAFrQvw[32];
typedef NimStringDesc* tyArray_UB9cgHz67WUhss0GO3n8oTw[6];
struct tyTuple_aTNxDjHI7v9cq37xS7PT7jA {
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* Field0;
NIM_BOOL Field1;
};
typedef NU16 tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw;
typedef NU8 tySet_tyEnum_CfileFlag_Vl9c9ayddDuXiWtnWTsEYGsA;
struct tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg {
NimStringDesc* cname;
NimStringDesc* obj;
tySet_tyEnum_CfileFlag_Vl9c9ayddDuXiWtnWTsEYGsA flags;
};
typedef NU8 tySet_tyEnum_TInfoOSProp_thetQwB9agpeQ13qFmAcWhg;
struct tyTuple_5L3fCt9bX0gyEcO30ervPLw {
NimStringDesc* Field0;
NimStringDesc* Field1;
NimStringDesc* Field2;
NimStringDesc* Field3;
NimStringDesc* Field4;
NimStringDesc* Field5;
NimStringDesc* Field6;
NimStringDesc* Field7;
NimStringDesc* Field8;
NimStringDesc* Field9;
NimStringDesc* Field10;
NimStringDesc* Field11;
tySet_tyEnum_TInfoOSProp_thetQwB9agpeQ13qFmAcWhg Field12;
};
typedef tyTuple_5L3fCt9bX0gyEcO30ervPLw tyArray_AvOd9bOqQkvZ6R9aJoQwnnEg[28];
typedef NU8 tyEnum_TEndian_bQ3yFYQJojZPNYsZnS7Zjg;
struct tyTuple_UpiOGlu5Ux6DLM73wSrdpg {
NimStringDesc* Field0;
NI Field1;
tyEnum_TEndian_bQ3yFYQJojZPNYsZnS7Zjg Field2;
NI Field3;
NI Field4;
};
typedef tyTuple_UpiOGlu5Ux6DLM73wSrdpg tyArray_2EeRc2Lr9cCM9aL82QsBOFXA[22];
typedef NimStringDesc* tyArray_sMpvt1sOxOJ3LFGulnbeMQ[4];
typedef NimStringDesc* tyArray_Re75IspeoxXy2oCZHwcRrA[2];
struct tyTuple_7q7q3E6Oj24ZNVJb9aonhAg {
NimStringDesc* Field0;
NimStringDesc* Field1;
NimStringDesc* Field2;
};
struct tyTuple_xDU9bZmv1ZbZkJDaATBekIQ {
NI Field0;
NI32 Field1;
NI32 Field2;
};
struct tyTuple_quA39a2QdEQU9cSEIUSibApQ {
tySequence_DfgJFJEYoj4YBAHLZPl5lQ* Field0;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* Field1;
};
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;
};
struct tyTuple_wROVfG5RQYpjEAhvO3LqdQ {
NI Field0;
tyArray_qtqsWM5aXmcpMIVmvq3kAA Field1;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* Field2;
};
struct tyObject_TNodePair_EZfI4tFqtDSTQys2UInNjg {
NI h;
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* key;
NI val;
};
struct tyTuple_tA7Q8IrfOKH7Mn89cK9cBAIg {
tyArray_qtqsWM5aXmcpMIVmvq3kAA Field0;
NI Field1;
};
struct tyTuple_XOVT24GHXwqiEj5GCsEGCA {
NimStringDesc* Field0;
NI Field1;
};
struct tyTuple_xYhUhS7X82rKTqbT9bRfCnw {
NI Field0;
NimStringDesc* Field1;
NI32 Field2;
};
struct tyTuple_QeWl6B6ffS4pU6WWrtcrDw {
NI Field0;
NimStringDesc* Field1;
};
struct tyTuple_zwpS6d6iewrdlBSTNFoyVA {
NI Field0;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* Field1;
};
struct tySequence_sM4lkSb7zS6F7OVMvW9cffQ {
  TGenericSeq Sup;
  NimStringDesc* data[SEQ_DECL_SIZE];
};
struct tySequence_Ef05srmQTDulnBdXR4Ja6Q {
  TGenericSeq Sup;
  tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* data[SEQ_DECL_SIZE];
};
struct tySequence_DfgJFJEYoj4YBAHLZPl5lQ {
  TGenericSeq Sup;
  tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* data[SEQ_DECL_SIZE];
};
struct tySequence_eW29aEKsgOrJUkJmVmw30lg {
  TGenericSeq Sup;
  tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* data[SEQ_DECL_SIZE];
};
struct tySequence_pxbIse2JUQkJU0n9blV9bY5g {
  TGenericSeq Sup;
  NI8 data[SEQ_DECL_SIZE];
};
struct tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ {
  TGenericSeq Sup;
  tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
};
struct tySequence_oUyaggHmIX9bpJcMeoG6lpA {
  TGenericSeq Sup;
  tyObject_TBlock_GFhahvekTq3dDOkWyhchMA data[SEQ_DECL_SIZE];
};
struct tySequence_P9c6Y5h4sjjYLVGti5AELHg {
  TGenericSeq Sup;
  tyTuple_aTNxDjHI7v9cq37xS7PT7jA data[SEQ_DECL_SIZE];
};
struct tySequence_WwUFq9cJ2xKRlsAWVEHyPRg {
  TGenericSeq Sup;
  tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* data[SEQ_DECL_SIZE];
};
struct tySequence_9brg1xNurxcus33lU4IE1Dw {
  TGenericSeq Sup;
  tyObject_Trunk_ul49aWfv9aes8cutmeltT3gQ* data[SEQ_DECL_SIZE];
};
struct tySequence_kxu4GK0onha2t9bo86mdVAg {
  TGenericSeq Sup;
  tyTuple_xDU9bZmv1ZbZkJDaATBekIQ data[SEQ_DECL_SIZE];
};
struct tySequence_48JTohSgTy339bRxHzUD8KA {
  TGenericSeq Sup;
  NI32 data[SEQ_DECL_SIZE];
};
struct tySequence_bWZXqEvLFwhLvAqSRoFNgQ {
  TGenericSeq Sup;
  tyTuple_quA39a2QdEQU9cSEIUSibApQ 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_sII3pVVRkIdBZ2HDPdZddA {
  TGenericSeq Sup;
  tyTuple_wROVfG5RQYpjEAhvO3LqdQ data[SEQ_DECL_SIZE];
};
struct tySequence_vhmj4KkIKPinmRXny9c2Q6Q {
  TGenericSeq Sup;
  tyObject_TNodePair_EZfI4tFqtDSTQys2UInNjg data[SEQ_DECL_SIZE];
};
struct tySequence_XUL1TrMU0tgXmaMFCIYgFQ {
  TGenericSeq Sup;
  tyTuple_tA7Q8IrfOKH7Mn89cK9cBAIg data[SEQ_DECL_SIZE];
};
struct tySequence_DXS6mEo7PVUFJkirsQ9bNQA {
  TGenericSeq Sup;
  tyObject_TInstantiation_5LqgVn6Tq9ainQRK7TQAQxA* data[SEQ_DECL_SIZE];
};
struct tySequence_jwzrUFjG9akTIJTBBFvvqxw {
  TGenericSeq Sup;
  tyTuple_XOVT24GHXwqiEj5GCsEGCA data[SEQ_DECL_SIZE];
};
struct tySequence_PJMRIt5QxCm6bRaVyQ5CGA {
  TGenericSeq Sup;
  tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q data[SEQ_DECL_SIZE];
};
struct tySequence_7lEisrXlQEzwtUKW5pzRCw {
  TGenericSeq Sup;
  tyTuple_xYhUhS7X82rKTqbT9bRfCnw data[SEQ_DECL_SIZE];
};
struct tySequence_Zi9cGbCWofbtABoHJ5RbLNQ {
  TGenericSeq Sup;
  tyObject_TFileInfo_GE3hAakXKOEpch4ap3zXAw data[SEQ_DECL_SIZE];
};
struct tySequence_4eRCaZmrYLLw2k30GPTiMw {
  TGenericSeq Sup;
  tyTuple_QeWl6B6ffS4pU6WWrtcrDw data[SEQ_DECL_SIZE];
};
struct tySequence_pK3qSsBZwdXd6qyUMkd5Jw {
  TGenericSeq Sup;
  tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg data[SEQ_DECL_SIZE];
};
struct tySequence_MvZmat48bhe9b6x9aUD58D5Q {
  TGenericSeq Sup;
  tyTuple_zwpS6d6iewrdlBSTNFoyVA data[SEQ_DECL_SIZE];
};
N_LIB_PRIVATE N_NIMCALL(tyObject_BModuleListcolonObjectType__CpP4eJLbv5ZwofQXpESuGA*, newModuleList_Y5BdU79bqQ1Bh4hbCosx09cA)(tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef_9cAA5YuQAAC3MVbnGeV86swsystem)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell_yB9aH5WIlwd0xkYrcdPeXrQsystem)(void* usr);
static N_INLINE(void, decRef_MV4BBk6J1qu70IbBxwEn4wsystem)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(void, rtlAddZCT_MV4BBk6J1qu70IbBxwEn4w_2system)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NOINLINE(void, addZCT_fCDI7oO1NNVXXURtxSzsRw)(tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A*, newModule_X79aV9chPYz7g9c9axf8JJQKVQ)(tyObject_BModuleListcolonObjectType__CpP4eJLbv5ZwofQXpESuGA* g, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* module, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A*, rawNewModule_X79aV9chPYz7g9c9axf8JJQKVQ_2)(tyObject_BModuleListcolonObjectType__CpP4eJLbv5ZwofQXpESuGA* g, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* module, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A*, rawNewModule_FF5K3i0mzwXR49c6UxAkeAg)(tyObject_BModuleListcolonObjectType__CpP4eJLbv5ZwofQXpESuGA* g, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* module, NimStringDesc* filename);
N_NIMCALL(void*, newObj)(TNimType* typ, NI size);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, rope_yShmEg9cffWxI7s5XzEKBow)(NimStringDesc* s);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem_E1xtACub5WcDa3vbrIXbwgsystem)(void* dest, void* source, NI size);
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar__cjda4doS9ccFOjsWsGu9aa2A)(tyArray_qtqsWM5aXmcpMIVmvq3kAA u);
N_LIB_PRIVATE N_NIMCALL(void, hashOwner_pju1tWFK9aIojovglLk8zMQ)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s, tyArray_qtqsWM5aXmcpMIVmvq3kAA Result);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem_cNwQQ4PlSJsZSwvoN5Uafwsystem)(void* a, int v, NI size);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src);
static N_INLINE(void, nimGCunrefNoCycle)(void* p);
N_LIB_PRIVATE N_NIMCALL(void, initIntSet_a9a80eJplB17xrdZJ41Baww)(tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* Result);
N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
N_LIB_PRIVATE N_NIMCALL(void, initTable_F9bgUDy3IzRyq5PzkIxwTBw)(NI initialSize, tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA* Result);
N_LIB_PRIVATE N_NIMCALL(void, initCountTable_l0wwSfs7C3wjWsJaXnDAUA)(NI initialSize, tyObject_CountTable_tUMxxU9cRgLolsrW9b7IBGsQ* Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q*, newProc_STnnVeEn5Wp52dw0JRN7ZQ)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc, tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* module);
N_LIB_PRIVATE N_NIMCALL(tySet_tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg, initProcOptions_oPbEKB4n1AIYrfJ09cINXQw)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m);
N_LIB_PRIVATE N_NIMCALL(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q*, newPreInitProc_fH9clnQAzlIEiCXKQCLsujg)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m);
N_LIB_PRIVATE N_NIMCALL(void, initNodeTable_68xlHiM6I8zJts5pWolVFA)(tyObject_TNodeTable_wN7B39cKxLpMkvKNm9bduZ0A* x);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getTempName_9cFzUT5Cyfi5u0F447WwLvA)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, amp__mFDAEkd1kysB0V9aBd20A9aA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* a, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, rope_KOisMGxcPhz6CcSmxgwEQQ)(NI64 i);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, noschangeFileExt)(NimStringDesc* filename, NimStringDesc* ext);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, completeCFilePath_nUeinU41FdF8oB8ZXMTOhQ)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* cfile, NIM_BOOL createSubDir);
N_LIB_PRIVATE N_NIMCALL(void, open_GNEwoV8jLCCl7XepddT18w)(tyObject_NdiFile_9cEuXfAnHp9bnWFK409cMtsEw* f, NimStringDesc* filename, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toFullPath_tdNdBP9cVqODPZCeXYb1GvA)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, NI32 fileIdx);
N_NIMCALL(TGenericSeq*, setLengthSeqV2)(TGenericSeq* s, TNimType* typ, NI newLen);
static N_INLINE(NIM_BOOL, skipCodegen_A72PL1PX0Fg9cwfX3uIOVUAcgen)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genStmts_QrTB5DOwbDX9bKAW7PNbuJA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t);
N_LIB_PRIVATE N_NIMCALL(void, pushInfoContext_jVPMMc4H29cyI52qg0Kp9aUg)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, expr_8mAL9ckajemzgfLPfeZVNoQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, fillProcLoc_60cAEEW2jYgQLzNzmWrfPg)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, fillLoc_US6BUWbxbS9bTHtpMCqKFkw)(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a, tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg k, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* lode, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r, tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw s);
N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, mangleName_lo8D59ciMfLVeiUtGYx89bOg)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, mangle_0ctHksTXSPyaxjBOgK4TiA)(NimStringDesc* name);
N_LIB_PRIVATE N_NIMCALL(void, add_iMTw0CDaruwETLGb9bhpBLg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** a, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, idOrSig_m9ce9cPk9cZQsWLc0DxveJj0g)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s, NimStringDesc* currentModule, tyObject_CountTable_tUMxxU9cRgLolsrW9b7IBGsQ* sigCollisions);
N_LIB_PRIVATE N_NIMCALL(void, doWrite_aAmUxeQnfkTtpV5YOU4LEQ)(tyObject_NdiFile_9cEuXfAnHp9bnWFK409cMtsEw* f, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(void, genProcPrototype_5Uk70SBbgLBcInZnRFJtnA)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym);
N_LIB_PRIVATE N_NIMCALL(void, useHeader_Ckp4X4sj45vdj9bafLr5LQw)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getStr_Zk78ps1ie3XE3N7AlzjwWw)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a);
N_LIB_PRIVATE N_NIMCALL(void, includeHeader_uTF5360OavCefWH39cfa58w)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* this_0, NimStringDesc* header);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*, getModule_43y2sdiIt63745LnAZPmZQ)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsOrIncl_B0EhVMrh5BBBZOOtYjAvVg)(tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* s, NI key);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, ropecg_pDjCXevkau9aaTuKWN9cvHGw)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, NimStringDesc* frmt, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, add_yG4AKzsBRS1W4MANDlXQeg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** a, NimStringDesc* b);
N_LIB_PRIVATE N_NIMCALL(void, internalError_5hPl6LjCYJxMYxh9af9b9bXzw)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* errMsg);
N_NIMCALL(NimStringDesc*, nimIntToStr)(NI x);
static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr_TWXUwbnq0SWWvDLfr8LXYw)(NimStringDesc* s, NI first, NI last);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, cgsym_0d9bDo5R2p09cv1ljqpC4l8Q)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, NimStringDesc* name);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*, getCompilerProc_Z9bI8j6Vv57IyOO09a8fpp3g)(tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g, NimStringDesc* name);
N_LIB_PRIVATE N_NIMCALL(void, genProc_LVUZwjNmLEZwI6xGJ9aeU7Q)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isActivated_7VrUPkxnaFwgUwnPlsQOpQ)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc);
N_LIB_PRIVATE N_NIMCALL(void, addForwardedProc_vPJ79bcd36cmxny2xgz8A0Q)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc);
N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(void, genProcNoForward_LVUZwjNmLEZwI6xGJ9aeU7Q_2)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc);
N_LIB_PRIVATE N_NIMCALL(void, genProcAux_LVUZwjNmLEZwI6xGJ9aeU7Q_3)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genProcHeader_uPFGxWOkwQtDerpzAqNn9aw)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc);
N_LIB_PRIVATE N_NIMCALL(void, genCLineDir_8gOq38UiI9arVxZ9at35m22Q)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** r, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(void, genCLineDir_W2V1U5l2z2M9c2i5Phjz9cow)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** r, NimStringDesc* filename, NI line, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(void, addf_ocEHZ9cujtqicXvDuJUm5pg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** c, NimStringDesc* frmt, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, makeSingleLineCString_59a1Z83zpqnyWoTdIAQEfHQ)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(NI, safeLineNm_AUJlxUa66q5UCd0nnZJX7Q)(tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
static N_INLINE(NI, toLinenumber_xCTdxEFc5VM0Lp6fDoJKSwastalgo)(tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, genProcParams_SfuybNN12GV8YqiojEK9asA)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** rettype, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** params, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* check, NIM_BOOL declareEnvironment, NIM_BOOL weakDep);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isInvalidReturnType_ugBeCbo3I6LqXHcpCBFN9ag)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* rettype);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w, mapType_K9aceyVl15zb9aYN9b6YJ8TnA)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w, mapSetType_K9aceyVl15zb9aYN9b6YJ8TnA_2)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(NI64, getSize_vCG1GF2Iu043oALVyuJfOw)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl_aDmpBTs9cPuXp0Mp9cfiNeyA)(NimStringDesc* msg);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, lastSon_ab52xel9cFebv9am0xV04xXA)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* n);
N_LIB_PRIVATE N_NIMCALL(NI64, firstOrd_4cSIntenL9aBXY6LAFsvXdQ)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tySet_tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag kinds);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isImportedCppType_UCeqXNU9bJdSIbOIWbb0zng)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, needsComplexAssignment_y9bTRtTAknVsv9apXKbpJYJA)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsGarbageCollectedRef_IVXYI9cxSeivThgKCncHRnA)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
static N_INLINE(NIM_BOOL, isObjLackingTypeField_JIeDKK3bgEYJKEAkiaujRgcgen)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isPureObject_bwBXbs1CQh0Ny8q6JR9aFMA)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__9bvKdnhoYI2ta9agQNm3orMA)(NimStringDesc* frmt, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getTypeDescAux_b9ct3XPU1ucWY6A76XYVIRQ)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* origTyp, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* check);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, typeToString_QlvraUan7WbHowhAbvDvdA)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyEnum_TPreferedDesc_tnd4qt9c4xddV8oKV5zyusw prefer);
N_LIB_PRIVATE N_NIMCALL(void, hashType_qLlmI8qzKQaMa2k5LnfLZQ)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tySet_tyEnum_ConsiderFlag_9a9az8WnKmq9bvt8EXoSUES7g flags, tyArray_qtqsWM5aXmcpMIVmvq3kAA Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getTypePre_YqOY29b9aUiJ9bpv9bRbgamVlA)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyArray_qtqsWM5aXmcpMIVmvq3kAA sig);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getSimpleTypeDesc_TttItRxQT67RCnbQdIsyRQ)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, typeNameOrLiteral_Bur7Hkt9cd7Q3JXz87Z2t6Q)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, NimStringDesc* literal);
N_LIB_PRIVATE N_NIMCALL(NI, detectStrVersion_ZhBx9ci102xAHSOpksGzT6g)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m);
N_LIB_PRIVATE N_NIMCALL(NI64, getInt_asVzx7Ey1eetKeO2f0L06A)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isImportedType_UCeqXNU9bJdSIbOIWbb0zng_2)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, cacheGetType_68rAJ2TnRtuRwChs7t9bVaw)(tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA tab, tyArray_qtqsWM5aXmcpMIVmvq3kAA sig);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getOrDefault_c1gzIMAwos9ckDh22FJ9cJ4w)(tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA t, tyArray_qtqsWM5aXmcpMIVmvq3kAA key);
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq__TRBnfbwbN7k5UwqVgDGskg)(tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA* t, tyArray_qtqsWM5aXmcpMIVmvq3kAA key, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* val);
N_LIB_PRIVATE N_NIMCALL(void, addAbiCheck_7WadOv2RgjtFVzQMS1aluQ)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDefined_TeEHxEj0zXnJc9aUarshH9aA)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* symbol);
N_LIB_PRIVATE N_NIMCALL(void, excl_iUpE9bYmIR0fROyJskQwN8g_2)(tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* s, NI key);
N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
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_TLineInfo_WGx4rAexNXnczy1Avn646Q, unknownLineInfo_F9bjxJM4tdxwMljo3mi9bY8w)(void);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, elemType_BFFuB9cFDZ89c6QWZqEFAtdA_2)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, amp__Z7W1o5nPSc3ExfO5f7j1Gg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* a, NimStringDesc* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getTypeForward_YqOY29b9aUiJ9bpv9bRbgamVlA_2)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyArray_qtqsWM5aXmcpMIVmvq3kAA sig);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getTypeName_YqOY29b9aUiJ9bpv9bRbgamVlA_3)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyArray_qtqsWM5aXmcpMIVmvq3kAA sig);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, typeName_qvCJ9bux56nS82Shxh5hLNg)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_NIMCALL(NimStringDesc*, reprEnum)(NI e, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getForwardStructFormat_t01JLpAK9aOL9cL9b3RHWchaQ)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, structOrUnion_TLFDupRCidtMx8175pusWQ)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(void, pushType_HawbfDLBazEmfo9aMSqKh9bw)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**, X5BX5D__OWIu6yRfMJASkF8WB77f2w)(tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA* t, tyArray_qtqsWM5aXmcpMIVmvq3kAA key);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, seqStar_t01JLpAK9aOL9cL9b3RHWchaQ_2)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getTypeDescWeak_JZoY3V0DBP4Cmkp6h3BcEw)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* check);
N_LIB_PRIVATE N_NIMCALL(void, internalError_yTu5SGHF0j0P9cQrqN7YylA)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, NimStringDesc* errMsg);
N_LIB_PRIVATE N_NIMCALL(void, appcg_GrB2Hbyo8XeK6TPKMD0Y5A)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** c, NimStringDesc* frmt, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NI64, lengthOrd_4cSIntenL9aBXY6LAFsvXdQ_2)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, scanCppGenericSlot_duLZKxkzK247jEYF4jUfog)(NimStringDesc* pat, NI* cursor, NI* outIdx, NI* outStars);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, resolveStarsInCppType_xwSObpAAR9cXwGaH7j8BclQ)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, NI idx, NI stars);
N_LIB_PRIVATE N_NIMCALL(NI, len_SWFNCiWYB89bTUPh5KptkvA_2)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* n);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar__E5ya0OOlyISUCw4ENFn9bLA)(tyTuple_kN8up2W6YKc5YA9avn5mV5w x);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, renderTree_ppjdh9aQ5L0SGPF8yz1gZ9cA)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TRenderFlag_wrPgUo1ExBlHvFnXN2nSHw renderFlags);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr_9bUFQ4OV1temcDF0GZp317g)(NimStringDesc* s, NI first);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getRecordDesc_vzSD6iEXWdLqlpGRes6nRg)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* check);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, amp__4cYKitaHx6RQ9azRtQsZp6w)(NimStringDesc* a, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* b);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isException_NWFc8X9b4Zx0NtXP3Cp2fnw_3)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getRecordFields_C4FuXdQUwJbwleRj18h2BQ)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* check);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genRecordFieldsAux_V4uVEqUycUawzcJp9ag6j9cQ)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* accessExpr, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* rectype, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* check);
N_LIB_PRIVATE N_NIMCALL(NI, sonsLen_qPWPHw7WgJeEVYUdcaRIig)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, lastSon_esDJA7239bJDiq4UrX9aHCjg)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, mangleRecFieldName_0XUZA8cv9auQGQetv8JLneQ)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* rectype);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, mangleField_sfvzQqRpUWqV9cEHvFo2dog)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA* name);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isKeyword_JVm6AvAuiqeC9aA9a1rRrvdA)(tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA* w);
N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
static N_INLINE(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, t_wtveaWyn2FSNgJ2h4kSWzwcgen)(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getTupleDesc_vzSD6iEXWdLqlpGRes6nRg_2)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* check);
N_LIB_PRIVATE N_NIMCALL(NI, sonsLen_SWFNCiWYB89bTUPh5KptkvA)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* n);
static N_INLINE(NIM_BOOL, isCompileTimeOnly_xUyAbEic5Yj9bmdDArJbHkQcgen)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, mangleParamName_lo8D59ciMfLVeiUtGYx89bOg_2)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains_qPuW69bRJcGQk5Myyhjt9czg)(tyObject_HashSet_CD8Dpv0WGmASelVaNSo6zg s, NimStringDesc* key);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw, paramStorageLoc_EctI19c2ZiDgYiYfg7OVKDA)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* param);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, ccgIntroducedPtr_A23DSI2AFKphIXH0nXWePw)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w, mapReturnType_K9aceyVl15zb9aYN9b6YJ8TnA_3)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
static N_INLINE(NI, len_CdME9baJhvveuPEDZE9bXoxAsigmatch)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, easyResultAsgn_1TL9cg0ds6vTtfhbmuTNGBA)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsResult_6sY5yTLspKSvipAn7QLtbg)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NI, safeLen_CdME9baJhvveuPEDZE9bXoxArenderer)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, localVarDecl_NYI5fC69aIqZGRakncXv9cNQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, mangleLocalName_VpV5Cmis02zaNlTmLYJNfQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s);
static N_INLINE(void, shallow_67KGEOtDSAz3i9cPDqgyaCwmsgs)(NimStringDesc** s);
N_LIB_PRIVATE N_NIMCALL(NI, getOrDefault_8vBSbDe2Qj1xnvhBImE2Cw)(tyObject_CountTable_chlLjy9bvnFM9b9bSZfiIkyGg t, NimStringDesc* key);
N_LIB_PRIVATE N_NIMCALL(void, inc_YksznXEZ19bxdCUr6TgeIRg)(tyObject_CountTable_chlLjy9bvnFM9b9bSZfiIkyGg* t, NimStringDesc* key, NI val);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(void, initLocExprSingleUse_9biTBaXPz9cezuLjjWw9cSEGw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* result);
N_LIB_PRIVATE N_NIMCALL(void, initLoc_z9bd78in9czXhMZLT0QNB5Tw)(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* result, tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg k, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* lode, tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw s);
N_LIB_PRIVATE N_NIMCALL(void, linefmt_zZ8N2PtAlqFZKCp7nvAnhw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg s, NimStringDesc* frmt, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
static N_INLINE(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**, s_oPjlsf0lwosYuh6KXhkqLQcgen)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg s);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, indentLine_5PupwEBrKjp65kTtpnAp9bQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r);
N_LIB_PRIVATE N_NIMCALL(void, prepend_iMTw0CDaruwETLGb9bhpBLg_2)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** a, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, rdLoc_xidyzuHqIciXbQyEOKahDg)(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a);
N_LIB_PRIVATE N_NIMCALL(void, assignLocalVar_UtJx89cn0a8CNSWWmaj6raA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, line_7EHg9a9bBQrxiXUHES9aziKUQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg s, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r);
N_LIB_PRIVATE N_NIMCALL(void, localDebugInfo_IpGUPLhMYizrVHs0OdHySA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(void, lineF_zMT5gX18xu8QE6ofSbgTAA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg s, NimStringDesc* frmt, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, makeCString_vQJydtKy4Nf6bXPYtbmjtg)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuNormalize)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genTypeInfo_7P9bdUkiYYdBWl5P39cGpERw)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, genTypeInfoAuxBase_DJDWmH1yEAJQyS9cw8frFvg)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* origType, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* base, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, canFormAcycle_IVXYI9cxSeivThgKCncHRnA_2)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NIM_BOOL, equalMem_fmeFeLBvgmAHG9bC8ETS9bYQropes)(void* a, void* b, NI size);
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar__tduYJIZOMabvcOCb9bVwWCA_2)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, fakeClosureType_48KU8UNhiwiVAkHuaV7AfQ)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* owner);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, newType_dQhKkL6uAkw83dy6l4d7iQ)(tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag kind, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* owner);
N_LIB_PRIVATE N_NIMCALL(void, rawAddSon_uZzh0IWnWErsZbQ8YFaRRA)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* father, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* son);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, createObj_hfiqaGhMR5vPI6kJc04yUw)(tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* owner, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, NIM_BOOL final);
N_LIB_PRIVATE N_NIMCALL(void, genTupleInfo_ots5HriJRsUpoyVgDxkeuw)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* origType, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getNimNode_9cFzUT5Cyfi5u0F447WwLvA_2)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m);
N_LIB_PRIVATE N_NIMCALL(void, genTypeInfoAux_ots5HriJRsUpoyVgDxkeuw_2)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* origType, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genTraverseProc_win34wCBUJZ1I3Mfp4Fi1w)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* origTyp, tyArray_qtqsWM5aXmcpMIVmvq3kAA sig);
N_LIB_PRIVATE N_NIMCALL(void, genTraverseProcSeq_LXrm7ZbTiXTVtbB5E60yIA)(tyObject_TTraversalClosure_xQv4a9atAYFpL11GCS9cY9bCg c, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* accessor, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(void, getTemp_VjOFVqypINqQv5C3ECnxbw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* result, NIM_BOOL needsInit);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, lodeTyp_8thmRpt8YNsc9cFM33hAlHw)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, newNode_IgnRxkID5wXTWvTZf9ct0rA)(tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw kind);
N_LIB_PRIVATE N_NIMCALL(void, constructLoc_UnMShnfXExBqkSCjaZsFdw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* loc, NIM_BOOL isTemp);
static N_INLINE(NIM_BOOL, isComplexValueType_AcJpLeR4vGQ9bUfQVqMi1Egcgen)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, addrLoc_9b8NbhHc4w1oBKAy127l3xQ)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a);
N_LIB_PRIVATE N_NIMCALL(void, genObjectInit_pua7psQb9a19bblGZEt9b0ZXA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg section, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a, NIM_BOOL takeAddr);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeFieldResult_aBXTX9cIKT9b0yNlXSu9aPT9cw, analyseObjectWithTypeField_Pldxz9alDV6810oJzh2Apog)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, lenExpr_Xfvxpx3W1zkiCqENsur9ckg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, lenField_3AsTOpq9crZUYBL9aD1lXBng)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p);
N_LIB_PRIVATE N_NIMCALL(NI, len_9bnJ6v2DTn9bxH3beTpErsUg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* a);
N_LIB_PRIVATE N_NIMCALL(void, genTraverseProc_LXrm7ZbTiXTVtbB5E60yIA_2)(tyObject_TTraversalClosure_xQv4a9atAYFpL11GCS9cY9bCg c, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* accessor, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
static N_INLINE(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, parentObj_85dt9cpzNYTx5z9bG3QXcHqwcgen)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* accessor, tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m);
N_LIB_PRIVATE N_NIMCALL(void, genTraverseProc_ZF8ePl9bsRxWXLu7Z2MFifQ)(tyObject_TTraversalClosure_xQv4a9atAYFpL11GCS9cY9bCg c, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* accessor, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(void, fillObjectFields_9ay9bmecW6As1fjmHzaEve9cQ)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(void, genCaseRange_KUz7NJSCXeUWRl4foF5zfg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* branch);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genLiteral_NYI5fC69aIqZGRakncXv9cNQ_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genLiteral_qifZy01sZ5OX01eT5FP76w)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ty);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, intLiteral_kQA0lBUvzOSZAw7DHC4Fjg)(NI64 i);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, int64Literal_kQA0lBUvzOSZAw7DHC4Fjg_2)(NI64 i);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, uint64Literal_ldwzpLT4KWF9c4XGru9cpC1A)(NU64 i);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar__rzAI8EMyNBAQwGODeohhAA)(NU64 x);
N_LIB_PRIVATE N_NIMCALL(NI, nodeTableTestOrSet_tWmKJP7glBWLCISQFGGk2Q)(tyObject_TNodeTable_wN7B39cKxLpMkvKNm9bduZ0A* t, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* key, NI val);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genNilStringLiteral_BAnpo9cCleKeSKR8RaKdvjg)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genStringLiteral_BL0R9bSjJmdssSOZrTtp5UQ)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genStringLiteralV1_BL0R9bSjJmdssSOZrTtp5UQ_2)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genStringLiteralDataOnlyV1_czBo5sg9cHyaaP5feko54tA)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genStringLiteralV2_BL0R9bSjJmdssSOZrTtp5UQ_3)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genStringLiteralDataOnlyV2_czBo5sg9cHyaaP5feko54tA_2)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(void, localError_NF6kBGchnhQYPbCedyefVA)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, NimStringDesc* arg);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toStrMaxPrecision_bUxkE4LG1hqvhXMwxWRgAw)(NF f, NimStringDesc* literalPostfix);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, copyNode_lz8T1F9c0YwEOpUnrAUYgjg)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* src);
N_LIB_PRIVATE N_NIMCALL(void, lineCg_zZ8N2PtAlqFZKCp7nvAnhw_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg s, NimStringDesc* frmt, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, dataField_3AsTOpq9crZUYBL9aD1lXBng_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p);
N_LIB_PRIVATE N_NIMCALL(void, genArrayInfo_T784xcK3PWZsPbKIcqNECw)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, genSetInfo_T784xcK3PWZsPbKIcqNECw_2)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, genEnumInfo_T784xcK3PWZsPbKIcqNECw_3)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, genObjectInfo_ots5HriJRsUpoyVgDxkeuw_3)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* origType, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, genObjectFields_ftB9cENoE7Rpuj8JMdZ0X6g)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* origType, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* expr, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, discriminatorTableName_wOfMK5JrT0vmKss7nf2bjw)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* objtype, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* d);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*, lookupInRecord_UKAypME5AMFgsArDll8WMg)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA* field);
N_LIB_PRIVATE N_NIMCALL(NI64, getOrdValue_k4X4XP9cdVXYioHD9akA9bVbQ)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genDeepCopyProc_y7cM22Ax9cVodLpWGwB09cRA)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result);
N_LIB_PRIVATE N_NIMCALL(void, initLocalVar_EpeofNfMJPurx0duaALCaA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* v, NIM_BOOL immediateAsgn);
N_LIB_PRIVATE N_NIMCALL(void, fillResult_p9cP79bBkRq6WIT5fOHMaTzQ)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* param);
N_LIB_PRIVATE N_NIMCALL(void, assignParam_IpGUPLhMYizrVHs0OdHySA_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(void, scopeMangledParam_XXk2P9ctI8tNzE1vnYRV8RA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* param);
N_LIB_PRIVATE N_NIMCALL(tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg, allPathsAsgnResult_1EA5Ct9aHKpWldrirVzWMeA)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, resetLoc_B9bNAYVEwjQtkUkvoOVhV2Q)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* loc);
N_LIB_PRIVATE N_NIMCALL(void, genRefAssign_BtucsTdHw7orsXIL75hNVg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* dest, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* src, tySet_tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw flags);
static N_INLINE(NIM_BOOL, usesWriteBarrier_6aU0ZBrns2mWNHTDUbDERQcgen)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(void, closureSetup_PDMGXd7Yn9cB79asQW3arukQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, initGCFrame_3AsTOpq9crZUYBL9aD1lXBng_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, initFrame_hSB0mXJGcFil9bvrhp0Qm5g)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* procname, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* filename);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, quotedFilename_9cv9aIRvZfYbftCtn2P2ABrQ)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q i);
N_LIB_PRIVATE N_NIMCALL(void, appcg_zZ8N2PtAlqFZKCp7nvAnhw_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg s, NimStringDesc* frmt, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, deinitGCFrame_3AsTOpq9crZUYBL9aD1lXBng_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, deinitFrame_3AsTOpq9crZUYBL9aD1lXBng_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A*, findPendingModule_QkizK2DHRxMh5swL3xy9bjQ)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(void, symInDynamicLib_5Uk70SBbgLBcInZnRFJtnA_2)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isGetProcAddr_DWGi9cQP3F3V81PvoGyWZ9bw)(tyObject_TLib_NBMxlJ6g3utqUlplqTTHkA* lib);
N_LIB_PRIVATE N_NIMCALL(void, loadDynamicLib_rOv9bE9csBi1MWNoAOUzHcBg)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TLib_NBMxlJ6g3utqUlplqTTHkA* lib);
N_LIB_PRIVATE N_NIMCALL(void, libCandidates_z61W6kN39aBKDgNtbcWn9cSg)(NimStringDesc* s, tySequence_sM4lkSb7zS6F7OVMvW9cffQ** dest);
N_LIB_PRIVATE N_NIMCALL(void, rawMessage_h30HgTFwbGq0PsyHmRqZ8g)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyEnum_TMsgKind_29cbg2fC1z5iM1PAI28kR5w msg, NimStringDesc* arg);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, newStrNode_8GaTnuPqpzGLNcerzDOURQ)(tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw kind, NimStringDesc* strVal);
N_LIB_PRIVATE N_NIMCALL(void, initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* result);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, mangleDynLibProc_MkmvPNwLUVhzodPsMjdbJw)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatSingleElem)(NimStringDesc* formatstr, NimStringDesc* a);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar__4KNdcWAONkpTKQgUR8XiZQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r);
N_LIB_PRIVATE N_NIMCALL(void, symInDynamicLibPartial_5Uk70SBbgLBcInZnRFJtnA_3)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym);
N_LIB_PRIVATE N_NIMCALL(void, genVarPrototype_60cAEEW2jYgQLzNzmWrfPg_2)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, declareThreadVar_aYevuGpX9cFv5Jxa39aUJomg)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s, NIM_BOOL isExtern);
static N_INLINE(NIM_BOOL, emulatedThreadVars_viA2VrQ9cI0jU5DX49b1MeYgcgen)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, newSymNode_UWZXukHA5As9aCftRHbafBg)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym);
static N_INLINE(NIM_BOOL, requiresExternC_eK3dB1m49artdhTABMjEBvwcgen)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym);
N_LIB_PRIVATE N_NIMCALL(void, putLocIntoDest_SkhzpH2DDHJ7pbmCpsHIPg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* s);
N_LIB_PRIVATE N_NIMCALL(void, genAssignment_BtucsTdHw7orsXIL75hNVg_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* dest, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* src, tySet_tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw flags);
N_LIB_PRIVATE N_NIMCALL(void, genGenericAsgn_BtucsTdHw7orsXIL75hNVg_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* dest, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* src, tySet_tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw flags);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, canMove_LdEpJ9bTTHKfDEUriK7drQA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDeepConstExpr_FTbvAnf1y9b9c3Krp9bsHDTiw_2)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, optAsgnLoc_BudZ9caWLs3siCMYU9bVcDKw)(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* field, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* Result);
N_NIMCALL(void, genericReset)(void* dest, TNimType* mt);
N_LIB_PRIVATE N_NIMCALL(void, genOptAsgnTuple_BtucsTdHw7orsXIL75hNVg_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* dest, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* src, tySet_tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw flags);
N_LIB_PRIVATE N_NIMCALL(NI, asgnComplexity_NnHoLMfVBQytirwVsNNNOQ)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genOptAsgnObject_9aKtDk9aj0NeiT1dC7eBiRKw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* dest, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* src, tySet_tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw flags, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_NIMCALL(void, genericAssign)(void* dest, void* src, TNimType* mt);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isSimpleConst_gM9acTTK4cC5I9bRy8Pc6OTQ)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(void, putIntoDest_6NyA5DzsDGY17BhjidN65Q)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r, tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw s);
N_LIB_PRIVATE N_NIMCALL(void, genComplexConst_ARtcpl8G0t9cQCPr2Np8Srw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, requestConstImpl_POVv0myAK3ae9cYA55o72Fw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genConstExpr_NYI5fC69aIqZGRakncXv9cNQ_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, toBitSet_NZsBRVngLBw9c79cEt9a4qOHg)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* s, tySequence_pxbIse2JUQkJU0n9blV9bY5g** b);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genRawSetData_lBnyc1f1M4k1nDKRQRL0HA)(tySequence_pxbIse2JUQkJU0n9blV9bY5g* cs, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuToHex)(NI64 x, NI len);
N_LIB_PRIVATE N_NIMCALL(NI64, bitSetToWord_XVJMM63zz1yugv5v2VDtiA)(tySequence_pxbIse2JUQkJU0n9blV9bY5g* s, NI size);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genConstSeq_knXDbAconJZRQ7C8XTIrzw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(void, appcg_OBq0R3oyTk3megut9c9bSbcA)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg s, NimStringDesc* frmt, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genConstSimpleList_NYI5fC69aIqZGRakncXv9cNQ_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genNamedConstExpr_NYI5fC69aIqZGRakncXv9cNQ_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genConstObjConstr_NYI5fC69aIqZGRakncXv9cNQ_6)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, getNullValueAuxT_FPktsDLidTVMBFvUyMAhXA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* orig, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* obj, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* cons, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** result, NI* count);
N_LIB_PRIVATE N_NIMCALL(void, getNullValueAux_9aYyM7xTezJepPjt10b9aKiQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* obj, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* cons, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** result, NI* count);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getDefaultValue_6MJ4xodlafi9aSG537L79bpw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, globalError_NF6kBGchnhQYPbCedyefVA_2)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, NimStringDesc* arg);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar__qX5C9b0n9bOP7jk69amC8dA7A)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genStringLiteralV2Const_BL0R9bSjJmdssSOZrTtp5UQ_4)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, accessThreadLocalVar_IpGUPLhMYizrVHs0OdHySA_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s);
static N_INLINE(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**, procSec_oPjlsf0lwosYuh6KXhkqLQ_2cgen)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg s);
static N_INLINE(NIM_BOOL, isEmptyType_9aw9cztYHpNdZjCV1t0mJqwgvmgen)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(void, putDataIntoDest_fYECstGN5jPehhn5p8Iclg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r);
N_LIB_PRIVATE N_NIMCALL(void, genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, sourceLine_CKOSYbvxPI7FUKNuA9b0pQA)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q i);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, freshLineInfo_i9c2rKOAXwchJ4zMKMIqdiQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, genMagicExpr_TU9cJnldbmGa9bZDxaR6I4tg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg op);
N_LIB_PRIVATE N_NIMCALL(void, genAndOr_yX5yxw6c9agMF4ZvIHKAZvg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg m);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getLabel_3AsTOpq9crZUYBL9aD1lXBng_6)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p);
N_LIB_PRIVATE N_NIMCALL(void, fixLabel_z1hx9axqa9cHsmY7bMeZVSrQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* labl);
N_LIB_PRIVATE N_NIMCALL(void, unaryArith_TU9cJnldbmGa9bZDxaR6I4tg_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg op);
N_LIB_PRIVATE N_NIMCALL(void, unaryArithOverflow_yX5yxw6c9agMF4ZvIHKAZvg_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg m);
N_LIB_PRIVATE N_NIMCALL(void, binaryFloatArith_yX5yxw6c9agMF4ZvIHKAZvg_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg m);
N_LIB_PRIVATE N_NIMCALL(void, binaryArith_TU9cJnldbmGa9bZDxaR6I4tg_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg op);
N_LIB_PRIVATE N_NIMCALL(void, genEqProc_BKdMcfvryaJLplX0oFPcAQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, binaryArithOverflow_yX5yxw6c9agMF4ZvIHKAZvg_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg m);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, binaryArithOverflowRaw_ve9b1jPKH19c7Oix9aPGf9cWag)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* b, NimStringDesc* frmt);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, rdCharLoc_xidyzuHqIciXbQyEOKahDg_2)(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a);
N_LIB_PRIVATE N_NIMCALL(NI64, lastOrd_PcKlk9cRVtdVcuEFs9bZTdAQ)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, NIM_BOOL fixedUnsigned);
N_LIB_PRIVATE N_NIMCALL(void, genRepr_BKdMcfvryaJLplX0oFPcAQ_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, gcUsage_Faz6su3hXrHmiSECd9c9a6Pg)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, message_mMj7lrOf3zBP9bl69amiKu5g)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, tyEnum_TMsgKind_29cbg2fC1z5iM1PAI28kR5w msg, NimStringDesc* arg);
N_LIB_PRIVATE N_NIMCALL(void, genGetTypeInfo_BKdMcfvryaJLplX0oFPcAQ_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genSwap_BKdMcfvryaJLplX0oFPcAQ_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, unaryExpr_U2agx9aO3WToOTIqL9baXQog)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* frmt);
N_LIB_PRIVATE N_NIMCALL(void, binaryStmt_U2agx9aO3WToOTIqL9baXQog_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* frmt);
N_LIB_PRIVATE N_NIMCALL(void, genStrConcat_BKdMcfvryaJLplX0oFPcAQ_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, strLoc_09c8G9aj7c6ktd6DIBLVcdnw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, binaryStmtAddr_U2agx9aO3WToOTIqL9baXQog_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* frmt);
N_LIB_PRIVATE N_NIMCALL(void, genStrAppend_BKdMcfvryaJLplX0oFPcAQ_6)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genCall_BKdMcfvryaJLplX0oFPcAQ_7)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genClosureCall_HKkL9adNEIcNHeJ0iZ6uitg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genArg_DHNxWzRy19cVFA89bbFHabxg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* param, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* call);
static N_INLINE(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genArgStringToCString_yOhPG2oQOpNhI6KfbLI1XQcgen)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, openArrayLoc_NYI5fC69aIqZGRakncXv9cNQ_7)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, skipConv_6rsSLwtlU9c53a6w69be5JlQ)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg, getMagic_gSv3iFkSzJc9bXZaNBHR9bQA)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* op);
N_LIB_PRIVATE N_NIMCALL(void, genBoundsCheck_Hw9c2IcxFuX7vhYGTZsoSPA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* arr, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genArgNoParam_NYI5fC69aIqZGRakncXv9cNQ_8)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getRawProcType_pQ3A543K4YxeaNh48yoUog)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getClosureType_8lX9asp9a40vZatlX85XSswQ)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyEnum_TClosureTypeKind_cLHRMz1vnpSK0uePy2qbWw kind);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, leftAppearsOnRightSide_vU9b0aggOQwExqsArZPu29aw)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TAnalysisResult_p9a9bcrXoRmLT4eUuwrDq9b4w, isPartOf_1otDDZAmvFsmbqPyFytXFg)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b);
static N_INLINE(NIM_BOOL, hasNoInit_LTm4EPvF5i2yXgRHKmV9apAcgen)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* call);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, addComma_WAlh7NpO6KFA22Kxnp9aoaw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r);
N_LIB_PRIVATE N_NIMCALL(void, genInfixCall_HKkL9adNEIcNHeJ0iZ6uitg_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains_m1TSS3QwQPclQATuiRuVZg)(NimStringDesc* s, tySet_tyChar_nmiMWKVIe46vacnhAFrQvw chars);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genPatternCall_n9aN0vqKCBL7B9cV6pjBnGNg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, NimStringDesc* pat, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genOtherArg_9a86z5oGsAZjkB52zPdLZJQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, NI i, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genThisArg_9a86z5oGsAZjkB52zPdLZJQ_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, NI i, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, skipAddrDeref_vQuVJ3xsG9c85EJKF2xQ7mA)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* node);
N_LIB_PRIVATE N_NIMCALL(void, fixupCall_5AieZFwkpMkLKPnkORd7Cw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* callee, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* params);
N_LIB_PRIVATE N_NIMCALL(void, genNamedParamCall_9azKdI6vAayTOFEcJtCTo1g)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains_6e5MGL10HDAJ205lBYpWxw)(NimStringDesc* s, NIM_CHAR c);
N_LIB_PRIVATE N_NIMCALL(void, genPrefixCall_HKkL9adNEIcNHeJ0iZ6uitg_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
static N_INLINE(void, postStmtActions_bNG6Lz1b9a5TVMLjP9cTlLjwcgen)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p);
N_LIB_PRIVATE N_NIMCALL(void, genSeqElemAppend_BKdMcfvryaJLplX0oFPcAQ_8)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, getIntTemp_SrOtkNNSJNR1CbG2n3nFcg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* result);
N_LIB_PRIVATE N_NIMCALL(void, genStrEquals_BKdMcfvryaJLplX0oFPcAQ_9)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, binaryExpr_U2agx9aO3WToOTIqL9baXQog_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* frmt);
N_LIB_PRIVATE N_NIMCALL(void, genIsNil_BKdMcfvryaJLplX0oFPcAQ_10)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genDollar_pXcuuf9c1RIGGsEW9a8cUntw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* frmt);
N_LIB_PRIVATE N_NIMCALL(void, genOf_8mAL9ckajemzgfLPfeZVNoQ_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genOf_uDNhebNf5Eggw4ZZsc4T9cg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genOfHelper_syG9ah9cBD4IpDknTLKkLglQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* dest, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* a, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, genNew_X9cSqNhqEboci9cdmwBMNcBw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e);
N_LIB_PRIVATE N_NIMCALL(void, rawGenNew_xJGU3j3G6xInb7v14wgw2Q)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* sizeExpr);
N_LIB_PRIVATE N_NIMCALL(void, genNewFinalize_X9cSqNhqEboci9cdmwBMNcBw_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e);
N_LIB_PRIVATE N_NIMCALL(void, genNewSeq_X9cSqNhqEboci9cdmwBMNcBw_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getSeqPayloadType_Z9cu9cahl9aI46mWjj9byAlMYQ)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(void, genNewSeqAux_Ri3gLeBVOaUltgSIU2SrQQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* dest, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* length, NIM_BOOL lenIsZero);
N_LIB_PRIVATE N_NIMCALL(void, genNewSeqOfCap_BKdMcfvryaJLplX0oFPcAQ_11)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genSomeCast_BKdMcfvryaJLplX0oFPcAQ_12)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genOrd_BKdMcfvryaJLplX0oFPcAQ_13)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, unaryExprChar_U2agx9aO3WToOTIqL9baXQog_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* frmt);
N_LIB_PRIVATE N_NIMCALL(void, genArrayLen_TU9cJnldbmGa9bZDxaR6I4tg_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg op);
N_LIB_PRIVATE N_NIMCALL(void, unaryStmt_U2agx9aO3WToOTIqL9baXQog_6)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* frmt);
N_LIB_PRIVATE N_NIMCALL(void, genSetLengthStr_BKdMcfvryaJLplX0oFPcAQ_14)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genSetLengthSeq_BKdMcfvryaJLplX0oFPcAQ_15)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genSetOp_TU9cJnldbmGa9bZDxaR6I4tg_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg op);
N_LIB_PRIVATE N_NIMCALL(void, binaryStmtInExcl_U2agx9aO3WToOTIqL9baXQog_7)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* frmt);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, rdSetElemLoc_yZiAKtQMz62JmONYJ0rLzg)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(void, binaryExprChar_U2agx9aO3WToOTIqL9baXQog_8)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* frmt);
N_LIB_PRIVATE N_NIMCALL(void, genInOp_BKdMcfvryaJLplX0oFPcAQ_16)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, fewCmps_vBGSIpCyq29bEZNYsVP3V6w)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* s);
N_LIB_PRIVATE N_NIMCALL(void, genInExprAux_9cclvr8sbqtJj8irRbQQpqQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* b, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, binaryExprIn_Q04NbRdson6NZhd9b3hsyXQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* b, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* frmt);
N_LIB_PRIVATE N_NIMCALL(void, genReset_UtJx89cn0a8CNSWWmaj6raA_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genEcho_UtJx89cn0a8CNSWWmaj6raA_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genArrToSeq_8mAL9ckajemzgfLPfeZVNoQ_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genSeqConstr_8mAL9ckajemzgfLPfeZVNoQ_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lhsDoesAlias_edSekmjUCfSNOPSuXdUClg)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, wrapProcForSpawn_MJZ4vKNaMfcU6vC2PCi1Ng)(tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* owner, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* spawnExpr, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* retType, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* barrier, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* dest);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, liftParallel_ndOOzgg7N9cEw3E9bRfkcIDw)(tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* owner, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genDeepCopy_jdslQ8TsNpkTt8SvBLJjEA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* dest, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* src);
N_LIB_PRIVATE N_NIMCALL(void, genWasMoved_UtJx89cn0a8CNSWWmaj6raA_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, skipAddr_1TL9cg0ds6vTtfhbmuTNGBA_2)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genMove_8mAL9ckajemzgfLPfeZVNoQ_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genSetNode_NYI5fC69aIqZGRakncXv9cNQ_9)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genSetConstr_BKdMcfvryaJLplX0oFPcAQ_17)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(NimStringDesc*, nimInt64ToStr)(NI64 x);
N_LIB_PRIVATE N_NIMCALL(void, exprComplexConst_8mAL9ckajemzgfLPfeZVNoQ_6)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genArrayConstr_8mAL9ckajemzgfLPfeZVNoQ_7)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, handleConstExpr_3euU5r9bcG0Rnz4QchCOUyw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genTupleConstr_8mAL9ckajemzgfLPfeZVNoQ_8)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genObjConstr_BKdMcfvryaJLplX0oFPcAQ_18)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*, lookupFieldAgain_x9bTneajlTd1ibxrXw5m2Pw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ty, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** r, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ** resTyp);
N_LIB_PRIVATE N_NIMCALL(void, genFieldCheck_9bUUELnkXphPuPspD3YnKHQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* obj, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genStringLiteralDataOnly_tpGWhSp1xC3JuIpAoNyC1A)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, NimStringDesc* s, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genStringLiteralFromData_d8K4FwDbRgw11uUZqU9amkA)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* data, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, genCast_BKdMcfvryaJLplX0oFPcAQ_19)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genConv_BKdMcfvryaJLplX0oFPcAQ_20)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameBackendType_n70Tq9c0HITdaYm9cT8YLryw)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* x, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* y);
N_LIB_PRIVATE N_NIMCALL(void, genAddr_BKdMcfvryaJLplX0oFPcAQ_21)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
static N_INLINE(NIM_BOOL, isCppRef_W1pyohIhafix2U26ZP9a5aAcgen)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(void, genBracketExpr_8mAL9ckajemzgfLPfeZVNoQ_9)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genArrayElem_BCJD8YW9ak7zQIm4nTPgpMQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* y, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isConstExpr_FTbvAnf1y9b9c3Krp9bsHDTiw_4)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genOpenArrayElem_BCJD8YW9ak7zQIm4nTPgpMQ_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* y, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genSeqElem_BCJD8YW9ak7zQIm4nTPgpMQ_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* y, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genCStringElem_BCJD8YW9ak7zQIm4nTPgpMQ_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* y, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genTupleElem_BKdMcfvryaJLplX0oFPcAQ_22)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genDeref_BLGSHeDM9cawDE7Hp9bscFgg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NIM_BOOL enforceDeref);
N_LIB_PRIVATE N_NIMCALL(void, genRecordField_BKdMcfvryaJLplX0oFPcAQ_23)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genRecordFieldAux_O8nIPJbfEFU0FjR77WG5eA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a);
N_LIB_PRIVATE N_NIMCALL(void, genCheckedRecordField_BKdMcfvryaJLplX0oFPcAQ_24)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genBlock_8mAL9ckajemzgfLPfeZVNoQ_10)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(NI, startBlock_5VnWFu9cyKySWdJiAv81lJQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, NimStringDesc* start, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NI, inExceptBlockLen_lPGsm5WeJbPHE8Q8iwQujw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p);
N_LIB_PRIVATE N_NIMCALL(void, endBlock_0dpuY9coTlraj8JXIe2BzVw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p);
N_LIB_PRIVATE N_NIMCALL(void, endBlock_12ZfBiPs9cA29axtp2bvV6zg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* blockEnd);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, blockBody_tMtK9ba4LBR5bZYSR9avbIag)(tyObject_TBlock_GFhahvekTq3dDOkWyhchMA* b);
N_LIB_PRIVATE N_NIMCALL(void, genStmtListExpr_8mAL9ckajemzgfLPfeZVNoQ_11)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, initFrameNoDebug_pzdwBzdMmIm0ZmOmWB6yqA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* frame, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* procname, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* filename, NI line);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, deinitFrameNoDebug_i9b8wSa9cUkrnf3r9bmZ8OzfA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* frame);
N_LIB_PRIVATE N_NIMCALL(void, genStmtList_UtJx89cn0a8CNSWWmaj6raA_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genIf_8mAL9ckajemzgfLPfeZVNoQ_12)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, downConv_8mAL9ckajemzgfLPfeZVNoQ_13)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(NI, inheritanceDiff_1dM2iQB5qStJfnn3684ijQ_2)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* a, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* b);
N_LIB_PRIVATE N_NIMCALL(void, upConv_8mAL9ckajemzgfLPfeZVNoQ_14)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genRangeChck_s6WVujc8IISl9b7Y39bTXvlw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* magic);
N_LIB_PRIVATE N_NIMCALL(void, convStrToCStr_8mAL9ckajemzgfLPfeZVNoQ_15)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, convCStrToStr_8mAL9ckajemzgfLPfeZVNoQ_16)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genClosure_8mAL9ckajemzgfLPfeZVNoQ_17)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
static N_INLINE(NIM_BOOL, isConstClosure_cw9b4FeB3czQDBAn8OhomGAcgen)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NIM_BOOL, isRoutine_r9cAFhCIx1KQ7kiILYnBfeAparampatterns)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(void, genWhileStmt_QrTB5DOwbDX9bKAW7PNbuJA_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t);
static N_INLINE(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, assignLabel_mIFKIo7g6Echd7EokLhQegcgen)(tyObject_TBlock_GFhahvekTq3dDOkWyhchMA* b);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, stmtsContainPragma_9aY8Dd0aB4xmQTh5kptvVOg)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw w);
N_LIB_PRIVATE N_NIMCALL(void, genComputedGoto_UtJx89cn0a8CNSWWmaj6raA_6)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, enumHasHoles_oBaRrNx0TwrublbZIUKenA_2)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(void, genVarStmt_UtJx89cn0a8CNSWWmaj6raA_7)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genSingleVar_9c6v9b6B8RZkui111YH4cbEw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a);
N_LIB_PRIVATE N_NIMCALL(void, genGotoVar_4xOIY9bgIMy9bAzg2ZyIieBw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* value);
N_LIB_PRIVATE N_NIMCALL(void, assignGlobalVar_UtJx89cn0a8CNSWWmaj6raA_8)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, varInDynamicLib_5Uk70SBbgLBcInZnRFJtnA_4)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym);
N_LIB_PRIVATE N_NIMCALL(void, registerGcRoot_9bU9aKybzNLHLYGtzhHXXPkg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* v);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genTraverseProcForGlobal_jq7V9aOuskruyTpimXVl8QQ)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
static N_INLINE(NIM_BOOL, isAssignedImmediately_udBNoPxZaHjsWUNp37jAdwcgen)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsHiddenPointer_IVXYI9cxSeivThgKCncHRnA_3)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
static N_INLINE(void, loadInto_vkEx8Dn9aiGOI04WjvQIHIwcgen)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a);
N_LIB_PRIVATE N_NIMCALL(void, genAsgnCall_HKkL9adNEIcNHeJ0iZ6uitg_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genClosureVar_9c6v9b6B8RZkui111YH4cbEw_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a);
N_LIB_PRIVATE N_NIMCALL(void, genVarTuple_UtJx89cn0a8CNSWWmaj6raA_9)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, lowerTupleUnpacking_8A4G64HByteFanrMUexmNw)(tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* owner);
N_LIB_PRIVATE N_NIMCALL(void, genCase_re1pwmyeR32ikwnOC3vvzQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genStringCase_re1pwmyeR32ikwnOC3vvzQ_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(NI, nextPowerOfTwo_gcitR3TEXHJ3GR9bmwIvtRA)(NI x);
N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
N_LIB_PRIVATE N_NIMCALL(void, genCaseStringBranch_P8OJ6tb5bbr0Tp2llps5Rw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* e, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* labl, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** branches, NI branchesLen_0);
N_LIB_PRIVATE N_NIMCALL(NI64, hashString_bnoSfGDS48HKk44sKjGWyQ)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genCaseSecondPass_4DRiNj9aN6Z9aXL9bqOB79czGw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NI labId, NI until);
N_LIB_PRIVATE N_NIMCALL(void, exprBlock_8mAL9ckajemzgfLPfeZVNoQ_18)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genCaseGeneric_A9aEg9csf4anYemsYRjz0L9cw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* rangeFormat, NimStringDesc* eqFormat);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genIfForCaseUntil_FkXf1Gng7LHrb22W8xnIzg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* rangeFormat, NimStringDesc* eqFormat, NI until, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a);
N_LIB_PRIVATE N_NIMCALL(void, genCaseGenericBranch_L9cVGppHJKqGKFR603R9boYw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* e, NimStringDesc* rangeFormat, NimStringDesc* eqFormat, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* labl);
N_LIB_PRIVATE N_NIMCALL(void, genGotoForCase_ACGHJp9bbmHaRpjqO8LXrqA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* caseStmt);
N_LIB_PRIVATE N_NIMCALL(void, genOrdinalCase_8mAL9ckajemzgfLPfeZVNoQ_19)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(NI, ifSwitchSplitPoint_4hTzApDoaLx0fdq41ZoEAg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, branchHasTooBigRange_ATpc9czZVSSl5DwvggVYrTA)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(void, genReturnStmt_QrTB5DOwbDX9bKAW7PNbuJA_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t);
N_LIB_PRIVATE N_NIMCALL(void, blockLeaveActions_e09bgD1fQnMSV07ItnToC3Q)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, NI howManyTrys, NI howManyExcepts);
N_LIB_PRIVATE N_NIMCALL(tySequence_P9c6Y5h4sjjYLVGti5AELHg*, newSeq_ldNLYIJTuHtJnMsIMCgWkA)(NI len);
static N_INLINE(void, pop_YLluDKGZN2sKVVF4ZTxS0Acgen)(tySequence_P9c6Y5h4sjjYLVGti5AELHg** s, tyTuple_aTNxDjHI7v9cq37xS7PT7jA* Result);
N_LIB_PRIVATE N_NIMCALL(void, genBreakStmt_QrTB5DOwbDX9bKAW7PNbuJA_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t);
N_LIB_PRIVATE N_NIMCALL(void, genAsgn_9ap9b3IFVLSL9b9akVbfMyRxlA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, NIM_BOOL fastAsgn);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, fieldDiscriminantCheckNeeded_Eyz2KtzeOLvgSAeQHJsjPQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* asgn);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, newNodeI_I7fH85CUcZMasoPRKxPsPg)(tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, patchAsgnStmtListExpr_KAraXem1fGqbyFed2BZeaA)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* orig, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, add_gCCf68XrWL79bKes6htzFjQ)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* son);
N_LIB_PRIVATE N_NIMCALL(void, asgnFieldDiscriminant_X9cSqNhqEboci9cdmwBMNcBw_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e);
N_LIB_PRIVATE N_NIMCALL(void, genDiscriminantCheck_c1s9cEnyLNclmLP8bBuHmDg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* tmp, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* objtype, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, discriminatorTableDecl_wOfMK5JrT0vmKss7nf2bjw_2)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* objtype, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* d);
N_LIB_PRIVATE N_NIMCALL(void, genAsmStmt_QrTB5DOwbDX9bKAW7PNbuJA_6)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genAsmOrEmitStmt_53Pwv51Dxuia7o9bQN4K9agw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, NIM_BOOL isAsmStmt);
N_LIB_PRIVATE N_NIMCALL(void, genTryCpp_re1pwmyeR32ikwnOC3vvzQ_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
static N_INLINE(tyTuple_aTNxDjHI7v9cq37xS7PT7jA*, X5BX5D__DNaoadBNamECp4NO8E7GXgcgen)(tyTuple_aTNxDjHI7v9cq37xS7PT7jA* s, NI sLen_0, NI i);
N_LIB_PRIVATE N_NIMCALL(void, genRestoreFrameAfterException_0dpuY9coTlraj8JXIe2BzVw_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isInfixAs_63pt39coF5C8JoG0utNnwWg_2)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(void, genSimpleBlock_RH6PUsmPRE4ftBMagpWhBQcgen)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* stmts);
N_LIB_PRIVATE N_NIMCALL(void, genTry_re1pwmyeR32ikwnOC3vvzQ_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, line_9aXHc8esghJ4O9cCshiFsv8g)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg s, NimStringDesc* r);
static N_INLINE(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, pop_Ux3gtntcVjVnGxXx3h8vbwropes)(tySequence_WwUFq9cJ2xKRlsAWVEHyPRg** s);
N_LIB_PRIVATE N_NIMCALL(void, genRaiseStmt_QrTB5DOwbDX9bKAW7PNbuJA_7)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isImportedException_ziFZ9chCaA06nUtpwM9aqMyQ)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(void, genTypeSection_msKE4zaiMHSbPQgj9bUkbbg)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genPragma_UtJx89cn0a8CNSWWmaj6raA_10)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw, whichPragma_tadMdqrtQd2cek9aFwyE1XQ)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genEmit_QrTB5DOwbDX9bKAW7PNbuJA_8)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg, determineSection_9arH9c6mXq5etPZBb1Z9cafbw)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nsuStartsWith)(NimStringDesc* s, NimStringDesc* prefix);
N_LIB_PRIVATE N_NIMCALL(void, genBreakPoint_QrTB5DOwbDX9bKAW7PNbuJA_9)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t);
N_LIB_PRIVATE N_NIMCALL(void, genWatchpoint_UtJx89cn0a8CNSWWmaj6raA_11)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*, skipGenericOwner_yJlkgivdZFfxOuRjhZjB8Q_2)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(void, genParForStmt_QrTB5DOwbDX9bKAW7PNbuJA_10)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t);
N_LIB_PRIVATE N_NIMCALL(void, genState_UtJx89cn0a8CNSWWmaj6raA_12)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genGotoState_UtJx89cn0a8CNSWWmaj6raA_13)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genBreakState_8mAL9ckajemzgfLPfeZVNoQ_20)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, popInfoContext_HFVjkUQz7LMV9aOS6uKLckQ)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(void, registerModuleToMain_9b9cE9c9cXV8ajZBf8pZ9cXrH8A)(tyObject_BModuleListcolonObjectType__CpP4eJLbv5ZwofQXpESuGA* g, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* m);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getInitName_JBd7XGjgK9ab0QMtKIFvb8Q)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* m);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getSomeInitName_w6QsbcV9cKZyPX3cvCfpTDg)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* m, NimStringDesc* suffix);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getDatInitName_JBd7XGjgK9ab0QMtKIFvb8Q_2)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* m);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, generateMethodDispatchers_7t0GJlNQwZyLt0Kz3RhRdw)(tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g);
N_LIB_PRIVATE N_NIMCALL(void, genMainProc_Uk2KC544lDJr1joRO9bvANQ)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genFilenames_9cFzUT5Cyfi5u0F447WwLvA_3)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, closeNamespaceNim_EBP36f89alKNeO11l19ca8RQ)(void);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, openNamespaceNim_h7k639c1gj2MLT300oN1wwg)(NimStringDesc* namespace_0);
N_LIB_PRIVATE N_NIMCALL(void, finishModule_Uk2KC544lDJr1joRO9bvANQ_2)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m);
N_LIB_PRIVATE N_NIMCALL(void, writeModule_OYDkNxqPpixZGOgH0HYQvQ)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, NIM_BOOL pending);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getCFile_1XCYPP4W7lGJfZnVV4ETpQ)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, withPackageName_4YwxMBUnZIgsMzSI4IbEdg)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* path);
N_LIB_PRIVATE N_NIMCALL(void, genInitCode_Uk2KC544lDJr1joRO9bvANQ_3)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genSectionStart_otaTb0ytiYCWgsXTIvijfg)(tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg ps, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genSectionEnd_otaTb0ytiYCWgsXTIvijfg_2)(tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg ps, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genSectionStart_KYNwN8RXzjqIkzxFSwHsxw)(tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg fs, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genSectionEnd_KYNwN8RXzjqIkzxFSwHsxw_2)(tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg fs, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(void, finishTypeDescriptions_Uk2KC544lDJr1joRO9bvANQ_4)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m);
N_LIB_PRIVATE N_NIMCALL(void, generateThreadVarsSize_Uk2KC544lDJr1joRO9bvANQ_5)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toObjFile_wie9aYwLpNU3lDmFQ5RIoiw)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* filename);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genModule_ntChrrJJ8SZ7k7xo0KnvNQ)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg cfile);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getFileHeader_t9c9byVBpvEfissxdPQCEZLw)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg cfile);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getCopyright_t9c9byVBpvEfissxdPQCEZLw_2)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg cfile);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getCompileCFileCmd_QfCX9czC0M7psgT3pyi1eyw)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg cfile);
static N_INLINE(void, addIntTypes_jVBximZchOMC4kzSRdtvHgcgen)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** result, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genMergeInfo_KvulhR9b3jYRAtMO06J1PXQ)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m);
N_LIB_PRIVATE N_NIMCALL(void, generateThreadLocalStorage_Uk2KC544lDJr1joRO9bvANQ_6)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m);
N_LIB_PRIVATE N_NIMCALL(void, generateHeaders_Uk2KC544lDJr1joRO9bvANQ_7)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuReplaceChar)(NimStringDesc* s, NIM_CHAR sub, NIM_CHAR by);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, shouldRecompile_wDVWwFMADGmdVZ0bU78OHQ)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* code, tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg cfile);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, equalsFile_EnPyko9cdia3BJbBC9ao9a60A)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r, NimStringDesc* filename);
static N_INLINE(NIM_BOOL, fileExists_yTPrfdEKg9cKCeSFUA6popQoptions)(NimStringDesc* filename);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nosexistsFile)(NimStringDesc* filename);
N_LIB_PRIVATE N_NIMCALL(void, noscopyFile)(NimStringDesc* source, NimStringDesc* dest);
N_NIMCALL(void, echoBinSafe)(NimStringDesc** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, writeRope_xVzCd39bh3ndCAWl6XETYRg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* head, NimStringDesc* filename);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nosfileNewer)(NimStringDesc* a, NimStringDesc* b);
N_LIB_PRIVATE N_NIMCALL(void, addFileToCompile_DrjMOFR2ikK4fdFuJNiaYg)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg cf);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, mergeRequired_tI6nnTYCo9bEon9bDwT7wZEg)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m);
N_LIB_PRIVATE N_NIMCALL(void, mergeFiles_dx5FrFzzoyK0pxKs3VgXfA)(NimStringDesc* cfilename, tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m);
N_LIB_PRIVATE N_NIMCALL(void, close_9b6I81M9agpKe5u9cmzSmOaGA)(tyObject_NdiFile_9cEuXfAnHp9bnWFK409cMtsEw* f);
N_LIB_PRIVATE N_NIMCALL(void, writeMapping_LBHXhYTVO2vldQU4a5LZ9aQ)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* symbolMapping);
N_LIB_PRIVATE N_NIMCALL(void, writeHeader_Uk2KC544lDJr1joRO9bvANQ_8)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m);
N_LIB_PRIVATE N_NIMCALL(void, splitFile_R3dPKp0IXOiTZhAeiTEnrA)(NimStringDesc* x, tyTuple_7q7q3E6Oj24ZNVJb9aonhAg* Result);
extern tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ gch_IcYaEuuWivYAS86vFMTS3Q;
extern TNimType NTI_ztEqGk06sijSuO4Rugv3vA_;
extern TNimType NTI_Y9bjLcB6gcGcdtqht0fRR0A_;
extern TNimType NTI_sM4lkSb7zS6F7OVMvW9cffQ_;
extern TNimType NTI_Ef05srmQTDulnBdXR4Ja6Q_;
extern TNimType NTI_DfgJFJEYoj4YBAHLZPl5lQ_;
extern TNimType NTI_eW29aEKsgOrJUkJmVmw30lg_;
extern TNimType NTI_9a3YiReNVD0IJHWFKgXRe9ag_;
extern TNimType NTI_G4E4Gxe7oI2Cm03rkiOzQw_;
extern TNimType NTI_cNCW9acsSznmEccl1fgQwkw_;
extern TNimType NTI_EtHNvCB0bgfu9bFjzx9cb6aA_;
extern TNimType NTI_shZhZOdbVC5nnFvcXQAImg_;
extern TNimType NTI_oUyaggHmIX9bpJcMeoG6lpA_;
extern TNimType NTI_WwUFq9cJ2xKRlsAWVEHyPRg_;
extern TNimType NTI_P9c6Y5h4sjjYLVGti5AELHg_;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_2, "TM", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_3, "_", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_4, "ndi", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_5, ".h", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_6, "$", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_7, "ropes: invalid format string $", 30);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_8, "\012", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_9, "$N#line $2 $1$N", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_10, "N_LIB_IMPORT ", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_11, "N_LIB_EXPORT ", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_12, "static ", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_13, "N_LIB_PRIVATE ", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_14, "/Users/andreasrumpf-mac/projects/build_nim_xz/build/Nim/compile"
"r/ccgtypes.nim(145, 14) `contains(typ.flags, tfResolved)` ", 121);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_15, "/Users/andreasrumpf-mac/projects/build_nim_xz/build/Nim/compile"
"r/ccgtypes.nim(179, 19) `false` mapType", 102);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_16, "/Users/andreasrumpf-mac/projects/build_nim_xz/build/Nim/compile"
"r/ccgtypes.nim(180, 17) `false` mapType", 102);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_17, "void", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_18, "cannot generate C type for: ", 28);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_19, "void*", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_20, "nimStrVersion", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_21, "NimStringV2", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_22, "NimStringDesc", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_23, "NimStringDesc*", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_24, "NCSTRING", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_25, "NIM_BOOL", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_26, "NIM_CHAR", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_27, "0", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_28, "NI", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_29, "NI8", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_30, "NI16", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_31, "NI32", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_32, "NI64", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_33, "NF", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_34, "NF32", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_35, "NF64", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_36, "NF128", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_37, "NU", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_38, "NU8", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_39, "NU16", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_40, "NU32", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_41, "NU64", 4);
NIM_CONST tyArray_Sjq0yxKksnvb1U6tEMqzYg NumericalTypeToStr_do7KqFuyalEFiD7s8tBisg = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_28),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_30),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_31),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_32),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_33),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_34),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_35),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_36),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_37),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_38),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_39),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_40),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_41)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_42, "tyStatic for getSimpleTypeDesc", 30);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_43, "checkabi", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_44, "NIM_CHECK_SIZE($1, $2);$n", 25);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_45, "&", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_46, "*", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_47, "getTypeName: ", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_48, "$1 $2;$n", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_49, "typedef $1 $2 $2;$n", 19);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_50, "union", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_51, "struct", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_52, "/Users/andreasrumpf-mac/projects/build_nim_xz/build/Nim/compile"
"r/ccgtypes.nim(346, 14) `m.forwTypeCache[sig] == result` ", 120);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_53, "getTypeForward(", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_54, "typedef NI32 $1;$n", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_55, "typedef NU8 $1;$n", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_56, "typedef NU16 $1;$n", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_57, "typedef NI64 $1;$n", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_58, "getTypeDescAux: enum", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_59, "typedef $1_PTR($2, $3) $4;$n", 28);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_60, "N_NIMCALL", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_61, "N_STDCALL", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_62, "N_CDECL", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_63, "N_SAFECALL", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_64, "N_SYSCALL", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_65, "N_INLINE", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_66, "N_NOINLINE", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_67, "N_FASTCALL", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_68, "N_CLOSURE", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_69, "N_NOCONV", 8);
NIM_CONST tyArray_t1sx1FVcaX4m77XqENedIQ CallingConvToStr_A7GdKVVGtI3pvj9cV9adydpw = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_60),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_61),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_62),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_63),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_65),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_66),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_67),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_70, "typedef struct {$nN_NIMCALL_PTR($2, ClP_0) $3;$nvoid* ClE_0;$n}"
" $1;$n", 69);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_71, "typedef struct{ NI cap;void* allocator;$1 data[SEQ_DECL_SIZE];}"
"$2_Content;$nstruct $2 {$n  NI len; $2_Content* p;$n};$n", 119);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_72, "struct $2 : #TGenericSeq {$n", 28);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_73, "struct $2 {$n  #TGenericSeq Sup;$n", 34);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_74, "  $1 data[SEQ_DECL_SIZE];$n};$n", 31);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_75, "cannot map the empty seq type to a C type", 41);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_76, "TGenericSeq", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_77, "typedef $1 $2[$3];$n", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_78, "/Users/andreasrumpf-mac/projects/build_nim_xz/build/Nim/compile"
"r/ccgtypes.nim(605, 14) `false` invalid apostrophe type paramete"
"r index", 134);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_80, "ccgtypes.nim", 12);
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_MQdRN7fpbG7rPm4JpVVAhA_79 = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_80),
((NI) 770),
((NI) 25)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_81, "<", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_82, " COMMA ", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_83, "> ", 2);
extern NIM_CONST tyArray_ixAZbXJC2p0msaMC9bpeftw CC_78I18QZNZFIv9ah7oETc0jg;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_84, " __attribute__((__packed__))", 28);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_85, "#pragma pack(push, 1)\012", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_86, " ", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_87, " {$n", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_88, " {$n#TNimType* m_type;$n", 24);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_89, " : public $1 {$n", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_90, "virtual void raise() {throw *this;}$n", 37);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_91, "~$1() {if(this->raise_id) popCurrentExceptionEx(this->raise_id)"
";}$n", 67);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_92, "popCurrentExceptionEx", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_93, ";", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_94, " {$n  $1 Sup;$n", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_95, "genRecordFieldsAux", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_96, "_U", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_97, "$1.$2", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_98, "S", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_99, "struct {", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_100, "struct __attribute__((__packed__)){", 35);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_101, "#pragma pack(push, 1)$nstruct{", 30);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_102, "} $1;$n", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_103, "#pragma pack(pop)$n", 19);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_104, "genRecordFieldsAux(record case branch)", 38);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_105, "union{$n$1} $2;$n", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_106, "_0", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_107, "mangleRecFieldName", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_108, "$1 $2[SEQ_DECL_SIZE];$n", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_109, "$1 $2:$3;$n", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_110, "genRecordFieldsAux()", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_111, "char dummy;$n", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_112, "};\012", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_113, "#pragma pack(pop)\012", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_114, "TY", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_115, "typedef $1 $2;$n", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_116, "$1 $2 {$n", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_117, "$1 Field$2;$n", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_118, "char dummy;\012", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_119, "typedef NU$2 $1;$n", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_120, "typedef NU8 $1[$2];$n", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_121, "getTypeDescAux(", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_122, "genProcParams", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_123, ", ", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_124, ", NI $1Len_$2", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_125, " Result", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_126, "void* ClE_0", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_127, "...", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_128, "void)", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_129, ")", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_130, "(", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_131, "$1($2, $3)$4", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_132, "proc has no result symbol", 25);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_133, " register", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_134, " volatile", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_135, "\011", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_136, "$1 = $2;$n", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_137, "(*$1)", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_138, "FR_.s[$1].address = (void*)$3; FR_.s[$1].typ = $4; FR_.s[$1].na"
"me = $2;$n", 73);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_139, "(&", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_140, "TNimType", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_141, "TNimNode", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_142, "extern TNimType $1;$n", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_143, "NTI$1_", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_144, "0", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_145, "void*", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_146, "$1.size = sizeof($2);$n$1.kind = $3;$n$1.base = $4;$n", 53);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_147, "$1.flags = $2;$n", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_148, "nimTypeNames", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_149, "ref object", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_150, "anon ref object from ", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_151, "$1.name = $2;$n", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_152, "nimTypeRoot", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_153, "$1.nextType = nimTypeRoot; nimTypeRoot=&$1;$n", 45);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_154, "TNimType $1;$n", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_155, "genTypeInfo(", 12);
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_MQdRN7fpbG7rPm4JpVVAhA_156 = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_80),
((NI) 1200),
((NI) 19)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_157, "$1[$2]", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_158, "static TNimNode* $1[$2];$n", 26);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_159, "$1[$2] = &$3;$n", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_160, "$1.kind = 1;$n$1.offset = offsetof($2, Field$3);$n$1.typ = $4;$"
"n$1.name = \"Field$3\";$n", 86);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_161, "$1.len = $2; $1.kind = 2; $1.sons = &$3[0];$n", 45);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_162, "$1.len = $2; $1.kind = 2;$n", 27);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_163, "$1.node = &$2;$n", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_164, "Marker_", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_165, "static N_NIMCALL(void, $1)(void* p, NI op)", 42);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_166, "$1 a;$n", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_167, "a = ($1)p;$n", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_168, "#nimGCvisit((void*)$1, op);$n", 29);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_169, "T", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_170, "$1.len = 0; $1.p = NIM_NIL;$n", 29);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_171, "$1 = ($2)0;$n", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_172, "#nimZeroMem((void*)$1, sizeof($2));$n", 37);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_173, "noCppExceptions", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_174, "<new>", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_175, "new ($1) $2;$n", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_176, ".Sup", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_177, "$1.m_type = $2;$n", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_178, "#objectInit($1, $2);$n", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_179, "for ($1 = 0; $1 < $2; $1++) {$n", 31);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_180, ".len", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_181, "($1 \? $1->$2 : 0)", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_182, "len", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_183, "Sup.len", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_184, "}$n", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_185, "$1.Sup", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_186, "genTraverseProc", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_187, "genTraverseProc()", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_188, "switch ($1.$2) {$n", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_189, "case $1 ... $2:$n", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_190, "genLiteral: ty is nil", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_191, "(-2147483647 -1)", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_192, "IL64($1)", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_193, "(IL64(-9223372036854775807) - IL64(1))", 38);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_194, "NIM_TRUE", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_195, "NIM_FALSE", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_196, "ULL", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_197, "(($1) $2)", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_198, "static NIM_CONST $1 $2 = {NIM_NIL,NIM_NIL};$n", 45);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_199, "NIM_NIL", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_200, "((#NimStringDesc*) NIM_NIL)", 27);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_201, "((#NimStringDesc*) &$1)", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_202, "STRING_LITERAL($1, $2, $3);$n", 29);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_203, "((#NimStringDesc*) &$1$2)", 25);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_204, "NimStrPayload", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_205, "static const struct {$n  NI cap; void* allocator; NIM_CHAR data"
"[$2];$n} $1 = { $2, NIM_NIL, $3 };$n", 99);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_206, "static const NimStringV2 $1 = {$2, (NimStrPayload*)&$3};$n", 58);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_207, "cannot determine how to produce code for string literal", 55);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_208, "f", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_209, "genLiteral(", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_210, "case $1:$n", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_211, "default:$n", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_212, "break;$n", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_213, "} $n", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_214, "$1.Field$2", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_215, "$1.ClE_0", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_216, "$1$3[$2]", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_217, ".p->data", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_218, "->data", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_219, "a", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_220, "(*a)", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_221, "$1 {$n$2$3$4}$n", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_222, "$1;$n", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_223, "$1.marker = $2;$n", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_224, "$1.len = $2; $1.kind = 0;$n$3.node = &$1;$n", 43);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_225, ", \012", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_226, "$1.offset = $2;$n", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_227, "NI $1;$n", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_228, "static char* NIM_CONST $1[$2] = {$n$3};$n", 41);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_229, "for ($1 = 0; $1 < $2; $1++) {$n$3[$1+$4].kind = 1;$n$3[$1+$4].o"
"ffset = $1;$n$3[$1+$4].name = $5[$1];$n$6[$1] = &$3[$1+$4];$n}$n", 127);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_230, "$1.len = $2; $1.kind = 2; $1.sons = &$3[0];$n$4.node = &$1;$n", 61);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_231, "$1.flags = 1<<2;$n", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_232, "request for RTTI generation for incomplete object: ", 51);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_233, "anonymous obj with discriminator", 32);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_234, "NimDT_$1_$2", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_235, "genObjectFields", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_236, "$1.kind = 3;$n$1.offset = offsetof($2, $3);$n$1.typ = $4;$n$1.n"
"ame = $5;$n$1.sons = &$6[0];$n$1.len = $7;$n", 107);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_237, "TNimNode* $1[$2];$n", 19);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_238, "genObjectFields; nkOfBranch broken", 34);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_239, "genObjectFields(nkRecCase)", 26);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_240, "$1.kind = 1;$n$1.offset = offsetof($2, $3);$n$1.typ = $4;$n$1.n"
"ame = $5;$n", 74);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_241, "$1.deepcopy =(void* (N_RAW_NIMCALL*)(void*))$2;$n", 49);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_242, "\011return $1;$n", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_243, "Result", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_244, "#asgnRef((void**) $1, $2);$n", 28);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_245, "#asgnRefNoCycle((void**) $1, $2);$n", 35);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_246, "#unsureAsgnRef((void**) $1, $2);$n", 34);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_247, "$1 = 0;$n", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_248, "#chckNil((void*)$1);$n", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_249, "#genericReset((void*)$1, $2);$n", 31);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_250, "closure generation failed", 25);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_251, "$1 = ($2) ClE_0;$n", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_252, "__declspec(noreturn) ", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_253, "__declspec(naked) ", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_254, "$N$1 {$n$2$3$4}$N$N", 19);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_255, "$N$1 {$N", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_256, "struct {$1} GCFRAME_;$n", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_257, "nimFrame", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_258, "VarSlot", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_259, "\011nimfrs_($1, $2, $3, $4);$n", 27);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_260, "\011nimfr_($1, $2);$n", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_261, "\011#nimProfile();$n", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_262, "{", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_263, "\011}BeforeRet_: ;$n", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_264, "if (((NU)&GCFRAME_) < 4096) #nimGCFrame(&GCFRAME_);$n", 53);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_265, "\011#popFrame();$n", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_266, "}$N", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_267, "static void* $1;$n", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_268, "||", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_269, "($1 = #nimLoadLibrary($2))$n", 28);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_270, "if (!($1)) #nimLoadLibraryError($2);$n", 38);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_271, "if (!($1 = #nimLoadLibrary($2))) #nimLoadLibraryError($2);$n", 60);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_272, "loadDynamicLib", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_273, "Dl_$1_", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_274, "\011$1 = ($2) ($3$4));$n", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_276, "cgen.nim", 8);
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_MQdRN7fpbG7rPm4JpVVAhA_275 = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_276),
((NI) 611),
((NI) 18)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_277, "wrong index: ", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_278, "\011$1 = ($2) #nimGetProcAddr($3, $4);$n", 37);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_279, "$2 $1;$n", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_280, "extern ", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_281, "NIM_THREADVAR ", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_282, " $1;$n", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_283, "cgsym: ", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_284, ": ", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_285, "system module needs: ", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_286, "extern $1 $2;$n", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_287, "extern \"C\" ", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_288, " __attribute__((naked))", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_289, " __attribute__((noreturn))", 26);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_290, "$1.len = $2.len; $1.p = $2.p;$n", 31);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_291, "#nimCopyMem((void*)$1, (NIM_CONST void*)$2, sizeof($3));$n", 58);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_292, "#genericShallowAssign((void*)$1, (void*)$2, $3);$n", 50);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_293, "#genericAssign((void*)$1, (void*)$2, $3);$n", 43);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_294, "#genericSeqAssign($1, $2, $3);$n", 32);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_295, "$1 = #copyString($2);$n", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_296, "$3 = $1; $1 = #copyStringRC1($2);$n", 35);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_297, "if ($1) #nimGCunrefNoCycle($1);$n", 33);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_298, "#unsureAsgnRef((void**) $1, #copyString($2));$n", 47);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_299, ".", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_300, "ClE_0", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_301, "$1.ClP_0 = $2.ClP_0;$n", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_302, "Field$1", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_304, "ccgexprs.nim", 12);
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_MQdRN7fpbG7rPm4JpVVAhA_303 = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_304),
((NI) 341),
((NI) 23)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_305, "#genericAssignOpenArray((void*)$1, (void*)$2, $1Len_0, $3);$n", 61);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_306, "#nimCopyMem((void*)$1, (NIM_CONST void*)$2, $3);$n", 50);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_307, "genAssignment: ", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_308, "#memTrackerWrite((void*)$1, $2, $3, $4);$n", 42);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_309, "request to generate code for .compileTime proc: ", 48);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_310, "expr: proc not init ", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_311, "NIM_CONST $1 $2 = $3;$n", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_312, "{$n", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_313, "0x$1,$n", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_314, "0x$1, ", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_315, "0x$1}$n", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_316, "{{$1, $1 | NIM_STRLIT_FLAG}", 27);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_317, ", {", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_318, ",$n", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_319, "}", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_320, "NIM_CONST struct {$n  #TGenericSeq Sup;$n  $1 data[$2];$n} $3 ="
" $4;$n", 69);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_321, "(($1)&$2)", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_322, "{NIM_NIL,NIM_NIL}", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_323, "$1,$n", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_324, "$1", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_325, "NIM_FALSE", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_326, "0.0", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_327, "NIM_NIL", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_328, "{NIM_NIL, NIM_NIL}", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_329, "{{$1}}", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_330, "{}", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_331, "{", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_332, "cannot create null element for: ", 32);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_333, "{$1}$n", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_334, "{$1, (NimStrPayload*)&$2}", 25);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_335, "extern NIM_CONST $1 $2;$n", 25);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_336, "expr: var not init ", 19);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_337, "\011NimThreadVars* NimTV_;$n", 25);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_338, "\011NimTV_ = (NimThreadVars*) #GetThreadLocalVars();$n", 51);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_339, "NimTV_->", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_340, "expr: temp not init ", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_341, "expr: param not init ", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_342, "expr(", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_343, "); unknown symbol", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_344, "//", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_345, "#endb($1, $2);$N", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_346, "\?\?\?", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_347, "nimln_($1, $2);$n", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_348, "LA", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_349, "if ($1) goto $2;$n", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_350, "if (!($1)) goto $2;$n", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_351, "$1: ;$n", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_352, "!($1)", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_353, "($3)((NU$2) ~($1))", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_354, "-($1)", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_355, "($1 < 0\? -($1) : ($1))", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_356, "(($3)(NU)(NU8)($1))", 19);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_357, "(($3)(NU64)(NU8)($1))", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_358, "(($3)(NU)(NU16)($1))", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_359, "(($3)(NU64)(NU16)($1))", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_360, "(($3)(NU64)(NU32)($1))", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_361, "(($3)(NU64)(NU)($1))", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_362, "(($3)(NU8)(NU)($1))", 19);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_363, "(($3)(NU16)(NU)($1))", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_364, "(($3)(NU32)(NU64)($1))", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_365, "((double) ($1))", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_366, "float64ToInt32($1)", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_367, "float64ToInt64($1)", 18);
NIM_CONST tyArray_Z9bQn9b5tGFWiuVSr82ZpACA unArithTab_1p9a8KN5j4PMV4F7Mzo8I1Q = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_352),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_324),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_353),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_324),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_354),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_355),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_356),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_357),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_358),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_359),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_360),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_361),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_362),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_363),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_364),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_365),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_365),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_366),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_367)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_368, "if ($1 == $2) #raiseOverflow();$n", 33);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_369, "((NI$2)-($1))", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_370, "($1 > 0\? ($1) : -($1))", 22);
NIM_CONST tyArray_TynMtFnQDyyrdq7PkUp8PQ opr_vMxBsg3pHbWQhHBktwp4Jw = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_369),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_354),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_370)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_371, "(($4)($2) $1 ($4)($3))", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_372, "+", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_373, "-", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_374, "/", 1);
NIM_CONST tyArray_mldSoslZLKnaU1VaydXOkQ opr_jSXnH9c8YRRwSdXyVdSg9acA = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_372),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_373),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_46),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_374)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_375, "#nanCheck($1);$n", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_376, "#infCheck($1);$n", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_377, "(($4)($1) + ($4)($2))", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_378, "(($4)($1) - ($4)($2))", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_379, "(($4)($1) * ($4)($2))", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_380, "(($4)($1) / ($4)($2))", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_381, "($4)((NU$5)($1) >> (NU$3)($2))", 30);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_382, "($4)((NU$3)($1) << (NU$3)($2))", 30);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_383, "($4)((NI$3)($1) >> (NU$3)($2))", 30);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_384, "($4)($1 & $2)", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_385, "($4)($1 | $2)", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_386, "($4)($1 ^ $2)", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_387, "(($1 <= $2) \? $1 : $2)", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_388, "(($1 >= $2) \? $1 : $2)", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_389, "($4)((NU$3)($1) + (NU$3)($2))", 29);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_390, "($4)((NU$3)($1) - (NU$3)($2))", 29);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_391, "($4)((NU$3)($1) * (NU$3)($2))", 29);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_392, "($4)((NU$3)($1) / (NU$3)($2))", 29);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_393, "($4)((NU$3)($1) % (NU$3)($2))", 29);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_394, "($1 == $2)", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_395, "($1 <= $2)", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_396, "($1 < $2)", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_397, "((NU$3)($1) <= (NU$3)($2))", 26);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_398, "((NU$3)($1) < (NU$3)($2))", 25);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_399, "((NU64)($1) <= (NU64)($2))", 26);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_400, "((NU64)($1) < (NU64)($2))", 25);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_401, "((NU8)($1) == (NU8)($2))", 24);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_402, "((NU8)($1) <= (NU8)($2))", 24);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_403, "((NU8)($1) < (NU8)($2))", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_404, "($1 != $2)", 10);
NIM_CONST tyArray_QJgXKRh3GS6o8vhP9b9bRayg binArithTab_184dMIlbHgay9bxJ8Y4EEQA = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_377),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_378),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_379),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_380),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_381),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_382),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_383),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_384),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_385),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_386),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_387),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_388),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_387),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_388),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_389),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_390),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_391),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_392),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_393),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_394),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_395),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_396),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_394),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_395),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_396),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_397),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_398),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_399),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_400),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_394),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_395),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_396),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_401),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_402),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_403),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_394),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_395),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_396),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_394),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_394),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_395),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_396),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_404)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_405, "($1.ClP_0 == $2.ClP_0 && $1.ClE_0 == $2.ClE_0)", 46);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_406, "($#)($# + $#)", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_407, "($#)($# - $#)", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_408, "($#)($# * $#)", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_409, "($#)($# / $#)", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_410, "($#)($# % $#)", 13);
NIM_CONST tyArray_3bXWG4VoECF3Z9aw8eHMKSA opr_UAWyVnvyQoWbplounFNlGg = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_406),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_407),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_408),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_409),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_410),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_406),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_407)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_411, "((NU8)($1))", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_412, "if ($1 < $2 || $1 > $3) #raiseOverflow();$n", 43);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_413, "$# = #addInt64($#, $#);$n", 25);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_414, "$# = #subInt64($#, $#);$n", 25);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_415, "$# = #mulInt64($#, $#);$n", 25);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_416, "$# = #divInt64($#, $#);$n", 25);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_417, "$# = #modInt64($#, $#);$n", 25);
NIM_CONST tyArray_3bXWG4VoECF3Z9aw8eHMKSA prc64_9bTptLAKOOYdunqlEwXM6PQ = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_413),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_414),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_415),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_416),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_417),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_413),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_414)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_418, "$# = #addInt($#, $#);$n", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_419, "$# = #subInt($#, $#);$n", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_420, "$# = #mulInt($#, $#);$n", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_421, "$# = #divInt($#, $#);$n", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_422, "$# = #modInt($#, $#);$n", 23);
NIM_CONST tyArray_3bXWG4VoECF3Z9aw8eHMKSA prc_8UqUr1y9abLbrO1vSUF2CqQ = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_418),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_419),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_420),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_421),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_422),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_418),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_419)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_423, "($#)($#)", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_424, "#reprInt((NI64)$1)", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_425, "#reprFloat($1)", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_426, "#reprBool($1)", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_427, "#reprChar($1)", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_428, "#reprEnum((NI)$1, $2)", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_429, "#reprStr($1)", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_430, "#reprSet($1, $2)", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_431, "$1, $1Len_0", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_432, "$1$3, $2", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_433, "$1, $2", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_434, "genRepr()", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_435, "#reprOpenArray($1, $2)", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_436, "#reprAny($1, $2)", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_437, "\'repr\' doesn\'t support \'void\' type", 34);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_438, "($1 - 1)", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_439, "#subInt($1, 1)", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_440, "binaryStmt", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_441, "$1 += $2;$n", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_442, "$1 -= $2;$n", 11);
NIM_CONST tyArray_H8bljeYwRVBMsVXxvskZog opr_O7uP3jzNu3e9auWdRdRa9cJA = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_441),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_442)}
;
NIM_CONST tyArray_H8bljeYwRVBMsVXxvskZog fun64_fjrbodMqcYB619bEDCGfJsA = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_413),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_414)}
;
NIM_CONST tyArray_H8bljeYwRVBMsVXxvskZog fun_gOe15RXeJ2duD5In6NwLXA = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_418),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_419)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_443, "#appendChar($1, $2);$n", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_444, " + ", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_445, "#appendString($1, $2);$n", 24);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_446, "$1 = #rawNewString($2$3);$n", 27);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_447, "binaryStmtAddr", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_448, "#nimAddCharV1($1, $2);$n", 24);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_449, "#addChar($1, $2)", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_450, "#prepareAdd($1, $2$3);$n", 24);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_451, "#resizeString($1, $2$3)", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_452, "#nimToCStringConv($1)", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_453, "if ($2-$1 != -1 && ((NU)($1) >= (NU)($3Len_0) || (NU)($2) >= (N"
"U)($3Len_0))) #raiseIndexError();$n", 98);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_454, "if ($2-$1 != -1 && ($2-$1 < -1 || $1 < $3 || $1 > $4 || $2 < $3"
" || $2 > $4)) #raiseIndexError();$n", 98);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_455, "if ($2-$1 != -1 && ((NU)($1) >= (NU)$3 || (NU)($2) >= (NU)$3)) "
"#raiseIndexError();$n", 84);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_456, "($1)+($2), ($3)-($2)+1", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_457, "($1)+(($2)-($4)), ($3)-($2)+1", 29);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_458, "(*$1)$4+($2), ($3)-($2)+1", 25);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_459, "$1$4+($2), ($3)-($2)+1", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_460, "openArrayLoc: ", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_461, "(*$1)$3, $2", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_462, "$1.ClP_0($3$1.ClE_0)", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_463, "$1.ClE_0\? $1.ClP_0($3$1.ClE_0):(($4)($1.ClP_0))($2)", 51);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_464, ";$n", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_466, "ccgcalls.nim", 12);
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_MQdRN7fpbG7rPm4JpVVAhA_465 = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_466),
((NI) 438),
((NI) 17)}
;
static NIM_CONST tySet_tyChar_nmiMWKVIe46vacnhAFrQvw TM_MQdRN7fpbG7rPm4JpVVAhA_467 = {
0x00, 0x00, 0x00, 0x00, 0x88, 0x01, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_468, "wrong argument count", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_469, "call expression expected for C++ pattern", 40);
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_MQdRN7fpbG7rPm4JpVVAhA_470 = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_466),
((NI) 343),
((NI) 17)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_471, "->", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_472, ");$n", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_473, "[", 1);
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_MQdRN7fpbG7rPm4JpVVAhA_474 = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_466),
((NI) 487),
((NI) 17)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_475, "varargs for objective C method\?", 31);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_476, "Result: ", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_477, "];$n", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_478, "]", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_479, "($2) #incrSeqV3(&($1)->Sup, $3)", 31);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_480, "($2) #incrSeqV3($1, $3)", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_481, "$1 = $2->$3++;$n", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_482, "($1 == 0)", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_483, "#eqStrings($1, $2)", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_484, "(#cmpStrings($1, $2) <= 0)", 26);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_485, "(#cmpStrings($1, $2) < 0)", 25);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_486, "($1.ClP_0 == 0)", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_487, "#nimIntToStr($1)", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_488, "#nimInt64ToStr($1)", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_489, "#nimBoolToStr($1)", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_490, "#nimCharToStr($1)", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_491, "#nimFloatToStr($1)", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_492, "#cstrToNimstr($1)", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_493, "no \'of\' operator available for pure objects", 43);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_494, "(($1) && ($2))", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_495, "$1.m_type == $2", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_496, "Nim_OfCheck_CACHE", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_497, "static TNimType* $#[2];$n", 25);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_498, "#isObjWithCache($#.m_type, $#, $#)", 34);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_499, "($1)", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_500, "sizeof($1)", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_501, "the destructor that is turned into a finalizer needs to have th"
"e \'nimcall\' calling convention", 93);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_502, "$1->finalizer = (void*)$2;$n", 28);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_503, "if ($1) { #nimGCunrefRC1($1); $1 = NIM_NIL; }$n", 47);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_504, "if ($1) { #nimGCunrefNoCycle($1); $1 = NIM_NIL; }$n", 51);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_505, "($1) #newObjRC1($2, $3)", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_506, "($1) #newObj($2, $3)", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_507, "($1) #newObj($2, sizeof($3))", 28);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_508, "$1.len = $2; $1.p = ($4*) #newSeqPayload($2, sizeof($3));$n", 59);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_509, "_Content", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_510, "($1) #newSeqRC1($2, $3)", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_511, "($1) #newSeq($2, $3)", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_512, "($1)#nimNewSeqOfCap($2, $3)", 27);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_513, "((NI)sizeof($1))", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_514, "(*($1*) ($2))", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_515, "(($1) ($2))", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_516, "(($1) (ptrdiff_t) ($2))", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_517, "($1Len_0-1)", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_518, "$1Len_0", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_519, "($1 \? (#nimCStrLen($1)-1) : -1)", 31);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_520, "($1 \? #nimCStrLen($1) : 0)", 26);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_521, "($1-1)", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_522, "genArrayLen()", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_523, "($1->Sup.len)", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_524, "$1->len", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_525, "$1 = $2->Sup.len;$n", 19);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_526, "$1 = $2->len;$n", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_527, "unaryStmt", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_528, "#nimGCref($1);$n", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_529, "#nimGCunref($1);$n", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_530, "#setLengthStrV2($1, $2);$n", 26);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_531, "genSetLengthStr", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_532, "#setLengthStr($1, $2)", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_533, "($3) #setLengthSeqV2(&($1)->Sup, $4, $2)", 40);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_534, "($3) #setLengthSeqV2($1, $4, $2)", 32);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_535, "($1- $2)", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_536, "$1 |= ((", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_537, ")1)<<(($2)%(sizeof(", 19);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_538, ")*8));$n", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_539, "$1 &= ~(((", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_540, ")1) << (($2) % (sizeof(", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_541, ")*8)));$n", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_542, "#countBits32($1)", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_543, "#countBits64($1)", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_544, "(($1 & ~ $2 ==0)&&($1 != $2))", 29);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_545, "(($1 & ~ $2)==0)", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_546, "($1 & $2)", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_547, "($1 | $2)", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_548, "($1 & ~ $2)", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_549, "($1 ^ $2)", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_550, "$1 >= $2 && $1 <= $3", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_551, "$1 == $2", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_552, " || ", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_553, "(($1 &(1U<<((NU)($2)&7U)))!=0)", 30);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_554, "(($1 &(1U<<((NU)($2)&15U)))!=0)", 31);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_555, "(($1 &(1U<<((NU)($2)&31U)))!=0)", 31);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_556, "(($1 &((NU64)1<<((NU)($2)&63U)))!=0)", 36);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_557, "(($1[(NU)($2)>>3] &(1U<<((NU)($2)&7U)))!=0)", 43);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_558, "genSetOp()", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_559, "$1[(NU)($2)>>3] |=(1U<<($2&7U));$n", 34);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_560, "$1[(NU)($2)>>3] &= ~(1U<<($2&7U));$n", 36);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_561, "#cardSet($1, ", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_562, "for ($1 = 0; $1 < $2; $1++) { $n  $3 = (($4[$1] & ~ $5[$1]) == "
"0);$n  if (!$3) break;}$n", 88);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_563, "for ($1 = 0; $1 < $2; $1++) { $n  $3 = (($4[$1] & ~ $5[$1]) == "
"0);$n  if (!$3) break;}$nif ($3) $3 = (#nimCmpMem($4, $5, $2) !="
" 0);$n", 133);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_564, "|", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_565, "& ~", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_566, "^", 1);
NIM_CONST tyArray_UB9cgHz67WUhss0GO3n8oTw lookupOpr_w7WuexLq9cuXtAtqil9csnVQ = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_562),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_563),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_45),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_564),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_565),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_566)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_567, "(#nimCmpMem($1, $2, ", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_568, ")==0)", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_569, "for ($1 = 0; $1 < $2; $1++) $n  $3[$1] = $4[$1] $6 $5[$1];$n", 60);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_570, "genSetOp", 8);
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_MQdRN7fpbG7rPm4JpVVAhA_571 = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_304),
((NI) 1002),
((NI) 17)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_572, ", \"\"", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_573, ", Genode::Cstring($1->data, $1->len)", 36);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_574, "<base/log.h>", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_575, "<util/string.h>", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_576, "Genode::log(\"\"$1);$n", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_577, "#echoBinSafe(NIM_NIL, $1);$n", 28);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_578, "#echoBinSafe($1, $2);$n", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_579, "\'$1\' can only be used in compile-time context", 45);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_580, "#genericDeepCopy((void*)$1, (void*)$2, $3);$n", 45);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_581, "#genericSeqDeepCopy($1, $2, $3);$n", 34);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_582, "#genericDeepCopyOpenArray((void*)$1, (void*)$2, $1Len_0, $3);$n", 63);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_583, "genDeepCopy: ", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_584, "genMagicExpr: ", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_585, "static NIM_CONST $1 $2 = $3;$n", 30);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_586, "#nimZeroMem($1, sizeof($2));$n", 30);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_587, "for ($1 = $3; $1 <= $4; $1++) $n$2[(NU)($1)>>3] |=(1U<<((NU)($1"
")&7U));$n", 72);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_588, "$1[(NU)($2)>>3] |=(1U<<((NU)($2)&7U));$n", 40);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_589, "for ($1 = $3; $1 <= $4; $1++) $n$2 |=((", 39);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_590, ")(1)<<(($1)%(sizeof(", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_591, "$1 |=((", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_592, ")(1)<<(($2)%(sizeof(", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_593, "genCheckedRecordField", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_594, "genObjConstr", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_595, "if ($1) #raiseFieldError($2);$n", 31);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_596, "if (!($1)) #raiseFieldError($2);$n", 34);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_597, "LOC$1.source", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_598, "union { $1 source; $2 dest; } LOC$3;$n", 38);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_599, "LOC$#.dest", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_600, "if ((NU)($1) > (NU)($2)) #raiseIndexError();$n", 46);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_601, "if ($1 < $2 || $1 > $3) #raiseIndexError();$n", 45);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_602, "index out of bounds", 19);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_603, "$1[($2)- $3]", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_604, "if ((NU)($1) >= (NU)($2Len_0)) #raiseIndexError();$n", 52);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_605, "if ((NU)($1) > (NU)$2) #raiseIndexError();$n", 44);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_606, "if ((NU)($1) >= (NU)$2) #raiseIndexError();$n", 45);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_607, "genTupleElem", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_608, ".Field$1", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_609, "expr(nkBracketExpr, ", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_610, "genDeref ", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_611, "genRecordFieldAux", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_612, "genRecordField 3 ", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_613, ".$1", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_614, "} $1: ;$n", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_615, "FR_.len-=$1;$n", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_616, "FR_.len+=$1;$n", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_617, "FR", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_618, "TFrame $1;$n", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_619, "\011$1.procname = $2; $1.filename = $3;  $1.line = $4; $1.len = -1"
"; nimFrame(&$1);$n", 81);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_620, "\011#popFrameOfAddr(&$1);$n", 24);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_621, "if (!$1) goto $2;$n", 19);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_622, "goto $1;$n", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_623, "genIf()", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_624, "->Sup", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_625, "$1 = &$2;$n", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_626, "if ($1) #chckObj($2.m_type, $3);$n", 34);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_627, "#chckObj($1.m_type, $2);$n", 26);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_628, "(($1)#$5($2, $3, $4))", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_629, "chckRangeF", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_630, "chckRange64", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_631, "chckRange", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_632, "CNSTCLOSURE", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_633, "closure to closure created", 26);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_634, "$1.ClP_0 = $2; $1.ClE_0 = $3;$n", 31);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_635, "while (1) {$n", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_636, "case statement must be exhaustive for computed goto", 51);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_637, "case statement cannot work on enums with holes for computed got"
"o", 64);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_638, "case statement has too many cases for computed goto", 51);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_639, "case statement has to start at 0 for computed goto", 50);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_640, "no case statement found for computed goto", 41);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_641, "TMP$1_", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_642, "static void* $#[$#] = {", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_643, "&&TMP$#_, ", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_644, "&&TMP$#_};$n", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_645, "goto *$#[$#];$n", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_646, "range notation not available for computed goto", 46);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_647, "TMP$#_:$n", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_648, "#nimProfile();$n", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_649, "\'goto\' target must be a literal value", 37);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_650, "goto NIMSTATE_$#;$n", 19);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_651, "$1 = ($2*) #nimGetProcAddr($3, $4);$n", 37);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_652, "$2* $1;$n", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_653, "#dbgRegisterGlobal($1, &$2, $3);$n", 34);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_654, "#nimGCvisit((void*)$1, 0);$n", 28);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_655, "static N_NIMCALL(void, $1)(void)", 32);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_656, "#nimRegisterThreadLocalMarker($1);$n", 36);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_657, "#nimRegisterGlobalMarker($1);$n", 31);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_658, "$#;$n", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_659, "$#($#);$n", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_660, "$# = $#;$n", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_661, "genVarTuple", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_662, "for statement not eliminated", 28);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_663, "if (#eqStrings($1, $2)) goto $3;$n", 34);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_664, "switch (#hashString($1) & $2) {$n", 33);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_665, "case $1: $n$2break;$n", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_666, "goto LA$1_;$n", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_667, "LA$1_: ;$n", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_668, "if ($1 >= $2 && $1 <= $3) goto $4;$n", 36);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_669, "if ($1 == $2) goto $3;$n", 24);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_670, "NIMSTATE_$#:$n", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_671, "switch ($1) {$n", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_672, "default: __assume(0);$n", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_673, "#popSafePoint();$n", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_674, "#popCurrentException();$n", 25);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_675, "if ($1.status != 0) #popCurrentException();$n", 45);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_676, "goto BeforeRet_;$n", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_677, "/Users/andreasrumpf-mac/projects/build_nim_xz/build/Nim/compile"
"r/ccgstmts.nim(558, 13) `sym.loc.k == locOther` ", 111);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_678, "no loop to break", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_679, "extern $1", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_680, "#FieldDiscriminantCheck((NI)(NU)($1), (NI)(NU)($2), $3, $4);$n", 62);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_681, ";\012", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_682, "\"", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_683, "\\n\"\012", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_684, "try {$n", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_685, "catch (...) {$n", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_686, "\011TFrame* _nimCurFrame;$n", 24);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_687, "\011_nimCurFrame = #getFrame();$n", 30);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_688, "#setFrame(_nimCurFrame);$n", 26);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_689, "catch ($1& $2) {$n", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_690, "catch ($1&) {$n", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_691, "throw;$n", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_692, "<setjmp.h>", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_693, "Exception", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_694, "#TSafePoint $1;$n", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_695, "#pushSafePoint(&$1);$n", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_696, "nimStdSetjmp", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_697, "$1.status = setjmp($1.context);$n", 33);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_698, "nimSigSetjmp", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_699, "$1.status = sigsetjmp($1.context, 0);$n", 39);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_700, "nimRawSetjmp", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_701, "$1.status = _setjmp($1.context);$n", 34);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_702, "if ($1.status == 0) {$n", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_703, "else {$n", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_704, "else", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_705, "$1.status = 0;$n", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_706, "#isObj(#getCurrentException()->Sup.m_type, $1)", 46);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_707, "#isObj(#getCurrentException()->m_type, $1)", 42);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_708, "else ", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_709, "if ($1) {$n", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_710, "if ($1.status != 0) #reraiseException();$n", 42);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_711, "throw $1;$n", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_712, "#raiseException((#Exception*)$1, $2);$n", 39);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_713, "#reraiseException();$n", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_714, "/*TYPESECTION*/", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_715, "/*VARSECTION*/", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_716, "/*INCLUDESECTION*/", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_717, "bp", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_718, "#dbgRegisterBreakpoint($1, (NCSTRING)$2, (NCSTRING)$3);$n", 57);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_719, "#dbgRegisterWatchpoint($1, (NCSTRING)$2, $3);$n", 47);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_720, "#pragma omp parallel for $4$nfor ($1 = $2; $1 <= $3; ++$1)", 58);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_722, "ccgstmts.nim", 12);
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_MQdRN7fpbG7rPm4JpVVAhA_721 = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_722),
((NI) 152),
((NI) 17)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_723, "STATE$1: ;$n", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_724, "case -1:$n", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_725, " goto BeforeRet_;$n", 19);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_726, "STATE", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_727, "case $2: goto $1$2;$n", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_728, "(((NI*) $1)[1] < 0)", 19);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_729, "((((NI*) $1.ClE_0)[1]) < 0)", 27);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_730, "); unknown node kind", 20);
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_MQdRN7fpbG7rPm4JpVVAhA_731 = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_722),
((NI) 1162),
((NI) 17)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_732, "NimMainModule", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_733, "Init000", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_734, "DatInit000", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_735, "N_LIB_PRIVATE N_NIMCALL(void, $1)(void);$N", 42);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_736, "\011$1();$N", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_737, "N_CDECL(void, NimMainInner)(void) {$N$1}$N$NN_CDECL(void, NimMa"
"in)(void) {$N\011void (*volatile inner)(void);$N\011PreMain();$N\011inner"
" = NimMainInner;$N$2\011(*inner)();$N}$N$N", 166);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_738, "N_STDCALL(int, WinMain)(HINSTANCE hCurInstance, $N             "
"           HINSTANCE hPrevInstance, $N                        LP"
"STR lpCmdLine, int nCmdShow) {$N\011NimMain();$N\011return nim_program"
"_result;$N}$N$N", 206);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_739, "N_CDECL(void, NimMainInner)(void) {$N$1}$N$NN_LIB_EXPORT N_CDEC"
"L(void, NimMain)(void) {$N\011void (*volatile inner)(void);$N\011PreMa"
"in();$N\011inner = NimMainInner;$N$2\011(*inner)();$N}$N$N", 179);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_740, "BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fwdreason, $N    "
"                LPVOID lpvReserved) {$N\011if(fwdreason == DLL_PROC"
"ESS_ATTACH) {$N\011NimMain();$N}$N\011return 1;$N}$N$N", 175);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_741, "<windows.h>", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_742, "extern Genode::Env *nim_runtime_env;$Nextern void nim_component"
"_construct(Genode::Env*);$N$NN_CDECL(void, NimMainInner)(void) {"
"$N$1}$N$NN_CDECL(void, NimMain)(void) {$N\011void (*volatile inner)"
"(void);$N\011PreMain();$N\011inner = NimMainInner;$N$2\011(*inner)();$N}$"
"N$N", 258);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_743, "void Libc::Component::construct(Libc::Env &env) {$N\011// Set Env "
"used during runtime initialization$N\011nim_runtime_env = &env;$N\011L"
"ibc::with_libc([&] () {$N\011\011// Initialize runtime and globals$N\011N"
"imMain();$N\011// Call application construct$N\011\011nim_component_const"
"ruct(&env);$N\011});$N}$N$N", 279);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_744, "<libc/component.h>", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_745, "void NIM_POSIX_INIT NimMainInit(void) {$N\011NimMain();$N}$N$N", 59);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_746, "int cmdCount;$Nchar** cmdLine;$Nchar** gEnv;$NN_CDECL(void, Nim"
"MainInner)(void) {$N$1}$N$NN_CDECL(void, NimMain)(void) {$N\011void"
" (*volatile inner)(void);$N\011PreMain();$N\011inner = NimMainInner;$N"
"$2\011(*inner)();$N}$N$N", 212);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_747, "int main(void) {$N\011NimMain();$N\011return 0;$N}$N$N", 48);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_748, "int main(int argc, char** args, char** env) {$N\011cmdLine = args;"
"$N\011cmdCount = argc;$N\011gEnv = env;$N\011NimMain();$N\011return nim_prog"
"ram_result;$N}$N$N", 145);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_749, "dbgRegisterBreakpoint", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_750, "dbgRegisterFilename", 19);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_751, "dbgRegisterFilename($1);$N", 26);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_752, "\011#initStackBottomWith((void *)&inner);$N", 40);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_753, "void PreMainInner(void) {$N\011systemInit000();$N$1$2$3}$N$Nvoid P"
"reMain(void) {$N\011void (*volatile inner)(void);$N\011systemDatInit00"
"0();$N\011inner = PreMainInner;$N$4$5\011(*inner)();$N}$N$N", 180);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_754, "\011#initThreadVarsEmulation();$N", 30);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_755, "}\012", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_756, "using namespace ", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_757, "namespace ", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_758, " {\012", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_759, "still forwarded: ", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_760, ".cpp", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_761, ".m", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_762, ".c", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_763, "N_LIB_PRIVATE N_NIMCALL(void, $1)(void) {$N", 43);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_764, "static #TNimNode $1[$2];$n", 26);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_765, "static #TNimType $1[$2];$n", 26);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_766, "{$N", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_767, "\011TFrame FR_; FR_.len = 0;$N", 27);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_768, "}$N$N", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_769, "NIM_EXTERNC N_NIMCALL(void, nimLoadProcs$1)(void) {$2}$N$N", 58);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_770, "$#NI NimThreadVarsSize(){return (NI)sizeof(NimThreadVars);}$n", 61);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_771, "/* Generated by Nim Compiler v$1 */$N/*   (c) 2018 Andreas Rump"
"f */$N/* The generated code is subject to the original license. "
"*/$N", 131);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_772, "0.19.0", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_773, "/* Generated by Nim Compiler v$1 */$N/*   (c) 2018 Andreas Rump"
"f */$N/* The generated code is subject to the original license. "
"*/$N/* Compiled for: $2, $3, $4 */$N/* Command for C compiler:$n"
"   $5 */$N", 201);
extern NIM_CONST tyArray_AvOd9bOqQkvZ6R9aJoQwnnEg OS_Jx0qy9c9bSo4fGkMxUfUaAaw;
extern NIM_CONST tyArray_2EeRc2Lr9cCM9aL82QsBOFXA CPU_uYXopJX8pM87pQDCtmgWfQ;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_774, "#define NIM_NEW_MANGLING_RULES\012#define NIM_INTBITS $1\012", 54);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_775, "#define USE_NIM_NAMESPACE ", 26);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_776, "typedef struct {$1} NimThreadVars;$n", 36);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_777, "\012#include \"nimbase.h\"\012", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_778, "#include \"$1\"$N", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_779, "#include $1$N", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_780, "#undef LANGUAGE_C\012", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_781, "#undef MIPSEB\012", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_782, "#undef MIPSEL\012", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_783, "#undef PPC\012", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_784, "#undef R3000\012", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_785, "#undef R4000\012", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_786, "#undef i386\012", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_787, "#undef linux\012", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_788, "#undef mips\012", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_789, "#undef near\012", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_790, "#undef far\012", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_791, "#undef powerpc\012", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_792, "#undef unix\012", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_793, "nimdiff", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_794, ".backup", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_795, "diff ", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_796, ".backup ", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_797, "new file ", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_798, "/* Generated by Nim Compiler v$1 */$N/*   (c) 2017 Andreas Rump"
"f */$N/* The generated code is subject to the original license. "
"*/$N", 131);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_799, "__$1__", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_800, "#ifndef $1$n#define $1$n", 24);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_801, "N_CDECL(void, NimMain)(void);$n", 31);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_802, "#endif /* $1 */$n", 17);

static N_INLINE(void, incRef_9cAA5YuQAAC3MVbnGeV86swsystem)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c) {
	(*c).refcount = (NI)((NU64)((*c).refcount) + (NU64)(((NI) 8)));
}

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

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

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

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_yB9aH5WIlwd0xkYrcdPeXrQsystem(src);
		incRef_9cAA5YuQAAC3MVbnGeV86swsystem(T5_);
	}
	LA3_: ;
	{
		tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* T10_;
		if (!!(((*dest) == NIM_NIL))) goto LA8_;
		T10_ = (tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T10_ = usrToCell_yB9aH5WIlwd0xkYrcdPeXrQsystem((*dest));
		decRef_MV4BBk6J1qu70IbBxwEn4wsystem(T10_);
	}
	LA8_: ;
	(*dest) = src;
}

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_E1xtACub5WcDa3vbrIXbwgsystem)(void* dest, void* source, NI size) {
	nimCopyMem(dest, source, size);
}

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

static N_INLINE(void, nimSetMem_cNwQQ4PlSJsZSwvoN5Uafwsystem)(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_cNwQQ4PlSJsZSwvoN5Uafwsystem(p, ((int) 0), size);
}

static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src) {
	{
		tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c;
		if (!!((src == NIM_NIL))) goto LA3_;
		c = usrToCell_yB9aH5WIlwd0xkYrcdPeXrQsystem(src);
		(*c).refcount += ((NI) 8);
	}
	LA3_: ;
	{
		tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c_2;
		if (!!(((*dest) == NIM_NIL))) goto LA7_;
		c_2 = usrToCell_yB9aH5WIlwd0xkYrcdPeXrQsystem((*dest));
		{
			(*c_2).refcount -= ((NI) 8);
			if (!((NU64)((*c_2).refcount) < (NU64)(((NI) 8)))) goto LA11_;
			rtlAddZCT_MV4BBk6J1qu70IbBxwEn4w_2system(c_2);
		}
		LA11_: ;
	}
	LA7_: ;
	(*dest) = src;
}

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

N_LIB_PRIVATE N_NIMCALL(tySet_tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg, initProcOptions_oPbEKB4n1AIYrfJ09cINXQw)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m) {
	tySet_tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg result;
	tySet_tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg opts;
	nimZeroMem((void*)(&result), sizeof(tySet_tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg));
	opts = (*(*(*m).g).config).options;
	{
		if (!(((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 13))&63U)))!=0)) goto LA3_;
		result = (opts & ~ 65536);
	}
	goto LA1_;
	LA3_: ;
	{
		result = opts;
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q*, newPreInitProc_fH9clnQAzlIEiCXKQCLsujg)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m) {
	tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* result;
	result = (tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q*)0;
	result = newProc_STnnVeEn5Wp52dw0JRN7ZQ(NIM_NIL, m);
	(*result).labels = ((NI) 100000);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getTempName_9cFzUT5Cyfi5u0F447WwLvA)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T1_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*m).labels)));
	result = amp__mFDAEkd1kysB0V9aBd20A9aA((*m).tmpBase, T1_);
	(*m).labels += ((NI) 1);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A*, rawNewModule_FF5K3i0mzwXR49c6UxAkeAg)(tyObject_BModuleListcolonObjectType__CpP4eJLbv5ZwofQXpESuGA* g, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* module, NimStringDesc* filename) {
	tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* result;
	NimStringDesc* T1_;
	tyArray_qtqsWM5aXmcpMIVmvq3kAA T2_;
	NimStringDesc* T3_;
	NimStringDesc* T4_;
	NimStringDesc* T5_;
	NimStringDesc* ndiName;
	result = (tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A*)0;
	result = (tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A*) newObj((&NTI_ztEqGk06sijSuO4Rugv3vA_), sizeof(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A));
	(*result).Sup.Sup.m_type = (&NTI_Y9bjLcB6gcGcdtqht0fRR0A_);
	asgnRef((void**) (&(*result).g), g);
	T1_ = (NimStringDesc*)0;
	nimZeroMem((void*)T2_, sizeof(tyArray_qtqsWM5aXmcpMIVmvq3kAA));
	hashOwner_pju1tWFK9aIojovglLk8zMQ(module, T2_);
	T3_ = (NimStringDesc*)0;
	T3_ = dollar__cjda4doS9ccFOjsWsGu9aa2A(T2_);
	T1_ = rawNewString((T3_ ? T3_->Sup.len : 0) + 3);
appendString(T1_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_2));
appendString(T1_, T3_);
appendString(T1_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_3));
	asgnRefNoCycle((void**) (&(*result).tmpBase), rope_yShmEg9cffWxI7s5XzEKBow(T1_));
	if ((*result).headerFiles) { nimGCunrefNoCycle((*result).headerFiles); (*result).headerFiles = NIM_NIL; }
	initIntSet_a9a80eJplB17xrdZJ41Baww((&(*result).declaredThings));
	initIntSet_a9a80eJplB17xrdZJ41Baww((&(*result).declaredProtos));
	T4_ = (NimStringDesc*)0;
	T4_ = (*result).cfilename; (*result).cfilename = copyStringRC1(filename);
	if (T4_) nimGCunrefNoCycle(T4_);
	T5_ = (NimStringDesc*)0;
	T5_ = (*result).filename; (*result).filename = copyStringRC1(filename);
	if (T5_) nimGCunrefNoCycle(T5_);
	initTable_F9bgUDy3IzRyq5PzkIxwTBw(((NI) 64), (&(*result).typeCache));
	initTable_F9bgUDy3IzRyq5PzkIxwTBw(((NI) 64), (&(*result).forwTypeCache));
	asgnRefNoCycle((void**) (&(*result).module), module);
	initTable_F9bgUDy3IzRyq5PzkIxwTBw(((NI) 64), (&(*result).typeInfoMarker));
	initCountTable_l0wwSfs7C3wjWsJaXnDAUA(((NI) 64), (&(*result).sigConflicts));
	asgnRef((void**) (&(*result).initProc), newProc_STnnVeEn5Wp52dw0JRN7ZQ(NIM_NIL, result));
	(*(*result).initProc).options = initProcOptions_oPbEKB4n1AIYrfJ09cINXQw(result);
	asgnRef((void**) (&(*result).preInitProc), newPreInitProc_fH9clnQAzlIEiCXKQCLsujg(result));
	initNodeTable_68xlHiM6I8zJts5pWolVFA((&(*result).dataCache));
	if ((*result).typeStack) { nimGCunrefNoCycle((*result).typeStack); (*result).typeStack = NIM_NIL; }
	if ((*result).forwardedProcs) { nimGCunrefNoCycle((*result).forwardedProcs); (*result).forwardedProcs = NIM_NIL; }
	asgnRefNoCycle((void**) (&(*result).typeNodesName), getTempName_9cFzUT5Cyfi5u0F447WwLvA(result));
	asgnRefNoCycle((void**) (&(*result).nimTypesName), getTempName_9cFzUT5Cyfi5u0F447WwLvA(result));
	{
		if (!(((*module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 13))&63U)))!=0)) goto LA8_;
		(*result).flags |= ((NU8)1)<<((((tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q) 0))%(sizeof(NU8)*8));
		(*(*result).preInitProc).options &= ~(((NU32)1) << ((((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 16)) % (sizeof(NU32)*8)));
	}
	LA8_: ;
	{
		NimStringDesc* T14_;
		if (!(((*(*g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 6))&63U)))!=0)) goto LA12_;
		T14_ = (NimStringDesc*)0;
		T14_ = completeCFilePath_nUeinU41FdF8oB8ZXMTOhQ((*g).config, filename, NIM_TRUE);
		ndiName = noschangeFileExt(T14_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_4));
	}
	goto LA10_;
	LA12_: ;
	{
		ndiName = ((NimStringDesc*) NIM_NIL);
	}
	LA10_: ;
	open_GNEwoV8jLCCl7XepddT18w((&(*result).ndi), ndiName, (*g).config);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A*, rawNewModule_X79aV9chPYz7g9c9axf8JJQKVQ_2)(tyObject_BModuleListcolonObjectType__CpP4eJLbv5ZwofQXpESuGA* g, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* module, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf) {
	tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* result;
	NimStringDesc* T1_;
	result = (tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A*)0;
	T1_ = (NimStringDesc*)0;
	T1_ = toFullPath_tdNdBP9cVqODPZCeXYb1GvA(conf, ((NI32) ((*module).position)));
	result = rawNewModule_FF5K3i0mzwXR49c6UxAkeAg(g, module, T1_);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A*, newModule_X79aV9chPYz7g9c9axf8JJQKVQ)(tyObject_BModuleListcolonObjectType__CpP4eJLbv5ZwofQXpESuGA* g, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* module, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf) {
	tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* result;
	result = (tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A*)0;
	result = rawNewModule_X79aV9chPYz7g9c9axf8JJQKVQ_2(g, module, conf);
	{
		NI T3_;
		T3_ = ((*g).modules ? (*g).modules->Sup.len : 0);
		if (!(T3_ <= (*module).position)) goto LA4_;
		asgnRef((void**) (&(*g).modules), (tySequence_eW29aEKsgOrJUkJmVmw30lg*) setLengthSeqV2(&((*g).modules)->Sup, (&NTI_eW29aEKsgOrJUkJmVmw30lg_), ((NI) ((NI)((*module).position + ((NI) 1))))));
	}
	LA4_: ;
	asgnRef((void**) (&(*g).modules->data[(*module).position]), result);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TPassContext_ZmGcnZ1NlGbjfV1h4uuYdw*, myOpen_jjFhIDULvAqWOEobRIhLoQ)(tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* module) {
	tyObject_TPassContext_ZmGcnZ1NlGbjfV1h4uuYdw* result;
	tyObject_BModuleListcolonObjectType__CpP4eJLbv5ZwofQXpESuGA* g;
	tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* T6_;
	result = (tyObject_TPassContext_ZmGcnZ1NlGbjfV1h4uuYdw*)0;
	{
		tyObject_BModuleListcolonObjectType__CpP4eJLbv5ZwofQXpESuGA* T5_;
		if (!((*graph).backend == NIM_NIL)) goto LA3_;
		T5_ = (tyObject_BModuleListcolonObjectType__CpP4eJLbv5ZwofQXpESuGA*)0;
		T5_ = newModuleList_Y5BdU79bqQ1Bh4hbCosx09cA(graph);
		asgnRef((void**) (&(*graph).backend), &T5_->Sup);
	}
	LA3_: ;
	g = ((tyObject_BModuleListcolonObjectType__CpP4eJLbv5ZwofQXpESuGA*) ((*graph).backend));
	T6_ = (tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A*)0;
	T6_ = newModule_X79aV9chPYz7g9c9axf8JJQKVQ(g, module, (*graph).config);
	result = &T6_->Sup;
	{
		NIM_BOOL T9_;
		NimStringDesc* f;
		NimStringDesc* T18_;
		NimStringDesc* T19_;
		T9_ = (NIM_BOOL)0;
		T9_ = (((*(*graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 25))&63U)))!=0);
		if (!(T9_)) goto LA10_;
		T9_ = ((*g).generatedHeader == NIM_NIL);
		LA10_: ;
		if (!T9_) goto LA11_;
		{
			if (!(((NI) 0) < ((*(*graph).config).headerFile ? (*(*graph).config).headerFile->Sup.len : 0))) goto LA15_;
			f = (*(*graph).config).headerFile;
		}
		goto LA13_;
		LA15_: ;
		{
			f = (*(*graph).config).projectFull;
		}
		LA13_: ;
		T18_ = (NimStringDesc*)0;
		T18_ = completeCFilePath_nUeinU41FdF8oB8ZXMTOhQ((*graph).config, f, NIM_TRUE);
		T19_ = (NimStringDesc*)0;
		T19_ = noschangeFileExt(T18_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_5));
		asgnRef((void**) (&(*g).generatedHeader), rawNewModule_FF5K3i0mzwXR49c6UxAkeAg(g, module, T19_));
		(*(*g).generatedHeader).flags |= ((NU8)1)<<((((tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q) 3))%(sizeof(NU8)*8));
	}
	LA11_: ;
	return result;
}

static N_INLINE(NIM_BOOL, skipCodegen_A72PL1PX0Fg9cwfX3uIOVUAcgen)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = (((NI) 0) < (*config).errorCounter);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, fillLoc_US6BUWbxbS9bTHtpMCqKFkw)(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a, tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg k, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* lode, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r, tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw s) {
	{
		if (!((*a).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA3_;
		(*a).k = k;
		unsureAsgnRef((void**) (&(*a).lode), lode);
		(*a).storage = s;
		{
			if (!((*a).r == NIM_NIL)) goto LA7_;
			unsureAsgnRef((void**) (&(*a).r), r);
		}
		LA7_: ;
	}
	LA3_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, mangleName_lo8D59ciMfLVeiUtGYx89bOg)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	result = (*s).loc.r;
	{
		NimStringDesc* T5_;
		NimStringDesc* T6_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T7_;
		if (!(result == NIM_NIL)) goto LA3_;
		T5_ = (NimStringDesc*)0;
		T5_ = mangle_0ctHksTXSPyaxjBOgK4TiA((*(*s).name).s);
		result = rope_yShmEg9cffWxI7s5XzEKBow(T5_);
		T6_ = (NimStringDesc*)0;
		T6_ = mangle_0ctHksTXSPyaxjBOgK4TiA((*(*(*m).module).name).s);
		T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T7_ = idOrSig_m9ce9cPk9cZQsWLc0DxveJj0g(s, T6_, (&(*m).sigConflicts));
		add_iMTw0CDaruwETLGb9bhpBLg(&result, T7_);
		asgnRefNoCycle((void**) (&(*s).loc.r), result);
		{
			if (!(*m).ndi.enabled) goto LA10_;
			doWrite_aAmUxeQnfkTtpV5YOU4LEQ((&(*m).ndi), s, (*(*m).g).config);
		}
		LA10_: ;
	}
	LA3_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, fillProcLoc_60cAEEW2jYgQLzNzmWrfPg)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym;
	sym = (*n)._Ukind.S4.sym;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T5_;
		if (!((*sym).loc.k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA3_;
		T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T5_ = mangleName_lo8D59ciMfLVeiUtGYx89bOg(m, sym);
		fillLoc_US6BUWbxbS9bTHtpMCqKFkw((&(*sym).loc), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 7), n, T5_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 2));
	}
	LA3_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, useHeader_Ckp4X4sj45vdj9bafLr5LQw)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym) {
	{
		NimStringDesc* str;
		if (!(((*sym).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 6))&15U)))!=0)) goto LA3_;
		str = getStr_Zk78ps1ie3XE3N7AlzjwWw((*(*sym).annex).path);
		includeHeader_uTF5360OavCefWH39cfa58w(m, str);
	}
	LA3_: ;
}

static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c) {
	(*dest).data[((*dest).Sup.len)- 0] = c;
	(*dest).data[((NI)((*dest).Sup.len + ((NI) 1)))- 0] = 0;
	(*dest).Sup.len += ((NI) 1);
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isActivated_7VrUPkxnaFwgUwnPlsQOpQ)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = !(((*prc).typ == NIM_NIL));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, addForwardedProc_vPJ79bcd36cmxny2xgz8A0Q)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc) {
	NI T1_;
	asgnRefNoCycle((void**) (&(*m).forwardedProcs), (tySequence_DfgJFJEYoj4YBAHLZPl5lQ*) incrSeqV3(&((*m).forwardedProcs)->Sup, (&NTI_DfgJFJEYoj4YBAHLZPl5lQ_)));
	T1_ = (*m).forwardedProcs->Sup.len++;
	asgnRefNoCycle((void**) (&(*m).forwardedProcs->data[T1_]), prc);
	(*(*m).g).forwardedProcsCounter += ((NI) 1);
}

N_LIB_PRIVATE N_NIMCALL(void, genCLineDir_W2V1U5l2z2M9c2i5Phjz9cow)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** r, NimStringDesc* filename, NI line, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf) {
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T5_;
		NimStringDesc* T6_;
		if (!(((*conf).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0)) goto LA3_;
		nimZeroMem((void*)T5_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T6_ = (NimStringDesc*)0;
		T6_ = makeSingleLineCString_59a1Z83zpqnyWoTdIAQEfHQ(filename);
		T5_[0] = rope_yShmEg9cffWxI7s5XzEKBow(T6_);
		T5_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (line)));
		addf_ocEHZ9cujtqicXvDuJUm5pg(r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9), T5_, 2);
	}
	LA3_: ;
}

static N_INLINE(NI, toLinenumber_xCTdxEFc5VM0Lp6fDoJKSwastalgo)(tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info) {
	NI result;
	result = (NI)0;
	result = ((NI) (info.line));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NI, safeLineNm_AUJlxUa66q5UCd0nnZJX7Q)(tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info) {
	NI result;
	result = (NI)0;
	result = toLinenumber_xCTdxEFc5VM0Lp6fDoJKSwastalgo(info);
	{
		if (!(result < ((NI) 0))) goto LA3_;
		result = ((NI) 0);
	}
	LA3_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genCLineDir_8gOq38UiI9arVxZ9at35m22Q)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** r, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf) {
	NimStringDesc* T1_;
	NI T2_;
	T1_ = (NimStringDesc*)0;
	T1_ = toFullPath_tdNdBP9cVqODPZCeXYb1GvA(conf, info.fileIndex);
	T2_ = (NI)0;
	T2_ = safeLineNm_AUJlxUa66q5UCd0nnZJX7Q(info);
	genCLineDir_W2V1U5l2z2M9c2i5Phjz9cow(r, T1_, T2_, conf);
}

N_LIB_PRIVATE N_NIMCALL(tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w, mapSetType_K9aceyVl15zb9aYN9b6YJ8TnA_2)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w result;
	NI64 T1_;
	result = (tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w)0;
	T1_ = (NI64)0;
	T1_ = getSize_vCG1GF2Iu043oALVyuJfOw(conf, typ);
	switch (((NI) (T1_))) {
	case ((NI) 1):
	{
		result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 4);
	}
	break;
	case ((NI) 2):
	{
		result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 5);
	}
	break;
	case ((NI) 4):
	{
		result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 6);
	}
	break;
	case ((NI) 8):
	{
		result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 7);
	}
	break;
	default:
	{
		result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 17);
	}
	break;
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w, mapType_K9aceyVl15zb9aYN9b6YJ8TnA)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w result;
{	result = (tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w)0;
	switch ((*typ).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 0):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 7):
	{
		result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 0);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 1):
	{
		result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 2);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2):
	{
		result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 1);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 19):
	{
		result = mapSetType_K9aceyVl15zb9aYN9b6YJ8TnA_2(conf, typ);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48):
	{
		result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 17);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 19);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 52) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 53):
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T12_;
		{
			if (!!((((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 10))&63U)))!=0))) goto LA10_;
			failedAssertImpl_aDmpBTs9cPuXp0Mp9cfiNeyA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_14));
		}
		LA10_: ;
		T12_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T12_ = lastSon_ab52xel9cFebv9am0xV04xXA(typ);
		result = mapType_K9aceyVl15zb9aYN9b6YJ8TnA(conf, T12_);
		goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 10):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 11):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 12):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 13):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 15):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 8):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 4):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 46):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 55):
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T14_;
		T14_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T14_ = lastSon_ab52xel9cFebv9am0xV04xXA(typ);
		result = mapType_K9aceyVl15zb9aYN9b6YJ8TnA(conf, T14_);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 14):
	{
		{
			NI64 T18_;
			T18_ = (NI64)0;
			T18_ = firstOrd_4cSIntenL9aBXY6LAFsvXdQ(conf, typ);
			if (!(T18_ < IL64(0))) goto LA19_;
			result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 6);
		}
		goto LA16_;
		LA19_: ;
		{
			NI64 T22_;
			T22_ = (NI64)0;
			T22_ = getSize_vCG1GF2Iu043oALVyuJfOw(conf, typ);
			switch (((NI) (T22_))) {
			case ((NI) 1):
			{
				result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 13);
			}
			break;
			case ((NI) 2):
			{
				result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 14);
			}
			break;
			case ((NI) 4):
			{
				result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 6);
			}
			break;
			case ((NI) 8):
			{
				result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 7);
			}
			break;
			default:
			{
				result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 6);
			}
			break;
			}
		}
		LA16_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 20):
	{
		result = mapType_K9aceyVl15zb9aYN9b6YJ8TnA(conf, (*typ).sons->data[((NI) 0)]);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 47):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 45):
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* base;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T30_;
		T30_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T30_ = lastSon_ab52xel9cFebv9am0xV04xXA(typ);
		base = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(T30_, IL64(36099165763184912));
		switch ((*base).kind) {
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48):
		{
			result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 18);
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 19):
		{
			{
				tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w T35_;
				T35_ = (tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w)0;
				T35_ = mapSetType_K9aceyVl15zb9aYN9b6YJ8TnA_2(conf, base);
				if (!(T35_ == ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 17))) goto LA36_;
				result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 18);
			}
			goto LA33_;
			LA36_: ;
			{
				result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 20);
			}
			LA33_: ;
		}
		break;
		default:
		{
			result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 20);
		}
		break;
		}
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 26):
	{
		result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 20);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
	{
		result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 22);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25):
	{
		{
			if (!!(((*typ).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8)))) goto LA45_;
			result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 23);
		}
		goto LA43_;
		LA45_: ;
		{
			result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 19);
		}
		LA43_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
	{
		result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 21);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 29):
	{
		result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 24);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44):
	{
		result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) ((NI)((NI)((*typ).kind - ((NI) 31)) + ((NI) 3))));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 60):
	{
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T56_;
			if (!!(((*typ).n == NIM_NIL))) goto LA54_;
			T56_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T56_ = lastSon_ab52xel9cFebv9am0xV04xXA(typ);
			result = mapType_K9aceyVl15zb9aYN9b6YJ8TnA(conf, T56_);
		}
		goto LA52_;
		LA54_: ;
		{
			{
				if (!NIM_TRUE) goto LA60_;
				failedAssertImpl_aDmpBTs9cPuXp0Mp9cfiNeyA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_15));
			}
			LA60_: ;
		}
		LA52_: ;
	}
	break;
	default:
	{
		{
			if (!NIM_TRUE) goto LA65_;
			failedAssertImpl_aDmpBTs9cPuXp0Mp9cfiNeyA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_16));
		}
		LA65_: ;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isImportedCppType_UCeqXNU9bJdSIbOIWbb0zng)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	NIM_BOOL result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* x;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	NIM_BOOL T5_;
	result = (NIM_BOOL)0;
	x = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(t, IL64(1189020670371048976));
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = !(((*t).sym == NIM_NIL));
	if (!(T2_)) goto LA3_;
	T2_ = (((*(*t).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
	LA3_: ;
	T1_ = T2_;
	if (T1_) goto LA4_;
	T5_ = (NIM_BOOL)0;
	T5_ = !(((*x).sym == NIM_NIL));
	if (!(T5_)) goto LA6_;
	T5_ = (((*(*x).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
	LA6_: ;
	T1_ = T5_;
	LA4_: ;
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, needsComplexAssignment_y9bTRtTAknVsv9apXKbpJYJA)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = containsGarbageCollectedRef_IVXYI9cxSeivThgKCncHRnA(typ);
	return result;
}

static N_INLINE(NIM_BOOL, isObjLackingTypeField_JIeDKK3bgEYJKEAkiaujRgcgen)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	NIM_BOOL T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17));
	if (!(T1_)) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T4_ = (NIM_BOOL)0;
	T4_ = (((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 2))&63U)))!=0);
	if (!(T4_)) goto LA5_;
	T4_ = ((*typ).sons->data[((NI) 0)] == NIM_NIL);
	LA5_: ;
	T3_ = T4_;
	if (T3_) goto LA6_;
	T3_ = isPureObject_bwBXbs1CQh0Ny8q6JR9aFMA(typ);
	LA6_: ;
	T1_ = T3_;
	LA2_: ;
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isInvalidReturnType_ugBeCbo3I6LqXHcpCBFN9ag)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* rettype) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		if (!(rettype == NIM_NIL)) goto LA3_;
		result = NIM_TRUE;
	}
	goto LA1_;
	LA3_: ;
	{
		tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w T6_;
		T6_ = (tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w)0;
		T6_ = mapType_K9aceyVl15zb9aYN9b6YJ8TnA(conf, rettype);
		switch (T6_) {
		case ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 17):
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T8_;
			T8_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T8_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(rettype, IL64(36099165763184912));
			result = !(((IL64(140737503035392) &((NU64)1<<((NU)((*T8_).kind)&63U)))!=0));
		}
		break;
		case ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 19):
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
			NIM_BOOL T16_;
			NIM_BOOL T18_;
			NIM_BOOL T20_;
			t = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(rettype, IL64(36099165763184912));
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = isImportedCppType_UCeqXNU9bJdSIbOIWbb0zng(rettype);
				if (T12_) goto LA13_;
				T12_ = isImportedCppType_UCeqXNU9bJdSIbOIWbb0zng(t);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = NIM_FALSE;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = (NIM_BOOL)0;
			T16_ = needsComplexAssignment_y9bTRtTAknVsv9apXKbpJYJA(t);
			if (T16_) goto LA17_;
			T18_ = (NIM_BOOL)0;
			T18_ = ((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17));
			if (!(T18_)) goto LA19_;
			T20_ = (NIM_BOOL)0;
			T20_ = isObjLackingTypeField_JIeDKK3bgEYJKEAkiaujRgcgen(t);
			T18_ = !(T20_);
			LA19_: ;
			T16_ = T18_;
			LA17_: ;
			result = T16_;
		}
		break;
		default:
		{
			result = NIM_FALSE;
		}
		break;
		}
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, typeNameOrLiteral_Bur7Hkt9cd7Q3JXz87Z2t6Q)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, NimStringDesc* literal) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = !(((*t).sym == NIM_NIL));
		if (!(T4_)) goto LA5_;
		T4_ = (((*(*t).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 5))&63U)))!=0);
		LA5_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA6_;
		T3_ = ((*(*t).sym).magic == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 0));
		LA6_: ;
		if (!T3_) goto LA7_;
		result = (*(*t).sym).loc.r;
	}
	goto LA1_;
	LA7_: ;
	{
		result = rope_yShmEg9cffWxI7s5XzEKBow(literal);
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NI, detectStrVersion_ZhBx9ci102xAHSOpksGzT6g)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m) {
	NI result;
	result = (NI)0;
	{
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* core;
		if (!((*(*m).g).strVersion == ((NI) 0))) goto LA3_;
		core = getCompilerProc_Z9bI8j6Vv57IyOO09a8fpp3g((*(*m).g).graph, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		{
			NIM_BOOL T7_;
			T7_ = (NIM_BOOL)0;
			T7_ = (core == NIM_NIL);
			if (T7_) goto LA8_;
			T7_ = !(((*core).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 10)));
			LA8_: ;
			if (!T7_) goto LA9_;
			(*(*m).g).strVersion = ((NI) 1);
		}
		goto LA5_;
		LA9_: ;
		{
			NI64 T12_;
			T12_ = (NI64)0;
			T12_ = getInt_asVzx7Ey1eetKeO2f0L06A((*core).ast);
			(*(*m).g).strVersion = ((NI) (T12_));
		}
		LA5_: ;
	}
	LA3_: ;
	result = (*(*m).g).strVersion;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isImportedType_UCeqXNU9bJdSIbOIWbb0zng_2)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = !(((*t).sym == NIM_NIL));
	if (!(T1_)) goto LA2_;
	T1_ = (((*(*t).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 5))&63U)))!=0);
	LA2_: ;
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, cacheGetType_68rAJ2TnRtuRwChs7t9bVaw)(tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA tab, tyArray_qtqsWM5aXmcpMIVmvq3kAA sig) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	result = getOrDefault_c1gzIMAwos9ckDh22FJ9cJ4w(tab, sig);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, addAbiCheck_7WadOv2RgjtFVzQMS1aluQ)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name) {
	{
		NIM_BOOL T3_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T6_;
		NI64 T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = isDefined_TeEHxEj0zXnJc9aUarshH9aA((*(*m).g).config, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_43));
		if (!T3_) goto LA4_;
		nimZeroMem((void*)T6_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T6_[0] = name;
		T7_ = (NI64)0;
		T7_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*m).g).config, t);
		T6_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(T7_);
		addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 6))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_44), T6_, 2);
	}
	LA4_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getSimpleTypeDesc_TttItRxQT67RCnbQdIsyRQ)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	switch ((*typ).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 26):
	{
		result = typeNameOrLiteral_Bur7Hkt9cd7Q3JXz87Z2t6Q(m, typ, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_19));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = detectStrVersion_ZhBx9ci102xAHSOpksGzT6g(m);
		switch (T3_) {
		case ((NI) 2):
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T5_;
			T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T5_ = cgsym_0d9bDo5R2p09cv1ljqpC4l8Q(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_21));
			T5_;
			result = typeNameOrLiteral_Bur7Hkt9cd7Q3JXz87Z2t6Q(m, typ, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		break;
		default:
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T7_;
			T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T7_ = cgsym_0d9bDo5R2p09cv1ljqpC4l8Q(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_22));
			T7_;
			result = typeNameOrLiteral_Bur7Hkt9cd7Q3JXz87Z2t6Q(m, typ, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_23));
		}
		break;
		}
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 29):
	{
		result = typeNameOrLiteral_Bur7Hkt9cd7Q3JXz87Z2t6Q(m, typ, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_24));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 1):
	{
		result = typeNameOrLiteral_Bur7Hkt9cd7Q3JXz87Z2t6Q(m, typ, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_25));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2):
	{
		result = typeNameOrLiteral_Bur7Hkt9cd7Q3JXz87Z2t6Q(m, typ, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_26));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 5):
	{
		result = typeNameOrLiteral_Bur7Hkt9cd7Q3JXz87Z2t6Q(m, typ, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44):
	{
		result = typeNameOrLiteral_Bur7Hkt9cd7Q3JXz87Z2t6Q(m, typ, NumericalTypeToStr_do7KqFuyalEFiD7s8tBisg[((*typ).kind)- 31]);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 13):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 20):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 15):
	{
		result = getSimpleTypeDesc_TttItRxQT67RCnbQdIsyRQ(m, (*typ).sons->data[((NI) 0)]);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 60):
	{
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T19_;
			if (!!(((*typ).n == NIM_NIL))) goto LA17_;
			T19_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T19_ = lastSon_ab52xel9cFebv9am0xV04xXA(typ);
			result = getSimpleTypeDesc_TttItRxQT67RCnbQdIsyRQ(m, T19_);
		}
		goto LA15_;
		LA17_: ;
		{
			internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_42));
		}
		LA15_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 11):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 4):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 46):
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T22_;
		T22_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T22_ = lastSon_ab52xel9cFebv9am0xV04xXA(typ);
		result = getSimpleTypeDesc_TttItRxQT67RCnbQdIsyRQ(m, T22_);
	}
	break;
	default:
	{
		result = NIM_NIL;
	}
	break;
	}
	{
		NIM_BOOL T26_;
		tyArray_qtqsWM5aXmcpMIVmvq3kAA sig;
		T26_ = (NIM_BOOL)0;
		T26_ = !((result == NIM_NIL));
		if (!(T26_)) goto LA27_;
		T26_ = isImportedType_UCeqXNU9bJdSIbOIWbb0zng_2(typ);
		LA27_: ;
		if (!T26_) goto LA28_;
		nimZeroMem((void*)sig, sizeof(tyArray_qtqsWM5aXmcpMIVmvq3kAA));
		hashType_qLlmI8qzKQaMa2k5LnfLZQ(typ, 2, sig);
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T32_;
			T32_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T32_ = cacheGetType_68rAJ2TnRtuRwChs7t9bVaw((*m).typeCache, sig);
			if (!(T32_ == NIM_NIL)) goto LA33_;
			X5BX5Deq__TRBnfbwbN7k5UwqVgDGskg((&(*m).typeCache), sig, result);
			addAbiCheck_7WadOv2RgjtFVzQMS1aluQ(m, typ, result);
		}
		LA33_: ;
	}
	LA28_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getTypePre_YqOY29b9aUiJ9bpv9bRbgamVlA)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyArray_qtqsWM5aXmcpMIVmvq3kAA sig) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!(typ == NIM_NIL)) goto LA3_;
		result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_17));
	}
	goto LA1_;
	LA3_: ;
	{
		result = getSimpleTypeDesc_TttItRxQT67RCnbQdIsyRQ(m, typ);
		{
			if (!(result == NIM_NIL)) goto LA8_;
			result = cacheGetType_68rAJ2TnRtuRwChs7t9bVaw((*m).typeCache, sig);
		}
		LA8_: ;
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, typeName_qvCJ9bux56nS82Shxh5hLNg)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ_2;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	typ_2 = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(typ, IL64(1189020670371048976));
	{
		NIM_BOOL T3_;
		NimStringDesc* T7_;
		NimStringDesc* T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*typ_2).sym == NIM_NIL));
		if (!(T3_)) goto LA4_;
		T3_ = ((147456 &((NU64)1<<((NU)((*typ_2).kind)&63U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		T7_ = (NimStringDesc*)0;
		T8_ = (NimStringDesc*)0;
		T8_ = mangle_0ctHksTXSPyaxjBOgK4TiA((*(*(*typ_2).sym).name).s);
		T7_ = rawNewString((reprEnum((NI)(*typ_2).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*typ_2).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + (T8_ ? T8_->Sup.len : 0) + 1);
appendString(T7_, reprEnum((NI)(*typ_2).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
appendChar(T7_, 95);
appendString(T7_, T8_);
		result = rope_yShmEg9cffWxI7s5XzEKBow(T7_);
	}
	goto LA1_;
	LA5_: ;
	{
		result = rope_yShmEg9cffWxI7s5XzEKBow(reprEnum((NI)(*typ_2).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getTypeName_YqOY29b9aUiJ9bpv9bRbgamVlA_3)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyArray_qtqsWM5aXmcpMIVmvq3kAA sig) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ_2;
{	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	t = typ;
	{
		while (1) {
			{
				NIM_BOOL T5_;
				T5_ = (NIM_BOOL)0;
				T5_ = !(((*t).sym == NIM_NIL));
				if (!(T5_)) goto LA6_;
				T5_ = !(((96 & (*(*t).sym).flags) == 0));
				LA6_: ;
				if (!T5_) goto LA7_;
				result = (*(*t).sym).loc.r;
				goto BeforeRet_;
			}
			LA7_: ;
			{
				if (!((IL64(1189020670371048976) &((NU64)1<<((NU)((*t).kind)&63U)))!=0)) goto LA11_;
				t = lastSon_ab52xel9cFebv9am0xV04xXA(t);
			}
			goto LA9_;
			LA11_: ;
			{
				goto LA1;
			}
			LA9_: ;
		}
	} LA1: ;
	{
		if (!((IL64(70368744177680) &((NU64)1<<((NU)((*typ).kind)&63U)))!=0)) goto LA16_;
		typ_2 = lastSon_ab52xel9cFebv9am0xV04xXA(typ);
	}
	goto LA14_;
	LA16_: ;
	{
		typ_2 = typ;
	}
	LA14_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T23_;
		NimStringDesc* T24_;
		if (!((*typ_2).loc.r == NIM_NIL)) goto LA21_;
		T23_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T23_ = typeName_qvCJ9bux56nS82Shxh5hLNg(typ_2);
		T24_ = (NimStringDesc*)0;
		T24_ = dollar__cjda4doS9ccFOjsWsGu9aa2A(sig);
		asgnRefNoCycle((void**) (&(*typ_2).loc.r), amp__Z7W1o5nPSc3ExfO5f7j1Gg(T23_, T24_));
	}
	goto LA19_;
	LA21_: ;
	{
	}
	LA19_: ;
	result = (*typ_2).loc.r;
	{
		NimStringDesc* T30_;
		if (!(result == NIM_NIL)) goto LA28_;
		T30_ = (NimStringDesc*)0;
		T30_ = rawNewString((reprEnum((NI)(*typ_2).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*typ_2).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 13);
appendString(T30_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_47));
appendString(T30_, reprEnum((NI)(*typ_2).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, T30_);
	}
	LA28_: ;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getForwardStructFormat_t01JLpAK9aOL9cL9b3RHWchaQ)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m) {
	NimStringDesc* result;
	result = (NimStringDesc*)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*(*m).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T3_) goto LA4_;
		T3_ = (((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		result = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_48));
	}
	goto LA1_;
	LA5_: ;
	{
		result = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_49));
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, structOrUnion_TLFDupRCidtMx8175pusWQ)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t_2;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	t_2 = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(t, IL64(70368744177680));
	{
		if (!(((*t_2).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 1))&63U)))!=0)) goto LA3_;
		result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_50));
	}
	goto LA1_;
	LA3_: ;
	{
		result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_51));
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, pushType_HawbfDLBazEmfo9aMSqKh9bw)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	NI T1_;
	asgnRefNoCycle((void**) (&(*m).typeStack), (tySequence_Ef05srmQTDulnBdXR4Ja6Q*) incrSeqV3(&((*m).typeStack)->Sup, (&NTI_Ef05srmQTDulnBdXR4Ja6Q_)));
	T1_ = (*m).typeStack->Sup.len++;
	asgnRefNoCycle((void**) (&(*m).typeStack->data[T1_]), typ);
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getTypeForward_YqOY29b9aUiJ9bpv9bRbgamVlA_2)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyArray_qtqsWM5aXmcpMIVmvq3kAA sig) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* concrete;
{	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	result = cacheGetType_68rAJ2TnRtuRwChs7t9bVaw((*m).forwTypeCache, sig);
	{
		if (!!((result == NIM_NIL))) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	result = getTypePre_YqOY29b9aUiJ9bpv9bRbgamVlA(m, typ, sig);
	{
		if (!!((result == NIM_NIL))) goto LA7_;
		goto BeforeRet_;
	}
	LA7_: ;
	concrete = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(typ, IL64(4647785184190572816));
	switch ((*concrete).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17):
	{
		result = getTypeName_YqOY29b9aUiJ9bpv9bRbgamVlA_3(m, typ, sig);
		X5BX5Deq__TRBnfbwbN7k5UwqVgDGskg((&(*m).forwTypeCache), sig, result);
		{
			NIM_BOOL T12_;
			NimStringDesc* T15_;
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T16_;
			T12_ = (NIM_BOOL)0;
			T12_ = isImportedType_UCeqXNU9bJdSIbOIWbb0zng_2(concrete);
			if (!!(T12_)) goto LA13_;
			T15_ = (NimStringDesc*)0;
			T15_ = getForwardStructFormat_t01JLpAK9aOL9cL9b3RHWchaQ(m);
			nimZeroMem((void*)T16_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T16_[0] = structOrUnion_TLFDupRCidtMx8175pusWQ(typ);
			T16_[1] = result;
			addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 2))- 0], T15_, T16_, 2);
		}
		goto LA10_;
		LA13_: ;
		{
			pushType_HawbfDLBazEmfo9aMSqKh9bw(m, concrete);
		}
		LA10_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T20_;
			T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T20_ = X5BX5D__OWIu6yRfMJASkF8WB77f2w((&(*m).forwTypeCache), sig);
			if (!!(((*T20_) == result))) goto LA21_;
			failedAssertImpl_aDmpBTs9cPuXp0Mp9cfiNeyA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_52));
		}
		LA21_: ;
	}
	break;
	default:
	{
		NimStringDesc* T24_;
		T24_ = (NimStringDesc*)0;
		T24_ = rawNewString((reprEnum((NI)(*typ).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*typ).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 16);
appendString(T24_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_53));
appendString(T24_, reprEnum((NI)(*typ).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
appendChar(T24_, 41);
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, T24_);
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, seqStar_t01JLpAK9aOL9cL9b3RHWchaQ_2)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m) {
	NimStringDesc* result;
	result = (NimStringDesc*)0;
	{
		if (!((*(*(*m).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 5))) goto LA3_;
		result = ((NimStringDesc*) NIM_NIL);
	}
	goto LA1_;
	LA3_: ;
	{
		result = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_46));
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getTypeDescWeak_JZoY3V0DBP4Cmkp6h3BcEw)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* check) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* etB;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	etB = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(t, IL64(36099165763184912));
	switch ((*etB).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		{
			NIM_BOOL T4_;
			T4_ = (NIM_BOOL)0;
			T4_ = isImportedCppType_UCeqXNU9bJdSIbOIWbb0zng(etB);
			if (!(T4_)) goto LA5_;
			T4_ = ((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 11));
			LA5_: ;
			if (!T4_) goto LA6_;
			result = getTypeDescAux_b9ct3XPU1ucWY6A76XYVIRQ(m, t, check);
		}
		goto LA2_;
		LA6_: ;
		{
			tyArray_qtqsWM5aXmcpMIVmvq3kAA T9_;
			nimZeroMem((void*)T9_, sizeof(tyArray_qtqsWM5aXmcpMIVmvq3kAA));
			hashType_qLlmI8qzKQaMa2k5LnfLZQ(t, 2, T9_);
			result = getTypeForward_YqOY29b9aUiJ9bpv9bRbgamVlA_2(m, t, T9_);
			pushType_HawbfDLBazEmfo9aMSqKh9bw(m, t);
		}
		LA2_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
	{
		{
			if (!((*(*(*m).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 5))) goto LA13_;
			result = getTypeDescAux_b9ct3XPU1ucWY6A76XYVIRQ(m, t, check);
		}
		goto LA11_;
		LA13_: ;
		{
			tyArray_qtqsWM5aXmcpMIVmvq3kAA T16_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T17_;
			NimStringDesc* T18_;
			nimZeroMem((void*)T16_, sizeof(tyArray_qtqsWM5aXmcpMIVmvq3kAA));
			hashType_qLlmI8qzKQaMa2k5LnfLZQ(t, 2, T16_);
			T17_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T17_ = getTypeForward_YqOY29b9aUiJ9bpv9bRbgamVlA_2(m, t, T16_);
			T18_ = (NimStringDesc*)0;
			T18_ = seqStar_t01JLpAK9aOL9cL9b3RHWchaQ_2(m);
			result = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T17_, T18_);
			pushType_HawbfDLBazEmfo9aMSqKh9bw(m, t);
		}
		LA11_: ;
	}
	break;
	default:
	{
		result = getTypeDescAux_b9ct3XPU1ucWY6A76XYVIRQ(m, t, check);
	}
	break;
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, appcg_GrB2Hbyo8XeK6TPKMD0Y5A)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** c, NimStringDesc* frmt, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T1_;
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = ropecg_pDjCXevkau9aaTuKWN9cvHGw(m, frmt, args, argsLen_0);
	add_iMTw0CDaruwETLGb9bhpBLg(c, T1_);
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, scanCppGenericSlot_duLZKxkzK247jEYF4jUfog)(NimStringDesc* pat, NI* cursor, NI* outIdx, NI* outStars) {
	NIM_BOOL result;
	NI begin;
{	result = (NIM_BOOL)0;
	(*cursor) += ((NI) 1);
	begin = (*cursor);
	{
		while (1) {
			if (!((NU8)(pat->data[(*cursor)]) == (NU8)(42))) goto LA2;
			(*cursor) += ((NI) 1);
		} LA2: ;
	}
	{
		if (!(((NU8)(pat->data[(*cursor)])) >= ((NU8)(48)) && ((NU8)(pat->data[(*cursor)])) <= ((NU8)(57)))) goto LA5_;
		(*outIdx) = (NI)(((NU8)(pat->data[(*cursor)])) - ((NI) 48));
		(*outStars) = (NI)((*cursor) - begin);
		(*cursor) += ((NI) 1);
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	goto LA3_;
	LA5_: ;
	{
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, resolveStarsInCppType_xwSObpAAR9cXwGaH7j8BclQ)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, NI idx, NI stars) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	result = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len_SWFNCiWYB89bTUPh5KptkvA_2(typ);
		if (!(T3_ <= idx)) goto LA4_;
		{
			if (!NIM_TRUE) goto LA8_;
			failedAssertImpl_aDmpBTs9cPuXp0Mp9cfiNeyA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_78));
		}
		LA8_: ;
	}
	LA4_: ;
	result = (*typ).sons->data[idx];
	{
		NI i;
		NI res;
		i = (NI)0;
		res = ((NI) 1);
		{
			while (1) {
				if (!(res <= stars)) goto LA12;
				i = res;
				{
					NIM_BOOL T15_;
					NI T17_;
					T15_ = (NIM_BOOL)0;
					T15_ = !((result == NIM_NIL));
					if (!(T15_)) goto LA16_;
					T17_ = (NI)0;
					T17_ = len_SWFNCiWYB89bTUPh5KptkvA_2(result);
					T15_ = (((NI) 0) < T17_);
					LA16_: ;
					if (!T15_) goto LA18_;
					{
						if (!((*result).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 11))) goto LA22_;
						result = (*result).sons->data[((NI) 1)];
					}
					goto LA20_;
					LA22_: ;
					{
						result = elemType_BFFuB9cFDZ89c6QWZqEFAtdA_2(result);
					}
					LA20_: ;
				}
				LA18_: ;
				res += ((NI) 1);
			} LA12: ;
		}
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isKeyword_JVm6AvAuiqeC9aA9a1rRrvdA)(tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA* w) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	switch ((*w).Sup.id) {
	case ((NI) 204) ... ((NI) 266):
	case ((NI) 4) ... ((NI) 66):
	case ((NI) 137):
	{
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	break;
	default:
	{
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, mangleField_sfvzQqRpUWqV9cEHvFo2dog)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA* name) {
	NimStringDesc* result;
	result = (NimStringDesc*)0;
	result = mangle_0ctHksTXSPyaxjBOgK4TiA((*name).s);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isKeyword_JVm6AvAuiqeC9aA9a1rRrvdA(name);
		if (!T3_) goto LA4_;
		result = resizeString(result, 2);
appendString(result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_106));
	}
	LA4_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, mangleRecFieldName_0XUZA8cv9auQGQetv8JLneQ)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* rectype) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*rectype).sym == NIM_NIL));
		if (!(T3_)) goto LA4_;
		T3_ = !(((96 & (*(*rectype).sym).flags) == 0));
		LA4_: ;
		if (!T3_) goto LA5_;
		result = (*field).loc.r;
	}
	goto LA1_;
	LA5_: ;
	{
		NimStringDesc* T8_;
		T8_ = (NimStringDesc*)0;
		T8_ = mangleField_sfvzQqRpUWqV9cEHvFo2dog(m, (*field).name);
		result = rope_yShmEg9cffWxI7s5XzEKBow(T8_);
	}
	LA1_: ;
	{
		if (!(result == NIM_NIL)) goto LA11_;
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*m).g).config, (*field).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_107));
	}
	LA11_: ;
	return result;
}

static N_INLINE(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, t_wtveaWyn2FSNgJ2h4kSWzwcgen)(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	result = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	{
		if (!((*(*a).lode).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA3_;
		result = (*(*(*a).lode)._Ukind.S4.sym).typ;
	}
	goto LA1_;
	LA3_: ;
	{
		result = (*(*a).lode).typ;
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genRecordFieldsAux_V4uVEqUycUawzcJp9ag6j9cQ)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* accessExpr, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* rectype, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* check) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
{	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	result = NIM_NIL;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 138):
	{
		{
			NI i;
			NI colontmp_;
			NI T3_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T3_ = (NI)0;
			T3_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
			colontmp_ = (NI)(T3_ - ((NI) 1));
			res = ((NI) 0);
			{
				while (1) {
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T6_;
					if (!(res <= colontmp_)) goto LA5;
					i = res;
					T6_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T6_ = genRecordFieldsAux_V4uVEqUycUawzcJp9ag6j9cQ(m, (*n)._Ukind.S6.sons->data[i], accessExpr, rectype, check);
					add_iMTw0CDaruwETLGb9bhpBLg(&result, T6_);
					res += ((NI) 1);
				} LA5: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 139):
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T12_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* uname;
		NimStringDesc* T13_;
		NimStringDesc* T14_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* ae;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* unionBody;
		{
			if (!!(((*(*n)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA10_;
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*m).g).config, (*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95));
		}
		LA10_: ;
		T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = genRecordFieldsAux_V4uVEqUycUawzcJp9ag6j9cQ(m, (*n)._Ukind.S6.sons->data[((NI) 0)], accessExpr, rectype, check);
		add_iMTw0CDaruwETLGb9bhpBLg(&result, T12_);
		T13_ = (NimStringDesc*)0;
		T14_ = (NimStringDesc*)0;
		T14_ = mangle_0ctHksTXSPyaxjBOgK4TiA((*(*(*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym).name).s);
		T13_ = rawNewString((T14_ ? T14_->Sup.len : 0) + 2);
appendString(T13_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_96));
appendString(T13_, T14_);
		uname = rope_yShmEg9cffWxI7s5XzEKBow(T13_);
		{
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T19_;
			if (!!((accessExpr == NIM_NIL))) goto LA17_;
			nimZeroMem((void*)T19_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T19_[0] = accessExpr;
			T19_[1] = uname;
			ae = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_97), T19_, 2);
		}
		goto LA15_;
		LA17_: ;
		{
			ae = uname;
		}
		LA15_: ;
		unionBody = NIM_NIL;
		{
			NI i_2;
			NI colontmp__2;
			NI T22_;
			NI res_2;
			i_2 = (NI)0;
			colontmp__2 = (NI)0;
			T22_ = (NI)0;
			T22_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
			colontmp__2 = (NI)(T22_ - ((NI) 1));
			res_2 = ((NI) 1);
			{
				while (1) {
					if (!(res_2 <= colontmp__2)) goto LA24;
					i_2 = res_2;
					switch ((*(*n)._Ukind.S6.sons->data[i_2]).kind) {
					case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 85):
					case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 88):
					{
						tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* k;
						k = lastSon_esDJA7239bJDiq4UrX9aHCjg((*n)._Ukind.S6.sons->data[i_2]);
						{
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* sname;
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T30_;
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* a;
							tyArray_mrugoXXRZUEeG9bEXo9auBKw T31_;
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T32_;
							if (!!(((*k).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA28_;
							T30_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
							T30_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (i_2)));
							sname = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_98), T30_);
							nimZeroMem((void*)T31_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
							T31_[0] = ae;
							T31_[1] = sname;
							T32_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
							T32_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_97), T31_, 2);
							a = genRecordFieldsAux_V4uVEqUycUawzcJp9ag6j9cQ(m, k, T32_, rectype, check);
							{
								tyArray_JiWwrsTRC6xqNlGcBthSVA T48_;
								if (!!((a == NIM_NIL))) goto LA35_;
								{
									if (!!((((*rectype).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 22))&63U)))!=0))) goto LA39_;
									add_yG4AKzsBRS1W4MANDlXQeg(&unionBody, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_99));
								}
								goto LA37_;
								LA39_: ;
								{
									{
										if (!((CC_78I18QZNZFIv9ah7oETc0jg[((*(*(*m).g).config).cCompiler)- 1].Field19 &(1U<<((NU)(((tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg) 7))&7U)))!=0)) goto LA44_;
										add_yG4AKzsBRS1W4MANDlXQeg(&unionBody, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_100));
									}
									goto LA42_;
									LA44_: ;
									{
										tyArray_qTjAvTvKF9anytN1At69aJMQ T47_;
										nimZeroMem((void*)T47_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
										addf_ocEHZ9cujtqicXvDuJUm5pg(&unionBody, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_101), T47_, 0);
									}
									LA42_: ;
								}
								LA37_: ;
								add_iMTw0CDaruwETLGb9bhpBLg(&unionBody, a);
								nimZeroMem((void*)T48_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
								T48_[0] = sname;
								addf_ocEHZ9cujtqicXvDuJUm5pg(&unionBody, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_102), T48_, 1);
								{
									NIM_BOOL T51_;
									tyArray_qTjAvTvKF9anytN1At69aJMQ T55_;
									T51_ = (NIM_BOOL)0;
									T51_ = (((*rectype).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 22))&63U)))!=0);
									if (!(T51_)) goto LA52_;
									T51_ = !(((CC_78I18QZNZFIv9ah7oETc0jg[((*(*(*m).g).config).cCompiler)- 1].Field19 &(1U<<((NU)(((tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg) 7))&7U)))!=0));
									LA52_: ;
									if (!T51_) goto LA53_;
									nimZeroMem((void*)T55_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
									addf_ocEHZ9cujtqicXvDuJUm5pg(&unionBody, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_103), T55_, 0);
								}
								LA53_: ;
							}
							LA35_: ;
						}
						goto LA26_;
						LA28_: ;
						{
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T57_;
							T57_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
							T57_ = genRecordFieldsAux_V4uVEqUycUawzcJp9ag6j9cQ(m, k, ae, rectype, check);
							add_iMTw0CDaruwETLGb9bhpBLg(&unionBody, T57_);
						}
						LA26_: ;
					}
					break;
					default:
					{
						internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_104));
					}
					break;
					}
					res_2 += ((NI) 1);
				} LA24: ;
			}
		}
		{
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T63_;
			if (!!((unionBody == NIM_NIL))) goto LA61_;
			nimZeroMem((void*)T63_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T63_[0] = unionBody;
			T63_[1] = uname;
			addf_ocEHZ9cujtqicXvDuJUm5pg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_105), T63_, 2);
		}
		LA61_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* sname_2;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* ae_2;
		field = (*n)._Ukind.S4.sym;
		{
			if (!((*(*field).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 63))) goto LA67_;
			goto BeforeRet_;
		}
		LA67_: ;
		sname_2 = mangleRecFieldName_0XUZA8cv9auQGQetv8JLneQ(m, field, rectype);
		{
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T73_;
			if (!!((accessExpr == NIM_NIL))) goto LA71_;
			nimZeroMem((void*)T73_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T73_[0] = accessExpr;
			T73_[1] = sname_2;
			ae_2 = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_97), T73_, 2);
		}
		goto LA69_;
		LA71_: ;
		{
			ae_2 = sname_2;
		}
		LA69_: ;
		fillLoc_US6BUWbxbS9bTHtpMCqKFkw((&(*field).loc), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 5), n, ae_2, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
		{
			NIM_BOOL T77_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* fieldType;
			T77_ = (NIM_BOOL)0;
			T77_ = isImportedCppType_UCeqXNU9bJdSIbOIWbb0zng(rectype);
			if (!!(T77_)) goto LA78_;
			fieldType = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*field).loc.lode).typ, IL64(36099165763184912));
			{
				NIM_BOOL T82_;
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T86_;
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T87_;
				T82_ = (NIM_BOOL)0;
				T82_ = ((*fieldType).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16));
				if (!(T82_)) goto LA83_;
				T82_ = (((*fieldType).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 0))&63U)))!=0);
				LA83_: ;
				if (!T82_) goto LA84_;
				nimZeroMem((void*)T86_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T87_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T87_ = elemType_BFFuB9cFDZ89c6QWZqEFAtdA_2(fieldType);
				T86_[0] = getTypeDescAux_b9ct3XPU1ucWY6A76XYVIRQ(m, T87_, check);
				T86_[1] = sname_2;
				addf_ocEHZ9cujtqicXvDuJUm5pg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_108), T86_, 2);
			}
			goto LA80_;
			LA84_: ;
			{
				NIM_BOOL T89_;
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T93_;
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T94_;
				T89_ = (NIM_BOOL)0;
				T89_ = ((*fieldType).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24));
				if (!(T89_)) goto LA90_;
				T89_ = !(((*(*(*m).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 5)));
				LA90_: ;
				if (!T89_) goto LA91_;
				nimZeroMem((void*)T93_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T94_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T94_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&(*field).loc));
				T93_[0] = getTypeDescWeak_JZoY3V0DBP4Cmkp6h3BcEw(m, T94_, check);
				T93_[1] = sname_2;
				addf_ocEHZ9cujtqicXvDuJUm5pg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_48), T93_, 2);
			}
			goto LA80_;
			LA91_: ;
			{
				tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T98_;
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T99_;
				NimStringDesc* T100_;
				if (!!(((*field)._Ukind.S4.bitsize == ((NI) 0)))) goto LA96_;
				nimZeroMem((void*)T98_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
				T99_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T99_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&(*field).loc));
				T98_[0] = getTypeDescAux_b9ct3XPU1ucWY6A76XYVIRQ(m, T99_, check);
				T98_[1] = sname_2;
				T100_ = (NimStringDesc*)0;
				T100_ = nimIntToStr((*field)._Ukind.S4.bitsize);
				T98_[2] = rope_yShmEg9cffWxI7s5XzEKBow(T100_);
				addf_ocEHZ9cujtqicXvDuJUm5pg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_109), T98_, 3);
			}
			goto LA80_;
			LA96_: ;
			{
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T102_;
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T103_;
				nimZeroMem((void*)T102_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T103_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T103_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&(*field).loc));
				T102_[0] = getTypeDescAux_b9ct3XPU1ucWY6A76XYVIRQ(m, T103_, check);
				T102_[1] = sname_2;
				addf_ocEHZ9cujtqicXvDuJUm5pg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_48), T102_, 2);
			}
			LA80_: ;
		}
		LA78_: ;
	}
	break;
	default:
	{
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*m).g).config, (*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_110));
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getRecordFields_C4FuXdQUwJbwleRj18h2BQ)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* check) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	result = genRecordFieldsAux_V4uVEqUycUawzcJp9ag6j9cQ(m, (*typ).n, NIM_NIL, typ, check);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getRecordDesc_vzSD6iEXWdLqlpGRes6nRg)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* check) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	NIM_BOOL hasField;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* desc;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	hasField = NIM_FALSE;
	{
		if (!(((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 22))&63U)))!=0)) goto LA3_;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
			if (!((CC_78I18QZNZFIv9ah7oETc0jg[((*(*(*m).g).config).cCompiler)- 1].Field19 &(1U<<((NU)(((tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg) 7))&7U)))!=0)) goto LA7_;
			T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T9_ = structOrUnion_TLFDupRCidtMx8175pusWQ(typ);
			result = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T9_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_84));
		}
		goto LA5_;
		LA7_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
			T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T11_ = structOrUnion_TLFDupRCidtMx8175pusWQ(typ);
			result = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_85), T11_);
		}
		LA5_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		result = structOrUnion_TLFDupRCidtMx8175pusWQ(typ);
	}
	LA1_: ;
	add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_86));
	add_iMTw0CDaruwETLGb9bhpBLg(&result, name);
	{
		if (!((*typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17))) goto LA15_;
		{
			if (!((*typ).sons->data[((NI) 0)] == NIM_NIL)) goto LA19_;
			{
				NIM_BOOL T23_;
				NIM_BOOL T24_;
				tyArray_qTjAvTvKF9anytN1At69aJMQ T29_;
				T23_ = (NIM_BOOL)0;
				T24_ = (NIM_BOOL)0;
				T24_ = !(((*typ).sym == NIM_NIL));
				if (!(T24_)) goto LA25_;
				T24_ = (((*(*typ).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 9))&63U)))!=0);
				LA25_: ;
				T23_ = T24_;
				if (T23_) goto LA26_;
				T23_ = (((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 2))&63U)))!=0);
				LA26_: ;
				if (!T23_) goto LA27_;
				nimZeroMem((void*)T29_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
				appcg_GrB2Hbyo8XeK6TPKMD0Y5A(m, &result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_87), T29_, 0);
			}
			goto LA21_;
			LA27_: ;
			{
				tyArray_qTjAvTvKF9anytN1At69aJMQ T31_;
				nimZeroMem((void*)T31_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
				appcg_GrB2Hbyo8XeK6TPKMD0Y5A(m, &result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_88), T31_, 0);
				hasField = NIM_TRUE;
			}
			LA21_: ;
		}
		goto LA17_;
		LA19_: ;
		{
			NIM_BOOL T33_;
			tyArray_JiWwrsTRC6xqNlGcBthSVA T37_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T38_;
			T33_ = (NIM_BOOL)0;
			T33_ = ((*(*(*m).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
			if (T33_) goto LA34_;
			T33_ = (((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA34_: ;
			if (!T33_) goto LA35_;
			nimZeroMem((void*)T37_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T38_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T38_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*typ).sons->data[((NI) 0)], IL64(36239903266179344));
			T37_[0] = getTypeDescAux_b9ct3XPU1ucWY6A76XYVIRQ(m, T38_, check);
			appcg_GrB2Hbyo8XeK6TPKMD0Y5A(m, &result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_89), T37_, 1);
			{
				NIM_BOOL T41_;
				tyArray_qTjAvTvKF9anytN1At69aJMQ T44_;
				T41_ = (NIM_BOOL)0;
				T41_ = isException_NWFc8X9b4Zx0NtXP3Cp2fnw_3(typ);
				if (!T41_) goto LA42_;
				nimZeroMem((void*)T44_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
				appcg_GrB2Hbyo8XeK6TPKMD0Y5A(m, &result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_90), T44_, 0);
				{
					tyArray_JiWwrsTRC6xqNlGcBthSVA T49_;
					tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* T50_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T51_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T52_;
					if (!((*(*typ).sym).magic == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 284))) goto LA47_;
					nimZeroMem((void*)T49_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
					T49_[0] = name;
					appcg_GrB2Hbyo8XeK6TPKMD0Y5A(m, &result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_91), T49_, 1);
					T50_ = (tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*)0;
					T50_ = getCompilerProc_Z9bI8j6Vv57IyOO09a8fpp3g((*(*m).g).graph, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_92));
					T51_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T51_ = genProcHeader_uPFGxWOkwQtDerpzAqNn9aw(m, T50_);
					T52_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T52_ = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T51_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_93));
					result = amp__mFDAEkd1kysB0V9aBd20A9aA(T52_, result);
				}
				LA47_: ;
			}
			LA42_: ;
			hasField = NIM_TRUE;
		}
		goto LA17_;
		LA35_: ;
		{
			tyArray_JiWwrsTRC6xqNlGcBthSVA T54_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T55_;
			nimZeroMem((void*)T54_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T55_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T55_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*typ).sons->data[((NI) 0)], IL64(36239903266179344));
			T54_[0] = getTypeDescAux_b9ct3XPU1ucWY6A76XYVIRQ(m, T55_, check);
			appcg_GrB2Hbyo8XeK6TPKMD0Y5A(m, &result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_94), T54_, 1);
			hasField = NIM_TRUE;
		}
		LA17_: ;
	}
	goto LA13_;
	LA15_: ;
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T57_;
		nimZeroMem((void*)T57_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T57_[0] = name;
		addf_ocEHZ9cujtqicXvDuJUm5pg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_87), T57_, 1);
	}
	LA13_: ;
	desc = getRecordFields_C4FuXdQUwJbwleRj18h2BQ(m, typ, check);
	{
		NIM_BOOL T60_;
		tyArray_qTjAvTvKF9anytN1At69aJMQ T64_;
		T60_ = (NIM_BOOL)0;
		T60_ = (desc == NIM_NIL);
		if (!(T60_)) goto LA61_;
		T60_ = !(hasField);
		LA61_: ;
		if (!T60_) goto LA62_;
		nimZeroMem((void*)T64_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		addf_ocEHZ9cujtqicXvDuJUm5pg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_111), T64_, 0);
	}
	goto LA58_;
	LA62_: ;
	{
		add_iMTw0CDaruwETLGb9bhpBLg(&result, desc);
	}
	LA58_: ;
	add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_112));
	{
		NIM_BOOL T68_;
		T68_ = (NIM_BOOL)0;
		T68_ = (((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 22))&63U)))!=0);
		if (!(T68_)) goto LA69_;
		T68_ = !(((CC_78I18QZNZFIv9ah7oETc0jg[((*(*(*m).g).config).cCompiler)- 1].Field19 &(1U<<((NU)(((tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg) 7))&7U)))!=0));
		LA69_: ;
		if (!T68_) goto LA70_;
		add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_113));
	}
	LA70_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getTupleDesc_vzSD6iEXWdLqlpGRes6nRg_2)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* check) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* desc;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	nimZeroMem((void*)T1_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T1_[0] = structOrUnion_TLFDupRCidtMx8175pusWQ(typ);
	T1_[1] = name;
	result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_116), T1_, 2);
	desc = NIM_NIL;
	{
		NI i;
		NI colontmp_;
		NI T3_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T3_ = (NI)0;
		T3_ = sonsLen_SWFNCiWYB89bTUPh5KptkvA(typ);
		colontmp_ = (NI)(T3_ - ((NI) 1));
		res = ((NI) 0);
		{
			while (1) {
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T6_;
				if (!(res <= colontmp_)) goto LA5;
				i = res;
				nimZeroMem((void*)T6_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T6_[0] = getTypeDescAux_b9ct3XPU1ucWY6A76XYVIRQ(m, (*typ).sons->data[i], check);
				T6_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (i)));
				addf_ocEHZ9cujtqicXvDuJUm5pg(&desc, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_117), T6_, 2);
				res += ((NI) 1);
			} LA5: ;
		}
	}
	{
		if (!(desc == NIM_NIL)) goto LA9_;
		add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_118));
	}
	goto LA7_;
	LA9_: ;
	{
		add_iMTw0CDaruwETLGb9bhpBLg(&result, desc);
	}
	LA7_: ;
	add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_112));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getTypeDescAux_b9ct3XPU1ucWY6A76XYVIRQ)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* origTyp, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* check) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	tyArray_qtqsWM5aXmcpMIVmvq3kAA sig;
{	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	t = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(origTyp, IL64(1189020670371048976));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = containsOrIncl_B0EhVMrh5BBBZOOtYjAvVg(check, (*t).Sup.id);
		if (!T3_) goto LA4_;
		{
			NIM_BOOL T8_;
			NimStringDesc* T12_;
			NimStringDesc* T13_;
			T8_ = (NIM_BOOL)0;
			T8_ = isImportedCppType_UCeqXNU9bJdSIbOIWbb0zng(origTyp);
			if (T8_) goto LA9_;
			T8_ = isImportedCppType_UCeqXNU9bJdSIbOIWbb0zng(t);
			LA9_: ;
			if (!!(T8_)) goto LA10_;
			T12_ = (NimStringDesc*)0;
			T13_ = (NimStringDesc*)0;
			T13_ = typeToString_QlvraUan7WbHowhAbvDvdA(origTyp, ((tyEnum_TPreferedDesc_tnd4qt9c4xddV8oKV5zyusw) 0));
			T12_ = rawNewString((T13_ ? T13_->Sup.len : 0) + 28);
appendString(T12_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
appendString(T12_, T13_);
			internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, T12_);
		}
		LA10_: ;
	}
	LA4_: ;
	{
		if (!!(((*t).sym == NIM_NIL))) goto LA16_;
		useHeader_Ckp4X4sj45vdj9bafLr5LQw(m, (*t).sym);
	}
	LA16_: ;
	{
		NIM_BOOL T20_;
		T20_ = (NIM_BOOL)0;
		T20_ = !((t == origTyp));
		if (!(T20_)) goto LA21_;
		T20_ = !(((*origTyp).sym == NIM_NIL));
		LA21_: ;
		if (!T20_) goto LA22_;
		useHeader_Ckp4X4sj45vdj9bafLr5LQw(m, (*origTyp).sym);
	}
	LA22_: ;
	nimZeroMem((void*)sig, sizeof(tyArray_qtqsWM5aXmcpMIVmvq3kAA));
	hashType_qLlmI8qzKQaMa2k5LnfLZQ(origTyp, 2, sig);
	result = getTypePre_YqOY29b9aUiJ9bpv9bRbgamVlA(m, t, sig);
	{
		if (!!((result == NIM_NIL))) goto LA26_;
		excl_iUpE9bYmIR0fROyJskQwN8g_2(check, (*t).Sup.id);
		goto BeforeRet_;
	}
	LA26_: ;
	switch ((*t).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 45):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 47):
	{
		NimStringDesc* star;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* et;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T40_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* etB;
		{
			NIM_BOOL T31_;
			NIM_BOOL T32_;
			NIM_BOOL T35_;
			T31_ = (NIM_BOOL)0;
			T32_ = (NIM_BOOL)0;
			T32_ = ((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23));
			if (!(T32_)) goto LA33_;
			T32_ = !((((*origTyp).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 19))&63U)))!=0));
			LA33_: ;
			T31_ = T32_;
			if (!(T31_)) goto LA34_;
			T35_ = (NIM_BOOL)0;
			T35_ = ((*(*(*m).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
			if (T35_) goto LA36_;
			T35_ = (((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA36_: ;
			T31_ = T35_;
			LA34_: ;
			if (!T31_) goto LA37_;
			star = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_45));
		}
		goto LA29_;
		LA37_: ;
		{
			star = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_46));
		}
		LA29_: ;
		T40_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T40_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(origTyp, IL64(36099165763184912));
		et = lastSon_ab52xel9cFebv9am0xV04xXA(T40_);
		etB = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(et, IL64(36099165763184912));
		{
			tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w T43_;
			T43_ = (tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w)0;
			T43_ = mapType_K9aceyVl15zb9aYN9b6YJ8TnA((*(*m).g).config, t);
			if (!(T43_ == ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 18))) goto LA44_;
			{
				tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q T50_;
				if (!((*etB).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 19))) goto LA48_;
				T50_ = unknownLineInfo_F9bjxJM4tdxwMljo3mi9bY8w();
				et = getSysType_VcTNc9cK1Ftuh0MFwOC9c0Tg((*(*m).g).graph, T50_, ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 41));
			}
			goto LA46_;
			LA48_: ;
			{
				et = elemType_BFFuB9cFDZ89c6QWZqEFAtdA_2(etB);
			}
			LA46_: ;
			etB = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(et, IL64(36099165763184912));
			star->data[((NI) 0)] = 42;
		}
		LA44_: ;
		switch ((*etB).kind) {
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18):
		{
			{
				NIM_BOOL T55_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T59_;
				T55_ = (NIM_BOOL)0;
				T55_ = isImportedCppType_UCeqXNU9bJdSIbOIWbb0zng(etB);
				if (!(T55_)) goto LA56_;
				T55_ = ((*et).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 11));
				LA56_: ;
				if (!T55_) goto LA57_;
				T59_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T59_ = getTypeDescAux_b9ct3XPU1ucWY6A76XYVIRQ(m, et, check);
				result = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T59_, star);
			}
			goto LA53_;
			LA57_: ;
			{
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name;
				tyArray_qtqsWM5aXmcpMIVmvq3kAA T61_;
				nimZeroMem((void*)T61_, sizeof(tyArray_qtqsWM5aXmcpMIVmvq3kAA));
				hashType_qLlmI8qzKQaMa2k5LnfLZQ(et, 2, T61_);
				name = getTypeForward_YqOY29b9aUiJ9bpv9bRbgamVlA_2(m, et, T61_);
				result = amp__Z7W1o5nPSc3ExfO5f7j1Gg(name, star);
				X5BX5Deq__TRBnfbwbN7k5UwqVgDGskg((&(*m).typeCache), sig, result);
			}
			LA53_: ;
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name_2;
			tyArray_qtqsWM5aXmcpMIVmvq3kAA T63_;
			NimStringDesc* T64_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T65_;
			nimZeroMem((void*)T63_, sizeof(tyArray_qtqsWM5aXmcpMIVmvq3kAA));
			hashType_qLlmI8qzKQaMa2k5LnfLZQ(et, 2, T63_);
			name_2 = getTypeForward_YqOY29b9aUiJ9bpv9bRbgamVlA_2(m, et, T63_);
			T64_ = (NimStringDesc*)0;
			T64_ = seqStar_t01JLpAK9aOL9cL9b3RHWchaQ_2(m);
			T65_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T65_ = amp__Z7W1o5nPSc3ExfO5f7j1Gg(name_2, T64_);
			result = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T65_, star);
			X5BX5Deq__TRBnfbwbN7k5UwqVgDGskg((&(*m).typeCache), sig, result);
			pushType_HawbfDLBazEmfo9aMSqKh9bw(m, et);
		}
		break;
		default:
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T67_;
			T67_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T67_ = getTypeDescAux_b9ct3XPU1ucWY6A76XYVIRQ(m, et, check);
			result = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T67_, star);
			X5BX5Deq__TRBnfbwbN7k5UwqVgDGskg((&(*m).typeCache), sig, result);
		}
		break;
		}
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48):
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T69_;
		T69_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T69_ = getTypeDescWeak_JZoY3V0DBP4Cmkp6h3BcEw(m, (*t).sons->data[((NI) 0)], check);
		result = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T69_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_46));
		X5BX5Deq__TRBnfbwbN7k5UwqVgDGskg((&(*m).typeCache), sig, result);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 14):
	{
		result = cacheGetType_68rAJ2TnRtuRwChs7t9bVaw((*m).typeCache, sig);
		{
			if (!(result == NIM_NIL)) goto LA73_;
			result = getTypeName_YqOY29b9aUiJ9bpv9bRbgamVlA_3(m, origTyp, sig);
			{
				NIM_BOOL T77_;
				NIM_BOOL T79_;
				NI size;
				T77_ = (NIM_BOOL)0;
				T77_ = isImportedCppType_UCeqXNU9bJdSIbOIWbb0zng(t);
				if (T77_) goto LA78_;
				T79_ = (NIM_BOOL)0;
				T79_ = (((*(*t).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 5))&63U)))!=0);
				if (!(T79_)) goto LA80_;
				T79_ = ((*(*t).sym).magic == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 0));
				LA80_: ;
				T77_ = T79_;
				LA78_: ;
				if (!!(T77_)) goto LA81_;
				X5BX5Deq__TRBnfbwbN7k5UwqVgDGskg((&(*m).typeCache), sig, result);
				size = (NI)0;
				{
					NI64 T85_;
					tyArray_JiWwrsTRC6xqNlGcBthSVA T88_;
					T85_ = (NI64)0;
					T85_ = firstOrd_4cSIntenL9aBXY6LAFsvXdQ((*(*m).g).config, t);
					if (!(T85_ < IL64(0))) goto LA86_;
					nimZeroMem((void*)T88_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
					T88_[0] = result;
					addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 3))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_54), T88_, 1);
					size = ((NI) 4);
				}
				goto LA83_;
				LA86_: ;
				{
					NI64 T90_;
					T90_ = (NI64)0;
					T90_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*m).g).config, t);
					size = ((NI) (T90_));
					switch (size) {
					case ((NI) 1):
					{
						tyArray_JiWwrsTRC6xqNlGcBthSVA T92_;
						nimZeroMem((void*)T92_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
						T92_[0] = result;
						addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 3))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_55), T92_, 1);
					}
					break;
					case ((NI) 2):
					{
						tyArray_JiWwrsTRC6xqNlGcBthSVA T94_;
						nimZeroMem((void*)T94_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
						T94_[0] = result;
						addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 3))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_56), T94_, 1);
					}
					break;
					case ((NI) 4):
					{
						tyArray_JiWwrsTRC6xqNlGcBthSVA T96_;
						nimZeroMem((void*)T96_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
						T96_[0] = result;
						addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 3))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_54), T96_, 1);
					}
					break;
					case ((NI) 8):
					{
						tyArray_JiWwrsTRC6xqNlGcBthSVA T98_;
						nimZeroMem((void*)T98_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
						T98_[0] = result;
						addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 3))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_57), T98_, 1);
					}
					break;
					default:
					{
						internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*m).g).config, (*(*t).sym).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_58));
					}
					break;
					}
				}
				LA83_: ;
			}
			LA81_: ;
		}
		LA73_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25):
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* rettype;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* desc;
		result = getTypeName_YqOY29b9aUiJ9bpv9bRbgamVlA_3(m, origTyp, sig);
		X5BX5Deq__TRBnfbwbN7k5UwqVgDGskg((&(*m).typeCache), sig, result);
		rettype = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		desc = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		genProcParams_SfuybNN12GV8YqiojEK9asA(m, t, &rettype, &desc, check, NIM_TRUE, NIM_TRUE);
		{
			NIM_BOOL T103_;
			T103_ = (NIM_BOOL)0;
			T103_ = isImportedType_UCeqXNU9bJdSIbOIWbb0zng_2(t);
			if (!!(T103_)) goto LA104_;
			{
				tyArray_f7nG5LD47BH5K9c6mASit3g T110_;
				if (!!(((*t).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8)))) goto LA108_;
				nimZeroMem((void*)T110_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
				T110_[0] = rope_yShmEg9cffWxI7s5XzEKBow(CallingConvToStr_A7GdKVVGtI3pvj9cV9adydpw[((*t).callConv)- 0]);
				T110_[1] = rettype;
				T110_[2] = result;
				T110_[3] = desc;
				addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 3))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_59), T110_, 4);
			}
			goto LA106_;
			LA108_: ;
			{
				tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T112_;
				nimZeroMem((void*)T112_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
				T112_[0] = result;
				T112_[1] = rettype;
				T112_[2] = desc;
				addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 3))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_70), T112_, 3);
			}
			LA106_: ;
		}
		LA104_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
	{
		NimStringDesc* T125_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T126_;
		NimStringDesc* T157_;
		result = cacheGetType_68rAJ2TnRtuRwChs7t9bVaw((*m).forwTypeCache, sig);
		{
			if (!(result == NIM_NIL)) goto LA116_;
			result = getTypeName_YqOY29b9aUiJ9bpv9bRbgamVlA_3(m, origTyp, sig);
			{
				NIM_BOOL T120_;
				NimStringDesc* T123_;
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T124_;
				T120_ = (NIM_BOOL)0;
				T120_ = isImportedType_UCeqXNU9bJdSIbOIWbb0zng_2(t);
				if (!!(T120_)) goto LA121_;
				T123_ = (NimStringDesc*)0;
				T123_ = getForwardStructFormat_t01JLpAK9aOL9cL9b3RHWchaQ(m);
				nimZeroMem((void*)T124_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T124_[0] = structOrUnion_TLFDupRCidtMx8175pusWQ(t);
				T124_[1] = result;
				addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 2))- 0], T123_, T124_, 2);
			}
			LA121_: ;
			X5BX5Deq__TRBnfbwbN7k5UwqVgDGskg((&(*m).forwTypeCache), sig, result);
		}
		LA116_: ;
		T125_ = (NimStringDesc*)0;
		T125_ = seqStar_t01JLpAK9aOL9cL9b3RHWchaQ_2(m);
		T126_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T126_ = amp__Z7W1o5nPSc3ExfO5f7j1Gg(result, T125_);
		X5BX5Deq__TRBnfbwbN7k5UwqVgDGskg((&(*m).typeCache), sig, T126_);
		{
			NIM_BOOL T129_;
			T129_ = (NIM_BOOL)0;
			T129_ = isImportedType_UCeqXNU9bJdSIbOIWbb0zng_2(t);
			if (!!(T129_)) goto LA130_;
			{
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T134_;
				T134_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T134_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*t).sons->data[((NI) 0)], IL64(36099165763184912));
				if (!!(((*T134_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 3)))) goto LA135_;
				{
					tyArray_mrugoXXRZUEeG9bEXo9auBKw T141_;
					if (!((*(*(*m).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 5))) goto LA139_;
					nimZeroMem((void*)T141_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
					T141_[0] = getTypeDescAux_b9ct3XPU1ucWY6A76XYVIRQ(m, (*t).sons->data[((NI) 0)], check);
					T141_[1] = result;
					appcg_GrB2Hbyo8XeK6TPKMD0Y5A(m, &(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 3))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_71), T141_, 2);
				}
				goto LA137_;
				LA139_: ;
				{
					NimStringDesc* T143_;
					NimStringDesc* T144_;
					tyArray_mrugoXXRZUEeG9bEXo9auBKw T152_;
					T143_ = (NimStringDesc*)0;
					T144_ = (NimStringDesc*)0;
					{
						NIM_BOOL T147_;
						T147_ = (NIM_BOOL)0;
						T147_ = ((*(*(*m).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
						if (T147_) goto LA148_;
						T147_ = (((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
						LA148_: ;
						if (!T147_) goto LA149_;
						T144_ = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_72));
					}
					goto LA145_;
					LA149_: ;
					{
						T144_ = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_73));
					}
					LA145_: ;
					T143_ = rawNewString((T144_ ? T144_->Sup.len : 0) + 31);
appendString(T143_, T144_);
appendString(T143_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_74));
					nimZeroMem((void*)T152_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
					T152_[0] = getTypeDescAux_b9ct3XPU1ucWY6A76XYVIRQ(m, (*t).sons->data[((NI) 0)], check);
					T152_[1] = result;
					appcg_GrB2Hbyo8XeK6TPKMD0Y5A(m, &(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 4))- 0], T143_, T152_, 2);
				}
				LA137_: ;
			}
			goto LA132_;
			LA135_: ;
			{
				if (!((*(*(*m).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 5))) goto LA154_;
				internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_75));
			}
			goto LA132_;
			LA154_: ;
			{
				result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_76));
			}
			LA132_: ;
		}
		LA130_: ;
		T157_ = (NimStringDesc*)0;
		T157_ = seqStar_t01JLpAK9aOL9cL9b3RHWchaQ_2(m);
		add_yG4AKzsBRS1W4MANDlXQeg(&result, T157_);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
	{
		NI64 n;
		n = lengthOrd_4cSIntenL9aBXY6LAFsvXdQ_2((*(*m).g).config, t);
		{
			if (!(n <= IL64(0))) goto LA161_;
			n = IL64(1);
		}
		LA161_: ;
		result = getTypeName_YqOY29b9aUiJ9bpv9bRbgamVlA_3(m, origTyp, sig);
		X5BX5Deq__TRBnfbwbN7k5UwqVgDGskg((&(*m).typeCache), sig, result);
		{
			NIM_BOOL T165_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* foo;
			tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T168_;
			T165_ = (NIM_BOOL)0;
			T165_ = isImportedType_UCeqXNU9bJdSIbOIWbb0zng_2(t);
			if (!!(T165_)) goto LA166_;
			foo = getTypeDescAux_b9ct3XPU1ucWY6A76XYVIRQ(m, (*t).sons->data[((NI) 1)], check);
			nimZeroMem((void*)T168_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
			T168_[0] = foo;
			T168_[1] = result;
			T168_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(n);
			addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 3))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_77), T168_, 3);
		}
		goto LA163_;
		LA166_: ;
		{
			addAbiCheck_7WadOv2RgjtFVzQMS1aluQ(m, t, result);
		}
		LA163_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		{
			NIM_BOOL T173_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* cppName;
			NI i;
			NI chunkStart;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T242_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* typedefName;
			tyArray_qTjAvTvKF9anytN1At69aJMQ T243_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T244_;
			NimStringDesc* T245_;
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T246_;
			T173_ = (NIM_BOOL)0;
			T173_ = isImportedCppType_UCeqXNU9bJdSIbOIWbb0zng(t);
			if (!(T173_)) goto LA174_;
			T173_ = ((*origTyp).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 11));
			LA174_: ;
			if (!T173_) goto LA175_;
			cppName = getTypeName_YqOY29b9aUiJ9bpv9bRbgamVlA_3(m, t, sig);
			i = ((NI) 0);
			chunkStart = ((NI) 0);
			{
				while (1) {
					if (!(i < ((*cppName).data ? (*cppName).data->Sup.len : 0))) goto LA178;
					{
						NI chunkEnd;
						NI idx;
						NI stars;
						if (!((NU8)((*cppName).data->data[i]) == (NU8)(39))) goto LA181_;
						chunkEnd = (NI)(i - ((NI) 1));
						idx = (NI)0;
						stars = (NI)0;
						{
							NIM_BOOL T185_;
							NimStringDesc* T188_;
							tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typeInSlot;
							T185_ = (NIM_BOOL)0;
							T185_ = scanCppGenericSlot_duLZKxkzK247jEYF4jUfog((*cppName).data, (&i), (&idx), (&stars));
							if (!T185_) goto LA186_;
							T188_ = (NimStringDesc*)0;
							T188_ = substr_TWXUwbnq0SWWvDLfr8LXYw((*cppName).data, chunkStart, chunkEnd);
							add_yG4AKzsBRS1W4MANDlXQeg(&result, T188_);
							chunkStart = i;
							typeInSlot = resolveStarsInCppType_xwSObpAAR9cXwGaH7j8BclQ(origTyp, (NI)(idx + ((NI) 1)), stars);
							{
								NIM_BOOL T191_;
								tyArray_qTjAvTvKF9anytN1At69aJMQ T195_;
								tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T196_;
								T191_ = (NIM_BOOL)0;
								T191_ = (typeInSlot == NIM_NIL);
								if (T191_) goto LA192_;
								T191_ = ((*typeInSlot).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 63));
								LA192_: ;
								if (!T191_) goto LA193_;
								nimZeroMem((void*)T195_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
								T196_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
								T196_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_17), T195_, 0);
								add_iMTw0CDaruwETLGb9bhpBLg(&result, T196_);
							}
							goto LA189_;
							LA193_: ;
							{
								NimStringDesc* T205_;
								if (!((*typeInSlot).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 60))) goto LA198_;
								{
									NimStringDesc* T204_;
									if (!!(!(((*typeInSlot).n == NIM_NIL)))) goto LA202_;
									T204_ = (NimStringDesc*)0;
									T204_ = dollar__E5ya0OOlyISUCw4ENFn9bLA(TM_MQdRN7fpbG7rPm4JpVVAhA_79);
									internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, T204_);
								}
								LA202_: ;
								T205_ = (NimStringDesc*)0;
								T205_ = renderTree_ppjdh9aQ5L0SGPF8yz1gZ9cA((*typeInSlot).n, 0);
								add_yG4AKzsBRS1W4MANDlXQeg(&result, T205_);
							}
							goto LA189_;
							LA198_: ;
							{
								tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T207_;
								T207_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
								T207_ = getTypeDescAux_b9ct3XPU1ucWY6A76XYVIRQ(m, typeInSlot, check);
								add_iMTw0CDaruwETLGb9bhpBLg(&result, T207_);
							}
							LA189_: ;
						}
						LA186_: ;
					}
					goto LA179_;
					LA181_: ;
					{
						i += ((NI) 1);
					}
					LA179_: ;
				} LA178: ;
			}
			{
				NimStringDesc* T213_;
				if (!!((chunkStart == ((NI) 0)))) goto LA211_;
				T213_ = (NimStringDesc*)0;
				T213_ = substr_9bUFQ4OV1temcDF0GZp317g((*cppName).data, chunkStart);
				add_yG4AKzsBRS1W4MANDlXQeg(&result, T213_);
			}
			goto LA209_;
			LA211_: ;
			{
				result = amp__Z7W1o5nPSc3ExfO5f7j1Gg(cppName, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_81));
				{
					NI i_2;
					NI colontmp_;
					NI T216_;
					NI res;
					i_2 = (NI)0;
					colontmp_ = (NI)0;
					T216_ = (NI)0;
					T216_ = len_SWFNCiWYB89bTUPh5KptkvA_2(origTyp);
					colontmp_ = (NI)(T216_ - ((NI) 2));
					res = ((NI) 1);
					{
						while (1) {
							if (!(res <= colontmp_)) goto LA218;
							i_2 = res;
							{
								if (!(((NI) 1) < i_2)) goto LA221_;
								add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_82));
							}
							LA221_: ;
							{
								NIM_BOOL T225_;
								tyArray_qTjAvTvKF9anytN1At69aJMQ T229_;
								tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T230_;
								T225_ = (NIM_BOOL)0;
								T225_ = ((*origTyp).sons->data[i_2] == NIM_NIL);
								if (T225_) goto LA226_;
								T225_ = ((*(*origTyp).sons->data[i_2]).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 63));
								LA226_: ;
								if (!T225_) goto LA227_;
								nimZeroMem((void*)T229_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
								T230_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
								T230_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_17), T229_, 0);
								add_iMTw0CDaruwETLGb9bhpBLg(&result, T230_);
							}
							goto LA223_;
							LA227_: ;
							{
								NimStringDesc* T239_;
								if (!((*(*origTyp).sons->data[i_2]).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 60))) goto LA232_;
								{
									NimStringDesc* T238_;
									if (!!(!(((*(*origTyp).sons->data[i_2]).n == NIM_NIL)))) goto LA236_;
									T238_ = (NimStringDesc*)0;
									T238_ = dollar__E5ya0OOlyISUCw4ENFn9bLA(TM_MQdRN7fpbG7rPm4JpVVAhA_79);
									internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, T238_);
								}
								LA236_: ;
								T239_ = (NimStringDesc*)0;
								T239_ = renderTree_ppjdh9aQ5L0SGPF8yz1gZ9cA((*(*origTyp).sons->data[i_2]).n, 0);
								add_yG4AKzsBRS1W4MANDlXQeg(&result, T239_);
							}
							goto LA223_;
							LA232_: ;
							{
								tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T241_;
								T241_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
								T241_ = getTypeDescAux_b9ct3XPU1ucWY6A76XYVIRQ(m, (*origTyp).sons->data[i_2], check);
								add_iMTw0CDaruwETLGb9bhpBLg(&result, T241_);
							}
							LA223_: ;
							res += ((NI) 1);
						} LA218: ;
					}
				}
				add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_83));
			}
			LA209_: ;
			T242_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T242_ = getRecordDesc_vzSD6iEXWdLqlpGRes6nRg(m, t, result, check);
			T242_;
			nimZeroMem((void*)T243_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
			T244_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T244_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_114), T243_, 0);
			T245_ = (NimStringDesc*)0;
			T245_ = dollar__cjda4doS9ccFOjsWsGu9aa2A(sig);
			typedefName = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T244_, T245_);
			nimZeroMem((void*)T246_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T246_[0] = result;
			T246_[1] = typedefName;
			addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 3))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_115), T246_, 2);
			X5BX5Deq__TRBnfbwbN7k5UwqVgDGskg((&(*m).typeCache), sig, typedefName);
			result = typedefName;
		}
		goto LA171_;
		LA175_: ;
		{
			result = cacheGetType_68rAJ2TnRtuRwChs7t9bVaw((*m).forwTypeCache, sig);
			{
				if (!(result == NIM_NIL)) goto LA250_;
				result = getTypeName_YqOY29b9aUiJ9bpv9bRbgamVlA_3(m, origTyp, sig);
				X5BX5Deq__TRBnfbwbN7k5UwqVgDGskg((&(*m).forwTypeCache), sig, result);
				{
					NIM_BOOL T254_;
					NimStringDesc* T257_;
					tyArray_mrugoXXRZUEeG9bEXo9auBKw T258_;
					T254_ = (NIM_BOOL)0;
					T254_ = isImportedType_UCeqXNU9bJdSIbOIWbb0zng_2(t);
					if (!!(T254_)) goto LA255_;
					T257_ = (NimStringDesc*)0;
					T257_ = getForwardStructFormat_t01JLpAK9aOL9cL9b3RHWchaQ(m);
					nimZeroMem((void*)T258_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
					T258_[0] = structOrUnion_TLFDupRCidtMx8175pusWQ(t);
					T258_[1] = result;
					addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 2))- 0], T257_, T258_, 2);
				}
				LA255_: ;
			}
			LA250_: ;
			X5BX5Deq__TRBnfbwbN7k5UwqVgDGskg((&(*m).typeCache), sig, result);
			{
				NIM_BOOL T261_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* recdesc;
				T261_ = (NIM_BOOL)0;
				T261_ = !(((*t).sym == NIM_NIL));
				if (!(T261_)) goto LA262_;
				T261_ = ((272 & (*(*t).sym).flags) == 16);
				LA262_: ;
				if (!!(T261_)) goto LA263_;
				{
					if (!!(((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18)))) goto LA267_;
					recdesc = getRecordDesc_vzSD6iEXWdLqlpGRes6nRg(m, t, result, check);
				}
				goto LA265_;
				LA267_: ;
				{
					recdesc = getTupleDesc_vzSD6iEXWdLqlpGRes6nRg_2(m, t, result, check);
				}
				LA265_: ;
				{
					NIM_BOOL T272_;
					T272_ = (NIM_BOOL)0;
					T272_ = isImportedType_UCeqXNU9bJdSIbOIWbb0zng_2(t);
					if (!!(T272_)) goto LA273_;
					add_iMTw0CDaruwETLGb9bhpBLg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 3))- 0], recdesc);
				}
				goto LA270_;
				LA273_: ;
				{
					if (!!((((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 0))&63U)))!=0))) goto LA276_;
					addAbiCheck_7WadOv2RgjtFVzQMS1aluQ(m, t, result);
				}
				goto LA270_;
				LA276_: ;
				LA270_: ;
			}
			LA263_: ;
		}
		LA171_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 19):
	{
		NimStringDesc* T279_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T280_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T281_;
		tyArray_qtqsWM5aXmcpMIVmvq3kAA T282_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T283_;
		T279_ = (NimStringDesc*)0;
		T279_ = rawNewString((reprEnum((NI)(*t).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*t).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 1);
appendString(T279_, reprEnum((NI)(*t).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
appendChar(T279_, 95);
		T280_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T280_ = lastSon_ab52xel9cFebv9am0xV04xXA(t);
		T281_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T281_ = lastSon_ab52xel9cFebv9am0xV04xXA(t);
		nimZeroMem((void*)T282_, sizeof(tyArray_qtqsWM5aXmcpMIVmvq3kAA));
		hashType_qLlmI8qzKQaMa2k5LnfLZQ(T281_, 2, T282_);
		T283_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T283_ = getTypeName_YqOY29b9aUiJ9bpv9bRbgamVlA_3(m, T280_, T282_);
		result = amp__4cYKitaHx6RQ9azRtQsZp6w(T279_, T283_);
		X5BX5Deq__TRBnfbwbN7k5UwqVgDGskg((&(*m).typeCache), sig, result);
		{
			NIM_BOOL T286_;
			NI s;
			NI64 T289_;
			T286_ = (NIM_BOOL)0;
			T286_ = isImportedType_UCeqXNU9bJdSIbOIWbb0zng_2(t);
			if (!!(T286_)) goto LA287_;
			T289_ = (NI64)0;
			T289_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*m).g).config, t);
			s = ((NI) (T289_));
			switch (s) {
			case ((NI) 1):
			case ((NI) 2):
			case ((NI) 4):
			case ((NI) 8):
			{
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T291_;
				nimZeroMem((void*)T291_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T291_[0] = result;
				T291_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((NI)(s * ((NI) 8)))));
				addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 3))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_119), T291_, 2);
			}
			break;
			default:
			{
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T293_;
				NI64 T294_;
				nimZeroMem((void*)T293_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T293_[0] = result;
				T294_ = (NI64)0;
				T294_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*m).g).config, t);
				T293_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(T294_);
				addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 3))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_120), T293_, 2);
			}
			break;
			}
		}
		LA287_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 11):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 13):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 15):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 8):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 4):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 46):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 52):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 53):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 55):
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T296_;
		T296_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T296_ = lastSon_ab52xel9cFebv9am0xV04xXA(t);
		result = getTypeDescAux_b9ct3XPU1ucWY6A76XYVIRQ(m, T296_, check);
	}
	break;
	default:
	{
		NimStringDesc* T298_;
		T298_ = (NimStringDesc*)0;
		T298_ = rawNewString((reprEnum((NI)(*t).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*t).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 16);
appendString(T298_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_121));
appendString(T298_, reprEnum((NI)(*t).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
appendChar(T298_, 41);
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, T298_);
		result = NIM_NIL;
	}
	break;
	}
	excl_iUpE9bYmIR0fROyJskQwN8g_2(check, (*t).Sup.id);
	}BeforeRet_: ;
	return result;
}

static N_INLINE(NIM_BOOL, isCompileTimeOnly_xUyAbEic5Yj9bmdDArJbHkQcgen)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((IL64(1152921504606847232) &((NU64)1<<((NU)((*t).kind)&63U)))!=0);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, mangleParamName_lo8D59ciMfLVeiUtGYx89bOg_2)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	result = (*s).loc.r;
	{
		NimStringDesc* res;
		if (!(result == NIM_NIL)) goto LA3_;
		res = mangle_0ctHksTXSPyaxjBOgK4TiA((*(*s).name).s);
		{
			NIM_BOOL T7_;
			T7_ = (NIM_BOOL)0;
			T7_ = isKeyword_JVm6AvAuiqeC9aA9a1rRrvdA((*s).name);
			if (T7_) goto LA8_;
			T7_ = contains_qPuW69bRJcGQk5Myyhjt9czg((*(*(*m).g).config).cppDefines, res);
			LA8_: ;
			if (!T7_) goto LA9_;
			res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_106));
		}
		LA9_: ;
		result = rope_yShmEg9cffWxI7s5XzEKBow(res);
		asgnRefNoCycle((void**) (&(*s).loc.r), result);
		{
			if (!(*m).ndi.enabled) goto LA13_;
			doWrite_aAmUxeQnfkTtpV5YOU4LEQ((&(*m).ndi), s, (*(*m).g).config);
		}
		LA13_: ;
	}
	LA3_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw, paramStorageLoc_EctI19c2ZiDgYiYfg7OVKDA)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* param) {
	tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw result;
	result = (tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw)0;
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T3_;
		T3_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T3_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*param).typ, IL64(140737496744192));
		if (!!(((IL64(281475110993920) &((NU64)1<<((NU)((*T3_).kind)&63U)))!=0))) goto LA4_;
		result = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 2);
	}
	goto LA1_;
	LA4_: ;
	{
		result = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0);
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, ccgIntroducedPtr_A23DSI2AFKphIXH0nXWePw)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s) {
	NIM_BOOL result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* pt;
{	result = (NIM_BOOL)0;
	pt = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*s).typ, IL64(36099165763184912));
	{
		if (!(((*pt).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 14))&63U)))!=0)) goto LA3_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	goto LA1_;
	LA3_: ;
	{
		if (!(((*pt).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 13))&63U)))!=0)) goto LA6_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	goto LA1_;
	LA6_: ;
	LA1_: ;
	switch ((*pt).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17):
	{
		{
			NIM_BOOL T11_;
			T11_ = (NIM_BOOL)0;
			T11_ = !(((*(*s).typ).sym == NIM_NIL));
			if (!(T11_)) goto LA12_;
			T11_ = (((*(*(*s).typ).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 4))&63U)))!=0);
			LA12_: ;
			if (!T11_) goto LA13_;
			result = NIM_TRUE;
		}
		goto LA9_;
		LA13_: ;
		{
			NIM_BOOL T16_;
			NI64 T18_;
			T16_ = (NIM_BOOL)0;
			T16_ = (((*s).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 19))&31U)))!=0);
			if (T16_) goto LA17_;
			T18_ = (NI64)0;
			T18_ = getSize_vCG1GF2Iu043oALVyuJfOw(conf, pt);
			T16_ = (((NI64) ((NI)((*conf).target.floatSize * ((NI) 3)))) < T18_);
			LA17_: ;
			if (!T16_) goto LA19_;
			result = NIM_TRUE;
		}
		goto LA9_;
		LA19_: ;
		{
			NIM_BOOL T22_;
			T22_ = (NIM_BOOL)0;
			T22_ = (((*pt).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 2))&63U)))!=0);
			if (!(T22_)) goto LA23_;
			T22_ = ((*pt).sons->data[((NI) 0)] == NIM_NIL);
			LA23_: ;
			if (!T22_) goto LA24_;
			result = NIM_FALSE;
		}
		goto LA9_;
		LA24_: ;
		{
			result = NIM_TRUE;
		}
		LA9_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		NIM_BOOL T28_;
		NI64 T29_;
		T28_ = (NIM_BOOL)0;
		T29_ = (NI64)0;
		T29_ = getSize_vCG1GF2Iu043oALVyuJfOw(conf, pt);
		T28_ = (((NI64) ((NI)((*conf).target.floatSize * ((NI) 3)))) < T29_);
		if (T28_) goto LA30_;
		T28_ = (((*s).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 19))&31U)))!=0);
		LA30_: ;
		result = T28_;
	}
	break;
	default:
	{
		result = NIM_FALSE;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w, mapReturnType_K9aceyVl15zb9aYN9b6YJ8TnA_3)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w result;
	result = (tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w)0;
	result = mapType_K9aceyVl15zb9aYN9b6YJ8TnA(conf, typ);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genProcParams_SfuybNN12GV8YqiojEK9asA)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** rettype, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** params, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* check, NIM_BOOL declareEnvironment, NIM_BOOL weakDep) {
	unsureAsgnRef((void**) (&(*params)), NIM_NIL);
	{
		NIM_BOOL T3_;
		tyArray_qTjAvTvKF9anytN1At69aJMQ T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*t).sons->data[((NI) 0)] == NIM_NIL);
		if (T3_) goto LA4_;
		T3_ = isInvalidReturnType_ugBeCbo3I6LqXHcpCBFN9ag((*(*m).g).config, (*t).sons->data[((NI) 0)]);
		LA4_: ;
		if (!T3_) goto LA5_;
		nimZeroMem((void*)T7_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		unsureAsgnRef((void**) (&(*rettype)), percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_17), T7_, 0));
	}
	goto LA1_;
	LA5_: ;
	{
		unsureAsgnRef((void**) (&(*rettype)), getTypeDescAux_b9ct3XPU1ucWY6A76XYVIRQ(m, (*t).sons->data[((NI) 0)], check));
	}
	LA1_: ;
	{
		NI i;
		NI colontmp_;
		NI T10_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T10_ = (NI)0;
		T10_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig((*t).n);
		colontmp_ = (NI)(T10_ - ((NI) 1));
		res = ((NI) 1);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA12;
				i = res;
				{
					tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* param;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T29_;
					tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw T30_;
					tyArray_qTjAvTvKF9anytN1At69aJMQ T45_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T46_;
					tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* arr;
					NI j;
					{
						if (!!(((*(*(*t).n)._Ukind.S6.sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA16_;
						internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*m).g).config, (*(*t).n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_122));
					}
					LA16_: ;
					param = (*(*(*t).n)._Ukind.S6.sons->data[i])._Ukind.S4.sym;
					{
						NIM_BOOL T20_;
						T20_ = (NIM_BOOL)0;
						T20_ = isCompileTimeOnly_xUyAbEic5Yj9bmdDArJbHkQcgen((*param).typ);
						if (!T20_) goto LA21_;
						goto LA13;
					}
					LA21_: ;
					{
						tyArray_qTjAvTvKF9anytN1At69aJMQ T27_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T28_;
						if (!!(((*params) == NIM_NIL))) goto LA25_;
						nimZeroMem((void*)T27_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
						T28_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T28_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_123), T27_, 0);
						add_iMTw0CDaruwETLGb9bhpBLg(params, T28_);
					}
					LA25_: ;
					T29_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T29_ = mangleParamName_lo8D59ciMfLVeiUtGYx89bOg_2(m, param);
					T30_ = (tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw)0;
					T30_ = paramStorageLoc_EctI19c2ZiDgYiYfg7OVKDA(param);
					fillLoc_US6BUWbxbS9bTHtpMCqKFkw((&(*param).loc), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 4), (*(*t).n)._Ukind.S6.sons->data[i], T29_, T30_);
					{
						NIM_BOOL T33_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T36_;
						tyArray_qTjAvTvKF9anytN1At69aJMQ T37_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T38_;
						T33_ = (NIM_BOOL)0;
						T33_ = ccgIntroducedPtr_A23DSI2AFKphIXH0nXWePw((*(*m).g).config, param);
						if (!T33_) goto LA34_;
						T36_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T36_ = getTypeDescWeak_JZoY3V0DBP4Cmkp6h3BcEw(m, (*param).typ, check);
						add_iMTw0CDaruwETLGb9bhpBLg(params, T36_);
						nimZeroMem((void*)T37_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
						T38_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T38_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_46), T37_, 0);
						add_iMTw0CDaruwETLGb9bhpBLg(params, T38_);
						(*param).loc.flags |= ((NU16)1)<<((((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 0))%(sizeof(NU16)*8));
						(*param).loc.storage = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0);
					}
					goto LA31_;
					LA34_: ;
					{
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T42_;
						if (!weakDep) goto LA40_;
						T42_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T42_ = getTypeDescWeak_JZoY3V0DBP4Cmkp6h3BcEw(m, (*param).typ, check);
						add_iMTw0CDaruwETLGb9bhpBLg(params, T42_);
					}
					goto LA31_;
					LA40_: ;
					{
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T44_;
						T44_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T44_ = getTypeDescAux_b9ct3XPU1ucWY6A76XYVIRQ(m, (*param).typ, check);
						add_iMTw0CDaruwETLGb9bhpBLg(params, T44_);
					}
					LA31_: ;
					nimZeroMem((void*)T45_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
					T46_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T46_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_86), T45_, 0);
					add_iMTw0CDaruwETLGb9bhpBLg(params, T46_);
					add_iMTw0CDaruwETLGb9bhpBLg(params, (*param).loc.r);
					arr = (*param).typ;
					{
						if (!((IL64(140737496743936) &((NU64)1<<((NU)((*arr).kind)&63U)))!=0)) goto LA49_;
						arr = lastSon_ab52xel9cFebv9am0xV04xXA(arr);
					}
					LA49_: ;
					j = ((NI) 0);
					{
						while (1) {
							tyArray_mrugoXXRZUEeG9bEXo9auBKw T57_;
							if (!((IL64(281475110928384) &((NU64)1<<((NU)((*arr).kind)&63U)))!=0)) goto LA52;
							{
								if (!((IL64(140737496743936) &((NU64)1<<((NU)((*(*param).typ).kind)&63U)))!=0)) goto LA55_;
								(*param).loc.storage = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0);
							}
							LA55_: ;
							nimZeroMem((void*)T57_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
							T57_[0] = (*param).loc.r;
							T57_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (j)));
							addf_ocEHZ9cujtqicXvDuJUm5pg(params, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_124), T57_, 2);
							j += ((NI) 1);
							arr = (*arr).sons->data[((NI) 0)];
						} LA52: ;
					}
				} LA13: ;
				res += ((NI) 1);
			} LA12: ;
		}
	}
	{
		NIM_BOOL T60_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* arr_2;
		tyArray_qTjAvTvKF9anytN1At69aJMQ T76_;
		T60_ = (NIM_BOOL)0;
		T60_ = !(((*t).sons->data[((NI) 0)] == NIM_NIL));
		if (!(T60_)) goto LA61_;
		T60_ = isInvalidReturnType_ugBeCbo3I6LqXHcpCBFN9ag((*(*m).g).config, (*t).sons->data[((NI) 0)]);
		LA61_: ;
		if (!T60_) goto LA62_;
		arr_2 = (*t).sons->data[((NI) 0)];
		{
			if (!!(((*params) == NIM_NIL))) goto LA66_;
			add_yG4AKzsBRS1W4MANDlXQeg(params, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_123));
		}
		LA66_: ;
		{
			tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w T70_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T73_;
			T70_ = (tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w)0;
			T70_ = mapReturnType_K9aceyVl15zb9aYN9b6YJ8TnA_3((*(*m).g).config, (*t).sons->data[((NI) 0)]);
			if (!!((T70_ == ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 17)))) goto LA71_;
			T73_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T73_ = getTypeDescWeak_JZoY3V0DBP4Cmkp6h3BcEw(m, arr_2, check);
			add_iMTw0CDaruwETLGb9bhpBLg(params, T73_);
			add_yG4AKzsBRS1W4MANDlXQeg(params, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_46));
		}
		goto LA68_;
		LA71_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T75_;
			T75_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T75_ = getTypeDescAux_b9ct3XPU1ucWY6A76XYVIRQ(m, arr_2, check);
			add_iMTw0CDaruwETLGb9bhpBLg(params, T75_);
		}
		LA68_: ;
		nimZeroMem((void*)T76_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		addf_ocEHZ9cujtqicXvDuJUm5pg(params, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_125), T76_, 0);
	}
	LA62_: ;
	{
		NIM_BOOL T79_;
		T79_ = (NIM_BOOL)0;
		T79_ = ((*t).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8));
		if (!(T79_)) goto LA80_;
		T79_ = declareEnvironment;
		LA80_: ;
		if (!T79_) goto LA81_;
		{
			if (!!(((*params) == NIM_NIL))) goto LA85_;
			add_yG4AKzsBRS1W4MANDlXQeg(params, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_123));
		}
		LA85_: ;
		add_yG4AKzsBRS1W4MANDlXQeg(params, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_126));
	}
	LA81_: ;
	{
		if (!(((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 0))&63U)))!=0)) goto LA89_;
		{
			if (!!(((*params) == NIM_NIL))) goto LA93_;
			add_yG4AKzsBRS1W4MANDlXQeg(params, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_123));
		}
		LA93_: ;
		add_yG4AKzsBRS1W4MANDlXQeg(params, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_127));
	}
	LA89_: ;
	{
		if (!((*params) == NIM_NIL)) goto LA97_;
		add_yG4AKzsBRS1W4MANDlXQeg(params, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_128));
	}
	goto LA95_;
	LA97_: ;
	{
		add_yG4AKzsBRS1W4MANDlXQeg(params, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_129));
	}
	LA95_: ;
	unsureAsgnRef((void**) (&(*params)), amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_130), (*params)));
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genProcHeader_uPFGxWOkwQtDerpzAqNn9aw)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* rettype;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* params;
	tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg check;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T16_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	rettype = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	params = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	genCLineDir_8gOq38UiI9arVxZ9at35m22Q(&result, (*prc).info, (*(*m).g).config);
	{
		if (!(((*prc).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 5))&15U)))!=0)) goto LA3_;
		{
			if (!(((*m).flags &(1U<<((NU)(((tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q) 3))&7U)))!=0)) goto LA7_;
			add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_10));
		}
		goto LA5_;
		LA7_: ;
		{
			add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_11));
		}
		LA5_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		if (!((*(*prc).typ).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 5))) goto LA11_;
		add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_12));
	}
	goto LA1_;
	LA11_: ;
	{
		if (!((96 & (*prc).flags) == 0)) goto LA14_;
		add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_13));
	}
	goto LA1_;
	LA14_: ;
	LA1_: ;
	nimZeroMem((void*)(&check), sizeof(tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg));
	initIntSet_a9a80eJplB17xrdZJ41Baww((&check));
	T16_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T16_ = mangleName_lo8D59ciMfLVeiUtGYx89bOg(m, prc);
	fillLoc_US6BUWbxbS9bTHtpMCqKFkw((&(*prc).loc), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 7), (*(*prc).ast)._Ukind.S6.sons->data[((NI) 0)], T16_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	genProcParams_SfuybNN12GV8YqiojEK9asA(m, (*prc).typ, &rettype, &params, (&check), NIM_TRUE, NIM_FALSE);
	{
		tyArray_f7nG5LD47BH5K9c6mASit3g T21_;
		if (!((*prc).constraint == 0)) goto LA19_;
		nimZeroMem((void*)T21_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
		T21_[0] = rope_yShmEg9cffWxI7s5XzEKBow(CallingConvToStr_A7GdKVVGtI3pvj9cV9adydpw[((*(*prc).typ).callConv)- 0]);
		T21_[1] = rettype;
		T21_[2] = (*prc).loc.r;
		T21_[3] = params;
		addf_ocEHZ9cujtqicXvDuJUm5pg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_131), T21_, 4);
	}
	goto LA17_;
	LA19_: ;
	{
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T23_;
		nimZeroMem((void*)T23_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T23_[0] = rettype;
		T23_[1] = (*prc).loc.r;
		T23_[2] = params;
		result = percent__9bvKdnhoYI2ta9agQNm3orMA((*(*prc).constraint)._Ukind.S3.strVal, T23_, 3);
	}
	LA17_: ;
	return result;
}

static N_INLINE(NI, len_CdME9baJhvveuPEDZE9bXoxAsigmatch)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	NI T1_;
	result = (NI)0;
	T1_ = ((*n)._Ukind.S6.sons ? (*n)._Ukind.S6.sons->Sup.len : 0);
	result = T1_;
	return result;
}

static N_INLINE(NI, safeLen_CdME9baJhvveuPEDZE9bXoxArenderer)(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_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsResult_6sY5yTLspKSvipAn7QLtbg)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
		if (!(T3_)) goto LA4_;
		T3_ = ((*(*n)._Ukind.S4.sym).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 11));
		LA4_: ;
		if (!T3_) goto LA5_;
		result = NIM_TRUE;
	}
	goto LA1_;
	LA5_: ;
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen_CdME9baJhvveuPEDZE9bXoxArenderer(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA10;
					i = i_2;
					{
						NIM_BOOL T13_;
						T13_ = (NIM_BOOL)0;
						T13_ = containsResult_6sY5yTLspKSvipAn7QLtbg((*n)._Ukind.S6.sons->data[i]);
						if (!T13_) goto LA14_;
						result = NIM_TRUE;
						goto BeforeRet_;
					}
					LA14_: ;
					i_2 += ((NI) 1);
				} LA10: ;
			}
		}
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, easyResultAsgn_1TL9cg0ds6vTtfhbmuTNGBA)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
{	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 115):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 126):
	{
		NI i;
		i = ((NI) 0);
		{
			while (1) {
				NIM_BOOL T4_;
				NI T5_;
				T4_ = (NIM_BOOL)0;
				T5_ = (NI)0;
				T5_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
				T4_ = (i < T5_);
				if (!(T4_)) goto LA6_;
				T4_ = ((*(*n)._Ukind.S6.sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1) || (*(*n)._Ukind.S6.sons->data[i]).kind >= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 79) && (*(*n)._Ukind.S6.sons->data[i]).kind <= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 84) || (*(*n)._Ukind.S6.sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 98) || (*(*n)._Ukind.S6.sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 101) || (*(*n)._Ukind.S6.sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 125) || (*(*n)._Ukind.S6.sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 159));
				LA6_: ;
				if (!T4_) goto LA3;
				i += ((NI) 1);
			} LA3: ;
		}
		{
			NI T9_;
			T9_ = (NI)0;
			T9_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
			if (!(i < T9_)) goto LA10_;
			result = easyResultAsgn_1TL9cg0ds6vTtfhbmuTNGBA((*n)._Ukind.S6.sons->data[i]);
		}
		LA10_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 73):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 74):
	{
		{
			NIM_BOOL T15_;
			NIM_BOOL T16_;
			NIM_BOOL T19_;
			T15_ = (NIM_BOOL)0;
			T16_ = (NIM_BOOL)0;
			T16_ = ((*(*n)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T16_)) goto LA17_;
			T16_ = ((*(*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 11));
			LA17_: ;
			T15_ = T16_;
			if (!(T15_)) goto LA18_;
			T19_ = (NIM_BOOL)0;
			T19_ = containsResult_6sY5yTLspKSvipAn7QLtbg((*n)._Ukind.S6.sons->data[((NI) 1)]);
			T15_ = !(T19_);
			LA18_: ;
			if (!T15_) goto LA20_;
			(*n).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag_jyh9acXHkhZANSSvPIY7ZLg) 14))%(sizeof(NU32)*8));
			result = (*n)._Ukind.S6.sons->data[((NI) 1)];
			goto BeforeRet_;
		}
		LA20_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 109):
	{
		{
			NI T25_;
			T25_ = (NI)0;
			T25_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
			if (!(((NI) 0) < T25_)) goto LA26_;
			result = easyResultAsgn_1TL9cg0ds6vTtfhbmuTNGBA((*n)._Ukind.S6.sons->data[((NI) 0)]);
			{
				if (!!((result == NIM_NIL))) goto LA30_;
				(*n).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag_jyh9acXHkhZANSSvPIY7ZLg) 14))%(sizeof(NU32)*8));
			}
			LA30_: ;
		}
		LA26_: ;
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}

static N_INLINE(void, shallow_67KGEOtDSAz3i9cPDqgyaCwmsgs)(NimStringDesc** s) {
	TGenericSeq* s_2;
	s_2 = ((TGenericSeq*) ((*s)));
	{
		if (!((NI)((*s_2).reserved & ((NI) IL64(4611686018427387904))) == ((NI) 0))) goto LA3_;
		(*s_2).reserved = (NI)((*s_2).reserved | ((NI) (IL64(-9223372036854775807) - IL64(1))));
	}
	LA3_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, mangleLocalName_VpV5Cmis02zaNlTmLYJNfQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	result = (*s).loc.r;
	{
		NimStringDesc* key;
		NI counter;
		if (!(result == NIM_NIL)) goto LA3_;
		key = mangle_0ctHksTXSPyaxjBOgK4TiA((*(*s).name).s);
		shallow_67KGEOtDSAz3i9cPDqgyaCwmsgs((&key));
		counter = getOrDefault_8vBSbDe2Qj1xnvhBImE2Cw((*p).sigConflicts, key);
		result = rope_yShmEg9cffWxI7s5XzEKBow(key);
		{
			if (!((*s).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 5))) goto LA7_;
			{
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T13_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
				if (!!((counter == ((NI) 0)))) goto LA11_;
				T13_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T13_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((NI)(counter + ((NI) 1)))));
				T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T14_ = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_3), T13_);
				add_iMTw0CDaruwETLGb9bhpBLg(&result, T14_);
			}
			LA11_: ;
		}
		goto LA5_;
		LA7_: ;
		{
			NIM_BOOL T16_;
			NIM_BOOL T17_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T22_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T23_;
			T16_ = (NIM_BOOL)0;
			T17_ = (NIM_BOOL)0;
			T17_ = !((counter == ((NI) 0)));
			if (T17_) goto LA18_;
			T17_ = isKeyword_JVm6AvAuiqeC9aA9a1rRrvdA((*s).name);
			LA18_: ;
			T16_ = T17_;
			if (T16_) goto LA19_;
			T16_ = contains_qPuW69bRJcGQk5Myyhjt9czg((*(*(*(*p).module).g).config).cppDefines, key);
			LA19_: ;
			if (!T16_) goto LA20_;
			T22_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T22_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((NI)(counter + ((NI) 1)))));
			T23_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T23_ = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_3), T22_);
			add_iMTw0CDaruwETLGb9bhpBLg(&result, T23_);
		}
		goto LA5_;
		LA20_: ;
		LA5_: ;
		inc_YksznXEZ19bxdCUr6TgeIRg((&(*p).sigConflicts), key, ((NI) 1));
		asgnRefNoCycle((void**) (&(*s).loc.r), result);
		{
			if (!!(((*s).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 5)))) goto LA26_;
			{
				if (!(*(*p).module).ndi.enabled) goto LA30_;
				doWrite_aAmUxeQnfkTtpV5YOU4LEQ((&(*(*p).module).ndi), s, (*(*(*p).module).g).config);
			}
			LA30_: ;
		}
		LA26_: ;
	}
	LA3_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg check;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	nimZeroMem((void*)(&check), sizeof(tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg));
	initIntSet_a9a80eJplB17xrdZJ41Baww((&check));
	result = getTypeDescAux_b9ct3XPU1ucWY6A76XYVIRQ(m, typ, (&check));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, localVarDecl_NYI5fC69aIqZGRakncXv9cNQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	s = (*n)._Ukind.S4.sym;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T5_;
		if (!((*s).loc.k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA3_;
		T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T5_ = mangleLocalName_VpV5Cmis02zaNlTmLYJNfQ(p, s);
		fillLoc_US6BUWbxbS9bTHtpMCqKFkw((&(*s).loc), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 2), n, T5_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 2));
		{
			if (!((*s).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 9))) goto LA8_;
			(*s).loc.flags |= ((NU16)1)<<((((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 2))%(sizeof(NU16)*8));
		}
		LA8_: ;
	}
	LA3_: ;
	result = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, (*s).typ);
	{
		if (!((*s).constraint == 0)) goto LA12_;
		{
			if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 8))&63U)))!=0)) goto LA16_;
			add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_133));
		}
		LA16_: ;
		{
			if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 7))&63U)))!=0)) goto LA20_;
			add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_134));
		}
		LA20_: ;
		add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_86));
		add_iMTw0CDaruwETLGb9bhpBLg(&result, (*s).loc.r);
	}
	goto LA10_;
	LA12_: ;
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T23_;
		nimZeroMem((void*)T23_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T23_[0] = result;
		T23_[1] = (*s).loc.r;
		result = percent__9bvKdnhoYI2ta9agQNm3orMA((*(*s).constraint)._Ukind.S3.strVal, T23_, 2);
	}
	LA10_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, initLoc_z9bd78in9czXhMZLT0QNB5Tw)(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* result, tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg k, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* lode, tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw s) {
	(*result).k = k;
	(*result).storage = s;
	unsureAsgnRef((void**) (&(*result).lode), lode);
	unsureAsgnRef((void**) (&(*result).r), NIM_NIL);
	(*result).flags = 0;
}

N_LIB_PRIVATE N_NIMCALL(void, initLocExprSingleUse_9biTBaXPz9cezuLjjWw9cSEGw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* result) {
	initLoc_z9bd78in9czXhMZLT0QNB5Tw(result, ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0), e, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	(*result).flags |= ((NU16)1)<<((((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 8))%(sizeof(NU16)*8));
	expr_8mAL9ckajemzgfLPfeZVNoQ(p, e, result);
}

static N_INLINE(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**, s_oPjlsf0lwosYuh6KXhkqLQcgen)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg s) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** result;
	NI T1_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T1_ = ((*p).blocks ? (*p).blocks->Sup.len : 0);
	result = &(*p).blocks->data[(NI)(T1_ - ((NI) 1))].sections[(s)- 0];
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, indentLine_5PupwEBrKjp65kTtpnAp9bQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	result = r;
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = ((*p).blocks ? (*p).blocks->Sup.len : 0);
		colontmp_ = (NI)(T2_ - ((NI) 1));
		res = ((NI) 0);
		{
			while (1) {
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T5_;
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T5_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_135));
				prepend_iMTw0CDaruwETLGb9bhpBLg_2(&result, T5_);
				res += ((NI) 1);
			} LA4: ;
		}
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, linefmt_zZ8N2PtAlqFZKCp7nvAnhw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg s, NimStringDesc* frmt, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T2_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T3_;
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T1_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p, s);
	T2_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, frmt, args, argsLen_0);
	T3_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T3_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T2_);
	add_iMTw0CDaruwETLGb9bhpBLg(T1_, T3_);
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, rdLoc_xidyzuHqIciXbQyEOKahDg)(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	result = (*a).r;
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T5_;
		if (!(((*a).flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 0))&15U)))!=0)) goto LA3_;
		nimZeroMem((void*)T5_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T5_[0] = result;
		result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_137), T5_, 1);
	}
	LA3_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, line_7EHg9a9bBQrxiXUHES9aziKUQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg s, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T2_;
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T1_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p, s);
	T2_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, r);
	add_iMTw0CDaruwETLGb9bhpBLg(T1_, T2_);
}

N_LIB_PRIVATE N_NIMCALL(void, lineF_zMT5gX18xu8QE6ofSbgTAA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg s, NimStringDesc* frmt, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T2_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T3_;
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T1_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p, s);
	T2_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = percent__9bvKdnhoYI2ta9agQNm3orMA(frmt, args, argsLen_0);
	T3_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T3_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T2_);
	add_iMTw0CDaruwETLGb9bhpBLg(T1_, T3_);
}

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_fmeFeLBvgmAHG9bC8ETS9bYQropes)(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_fmeFeLBvgmAHG9bC8ETS9bYQropes(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
		goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genTypeInfoAuxBase_DJDWmH1yEAJQyS9cw8frFvg)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* origType, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* base, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info) {
	NI nimtypeKind;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* size;
	tyArray_f7nG5LD47BH5K9c6mASit3g T12_;
	NI flags;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T28_;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T53_;
	nimtypeKind = (NI)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isObjLackingTypeField_JIeDKK3bgEYJKEAkiaujRgcgen(typ);
		if (!T3_) goto LA4_;
		nimtypeKind = ((NI) 18);
	}
	goto LA1_;
	LA4_: ;
	{
		nimtypeKind = (*typ).kind;
	}
	LA1_: ;
	size = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!(((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 0))&63U)))!=0)) goto LA9_;
		size = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_145));
	}
	goto LA7_;
	LA9_: ;
	{
		size = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2(m, origType);
	}
	LA7_: ;
	nimZeroMem((void*)T12_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
	T12_[0] = name;
	T12_[1] = size;
	T12_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (nimtypeKind)));
	T12_[3] = base;
	addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_146), T12_, 4);
	flags = ((NI) 0);
	{
		NIM_BOOL T15_;
		T15_ = (NIM_BOOL)0;
		T15_ = containsGarbageCollectedRef_IVXYI9cxSeivThgKCncHRnA(typ);
		if (!!(T15_)) goto LA16_;
		flags = (NI)(flags | ((NI) 1));
	}
	LA16_: ;
	{
		NIM_BOOL T20_;
		T20_ = (NIM_BOOL)0;
		T20_ = canFormAcycle_IVXYI9cxSeivThgKCncHRnA_2(typ);
		if (!!(T20_)) goto LA21_;
		flags = (NI)(flags | ((NI) 2));
	}
	LA21_: ;
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T27_;
		if (!!((flags == ((NI) 0)))) goto LA25_;
		nimZeroMem((void*)T27_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T27_[0] = name;
		T27_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (flags)));
		addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_147), T27_, 2);
	}
	LA25_: ;
	T28_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T28_ = cgsym_0d9bDo5R2p09cv1ljqpC4l8Q(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_140));
	T28_;
	{
		NIM_BOOL T31_;
		NimStringDesc* typename_1;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T34_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T50_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T51_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T52_;
		T31_ = (NIM_BOOL)0;
		T31_ = isDefined_TeEHxEj0zXnJc9aUarshH9aA((*(*m).g).config, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_148));
		if (!T31_) goto LA32_;
		T34_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		{
			if (!!(((*origType).typeInst == NIM_NIL))) goto LA37_;
			T34_ = (*origType).typeInst;
		}
		goto LA35_;
		LA37_: ;
		{
			T34_ = origType;
		}
		LA35_: ;
		typename_1 = typeToString_QlvraUan7WbHowhAbvDvdA(T34_, ((tyEnum_TPreferedDesc_tnd4qt9c4xddV8oKV5zyusw) 0));
		{
			NIM_BOOL T42_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T44_;
			NimStringDesc* T47_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T48_;
			NimStringDesc* T49_;
			T42_ = (NIM_BOOL)0;
			T42_ = eqStrings(typename_1, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_149));
			if (!(T42_)) goto LA43_;
			T44_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T44_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(origType, IL64(36239903266179344));
			T42_ = !(((*T44_).sym == NIM_NIL));
			LA43_: ;
			if (!T42_) goto LA45_;
			T47_ = (NimStringDesc*)0;
			T48_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T48_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(origType, IL64(36239903266179344));
			T49_ = (NimStringDesc*)0;
			T49_ = dollar__tduYJIZOMabvcOCb9bVwWCA_2((*(*m).g).config, (*(*T48_).sym).info);
			T47_ = rawNewString((T49_ ? T49_->Sup.len : 0) + 21);
appendString(T47_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_150));
appendString(T47_, T49_);
			typename_1 = T47_;
		}
		LA45_: ;
		nimZeroMem((void*)T50_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T50_[0] = name;
		T50_[1] = makeCString_vQJydtKy4Nf6bXPYtbmjtg(typename_1);
		addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_151), T50_, 2);
		T51_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T51_ = cgsym_0d9bDo5R2p09cv1ljqpC4l8Q(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_152));
		T51_;
		nimZeroMem((void*)T52_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T52_[0] = name;
		addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_153), T52_, 1);
	}
	LA32_: ;
	nimZeroMem((void*)T53_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T53_[0] = name;
	addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_154), T53_, 1);
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, fakeClosureType_48KU8UNhiwiVAkHuaV7AfQ)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* owner) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* r;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* obj;
	result = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	result = newType_dQhKkL6uAkw83dy6l4d7iQ(((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18), owner);
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = newType_dQhKkL6uAkw83dy6l4d7iQ(((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 26), owner);
	rawAddSon_uZzh0IWnWErsZbQ8YFaRRA(result, T1_);
	r = newType_dQhKkL6uAkw83dy6l4d7iQ(((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22), owner);
	obj = createObj_hfiqaGhMR5vPI6kJc04yUw((*(*m).g).graph, owner, (*owner).info, NIM_FALSE);
	rawAddSon_uZzh0IWnWErsZbQ8YFaRRA(r, obj);
	rawAddSon_uZzh0IWnWErsZbQ8YFaRRA(result, r);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getNimNode_9cFzUT5Cyfi5u0F447WwLvA_2)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T1_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	nimZeroMem((void*)T1_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T1_[0] = (*m).typeNodesName;
	T1_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*m).typeNodes)));
	result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_157), T1_, 2);
	(*m).typeNodes += ((NI) 1);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genTupleInfo_ots5HriJRsUpoyVgDxkeuw)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* origType, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* expr;
	NI length;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T15_;
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
	genTypeInfoAuxBase_DJDWmH1yEAJQyS9cw8frFvg(m, typ, typ, name, T1_, info);
	expr = getNimNode_9cFzUT5Cyfi5u0F447WwLvA_2(m);
	length = sonsLen_SWFNCiWYB89bTUPh5KptkvA(typ);
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tmp;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T6_;
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T12_;
		if (!(((NI) 0) < length)) goto LA4_;
		tmp = getTempName_9cFzUT5Cyfi5u0F447WwLvA(m);
		nimZeroMem((void*)T6_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T6_[0] = tmp;
		T6_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (length)));
		addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 12))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_158), T6_, 2);
		{
			NI i;
			NI colontmp_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = (NI)(length - ((NI) 1));
			res = ((NI) 0);
			{
				while (1) {
					tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* a;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tmp2;
					tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T10_;
					tyArray_f7nG5LD47BH5K9c6mASit3g T11_;
					if (!(res <= colontmp_)) goto LA9;
					i = res;
					a = (*typ).sons->data[i];
					tmp2 = getNimNode_9cFzUT5Cyfi5u0F447WwLvA_2(m);
					nimZeroMem((void*)T10_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
					T10_[0] = tmp;
					T10_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (i)));
					T10_[2] = tmp2;
					addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_159), T10_, 3);
					nimZeroMem((void*)T11_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
					T11_[0] = tmp2;
					T11_[1] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2(m, origType);
					T11_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (i)));
					T11_[3] = genTypeInfo_7P9bdUkiYYdBWl5P39cGpERw(m, a, info);
					addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_160), T11_, 4);
					res += ((NI) 1);
				} LA9: ;
			}
		}
		nimZeroMem((void*)T12_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T12_[0] = expr;
		T12_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (length)));
		T12_[2] = tmp;
		addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_161), T12_, 3);
	}
	goto LA2_;
	LA4_: ;
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T14_;
		nimZeroMem((void*)T14_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T14_[0] = expr;
		T14_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (length)));
		addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_162), T14_, 2);
	}
	LA2_: ;
	nimZeroMem((void*)T15_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T15_[0] = name;
	T15_[1] = expr;
	addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_163), T15_, 2);
}

N_LIB_PRIVATE N_NIMCALL(void, genTypeInfoAux_ots5HriJRsUpoyVgDxkeuw_2)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* origType, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* base;
	base = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		NIM_BOOL T3_;
		NI T4_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T6_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* x;
		T3_ = (NIM_BOOL)0;
		T4_ = (NI)0;
		T4_ = sonsLen_SWFNCiWYB89bTUPh5KptkvA(typ);
		T3_ = (((NI) 0) < T4_);
		if (!(T3_)) goto LA5_;
		T6_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T6_ = lastSon_ab52xel9cFebv9am0xV04xXA(typ);
		T3_ = !((T6_ == NIM_NIL));
		LA5_: ;
		if (!T3_) goto LA7_;
		x = lastSon_ab52xel9cFebv9am0xV04xXA(typ);
		{
			if (!((*typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17))) goto LA11_;
			x = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(x, IL64(36239903266179344));
		}
		LA11_: ;
		{
			NIM_BOOL T15_;
			NIM_BOOL T16_;
			NIM_BOOL T19_;
			T15_ = (NIM_BOOL)0;
			T16_ = (NIM_BOOL)0;
			T16_ = ((*typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21));
			if (!(T16_)) goto LA17_;
			T16_ = ((*x).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17));
			LA17_: ;
			T15_ = T16_;
			if (!(T15_)) goto LA18_;
			T19_ = (NIM_BOOL)0;
			T19_ = !(((*x).sym == NIM_NIL));
			if (!(T19_)) goto LA20_;
			T19_ = ((272 & (*(*x).sym).flags) == 16);
			LA20_: ;
			T15_ = T19_;
			LA18_: ;
			if (!T15_) goto LA21_;
			base = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
		}
		goto LA13_;
		LA21_: ;
		{
			base = genTypeInfo_7P9bdUkiYYdBWl5P39cGpERw(m, x, info);
		}
		LA13_: ;
	}
	goto LA1_;
	LA7_: ;
	{
		base = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
	}
	LA1_: ;
	genTypeInfoAuxBase_DJDWmH1yEAJQyS9cw8frFvg(m, typ, origType, name, base, info);
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, lodeTyp_8thmRpt8YNsc9cFM33hAlHw)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNode_IgnRxkID5wXTWvTZf9ct0rA(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1));
	asgnRefNoCycle((void**) (&(*result).typ), t);
	return result;
}

static N_INLINE(NIM_BOOL, isComplexValueType_AcJpLeR4vGQ9bUfQVqMi1Egcgen)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	NIM_BOOL result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t_2;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	result = (NIM_BOOL)0;
	t_2 = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(t, IL64(49609964645296400));
	T1_ = (NIM_BOOL)0;
	T1_ = ((983040 &((NU64)1<<((NU)((*t_2).kind)&63U)))!=0);
	if (T1_) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T3_ = ((*t_2).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25));
	if (!(T3_)) goto LA4_;
	T3_ = ((*t_2).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8));
	LA4_: ;
	T1_ = T3_;
	LA2_: ;
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, addrLoc_9b8NbhHc4w1oBKAy127l3xQ)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	result = (*a).r;
	{
		NIM_BOOL T3_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T5_;
		tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w T6_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
		T3_ = (NIM_BOOL)0;
		T3_ = !((((*a).flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 0))&15U)))!=0));
		if (!(T3_)) goto LA4_;
		T5_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T5_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen(a);
		T6_ = (tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w)0;
		T6_ = mapType_K9aceyVl15zb9aYN9b6YJ8TnA(conf, T5_);
		T3_ = !((T6_ == ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 17)));
		LA4_: ;
		if (!T3_) goto LA7_;
		T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T9_ = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139), result);
		result = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T9_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_129));
	}
	LA7_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genObjectInit_pua7psQb9a19bblGZEt9b0ZXA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg section, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a, NIM_BOOL takeAddr) {
	tyEnum_TTypeFieldResult_aBXTX9cIKT9b0yNlXSu9aPT9cw T13_;
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NIM_BOOL T5_;
		NIM_BOOL T9_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T12_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T5_) goto LA6_;
		T5_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA6_: ;
		T4_ = T5_;
		if (!(T4_)) goto LA7_;
		T4_ = isException_NWFc8X9b4Zx0NtXP3Cp2fnw_3(t);
		LA7_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA8_;
		T9_ = (NIM_BOOL)0;
		T9_ = isDefined_TeEHxEj0zXnJc9aUarshH9aA((*(*(*p).module).g).config, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_173));
		T3_ = !(T9_);
		LA8_: ;
		if (!T3_) goto LA10_;
		includeHeader_uTF5360OavCefWH39cfa58w((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_174));
		nimZeroMem((void*)T12_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T12_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T12_[1] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, t);
		linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, section, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_175), T12_, 2);
	}
	LA10_: ;
	T13_ = (tyEnum_TTypeFieldResult_aBXTX9cIKT9b0yNlXSu9aPT9cw)0;
	T13_ = analyseObjectWithTypeField_Pldxz9alDV6810oJzh2Apog(t);
	switch (T13_) {
	case ((tyEnum_TTypeFieldResult_aBXTX9cIKT9b0yNlXSu9aPT9cw) 0):
	{
	}
	break;
	case ((tyEnum_TTypeFieldResult_aBXTX9cIKT9b0yNlXSu9aPT9cw) 1):
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* s;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T31_;
		r = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		{
			tyArray_JiWwrsTRC6xqNlGcBthSVA T20_;
			if (!!(takeAddr)) goto LA18_;
			nimZeroMem((void*)T20_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T20_[0] = r;
			r = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_137), T20_, 1);
		}
		LA18_: ;
		s = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(t, IL64(36099165763184912));
		{
			NIM_BOOL T23_;
			T23_ = (NIM_BOOL)0;
			T23_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
			if (T23_) goto LA24_;
			T23_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA24_: ;
			if (!!(T23_)) goto LA25_;
			{
				while (1) {
					NIM_BOOL T29_;
					T29_ = (NIM_BOOL)0;
					T29_ = ((*s).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17));
					if (!(T29_)) goto LA30_;
					T29_ = !(((*s).sons->data[((NI) 0)] == NIM_NIL));
					LA30_: ;
					if (!T29_) goto LA28;
					add_yG4AKzsBRS1W4MANDlXQeg(&r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_176));
					s = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*s).sons->data[((NI) 0)], IL64(36239903266179344));
				} LA28: ;
			}
		}
		LA25_: ;
		nimZeroMem((void*)T31_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T31_[0] = r;
		T31_[1] = genTypeInfo_7P9bdUkiYYdBWl5P39cGpERw((*p).module, t, (*(*a).lode).info);
		linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, section, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_177), T31_, 2);
	}
	break;
	case ((tyEnum_TTypeFieldResult_aBXTX9cIKT9b0yNlXSu9aPT9cw) 2):
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r_2;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T38_;
		{
			if (!takeAddr) goto LA35_;
			r_2 = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, a);
		}
		goto LA33_;
		LA35_: ;
		{
			r_2 = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		}
		LA33_: ;
		nimZeroMem((void*)T38_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T38_[0] = r_2;
		T38_[1] = genTypeInfo_7P9bdUkiYYdBWl5P39cGpERw((*p).module, t, (*(*a).lode).info);
		linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, section, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_178), T38_, 2);
	}
	break;
	}
}

N_LIB_PRIVATE N_NIMCALL(void, constructLoc_UnMShnfXExBqkSCjaZsFdw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* loc, NIM_BOOL isTemp) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
	typ = t_wtveaWyn2FSNgJ2h4kSWzwcgen(loc);
	{
		NIM_BOOL T3_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T5_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 5));
		if (!(T3_)) goto LA4_;
		T5_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T5_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(typ, IL64(36099165763184912));
		T3_ = ((285212672 &((NU64)1<<((NU)((*T5_).kind)&63U)))!=0);
		LA4_: ;
		if (!T3_) goto LA6_;
		nimZeroMem((void*)T8_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T8_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(loc);
		linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_170), T8_, 1);
	}
	goto LA1_;
	LA6_: ;
	{
		NIM_BOOL T10_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T13_;
		T10_ = (NIM_BOOL)0;
		T10_ = isComplexValueType_AcJpLeR4vGQ9bUfQVqMi1Egcgen(typ);
		if (!!(T10_)) goto LA11_;
		nimZeroMem((void*)T13_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T13_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(loc);
		T13_[1] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, typ);
		linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_171), T13_, 2);
	}
	goto LA1_;
	LA11_: ;
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T28_;
		{
			NIM_BOOL T17_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T19_;
			T17_ = (NIM_BOOL)0;
			T17_ = !(isTemp);
			if (T17_) goto LA18_;
			T19_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T19_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen(loc);
			T17_ = containsGarbageCollectedRef_IVXYI9cxSeivThgKCncHRnA(T19_);
			LA18_: ;
			if (!T17_) goto LA20_;
			{
				NIM_BOOL T24_;
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T27_;
				T24_ = (NIM_BOOL)0;
				T24_ = isImportedCppType_UCeqXNU9bJdSIbOIWbb0zng(typ);
				if (!!(T24_)) goto LA25_;
				nimZeroMem((void*)T27_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T27_[0] = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, loc);
				T27_[1] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, typ);
				linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_172), T27_, 2);
			}
			LA25_: ;
		}
		LA20_: ;
		T28_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T28_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen(loc);
		genObjectInit_pua7psQb9a19bblGZEt9b0ZXA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), T28_, loc, NIM_TRUE);
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, getTemp_VjOFVqypINqQv5C3ECnxbw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* result, NIM_BOOL needsInit) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T2_;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T3_;
	(*p).labels += ((NI) 1);
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).labels)));
	T2_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_169), T1_);
	unsureAsgnRef((void**) (&(*result).r), amp__Z7W1o5nPSc3ExfO5f7j1Gg(T2_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_3)));
	nimZeroMem((void*)T3_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T3_[0] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, t);
	T3_[1] = (*result).r;
	linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_48), T3_, 2);
	(*result).k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 1);
	unsureAsgnRef((void**) (&(*result).lode), lodeTyp_8thmRpt8YNsc9cFM33hAlHw(t));
	(*result).storage = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 2);
	(*result).flags = 0;
	constructLoc_UnMShnfXExBqkSCjaZsFdw(p, (&(*result)), !(needsInit));
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, lenField_3AsTOpq9crZUYBL9aD1lXBng)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	NimStringDesc* T1_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = (NimStringDesc*)0;
	{
		NIM_BOOL T4_;
		T4_ = (NIM_BOOL)0;
		T4_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T4_) goto LA5_;
		T4_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA5_: ;
		if (!T4_) goto LA6_;
		T1_ = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_182));
	}
	goto LA2_;
	LA6_: ;
	{
		T1_ = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_183));
	}
	LA2_: ;
	result = rope_yShmEg9cffWxI7s5XzEKBow(T1_);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, lenExpr_Xfvxpx3W1zkiCqENsur9ckg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T5_;
		if (!((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 5))) goto LA3_;
		T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T5_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		result = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T5_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_180));
	}
	goto LA1_;
	LA3_: ;
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T7_;
		nimZeroMem((void*)T7_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T7_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T7_[1] = lenField_3AsTOpq9crZUYBL9aD1lXBng(p);
		result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_181), T7_, 2);
	}
	LA1_: ;
	return result;
}

static N_INLINE(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, parentObj_85dt9cpzNYTx5z9bG3QXcHqwcgen)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* accessor, tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		NIM_BOOL T3_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*(*m).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T3_) goto LA4_;
		T3_ = (((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA4_: ;
		if (!!(T3_)) goto LA5_;
		nimZeroMem((void*)T7_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T7_[0] = accessor;
		result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_185), T7_, 1);
	}
	goto LA1_;
	LA5_: ;
	{
		result = accessor;
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, fillObjectFields_9ay9bmecW6As1fjmHzaEve9cQ)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg check;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T1_;
	nimZeroMem((void*)(&check), sizeof(tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg));
	initIntSet_a9a80eJplB17xrdZJ41Baww((&check));
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = getRecordFields_C4FuXdQUwJbwleRj18h2BQ(m, typ, (&check));
	T1_;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, intLiteral_kQA0lBUvzOSZAw7DHC4Fjg)(NI64 i) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (IL64(-2147483648) < i);
		if (!(T3_)) goto LA4_;
		T3_ = (i <= IL64(2147483647));
		LA4_: ;
		if (!T3_) goto LA5_;
		result = rope_KOisMGxcPhz6CcSmxgwEQQ(i);
	}
	goto LA1_;
	LA5_: ;
	{
		tyArray_qTjAvTvKF9anytN1At69aJMQ T10_;
		if (!(i == IL64(-2147483648))) goto LA8_;
		nimZeroMem((void*)T10_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_191), T10_, 0);
	}
	goto LA1_;
	LA8_: ;
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T14_;
		if (!((IL64(-9223372036854775807) - IL64(1)) < i)) goto LA12_;
		nimZeroMem((void*)T14_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T14_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(i);
		result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_192), T14_, 1);
	}
	goto LA1_;
	LA12_: ;
	{
		tyArray_qTjAvTvKF9anytN1At69aJMQ T16_;
		nimZeroMem((void*)T16_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_193), T16_, 0);
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, int64Literal_kQA0lBUvzOSZAw7DHC4Fjg_2)(NI64 i) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T5_;
		if (!((IL64(-9223372036854775807) - IL64(1)) < i)) goto LA3_;
		nimZeroMem((void*)T5_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T5_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(i);
		result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_192), T5_, 1);
	}
	goto LA1_;
	LA3_: ;
	{
		tyArray_qTjAvTvKF9anytN1At69aJMQ T7_;
		nimZeroMem((void*)T7_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_193), T7_, 0);
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, uint64Literal_ldwzpLT4KWF9c4XGru9cpC1A)(NU64 i) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	NimStringDesc* T1_;
	NimStringDesc* T2_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = (NimStringDesc*)0;
	T2_ = (NimStringDesc*)0;
	T2_ = dollar__rzAI8EMyNBAQwGODeohhAA(i);
	T1_ = rawNewString((T2_ ? T2_->Sup.len : 0) + 3);
appendString(T1_, T2_);
appendString(T1_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_196));
	result = rope_yShmEg9cffWxI7s5XzEKBow(T1_);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genNilStringLiteral_BAnpo9cCleKeSKR8RaKdvjg)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyArray_qTjAvTvKF9anytN1At69aJMQ T1_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	nimZeroMem((void*)T1_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
	result = ropecg_pDjCXevkau9aaTuKWN9cvHGw(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_200), T1_, 0);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genStringLiteralDataOnlyV1_czBo5sg9cHyaaP5feko54tA)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, NimStringDesc* s) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T1_;
	tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T2_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = cgsym_0d9bDo5R2p09cv1ljqpC4l8Q(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_76));
	T1_;
	result = getTempName_9cFzUT5Cyfi5u0F447WwLvA(m);
	nimZeroMem((void*)T2_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
	T2_[0] = result;
	T2_[1] = makeCString_vQJydtKy4Nf6bXPYtbmjtg(s);
	T2_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((s ? s->Sup.len : 0))));
	addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_202), T2_, 3);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genStringLiteralV1_BL0R9bSjJmdssSOZrTtp5UQ_2)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		tyArray_qTjAvTvKF9anytN1At69aJMQ T5_;
		if (!NIM_FALSE) goto LA3_;
		nimZeroMem((void*)T5_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		result = ropecg_pDjCXevkau9aaTuKWN9cvHGw(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_200), T5_, 0);
	}
	goto LA1_;
	LA3_: ;
	{
		NI id;
		id = nodeTableTestOrSet_tWmKJP7glBWLCISQFGGk2Q((&(*m).dataCache), n, ((NI) ((*m).labels)));
		{
			tyArray_JiWwrsTRC6xqNlGcBthSVA T11_;
			if (!(id == ((NI) ((*m).labels)))) goto LA9_;
			nimZeroMem((void*)T11_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T11_[0] = genStringLiteralDataOnlyV1_czBo5sg9cHyaaP5feko54tA(m, (*n)._Ukind.S3.strVal);
			result = ropecg_pDjCXevkau9aaTuKWN9cvHGw(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_201), T11_, 1);
		}
		goto LA7_;
		LA9_: ;
		{
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T13_;
			nimZeroMem((void*)T13_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T13_[0] = (*m).tmpBase;
			T13_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (id)));
			result = ropecg_pDjCXevkau9aaTuKWN9cvHGw(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_203), T13_, 2);
		}
		LA7_: ;
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genStringLiteralDataOnlyV2_czBo5sg9cHyaaP5feko54tA_2)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, NimStringDesc* s) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T1_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	result = getTempName_9cFzUT5Cyfi5u0F447WwLvA(m);
	nimZeroMem((void*)T1_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
	T1_[0] = result;
	T1_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((s ? s->Sup.len : 0))));
	T1_[2] = makeCString_vQJydtKy4Nf6bXPYtbmjtg(s);
	addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_205), T1_, 3);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genStringLiteralV2_BL0R9bSjJmdssSOZrTtp5UQ_3)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	NI id;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	id = nodeTableTestOrSet_tWmKJP7glBWLCISQFGGk2Q((&(*m).dataCache), n, ((NI) ((*m).labels)));
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T5_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T6_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* pureLit;
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T7_;
		if (!(id == ((NI) ((*m).labels)))) goto LA3_;
		T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T5_ = cgsym_0d9bDo5R2p09cv1ljqpC4l8Q(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_204));
		T5_;
		T6_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T6_ = cgsym_0d9bDo5R2p09cv1ljqpC4l8Q(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_21));
		T6_;
		pureLit = genStringLiteralDataOnlyV2_czBo5sg9cHyaaP5feko54tA_2(m, (*n)._Ukind.S3.strVal);
		result = getTempName_9cFzUT5Cyfi5u0F447WwLvA(m);
		nimZeroMem((void*)T7_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T7_[0] = result;
		T7_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (((*n)._Ukind.S3.strVal ? (*n)._Ukind.S3.strVal->Sup.len : 0))));
		T7_[2] = pureLit;
		addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_206), T7_, 3);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
		T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T9_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (id)));
		result = amp__mFDAEkd1kysB0V9aBd20A9aA((*m).tmpBase, T9_);
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genStringLiteral_BL0R9bSjJmdssSOZrTtp5UQ)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	NI T1_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = (NI)0;
	T1_ = detectStrVersion_ZhBx9ci102xAHSOpksGzT6g(m);
	switch (T1_) {
	case ((NI) 0):
	case ((NI) 1):
	{
		result = genStringLiteralV1_BL0R9bSjJmdssSOZrTtp5UQ_2(m, n);
	}
	break;
	case ((NI) 2):
	{
		result = genStringLiteralV2_BL0R9bSjJmdssSOZrTtp5UQ_3(m, n);
	}
	break;
	default:
	{
		localError_NF6kBGchnhQYPbCedyefVA((*(*m).g).config, (*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_207));
	}
	break;
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genLiteral_qifZy01sZ5OX01eT5FP76w)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ty) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!(ty == NIM_NIL)) goto LA3_;
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_190));
	}
	LA3_: ;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 5) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 15):
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T6_;
		T6_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T6_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(ty, IL64(36099165772622096));
		switch ((*T6_).kind) {
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 5):
		{
			result = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg((*n)._Ukind.S1.intVal);
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 1):
		{
			{
				tyArray_qTjAvTvKF9anytN1At69aJMQ T13_;
				if (!!(((*n)._Ukind.S1.intVal == IL64(0)))) goto LA11_;
				nimZeroMem((void*)T13_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
				result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_194), T13_, 0);
			}
			goto LA9_;
			LA11_: ;
			{
				tyArray_qTjAvTvKF9anytN1At69aJMQ T15_;
				nimZeroMem((void*)T15_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
				result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_195), T15_, 0);
			}
			LA9_: ;
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 35):
		{
			result = int64Literal_kQA0lBUvzOSZAw7DHC4Fjg_2((*n)._Ukind.S1.intVal);
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44):
		{
			result = uint64Literal_ldwzpLT4KWF9c4XGru9cpC1A(((NU64) ((*n)._Ukind.S1.intVal)));
		}
		break;
		default:
		{
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T19_;
			nimZeroMem((void*)T19_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T19_[0] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, ty);
			T19_[1] = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg((*n)._Ukind.S1.intVal);
			result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_197), T19_, 2);
		}
		break;
		}
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 23):
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
		t = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(ty, IL64(36099165772622096));
		{
			NIM_BOOL T23_;
			NI id;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T27_;
			T23_ = (NIM_BOOL)0;
			T23_ = ((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25));
			if (!(T23_)) goto LA24_;
			T23_ = ((*t).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8));
			LA24_: ;
			if (!T23_) goto LA25_;
			id = nodeTableTestOrSet_tWmKJP7glBWLCISQFGGk2Q((&(*(*p).module).dataCache), n, ((NI) ((*(*p).module).labels)));
			T27_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T27_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (id)));
			result = amp__mFDAEkd1kysB0V9aBd20A9aA((*(*p).module).tmpBase, T27_);
			{
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T32_;
				if (!(id == ((NI) ((*(*p).module).labels)))) goto LA30_;
				(*(*p).module).labels += ((NI) 1);
				nimZeroMem((void*)T32_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T32_[0] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, ty);
				T32_[1] = result;
				addf_ocEHZ9cujtqicXvDuJUm5pg(&(*(*p).module).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_198), T32_, 2);
			}
			LA30_: ;
		}
		goto LA21_;
		LA25_: ;
		{
			result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_199));
		}
		LA21_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 22):
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T35_;
		T35_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T35_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(ty, IL64(1189020670379469072));
		switch ((*T35_).kind) {
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 5):
		{
			result = genNilStringLiteral_BAnpo9cCleKeSKR8RaKdvjg((*p).module, (*n).info);
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
		{
			{
				NIM_BOOL T40_;
				NIM_BOOL T41_;
				T40_ = (NIM_BOOL)0;
				T41_ = (NIM_BOOL)0;
				T41_ = (((*n)._Ukind.S3.strVal ? (*n)._Ukind.S3.strVal->Sup.len : 0) == ((NI) 0));
				if (!(T41_)) goto LA42_;
				T41_ = !((((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 26))&31U)))!=0));
				LA42_: ;
				T40_ = T41_;
				if (!(T40_)) goto LA43_;
				T40_ = !(((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 5)));
				LA43_: ;
				if (!T40_) goto LA44_;
				result = genNilStringLiteral_BAnpo9cCleKeSKR8RaKdvjg((*p).module, (*n).info);
			}
			goto LA38_;
			LA44_: ;
			{
				result = genStringLiteral_BL0R9bSjJmdssSOZrTtp5UQ((*p).module, n);
			}
			LA38_: ;
		}
		break;
		default:
		{
			result = makeCString_vQJydtKy4Nf6bXPYtbmjtg((*n)._Ukind.S3.strVal);
		}
		break;
		}
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 16):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 18):
	{
		NimStringDesc* T49_;
		T49_ = (NimStringDesc*)0;
		T49_ = toStrMaxPrecision_bUxkE4LG1hqvhXMwxWRgAw((*n)._Ukind.S2.floatVal, ((NimStringDesc*) NIM_NIL));
		result = rope_yShmEg9cffWxI7s5XzEKBow(T49_);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 17):
	{
		NimStringDesc* T51_;
		T51_ = (NimStringDesc*)0;
		T51_ = toStrMaxPrecision_bUxkE4LG1hqvhXMwxWRgAw((*n)._Ukind.S2.floatVal, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_208));
		result = rope_yShmEg9cffWxI7s5XzEKBow(T51_);
	}
	break;
	default:
	{
		NimStringDesc* T53_;
		T53_ = (NimStringDesc*)0;
		T53_ = rawNewString((reprEnum((NI)(*n).kind, (&NTI_G4E4Gxe7oI2Cm03rkiOzQw_)) ? reprEnum((NI)(*n).kind, (&NTI_G4E4Gxe7oI2Cm03rkiOzQw_))->Sup.len : 0) + 12);
appendString(T53_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_209));
appendString(T53_, reprEnum((NI)(*n).kind, (&NTI_G4E4Gxe7oI2Cm03rkiOzQw_)));
appendChar(T53_, 41);
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, T53_);
		result = NIM_NIL;
	}
	break;
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genLiteral_NYI5fC69aIqZGRakncXv9cNQ_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	result = genLiteral_qifZy01sZ5OX01eT5FP76w(p, n, (*n).typ);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genCaseRange_KUz7NJSCXeUWRl4foF5zfg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* branch) {
	NI length;
	length = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(branch);
	{
		NI j;
		NI colontmp_;
		NI res;
		j = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)(length - ((NI) 2));
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA3;
				j = res;
				{
					if (!((*(*branch)._Ukind.S6.sons->data[j]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA6_;
					{
						tyArray_mrugoXXRZUEeG9bEXo9auBKw T12_;
						if (!((CC_78I18QZNZFIv9ah7oETc0jg[((*(*(*(*p).module).g).config).cCompiler)- 1].Field19 &(1U<<((NU)(((tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg) 0))&7U)))!=0)) goto LA10_;
						nimZeroMem((void*)T12_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
						T12_[0] = genLiteral_NYI5fC69aIqZGRakncXv9cNQ_2(p, (*(*branch)._Ukind.S6.sons->data[j])._Ukind.S6.sons->data[((NI) 0)]);
						T12_[1] = genLiteral_NYI5fC69aIqZGRakncXv9cNQ_2(p, (*(*branch)._Ukind.S6.sons->data[j])._Ukind.S6.sons->data[((NI) 1)]);
						lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_189), T12_, 2);
					}
					goto LA8_;
					LA10_: ;
					{
						tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* v;
						v = copyNode_lz8T1F9c0YwEOpUnrAUYgjg((*(*branch)._Ukind.S6.sons->data[j])._Ukind.S6.sons->data[((NI) 0)]);
						{
							while (1) {
								tyArray_JiWwrsTRC6xqNlGcBthSVA T16_;
								if (!((*v)._Ukind.S1.intVal <= (*(*(*branch)._Ukind.S6.sons->data[j])._Ukind.S6.sons->data[((NI) 1)])._Ukind.S1.intVal)) goto LA15;
								nimZeroMem((void*)T16_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
								T16_[0] = genLiteral_NYI5fC69aIqZGRakncXv9cNQ_2(p, v);
								lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_210), T16_, 1);
								(*v)._Ukind.S1.intVal += ((NI) 1);
							} LA15: ;
						}
					}
					LA8_: ;
				}
				goto LA4_;
				LA6_: ;
				{
					tyArray_JiWwrsTRC6xqNlGcBthSVA T18_;
					nimZeroMem((void*)T18_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
					T18_[0] = genLiteral_NYI5fC69aIqZGRakncXv9cNQ_2(p, (*branch)._Ukind.S6.sons->data[j]);
					lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_210), T18_, 1);
				}
				LA4_: ;
				res += ((NI) 1);
			} LA3: ;
		}
	}
}

N_LIB_PRIVATE N_NIMCALL(void, genTraverseProc_ZF8ePl9bsRxWXLu7Z2MFifQ)(tyObject_TTraversalClosure_xQv4a9atAYFpL11GCS9cY9bCg c, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* accessor, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
{	{
		if (!(n == NIM_NIL)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 138):
	{
		{
			NI i;
			NI colontmp_;
			NI T7_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T7_ = (NI)0;
			T7_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
			colontmp_ = (NI)(T7_ - ((NI) 1));
			res = ((NI) 0);
			{
				while (1) {
					if (!(res <= colontmp_)) goto LA9;
					i = res;
					genTraverseProc_ZF8ePl9bsRxWXLu7Z2MFifQ(c, accessor, (*n)._Ukind.S6.sons->data[i], typ);
					res += ((NI) 1);
				} LA9: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 139):
	{
		tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p;
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* disc;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T24_;
		tyArray_qTjAvTvKF9anytN1At69aJMQ T37_;
		{
			if (!!(((*(*n)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA13_;
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*c.p).module).g).config, (*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_186));
		}
		LA13_: ;
		p = c.p;
		disc = (*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym;
		{
			if (!((*disc).loc.r == NIM_NIL)) goto LA17_;
			fillObjectFields_9ay9bmecW6As1fjmHzaEve9cQ((*c.p).module, typ);
		}
		LA17_: ;
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T21_;
			T21_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T21_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&(*disc).loc));
			if (!(T21_ == NIM_NIL)) goto LA22_;
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*c.p).module).g).config, (*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_187));
		}
		LA22_: ;
		nimZeroMem((void*)T24_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T24_[0] = accessor;
		T24_[1] = (*disc).loc.r;
		lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_188), T24_, 2);
		{
			NI i_2;
			NI colontmp__2;
			NI T26_;
			NI res_2;
			i_2 = (NI)0;
			colontmp__2 = (NI)0;
			T26_ = (NI)0;
			T26_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
			colontmp__2 = (NI)(T26_ - ((NI) 1));
			res_2 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* branch;
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T35_;
					tyArray_qTjAvTvKF9anytN1At69aJMQ T36_;
					if (!(res_2 <= colontmp__2)) goto LA28;
					i_2 = res_2;
					branch = (*n)._Ukind.S6.sons->data[i_2];
					{
						if (!((*branch).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA31_;
						genCaseRange_KUz7NJSCXeUWRl4foF5zfg(c.p, branch);
					}
					goto LA29_;
					LA31_: ;
					{
						tyArray_qTjAvTvKF9anytN1At69aJMQ T34_;
						nimZeroMem((void*)T34_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
						lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_211), T34_, 0);
					}
					LA29_: ;
					T35_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
					T35_ = lastSon_esDJA7239bJDiq4UrX9aHCjg(branch);
					genTraverseProc_ZF8ePl9bsRxWXLu7Z2MFifQ(c, accessor, T35_, typ);
					nimZeroMem((void*)T36_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
					lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_212), T36_, 0);
					res_2 += ((NI) 1);
				} LA28: ;
			}
		}
		nimZeroMem((void*)T37_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_213), T37_, 0);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T52_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T53_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T54_;
		field = (*n)._Ukind.S4.sym;
		{
			if (!((*(*field).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 63))) goto LA41_;
			goto BeforeRet_;
		}
		LA41_: ;
		{
			if (!((*field).loc.r == NIM_NIL)) goto LA45_;
			fillObjectFields_9ay9bmecW6As1fjmHzaEve9cQ((*c.p).module, typ);
		}
		LA45_: ;
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T49_;
			T49_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T49_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&(*field).loc));
			if (!(T49_ == NIM_NIL)) goto LA50_;
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*c.p).module).g).config, (*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_187));
		}
		LA50_: ;
		nimZeroMem((void*)T52_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T52_[0] = accessor;
		T52_[1] = (*field).loc.r;
		T53_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T53_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_97), T52_, 2);
		T54_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T54_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&(*field).loc));
		genTraverseProc_LXrm7ZbTiXTVtbB5E60yIA_2(c, T53_, T54_);
	}
	break;
	default:
	{
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*c.p).module).g).config, (*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_187));
	}
	break;
	}
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, lineCg_zZ8N2PtAlqFZKCp7nvAnhw_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg s, NimStringDesc* frmt, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T2_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T3_;
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T1_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p, s);
	T2_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, frmt, args, argsLen_0);
	T3_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T3_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T2_);
	add_iMTw0CDaruwETLGb9bhpBLg(T1_, T3_);
}

N_LIB_PRIVATE N_NIMCALL(void, genTraverseProc_LXrm7ZbTiXTVtbB5E60yIA_2)(tyObject_TTraversalClosure_xQv4a9atAYFpL11GCS9cY9bCg c, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* accessor, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p;
{	{
		if (!(typ == NIM_NIL)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	p = c.p;
	switch ((*typ).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 11):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 10):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 8):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 4):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 13):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 55):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 46):
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T6_;
		T6_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T6_ = lastSon_ab52xel9cFebv9am0xV04xXA(typ);
		genTraverseProc_LXrm7ZbTiXTVtbB5E60yIA_2(c, accessor, T6_);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
	{
		NI64 arraySize;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA i;
		tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q T8_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T9_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* oldCode;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T10_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T11_;
		NI oldLen;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T12_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T13_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
		arraySize = lengthOrd_4cSIntenL9aBXY6LAFsvXdQ_2((*(*(*c.p).module).g).config, (*typ).sons->data[((NI) 0)]);
		nimZeroMem((void*)(&i), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		T8_ = unknownLineInfo_F9bjxJM4tdxwMljo3mi9bY8w();
		T9_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T9_ = getSysType_VcTNc9cK1Ftuh0MFwOC9c0Tg((*(*(*c.p).module).g).graph, T8_, ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31));
		getTemp_VjOFVqypINqQv5C3ECnxbw(p, T9_, (&i), NIM_FALSE);
		T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T10_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		oldCode = (*T10_);
		nimZeroMem((void*)T11_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T11_[0] = i.r;
		T11_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(arraySize);
		linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_179), T11_, 2);
		T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T12_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		oldLen = len_9bnJ6v2DTn9bxH3beTpErsUg((*T12_));
		nimZeroMem((void*)T13_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T13_[0] = accessor;
		T13_[1] = i.r;
		T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*c.p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_157), T13_, 2);
		genTraverseProc_LXrm7ZbTiXTVtbB5E60yIA_2(c, T14_, (*typ).sons->data[((NI) 1)]);
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T17_;
			NI T18_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T21_;
			T17_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T17_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			T18_ = (NI)0;
			T18_ = len_9bnJ6v2DTn9bxH3beTpErsUg((*T17_));
			if (!(T18_ == oldLen)) goto LA19_;
			T21_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T21_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			unsureAsgnRef((void**) (&(*T21_)), oldCode);
		}
		goto LA15_;
		LA19_: ;
		{
			tyArray_qTjAvTvKF9anytN1At69aJMQ T23_;
			nimZeroMem((void*)T23_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
			lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_184), T23_, 0);
		}
		LA15_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17):
	{
		{
			NI i_2;
			NI colontmp_;
			NI T26_;
			NI res;
			i_2 = (NI)0;
			colontmp_ = (NI)0;
			T26_ = (NI)0;
			T26_ = sonsLen_SWFNCiWYB89bTUPh5KptkvA(typ);
			colontmp_ = (NI)(T26_ - ((NI) 1));
			res = ((NI) 0);
			{
				while (1) {
					tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* x;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T33_;
					if (!(res <= colontmp_)) goto LA28;
					i_2 = res;
					x = (*typ).sons->data[i_2];
					{
						if (!!((x == NIM_NIL))) goto LA31_;
						x = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(x, IL64(36239903266179344));
					}
					LA31_: ;
					T33_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T33_ = parentObj_85dt9cpzNYTx5z9bG3QXcHqwcgen(accessor, (*c.p).module);
					genTraverseProc_LXrm7ZbTiXTVtbB5E60yIA_2(c, T33_, x);
					res += ((NI) 1);
				} LA28: ;
			}
		}
		{
			if (!!(((*typ).n == NIM_NIL))) goto LA36_;
			genTraverseProc_ZF8ePl9bsRxWXLu7Z2MFifQ(c, accessor, (*typ).n, typ);
		}
		LA36_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ_2;
		typ_2 = typ;
		{
			NI i_3;
			NI colontmp__2;
			NI T40_;
			NI res_2;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			T40_ = (NI)0;
			T40_ = sonsLen_SWFNCiWYB89bTUPh5KptkvA(typ_2);
			colontmp__2 = (NI)(T40_ - ((NI) 1));
			res_2 = ((NI) 0);
			{
				while (1) {
					tyArray_mrugoXXRZUEeG9bEXo9auBKw T43_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T44_;
					if (!(res_2 <= colontmp__2)) goto LA42;
					i_3 = res_2;
					nimZeroMem((void*)T43_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
					T43_[0] = accessor;
					T43_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (i_3)));
					T44_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T44_ = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*c.p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_214), T43_, 2);
					genTraverseProc_LXrm7ZbTiXTVtbB5E60yIA_2(c, T44_, (*typ_2).sons->data[i_3]);
					res_2 += ((NI) 1);
				} LA42: ;
			}
		}
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22):
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T46_;
		nimZeroMem((void*)T46_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T46_[0] = accessor;
		lineCg_zZ8N2PtAlqFZKCp7nvAnhw_2(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), c.visitorFrmt, T46_, 1);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
	{
		{
			tyArray_JiWwrsTRC6xqNlGcBthSVA T52_;
			if (!!((((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 30))&63U)))!=0))) goto LA50_;
			nimZeroMem((void*)T52_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T52_[0] = accessor;
			lineCg_zZ8N2PtAlqFZKCp7nvAnhw_2(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), c.visitorFrmt, T52_, 1);
		}
		goto LA48_;
		LA50_: ;
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T54_;
			NIM_BOOL T55_;
			T54_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T54_ = lastSon_ab52xel9cFebv9am0xV04xXA(typ);
			T55_ = (NIM_BOOL)0;
			T55_ = containsGarbageCollectedRef_IVXYI9cxSeivThgKCncHRnA(T54_);
			if (!T55_) goto LA56_;
			genTraverseProcSeq_LXrm7ZbTiXTVtbB5E60yIA(c, accessor, typ);
		}
		goto LA48_;
		LA56_: ;
		LA48_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
	{
		{
			tyArray_JiWwrsTRC6xqNlGcBthSVA T63_;
			if (!!((((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 30))&63U)))!=0))) goto LA61_;
			nimZeroMem((void*)T63_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T63_[0] = accessor;
			lineCg_zZ8N2PtAlqFZKCp7nvAnhw_2(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), c.visitorFrmt, T63_, 1);
		}
		LA61_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25):
	{
		{
			tyArray_JiWwrsTRC6xqNlGcBthSVA T69_;
			tyArray_JiWwrsTRC6xqNlGcBthSVA T70_;
			if (!((*typ).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8))) goto LA67_;
			nimZeroMem((void*)T69_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			nimZeroMem((void*)T70_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T70_[0] = accessor;
			T69_[0] = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*c.p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_215), T70_, 1);
			lineCg_zZ8N2PtAlqFZKCp7nvAnhw_2(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), c.visitorFrmt, T69_, 1);
		}
		LA67_: ;
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, dataField_3AsTOpq9crZUYBL9aD1lXBng_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 5))) goto LA3_;
		result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_217));
	}
	goto LA1_;
	LA3_: ;
	{
		result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_218));
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genTraverseProcSeq_LXrm7ZbTiXTVtbB5E60yIA)(tyObject_TTraversalClosure_xQv4a9atAYFpL11GCS9cY9bCg c, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* accessor, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA i;
	tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q T1_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T2_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* oldCode;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T3_;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T4_;
	NI oldLen;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T5_;
	tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T6_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T7_;
	p = c.p;
	nimZeroMem((void*)(&i), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	T1_ = unknownLineInfo_F9bjxJM4tdxwMljo3mi9bY8w();
	T2_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T2_ = getSysType_VcTNc9cK1Ftuh0MFwOC9c0Tg((*(*(*c.p).module).g).graph, T1_, ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31));
	getTemp_VjOFVqypINqQv5C3ECnxbw(p, T2_, (&i), NIM_FALSE);
	T3_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T3_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	oldCode = (*T3_);
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	a.r = accessor;
	nimZeroMem((void*)T4_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T4_[0] = i.r;
	T4_[1] = lenExpr_Xfvxpx3W1zkiCqENsur9ckg(c.p, (&a));
	lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_179), T4_, 2);
	T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T5_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	oldLen = len_9bnJ6v2DTn9bxH3beTpErsUg((*T5_));
	nimZeroMem((void*)T6_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
	T6_[0] = accessor;
	T6_[1] = i.r;
	T6_[2] = dataField_3AsTOpq9crZUYBL9aD1lXBng_2(c.p);
	T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T7_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_216), T6_, 3);
	genTraverseProc_LXrm7ZbTiXTVtbB5E60yIA_2(c, T7_, (*typ).sons->data[((NI) 0)]);
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T10_;
		NI T11_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T14_;
		T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T10_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		T11_ = (NI)0;
		T11_ = len_9bnJ6v2DTn9bxH3beTpErsUg((*T10_));
		if (!(T11_ == oldLen)) goto LA12_;
		T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T14_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		unsureAsgnRef((void**) (&(*T14_)), oldCode);
	}
	goto LA8_;
	LA12_: ;
	{
		tyArray_qTjAvTvKF9anytN1At69aJMQ T16_;
		nimZeroMem((void*)T16_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_184), T16_, 0);
	}
	LA8_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genTraverseProc_win34wCBUJZ1I3Mfp4Fi1w)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* origTyp, tyArray_qtqsWM5aXmcpMIVmvq3kAA sig) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TTraversalClosure_xQv4a9atAYFpL11GCS9cY9bCg c;
	tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T1_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* header;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T2_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* t;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T3_;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T4_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* generatedProc;
	tyArray_f7nG5LD47BH5K9c6mASit3g T19_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T20_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T21_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T22_;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T23_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	nimZeroMem((void*)(&c), sizeof(tyObject_TTraversalClosure_xQv4a9atAYFpL11GCS9cY9bCg));
	p = newProc_STnnVeEn5Wp52dw0JRN7ZQ(NIM_NIL, m);
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = getTypeName_YqOY29b9aUiJ9bpv9bRbgamVlA_3(m, origTyp, sig);
	result = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_164), T1_);
	typ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(origTyp, IL64(36099165763184912));
	nimZeroMem((void*)T2_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T2_[0] = result;
	header = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_165), T2_, 1);
	t = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2(m, typ);
	nimZeroMem((void*)T3_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T3_[0] = t;
	lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_166), T3_, 1);
	nimZeroMem((void*)T4_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T4_[0] = t;
	lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_167), T4_, 1);
	c.p = p;
	c.visitorFrmt = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_168));
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
		if (!((*typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24))) goto LA7_;
		T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T9_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_219));
		genTraverseProcSeq_LXrm7ZbTiXTVtbB5E60yIA(c, T9_, typ);
	}
	goto LA5_;
	LA7_: ;
	{
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T13_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T16_;
			T13_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T13_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*typ).sons->data[((NI) 0)], IL64(36099165763184912));
			if (!((*T13_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16))) goto LA14_;
			T16_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T16_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_219));
			genTraverseProc_LXrm7ZbTiXTVtbB5E60yIA_2(c, T16_, (*typ).sons->data[((NI) 0)]);
		}
		goto LA11_;
		LA14_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T18_;
			T18_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T18_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_220));
			genTraverseProc_LXrm7ZbTiXTVtbB5E60yIA_2(c, T18_, (*typ).sons->data[((NI) 0)]);
		}
		LA11_: ;
	}
	LA5_: ;
	nimZeroMem((void*)T19_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
	T19_[0] = header;
	T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T20_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
	T19_[1] = (*T20_);
	T21_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T21_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1));
	T19_[2] = (*T21_);
	T22_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T22_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	T19_[3] = (*T22_);
	generatedProc = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_221), T19_, 4);
	nimZeroMem((void*)T23_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T23_[0] = header;
	addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 7))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_222), T23_, 1);
	add_iMTw0CDaruwETLGb9bhpBLg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], generatedProc);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genArrayInfo_T784xcK3PWZsPbKIcqNECw)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T1_;
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = genTypeInfo_7P9bdUkiYYdBWl5P39cGpERw(m, (*typ).sons->data[((NI) 1)], info);
	genTypeInfoAuxBase_DJDWmH1yEAJQyS9cw8frFvg(m, typ, typ, name, T1_, info);
}

N_LIB_PRIVATE N_NIMCALL(void, genSetInfo_T784xcK3PWZsPbKIcqNECw_2)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tmp;
	tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T1_;
	NI64 T2_;
	genTypeInfoAux_ots5HriJRsUpoyVgDxkeuw_2(m, typ, typ, name, info);
	tmp = getNimNode_9cFzUT5Cyfi5u0F447WwLvA_2(m);
	nimZeroMem((void*)T1_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
	T1_[0] = tmp;
	T2_ = (NI64)0;
	T2_ = firstOrd_4cSIntenL9aBXY6LAFsvXdQ((*(*m).g).config, typ);
	T1_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(T2_);
	T1_[2] = name;
	addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_224), T1_, 3);
}

N_LIB_PRIVATE N_NIMCALL(void, genEnumInfo_T784xcK3PWZsPbKIcqNECw_3)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* nodePtrs;
	NI length;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* enumNames;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* specialCases;
	NI firstNimNode;
	NIM_BOOL hasHoles;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* enumArray;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* counter;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T23_;
	tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T24_;
	tyArray_dNfZYyzVYdaWfURv4pxodA T25_;
	tyArray_f7nG5LD47BH5K9c6mASit3g T26_;
	genTypeInfoAux_ots5HriJRsUpoyVgDxkeuw_2(m, typ, typ, name, info);
	nodePtrs = getTempName_9cFzUT5Cyfi5u0F447WwLvA(m);
	length = sonsLen_qPWPHw7WgJeEVYUdcaRIig((*typ).n);
	nimZeroMem((void*)T1_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T1_[0] = nodePtrs;
	T1_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (length)));
	addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 12))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_158), T1_, 2);
	enumNames = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	specialCases = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	firstNimNode = (*m).typeNodes;
	hasHoles = NIM_FALSE;
	{
		NI i;
		NI colontmp_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)(length - ((NI) 1));
		res = ((NI) 0);
		{
			while (1) {
				tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* elemNode;
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				field = (*(*(*typ).n)._Ukind.S6.sons->data[i])._Ukind.S4.sym;
				elemNode = getNimNode_9cFzUT5Cyfi5u0F447WwLvA_2(m);
				{
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
					if (!((*field).ast == NIM_NIL)) goto LA7_;
					T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T9_ = makeCString_vQJydtKy4Nf6bXPYtbmjtg((*(*field).name).s);
					add_iMTw0CDaruwETLGb9bhpBLg(&enumNames, T9_);
				}
				goto LA5_;
				LA7_: ;
				{
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
					T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T11_ = makeCString_vQJydtKy4Nf6bXPYtbmjtg((*(*field).ast)._Ukind.S3.strVal);
					add_iMTw0CDaruwETLGb9bhpBLg(&enumNames, T11_);
				}
				LA5_: ;
				{
					if (!(i < (NI)(length - ((NI) 1)))) goto LA14_;
					add_yG4AKzsBRS1W4MANDlXQeg(&enumNames, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_225));
				}
				LA14_: ;
				{
					NIM_BOOL T18_;
					tyArray_mrugoXXRZUEeG9bEXo9auBKw T22_;
					T18_ = (NIM_BOOL)0;
					T18_ = !(((*field).position == i));
					if (T18_) goto LA19_;
					T18_ = (((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 5))&63U)))!=0);
					LA19_: ;
					if (!T18_) goto LA20_;
					nimZeroMem((void*)T22_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
					T22_[0] = elemNode;
					T22_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*field).position)));
					addf_ocEHZ9cujtqicXvDuJUm5pg(&specialCases, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_226), T22_, 2);
					hasHoles = NIM_TRUE;
				}
				LA20_: ;
				res += ((NI) 1);
			} LA4: ;
		}
	}
	enumArray = getTempName_9cFzUT5Cyfi5u0F447WwLvA(m);
	counter = getTempName_9cFzUT5Cyfi5u0F447WwLvA(m);
	nimZeroMem((void*)T23_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T23_[0] = counter;
	addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 12))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_227), T23_, 1);
	nimZeroMem((void*)T24_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
	T24_[0] = enumArray;
	T24_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (length)));
	T24_[2] = enumNames;
	addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 12))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_228), T24_, 3);
	nimZeroMem((void*)T25_, sizeof(tyArray_dNfZYyzVYdaWfURv4pxodA));
	T25_[0] = counter;
	T25_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (length)));
	T25_[2] = (*m).typeNodesName;
	T25_[3] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (firstNimNode)));
	T25_[4] = enumArray;
	T25_[5] = nodePtrs;
	addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_229), T25_, 6);
	add_iMTw0CDaruwETLGb9bhpBLg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], specialCases);
	nimZeroMem((void*)T26_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
	T26_[0] = getNimNode_9cFzUT5Cyfi5u0F447WwLvA_2(m);
	T26_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (length)));
	T26_[2] = nodePtrs;
	T26_[3] = name;
	addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_230), T26_, 4);
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T31_;
		if (!hasHoles) goto LA29_;
		nimZeroMem((void*)T31_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T31_[0] = name;
		addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_231), T31_, 1);
	}
	LA29_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, discriminatorTableName_wOfMK5JrT0vmKss7nf2bjw)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* objtype, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* d) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* objtype_2;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T8_;
	tyArray_qtqsWM5aXmcpMIVmvq3kAA T9_;
	NimStringDesc* T10_;
	NimStringDesc* T11_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	objtype_2 = objtype;
	{
		while (1) {
			tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* T3_;
			T3_ = (tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*)0;
			T3_ = lookupInRecord_UKAypME5AMFgsArDll8WMg((*objtype_2).n, (*d).name);
			if (!(T3_ == NIM_NIL)) goto LA2;
			objtype_2 = (*objtype_2).sons->data[((NI) 0)];
		} LA2: ;
	}
	{
		if (!((*objtype_2).sym == NIM_NIL)) goto LA6_;
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*m).g).config, (*d).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_233));
	}
	LA6_: ;
	nimZeroMem((void*)T8_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	nimZeroMem((void*)T9_, sizeof(tyArray_qtqsWM5aXmcpMIVmvq3kAA));
	hashType_qLlmI8qzKQaMa2k5LnfLZQ(objtype_2, 2, T9_);
	T10_ = (NimStringDesc*)0;
	T10_ = dollar__cjda4doS9ccFOjsWsGu9aa2A(T9_);
	T8_[0] = rope_yShmEg9cffWxI7s5XzEKBow(T10_);
	T11_ = (NimStringDesc*)0;
	T11_ = mangle_0ctHksTXSPyaxjBOgK4TiA((*(*d).name).s);
	T8_[1] = rope_yShmEg9cffWxI7s5XzEKBow(T11_);
	result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_234), T8_, 2);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genObjectFields_ftB9cENoE7Rpuj8JMdZ0X6g)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* origType, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* expr, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info) {
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 138):
	{
		NI L;
		L = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
		{
			if (!(L == ((NI) 1))) goto LA4_;
			genObjectFields_ftB9cENoE7Rpuj8JMdZ0X6g(m, typ, origType, (*n)._Ukind.S6.sons->data[((NI) 0)], expr, info);
		}
		goto LA2_;
		LA4_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tmp;
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T9_;
			tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T14_;
			if (!(((NI) 0) < L)) goto LA7_;
			tmp = getTempName_9cFzUT5Cyfi5u0F447WwLvA(m);
			nimZeroMem((void*)T9_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T9_[0] = tmp;
			T9_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (L)));
			addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 12))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_158), T9_, 2);
			{
				NI i;
				NI colontmp_;
				NI res;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = (NI)(L - ((NI) 1));
				res = ((NI) 0);
				{
					while (1) {
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tmp2;
						tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T13_;
						if (!(res <= colontmp_)) goto LA12;
						i = res;
						tmp2 = getNimNode_9cFzUT5Cyfi5u0F447WwLvA_2(m);
						nimZeroMem((void*)T13_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
						T13_[0] = tmp;
						T13_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (i)));
						T13_[2] = tmp2;
						addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_159), T13_, 3);
						genObjectFields_ftB9cENoE7Rpuj8JMdZ0X6g(m, typ, origType, (*n)._Ukind.S6.sons->data[i], tmp2, info);
						res += ((NI) 1);
					} LA12: ;
				}
			}
			nimZeroMem((void*)T14_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
			T14_[0] = expr;
			T14_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (L)));
			T14_[2] = tmp;
			addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_161), T14_, 3);
		}
		goto LA2_;
		LA7_: ;
		{
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T16_;
			nimZeroMem((void*)T16_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T16_[0] = expr;
			T16_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (L)));
			addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_162), T16_, 2);
		}
		LA2_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 139):
	{
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tmp_2;
		NI64 L_2;
		tyArray_YcHYlgE5mhtkt9a3rnoucVg T27_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T28_;
		field = (*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym;
		tmp_2 = discriminatorTableName_wOfMK5JrT0vmKss7nf2bjw(m, typ, field);
		L_2 = lengthOrd_4cSIntenL9aBXY6LAFsvXdQ_2((*(*m).g).config, (*field).typ);
		{
			if (!((*field).loc.r == NIM_NIL)) goto LA20_;
			fillObjectFields_9ay9bmecW6As1fjmHzaEve9cQ(m, typ);
		}
		LA20_: ;
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T24_;
			T24_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T24_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&(*field).loc));
			if (!(T24_ == NIM_NIL)) goto LA25_;
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*m).g).config, (*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_235));
		}
		LA25_: ;
		nimZeroMem((void*)T27_, sizeof(tyArray_YcHYlgE5mhtkt9a3rnoucVg));
		T27_[0] = expr;
		T27_[1] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2(m, origType);
		T27_[2] = (*field).loc.r;
		T27_[3] = genTypeInfo_7P9bdUkiYYdBWl5P39cGpERw(m, (*field).typ, info);
		T27_[4] = makeCString_vQJydtKy4Nf6bXPYtbmjtg((*(*field).name).s);
		T27_[5] = tmp_2;
		T27_[6] = rope_KOisMGxcPhz6CcSmxgwEQQ(L_2);
		addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_236), T27_, 7);
		nimZeroMem((void*)T28_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T28_[0] = tmp_2;
		T28_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ((NI64)(L_2 + IL64(1)));
		addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_237), T28_, 2);
		{
			NI i_2;
			NI colontmp__2;
			NI T30_;
			NI res_2;
			i_2 = (NI)0;
			colontmp__2 = (NI)0;
			T30_ = (NI)0;
			T30_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
			colontmp__2 = (NI)(T30_ - ((NI) 1));
			res_2 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tmp2_2;
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T33_;
					if (!(res_2 <= colontmp__2)) goto LA32;
					i_2 = res_2;
					b = (*n)._Ukind.S6.sons->data[i_2];
					tmp2_2 = getNimNode_9cFzUT5Cyfi5u0F447WwLvA_2(m);
					T33_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
					T33_ = lastSon_esDJA7239bJDiq4UrX9aHCjg(b);
					genObjectFields_ftB9cENoE7Rpuj8JMdZ0X6g(m, typ, origType, T33_, tmp2_2, info);
					switch ((*b).kind) {
					case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 85):
					{
						{
							NI T37_;
							T37_ = (NI)0;
							T37_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(b);
							if (!(T37_ < ((NI) 2))) goto LA38_;
							internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*m).g).config, (*b).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_238));
						}
						LA38_: ;
						{
							NI j;
							NI colontmp__3;
							NI T41_;
							NI res_3;
							j = (NI)0;
							colontmp__3 = (NI)0;
							T41_ = (NI)0;
							T41_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(b);
							colontmp__3 = (NI)(T41_ - ((NI) 2));
							res_3 = ((NI) 0);
							{
								while (1) {
									if (!(res_3 <= colontmp__3)) goto LA43;
									j = res_3;
									{
										NI x;
										NI64 T48_;
										NI y;
										NI64 T49_;
										if (!((*(*b)._Ukind.S6.sons->data[j]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA46_;
										T48_ = (NI64)0;
										T48_ = getOrdValue_k4X4XP9cdVXYioHD9akA9bVbQ((*(*b)._Ukind.S6.sons->data[j])._Ukind.S6.sons->data[((NI) 0)]);
										x = ((NI) (T48_));
										T49_ = (NI64)0;
										T49_ = getOrdValue_k4X4XP9cdVXYioHD9akA9bVbQ((*(*b)._Ukind.S6.sons->data[j])._Ukind.S6.sons->data[((NI) 1)]);
										y = ((NI) (T49_));
										{
											while (1) {
												tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T52_;
												if (!(x <= y)) goto LA51;
												nimZeroMem((void*)T52_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
												T52_[0] = tmp_2;
												T52_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (x)));
												T52_[2] = tmp2_2;
												addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_159), T52_, 3);
												x += ((NI) 1);
											} LA51: ;
										}
									}
									goto LA44_;
									LA46_: ;
									{
										tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T54_;
										NI64 T55_;
										nimZeroMem((void*)T54_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
										T54_[0] = tmp_2;
										T55_ = (NI64)0;
										T55_ = getOrdValue_k4X4XP9cdVXYioHD9akA9bVbQ((*b)._Ukind.S6.sons->data[j]);
										T54_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(T55_);
										T54_[2] = tmp2_2;
										addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_159), T54_, 3);
									}
									LA44_: ;
									res_3 += ((NI) 1);
								} LA43: ;
							}
						}
					}
					break;
					case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 88):
					{
						tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T57_;
						nimZeroMem((void*)T57_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
						T57_[0] = tmp_2;
						T57_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(L_2);
						T57_[2] = tmp2_2;
						addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_159), T57_, 3);
					}
					break;
					default:
					{
						internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*m).g).config, (*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_239));
					}
					break;
					}
					res_2 += ((NI) 1);
				} LA32: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field_2;
		field_2 = (*n)._Ukind.S4.sym;
		{
			tyArray_duFhZXIIlrbrM62cWjNekg T73_;
			if (!((*field_2)._Ukind.S4.bitsize == ((NI) 0))) goto LA62_;
			{
				if (!((*field_2).loc.r == NIM_NIL)) goto LA66_;
				fillObjectFields_9ay9bmecW6As1fjmHzaEve9cQ(m, typ);
			}
			LA66_: ;
			{
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T70_;
				T70_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T70_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&(*field_2).loc));
				if (!(T70_ == NIM_NIL)) goto LA71_;
				internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*m).g).config, (*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_235));
			}
			LA71_: ;
			nimZeroMem((void*)T73_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
			T73_[0] = expr;
			T73_[1] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2(m, origType);
			T73_[2] = (*field_2).loc.r;
			T73_[3] = genTypeInfo_7P9bdUkiYYdBWl5P39cGpERw(m, (*field_2).typ, info);
			T73_[4] = makeCString_vQJydtKy4Nf6bXPYtbmjtg((*(*field_2).name).s);
			addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_240), T73_, 5);
		}
		LA62_: ;
	}
	break;
	default:
	{
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*m).g).config, (*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_235));
	}
	break;
	}
}

N_LIB_PRIVATE N_NIMCALL(void, genObjectInfo_ots5HriJRsUpoyVgDxkeuw_3)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* origType, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tmp;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T20_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	{
		if (!((*typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17))) goto LA3_;
		{
			NIM_BOOL T7_;
			NimStringDesc* T11_;
			NimStringDesc* T12_;
			T7_ = (NIM_BOOL)0;
			T7_ = !(((*typ).sym == NIM_NIL));
			if (!(T7_)) goto LA8_;
			T7_ = ((272 & (*(*typ).sym).flags) == 16);
			LA8_: ;
			if (!T7_) goto LA9_;
			T11_ = (NimStringDesc*)0;
			T12_ = (NimStringDesc*)0;
			T12_ = typeToString_QlvraUan7WbHowhAbvDvdA(typ, ((tyEnum_TPreferedDesc_tnd4qt9c4xddV8oKV5zyusw) 0));
			T11_ = rawNewString((T12_ ? T12_->Sup.len : 0) + 51);
appendString(T11_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_232));
appendString(T11_, T12_);
			localError_NF6kBGchnhQYPbCedyefVA((*(*m).g).config, info, T11_);
		}
		LA9_: ;
		genTypeInfoAux_ots5HriJRsUpoyVgDxkeuw_2(m, typ, origType, name, info);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
		T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
		genTypeInfoAuxBase_DJDWmH1yEAJQyS9cw8frFvg(m, typ, origType, name, T14_, info);
	}
	LA1_: ;
	tmp = getNimNode_9cFzUT5Cyfi5u0F447WwLvA_2(m);
	{
		NIM_BOOL T17_;
		T17_ = (NIM_BOOL)0;
		T17_ = isImportedType_UCeqXNU9bJdSIbOIWbb0zng_2(typ);
		if (!!(T17_)) goto LA18_;
		genObjectFields_ftB9cENoE7Rpuj8JMdZ0X6g(m, typ, origType, (*typ).n, tmp, info);
	}
	LA18_: ;
	nimZeroMem((void*)T20_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T20_[0] = name;
	T20_[1] = tmp;
	addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_163), T20_, 2);
	t = (*typ).sons->data[((NI) 0)];
	{
		while (1) {
			if (!!((t == NIM_NIL))) goto LA22;
			t = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(t, IL64(36239903266179344));
			(*t).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 5))%(sizeof(NU64)*8));
			t = (*t).sons->data[((NI) 0)];
		} LA22: ;
	}
}

N_LIB_PRIVATE N_NIMCALL(void, genDeepCopyProc_y7cM22Ax9cVodLpWGwB09cRA)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result) {
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T1_;
	genProc_LVUZwjNmLEZwI6xGJ9aeU7Q(m, s);
	nimZeroMem((void*)T1_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T1_[0] = result;
	T1_[1] = (*s).loc.r;
	addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_241), T1_, 2);
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genTypeInfo_7P9bdUkiYYdBWl5P39cGpERw)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* origType;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t_2;
	tyArray_qtqsWM5aXmcpMIVmvq3kAA sig;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T18_;
	NimStringDesc* T19_;
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* owner;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T20_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T88_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T89_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T90_;
{	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	origType = t;
	t_2 = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(origType, IL64(1202531469253160464));
	nimZeroMem((void*)sig, sizeof(tyArray_qtqsWM5aXmcpMIVmvq3kAA));
	hashType_qLlmI8qzKQaMa2k5LnfLZQ(origType, 2, sig);
	result = getOrDefault_c1gzIMAwos9ckDh22FJ9cJ4w((*m).typeInfoMarker, sig);
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T5_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T6_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T7_;
		if (!!((result == NIM_NIL))) goto LA3_;
		T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T5_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
		T6_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T6_ = amp__mFDAEkd1kysB0V9aBd20A9aA(T5_, result);
		T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T7_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_129));
		result = amp__mFDAEkd1kysB0V9aBd20A9aA(T6_, T7_);
		goto BeforeRet_;
	}
	LA3_: ;
	result = getOrDefault_c1gzIMAwos9ckDh22FJ9cJ4w((*(*m).g).typeInfoMarker, sig);
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T12_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T13_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T14_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T15_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T16_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T17_;
		if (!!((result == NIM_NIL))) goto LA10_;
		T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = cgsym_0d9bDo5R2p09cv1ljqpC4l8Q(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_140));
		T12_;
		T13_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T13_ = cgsym_0d9bDo5R2p09cv1ljqpC4l8Q(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_141));
		T13_;
		nimZeroMem((void*)T14_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T14_[0] = result;
		addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_142), T14_, 1);
		X5BX5Deq__TRBnfbwbN7k5UwqVgDGskg((&(*m).typeInfoMarker), sig, result);
		T15_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T15_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
		T16_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T16_ = amp__mFDAEkd1kysB0V9aBd20A9aA(T15_, result);
		T17_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T17_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_129));
		result = amp__mFDAEkd1kysB0V9aBd20A9aA(T16_, T17_);
		goto BeforeRet_;
	}
	LA10_: ;
	nimZeroMem((void*)T18_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T19_ = (NimStringDesc*)0;
	T19_ = dollar__cjda4doS9ccFOjsWsGu9aa2A(sig);
	T18_[0] = rope_yShmEg9cffWxI7s5XzEKBow(T19_);
	result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_143), T18_, 1);
	X5BX5Deq__TRBnfbwbN7k5UwqVgDGskg((&(*m).typeInfoMarker), sig, result);
	T20_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T20_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(t_2, IL64(36239903266220304));
	owner = getModule_43y2sdiIt63745LnAZPmZQ((*T20_).owner);
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T25_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T26_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T27_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T28_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T29_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T30_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T31_;
		if (!!((owner == (*m).module))) goto LA23_;
		T25_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T25_ = genTypeInfo_7P9bdUkiYYdBWl5P39cGpERw((*(*m).g).modules->data[(*owner).position], origType, info);
		T25_;
		T26_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T26_ = cgsym_0d9bDo5R2p09cv1ljqpC4l8Q(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_140));
		T26_;
		T27_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T27_ = cgsym_0d9bDo5R2p09cv1ljqpC4l8Q(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_141));
		T27_;
		nimZeroMem((void*)T28_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T28_[0] = result;
		addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_142), T28_, 1);
		T29_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T29_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
		T30_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T30_ = amp__mFDAEkd1kysB0V9aBd20A9aA(T29_, result);
		T31_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T31_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_129));
		result = amp__mFDAEkd1kysB0V9aBd20A9aA(T30_, T31_);
		goto BeforeRet_;
	}
	LA23_: ;
	X5BX5Deq__TRBnfbwbN7k5UwqVgDGskg((&(*(*m).g).typeInfoMarker), sig, result);
	switch ((*t_2).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 3):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 63):
	{
		result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_144));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 26):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 1):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 29):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 47):
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T34_;
		T34_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T34_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_144));
		genTypeInfoAuxBase_DJDWmH1yEAJQyS9cw8frFvg(m, t_2, t_2, result, T34_, info);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 60):
	{
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T40_;
			if (!!(((*t_2).n == NIM_NIL))) goto LA38_;
			T40_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T40_ = lastSon_ab52xel9cFebv9am0xV04xXA(t_2);
			result = genTypeInfo_7P9bdUkiYYdBWl5P39cGpERw(m, T40_, info);
		}
		goto LA36_;
		LA38_: ;
		{
			NimStringDesc* T42_;
			T42_ = (NimStringDesc*)0;
			T42_ = rawNewString((reprEnum((NI)(*t_2).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*t_2).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 13);
appendString(T42_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_155));
appendString(T42_, reprEnum((NI)(*t_2).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
appendChar(T42_, 41);
			internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, T42_);
		}
		LA36_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 52) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 53):
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T49_;
		{
			NimStringDesc* T48_;
			if (!!((((*t_2).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 10))&63U)))!=0))) goto LA46_;
			T48_ = (NimStringDesc*)0;
			T48_ = dollar__E5ya0OOlyISUCw4ENFn9bLA(TM_MQdRN7fpbG7rPm4JpVVAhA_156);
			internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, T48_);
		}
		LA46_: ;
		T49_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T49_ = lastSon_ab52xel9cFebv9am0xV04xXA(t_2);
		result = genTypeInfo_7P9bdUkiYYdBWl5P39cGpERw(m, T49_, info);
		goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25):
	{
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T55_;
			if (!!(((*t_2).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8)))) goto LA53_;
			T55_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T55_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_144));
			genTypeInfoAuxBase_DJDWmH1yEAJQyS9cw8frFvg(m, t_2, t_2, result, T55_, info);
		}
		goto LA51_;
		LA53_: ;
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* x;
			x = fakeClosureType_48KU8UNhiwiVAkHuaV7AfQ(m, (*t_2).owner);
			genTupleInfo_ots5HriJRsUpoyVgDxkeuw(m, x, x, result, info);
		}
		LA51_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
	{
		{
			if (!!(((*(*(*m).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 5)))) goto LA60_;
			genTypeInfoAux_ots5HriJRsUpoyVgDxkeuw_2(m, t_2, t_2, result, info);
			{
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* markerProc;
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T66_;
				if (!(((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 4) <= (*(*(*m).g).config).selectedGC)) goto LA64_;
				markerProc = genTraverseProc_win34wCBUJZ1I3Mfp4Fi1w(m, origType, sig);
				nimZeroMem((void*)T66_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T66_[0] = result;
				T66_[1] = markerProc;
				addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_223), T66_, 2);
			}
			LA64_: ;
		}
		LA60_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 45):
	{
		genTypeInfoAux_ots5HriJRsUpoyVgDxkeuw_2(m, t_2, t_2, result, info);
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* markerProc_2;
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T72_;
			if (!(((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 4) <= (*(*(*m).g).config).selectedGC)) goto LA70_;
			markerProc_2 = genTraverseProc_win34wCBUJZ1I3Mfp4Fi1w(m, origType, sig);
			nimZeroMem((void*)T72_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T72_[0] = result;
			T72_[1] = markerProc_2;
			addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_223), T72_, 2);
		}
		LA70_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 20):
	{
		genTypeInfoAux_ots5HriJRsUpoyVgDxkeuw_2(m, t_2, t_2, result, info);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
	{
		genArrayInfo_T784xcK3PWZsPbKIcqNECw(m, t_2, result, info);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 19):
	{
		genSetInfo_T784xcK3PWZsPbKIcqNECw_2(m, t_2, result, info);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 14):
	{
		genEnumInfo_T784xcK3PWZsPbKIcqNECw_3(m, t_2, result, info);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17):
	{
		genObjectInfo_ots5HriJRsUpoyVgDxkeuw_3(m, t_2, origType, result, info);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		genTupleInfo_ots5HriJRsUpoyVgDxkeuw(m, t_2, origType, result, info);
	}
	break;
	default:
	{
		NimStringDesc* T80_;
		T80_ = (NimStringDesc*)0;
		T80_ = rawNewString((reprEnum((NI)(*t_2).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*t_2).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 13);
appendString(T80_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_155));
appendString(T80_, reprEnum((NI)(*t_2).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
appendChar(T80_, 41);
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, T80_);
	}
	break;
	}
	{
		if (!!(((*t_2).deepCopy == NIM_NIL))) goto LA83_;
		genDeepCopyProc_y7cM22Ax9cVodLpWGwB09cRA(m, (*t_2).deepCopy, result);
	}
	goto LA81_;
	LA83_: ;
	{
		if (!!(((*origType).deepCopy == NIM_NIL))) goto LA86_;
		genDeepCopyProc_y7cM22Ax9cVodLpWGwB09cRA(m, (*origType).deepCopy, result);
	}
	goto LA81_;
	LA86_: ;
	LA81_: ;
	T88_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T88_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
	T89_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T89_ = amp__mFDAEkd1kysB0V9aBd20A9aA(T88_, result);
	T90_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T90_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_129));
	result = amp__mFDAEkd1kysB0V9aBd20A9aA(T89_, T90_);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, localDebugInfo_IpGUPLhMYizrVHs0OdHySA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* a;
	tyArray_f7nG5LD47BH5K9c6mASit3g T16_;
	NimStringDesc* T17_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T18_;
	NI T19_;
{	{
		if (!!(((327680 & (*p).options) == 327680))) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T7_;
		T7_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T7_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*s).typ, IL64(36239903259928848));
		if (!((IL64(281475110928384) &((NU64)1<<((NU)((*T7_).kind)&63U)))!=0)) goto LA8_;
		goto BeforeRet_;
	}
	LA8_: ;
	a = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_45), (*s).loc.r);
	{
		NIM_BOOL T12_;
		T12_ = (NIM_BOOL)0;
		T12_ = ((*s).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 3));
		if (!(T12_)) goto LA13_;
		T12_ = ccgIntroducedPtr_A23DSI2AFKphIXH0nXWePw((*(*(*p).module).g).config, s);
		LA13_: ;
		if (!T12_) goto LA14_;
		a = (*s).loc.r;
	}
	LA14_: ;
	nimZeroMem((void*)T16_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
	T16_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).maxFrameLen)));
	T17_ = (NimStringDesc*)0;
	T17_ = nsuNormalize((*(*s).name).s);
	T16_[1] = makeCString_vQJydtKy4Nf6bXPYtbmjtg(T17_);
	T16_[2] = a;
	T18_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T18_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&(*s).loc));
	T16_[3] = genTypeInfo_7P9bdUkiYYdBWl5P39cGpERw((*p).module, T18_, (*s).info);
	lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_138), T16_, 4);
	(*p).maxFrameLen += ((NI) 1);
	T19_ = ((*p).blocks ? (*p).blocks->Sup.len : 0);
	(*p).blocks->data[(NI)(T19_ - ((NI) 1))].frameLen += ((NI) 1);
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, assignLocalVar_UtJx89cn0a8CNSWWmaj6raA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NimStringDesc* nl;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* decl;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T6_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T7_;
	{
		if (!(((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0)) goto LA3_;
		nl = ((NimStringDesc*) NIM_NIL);
	}
	goto LA1_;
	LA3_: ;
	{
		nl = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_8));
	}
	LA1_: ;
	T6_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T6_ = localVarDecl_NYI5fC69aIqZGRakncXv9cNQ(p, n);
	T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T7_ = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T6_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_93));
	decl = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T7_, nl);
	line_7EHg9a9bBQrxiXUHES9aziKUQ(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0), decl);
	localDebugInfo_IpGUPLhMYizrVHs0OdHySA(p, (*n)._Ukind.S4.sym);
}

N_LIB_PRIVATE N_NIMCALL(void, initLocalVar_EpeofNfMJPurx0duaALCaA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* v, NIM_BOOL immediateAsgn) {
	{
		if (!!((((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 12))&63U)))!=0))) goto LA3_;
		{
			if (!!(immediateAsgn)) goto LA7_;
			constructLoc_UnMShnfXExBqkSCjaZsFdw(p, (&(*v).loc), NIM_FALSE);
		}
		LA7_: ;
	}
	LA3_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, fillResult_p9cP79bBkRq6WIT5fOHMaTzQ)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* param) {
	tyArray_qTjAvTvKF9anytN1At69aJMQ T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T2_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	nimZeroMem((void*)T1_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
	T2_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_243), T1_, 0);
	fillLoc_US6BUWbxbS9bTHtpMCqKFkw((&(*(*param)._Ukind.S4.sym).loc), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 4), param, T2_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 2));
	t = (*(*param)._Ukind.S4.sym).typ;
	{
		NIM_BOOL T5_;
		tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w T6_;
		T5_ = (NIM_BOOL)0;
		T6_ = (tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w)0;
		T6_ = mapReturnType_K9aceyVl15zb9aYN9b6YJ8TnA_3(conf, t);
		T5_ = !((T6_ == ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 17)));
		if (!(T5_)) goto LA7_;
		T5_ = isInvalidReturnType_ugBeCbo3I6LqXHcpCBFN9ag(conf, t);
		LA7_: ;
		if (!T5_) goto LA8_;
		(*(*param)._Ukind.S4.sym).loc.flags |= ((NU16)1)<<((((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 0))%(sizeof(NU16)*8));
		(*(*param)._Ukind.S4.sym).loc.storage = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0);
	}
	LA8_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, scopeMangledParam_XXk2P9ctI8tNzE1vnYRV8RA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* param) {
	NimStringDesc* key;
	key = mangle_0ctHksTXSPyaxjBOgK4TiA((*(*param).name).s);
	shallow_67KGEOtDSAz3i9cPDqgyaCwmsgs((&key));
	inc_YksznXEZ19bxdCUr6TgeIRg((&(*p).sigConflicts), key, ((NI) 1));
}

N_LIB_PRIVATE N_NIMCALL(void, assignParam_IpGUPLhMYizrVHs0OdHySA_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s) {
	scopeMangledParam_XXk2P9ctI8tNzE1vnYRV8RA(p, s);
	localDebugInfo_IpGUPLhMYizrVHs0OdHySA(p, s);
}

N_LIB_PRIVATE N_NIMCALL(tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg, allPathsAsgnResult_1EA5Ct9aHKpWldrirVzWMeA)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg result;
{	result = (tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg)0;
	result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 0);
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 115):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 126):
	{
		{
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
			it = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen_CdME9baJhvveuPEDZE9bXoxArenderer(n);
				i_2 = ((NI) 0);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA5;
						i = i_2;
						it = (*n)._Ukind.S6.sons->data[i];
						result = allPathsAsgnResult_1EA5Ct9aHKpWldrirVzWMeA(it);
						{
							if (!!((result == ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 0)))) goto LA8_;
							goto BeforeRet_;
						}
						LA8_: ;
						i_2 += ((NI) 1);
					} LA5: ;
				}
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 73):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 74):
	{
		{
			NIM_BOOL T13_;
			T13_ = (NIM_BOOL)0;
			T13_ = ((*(*n)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T13_)) goto LA14_;
			T13_ = ((*(*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 11));
			LA14_: ;
			if (!T13_) goto LA15_;
			{
				NIM_BOOL T19_;
				T19_ = (NIM_BOOL)0;
				T19_ = containsResult_6sY5yTLspKSvipAn7QLtbg((*n)._Ukind.S6.sons->data[((NI) 1)]);
				if (!!(T19_)) goto LA20_;
				result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 1);
			}
			goto LA17_;
			LA20_: ;
			{
				result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 2);
			}
			LA17_: ;
		}
		goto LA11_;
		LA15_: ;
		{
			NIM_BOOL T24_;
			T24_ = (NIM_BOOL)0;
			T24_ = containsResult_6sY5yTLspKSvipAn7QLtbg(n);
			if (!T24_) goto LA25_;
			result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 2);
		}
		goto LA11_;
		LA25_: ;
		LA11_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 109):
	{
		{
			NI T30_;
			T30_ = (NI)0;
			T30_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
			if (!(((NI) 0) < T30_)) goto LA31_;
			result = allPathsAsgnResult_1EA5Ct9aHKpWldrirVzWMeA((*n)._Ukind.S6.sons->data[((NI) 0)]);
		}
		LA31_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 92):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 48):
	{
		NIM_BOOL exhaustive;
		exhaustive = NIM_FALSE;
		result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 1);
		{
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it_2;
			it_2 = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i_3;
				NI colontmp__2;
				NI i_4;
				i_3 = (NI)0;
				colontmp__2 = (NI)0;
				colontmp__2 = safeLen_CdME9baJhvveuPEDZE9bXoxArenderer(n);
				i_4 = ((NI) 0);
				{
					while (1) {
						tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg a;
						tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T50_;
						if (!(i_4 < colontmp__2)) goto LA37;
						i_3 = i_4;
						it_2 = (*n)._Ukind.S6.sons->data[i_3];
						{
							NIM_BOOL T40_;
							NI T41_;
							T40_ = (NIM_BOOL)0;
							T41_ = (NI)0;
							T41_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(it_2);
							T40_ = (T41_ == ((NI) 2));
							if (!(T40_)) goto LA42_;
							T40_ = containsResult_6sY5yTLspKSvipAn7QLtbg((*it_2)._Ukind.S6.sons->data[((NI) 0)]);
							LA42_: ;
							if (!T40_) goto LA43_;
							result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 2);
							goto BeforeRet_;
						}
						LA43_: ;
						{
							NI T47_;
							T47_ = (NI)0;
							T47_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(it_2);
							if (!(T47_ == ((NI) 1))) goto LA48_;
							exhaustive = NIM_TRUE;
						}
						LA48_: ;
						T50_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
						T50_ = lastSon_esDJA7239bJDiq4UrX9aHCjg(it_2);
						a = allPathsAsgnResult_1EA5Ct9aHKpWldrirVzWMeA(T50_);
						switch (a) {
						case ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 2):
						{
							result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 2);
							goto BeforeRet_;
						}
						break;
						case ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 1):
						{
						}
						break;
						case ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 0):
						{
							result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 0);
						}
						break;
						}
						i_4 += ((NI) 1);
					} LA37: ;
				}
			}
		}
		{
			if (!!(exhaustive)) goto LA56_;
			result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 0);
		}
		LA56_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 97):
	{
		NIM_BOOL exhaustive_2;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T64_;
		{
			NIM_BOOL T61_;
			T61_ = (NIM_BOOL)0;
			T61_ = containsResult_6sY5yTLspKSvipAn7QLtbg((*n)._Ukind.S6.sons->data[((NI) 0)]);
			if (!T61_) goto LA62_;
			result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 2);
			goto BeforeRet_;
		}
		LA62_: ;
		result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 1);
		T64_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T64_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*n)._Ukind.S6.sons->data[((NI) 0)]).typ, IL64(36099165772621840));
		exhaustive_2 = !(((IL64(1031060586496) &((NU64)1<<((NU)((*T64_).kind)&63U)))!=0));
		{
			NI i_5;
			NI colontmp__3;
			NI i_6;
			i_5 = (NI)0;
			colontmp__3 = (NI)0;
			colontmp__3 = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
			i_6 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it_3;
					tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg a_2;
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T68_;
					if (!(i_6 < colontmp__3)) goto LA67;
					i_5 = i_6;
					it_3 = (*n)._Ukind.S6.sons->data[i_5];
					T68_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
					T68_ = lastSon_esDJA7239bJDiq4UrX9aHCjg(it_3);
					a_2 = allPathsAsgnResult_1EA5Ct9aHKpWldrirVzWMeA(T68_);
					switch (a_2) {
					case ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 2):
					{
						result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 2);
						goto BeforeRet_;
					}
					break;
					case ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 1):
					{
					}
					break;
					case ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 0):
					{
						result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 0);
					}
					break;
					}
					{
						if (!((*it_3).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 88))) goto LA74_;
						exhaustive_2 = NIM_TRUE;
					}
					LA74_: ;
					i_6 += ((NI) 1);
				} LA67: ;
			}
		}
		{
			if (!!(exhaustive_2)) goto LA78_;
			result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 0);
		}
		LA78_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 96):
	{
		result = allPathsAsgnResult_1EA5Ct9aHKpWldrirVzWMeA((*n)._Ukind.S6.sons->data[((NI) 0)]);
		{
			if (!(result == ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 0))) goto LA83_;
			result = allPathsAsgnResult_1EA5Ct9aHKpWldrirVzWMeA((*n)._Ukind.S6.sons->data[((NI) 1)]);
			{
				if (!(result == ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 1))) goto LA87_;
				result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 0);
			}
			LA87_: ;
		}
		LA83_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 79) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 84):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 98):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 101):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 125):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 159):
	{
		result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 0);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 156):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 158):
	{
		result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 2);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		{
			if (!((*(*n)._Ukind.S4.sym).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 11))) goto LA94_;
			result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 2);
		}
		LA94_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 106):
	{
		result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 1);
		{
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it_4;
			it_4 = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i_7;
				NI colontmp__4;
				NI i_8;
				i_7 = (NI)0;
				colontmp__4 = (NI)0;
				colontmp__4 = safeLen_CdME9baJhvveuPEDZE9bXoxArenderer(n);
				i_8 = ((NI) 0);
				{
					while (1) {
						if (!(i_8 < colontmp__4)) goto LA100;
						i_7 = i_8;
						it_4 = (*n)._Ukind.S6.sons->data[i_7];
						{
							tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T105_;
							if (!((*it_4).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 107))) goto LA103_;
							T105_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
							T105_ = lastSon_esDJA7239bJDiq4UrX9aHCjg(it_4);
							result = allPathsAsgnResult_1EA5Ct9aHKpWldrirVzWMeA(T105_);
						}
						goto LA101_;
						LA103_: ;
						{
							tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg a_3;
							tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T107_;
							T107_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
							T107_ = lastSon_esDJA7239bJDiq4UrX9aHCjg(it_4);
							a_3 = allPathsAsgnResult_1EA5Ct9aHKpWldrirVzWMeA(T107_);
							switch (a_3) {
							case ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 2):
							{
								result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 2);
								goto BeforeRet_;
							}
							break;
							case ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 1):
							{
							}
							break;
							case ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 0):
							{
								result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 0);
							}
							break;
							}
						}
						LA101_: ;
						i_8 += ((NI) 1);
					} LA100: ;
				}
			}
		}
	}
	break;
	default:
	{
		{
			NI i_9;
			NI colontmp__5;
			NI i_10;
			i_9 = (NI)0;
			colontmp__5 = (NI)0;
			colontmp__5 = safeLen_CdME9baJhvveuPEDZE9bXoxArenderer(n);
			i_10 = ((NI) 0);
			{
				while (1) {
					tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg a_4;
					if (!(i_10 < colontmp__5)) goto LA114;
					i_9 = i_10;
					a_4 = allPathsAsgnResult_1EA5Ct9aHKpWldrirVzWMeA((*n)._Ukind.S6.sons->data[i_9]);
					switch (a_4) {
					case ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 2):
					{
						result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 2);
						goto BeforeRet_;
					}
					break;
					case ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 1):
					{
					}
					break;
					case ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 0):
					{
						result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 0);
					}
					break;
					}
					i_10 += ((NI) 1);
				} LA114: ;
			}
		}
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}

static N_INLINE(NIM_BOOL, usesWriteBarrier_6aU0ZBrns2mWNHTDUbDERQcgen)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = (((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 6) <= (*conf).selectedGC);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genRefAssign_BtucsTdHw7orsXIL75hNVg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* dest, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* src, tySet_tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw flags) {
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*dest).storage == ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 2));
		if (T3_) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = usesWriteBarrier_6aU0ZBrns2mWNHTDUbDERQcgen((*(*(*p).module).g).config);
		T3_ = !(T5_);
		LA4_: ;
		if (!T3_) goto LA6_;
		nimZeroMem((void*)T8_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T8_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
		T8_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
		linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_136), T8_, 2);
	}
	goto LA1_;
	LA6_: ;
	{
		if (!((*dest).storage == ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 4))) goto LA10_;
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T14_;
			NIM_BOOL T15_;
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T18_;
			T14_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T14_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen(dest);
			T15_ = (NIM_BOOL)0;
			T15_ = canFormAcycle_IVXYI9cxSeivThgKCncHRnA_2(T14_);
			if (!T15_) goto LA16_;
			nimZeroMem((void*)T18_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T18_[0] = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, dest);
			T18_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
			linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_244), T18_, 2);
		}
		goto LA12_;
		LA16_: ;
		{
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T20_;
			nimZeroMem((void*)T20_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T20_[0] = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, dest);
			T20_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
			linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_245), T20_, 2);
		}
		LA12_: ;
	}
	goto LA1_;
	LA10_: ;
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T22_;
		nimZeroMem((void*)T22_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T22_[0] = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, dest);
		T22_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
		linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_246), T22_, 2);
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, resetLoc_B9bNAYVEwjQtkUkvoOVhV2Q)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* loc) {
	NIM_BOOL containsGcRef;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T2_;
{	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&(*loc)));
	containsGcRef = containsGarbageCollectedRef_IVXYI9cxSeivThgKCncHRnA(T1_);
	T2_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T2_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&(*loc)));
	typ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(T2_, IL64(36099165772622096));
	{
		NIM_BOOL T5_;
		T5_ = (NIM_BOOL)0;
		T5_ = isImportedCppType_UCeqXNU9bJdSIbOIWbb0zng(typ);
		if (!T5_) goto LA6_;
		goto BeforeRet_;
	}
	LA6_: ;
	{
		NIM_BOOL T10_;
		T10_ = (NIM_BOOL)0;
		T10_ = isComplexValueType_AcJpLeR4vGQ9bUfQVqMi1Egcgen(typ);
		if (!!(T10_)) goto LA11_;
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA nilLoc;
			if (!containsGcRef) goto LA15_;
			nimZeroMem((void*)(&nilLoc), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			initLoc_z9bd78in9czXhMZLT0QNB5Tw((&nilLoc), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 1), (*loc).lode, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 2));
			nilLoc.r = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_199));
			genRefAssign_BtucsTdHw7orsXIL75hNVg(p, (&(*loc)), (&nilLoc), 8);
		}
		goto LA13_;
		LA15_: ;
		{
			tyArray_JiWwrsTRC6xqNlGcBthSVA T18_;
			nimZeroMem((void*)T18_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T18_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&(*loc)));
			linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_247), T18_, 1);
		}
		LA13_: ;
	}
	goto LA8_;
	LA11_: ;
	{
		{
			tyArray_JiWwrsTRC6xqNlGcBthSVA T24_;
			if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 6))&31U)))!=0)) goto LA22_;
			nimZeroMem((void*)T24_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T24_[0] = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, (&(*loc)));
			linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_248), T24_, 1);
		}
		LA22_: ;
		{
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T29_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T30_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T31_;
			if (!!(((*loc).storage == ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 2)))) goto LA27_;
			nimZeroMem((void*)T29_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T29_[0] = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, (&(*loc)));
			T30_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T30_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&(*loc)));
			T29_[1] = genTypeInfo_7P9bdUkiYYdBWl5P39cGpERw((*p).module, T30_, (*(*loc).lode).info);
			linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_249), T29_, 2);
			T31_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T31_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&(*loc)));
			genObjectInit_pua7psQb9a19bblGZEt9b0ZXA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), T31_, (&(*loc)), NIM_TRUE);
		}
		goto LA25_;
		LA27_: ;
		{
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T33_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T34_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T35_;
			nimZeroMem((void*)T33_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T33_[0] = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, (&(*loc)));
			T34_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T34_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&(*loc)));
			T33_[1] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, T34_);
			linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_172), T33_, 2);
			T35_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T35_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&(*loc)));
			genObjectInit_pua7psQb9a19bblGZEt9b0ZXA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), T35_, (&(*loc)), NIM_TRUE);
		}
		LA25_: ;
	}
	LA8_: ;
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, closureSetup_PDMGXd7Yn9cB79asQW3arukQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ls;
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* env;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T9_;
{	{
		if (!!((((*(*prc).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 12))&63U)))!=0))) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	ls = lastSon_esDJA7239bJDiq4UrX9aHCjg((*(*prc).ast)._Ukind.S6.sons->data[((NI) 3)]);
	{
		if (!!(((*ls).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA7_;
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*prc).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_250));
	}
	LA7_: ;
	env = (*ls)._Ukind.S4.sym;
	assignLocalVar_UtJx89cn0a8CNSWWmaj6raA(p, ls);
	nimZeroMem((void*)T9_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T9_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&(*env).loc));
	T9_[1] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, (*env).typ);
	linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_251), T9_, 2);
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, initGCFrame_3AsTOpq9crZUYBL9aD1lXBng_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T5_;
		if (!(((NI) 0) < ((NI) ((*p).gcFrameId)))) goto LA3_;
		nimZeroMem((void*)T5_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T5_[0] = (*p).gcFrameType;
		result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_256), T5_, 1);
	}
	LA3_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, initFrame_hSB0mXJGcFil9bvrhp0Qm5g)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* procname, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* filename) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T1_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = cgsym_0d9bDo5R2p09cv1ljqpC4l8Q((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_257));
	T1_;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T6_;
		tyArray_f7nG5LD47BH5K9c6mASit3g T7_;
		if (!(((NI) 0) < (*p).maxFrameLen)) goto LA4_;
		T6_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T6_ = cgsym_0d9bDo5R2p09cv1ljqpC4l8Q((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_258));
		T6_;
		nimZeroMem((void*)T7_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
		T7_[0] = procname;
		T7_[1] = filename;
		T7_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).maxFrameLen)));
		T7_[3] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).blocks->data[((NI) 0)].frameLen)));
		result = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_259), T7_, 4);
	}
	goto LA2_;
	LA4_: ;
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T9_;
		nimZeroMem((void*)T9_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T9_[0] = procname;
		T9_[1] = filename;
		result = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_260), T9_, 2);
	}
	LA2_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, appcg_zZ8N2PtAlqFZKCp7nvAnhw_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg s, NimStringDesc* frmt, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T2_;
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T1_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p, s);
	T2_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, frmt, args, argsLen_0);
	add_iMTw0CDaruwETLGb9bhpBLg(T1_, T2_);
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, deinitGCFrame_3AsTOpq9crZUYBL9aD1lXBng_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		tyArray_qTjAvTvKF9anytN1At69aJMQ T5_;
		if (!(((NI) 0) < ((NI) ((*p).gcFrameId)))) goto LA3_;
		nimZeroMem((void*)T5_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		result = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_264), T5_, 0);
	}
	LA3_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, deinitFrame_3AsTOpq9crZUYBL9aD1lXBng_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyArray_qTjAvTvKF9anytN1At69aJMQ T1_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	nimZeroMem((void*)T1_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
	result = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_265), T1_, 0);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genProcAux_LVUZwjNmLEZwI6xGJ9aeU7Q_3)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc) {
	tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* header;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* returnStmt;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* generatedProc;
	p = newProc_STnnVeEn5Wp52dw0JRN7ZQ(prc, m);
	header = genProcHeader_uPFGxWOkwQtDerpzAqNn9aw(m, prc);
	returnStmt = NIM_NIL;
	{
		NIM_BOOL T3_;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* resNode;
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* res;
		T3_ = (NIM_BOOL)0;
		T3_ = !((((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 9))&63U)))!=0));
		if (!(T3_)) goto LA4_;
		T3_ = !(((*(*prc).typ).sons->data[((NI) 0)] == NIM_NIL));
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			NI T9_;
			T9_ = (NI)0;
			T9_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch((*prc).ast);
			if (!(T9_ <= ((NI) 7))) goto LA10_;
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*m).g).config, (*prc).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_132));
		}
		LA10_: ;
		resNode = (*(*prc).ast)._Ukind.S6.sons->data[((NI) 7)];
		res = (*resNode)._Ukind.S4.sym;
		{
			NIM_BOOL T14_;
			tyArray_JiWwrsTRC6xqNlGcBthSVA T33_;
			T14_ = (NIM_BOOL)0;
			T14_ = isInvalidReturnType_ugBeCbo3I6LqXHcpCBFN9ag((*(*m).g).config, (*(*prc).typ).sons->data[((NI) 0)]);
			if (!!(T14_)) goto LA15_;
			{
				if (!(((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 12))&63U)))!=0)) goto LA19_;
				(*res).flags |= ((NU64)1)<<((((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 12))%(sizeof(NU64)*8));
			}
			LA19_: ;
			{
				NIM_BOOL T23_;
				NIM_BOOL T24_;
				NIM_BOOL T26_;
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* val;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* decl;
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T31_;
				T23_ = (NIM_BOOL)0;
				T24_ = (NIM_BOOL)0;
				T24_ = (((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 12))&63U)))!=0);
				if (!(T24_)) goto LA25_;
				T26_ = (NIM_BOOL)0;
				T26_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
				if (T26_) goto LA27_;
				T26_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
				LA27_: ;
				T24_ = T26_;
				LA25_: ;
				T23_ = T24_;
				if (!(T23_)) goto LA28_;
				val = easyResultAsgn_1TL9cg0ds6vTtfhbmuTNGBA((*(*prc).ast)._Ukind.S6.sons->data[((NI) 6)]);
				T23_ = !((val == NIM_NIL));
				LA28_: ;
				if (!T23_) goto LA29_;
				decl = localVarDecl_NYI5fC69aIqZGRakncXv9cNQ(p, resNode);
				nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				initLocExprSingleUse_9biTBaXPz9cezuLjjWw9cSEGw(p, val, (&a));
				nimZeroMem((void*)T31_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T31_[0] = decl;
				T31_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
				linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_136), T31_, 2);
			}
			goto LA21_;
			LA29_: ;
			{
				assignLocalVar_UtJx89cn0a8CNSWWmaj6raA(p, resNode);
				initLocalVar_EpeofNfMJPurx0duaALCaA(p, res, NIM_FALSE);
			}
			LA21_: ;
			nimZeroMem((void*)T33_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T33_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&(*res).loc));
			returnStmt = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_242), T33_, 1);
		}
		goto LA12_;
		LA15_: ;
		{
			fillResult_p9cP79bBkRq6WIT5fOHMaTzQ((*(*(*p).module).g).config, resNode);
			assignParam_IpGUPLhMYizrVHs0OdHySA_2(p, res);
			{
				if (!(((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 12))&63U)))!=0)) goto LA37_;
			}
			goto LA35_;
			LA37_: ;
			{
				tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg T40_;
				T40_ = (tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg)0;
				T40_ = allPathsAsgnResult_1EA5Ct9aHKpWldrirVzWMeA((*(*prc).ast)._Ukind.S6.sons->data[((NI) 6)]);
				if (!(T40_ == ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 1))) goto LA41_;
			}
			goto LA35_;
			LA41_: ;
			{
				resetLoc_B9bNAYVEwjQtkUkvoOVhV2Q(p, (&(*res).loc));
			}
			LA35_: ;
			{
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T46_;
				T46_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T46_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*res).typ, IL64(36099165763184912));
				if (!((*T46_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16))) goto LA47_;
				(*res).loc.storage = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0);
			}
			LA47_: ;
		}
		LA12_: ;
	}
	LA5_: ;
	{
		NI i;
		NI colontmp_;
		NI T50_;
		NI res_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T50_ = (NI)0;
		T50_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig((*(*prc).typ).n);
		colontmp_ = (NI)(T50_ - ((NI) 1));
		res_2 = ((NI) 1);
		{
			while (1) {
				if (!(res_2 <= colontmp_)) goto LA52;
				i = res_2;
				{
					tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* param;
					param = (*(*(*(*prc).typ).n)._Ukind.S6.sons->data[i])._Ukind.S4.sym;
					{
						NIM_BOOL T56_;
						T56_ = (NIM_BOOL)0;
						T56_ = isCompileTimeOnly_xUyAbEic5Yj9bmdDArJbHkQcgen((*param).typ);
						if (!T56_) goto LA57_;
						goto LA53;
					}
					LA57_: ;
					assignParam_IpGUPLhMYizrVHs0OdHySA_2(p, param);
				} LA53: ;
				res_2 += ((NI) 1);
			} LA52: ;
		}
	}
	closureSetup_PDMGXd7Yn9cB79asQW3arukQ(p, prc);
	genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, (*(*prc).ast)._Ukind.S6.sons->data[((NI) 6)]);
	generatedProc = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!(((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 14))&63U)))!=0)) goto LA61_;
		{
			if (!((CC_78I18QZNZFIv9ah7oETc0jg[((*(*(*(*p).module).g).config).cCompiler)- 1].Field19 &(1U<<((NU)(((tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg) 6))&7U)))!=0)) goto LA65_;
			header = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_252), header);
		}
		LA65_: ;
	}
	LA61_: ;
	{
		tyArray_f7nG5LD47BH5K9c6mASit3g T75_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T76_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T77_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T78_;
		if (!(((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 9))&63U)))!=0)) goto LA69_;
		{
			if (!((CC_78I18QZNZFIv9ah7oETc0jg[((*(*(*(*p).module).g).config).cCompiler)- 1].Field19 &(1U<<((NU)(((tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg) 6))&7U)))!=0)) goto LA73_;
			header = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_253), header);
		}
		LA73_: ;
		nimZeroMem((void*)T75_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
		T75_[0] = header;
		T76_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T76_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
		T75_[1] = (*T76_);
		T77_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T77_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1));
		T75_[2] = (*T77_);
		T78_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T78_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		T75_[3] = (*T78_);
		generatedProc = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_254), T75_, 4);
	}
	goto LA67_;
	LA69_: ;
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T80_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T81_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T100_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T101_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T108_;
		tyArray_qTjAvTvKF9anytN1At69aJMQ T114_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T115_;
		nimZeroMem((void*)T80_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T80_[0] = header;
		generatedProc = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_255), T80_, 1);
		T81_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T81_ = initGCFrame_3AsTOpq9crZUYBL9aD1lXBng_3(p);
		add_iMTw0CDaruwETLGb9bhpBLg(&generatedProc, T81_);
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T86_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* procname;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T87_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T88_;
			if (!(((*prc).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 16))&31U)))!=0)) goto LA84_;
			T86_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T86_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
			add_iMTw0CDaruwETLGb9bhpBLg(&generatedProc, (*T86_));
			procname = makeCString_vQJydtKy4Nf6bXPYtbmjtg((*(*prc).name).s);
			T87_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T87_ = quotedFilename_9cv9aIRvZfYbftCtn2P2ABrQ((*(*(*p).module).g).config, (*prc).info);
			T88_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T88_ = initFrame_hSB0mXJGcFil9bvrhp0Qm5g(p, procname, T87_);
			add_iMTw0CDaruwETLGb9bhpBLg(&generatedProc, T88_);
		}
		goto LA82_;
		LA84_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T90_;
			T90_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T90_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
			add_iMTw0CDaruwETLGb9bhpBLg(&generatedProc, (*T90_));
		}
		LA82_: ;
		{
			tyArray_qTjAvTvKF9anytN1At69aJMQ T95_;
			if (!(((*prc).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 20))&31U)))!=0)) goto LA93_;
			nimZeroMem((void*)T95_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
			appcg_zZ8N2PtAlqFZKCp7nvAnhw_3(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_261), T95_, 0);
		}
		LA93_: ;
		{
			if (!(*p).beforeRetNeeded) goto LA98_;
			add_yG4AKzsBRS1W4MANDlXQeg(&generatedProc, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_262));
		}
		LA98_: ;
		T100_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T100_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1));
		add_iMTw0CDaruwETLGb9bhpBLg(&generatedProc, (*T100_));
		T101_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T101_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		add_iMTw0CDaruwETLGb9bhpBLg(&generatedProc, (*T101_));
		{
			tyArray_qTjAvTvKF9anytN1At69aJMQ T106_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T107_;
			if (!(*p).beforeRetNeeded) goto LA104_;
			nimZeroMem((void*)T106_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
			T107_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T107_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_263), T106_, 0);
			add_iMTw0CDaruwETLGb9bhpBLg(&generatedProc, T107_);
		}
		LA104_: ;
		T108_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T108_ = deinitGCFrame_3AsTOpq9crZUYBL9aD1lXBng_4(p);
		add_iMTw0CDaruwETLGb9bhpBLg(&generatedProc, T108_);
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T113_;
			if (!(((*prc).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 16))&31U)))!=0)) goto LA111_;
			T113_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T113_ = deinitFrame_3AsTOpq9crZUYBL9aD1lXBng_5(p);
			add_iMTw0CDaruwETLGb9bhpBLg(&generatedProc, T113_);
		}
		LA111_: ;
		add_iMTw0CDaruwETLGb9bhpBLg(&generatedProc, returnStmt);
		nimZeroMem((void*)T114_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		T115_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T115_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_266), T114_, 0);
		add_iMTw0CDaruwETLGb9bhpBLg(&generatedProc, T115_);
	}
	LA67_: ;
	add_iMTw0CDaruwETLGb9bhpBLg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], generatedProc);
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A*, findPendingModule_QkizK2DHRxMh5swL3xy9bjQ)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s) {
	tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* result;
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* ms;
	result = (tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A*)0;
	ms = getModule_43y2sdiIt63745LnAZPmZQ(s);
	result = (*(*m).g).modules->data[(*ms).position];
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isGetProcAddr_DWGi9cQP3F3V81PvoGyWZ9bw)(tyObject_TLib_NBMxlJ6g3utqUlplqTTHkA* lib) {
	NIM_BOOL result;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	result = (NIM_BOOL)0;
	n = (*lib).path;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = ((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 32));
	if (!(T2_)) goto LA3_;
	T2_ = !(((*n).typ == NIM_NIL));
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T1_ = ((100663296 &((NU64)1<<((NU)((*(*n).typ).kind)&63U)))!=0);
	LA4_: ;
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* result) {
	initLoc_z9bd78in9czXhMZLT0QNB5Tw(result, ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0), e, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	expr_8mAL9ckajemzgfLPfeZVNoQ(p, e, result);
}

N_LIB_PRIVATE N_NIMCALL(void, loadDynamicLib_rOv9bE9csBi1MWNoAOUzHcBg)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TLib_NBMxlJ6g3utqUlplqTTHkA* lib) {
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tmp;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T5_;
		if (!!((*lib).generated)) goto LA3_;
		(*lib).generated = NIM_TRUE;
		tmp = getTempName_9cFzUT5Cyfi5u0F447WwLvA(m);
		asgnRefNoCycle((void**) (&(*lib).name), tmp);
		nimZeroMem((void*)T5_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T5_[0] = tmp;
		addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_267), T5_, 1);
		{
			tySequence_sM4lkSb7zS6F7OVMvW9cffQ* s;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* loadlib;
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T19_;
			if (!((*(*lib).path).kind >= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*(*lib).path).kind <= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 22))) goto LA8_;
			s = NIM_NIL;
			libCandidates_z61W6kN39aBKDgNtbcWn9cSg((*(*lib).path)._Ukind.S3.strVal, (&s));
			rawMessage_h30HgTFwbGq0PsyHmRqZ8g((*(*m).g).config, ((tyEnum_TMsgKind_29cbg2fC1z5iM1PAI28kR5w) 61), (*(*lib).path)._Ukind.S3.strVal);
			loadlib = NIM_NIL;
			{
				NI i;
				NI colontmp_;
				NI T11_;
				NI res;
				i = (NI)0;
				colontmp_ = (NI)0;
				T11_ = ((s ? s->Sup.len : 0)-1);
				colontmp_ = T11_;
				res = ((NI) 0);
				{
					while (1) {
						tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n;
						tyArray_mrugoXXRZUEeG9bEXo9auBKw T18_;
						if (!(res <= colontmp_)) goto LA13;
						i = res;
						(*m).labels += ((NI) 1);
						{
							if (!(((NI) 0) < i)) goto LA16_;
							add_yG4AKzsBRS1W4MANDlXQeg(&loadlib, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_268));
						}
						LA16_: ;
						n = newStrNode_8GaTnuPqpzGLNcerzDOURQ(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20), s->data[i]);
						(*n).info = (*(*lib).path).info;
						nimZeroMem((void*)T18_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
						T18_[0] = tmp;
						T18_[1] = genStringLiteral_BL0R9bSjJmdssSOZrTtp5UQ(m, n);
						appcg_GrB2Hbyo8XeK6TPKMD0Y5A(m, &loadlib, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_269), T18_, 2);
						res += ((NI) 1);
					} LA13: ;
				}
			}
			nimZeroMem((void*)T19_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T19_[0] = loadlib;
			T19_[1] = genStringLiteral_BL0R9bSjJmdssSOZrTtp5UQ(m, (*lib).path);
			appcg_GrB2Hbyo8XeK6TPKMD0Y5A(m, &(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_270), T19_, 2);
		}
		goto LA6_;
		LA8_: ;
		{
			tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p;
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA dest;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T21_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T22_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T23_;
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T24_;
			p = newProc_STnnVeEn5Wp52dw0JRN7ZQ(NIM_NIL, m);
			(*p).options = ((*p).options & ~ 327680);
			nimZeroMem((void*)(&dest), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*lib).path, (&dest));
			T21_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T21_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
			add_iMTw0CDaruwETLGb9bhpBLg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], (*T21_));
			T22_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T22_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1));
			add_iMTw0CDaruwETLGb9bhpBLg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], (*T22_));
			T23_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T23_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			add_iMTw0CDaruwETLGb9bhpBLg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], (*T23_));
			nimZeroMem((void*)T24_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T24_[0] = tmp;
			T24_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg((&dest));
			appcg_GrB2Hbyo8XeK6TPKMD0Y5A(m, &(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_271), T24_, 2);
		}
		LA6_: ;
	}
	LA3_: ;
	{
		if (!((*lib).name == NIM_NIL)) goto LA27_;
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_272));
	}
	LA27_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, mangleDynLibProc_MkmvPNwLUVhzodPsMjdbJw)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!(((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 16))&63U)))!=0)) goto LA3_;
		result = rope_yShmEg9cffWxI7s5XzEKBow((*(*sym).name).s);
	}
	goto LA1_;
	LA3_: ;
	{
		NimStringDesc* T6_;
		NimStringDesc* T7_;
		T6_ = (NimStringDesc*)0;
		T6_ = nimIntToStr((*sym).Sup.id);
		T7_ = (NimStringDesc*)0;
		T7_ = nsuFormatSingleElem(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_273), T6_);
		result = rope_yShmEg9cffWxI7s5XzEKBow(T7_);
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, symInDynamicLib_5Uk70SBbgLBcInZnRFJtnA_2)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym) {
	tyObject_TLib_NBMxlJ6g3utqUlplqTTHkA* lib;
	NIM_BOOL isCall;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* extname;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tmp;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T41_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T42_;
	lib = (*sym).annex;
	isCall = isGetProcAddr_DWGi9cQP3F3V81PvoGyWZ9bw(lib);
	extname = (*sym).loc.r;
	{
		if (!!(isCall)) goto LA3_;
		loadDynamicLib_rOv9bE9csBi1MWNoAOUzHcBg(m, lib);
	}
	LA3_: ;
	tmp = mangleDynLibProc_MkmvPNwLUVhzodPsMjdbJw(sym);
	asgnRefNoCycle((void**) (&(*sym).loc.r), tmp);
	asgnRefNoCycle((void**) (&(*(*sym).typ).sym), NIM_NIL);
	(*m).labels += ((NI) 2);
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* params;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* load;
		tyArray_f7nG5LD47BH5K9c6mASit3g T15_;
		NimStringDesc* T16_;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* last;
		NimStringDesc* idx;
		if (!isCall) goto LA7_;
		n = (*lib).path;
		nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2((*m).initProc, (*n)._Ukind.S6.sons->data[((NI) 0)], (&a));
		T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T9_ = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
		params = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T9_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_130));
		{
			NI i;
			NI colontmp_;
			NI T11_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T11_ = (NI)0;
			T11_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
			colontmp_ = (NI)(T11_ - ((NI) 2));
			res = ((NI) 1);
			{
				while (1) {
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
					if (!(res <= colontmp_)) goto LA13;
					i = res;
					initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2((*m).initProc, (*n)._Ukind.S6.sons->data[i], (&a));
					T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T14_ = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
					add_iMTw0CDaruwETLGb9bhpBLg(&params, T14_);
					add_yG4AKzsBRS1W4MANDlXQeg(&params, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_123));
					res += ((NI) 1);
				} LA13: ;
			}
		}
		nimZeroMem((void*)T15_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
		T15_[0] = tmp;
		T15_[1] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2(m, (*sym).typ);
		T15_[2] = params;
		T16_ = (NimStringDesc*)0;
		T16_ = dollar__4KNdcWAONkpTKQgUR8XiZQ(extname);
		T15_[3] = makeCString_vQJydtKy4Nf6bXPYtbmjtg(T16_);
		load = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_274), T15_, 4);
		last = lastSon_esDJA7239bJDiq4UrX9aHCjg(n);
		{
			if (!((*last).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 58))) goto LA19_;
			last = (*last)._Ukind.S6.sons->data[((NI) 1)];
		}
		LA19_: ;
		{
			NimStringDesc* T25_;
			if (!!(((*last).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20)))) goto LA23_;
			T25_ = (NimStringDesc*)0;
			T25_ = dollar__E5ya0OOlyISUCw4ENFn9bLA(TM_MQdRN7fpbG7rPm4JpVVAhA_275);
			internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, T25_);
		}
		LA23_: ;
		idx = (*last)._Ukind.S3.strVal;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T30_;
			if (!((idx ? idx->Sup.len : 0) == ((NI) 0))) goto LA28_;
			T30_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T30_ = s_oPjlsf0lwosYuh6KXhkqLQcgen((*m).initProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			add_iMTw0CDaruwETLGb9bhpBLg(T30_, load);
		}
		goto LA26_;
		LA28_: ;
		{
			NIM_BOOL T32_;
			T32_ = (NIM_BOOL)0;
			T32_ = ((idx ? idx->Sup.len : 0) == ((NI) 1));
			if (!(T32_)) goto LA33_;
			T32_ = (((NU8)(idx->data[((NI) 0)])) >= ((NU8)(48)) && ((NU8)(idx->data[((NI) 0)])) <= ((NU8)(57)));
			LA33_: ;
			if (!T32_) goto LA34_;
			add_iMTw0CDaruwETLGb9bhpBLg(&(*m).extensionLoaders[(((NU8)(idx->data[((NI) 0)])))- 48], load);
		}
		goto LA26_;
		LA34_: ;
		{
			NimStringDesc* T37_;
			T37_ = (NimStringDesc*)0;
			T37_ = rawNewString((idx ? idx->Sup.len : 0) + 13);
appendString(T37_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_277));
appendString(T37_, idx);
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*m).g).config, (*sym).info, T37_);
		}
		LA26_: ;
	}
	goto LA5_;
	LA7_: ;
	{
		tyArray_f7nG5LD47BH5K9c6mASit3g T39_;
		NimStringDesc* T40_;
		nimZeroMem((void*)T39_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
		T39_[0] = tmp;
		T39_[1] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2(m, (*sym).typ);
		T39_[2] = (*lib).name;
		T40_ = (NimStringDesc*)0;
		T40_ = dollar__4KNdcWAONkpTKQgUR8XiZQ(extname);
		T39_[3] = makeCString_vQJydtKy4Nf6bXPYtbmjtg(T40_);
		appcg_GrB2Hbyo8XeK6TPKMD0Y5A(m, &(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_278), T39_, 4);
	}
	LA5_: ;
	nimZeroMem((void*)T41_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T41_[0] = (*sym).loc.r;
	T42_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T42_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&(*sym).loc));
	T41_[1] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2(m, T42_);
	addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_279), T41_, 2);
}

N_LIB_PRIVATE N_NIMCALL(void, symInDynamicLibPartial_5Uk70SBbgLBcInZnRFJtnA_3)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym) {
	asgnRefNoCycle((void**) (&(*sym).loc.r), mangleDynLibProc_MkmvPNwLUVhzodPsMjdbJw(sym));
	asgnRefNoCycle((void**) (&(*(*sym).typ).sym), NIM_NIL);
}

N_LIB_PRIVATE N_NIMCALL(void, genProcNoForward_LVUZwjNmLEZwI6xGJ9aeU7Q_2)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc) {
{	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T5_;
		if (!(((*prc).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 7))&15U)))!=0)) goto LA3_;
		fillProcLoc_60cAEEW2jYgQLzNzmWrfPg(m, (*(*prc).ast)._Ukind.S6.sons->data[((NI) 0)]);
		useHeader_Ckp4X4sj45vdj9bafLr5LQw(m, prc);
		T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T5_ = cgsym_0d9bDo5R2p09cv1ljqpC4l8Q(m, (*(*prc).name).s);
		T5_;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!(((*prc).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 3))&15U)))!=0)) goto LA8_;
		fillProcLoc_60cAEEW2jYgQLzNzmWrfPg(m, (*(*prc).ast)._Ukind.S6.sons->data[((NI) 0)]);
		useHeader_Ckp4X4sj45vdj9bafLr5LQw(m, prc);
		genProcPrototype_5Uk70SBbgLBcInZnRFJtnA(m, prc);
	}
	goto LA6_;
	LA8_: ;
	{
		if (!((*(*prc).typ).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 5))) goto LA11_;
		{
			NIM_BOOL T15_;
			T15_ = (NIM_BOOL)0;
			T15_ = containsOrIncl_B0EhVMrh5BBBZOOtYjAvVg((&(*m).declaredThings), (*prc).Sup.id);
			if (!!(T15_)) goto LA16_;
			fillProcLoc_60cAEEW2jYgQLzNzmWrfPg(m, (*(*prc).ast)._Ukind.S6.sons->data[((NI) 0)]);
			useHeader_Ckp4X4sj45vdj9bafLr5LQw(m, prc);
			genProcPrototype_5Uk70SBbgLBcInZnRFJtnA(m, prc);
			genProcAux_LVUZwjNmLEZwI6xGJ9aeU7Q_3(m, prc);
		}
		LA16_: ;
	}
	goto LA6_;
	LA11_: ;
	{
		tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* q;
		if (!(((*prc).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 4))&15U)))!=0)) goto LA19_;
		q = findPendingModule_QkizK2DHRxMh5swL3xy9bjQ(m, prc);
		fillProcLoc_60cAEEW2jYgQLzNzmWrfPg(q, (*(*prc).ast)._Ukind.S6.sons->data[((NI) 0)]);
		useHeader_Ckp4X4sj45vdj9bafLr5LQw(m, prc);
		genProcPrototype_5Uk70SBbgLBcInZnRFJtnA(m, prc);
		{
			NIM_BOOL T23_;
			NIM_BOOL T25_;
			T23_ = (NIM_BOOL)0;
			T23_ = !((q == NIM_NIL));
			if (!(T23_)) goto LA24_;
			T25_ = (NIM_BOOL)0;
			T25_ = containsOrIncl_B0EhVMrh5BBBZOOtYjAvVg((&(*q).declaredThings), (*prc).Sup.id);
			T23_ = !(T25_);
			LA24_: ;
			if (!T23_) goto LA26_;
			symInDynamicLib_5Uk70SBbgLBcInZnRFJtnA_2(q, prc);
		}
		goto LA21_;
		LA26_: ;
		{
			symInDynamicLibPartial_5Uk70SBbgLBcInZnRFJtnA_3(m, prc);
		}
		LA21_: ;
	}
	goto LA6_;
	LA19_: ;
	{
		tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* q_2;
		if (!!((((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 5))&63U)))!=0))) goto LA30_;
		q_2 = findPendingModule_QkizK2DHRxMh5swL3xy9bjQ(m, prc);
		fillProcLoc_60cAEEW2jYgQLzNzmWrfPg(q_2, (*(*prc).ast)._Ukind.S6.sons->data[((NI) 0)]);
		useHeader_Ckp4X4sj45vdj9bafLr5LQw(m, prc);
		genProcPrototype_5Uk70SBbgLBcInZnRFJtnA(m, prc);
		{
			NIM_BOOL T34_;
			NIM_BOOL T36_;
			T34_ = (NIM_BOOL)0;
			T34_ = !((q_2 == NIM_NIL));
			if (!(T34_)) goto LA35_;
			T36_ = (NIM_BOOL)0;
			T36_ = containsOrIncl_B0EhVMrh5BBBZOOtYjAvVg((&(*q_2).declaredThings), (*prc).Sup.id);
			T34_ = !(T36_);
			LA35_: ;
			if (!T34_) goto LA37_;
			genProcAux_LVUZwjNmLEZwI6xGJ9aeU7Q_3(q_2, prc);
		}
		LA37_: ;
	}
	goto LA6_;
	LA30_: ;
	{
		fillProcLoc_60cAEEW2jYgQLzNzmWrfPg(m, (*(*prc).ast)._Ukind.S6.sons->data[((NI) 0)]);
		useHeader_Ckp4X4sj45vdj9bafLr5LQw(m, prc);
		{
			if (!!((((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0))) goto LA42_;
			genProcPrototype_5Uk70SBbgLBcInZnRFJtnA(m, prc);
		}
		LA42_: ;
	}
	LA6_: ;
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genProc_LVUZwjNmLEZwI6xGJ9aeU7Q)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc) {
{	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 27))&63U)))!=0);
		if (T3_) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = isActivated_7VrUPkxnaFwgUwnPlsQOpQ(prc);
		T3_ = !(T5_);
		LA4_: ;
		if (!T3_) goto LA6_;
		goto BeforeRet_;
	}
	LA6_: ;
	{
		if (!(((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 4))&63U)))!=0)) goto LA10_;
		addForwardedProc_vPJ79bcd36cmxny2xgz8A0Q(m, prc);
		fillProcLoc_60cAEEW2jYgQLzNzmWrfPg(m, (*(*prc).ast)._Ukind.S6.sons->data[((NI) 0)]);
	}
	goto LA8_;
	LA10_: ;
	{
		genProcNoForward_LVUZwjNmLEZwI6xGJ9aeU7Q_2(m, prc);
		{
			NIM_BOOL T15_;
			NIM_BOOL T16_;
			T15_ = (NIM_BOOL)0;
			T16_ = (NIM_BOOL)0;
			T16_ = ((65600 & (*prc).flags) == 64);
			if (!(T16_)) goto LA17_;
			T16_ = !(((*(*m).g).generatedHeader == NIM_NIL));
			LA17_: ;
			T15_ = T16_;
			if (!(T15_)) goto LA18_;
			T15_ = !((((*prc).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 3))&15U)))!=0));
			LA18_: ;
			if (!T15_) goto LA19_;
			genProcPrototype_5Uk70SBbgLBcInZnRFJtnA((*(*m).g).generatedHeader, prc);
			{
				if (!((*(*prc).typ).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 5))) goto LA23_;
				{
					NIM_BOOL T27_;
					T27_ = (NIM_BOOL)0;
					T27_ = containsOrIncl_B0EhVMrh5BBBZOOtYjAvVg((&(*(*(*m).g).generatedHeader).declaredThings), (*prc).Sup.id);
					if (!!(T27_)) goto LA28_;
					genProcAux_LVUZwjNmLEZwI6xGJ9aeU7Q_3((*(*m).g).generatedHeader, prc);
				}
				LA28_: ;
			}
			LA23_: ;
		}
		LA19_: ;
	}
	LA8_: ;
	}BeforeRet_: ;
}

static N_INLINE(NIM_BOOL, emulatedThreadVars_viA2VrQ9cI0jU5DX49b1MeYgcgen)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((17825792 & ~ (*conf).globalOptions)==0);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, declareThreadVar_aYevuGpX9cFv5Jxa39aUJomg)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s, NIM_BOOL isExtern) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = emulatedThreadVars_viA2VrQ9cI0jU5DX49b1MeYgcgen((*(*m).g).config);
		if (!T3_) goto LA4_;
		{
			NIM_BOOL T8_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T11_;
			NI T12_;
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T13_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T14_;
			T8_ = (NIM_BOOL)0;
			T8_ = containsOrIncl_B0EhVMrh5BBBZOOtYjAvVg((&(*(*m).g).nimtvDeclared), (*s).Sup.id);
			if (!!(T8_)) goto LA9_;
			T11_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T11_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&(*s).loc));
			asgnRefNoCycle((void**) (&(*(*m).g).nimtvDeps), (tySequence_Ef05srmQTDulnBdXR4Ja6Q*) incrSeqV3(&((*(*m).g).nimtvDeps)->Sup, (&NTI_Ef05srmQTDulnBdXR4Ja6Q_)));
			T12_ = (*(*m).g).nimtvDeps->Sup.len++;
			asgnRefNoCycle((void**) (&(*(*m).g).nimtvDeps->data[T12_]), T11_);
			nimZeroMem((void*)T13_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T14_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T14_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&(*s).loc));
			T13_[0] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2(m, T14_);
			T13_[1] = (*s).loc.r;
			addf_ocEHZ9cujtqicXvDuJUm5pg(&(*(*m).g).nimtv, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_48), T13_, 2);
		}
		LA9_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T24_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T25_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T26_;
		{
			if (!isExtern) goto LA18_;
			add_yG4AKzsBRS1W4MANDlXQeg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_280));
		}
		LA18_: ;
		{
			if (!(((*(*(*m).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 20))&63U)))!=0)) goto LA22_;
			add_yG4AKzsBRS1W4MANDlXQeg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_281));
		}
		LA22_: ;
		T24_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T24_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&(*s).loc));
		T25_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T25_ = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2(m, T24_);
		add_iMTw0CDaruwETLGb9bhpBLg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], T25_);
		nimZeroMem((void*)T26_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T26_[0] = (*s).loc.r;
		addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_282), T26_, 1);
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genVarPrototype_60cAEEW2jYgQLzNzmWrfPg_2)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T1_;
{	sym = (*n)._Ukind.S4.sym;
	useHeader_Ckp4X4sj45vdj9bafLr5LQw(m, sym);
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = mangleName_lo8D59ciMfLVeiUtGYx89bOg(m, sym);
	fillLoc_US6BUWbxbS9bTHtpMCqKFkw((&(*sym).loc), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 3), n, T1_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 4));
	{
		NIM_BOOL T4_;
		T4_ = (NIM_BOOL)0;
		T4_ = (((*sym).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 3))&15U)))!=0);
		if (T4_) goto LA5_;
		T4_ = containsOrIncl_B0EhVMrh5BBBZOOtYjAvVg((&(*m).declaredThings), (*sym).Sup.id);
		LA5_: ;
		if (!T4_) goto LA6_;
		goto BeforeRet_;
	}
	LA6_: ;
	{
		if (!!(((*(*sym).owner).Sup.id == (*(*m).module).Sup.id))) goto LA10_;
		{
			if (!(((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 23))&63U)))!=0)) goto LA14_;
			declareThreadVar_aYevuGpX9cFv5Jxa39aUJomg(m, sym, NIM_TRUE);
		}
		goto LA12_;
		LA14_: ;
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T17_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T18_;
			tyArray_JiWwrsTRC6xqNlGcBthSVA T31_;
			add_yG4AKzsBRS1W4MANDlXQeg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_280));
			T17_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T17_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&(*sym).loc));
			T18_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T18_ = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2(m, T17_);
			add_iMTw0CDaruwETLGb9bhpBLg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], T18_);
			{
				if (!(((*sym).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 4))&15U)))!=0)) goto LA21_;
				add_yG4AKzsBRS1W4MANDlXQeg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_46));
			}
			LA21_: ;
			{
				if (!(((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 8))&63U)))!=0)) goto LA25_;
				add_yG4AKzsBRS1W4MANDlXQeg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_133));
			}
			LA25_: ;
			{
				if (!(((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 7))&63U)))!=0)) goto LA29_;
				add_yG4AKzsBRS1W4MANDlXQeg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_134));
			}
			LA29_: ;
			nimZeroMem((void*)T31_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T31_[0] = (*sym).loc.r;
			addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_282), T31_, 1);
		}
		LA12_: ;
	}
	LA10_: ;
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, cgsym_0d9bDo5R2p09cv1ljqpC4l8Q)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, NimStringDesc* name) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	sym = getCompilerProc_Z9bI8j6Vv57IyOO09a8fpp3g((*(*m).g).graph, name);
	{
		if (!!((sym == NIM_NIL))) goto LA3_;
		switch ((*sym).kind) {
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 12):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 13):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 14):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 16):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 15):
		{
			genProc_LVUZwjNmLEZwI6xGJ9aeU7Q(m, sym);
		}
		break;
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 8):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 11):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 9):
		{
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T7_;
			T7_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
			T7_ = newSymNode_UWZXukHA5As9aCftRHbafBg(sym);
			genVarPrototype_60cAEEW2jYgQLzNzmWrfPg_2(m, T7_);
		}
		break;
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 7):
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
			T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T9_ = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2(m, (*sym).typ);
			T9_;
		}
		break;
		default:
		{
			NimStringDesc* T11_;
			T11_ = (NimStringDesc*)0;
			T11_ = rawNewString((name ? name->Sup.len : 0) + (reprEnum((NI)(*sym).kind, (&NTI_cNCW9acsSznmEccl1fgQwkw_)) ? reprEnum((NI)(*sym).kind, (&NTI_cNCW9acsSznmEccl1fgQwkw_))->Sup.len : 0) + 9);
appendString(T11_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_283));
appendString(T11_, name);
appendString(T11_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_284));
appendString(T11_, reprEnum((NI)(*sym).kind, (&NTI_cNCW9acsSznmEccl1fgQwkw_)));
			internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, T11_);
		}
		break;
		}
	}
	goto LA1_;
	LA3_: ;
	{
		NimStringDesc* T13_;
		T13_ = (NimStringDesc*)0;
		T13_ = rawNewString((name ? name->Sup.len : 0) + 21);
appendString(T13_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_285));
appendString(T13_, name);
		rawMessage_h30HgTFwbGq0PsyHmRqZ8g((*(*m).g).config, ((tyEnum_TMsgKind_29cbg2fC1z5iM1PAI28kR5w) 9), T13_);
	}
	LA1_: ;
	result = (*sym).loc.r;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, ropecg_pDjCXevkau9aaTuKWN9cvHGw)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, NimStringDesc* frmt, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	NI i;
	NI length;
	NI num;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	i = ((NI) 0);
	length = (frmt ? frmt->Sup.len : 0);
	result = NIM_NIL;
	num = ((NI) 0);
	{
		while (1) {
			NI start;
			if (!(i < length)) goto LA2;
			{
				if (!((NU8)(frmt->data[i]) == (NU8)(36))) goto LA5_;
				i += ((NI) 1);
				switch (((NU8)(frmt->data[i]))) {
				case 36:
				{
					add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_6));
					i += ((NI) 1);
				}
				break;
				case 35:
				{
					i += ((NI) 1);
					add_iMTw0CDaruwETLGb9bhpBLg(&result, args[num]);
					num += ((NI) 1);
				}
				break;
				case 48 ... 57:
				{
					NI j;
					j = ((NI) 0);
					{
						while (1) {
							j = (NI)((NI)((NI)(j * ((NI) 10)) + ((NU8)(frmt->data[i]))) - ((NI) 48));
							i += ((NI) 1);
							{
								NIM_BOOL T14_;
								T14_ = (NIM_BOOL)0;
								T14_ = (length <= i);
								if (T14_) goto LA15_;
								T14_ = !((((NU8)(frmt->data[i])) >= ((NU8)(48)) && ((NU8)(frmt->data[i])) <= ((NU8)(57))));
								LA15_: ;
								if (!T14_) goto LA16_;
								goto LA10;
							}
							LA16_: ;
						}
					} LA10: ;
					num = j;
					{
						NimStringDesc* T22_;
						NimStringDesc* T23_;
						if (!((NI)((argsLen_0-1) + ((NI) 1)) < j)) goto LA20_;
						T22_ = (NimStringDesc*)0;
						T23_ = (NimStringDesc*)0;
						T23_ = nimIntToStr(j);
						T22_ = rawNewString((T23_ ? T23_->Sup.len : 0) + 30);
appendString(T22_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_7));
appendString(T22_, T23_);
						internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, T22_);
					}
					LA20_: ;
					add_iMTw0CDaruwETLGb9bhpBLg(&result, args[(NI)(j - ((NI) 1))]);
				}
				break;
				case 110:
				{
					{
						if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA27_;
						add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_8));
					}
					LA27_: ;
					i += ((NI) 1);
				}
				break;
				case 78:
				{
					add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_8));
					i += ((NI) 1);
				}
				break;
				default:
				{
					NimStringDesc* T31_;
					T31_ = (NimStringDesc*)0;
					T31_ = rawNewString(31);
appendString(T31_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_7));
appendChar(T31_, frmt->data[i]);
					internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, T31_);
				}
				break;
				}
			}
			goto LA3_;
			LA5_: ;
			{
				NIM_BOOL T33_;
				NI j_2;
				NimStringDesc* ident;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T39_;
				T33_ = (NIM_BOOL)0;
				T33_ = ((NU8)(frmt->data[i]) == (NU8)(35));
				if (!(T33_)) goto LA34_;
				T33_ = (((NU8)(frmt->data[(NI)(i + ((NI) 1))])) >= ((NU8)(97)) && ((NU8)(frmt->data[(NI)(i + ((NI) 1))])) <= ((NU8)(122)) || ((NU8)(frmt->data[(NI)(i + ((NI) 1))])) >= ((NU8)(65)) && ((NU8)(frmt->data[(NI)(i + ((NI) 1))])) <= ((NU8)(90)) || ((NU8)(frmt->data[(NI)(i + ((NI) 1))])) == ((NU8)(95)));
				LA34_: ;
				if (!T33_) goto LA35_;
				i += ((NI) 1);
				j_2 = i;
				{
					while (1) {
						if (!(((NU8)(frmt->data[j_2])) >= ((NU8)(97)) && ((NU8)(frmt->data[j_2])) <= ((NU8)(122)) || ((NU8)(frmt->data[j_2])) >= ((NU8)(65)) && ((NU8)(frmt->data[j_2])) <= ((NU8)(90)) || ((NU8)(frmt->data[j_2])) >= ((NU8)(48)) && ((NU8)(frmt->data[j_2])) <= ((NU8)(57)) || ((NU8)(frmt->data[j_2])) == ((NU8)(95)))) goto LA38;
						j_2 += ((NI) 1);
					} LA38: ;
				}
				ident = substr_TWXUwbnq0SWWvDLfr8LXYw(frmt, i, (NI)(j_2 - ((NI) 1)));
				i = j_2;
				T39_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T39_ = cgsym_0d9bDo5R2p09cv1ljqpC4l8Q(m, ident);
				add_iMTw0CDaruwETLGb9bhpBLg(&result, T39_);
			}
			goto LA3_;
			LA35_: ;
			{
				NIM_BOOL T41_;
				NI j_3;
				NimStringDesc* T47_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T48_;
				T41_ = (NIM_BOOL)0;
				T41_ = ((NU8)(frmt->data[i]) == (NU8)(35));
				if (!(T41_)) goto LA42_;
				T41_ = ((NU8)(frmt->data[(NI)(i + ((NI) 1))]) == (NU8)(36));
				LA42_: ;
				if (!T41_) goto LA43_;
				i += ((NI) 2);
				j_3 = ((NI) 0);
				{
					while (1) {
						if (!(((NU8)(frmt->data[i])) >= ((NU8)(48)) && ((NU8)(frmt->data[i])) <= ((NU8)(57)))) goto LA46;
						j_3 = (NI)((NI)((NI)(j_3 * ((NI) 10)) + ((NU8)(frmt->data[i]))) - ((NI) 48));
						i += ((NI) 1);
					} LA46: ;
				}
				T47_ = (NimStringDesc*)0;
				T47_ = dollar__4KNdcWAONkpTKQgUR8XiZQ(args[(NI)(j_3 - ((NI) 1))]);
				T48_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T48_ = cgsym_0d9bDo5R2p09cv1ljqpC4l8Q(m, T47_);
				add_iMTw0CDaruwETLGb9bhpBLg(&result, T48_);
			}
			goto LA3_;
			LA43_: ;
			LA3_: ;
			start = i;
			{
				while (1) {
					if (!(i < length)) goto LA50;
					{
						NIM_BOOL T53_;
						T53_ = (NIM_BOOL)0;
						T53_ = !(((NU8)(frmt->data[i]) == (NU8)(36)));
						if (!(T53_)) goto LA54_;
						T53_ = !(((NU8)(frmt->data[i]) == (NU8)(35)));
						LA54_: ;
						if (!T53_) goto LA55_;
						i += ((NI) 1);
					}
					goto LA51_;
					LA55_: ;
					{
						goto LA49;
					}
					LA51_: ;
				} LA50: ;
			} LA49: ;
			{
				NimStringDesc* T62_;
				if (!(start <= (NI)(i - ((NI) 1)))) goto LA60_;
				T62_ = (NimStringDesc*)0;
				T62_ = substr_TWXUwbnq0SWWvDLfr8LXYw(frmt, start, (NI)(i - ((NI) 1)));
				add_yG4AKzsBRS1W4MANDlXQeg(&result, T62_);
			}
			LA60_: ;
		} LA2: ;
	}
	return result;
}

static N_INLINE(NIM_BOOL, requiresExternC_eK3dB1m49artdhTABMjEBvwcgen)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	NIM_BOOL T3_;
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* T5_;
	NIM_BOOL T8_;
	NIM_BOOL T9_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T3_ = (NIM_BOOL)0;
	T3_ = (((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
	if (!(T3_)) goto LA4_;
	T5_ = (tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*)0;
	T5_ = getModule_43y2sdiIt63745LnAZPmZQ(sym);
	T3_ = !((((*T5_).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0));
	LA4_: ;
	T2_ = T3_;
	if (!(T2_)) goto LA6_;
	T2_ = !(((*(*(*m).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2)));
	LA6_: ;
	T1_ = T2_;
	if (T1_) goto LA7_;
	T8_ = (NIM_BOOL)0;
	T9_ = (NIM_BOOL)0;
	T9_ = (((*sym).flags & 268501024) == 32);
	if (!(T9_)) goto LA10_;
	T9_ = ((*sym).magic == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 0));
	LA10_: ;
	T8_ = T9_;
	if (!(T8_)) goto LA11_;
	T8_ = ((*(*(*m).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
	LA11_: ;
	T1_ = T8_;
	LA7_: ;
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genProcPrototype_5Uk70SBbgLBcInZnRFJtnA)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym) {
{	useHeader_Ckp4X4sj45vdj9bafLr5LQw(m, sym);
	{
		if (!(((*sym).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 3))&15U)))!=0)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!(((*sym).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 4))&15U)))!=0)) goto LA7_;
		{
			NIM_BOOL T11_;
			tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* T12_;
			NIM_BOOL T14_;
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T17_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T18_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T19_;
			T11_ = (NIM_BOOL)0;
			T12_ = (tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*)0;
			T12_ = getModule_43y2sdiIt63745LnAZPmZQ(sym);
			T11_ = !(((*T12_).Sup.id == (*(*m).module).Sup.id));
			if (!(T11_)) goto LA13_;
			T14_ = (NIM_BOOL)0;
			T14_ = containsOrIncl_B0EhVMrh5BBBZOOtYjAvVg((&(*m).declaredThings), (*sym).Sup.id);
			T11_ = !(T14_);
			LA13_: ;
			if (!T11_) goto LA15_;
			nimZeroMem((void*)T17_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T18_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T18_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&(*sym).loc));
			T17_[0] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2(m, T18_);
			T17_[1] = mangleDynLibProc_MkmvPNwLUVhzodPsMjdbJw(sym);
			T19_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T19_ = ropecg_pDjCXevkau9aaTuKWN9cvHGw(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_286), T17_, 2);
			add_iMTw0CDaruwETLGb9bhpBLg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], T19_);
		}
		LA15_: ;
	}
	goto LA5_;
	LA7_: ;
	{
		NIM_BOOL T21_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* header;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T48_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T49_;
		T21_ = (NIM_BOOL)0;
		T21_ = containsOrIncl_B0EhVMrh5BBBZOOtYjAvVg((&(*m).declaredProtos), (*sym).Sup.id);
		if (!!(T21_)) goto LA22_;
		header = genProcHeader_uPFGxWOkwQtDerpzAqNn9aw(m, sym);
		{
			NIM_BOOL T26_;
			T26_ = (NIM_BOOL)0;
			T26_ = (((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 14))&63U)))!=0);
			if (!(T26_)) goto LA27_;
			T26_ = ((CC_78I18QZNZFIv9ah7oETc0jg[((*(*(*m).g).config).cCompiler)- 1].Field19 &(1U<<((NU)(((tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg) 6))&7U)))!=0);
			LA27_: ;
			if (!T26_) goto LA28_;
			header = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_252), header);
		}
		LA28_: ;
		{
			NIM_BOOL T32_;
			T32_ = (NIM_BOOL)0;
			T32_ = !(((*(*sym).typ).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 5)));
			if (!(T32_)) goto LA33_;
			T32_ = requiresExternC_eK3dB1m49artdhTABMjEBvwcgen(m, sym);
			LA33_: ;
			if (!T32_) goto LA34_;
			header = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_287), header);
		}
		LA34_: ;
		{
			NIM_BOOL T38_;
			T38_ = (NIM_BOOL)0;
			T38_ = (((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 9))&63U)))!=0);
			if (!(T38_)) goto LA39_;
			T38_ = ((CC_78I18QZNZFIv9ah7oETc0jg[((*(*(*m).g).config).cCompiler)- 1].Field19 &(1U<<((NU)(((tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg) 7))&7U)))!=0);
			LA39_: ;
			if (!T38_) goto LA40_;
			add_yG4AKzsBRS1W4MANDlXQeg(&header, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_288));
		}
		LA40_: ;
		{
			NIM_BOOL T44_;
			T44_ = (NIM_BOOL)0;
			T44_ = (((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 14))&63U)))!=0);
			if (!(T44_)) goto LA45_;
			T44_ = ((CC_78I18QZNZFIv9ah7oETc0jg[((*(*(*m).g).config).cCompiler)- 1].Field19 &(1U<<((NU)(((tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg) 7))&7U)))!=0);
			LA45_: ;
			if (!T44_) goto LA46_;
			add_yG4AKzsBRS1W4MANDlXQeg(&header, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_289));
		}
		LA46_: ;
		nimZeroMem((void*)T48_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T48_[0] = header;
		T49_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T49_ = ropecg_pDjCXevkau9aaTuKWN9cvHGw(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_222), T48_, 1);
		add_iMTw0CDaruwETLGb9bhpBLg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 7))- 0], T49_);
	}
	goto LA5_;
	LA22_: ;
	LA5_: ;
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genGenericAsgn_BtucsTdHw7orsXIL75hNVg_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* dest, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* src, tySet_tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw flags) {
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T5_;
		if (!((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 5))) goto LA3_;
		nimZeroMem((void*)T5_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T5_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
		T5_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
		linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_290), T5_, 2);
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T7_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T9_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T10_;
		T7_ = (NIM_BOOL)0;
		T7_ = !(((flags &(1U<<((NU)(((tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw) 0))&7U)))!=0));
		if (T7_) goto LA8_;
		T9_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T9_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen(dest);
		T10_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T10_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(T9_, IL64(36099165772622096));
		T7_ = (((*T10_).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 6))&63U)))!=0);
		LA8_: ;
		if (!T7_) goto LA11_;
		{
			NIM_BOOL T15_;
			NIM_BOOL T17_;
			tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T20_;
			T15_ = (NIM_BOOL)0;
			T15_ = ((*dest).storage == ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 2));
			if (T15_) goto LA16_;
			T17_ = (NIM_BOOL)0;
			T17_ = usesWriteBarrier_6aU0ZBrns2mWNHTDUbDERQcgen((*(*(*p).module).g).config);
			T15_ = !(T17_);
			LA16_: ;
			if (!T15_) goto LA18_;
			nimZeroMem((void*)T20_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
			T20_[0] = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, dest);
			T20_[1] = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, src);
			T20_[2] = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
			linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_291), T20_, 3);
		}
		goto LA13_;
		LA18_: ;
		{
			tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T22_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T23_;
			nimZeroMem((void*)T22_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
			T22_[0] = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, dest);
			T22_[1] = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, src);
			T23_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T23_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen(dest);
			T22_[2] = genTypeInfo_7P9bdUkiYYdBWl5P39cGpERw((*p).module, T23_, (*(*dest).lode).info);
			linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_292), T22_, 3);
		}
		LA13_: ;
	}
	goto LA1_;
	LA11_: ;
	{
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T25_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T26_;
		nimZeroMem((void*)T25_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T25_[0] = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, dest);
		T25_[1] = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, src);
		T26_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T26_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen(dest);
		T25_[2] = genTypeInfo_7P9bdUkiYYdBWl5P39cGpERw((*p).module, T26_, (*(*dest).lode).info);
		linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_293), T25_, 3);
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, canMove_LdEpJ9bTTHKfDEUriK7drQA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 41))) goto LA3_;
		{
			NIM_BOOL T7_;
			NIM_BOOL T8_;
			NI T10_;
			T7_ = (NIM_BOOL)0;
			T8_ = (NIM_BOOL)0;
			T8_ = isDeepConstExpr_FTbvAnf1y9b9c3Krp9bsHDTiw_2(n);
			T7_ = !(T8_);
			if (T7_) goto LA9_;
			T10_ = (NI)0;
			T10_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
			T7_ = (T10_ == ((NI) 0));
			LA9_: ;
			if (!T7_) goto LA11_;
			{
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T15_;
				T15_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T15_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*n).typ, IL64(36099165772622096));
				if (!((*T15_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24))) goto LA16_;
				result = NIM_TRUE;
				goto BeforeRet_;
			}
			LA16_: ;
		}
		LA11_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T19_;
		NIM_BOOL T20_;
		T19_ = (NIM_BOOL)0;
		T20_ = (NIM_BOOL)0;
		T20_ = !((((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 26))&31U)))!=0));
		if (!(T20_)) goto LA21_;
		T20_ = ((*n).kind >= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*n).kind <= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 22));
		LA21_: ;
		T19_ = T20_;
		if (!(T19_)) goto LA22_;
		T19_ = (((*n)._Ukind.S3.strVal ? (*n)._Ukind.S3.strVal->Sup.len : 0) == ((NI) 0));
		LA22_: ;
		if (!T19_) goto LA23_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	goto LA1_;
	LA23_: ;
	LA1_: ;
	result = ((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 32));
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, optAsgnLoc_BudZ9caWLs3siCMYU9bVcDKw)(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* field, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* Result) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T2_;
	genericReset((void*)Result, (&NTI_EtHNvCB0bgfu9bFjzx9cb6aA_));
	(*Result).k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 5);
	(*Result).storage = (*a).storage;
	unsureAsgnRef((void**) (&(*Result).lode), lodeTyp_8thmRpt8YNsc9cFM33hAlHw(t));
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
	T2_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T1_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_299));
	unsureAsgnRef((void**) (&(*Result).r), amp__mFDAEkd1kysB0V9aBd20A9aA(T2_, field));
}

N_LIB_PRIVATE N_NIMCALL(void, genOptAsgnTuple_BtucsTdHw7orsXIL75hNVg_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* dest, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* src, tySet_tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw flags) {
	tySet_tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw newflags;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T10_;
	{
		if (!((*src).storage == ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 1))) goto LA3_;
		newflags = (flags | 1);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T6_;
		T6_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T6_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen(dest);
		if (!(((*T6_).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 6))&63U)))!=0)) goto LA7_;
		newflags = (flags & ~ 1);
	}
	goto LA1_;
	LA7_: ;
	{
		newflags = flags;
	}
	LA1_: ;
	T10_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T10_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen(dest);
	t = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(T10_, IL64(36099165763184912));
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len_SWFNCiWYB89bTUPh5KptkvA_2(t);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t_2;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* field;
				tyArray_JiWwrsTRC6xqNlGcBthSVA T14_;
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA T15_;
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA T16_;
				if (!(i_2 < colontmp_)) goto LA13;
				i = i_2;
				t_2 = (*t).sons->data[i];
				nimZeroMem((void*)T14_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
				T14_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (i)));
				field = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_302), T14_, 1);
				nimZeroMem((void*)(&T15_), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				optAsgnLoc_BudZ9caWLs3siCMYU9bVcDKw(dest, t_2, field, (&T15_));
				nimZeroMem((void*)(&T16_), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				optAsgnLoc_BudZ9caWLs3siCMYU9bVcDKw(src, t_2, field, (&T16_));
				genAssignment_BtucsTdHw7orsXIL75hNVg_2(p, (&T15_), (&T16_), newflags);
				i_2 += ((NI) 1);
			} LA13: ;
		}
	}
}

N_LIB_PRIVATE N_NIMCALL(NI, asgnComplexity_NnHoLMfVBQytirwVsNNNOQ)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	result = (NI)0;
	{
		if (!!((n == NIM_NIL))) goto LA3_;
		switch ((*n).kind) {
		case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3):
		{
			result = ((NI) 1);
		}
		break;
		case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 139):
		{
			result = ((NI) 100);
		}
		break;
		case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 138):
		{
			{
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t;
				t = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
				{
					NI i;
					NI colontmp_;
					NI i_2;
					i = (NI)0;
					colontmp_ = (NI)0;
					colontmp_ = safeLen_CdME9baJhvveuPEDZE9bXoxArenderer(n);
					i_2 = ((NI) 0);
					{
						while (1) {
							NI T12_;
							if (!(i_2 < colontmp_)) goto LA11;
							i = i_2;
							t = (*n)._Ukind.S6.sons->data[i];
							T12_ = (NI)0;
							T12_ = asgnComplexity_NnHoLMfVBQytirwVsNNNOQ(t);
							result += T12_;
							i_2 += ((NI) 1);
						} LA11: ;
					}
				}
			}
		}
		break;
		default:
		{
		}
		break;
		}
	}
	LA3_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genOptAsgnObject_9aKtDk9aj0NeiT1dC7eBiRKw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* dest, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* src, tySet_tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw flags, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	tySet_tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw newflags;
{	{
		if (!(t == NIM_NIL)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!((*src).storage == ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 1))) goto LA7_;
		newflags = (flags | 1);
	}
	goto LA5_;
	LA7_: ;
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T10_;
		T10_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T10_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen(dest);
		if (!(((*T10_).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 6))&63U)))!=0)) goto LA11_;
		newflags = (flags & ~ 1);
	}
	goto LA5_;
	LA11_: ;
	{
		newflags = flags;
	}
	LA5_: ;
	switch ((*t).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA T19_;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA T20_;
		field = (*t)._Ukind.S4.sym;
		{
			if (!((*field).loc.r == NIM_NIL)) goto LA17_;
			fillObjectFields_9ay9bmecW6As1fjmHzaEve9cQ((*p).module, typ);
		}
		LA17_: ;
		nimZeroMem((void*)(&T19_), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		optAsgnLoc_BudZ9caWLs3siCMYU9bVcDKw(dest, (*field).typ, (*field).loc.r, (&T19_));
		nimZeroMem((void*)(&T20_), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		optAsgnLoc_BudZ9caWLs3siCMYU9bVcDKw(src, (*field).typ, (*field).loc.r, (&T20_));
		genAssignment_BtucsTdHw7orsXIL75hNVg_2(p, (&T19_), (&T20_), newflags);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 138):
	{
		{
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* child;
			child = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen_CdME9baJhvveuPEDZE9bXoxArenderer(t);
				i_2 = ((NI) 0);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA25;
						i = i_2;
						child = (*t)._Ukind.S6.sons->data[i];
						genOptAsgnObject_9aKtDk9aj0NeiT1dC7eBiRKw(p, dest, src, newflags, child, typ);
						i_2 += ((NI) 1);
					} LA25: ;
				}
			}
		}
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genAssignment_BtucsTdHw7orsXIL75hNVg_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* dest, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* src, tySet_tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw flags) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ty;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T10_;
{	{
		NIM_BOOL T3_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T4_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T6_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T9_;
		T3_ = (NIM_BOOL)0;
		T4_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T4_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen(src);
		T3_ = !((T4_ == NIM_NIL));
		if (!(T3_)) goto LA5_;
		T6_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T6_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen(src);
		T3_ = ((*T6_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21));
		LA5_: ;
		if (!T3_) goto LA7_;
		nimZeroMem((void*)T9_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T9_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
		T9_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
		linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_136), T9_, 2);
		goto BeforeRet_;
	}
	LA7_: ;
	T10_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T10_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen(dest);
	ty = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(T10_, IL64(1202531469253191952));
	switch ((*ty).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22):
	{
		genRefAssign_BtucsTdHw7orsXIL75hNVg(p, dest, src, flags);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
	{
		{
			if (!((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 5))) goto LA15_;
			genGenericAsgn_BtucsTdHw7orsXIL75hNVg_3(p, dest, src, flags);
		}
		goto LA13_;
		LA15_: ;
		{
			NIM_BOOL T18_;
			NIM_BOOL T19_;
			T18_ = (NIM_BOOL)0;
			T19_ = (NIM_BOOL)0;
			T19_ = !(((flags &(1U<<((NU)(((tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw) 0))&7U)))!=0));
			if (!(T19_)) goto LA20_;
			T19_ = !(((*src).storage == ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 1)));
			LA20_: ;
			T18_ = T19_;
			if (T18_) goto LA21_;
			T18_ = canMove_LdEpJ9bTTHKfDEUriK7drQA(p, (*src).lode);
			LA21_: ;
			if (!T18_) goto LA22_;
			genRefAssign_BtucsTdHw7orsXIL75hNVg(p, dest, src, flags);
		}
		goto LA13_;
		LA22_: ;
		{
			tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T25_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T26_;
			nimZeroMem((void*)T25_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
			T25_[0] = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, dest);
			T25_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
			T26_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T26_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen(dest);
			T25_[2] = genTypeInfo_7P9bdUkiYYdBWl5P39cGpERw((*p).module, T26_, (*(*dest).lode).info);
			linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_294), T25_, 3);
		}
		LA13_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
	{
		{
			if (!((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 5))) goto LA30_;
			genGenericAsgn_BtucsTdHw7orsXIL75hNVg_3(p, dest, src, flags);
		}
		goto LA28_;
		LA30_: ;
		{
			NIM_BOOL T33_;
			NIM_BOOL T34_;
			T33_ = (NIM_BOOL)0;
			T34_ = (NIM_BOOL)0;
			T34_ = !(((flags &(1U<<((NU)(((tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw) 0))&7U)))!=0));
			if (!(T34_)) goto LA35_;
			T34_ = !(((*src).storage == ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 1)));
			LA35_: ;
			T33_ = T34_;
			if (T33_) goto LA36_;
			T33_ = canMove_LdEpJ9bTTHKfDEUriK7drQA(p, (*src).lode);
			LA36_: ;
			if (!T33_) goto LA37_;
			genRefAssign_BtucsTdHw7orsXIL75hNVg(p, dest, src, flags);
		}
		goto LA28_;
		LA37_: ;
		{
			{
				NIM_BOOL T42_;
				NIM_BOOL T44_;
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T47_;
				T42_ = (NIM_BOOL)0;
				T42_ = ((*dest).storage == ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 2));
				if (T42_) goto LA43_;
				T44_ = (NIM_BOOL)0;
				T44_ = usesWriteBarrier_6aU0ZBrns2mWNHTDUbDERQcgen((*(*(*p).module).g).config);
				T42_ = !(T44_);
				LA43_: ;
				if (!T42_) goto LA45_;
				nimZeroMem((void*)T47_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T47_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
				T47_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
				linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_295), T47_, 2);
			}
			goto LA40_;
			LA45_: ;
			{
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp;
				tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T51_;
				tyArray_JiWwrsTRC6xqNlGcBthSVA T52_;
				if (!((*dest).storage == ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 4))) goto LA49_;
				nimZeroMem((void*)(&tmp), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				getTemp_VjOFVqypINqQv5C3ECnxbw(p, ty, (&tmp), NIM_FALSE);
				nimZeroMem((void*)T51_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
				T51_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
				T51_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
				T51_[2] = rdLoc_xidyzuHqIciXbQyEOKahDg((&tmp));
				linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_296), T51_, 3);
				nimZeroMem((void*)T52_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
				T52_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&tmp));
				linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_297), T52_, 1);
			}
			goto LA40_;
			LA49_: ;
			{
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T54_;
				nimZeroMem((void*)T54_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T54_[0] = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, dest);
				T54_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
				linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_298), T54_, 2);
			}
			LA40_: ;
		}
		LA28_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25):
	{
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T58_;
			NIM_BOOL T59_;
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T62_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T63_;
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA T64_;
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T65_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T66_;
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA T67_;
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T68_;
			T58_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T58_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen(dest);
			T59_ = (NIM_BOOL)0;
			T59_ = needsComplexAssignment_y9bTRtTAknVsv9apXKbpJYJA(T58_);
			if (!T59_) goto LA60_;
			nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			T62_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T62_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen(dest);
			T63_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T63_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_300));
			nimZeroMem((void*)(&T64_), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			optAsgnLoc_BudZ9caWLs3siCMYU9bVcDKw(dest, T62_, T63_, (&T64_));
			nimCopyMem((void*)(&a), (NIM_CONST void*)(&T64_), sizeof(a));
			nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			T65_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T65_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen(dest);
			T66_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T66_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_300));
			nimZeroMem((void*)(&T67_), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			optAsgnLoc_BudZ9caWLs3siCMYU9bVcDKw(src, T65_, T66_, (&T67_));
			nimCopyMem((void*)(&b), (NIM_CONST void*)(&T67_), sizeof(b));
			genRefAssign_BtucsTdHw7orsXIL75hNVg(p, (&a), (&b), flags);
			nimZeroMem((void*)T68_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T68_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
			T68_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
			linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_301), T68_, 2);
		}
		goto LA56_;
		LA60_: ;
		{
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T70_;
			nimZeroMem((void*)T70_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T70_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
			T70_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
			linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_136), T70_, 2);
		}
		LA56_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T74_;
			NIM_BOOL T75_;
			T74_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T74_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen(dest);
			T75_ = (NIM_BOOL)0;
			T75_ = needsComplexAssignment_y9bTRtTAknVsv9apXKbpJYJA(T74_);
			if (!T75_) goto LA76_;
			{
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T80_;
				NI T81_;
				T80_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T80_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen(dest);
				T81_ = (NI)0;
				T81_ = len_SWFNCiWYB89bTUPh5KptkvA_2(T80_);
				if (!(T81_ <= ((NI) 4))) goto LA82_;
				genOptAsgnTuple_BtucsTdHw7orsXIL75hNVg_4(p, dest, src, flags);
			}
			goto LA78_;
			LA82_: ;
			{
				genGenericAsgn_BtucsTdHw7orsXIL75hNVg_3(p, dest, src, flags);
			}
			LA78_: ;
		}
		goto LA72_;
		LA76_: ;
		{
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T86_;
			nimZeroMem((void*)T86_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T86_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
			T86_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
			linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_136), T86_, 2);
		}
		LA72_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17):
	{
		{
			NIM_BOOL T90_;
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T93_;
			T90_ = (NIM_BOOL)0;
			T90_ = isImportedCppType_UCeqXNU9bJdSIbOIWbb0zng(ty);
			if (!T90_) goto LA91_;
			nimZeroMem((void*)T93_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T93_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
			T93_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
			linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_136), T93_, 2);
		}
		goto LA88_;
		LA91_: ;
		{
			NIM_BOOL T95_;
			T95_ = (NIM_BOOL)0;
			T95_ = isObjLackingTypeField_JIeDKK3bgEYJKEAkiaujRgcgen(ty);
			if (!!(T95_)) goto LA96_;
			genGenericAsgn_BtucsTdHw7orsXIL75hNVg_3(p, dest, src, flags);
		}
		goto LA88_;
		LA96_: ;
		{
			NIM_BOOL T99_;
			T99_ = (NIM_BOOL)0;
			T99_ = needsComplexAssignment_y9bTRtTAknVsv9apXKbpJYJA(ty);
			if (!T99_) goto LA100_;
			{
				NIM_BOOL T104_;
				NI T106_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T109_;
				T104_ = (NIM_BOOL)0;
				T104_ = ((*ty).sons->data[((NI) 0)] == 0);
				if (!(T104_)) goto LA105_;
				T106_ = (NI)0;
				T106_ = asgnComplexity_NnHoLMfVBQytirwVsNNNOQ((*ty).n);
				T104_ = (T106_ <= ((NI) 4));
				LA105_: ;
				if (!T104_) goto LA107_;
				T109_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T109_ = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, ty);
				T109_;
				{
					NimStringDesc* T114_;
					if (!!(!(((*ty).n == NIM_NIL)))) goto LA112_;
					T114_ = (NimStringDesc*)0;
					T114_ = dollar__E5ya0OOlyISUCw4ENFn9bLA(TM_MQdRN7fpbG7rPm4JpVVAhA_303);
					internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*(*p).module).g).config, T114_);
				}
				LA112_: ;
				genOptAsgnObject_9aKtDk9aj0NeiT1dC7eBiRKw(p, dest, src, flags, (*ty).n, ty);
			}
			goto LA102_;
			LA107_: ;
			{
				genGenericAsgn_BtucsTdHw7orsXIL75hNVg_3(p, dest, src, flags);
			}
			LA102_: ;
		}
		goto LA88_;
		LA100_: ;
		{
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T117_;
			nimZeroMem((void*)T117_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T117_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
			T117_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
			linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_136), T117_, 2);
		}
		LA88_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
	{
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T121_;
			NIM_BOOL T122_;
			T121_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T121_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen(dest);
			T122_ = (NIM_BOOL)0;
			T122_ = needsComplexAssignment_y9bTRtTAknVsv9apXKbpJYJA(T121_);
			if (!T122_) goto LA123_;
			genGenericAsgn_BtucsTdHw7orsXIL75hNVg_3(p, dest, src, flags);
		}
		goto LA119_;
		LA123_: ;
		{
			tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T126_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T127_;
			nimZeroMem((void*)T126_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
			T126_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
			T126_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
			T127_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T127_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen(dest);
			T126_[2] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, T127_);
			linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_291), T126_, 3);
		}
		LA119_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48):
	{
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T131_;
			NIM_BOOL T132_;
			tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T135_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T136_;
			T131_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T131_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen(dest);
			T132_ = (NIM_BOOL)0;
			T132_ = needsComplexAssignment_y9bTRtTAknVsv9apXKbpJYJA(T131_);
			if (!T132_) goto LA133_;
			nimZeroMem((void*)T135_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
			T135_[0] = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, dest);
			T135_[1] = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, src);
			T136_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T136_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen(dest);
			T135_[2] = genTypeInfo_7P9bdUkiYYdBWl5P39cGpERw((*p).module, T136_, (*(*dest).lode).info);
			linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_305), T135_, 3);
		}
		goto LA129_;
		LA133_: ;
		{
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T138_;
			nimZeroMem((void*)T138_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T138_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
			T138_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
			linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_136), T138_, 2);
		}
		LA129_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 19):
	{
		{
			tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w T142_;
			tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T145_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T146_;
			NI64 T147_;
			T142_ = (tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w)0;
			T142_ = mapType_K9aceyVl15zb9aYN9b6YJ8TnA((*(*(*p).module).g).config, ty);
			if (!(T142_ == ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 17))) goto LA143_;
			nimZeroMem((void*)T145_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
			T145_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
			T145_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
			T146_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T146_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen(dest);
			T147_ = (NI64)0;
			T147_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, T146_);
			T145_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(T147_);
			linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_306), T145_, 3);
		}
		goto LA140_;
		LA143_: ;
		{
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T149_;
			nimZeroMem((void*)T149_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T149_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
			T149_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
			linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_136), T149_, 2);
		}
		LA140_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 26):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 1):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 14):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 29):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 20):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 47):
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T151_;
		nimZeroMem((void*)T151_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T151_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
		T151_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
		linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_136), T151_, 2);
	}
	break;
	default:
	{
		NimStringDesc* T153_;
		T153_ = (NimStringDesc*)0;
		T153_ = rawNewString((reprEnum((NI)(*ty).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*ty).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 15);
appendString(T153_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_307));
appendString(T153_, reprEnum((NI)(*ty).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*(*p).module).g).config, T153_);
	}
	break;
	}
	{
		NIM_BOOL T156_;
		tyArray_f7nG5LD47BH5K9c6mASit3g T160_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T161_;
		NI64 T162_;
		NimStringDesc* T163_;
		NI T164_;
		T156_ = (NIM_BOOL)0;
		T156_ = (((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 23))&31U)))!=0);
		if (!(T156_)) goto LA157_;
		T156_ = ((17 &(1U<<((NU)((*dest).storage)&7U)))!=0);
		LA157_: ;
		if (!T156_) goto LA158_;
		nimZeroMem((void*)T160_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
		T160_[0] = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, dest);
		T161_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T161_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen(dest);
		T162_ = (NI64)0;
		T162_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, T161_);
		T160_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(T162_);
		T163_ = (NimStringDesc*)0;
		T163_ = toFullPath_tdNdBP9cVqODPZCeXYb1GvA((*(*(*p).module).g).config, (*p).currLineInfo.fileIndex);
		T160_[2] = makeCString_vQJydtKy4Nf6bXPYtbmjtg(T163_);
		T164_ = (NI)0;
		T164_ = safeLineNm_AUJlxUa66q5UCd0nnZJX7Q((*p).currLineInfo);
		T160_[3] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (T164_)));
		linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_308), T160_, 4);
	}
	LA158_: ;
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, putLocIntoDest_SkhzpH2DDHJ7pbmCpsHIPg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* s) {
	{
		if (!!(((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA3_;
		{
			if (!(((*d).flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 2))&15U)))!=0)) goto LA7_;
			genAssignment_BtucsTdHw7orsXIL75hNVg_2(p, (&(*d)), s, 0);
		}
		goto LA5_;
		LA7_: ;
		{
			genAssignment_BtucsTdHw7orsXIL75hNVg_2(p, (&(*d)), s, 1);
		}
		LA5_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		genericAssign((void*)(&(*d)), (void*)s, (&NTI_EtHNvCB0bgfu9bFjzx9cb6aA_));
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isSimpleConst_gM9acTTK4cC5I9bRy8Pc6OTQ)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	NIM_BOOL result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	result = (NIM_BOOL)0;
	t = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(typ, IL64(36239903259928848));
	T1_ = (NIM_BOOL)0;
	T1_ = !(((17760256 &((NU64)1<<((NU)((*t).kind)&63U)))!=0));
	if (!(T1_)) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T3_ = ((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25));
	if (!(T3_)) goto LA4_;
	T3_ = ((*t).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8));
	LA4_: ;
	T1_ = !(T3_);
	LA2_: ;
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, putIntoDest_6NyA5DzsDGY17BhjidN65Q)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r, tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw s) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	{
		if (!!(((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA3_;
		initLoc_z9bd78in9czXhMZLT0QNB5Tw((&a), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), n, s);
		a.r = r;
		{
			if (!(((*d).flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 2))&15U)))!=0)) goto LA7_;
			genAssignment_BtucsTdHw7orsXIL75hNVg_2(p, (&(*d)), (&a), 0);
		}
		goto LA5_;
		LA7_: ;
		{
			genAssignment_BtucsTdHw7orsXIL75hNVg_2(p, (&(*d)), (&a), 1);
		}
		LA5_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		(*d).k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6);
		unsureAsgnRef((void**) (&(*d).lode), n);
		unsureAsgnRef((void**) (&(*d).r), r);
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(NI64, bitSetToWord_XVJMM63zz1yugv5v2VDtiA)(tySequence_pxbIse2JUQkJU0n9blV9bY5g* s, NI size) {
	NI64 result;
	result = (NI64)0;
	result = IL64(0);
	{
		NI j;
		NI colontmp_;
		NI res;
		j = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)(size - ((NI) 1));
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA3;
				j = res;
				{
					NI T6_;
					T6_ = (s ? s->Sup.len : 0);
					if (!(j < T6_)) goto LA7_;
					result = (NI64)(result | (NI64)((NU64)(((NI64)(NU64)(NU8)(s->data[j]))) << (NU64)((NI)(j * ((NI) 8)))));
				}
				LA7_: ;
				res += ((NI) 1);
			} LA3: ;
		}
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genRawSetData_lBnyc1f1M4k1nDKRQRL0HA)(tySequence_pxbIse2JUQkJU0n9blV9bY5g* cs, NI size) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	NimStringDesc* frmt;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	frmt = (NimStringDesc*)0;
	{
		tyArray_qTjAvTvKF9anytN1At69aJMQ T5_;
		if (!(((NI) 8) < size)) goto LA3_;
		nimZeroMem((void*)T5_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_312), T5_, 0);
		{
			NI i;
			NI colontmp_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = (NI)(size - ((NI) 1));
			res = ((NI) 0);
			{
				while (1) {
					tyArray_JiWwrsTRC6xqNlGcBthSVA T19_;
					NimStringDesc* T20_;
					if (!(res <= colontmp_)) goto LA8;
					i = res;
					{
						if (!(i < (NI)(size - ((NI) 1)))) goto LA11_;
						{
							if (!((NI)((NI)(i + ((NI) 1)) % ((NI) 8)) == ((NI) 0))) goto LA15_;
							frmt = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_313));
						}
						goto LA13_;
						LA15_: ;
						{
							frmt = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_314));
						}
						LA13_: ;
					}
					goto LA9_;
					LA11_: ;
					{
						frmt = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_315));
					}
					LA9_: ;
					nimZeroMem((void*)T19_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
					T20_ = (NimStringDesc*)0;
					T20_ = nsuToHex(((NI64)(NU64)(NU8)(cs->data[i])), ((NI) 2));
					T19_[0] = rope_yShmEg9cffWxI7s5XzEKBow(T20_);
					addf_ocEHZ9cujtqicXvDuJUm5pg(&result, frmt, T19_, 1);
					res += ((NI) 1);
				} LA8: ;
			}
		}
	}
	goto LA1_;
	LA3_: ;
	{
		NI64 T22_;
		T22_ = (NI64)0;
		T22_ = bitSetToWord_XVJMM63zz1yugv5v2VDtiA(cs, size);
		result = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg(T22_);
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, appcg_OBq0R3oyTk3megut9c9bSbcA)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg s, NimStringDesc* frmt, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T1_;
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = ropecg_pDjCXevkau9aaTuKWN9cvHGw(m, frmt, args, argsLen_0);
	add_iMTw0CDaruwETLGb9bhpBLg(&(*m).s[(s)- 0], T1_);
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genConstSeq_knXDbAconJZRQ7C8XTIrzw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* data;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T1_;
	NI T2_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* base;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T18_;
	tyArray_f7nG5LD47BH5K9c6mASit3g T19_;
	NI T20_;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T21_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	nimZeroMem((void*)T1_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T2_ = (NI)0;
	T2_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
	T1_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (T2_)));
	data = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_316), T1_, 1);
	{
		NI T5_;
		T5_ = (NI)0;
		T5_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
		if (!(((NI) 0) < T5_)) goto LA6_;
		add_yG4AKzsBRS1W4MANDlXQeg(&data, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_317));
		{
			NI i;
			NI colontmp_;
			NI T9_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T9_ = (NI)0;
			T9_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
			colontmp_ = (NI)(T9_ - ((NI) 1));
			res = ((NI) 0);
			{
				while (1) {
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T17_;
					if (!(res <= colontmp_)) goto LA11;
					i = res;
					{
						tyArray_qTjAvTvKF9anytN1At69aJMQ T16_;
						if (!(((NI) 0) < i)) goto LA14_;
						nimZeroMem((void*)T16_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
						addf_ocEHZ9cujtqicXvDuJUm5pg(&data, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_318), T16_, 0);
					}
					LA14_: ;
					T17_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T17_ = genConstExpr_NYI5fC69aIqZGRakncXv9cNQ_3(p, (*n)._Ukind.S6.sons->data[i]);
					add_iMTw0CDaruwETLGb9bhpBLg(&data, T17_);
					res += ((NI) 1);
				} LA11: ;
			}
		}
		add_yG4AKzsBRS1W4MANDlXQeg(&data, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_319));
	}
	LA6_: ;
	add_yG4AKzsBRS1W4MANDlXQeg(&data, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_319));
	result = getTempName_9cFzUT5Cyfi5u0F447WwLvA((*p).module);
	T18_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T18_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(t, IL64(36099165763184912));
	base = (*T18_).sons->data[((NI) 0)];
	nimZeroMem((void*)T19_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
	T19_[0] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, base);
	T20_ = (NI)0;
	T20_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
	T19_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (T20_)));
	T19_[2] = result;
	T19_[3] = data;
	appcg_OBq0R3oyTk3megut9c9bSbcA((*p).module, ((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_320), T19_, 4);
	nimZeroMem((void*)T21_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T21_[0] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, t);
	T21_[1] = result;
	result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_321), T21_, 2);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genNamedConstExpr_NYI5fC69aIqZGRakncXv9cNQ_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA3_;
		result = genConstExpr_NYI5fC69aIqZGRakncXv9cNQ_3(p, (*n)._Ukind.S6.sons->data[((NI) 1)]);
	}
	goto LA1_;
	LA3_: ;
	{
		result = genConstExpr_NYI5fC69aIqZGRakncXv9cNQ_3(p, n);
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genConstSimpleList_NYI5fC69aIqZGRakncXv9cNQ_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	NI length;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	tyArray_qTjAvTvKF9anytN1At69aJMQ T10_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	length = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
	result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_262));
	t = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*n).typ, IL64(36099165763184912));
	{
		NI i;
		NI colontmp_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)(length - ((NI) 2));
		res = ((NI) 0);
		{
			while (1) {
				tyArray_JiWwrsTRC6xqNlGcBthSVA T4_;
				if (!(res <= colontmp_)) goto LA3;
				i = res;
				nimZeroMem((void*)T4_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
				T4_[0] = genNamedConstExpr_NYI5fC69aIqZGRakncXv9cNQ_5(p, (*n)._Ukind.S6.sons->data[i]);
				addf_ocEHZ9cujtqicXvDuJUm5pg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_323), T4_, 1);
				res += ((NI) 1);
			} LA3: ;
		}
	}
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
		if (!(((NI) 0) < length)) goto LA7_;
		T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T9_ = genNamedConstExpr_NYI5fC69aIqZGRakncXv9cNQ_5(p, (*n)._Ukind.S6.sons->data[(NI)(length - ((NI) 1))]);
		add_iMTw0CDaruwETLGb9bhpBLg(&result, T9_);
	}
	LA7_: ;
	nimZeroMem((void*)T10_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
	addf_ocEHZ9cujtqicXvDuJUm5pg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_184), T10_, 0);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getDefaultValue_6MJ4xodlafi9aSG537L79bpw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	t = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(typ, IL64(36099165764233232));
	switch ((*t).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 1):
	{
		result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_325));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 14):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 35):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 40) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44):
	{
		result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_144));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 39):
	{
		result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_326));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 29):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 47):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 26):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 6):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 7):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 8):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 60):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 5):
	{
		result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_327));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25):
	{
		{
			if (!!(((*t).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8)))) goto LA8_;
			result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_327));
		}
		goto LA6_;
		LA8_: ;
		{
			result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_328));
		}
		LA6_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17):
	{
		{
			NIM_BOOL T14_;
			NIM_BOOL T15_;
			NIM_BOOL T17_;
			tyArray_JiWwrsTRC6xqNlGcBthSVA T21_;
			T14_ = (NIM_BOOL)0;
			T15_ = (NIM_BOOL)0;
			T15_ = isObjLackingTypeField_JIeDKK3bgEYJKEAkiaujRgcgen(t);
			T14_ = !(T15_);
			if (!(T14_)) goto LA16_;
			T17_ = (NIM_BOOL)0;
			T17_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
			if (T17_) goto LA18_;
			T17_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA18_: ;
			T14_ = !(T17_);
			LA16_: ;
			if (!T14_) goto LA19_;
			nimZeroMem((void*)T21_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T21_[0] = genTypeInfo_7P9bdUkiYYdBWl5P39cGpERw((*p).module, t, info);
			result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_329), T21_, 1);
		}
		goto LA12_;
		LA19_: ;
		{
			result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_330));
		}
		LA12_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_331));
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len_SWFNCiWYB89bTUPh5KptkvA_2(typ);
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T31_;
					if (!(i_2 < colontmp_)) goto LA26;
					i = i_2;
					{
						if (!(((NI) 0) < i)) goto LA29_;
						add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_123));
					}
					LA29_: ;
					T31_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T31_ = getDefaultValue_6MJ4xodlafi9aSG537L79bpw(p, (*typ).sons->data[i], info);
					add_iMTw0CDaruwETLGb9bhpBLg(&result, T31_);
					i_2 += ((NI) 1);
				} LA26: ;
			}
		}
		add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_319));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
	{
		result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_330));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 19):
	{
		{
			tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w T36_;
			T36_ = (tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w)0;
			T36_ = mapType_K9aceyVl15zb9aYN9b6YJ8TnA((*(*(*p).module).g).config, t);
			if (!(T36_ == ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 17))) goto LA37_;
			result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_330));
		}
		goto LA34_;
		LA37_: ;
		{
			result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_144));
		}
		LA34_: ;
	}
	break;
	default:
	{
		NimStringDesc* T41_;
		T41_ = (NimStringDesc*)0;
		T41_ = rawNewString((reprEnum((NI)(*t).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*t).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 32);
appendString(T41_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_332));
appendString(T41_, reprEnum((NI)(*t).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
		globalError_NF6kBGchnhQYPbCedyefVA_2((*(*(*p).module).g).config, info, T41_);
	}
	break;
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, getNullValueAux_9aYyM7xTezJepPjt10b9aKiQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* obj, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* cons, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** result, NI* count) {
{	switch ((*obj).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 138):
	{
		{
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
			tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ* colontmp_;
			NI i;
			NI L;
			NI T3_;
			it = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
			colontmp_ = (tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ*)0;
			colontmp_ = (*obj)._Ukind.S6.sons;
			i = ((NI) 0);
			T3_ = (colontmp_ ? colontmp_->Sup.len : 0);
			L = T3_;
			{
				while (1) {
					if (!(i < L)) goto LA5;
					it = colontmp_->data[i];
					getNullValueAux_9aYyM7xTezJepPjt10b9aKiQ(p, t, it, cons, result, count);
					i += ((NI) 1);
				} LA5: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 139):
	{
		getNullValueAux_9aYyM7xTezJepPjt10b9aKiQ(p, t, (*obj)._Ukind.S6.sons->data[((NI) 0)], cons, result, count);
		{
			NI i_2;
			NI colontmp__2;
			NI T8_;
			NI res;
			i_2 = (NI)0;
			colontmp__2 = (NI)0;
			T8_ = (NI)0;
			T8_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(obj);
			colontmp__2 = (NI)(T8_ - ((NI) 1));
			res = ((NI) 1);
			{
				while (1) {
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T11_;
					if (!(res <= colontmp__2)) goto LA10;
					i_2 = res;
					T11_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
					T11_ = lastSon_esDJA7239bJDiq4UrX9aHCjg((*obj)._Ukind.S6.sons->data[i_2]);
					getNullValueAux_9aYyM7xTezJepPjt10b9aKiQ(p, t, T11_, cons, result, count);
					res += ((NI) 1);
				} LA10: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T33_;
		{
			if (!(((NI) 0) < (*count))) goto LA15_;
			add_yG4AKzsBRS1W4MANDlXQeg(result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_123));
		}
		LA15_: ;
		(*count) += ((NI) 1);
		field = (*obj)._Ukind.S4.sym;
		{
			NI i_3;
			NI colontmp__3;
			NI i_4;
			i_3 = (NI)0;
			colontmp__3 = (NI)0;
			colontmp__3 = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(cons);
			i_4 = ((NI) 1);
			{
				while (1) {
					if (!(i_4 < colontmp__3)) goto LA19;
					i_3 = i_4;
					{
						if (!((*(*cons)._Ukind.S6.sons->data[i_3]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA22_;
						{
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T28_;
							if (!((*(*(*(*(*cons)._Ukind.S6.sons->data[i_3])._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym).name).Sup.id == (*(*field).name).Sup.id)) goto LA26_;
							T28_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
							T28_ = genConstExpr_NYI5fC69aIqZGRakncXv9cNQ_3(p, (*(*cons)._Ukind.S6.sons->data[i_3])._Ukind.S6.sons->data[((NI) 1)]);
							add_iMTw0CDaruwETLGb9bhpBLg(result, T28_);
							goto BeforeRet_;
						}
						LA26_: ;
					}
					goto LA20_;
					LA22_: ;
					{
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T32_;
						if (!(i_3 == (*field).position)) goto LA30_;
						T32_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T32_ = genConstExpr_NYI5fC69aIqZGRakncXv9cNQ_3(p, (*cons)._Ukind.S6.sons->data[i_3]);
						add_iMTw0CDaruwETLGb9bhpBLg(result, T32_);
						goto BeforeRet_;
					}
					goto LA20_;
					LA30_: ;
					LA20_: ;
					i_4 += ((NI) 1);
				} LA19: ;
			}
		}
		T33_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T33_ = getDefaultValue_6MJ4xodlafi9aSG537L79bpw(p, (*field).typ, (*cons).info);
		add_iMTw0CDaruwETLGb9bhpBLg(result, T33_);
	}
	break;
	default:
	{
		NimStringDesc* T35_;
		NimStringDesc* T36_;
		T35_ = (NimStringDesc*)0;
		T36_ = (NimStringDesc*)0;
		T36_ = dollar__qX5C9b0n9bOP7jk69amC8dA7A(obj);
		T35_ = rawNewString((T36_ ? T36_->Sup.len : 0) + 32);
appendString(T35_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_332));
appendString(T35_, T36_);
		localError_NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*cons).info, T35_);
	}
	break;
	}
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, getNullValueAuxT_FPktsDLidTVMBFvUyMAhXA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* orig, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* obj, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* cons, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** result, NI* count) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* base;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* oldRes;
	NI oldcount;
	base = (*t).sons->data[((NI) 0)];
	oldRes = (*result);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T3_) goto LA4_;
		T3_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA4_: ;
		if (!!(T3_)) goto LA5_;
		add_yG4AKzsBRS1W4MANDlXQeg(result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_262));
	}
	LA5_: ;
	oldcount = (*count);
	{
		if (!!((base == NIM_NIL))) goto LA9_;
		base = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(base, IL64(36239903266179344));
		getNullValueAuxT_FPktsDLidTVMBFvUyMAhXA(p, orig, base, (*base).n, cons, result, count);
	}
	goto LA7_;
	LA9_: ;
	{
		NIM_BOOL T12_;
		NIM_BOOL T13_;
		NIM_BOOL T15_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T19_;
		T12_ = (NIM_BOOL)0;
		T13_ = (NIM_BOOL)0;
		T13_ = isObjLackingTypeField_JIeDKK3bgEYJKEAkiaujRgcgen(t);
		T12_ = !(T13_);
		if (!(T12_)) goto LA14_;
		T15_ = (NIM_BOOL)0;
		T15_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T15_) goto LA16_;
		T15_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA16_: ;
		T12_ = !(T15_);
		LA14_: ;
		if (!T12_) goto LA17_;
		nimZeroMem((void*)T19_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T19_[0] = genTypeInfo_7P9bdUkiYYdBWl5P39cGpERw((*p).module, orig, (*obj).info);
		addf_ocEHZ9cujtqicXvDuJUm5pg(result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_324), T19_, 1);
		(*count) += ((NI) 1);
	}
	goto LA7_;
	LA17_: ;
	LA7_: ;
	getNullValueAux_9aYyM7xTezJepPjt10b9aKiQ(p, t, obj, cons, result, count);
	{
		if (!(oldcount == (*count))) goto LA22_;
		unsureAsgnRef((void**) (&(*result)), oldRes);
	}
	goto LA20_;
	LA22_: ;
	{
		NIM_BOOL T25_;
		T25_ = (NIM_BOOL)0;
		T25_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T25_) goto LA26_;
		T25_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA26_: ;
		if (!!(T25_)) goto LA27_;
		add_yG4AKzsBRS1W4MANDlXQeg(result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_319));
	}
	goto LA20_;
	LA27_: ;
	LA20_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genConstObjConstr_NYI5fC69aIqZGRakncXv9cNQ_6)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	NI count;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	result = NIM_NIL;
	t = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*n).typ, IL64(36099165763184912));
	count = ((NI) 0);
	getNullValueAuxT_FPktsDLidTVMBFvUyMAhXA(p, t, t, (*t).n, n, &result, (&count));
	{
		NIM_BOOL T3_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T3_) goto LA4_;
		T3_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		nimZeroMem((void*)T7_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T7_[0] = result;
		result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_333), T7_, 1);
	}
	LA5_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genStringLiteralV2Const_BL0R9bSjJmdssSOZrTtp5UQ_4)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	NI id;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* pureLit;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T9_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	id = nodeTableTestOrSet_tWmKJP7glBWLCISQFGGk2Q((&(*m).dataCache), n, ((NI) ((*m).labels)));
	pureLit = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T5_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T6_;
		if (!(id == ((NI) ((*m).labels)))) goto LA3_;
		T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T5_ = cgsym_0d9bDo5R2p09cv1ljqpC4l8Q(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_204));
		T5_;
		T6_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T6_ = cgsym_0d9bDo5R2p09cv1ljqpC4l8Q(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_21));
		T6_;
		pureLit = genStringLiteralDataOnlyV2_czBo5sg9cHyaaP5feko54tA_2(m, (*n)._Ukind.S3.strVal);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T8_;
		T8_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T8_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (id)));
		pureLit = amp__mFDAEkd1kysB0V9aBd20A9aA((*m).tmpBase, T8_);
	}
	LA1_: ;
	nimZeroMem((void*)T9_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T9_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (((*n)._Ukind.S3.strVal ? (*n)._Ukind.S3.strVal->Sup.len : 0))));
	T9_[1] = pureLit;
	result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_334), T9_, 2);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genConstExpr_NYI5fC69aIqZGRakncXv9cNQ_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 58):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 59):
	{
		result = genConstExpr_NYI5fC69aIqZGRakncXv9cNQ_3(p, (*n)._Ukind.S6.sons->data[((NI) 1)]);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 39):
	{
		tySequence_pxbIse2JUQkJU0n9blV9bY5g* cs;
		NI64 T3_;
		cs = (tySequence_pxbIse2JUQkJU0n9blV9bY5g*)0;
		toBitSet_NZsBRVngLBw9c79cEt9a4qOHg((*(*(*p).module).g).config, n, (&cs));
		T3_ = (NI64)0;
		T3_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, (*n).typ);
		result = genRawSetData_lBnyc1f1M4k1nDKRQRL0HA(cs, ((NI) (T3_)));
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 41):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 37):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 160):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 155):
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
		t = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*n).typ, IL64(36099165763184912));
		{
			if (!((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24))) goto LA7_;
			result = genConstSeq_knXDbAconJZRQ7C8XTIrzw(p, n, (*n).typ);
		}
		goto LA5_;
		LA7_: ;
		{
			NIM_BOOL T10_;
			NIM_BOOL T11_;
			NIM_BOOL T12_;
			NIM_BOOL T13_;
			NI T16_;
			tyArray_qTjAvTvKF9anytN1At69aJMQ T21_;
			T10_ = (NIM_BOOL)0;
			T11_ = (NIM_BOOL)0;
			T12_ = (NIM_BOOL)0;
			T13_ = (NIM_BOOL)0;
			T13_ = ((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25));
			if (!(T13_)) goto LA14_;
			T13_ = ((*t).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8));
			LA14_: ;
			T12_ = T13_;
			if (!(T12_)) goto LA15_;
			T16_ = (NI)0;
			T16_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
			T12_ = (((NI) 0) < T16_);
			LA15_: ;
			T11_ = T12_;
			if (!(T11_)) goto LA17_;
			T11_ = ((*(*n)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 23));
			LA17_: ;
			T10_ = T11_;
			if (!(T10_)) goto LA18_;
			T10_ = ((*(*n)._Ukind.S6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 23));
			LA18_: ;
			if (!T10_) goto LA19_;
			nimZeroMem((void*)T21_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
			result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_322), T21_, 0);
		}
		goto LA5_;
		LA19_: ;
		{
			result = genConstSimpleList_NYI5fC69aIqZGRakncXv9cNQ_4(p, n);
		}
		LA5_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 38):
	{
		result = genConstObjConstr_NYI5fC69aIqZGRakncXv9cNQ_6(p, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 22):
	{
		{
			if (!((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 5))) goto LA27_;
			result = genStringLiteralV2Const_BL0R9bSjJmdssSOZrTtp5UQ_4((*p).module, n);
		}
		goto LA25_;
		LA27_: ;
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA d;
			nimZeroMem((void*)(&d), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, n, (&d));
			result = rdLoc_xidyzuHqIciXbQyEOKahDg((&d));
		}
		LA25_: ;
	}
	break;
	default:
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA d_2;
		nimZeroMem((void*)(&d_2), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, n, (&d_2));
		result = rdLoc_xidyzuHqIciXbQyEOKahDg((&d_2));
	}
	break;
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, requestConstImpl_POVv0myAK3ae9cYA55o72Fw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym) {
	tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m;
	tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* q;
{	m = (*p).module;
	useHeader_Ckp4X4sj45vdj9bafLr5LQw(m, sym);
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T5_;
		if (!((*sym).loc.k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA3_;
		T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T5_ = mangleName_lo8D59ciMfLVeiUtGYx89bOg((*p).module, sym);
		fillLoc_US6BUWbxbS9bTHtpMCqKFkw((&(*sym).loc), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 8), (*sym).ast, T5_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 1));
	}
	LA3_: ;
	{
		if (!(((*sym).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 3))&15U)))!=0)) goto LA8_;
		goto BeforeRet_;
	}
	LA8_: ;
	q = findPendingModule_QkizK2DHRxMh5swL3xy9bjQ(m, sym);
	{
		NIM_BOOL T12_;
		NIM_BOOL T14_;
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T17_;
		T12_ = (NIM_BOOL)0;
		T12_ = !((q == NIM_NIL));
		if (!(T12_)) goto LA13_;
		T14_ = (NIM_BOOL)0;
		T14_ = containsOrIncl_B0EhVMrh5BBBZOOtYjAvVg((&(*q).declaredThings), (*sym).Sup.id);
		T12_ = !(T14_);
		LA13_: ;
		if (!T12_) goto LA15_;
		nimZeroMem((void*)T17_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T17_[0] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2(q, (*sym).typ);
		T17_[1] = (*sym).loc.r;
		T17_[2] = genConstExpr_NYI5fC69aIqZGRakncXv9cNQ_3((*q).initProc, (*sym).ast);
		addf_ocEHZ9cujtqicXvDuJUm5pg(&(*q).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_311), T17_, 3);
	}
	LA15_: ;
	{
		NIM_BOOL T20_;
		NIM_BOOL T22_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* headerDecl;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T25_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T26_;
		T20_ = (NIM_BOOL)0;
		T20_ = !((q == m));
		if (!(T20_)) goto LA21_;
		T22_ = (NIM_BOOL)0;
		T22_ = containsOrIncl_B0EhVMrh5BBBZOOtYjAvVg((&(*m).declaredThings), (*sym).Sup.id);
		T20_ = !(T22_);
		LA21_: ;
		if (!T20_) goto LA23_;
		nimZeroMem((void*)T25_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T26_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T26_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&(*sym).loc));
		T25_[0] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2(m, T26_);
		T25_[1] = (*sym).loc.r;
		headerDecl = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_335), T25_, 2);
		add_iMTw0CDaruwETLGb9bhpBLg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], headerDecl);
		{
			NIM_BOOL T29_;
			T29_ = (NIM_BOOL)0;
			T29_ = (((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 6))&63U)))!=0);
			if (!(T29_)) goto LA30_;
			T29_ = !(((*(*(*p).module).g).generatedHeader == NIM_NIL));
			LA30_: ;
			if (!T29_) goto LA31_;
			add_iMTw0CDaruwETLGb9bhpBLg(&(*(*(*(*p).module).g).generatedHeader).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], headerDecl);
		}
		LA31_: ;
	}
	LA23_: ;
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genComplexConst_ARtcpl8G0t9cQCPr2Np8Srw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	requestConstImpl_POVv0myAK3ae9cYA55o72Fw(p, sym);
	putLocIntoDest_SkhzpH2DDHJ7pbmCpsHIPg(p, d, (&(*sym).loc));
}

static N_INLINE(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**, procSec_oPjlsf0lwosYuh6KXhkqLQ_2cgen)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg s) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	result = &(*p).blocks->data[((NI) 0)].sections[(s)- 0];
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, accessThreadLocalVar_IpGUPLhMYizrVHs0OdHySA_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s) {
	{
		NIM_BOOL T3_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T7_;
		tyArray_qTjAvTvKF9anytN1At69aJMQ T8_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T9_;
		tyArray_qTjAvTvKF9anytN1At69aJMQ T10_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
		T3_ = (NIM_BOOL)0;
		T3_ = emulatedThreadVars_viA2VrQ9cI0jU5DX49b1MeYgcgen((*(*(*p).module).g).config);
		if (!(T3_)) goto LA4_;
		T3_ = !((*p).threadVarAccessed);
		LA4_: ;
		if (!T3_) goto LA5_;
		(*p).threadVarAccessed = NIM_TRUE;
		(*(*p).module).flags |= ((NU8)1)<<((((tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q) 1))%(sizeof(NU8)*8));
		T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T7_ = procSec_oPjlsf0lwosYuh6KXhkqLQ_2cgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
		nimZeroMem((void*)T8_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		addf_ocEHZ9cujtqicXvDuJUm5pg(T7_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_337), T8_, 0);
		T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T9_ = procSec_oPjlsf0lwosYuh6KXhkqLQ_2cgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1));
		nimZeroMem((void*)T10_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T11_ = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_338), T10_, 0);
		add_iMTw0CDaruwETLGb9bhpBLg(T9_, T11_);
	}
	LA5_: ;
}

static N_INLINE(NIM_BOOL, isEmptyType_9aw9cztYHpNdZjCV1t0mJqwgvmgen)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (t == NIM_NIL);
	if (T1_) goto LA2_;
	T1_ = ((IL64(-9223372036854775680) &((NU64)1<<((NU)((*t).kind)&63U)))!=0);
	LA2_: ;
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, putDataIntoDest_fYECstGN5jPehhn5p8Iclg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	{
		if (!!(((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA3_;
		initLoc_z9bd78in9czXhMZLT0QNB5Tw((&a), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 8), n, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 1));
		a.r = r;
		{
			if (!(((*d).flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 2))&15U)))!=0)) goto LA7_;
			genAssignment_BtucsTdHw7orsXIL75hNVg_2(p, (&(*d)), (&a), 0);
		}
		goto LA5_;
		LA7_: ;
		{
			genAssignment_BtucsTdHw7orsXIL75hNVg_2(p, (&(*d)), (&a), 1);
		}
		LA5_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		(*d).k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 8);
		unsureAsgnRef((void**) (&(*d).lode), n);
		unsureAsgnRef((void**) (&(*d).r), r);
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, freshLineInfo_i9c2rKOAXwchJ4zMKMIqdiQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*p).lastLineInfo.line == info.line));
		if (T3_) goto LA4_;
		T3_ = !(((*p).lastLineInfo.fileIndex == info.fileIndex));
		LA4_: ;
		if (!T3_) goto LA5_;
		(*p).lastLineInfo.line = info.line;
		(*p).lastLineInfo.fileIndex = info.fileIndex;
		result = NIM_TRUE;
	}
	LA5_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t) {
	NI line;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T11_;
	NimStringDesc* T12_;
	line = safeLineNm_AUJlxUa66q5UCd0nnZJX7Q((*t).info);
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T5_;
		tyArray_qTjAvTvKF9anytN1At69aJMQ T6_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T7_;
		NimStringDesc* T8_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T10_;
		if (!(((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 26))&63U)))!=0)) goto LA3_;
		T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T5_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		nimZeroMem((void*)T6_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T7_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_344), T6_, 0);
		T8_ = (NimStringDesc*)0;
		T8_ = sourceLine_CKOSYbvxPI7FUKNuA9b0pQA((*(*(*p).module).g).config, (*t).info);
		T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T9_ = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T7_, T8_);
		T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T10_ = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T9_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_8));
		add_iMTw0CDaruwETLGb9bhpBLg(T5_, T10_);
	}
	LA3_: ;
	T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T11_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	T12_ = (NimStringDesc*)0;
	T12_ = toFullPath_tdNdBP9cVqODPZCeXYb1GvA((*(*(*p).module).g).config, (*t).info.fileIndex);
	genCLineDir_W2V1U5l2z2M9c2i5Phjz9cow(T11_, T12_, line, (*(*(*p).module).g).config);
	{
		NIM_BOOL T15_;
		NIM_BOOL T17_;
		T15_ = (NIM_BOOL)0;
		T15_ = ((327680 & (*p).options) == 327680);
		if (!(T15_)) goto LA16_;
		T17_ = (NIM_BOOL)0;
		T17_ = ((*p).prc == NIM_NIL);
		if (T17_) goto LA18_;
		T17_ = !((((*(*p).prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 9))&63U)))!=0));
		LA18_: ;
		T15_ = T17_;
		LA16_: ;
		if (!T15_) goto LA19_;
		{
			NIM_BOOL T23_;
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T26_;
			NimStringDesc* T27_;
			T23_ = (NIM_BOOL)0;
			T23_ = freshLineInfo_i9c2rKOAXwchJ4zMKMIqdiQ(p, (*t).info);
			if (!T23_) goto LA24_;
			nimZeroMem((void*)T26_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T26_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (line)));
			T27_ = (NimStringDesc*)0;
			{
				NIM_BOOL T30_;
				T30_ = (NIM_BOOL)0;
				T30_ = ((*t).info.fileIndex < ((NI32) 0));
				if (T30_) goto LA31_;
				T30_ = ((*(*(*p).module).g).config == NIM_NIL);
				LA31_: ;
				if (!T30_) goto LA32_;
				T27_ = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_346));
			}
			goto LA28_;
			LA32_: ;
			{
				T27_ = copyString((*(*(*(*p).module).g).config).m.fileInfos->data[(*t).info.fileIndex].projPath);
			}
			LA28_: ;
			T26_[1] = makeCString_vQJydtKy4Nf6bXPYtbmjtg(T27_);
			linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_345), T26_, 2);
		}
		LA24_: ;
	}
	goto LA13_;
	LA19_: ;
	{
		NIM_BOOL T36_;
		NIM_BOOL T37_;
		NIM_BOOL T39_;
		T36_ = (NIM_BOOL)0;
		T37_ = (NIM_BOOL)0;
		T37_ = ((196608 & (*p).options) == 196608);
		if (!(T37_)) goto LA38_;
		T39_ = (NIM_BOOL)0;
		T39_ = ((*p).prc == NIM_NIL);
		if (T39_) goto LA40_;
		T39_ = !((((*(*p).prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 9))&63U)))!=0));
		LA40_: ;
		T37_ = T39_;
		LA38_: ;
		T36_ = T37_;
		if (!(T36_)) goto LA41_;
		T36_ = !(((*t).info.fileIndex == ((NI32) -1)));
		LA41_: ;
		if (!T36_) goto LA42_;
		{
			NIM_BOOL T46_;
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T49_;
			T46_ = (NIM_BOOL)0;
			T46_ = freshLineInfo_i9c2rKOAXwchJ4zMKMIqdiQ(p, (*t).info);
			if (!T46_) goto LA47_;
			nimZeroMem((void*)T49_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T49_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (line)));
			T49_[1] = quotedFilename_9cv9aIRvZfYbftCtn2P2ABrQ((*(*(*p).module).g).config, (*t).info);
			linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_347), T49_, 2);
		}
		LA47_: ;
	}
	goto LA13_;
	LA42_: ;
	LA13_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getLabel_3AsTOpq9crZUYBL9aD1lXBng_6)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T2_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	(*p).labels += ((NI) 1);
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).labels)));
	T2_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_348), T1_);
	result = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T2_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_3));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, fixLabel_z1hx9axqa9cHsmY7bMeZVSrQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* labl) {
	tyArray_JiWwrsTRC6xqNlGcBthSVA T1_;
	nimZeroMem((void*)T1_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T1_[0] = labl;
	lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_351), T1_, 1);
}

N_LIB_PRIVATE N_NIMCALL(void, genAndOr_yX5yxw6c9agMF4ZvIHKAZvg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg m) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* L;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp;
	L = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	nimZeroMem((void*)(&tmp), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*e).typ, (&tmp), NIM_FALSE);
	(*p).splitDecls += ((NI) 1);
	expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*e)._Ukind.S6.sons->data[((NI) 1)], (&tmp));
	L = getLabel_3AsTOpq9crZUYBL9aD1lXBng_6(p);
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T5_;
		if (!(m == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 130))) goto LA3_;
		nimZeroMem((void*)T5_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T5_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&tmp));
		T5_[1] = L;
		lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_349), T5_, 2);
	}
	goto LA1_;
	LA3_: ;
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T7_;
		nimZeroMem((void*)T7_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T7_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&tmp));
		T7_[1] = L;
		lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_350), T7_, 2);
	}
	LA1_: ;
	expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*e)._Ukind.S6.sons->data[((NI) 2)], (&tmp));
	fixLabel_z1hx9axqa9cHsmY7bMeZVSrQ(p, L);
	{
		if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA10_;
		genericAssign((void*)(&(*d)), (void*)(&tmp), (&NTI_EtHNvCB0bgfu9bFjzx9cb6aA_));
	}
	goto LA8_;
	LA10_: ;
	{
		genAssignment_BtucsTdHw7orsXIL75hNVg_2(p, (&(*d)), (&tmp), 0);
	}
	LA8_: ;
	(*p).splitDecls -= ((NI) 1);
}

N_LIB_PRIVATE N_NIMCALL(void, unaryArith_TU9cJnldbmGa9bZDxaR6I4tg_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg op) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T1_;
	NI64 T2_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T3_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	t = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 1)], (&a));
	t = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*e).typ, IL64(36099165764233488));
	nimZeroMem((void*)T1_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
	T1_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
	T2_ = (NI64)0;
	T2_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, t);
	T1_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ((NI64)(T2_ * IL64(8)));
	T1_[2] = getSimpleTypeDesc_TttItRxQT67RCnbQdIsyRQ((*p).module, (*e).typ);
	T3_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T3_ = percent__9bvKdnhoYI2ta9agQNm3orMA(unArithTab_1p9a8KN5j4PMV4F7Mzo8I1Q[(op)- 102], T1_, 3);
	putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T3_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
}

N_LIB_PRIVATE N_NIMCALL(void, unaryArithOverflow_yX5yxw6c9agMF4ZvIHKAZvg_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg m) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T7_;
	NI64 T8_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	t = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 1)], (&a));
	t = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*e).typ, IL64(36099165764233488));
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T5_;
		NI64 T6_;
		if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 5))&31U)))!=0)) goto LA3_;
		nimZeroMem((void*)T5_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T5_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
		T6_ = (NI64)0;
		T6_ = firstOrd_4cSIntenL9aBXY6LAFsvXdQ((*(*(*p).module).g).config, t);
		T5_[1] = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg(T6_);
		linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_368), T5_, 2);
	}
	LA3_: ;
	nimZeroMem((void*)T7_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T7_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
	T8_ = (NI64)0;
	T8_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, t);
	T7_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ((NI64)(T8_ * IL64(8)));
	T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T9_ = percent__9bvKdnhoYI2ta9agQNm3orMA(opr_vMxBsg3pHbWQhHBktwp4Jw[(m)- 99], T7_, 2);
	putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T9_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
}

N_LIB_PRIVATE N_NIMCALL(void, binaryArith_TU9cJnldbmGa9bZDxaR6I4tg_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg op) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	NI64 s;
	NI64 k;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	NI64 T2_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T3_;
	NI64 T4_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T5_;
	NI64 T6_;
	tyArray_duFhZXIIlrbrM62cWjNekg T7_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T8_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	s = (NI64)0;
	k = (NI64)0;
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 1)], (&a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 2)], (&b));
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&a));
	T2_ = (NI64)0;
	T2_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, T1_);
	T3_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T3_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&b));
	T4_ = (NI64)0;
	T4_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, T3_);
	s = (NI64)(((T2_ >= T4_) ? T2_ : T4_) * IL64(8));
	T5_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T5_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&a));
	T6_ = (NI64)0;
	T6_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, T5_);
	k = (NI64)(T6_ * IL64(8));
	nimZeroMem((void*)T7_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
	T7_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
	T7_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg((&b));
	T7_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(s);
	T7_[3] = getSimpleTypeDesc_TttItRxQT67RCnbQdIsyRQ((*p).module, (*e).typ);
	T7_[4] = rope_KOisMGxcPhz6CcSmxgwEQQ(k);
	T8_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T8_ = percent__9bvKdnhoYI2ta9agQNm3orMA(binArithTab_184dMIlbHgay9bxJ8Y4EEQA[(op)- 54], T7_, 5);
	putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T8_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
}

N_LIB_PRIVATE N_NIMCALL(void, binaryFloatArith_yX5yxw6c9agMF4ZvIHKAZvg_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg m) {
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
		tyArray_f7nG5LD47BH5K9c6mASit3g T5_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T6_;
		if (!!(((384 & (*p).options) == 0))) goto LA3_;
		nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 1)], (&a));
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 2)], (&b));
		nimZeroMem((void*)T5_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
		T5_[0] = rope_yShmEg9cffWxI7s5XzEKBow(opr_jSXnH9c8YRRwSdXyVdSg9acA[(m)- 54]);
		T5_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
		T5_[2] = rdLoc_xidyzuHqIciXbQyEOKahDg((&b));
		T5_[3] = getSimpleTypeDesc_TttItRxQT67RCnbQdIsyRQ((*p).module, (*(*e)._Ukind.S6.sons->data[((NI) 1)]).typ);
		T6_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T6_ = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_371), T5_, 4);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T6_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
		{
			tyArray_JiWwrsTRC6xqNlGcBthSVA T11_;
			if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 7))&31U)))!=0)) goto LA9_;
			nimZeroMem((void*)T11_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T11_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&(*d)));
			linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_375), T11_, 1);
		}
		LA9_: ;
		{
			tyArray_JiWwrsTRC6xqNlGcBthSVA T16_;
			if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 8))&31U)))!=0)) goto LA14_;
			nimZeroMem((void*)T16_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T16_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&(*d)));
			linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_376), T16_, 1);
		}
		LA14_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		binaryArith_TU9cJnldbmGa9bZDxaR6I4tg_3(p, e, d, m);
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genEqProc_BKdMcfvryaJLplX0oFPcAQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 1)], (&a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 2)], (&b));
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T3_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T4_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T7_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T8_;
		T3_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T3_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&a));
		T4_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T4_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(T3_, IL64(36099165763184912));
		if (!((*T4_).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8))) goto LA5_;
		nimZeroMem((void*)T7_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T7_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
		T7_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg((&b));
		T8_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T8_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_405), T7_, 2);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T8_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	goto LA1_;
	LA5_: ;
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T10_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
		nimZeroMem((void*)T10_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T10_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
		T10_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg((&b));
		T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T11_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_394), T10_, 2);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T11_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, rdCharLoc_xidyzuHqIciXbQyEOKahDg_2)(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	result = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T3_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T4_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T7_;
		T3_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T3_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen(a);
		T4_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T4_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(T3_, IL64(36099165764233488));
		if (!((*T4_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2))) goto LA5_;
		nimZeroMem((void*)T7_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T7_[0] = result;
		result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_411), T7_, 1);
	}
	LA5_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, binaryArithOverflowRaw_ve9b1jPKH19c7Oix9aPGf9cWag)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* b, NimStringDesc* frmt) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	NI64 size;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* storage;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T6_;
	tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T7_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	size = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, t);
	{
		if (!(size < ((NI64) ((*(*(*(*p).module).g).config).target.intSize)))) goto LA3_;
		storage = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_28));
	}
	goto LA1_;
	LA3_: ;
	{
		storage = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, t);
	}
	LA1_: ;
	result = getTempName_9cFzUT5Cyfi5u0F447WwLvA((*p).module);
	nimZeroMem((void*)T6_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T6_[0] = storage;
	T6_[1] = result;
	linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_48), T6_, 2);
	nimZeroMem((void*)T7_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
	T7_[0] = result;
	T7_[1] = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(a);
	T7_[2] = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(b);
	lineCg_zZ8N2PtAlqFZKCp7nvAnhw_2(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), frmt, T7_, 3);
	{
		NIM_BOOL T10_;
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T14_;
		NI64 T15_;
		NI64 T16_;
		T10_ = (NIM_BOOL)0;
		T10_ = (size < ((NI64) ((*(*(*(*p).module).g).config).target.intSize)));
		if (T10_) goto LA11_;
		T10_ = ((1064960 &((NU64)1<<((NU)((*t).kind)&63U)))!=0);
		LA11_: ;
		if (!T10_) goto LA12_;
		nimZeroMem((void*)T14_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T14_[0] = result;
		T15_ = (NI64)0;
		T15_ = firstOrd_4cSIntenL9aBXY6LAFsvXdQ((*(*(*p).module).g).config, t);
		T14_[1] = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg(T15_);
		T16_ = (NI64)0;
		T16_ = lastOrd_PcKlk9cRVtdVcuEFs9bZTdAQ((*(*(*p).module).g).config, t, NIM_FALSE);
		T14_[2] = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg(T16_);
		linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_412), T14_, 3);
	}
	LA12_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, binaryArithOverflow_yX5yxw6c9agMF4ZvIHKAZvg_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg m) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 1)], (&a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 2)], (&b));
	t = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*e).typ, IL64(36099165764233488));
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* res;
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T5_;
		if (!!((((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 5))&31U)))!=0))) goto LA3_;
		nimZeroMem((void*)T5_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T5_[0] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, (*e).typ);
		T5_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
		T5_[2] = rdLoc_xidyzuHqIciXbQyEOKahDg((&b));
		res = percent__9bvKdnhoYI2ta9agQNm3orMA(opr_UAWyVnvyQoWbplounFNlGg[(m)- 47], T5_, 3);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, res, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* res_2;
		NimStringDesc* T7_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T13_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
		T7_ = (NimStringDesc*)0;
		{
			if (!((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 35))) goto LA10_;
			T7_ = copyString(prc64_9bTptLAKOOYdunqlEwXM6PQ[(m)- 47]);
		}
		goto LA8_;
		LA10_: ;
		{
			T7_ = copyString(prc_8UqUr1y9abLbrO1vSUF2CqQ[(m)- 47]);
		}
		LA8_: ;
		res_2 = binaryArithOverflowRaw_ve9b1jPKH19c7Oix9aPGf9cWag(p, t, (&a), (&b), T7_);
		nimZeroMem((void*)T13_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T13_[0] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, (*e).typ);
		T13_[1] = res_2;
		T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_423), T13_, 2);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T14_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, gcUsage_Faz6su3hXrHmiSECd9c9a6Pg)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	{
		NimStringDesc* T5_;
		if (!((*conf).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 0))) goto LA3_;
		T5_ = (NimStringDesc*)0;
		T5_ = renderTree_ppjdh9aQ5L0SGPF8yz1gZ9cA(n, 0);
		message_mMj7lrOf3zBP9bl69amiKu5g(conf, (*n).info, ((tyEnum_TMsgKind_29cbg2fC1z5iM1PAI28kR5w) 36), T5_);
	}
	LA3_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genRepr_BKdMcfvryaJLplX0oFPcAQ_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 1)], (&a));
	t = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*e)._Ukind.S6.sons->data[((NI) 1)]).typ, IL64(36099165772622096));
	switch ((*t).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 35):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 40) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44):
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T2_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T3_;
		nimZeroMem((void*)T2_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T2_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
		T3_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T3_ = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_424), T2_, 1);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T3_, a.storage);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 39):
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T5_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T6_;
		nimZeroMem((void*)T5_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T5_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
		T6_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T6_ = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_425), T5_, 1);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T6_, a.storage);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 1):
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T8_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
		nimZeroMem((void*)T8_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T8_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
		T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T9_ = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_426), T8_, 1);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T9_, a.storage);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2):
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T11_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T12_;
		nimZeroMem((void*)T11_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T11_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
		T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_427), T11_, 1);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T12_, a.storage);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 14):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 15):
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T14_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T15_;
		nimZeroMem((void*)T14_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T14_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
		T14_[1] = genTypeInfo_7P9bdUkiYYdBWl5P39cGpERw((*p).module, t, (*e).info);
		T15_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T15_ = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_428), T14_, 2);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T15_, a.storage);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T17_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T18_;
		nimZeroMem((void*)T17_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T17_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
		T18_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T18_ = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_429), T17_, 1);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T18_, a.storage);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 19):
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T20_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T21_;
		nimZeroMem((void*)T20_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T20_[0] = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, (&a));
		T20_[1] = genTypeInfo_7P9bdUkiYYdBWl5P39cGpERw((*p).module, t, (*e).info);
		T21_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T21_ = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_430), T20_, 2);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T21_, a.storage);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48):
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T23_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T36_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T37_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T38_;
		nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		T23_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T23_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&a));
		switch ((*T23_).kind) {
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48):
		{
			tyArray_JiWwrsTRC6xqNlGcBthSVA T25_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T26_;
			nimZeroMem((void*)T25_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T25_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
			T26_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T26_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_431), T25_, 1);
			putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, (&b), e, T26_, a.storage);
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
		{
			tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T28_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T29_;
			nimZeroMem((void*)T28_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
			T28_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
			T28_[1] = lenExpr_Xfvxpx3W1zkiCqENsur9ckg(p, (&a));
			T28_[2] = dataField_3AsTOpq9crZUYBL9aD1lXBng_2(p);
			T29_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T29_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_432), T28_, 3);
			putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, (&b), e, T29_, a.storage);
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
		{
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T31_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T32_;
			NI64 T33_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T34_;
			nimZeroMem((void*)T31_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T31_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
			T32_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T32_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&a));
			T33_ = (NI64)0;
			T33_ = lengthOrd_4cSIntenL9aBXY6LAFsvXdQ_2((*(*(*p).module).g).config, T32_);
			T31_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(T33_);
			T34_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T34_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_433), T31_, 2);
			putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, (&b), e, T34_, a.storage);
		}
		break;
		default:
		{
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*(*e)._Ukind.S6.sons->data[((NI) 0)]).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_434));
		}
		break;
		}
		nimZeroMem((void*)T36_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T36_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&b));
		T37_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T37_ = elemType_BFFuB9cFDZ89c6QWZqEFAtdA_2(t);
		T36_[1] = genTypeInfo_7P9bdUkiYYdBWl5P39cGpERw((*p).module, T37_, (*e).info);
		T38_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T38_ = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_435), T36_, 2);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T38_, a.storage);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 29):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 26):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 5):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T40_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T41_;
		nimZeroMem((void*)T40_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T40_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
		T40_[1] = genTypeInfo_7P9bdUkiYYdBWl5P39cGpERw((*p).module, t, (*e).info);
		T41_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T41_ = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_436), T40_, 2);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T41_, a.storage);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 3):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 63):
	{
		localError_NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*e).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_437));
	}
	break;
	default:
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T44_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T45_;
		nimZeroMem((void*)T44_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T44_[0] = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, (&a));
		T44_[1] = genTypeInfo_7P9bdUkiYYdBWl5P39cGpERw((*p).module, t, (*e).info);
		T45_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T45_ = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_436), T44_, 2);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T45_, a.storage);
	}
	break;
	}
	gcUsage_Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, e);
}

N_LIB_PRIVATE N_NIMCALL(void, genGetTypeInfo_BKdMcfvryaJLplX0oFPcAQ_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T1_;
	t = (*(*e)._Ukind.S6.sons->data[((NI) 1)]).typ;
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = genTypeInfo_7P9bdUkiYYdBWl5P39cGpERw((*p).module, t, (*e).info);
	putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T1_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
}

N_LIB_PRIVATE N_NIMCALL(void, genSwap_BKdMcfvryaJLplX0oFPcAQ_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&tmp), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*e)._Ukind.S6.sons->data[((NI) 1)]).typ, IL64(36239903259928848));
	getTemp_VjOFVqypINqQv5C3ECnxbw(p, T1_, (&tmp), NIM_FALSE);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 1)], (&a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 2)], (&b));
	genAssignment_BtucsTdHw7orsXIL75hNVg_2(p, (&tmp), (&a), 0);
	genAssignment_BtucsTdHw7orsXIL75hNVg_2(p, (&a), (&b), 0);
	genAssignment_BtucsTdHw7orsXIL75hNVg_2(p, (&b), (&tmp), 0);
}

N_LIB_PRIVATE N_NIMCALL(void, unaryExpr_U2agx9aO3WToOTIqL9baXQog)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* frmt) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T2_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 1)], (&a));
	nimZeroMem((void*)T1_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T1_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
	T2_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, frmt, T1_, 1);
	putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T2_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
}

N_LIB_PRIVATE N_NIMCALL(void, binaryStmt_U2agx9aO3WToOTIqL9baXQog_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* frmt) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T5_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	{
		if (!!(((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA3_;
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*e).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_440));
	}
	LA3_: ;
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 1)], (&a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 2)], (&b));
	nimZeroMem((void*)T5_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T5_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
	T5_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg((&b));
	lineCg_zZ8N2PtAlqFZKCp7nvAnhw_2(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), frmt, T5_, 2);
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, strLoc_09c8G9aj7c6ktd6DIBLVcdnw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 5))) goto LA3_;
		result = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, d);
	}
	goto LA1_;
	LA3_: ;
	{
		result = rdLoc_xidyzuHqIciXbQyEOKahDg(d);
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genStrConcat_BKdMcfvryaJLplX0oFPcAQ_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp;
	NI L;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* appends;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* lens;
	tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T21_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T22_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&tmp), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*e).typ, (&tmp), NIM_FALSE);
	L = ((NI) 0);
	appends = NIM_NIL;
	lens = NIM_NIL;
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(e);
		colontmp_ = (NI)(T2_ - ((NI) 2));
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[(NI)(i + ((NI) 1))], (&a));
				{
					tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T7_;
					tyArray_mrugoXXRZUEeG9bEXo9auBKw T10_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
					T7_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T7_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*e)._Ukind.S6.sons->data[(NI)(i + ((NI) 1))]).typ, IL64(36099165772622096));
					if (!((*T7_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2))) goto LA8_;
					L += ((NI) 1);
					nimZeroMem((void*)T10_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
					T10_[0] = strLoc_09c8G9aj7c6ktd6DIBLVcdnw(p, (&tmp));
					T10_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
					T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T11_ = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_443), T10_, 2);
					add_iMTw0CDaruwETLGb9bhpBLg(&appends, T11_);
				}
				goto LA5_;
				LA8_: ;
				{
					tyArray_mrugoXXRZUEeG9bEXo9auBKw T19_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
					{
						if (!((*(*e)._Ukind.S6.sons->data[(NI)(i + ((NI) 1))]).kind >= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*(*e)._Ukind.S6.sons->data[(NI)(i + ((NI) 1))]).kind <= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 22))) goto LA15_;
						L += ((*(*e)._Ukind.S6.sons->data[(NI)(i + ((NI) 1))])._Ukind.S3.strVal ? (*(*e)._Ukind.S6.sons->data[(NI)(i + ((NI) 1))])._Ukind.S3.strVal->Sup.len : 0);
					}
					goto LA13_;
					LA15_: ;
					{
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T18_;
						T18_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T18_ = lenExpr_Xfvxpx3W1zkiCqENsur9ckg(p, (&a));
						add_iMTw0CDaruwETLGb9bhpBLg(&lens, T18_);
						add_yG4AKzsBRS1W4MANDlXQeg(&lens, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_444));
					}
					LA13_: ;
					nimZeroMem((void*)T19_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
					T19_[0] = strLoc_09c8G9aj7c6ktd6DIBLVcdnw(p, (&tmp));
					T19_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
					T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T20_ = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_445), T19_, 2);
					add_iMTw0CDaruwETLGb9bhpBLg(&appends, T20_);
				}
				LA5_: ;
				res += ((NI) 1);
			} LA4: ;
		}
	}
	nimZeroMem((void*)T21_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
	T21_[0] = tmp.r;
	T21_[1] = lens;
	T21_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (L)));
	linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_446), T21_, 3);
	T22_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T22_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	add_iMTw0CDaruwETLGb9bhpBLg(T22_, appends);
	{
		if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA25_;
		genericAssign((void*)(&(*d)), (void*)(&tmp), (&NTI_EtHNvCB0bgfu9bFjzx9cb6aA_));
	}
	goto LA23_;
	LA25_: ;
	{
		genAssignment_BtucsTdHw7orsXIL75hNVg_2(p, (&(*d)), (&tmp), 0);
	}
	LA23_: ;
	gcUsage_Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, e);
}

N_LIB_PRIVATE N_NIMCALL(void, binaryStmtAddr_U2agx9aO3WToOTIqL9baXQog_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* frmt) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T5_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	{
		if (!!(((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA3_;
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*e).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_447));
	}
	LA3_: ;
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 1)], (&a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 2)], (&b));
	nimZeroMem((void*)T5_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T5_[0] = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, (&a));
	T5_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg((&b));
	lineCg_zZ8N2PtAlqFZKCp7nvAnhw_2(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), frmt, T5_, 2);
}

N_LIB_PRIVATE N_NIMCALL(void, genStrAppend_BKdMcfvryaJLplX0oFPcAQ_6)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA dest;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA call;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* appends;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* lens;
	NI L;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T28_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&dest), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&call), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	appends = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	lens = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	L = ((NI) 0);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 1)], (&dest));
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(e);
		colontmp_ = (NI)(T2_ - ((NI) 3));
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[(NI)(i + ((NI) 2))], (&a));
				{
					tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T7_;
					tyArray_mrugoXXRZUEeG9bEXo9auBKw T10_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
					T7_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T7_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*e)._Ukind.S6.sons->data[(NI)(i + ((NI) 2))]).typ, IL64(36099165772622096));
					if (!((*T7_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2))) goto LA8_;
					L += ((NI) 1);
					nimZeroMem((void*)T10_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
					T10_[0] = strLoc_09c8G9aj7c6ktd6DIBLVcdnw(p, (&dest));
					T10_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
					T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T11_ = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_443), T10_, 2);
					add_iMTw0CDaruwETLGb9bhpBLg(&appends, T11_);
				}
				goto LA5_;
				LA8_: ;
				{
					tyArray_mrugoXXRZUEeG9bEXo9auBKw T19_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
					{
						if (!((*(*e)._Ukind.S6.sons->data[(NI)(i + ((NI) 2))]).kind >= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*(*e)._Ukind.S6.sons->data[(NI)(i + ((NI) 2))]).kind <= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 22))) goto LA15_;
						L += ((*(*e)._Ukind.S6.sons->data[(NI)(i + ((NI) 2))])._Ukind.S3.strVal ? (*(*e)._Ukind.S6.sons->data[(NI)(i + ((NI) 2))])._Ukind.S3.strVal->Sup.len : 0);
					}
					goto LA13_;
					LA15_: ;
					{
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T18_;
						T18_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T18_ = lenExpr_Xfvxpx3W1zkiCqENsur9ckg(p, (&a));
						add_iMTw0CDaruwETLGb9bhpBLg(&lens, T18_);
						add_yG4AKzsBRS1W4MANDlXQeg(&lens, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_444));
					}
					LA13_: ;
					nimZeroMem((void*)T19_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
					T19_[0] = strLoc_09c8G9aj7c6ktd6DIBLVcdnw(p, (&dest));
					T19_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
					T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T20_ = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_445), T19_, 2);
					add_iMTw0CDaruwETLGb9bhpBLg(&appends, T20_);
				}
				LA5_: ;
				res += ((NI) 1);
			} LA4: ;
		}
	}
	{
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T25_;
		if (!((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 5))) goto LA23_;
		nimZeroMem((void*)T25_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T25_[0] = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, (&dest));
		T25_[1] = lens;
		T25_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (L)));
		linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_450), T25_, 3);
	}
	goto LA21_;
	LA23_: ;
	{
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T27_;
		initLoc_z9bd78in9czXhMZLT0QNB5Tw((&call), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 9), e, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 4));
		nimZeroMem((void*)T27_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T27_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&dest));
		T27_[1] = lens;
		T27_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (L)));
		call.r = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_451), T27_, 3);
		genAssignment_BtucsTdHw7orsXIL75hNVg_2(p, (&dest), (&call), 0);
		gcUsage_Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, e);
	}
	LA21_: ;
	T28_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T28_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	add_iMTw0CDaruwETLGb9bhpBLg(T28_, appends);
}

static N_INLINE(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genArgStringToCString_yOhPG2oQOpNhI6KfbLI1XQcgen)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T1_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n)._Ukind.S6.sons->data[((NI) 0)], (&a));
	nimZeroMem((void*)T1_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T1_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
	result = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_452), T1_, 1);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genBoundsCheck_Hw9c2IcxFuX7vhYGTZsoSPA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* arr, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* b) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ty;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen(arr);
	ty = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(T1_, IL64(36099165772622096));
	switch ((*ty).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48):
	{
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T3_;
		nimZeroMem((void*)T3_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T3_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T3_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T3_[2] = rdLoc_xidyzuHqIciXbQyEOKahDg(arr);
		linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_453), T3_, 3);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* first;
		NI64 T5_;
		T5_ = (NI64)0;
		T5_ = firstOrd_4cSIntenL9aBXY6LAFsvXdQ((*(*(*p).module).g).config, ty);
		first = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg(T5_);
		{
			tyArray_f7nG5LD47BH5K9c6mASit3g T10_;
			NI64 T11_;
			if (!!((((*ty).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 0))&63U)))!=0))) goto LA8_;
			nimZeroMem((void*)T10_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
			T10_[0] = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(a);
			T10_[1] = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(b);
			T10_[2] = first;
			T11_ = (NI64)0;
			T11_ = lastOrd_PcKlk9cRVtdVcuEFs9bZTdAQ((*(*(*p).module).g).config, ty, NIM_FALSE);
			T10_[3] = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg(T11_);
			linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_454), T10_, 4);
		}
		LA8_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
	{
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T13_;
		nimZeroMem((void*)T13_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T13_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T13_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T13_[2] = lenExpr_Xfvxpx3W1zkiCqENsur9ckg(p, arr);
		linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_455), T13_, 3);
	}
	break;
	default:
	{
	}
	break;
	}
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, openArrayLoc_NYI5fC69aIqZGRakncXv9cNQ_7)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* q;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	q = skipConv_6rsSLwtlU9c53a6w69be5JlQ(n);
	{
		tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg T3_;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA c;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ty;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T10_;
		T3_ = (tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg)0;
		T3_ = getMagic_gSv3iFkSzJc9bXZaNBHR9bQA(q);
		if (!(T3_ == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 142))) goto LA4_;
		nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		nimZeroMem((void*)(&c), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*q)._Ukind.S6.sons->data[((NI) 1)], (&a));
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*q)._Ukind.S6.sons->data[((NI) 2)], (&b));
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*q)._Ukind.S6.sons->data[((NI) 3)], (&c));
		{
			if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 4))&31U)))!=0)) goto LA8_;
			genBoundsCheck_Hw9c2IcxFuX7vhYGTZsoSPA(p, (&a), (&b), (&c));
		}
		LA8_: ;
		T10_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T10_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&a));
		ty = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(T10_, IL64(36239903262026000));
		switch ((*ty).kind) {
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
		{
			NI64 first;
			first = firstOrd_4cSIntenL9aBXY6LAFsvXdQ((*(*(*p).module).g).config, ty);
			{
				tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T16_;
				if (!(first == IL64(0))) goto LA14_;
				nimZeroMem((void*)T16_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
				T16_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
				T16_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg((&b));
				T16_[2] = rdLoc_xidyzuHqIciXbQyEOKahDg((&c));
				result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_456), T16_, 3);
			}
			goto LA12_;
			LA14_: ;
			{
				tyArray_f7nG5LD47BH5K9c6mASit3g T18_;
				nimZeroMem((void*)T18_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
				T18_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
				T18_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg((&b));
				T18_[2] = rdLoc_xidyzuHqIciXbQyEOKahDg((&c));
				T18_[3] = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg(first);
				result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_457), T18_, 4);
			}
			LA12_: ;
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48):
		{
			tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T20_;
			nimZeroMem((void*)T20_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
			T20_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
			T20_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg((&b));
			T20_[2] = rdLoc_xidyzuHqIciXbQyEOKahDg((&c));
			result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_456), T20_, 3);
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
		{
			{
				NIM_BOOL T24_;
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T25_;
				NIM_BOOL T27_;
				tyArray_f7nG5LD47BH5K9c6mASit3g T31_;
				T24_ = (NIM_BOOL)0;
				T25_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T25_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*n).typ, IL64(36099165763184912));
				T24_ = ((*T25_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23));
				if (!(T24_)) goto LA26_;
				T27_ = (NIM_BOOL)0;
				T27_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
				if (T27_) goto LA28_;
				T27_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
				LA28_: ;
				T24_ = !(T27_);
				LA26_: ;
				if (!T24_) goto LA29_;
				nimZeroMem((void*)T31_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
				T31_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
				T31_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg((&b));
				T31_[2] = rdLoc_xidyzuHqIciXbQyEOKahDg((&c));
				T31_[3] = dataField_3AsTOpq9crZUYBL9aD1lXBng_2(p);
				result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_458), T31_, 4);
			}
			goto LA22_;
			LA29_: ;
			{
				tyArray_f7nG5LD47BH5K9c6mASit3g T33_;
				nimZeroMem((void*)T33_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
				T33_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
				T33_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg((&b));
				T33_[2] = rdLoc_xidyzuHqIciXbQyEOKahDg((&c));
				T33_[3] = dataField_3AsTOpq9crZUYBL9aD1lXBng_2(p);
				result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_459), T33_, 4);
			}
			LA22_: ;
		}
		break;
		default:
		{
			NimStringDesc* T35_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T36_;
			NimStringDesc* T37_;
			T35_ = (NimStringDesc*)0;
			T36_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T36_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&a));
			T37_ = (NimStringDesc*)0;
			T37_ = typeToString_QlvraUan7WbHowhAbvDvdA(T36_, ((tyEnum_TPreferedDesc_tnd4qt9c4xddV8oKV5zyusw) 0));
			T35_ = rawNewString((T37_ ? T37_->Sup.len : 0) + 14);
appendString(T35_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_460));
appendString(T35_, T37_);
			internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*(*p).module).g).config, T35_);
		}
		break;
		}
	}
	goto LA1_;
	LA4_: ;
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T39_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T40_;
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, n, (&a));
		T39_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T39_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&a));
		T40_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T40_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(T39_, IL64(36239903259928848));
		switch ((*T40_).kind) {
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48):
		{
			tyArray_JiWwrsTRC6xqNlGcBthSVA T42_;
			nimZeroMem((void*)T42_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T42_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
			result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_431), T42_, 1);
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
		{
			{
				NIM_BOOL T46_;
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T47_;
				NIM_BOOL T49_;
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA t;
				tyArray_JiWwrsTRC6xqNlGcBthSVA T53_;
				tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T54_;
				T46_ = (NIM_BOOL)0;
				T47_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T47_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*n).typ, IL64(36099165763184912));
				T46_ = ((*T47_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23));
				if (!(T46_)) goto LA48_;
				T49_ = (NIM_BOOL)0;
				T49_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
				if (T49_) goto LA50_;
				T49_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
				LA50_: ;
				T46_ = !(T49_);
				LA48_: ;
				if (!T46_) goto LA51_;
				nimZeroMem((void*)(&t), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				nimZeroMem((void*)T53_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
				T53_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
				t.r = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_137), T53_, 1);
				nimZeroMem((void*)T54_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
				T54_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
				T54_[1] = lenExpr_Xfvxpx3W1zkiCqENsur9ckg(p, (&t));
				T54_[2] = dataField_3AsTOpq9crZUYBL9aD1lXBng_2(p);
				result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_461), T54_, 3);
			}
			goto LA44_;
			LA51_: ;
			{
				tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T56_;
				nimZeroMem((void*)T56_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
				T56_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
				T56_[1] = lenExpr_Xfvxpx3W1zkiCqENsur9ckg(p, (&a));
				T56_[2] = dataField_3AsTOpq9crZUYBL9aD1lXBng_2(p);
				result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_432), T56_, 3);
			}
			LA44_: ;
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
		{
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T58_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T59_;
			NI64 T60_;
			nimZeroMem((void*)T58_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T58_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
			T59_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T59_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&a));
			T60_ = (NI64)0;
			T60_ = lengthOrd_4cSIntenL9aBXY6LAFsvXdQ_2((*(*(*p).module).g).config, T59_);
			T58_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(T60_);
			result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_433), T58_, 2);
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22):
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T62_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T63_;
			T62_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T62_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&a));
			T63_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T63_ = lastSon_ab52xel9cFebv9am0xV04xXA(T62_);
			switch ((*T63_).kind) {
			case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
			case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
			{
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA t_2;
				tyArray_JiWwrsTRC6xqNlGcBthSVA T65_;
				tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T66_;
				nimZeroMem((void*)(&t_2), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				nimZeroMem((void*)T65_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
				T65_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
				t_2.r = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_137), T65_, 1);
				nimZeroMem((void*)T66_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
				T66_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
				T66_[1] = lenExpr_Xfvxpx3W1zkiCqENsur9ckg(p, (&t_2));
				T66_[2] = dataField_3AsTOpq9crZUYBL9aD1lXBng_2(p);
				result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_461), T66_, 3);
			}
			break;
			case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
			{
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T68_;
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T69_;
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T70_;
				NI64 T71_;
				nimZeroMem((void*)T68_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T68_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
				T69_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T69_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&a));
				T70_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T70_ = lastSon_ab52xel9cFebv9am0xV04xXA(T69_);
				T71_ = (NI64)0;
				T71_ = lengthOrd_4cSIntenL9aBXY6LAFsvXdQ_2((*(*(*p).module).g).config, T70_);
				T68_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(T71_);
				result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_433), T68_, 2);
			}
			break;
			default:
			{
				NimStringDesc* T73_;
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T74_;
				NimStringDesc* T75_;
				T73_ = (NimStringDesc*)0;
				T74_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T74_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&a));
				T75_ = (NimStringDesc*)0;
				T75_ = typeToString_QlvraUan7WbHowhAbvDvdA(T74_, ((tyEnum_TPreferedDesc_tnd4qt9c4xddV8oKV5zyusw) 0));
				T73_ = rawNewString((T75_ ? T75_->Sup.len : 0) + 14);
appendString(T73_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_460));
appendString(T73_, T75_);
				internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*(*p).module).g).config, T73_);
			}
			break;
			}
		}
		break;
		default:
		{
			NimStringDesc* T77_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T78_;
			NimStringDesc* T79_;
			T77_ = (NimStringDesc*)0;
			T78_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T78_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&a));
			T79_ = (NimStringDesc*)0;
			T79_ = typeToString_QlvraUan7WbHowhAbvDvdA(T78_, ((tyEnum_TPreferedDesc_tnd4qt9c4xddV8oKV5zyusw) 0));
			T77_ = rawNewString((T79_ ? T79_->Sup.len : 0) + 14);
appendString(T77_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_460));
appendString(T77_, T79_);
			internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*(*p).module).g).config, T77_);
		}
		break;
		}
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genArg_DHNxWzRy19cVFA89bbFHabxg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* param, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* call) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	{
		if (!((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 71))) goto LA3_;
		result = genArgStringToCString_yOhPG2oQOpNhI6KfbLI1XQcgen(p, n);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T6_;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n_2;
		T6_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T6_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*param).typ, IL64(36239903259928848));
		if (!((IL64(281475110928384) &((NU64)1<<((NU)((*T6_).kind)&63U)))!=0)) goto LA7_;
		{
			if (!!(((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64)))) goto LA11_;
			n_2 = n;
		}
		goto LA9_;
		LA11_: ;
		{
			n_2 = (*n)._Ukind.S6.sons->data[((NI) 0)];
		}
		LA9_: ;
		result = openArrayLoc_NYI5fC69aIqZGRakncXv9cNQ_7(p, n_2);
	}
	goto LA1_;
	LA7_: ;
	{
		NIM_BOOL T15_;
		T15_ = (NIM_BOOL)0;
		T15_ = ccgIntroducedPtr_A23DSI2AFKphIXH0nXWePw((*(*(*p).module).g).config, param);
		if (!T15_) goto LA16_;
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, n, (&a));
		result = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, (&a));
	}
	goto LA1_;
	LA16_: ;
	{
		NIM_BOOL T19_;
		NIM_BOOL T20_;
		NIM_BOOL T21_;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* callee;
		T19_ = (NIM_BOOL)0;
		T20_ = (NIM_BOOL)0;
		T21_ = (NIM_BOOL)0;
		T21_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T21_) goto LA22_;
		T21_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA22_: ;
		T20_ = T21_;
		if (!(T20_)) goto LA23_;
		T20_ = ((*(*param).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23));
		LA23_: ;
		T19_ = T20_;
		if (!(T19_)) goto LA24_;
		T19_ = ((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64));
		LA24_: ;
		if (!T19_) goto LA25_;
		initLocExprSingleUse_9biTBaXPz9cezuLjjWw9cSEGw(p, (*n)._Ukind.S6.sons->data[((NI) 0)], (&a));
		callee = (*call)._Ukind.S6.sons->data[((NI) 0)];
		{
			NIM_BOOL T29_;
			NIM_BOOL T30_;
			T29_ = (NIM_BOOL)0;
			T30_ = (NIM_BOOL)0;
			T30_ = ((*callee).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T30_)) goto LA31_;
			T30_ = ((268501024 & (*(*callee)._Ukind.S4.sym).flags) == 32);
			LA31_: ;
			T29_ = T30_;
			if (!(T29_)) goto LA32_;
			T29_ = !(((72 & (*(*callee)._Ukind.S4.sym).loc.flags) == 0));
			LA32_: ;
			if (!T29_) goto LA33_;
			result = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, (&a));
		}
		goto LA27_;
		LA33_: ;
		{
			result = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
		}
		LA27_: ;
	}
	goto LA1_;
	LA25_: ;
	{
		initLocExprSingleUse_9biTBaXPz9cezuLjjWw9cSEGw(p, n, (&a));
		result = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genArgNoParam_NYI5fC69aIqZGRakncXv9cNQ_8)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	{
		if (!((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 71))) goto LA3_;
		result = genArgStringToCString_yOhPG2oQOpNhI6KfbLI1XQcgen(p, n);
	}
	goto LA1_;
	LA3_: ;
	{
		initLocExprSingleUse_9biTBaXPz9cezuLjjWw9cSEGw(p, n, (&a));
		result = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getClosureType_8lX9asp9a40vZatlX85XSswQ)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyEnum_TClosureTypeKind_cLHRMz1vnpSK0uePy2qbWw kind) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg check;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* rettype;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* desc;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	nimZeroMem((void*)(&check), sizeof(tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg));
	initIntSet_a9a80eJplB17xrdZJ41Baww((&check));
	result = getTempName_9cFzUT5Cyfi5u0F447WwLvA(m);
	rettype = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	desc = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	genProcParams_SfuybNN12GV8YqiojEK9asA(m, t, &rettype, &desc, (&check), !((kind == ((tyEnum_TClosureTypeKind_cLHRMz1vnpSK0uePy2qbWw) 0))), NIM_FALSE);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isImportedType_UCeqXNU9bJdSIbOIWbb0zng_2(t);
		if (!!(T3_)) goto LA4_;
		{
			NIM_BOOL T8_;
			tyArray_f7nG5LD47BH5K9c6mASit3g T12_;
			T8_ = (NIM_BOOL)0;
			T8_ = !(((*t).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8)));
			if (T8_) goto LA9_;
			T8_ = !((kind == ((tyEnum_TClosureTypeKind_cLHRMz1vnpSK0uePy2qbWw) 2)));
			LA9_: ;
			if (!T8_) goto LA10_;
			nimZeroMem((void*)T12_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
			T12_[0] = rope_yShmEg9cffWxI7s5XzEKBow(CallingConvToStr_A7GdKVVGtI3pvj9cV9adydpw[((*t).callConv)- 0]);
			T12_[1] = rettype;
			T12_[2] = result;
			T12_[3] = desc;
			addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 3))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_59), T12_, 4);
		}
		goto LA6_;
		LA10_: ;
		{
			tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T14_;
			nimZeroMem((void*)T14_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
			T14_[0] = result;
			T14_[1] = rettype;
			T14_[2] = desc;
			addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 3))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_70), T14_, 3);
		}
		LA6_: ;
	}
	LA4_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getRawProcType_pQ3A543K4YxeaNh48yoUog)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	result = getClosureType_8lX9asp9a40vZatlX85XSswQ((*p).module, t, ((tyEnum_TClosureTypeKind_cLHRMz1vnpSK0uePy2qbWw) 0));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, leftAppearsOnRightSide_vU9b0aggOQwExqsArZPu29aw)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		if (!!((le == NIM_NIL))) goto LA3_;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(ri);
			i_2 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* r;
					if (!(i_2 < colontmp_)) goto LA7;
					i = i_2;
					r = (*ri)._Ukind.S6.sons->data[i];
					{
						tyEnum_TAnalysisResult_p9a9bcrXoRmLT4eUuwrDq9b4w T10_;
						T10_ = (tyEnum_TAnalysisResult_p9a9bcrXoRmLT4eUuwrDq9b4w)0;
						T10_ = isPartOf_1otDDZAmvFsmbqPyFytXFg(le, r);
						if (!!((T10_ == ((tyEnum_TAnalysisResult_p9a9bcrXoRmLT4eUuwrDq9b4w) 0)))) goto LA11_;
						result = NIM_TRUE;
						goto BeforeRet_;
					}
					LA11_: ;
					i_2 += ((NI) 1);
				} LA7: ;
			}
		}
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}

static N_INLINE(NIM_BOOL, hasNoInit_LTm4EPvF5i2yXgRHKmV9apAcgen)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* call) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*(*call)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
	if (!(T1_)) goto LA2_;
	T1_ = (((*(*(*call)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 12))&63U)))!=0);
	LA2_: ;
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, addComma_WAlh7NpO6KFA22Kxnp9aoaw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!(r == NIM_NIL)) goto LA3_;
		result = r;
	}
	goto LA1_;
	LA3_: ;
	{
		tyArray_qTjAvTvKF9anytN1At69aJMQ T6_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T7_;
		nimZeroMem((void*)T6_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T7_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_123), T6_, 0);
		result = amp__mFDAEkd1kysB0V9aBd20A9aA(r, T7_);
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genClosureCall_HKkL9adNEIcNHeJ0iZ6uitg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA op;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* pl;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
	NI length;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* rawProc;
	NimStringDesc* callPattern;
	nimZeroMem((void*)(&op), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*ri)._Ukind.S6.sons->data[((NI) 0)], (&op));
	pl = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	typ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*ri)._Ukind.S6.sons->data[((NI) 0)]).typ, IL64(36099165763184912));
	length = sonsLen_qPWPHw7WgJeEVYUdcaRIig(ri);
	{
		NI i;
		NI colontmp_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)(length - ((NI) 1));
		res = ((NI) 1);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA3;
				i = res;
				{
					NI T6_;
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* paramType;
					T6_ = (NI)0;
					T6_ = sonsLen_SWFNCiWYB89bTUPh5KptkvA(typ);
					if (!(i < T6_)) goto LA7_;
					paramType = (*(*typ).n)._Ukind.S6.sons->data[i];
					{
						NIM_BOOL T11_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
						T11_ = (NIM_BOOL)0;
						T11_ = isCompileTimeOnly_xUyAbEic5Yj9bmdDArJbHkQcgen((*paramType).typ);
						if (!!(T11_)) goto LA12_;
						{
							tyArray_qTjAvTvKF9anytN1At69aJMQ T18_;
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T19_;
							if (!!((pl == NIM_NIL))) goto LA16_;
							nimZeroMem((void*)T18_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
							T19_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
							T19_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_123), T18_, 0);
							add_iMTw0CDaruwETLGb9bhpBLg(&pl, T19_);
						}
						LA16_: ;
						T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T20_ = genArg_DHNxWzRy19cVFA89bbFHabxg(p, (*ri)._Ukind.S6.sons->data[i], (*paramType)._Ukind.S4.sym, ri);
						add_iMTw0CDaruwETLGb9bhpBLg(&pl, T20_);
					}
					LA12_: ;
				}
				goto LA4_;
				LA7_: ;
				{
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T28_;
					{
						tyArray_qTjAvTvKF9anytN1At69aJMQ T26_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T27_;
						if (!!((pl == NIM_NIL))) goto LA24_;
						nimZeroMem((void*)T26_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
						T27_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T27_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_123), T26_, 0);
						add_iMTw0CDaruwETLGb9bhpBLg(&pl, T27_);
					}
					LA24_: ;
					T28_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T28_ = genArgNoParam_NYI5fC69aIqZGRakncXv9cNQ_8(p, (*ri)._Ukind.S6.sons->data[i]);
					add_iMTw0CDaruwETLGb9bhpBLg(&pl, T28_);
				}
				LA4_: ;
				res += ((NI) 1);
			} LA3: ;
		}
	}
	rawProc = getRawProcType_pQ3A543K4YxeaNh48yoUog(p, typ);
	{
		if (!(((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 15))&63U)))!=0)) goto LA31_;
		callPattern = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_462));
	}
	goto LA29_;
	LA31_: ;
	{
		callPattern = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_463));
	}
	LA29_: ;
	{
		if (!!(((*typ).sons->data[((NI) 0)] == NIM_NIL))) goto LA36_;
		{
			NIM_BOOL T40_;
			T40_ = (NIM_BOOL)0;
			T40_ = isInvalidReturnType_ugBeCbo3I6LqXHcpCBFN9ag((*(*(*p).module).g).config, (*typ).sons->data[((NI) 0)]);
			if (!T40_) goto LA41_;
			{
				NI T45_;
				tyArray_qTjAvTvKF9anytN1At69aJMQ T48_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T49_;
				T45_ = (NI)0;
				T45_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(ri);
				if (!(((NI) 1) < T45_)) goto LA46_;
				nimZeroMem((void*)T48_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
				T49_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T49_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_123), T48_, 0);
				add_iMTw0CDaruwETLGb9bhpBLg(&pl, T49_);
			}
			LA46_: ;
			{
				NIM_BOOL T52_;
				NIM_BOOL T54_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T67_;
				NimStringDesc* T68_;
				tyArray_f7nG5LD47BH5K9c6mASit3g T69_;
				T52_ = (NIM_BOOL)0;
				T52_ = ((3 &(1U<<((NU)((*d).k)&15U)))!=0);
				if (T52_) goto LA53_;
				T54_ = (NIM_BOOL)0;
				T54_ = leftAppearsOnRightSide_vU9b0aggOQwExqsArZPu29aw(le, ri);
				T52_ = !(T54_);
				LA53_: ;
				if (!T52_) goto LA55_;
				{
					if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA59_;
					getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*typ).sons->data[((NI) 0)], d, NIM_TRUE);
				}
				goto LA57_;
				LA59_: ;
				{
					NIM_BOOL T62_;
					NIM_BOOL T64_;
					T62_ = (NIM_BOOL)0;
					T62_ = !(((2 &(1U<<((NU)((*d).k)&15U)))!=0));
					if (!(T62_)) goto LA63_;
					T64_ = (NIM_BOOL)0;
					T64_ = hasNoInit_LTm4EPvF5i2yXgRHKmV9apAcgen(ri);
					T62_ = !(T64_);
					LA63_: ;
					if (!T62_) goto LA65_;
				}
				goto LA57_;
				LA65_: ;
				LA57_: ;
				T67_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T67_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, (&(*d)));
				add_iMTw0CDaruwETLGb9bhpBLg(&pl, T67_);
				T68_ = (NimStringDesc*)0;
				T68_ = rawNewString((callPattern ? callPattern->Sup.len : 0) + 3);
appendString(T68_, callPattern);
appendString(T68_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_464));
				nimZeroMem((void*)T69_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
				T69_[0] = op.r;
				T69_[1] = pl;
				T69_[2] = addComma_WAlh7NpO6KFA22Kxnp9aoaw(pl);
				T69_[3] = rawProc;
				lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), T68_, T69_, 4);
			}
			goto LA50_;
			LA55_: ;
			{
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T71_;
				NimStringDesc* T72_;
				tyArray_f7nG5LD47BH5K9c6mASit3g T73_;
				nimZeroMem((void*)(&tmp), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*typ).sons->data[((NI) 0)], (&tmp), NIM_TRUE);
				T71_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T71_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, (&tmp));
				add_iMTw0CDaruwETLGb9bhpBLg(&pl, T71_);
				T72_ = (NimStringDesc*)0;
				T72_ = rawNewString((callPattern ? callPattern->Sup.len : 0) + 3);
appendString(T72_, callPattern);
appendString(T72_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_464));
				nimZeroMem((void*)T73_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
				T73_[0] = op.r;
				T73_[1] = pl;
				T73_[2] = addComma_WAlh7NpO6KFA22Kxnp9aoaw(pl);
				T73_[3] = rawProc;
				lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), T72_, T73_, 4);
				genAssignment_BtucsTdHw7orsXIL75hNVg_2(p, (&(*d)), (&tmp), 0);
			}
			LA50_: ;
		}
		goto LA38_;
		LA41_: ;
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA list;
			tyArray_f7nG5LD47BH5K9c6mASit3g T79_;
			{
				if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA77_;
				getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*typ).sons->data[((NI) 0)], d, NIM_FALSE);
			}
			LA77_: ;
			nimZeroMem((void*)(&list), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			initLoc_z9bd78in9czXhMZLT0QNB5Tw((&list), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 9), (*d).lode, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
			nimZeroMem((void*)T79_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
			T79_[0] = op.r;
			T79_[1] = pl;
			T79_[2] = addComma_WAlh7NpO6KFA22Kxnp9aoaw(pl);
			T79_[3] = rawProc;
			list.r = percent__9bvKdnhoYI2ta9agQNm3orMA(callPattern, T79_, 4);
			genAssignment_BtucsTdHw7orsXIL75hNVg_2(p, (&(*d)), (&list), 0);
		}
		LA38_: ;
	}
	goto LA34_;
	LA36_: ;
	{
		NimStringDesc* T81_;
		tyArray_f7nG5LD47BH5K9c6mASit3g T82_;
		T81_ = (NimStringDesc*)0;
		T81_ = rawNewString((callPattern ? callPattern->Sup.len : 0) + 3);
appendString(T81_, callPattern);
appendString(T81_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_464));
		nimZeroMem((void*)T82_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
		T82_[0] = op.r;
		T82_[1] = pl;
		T82_[2] = addComma_WAlh7NpO6KFA22Kxnp9aoaw(pl);
		T82_[3] = rawProc;
		lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), T81_, T82_, 4);
	}
	LA34_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genOtherArg_9a86z5oGsAZjkB52zPdLZJQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, NI i, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		NI T3_;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* paramType;
		T3_ = (NI)0;
		T3_ = sonsLen_SWFNCiWYB89bTUPh5KptkvA(typ);
		if (!(i < T3_)) goto LA4_;
		paramType = (*(*typ).n)._Ukind.S6.sons->data[i];
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = isCompileTimeOnly_xUyAbEic5Yj9bmdDArJbHkQcgen((*paramType).typ);
			if (!T8_) goto LA9_;
			result = NIM_NIL;
		}
		goto LA6_;
		LA9_: ;
		{
			NIM_BOOL T12_;
			T12_ = (NIM_BOOL)0;
			T12_ = ((*(*typ).sons->data[i]).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23));
			if (!(T12_)) goto LA13_;
			T12_ = ((*(*ri)._Ukind.S6.sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64));
			LA13_: ;
			if (!T12_) goto LA14_;
			result = genArgNoParam_NYI5fC69aIqZGRakncXv9cNQ_8(p, (*(*ri)._Ukind.S6.sons->data[i])._Ukind.S6.sons->data[((NI) 0)]);
		}
		goto LA6_;
		LA14_: ;
		{
			result = genArgNoParam_NYI5fC69aIqZGRakncXv9cNQ_8(p, (*ri)._Ukind.S6.sons->data[i]);
		}
		LA6_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		{
			if (!!((((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 0))&63U)))!=0))) goto LA20_;
			localError_NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*ri).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_468));
			result = NIM_NIL;
		}
		goto LA18_;
		LA20_: ;
		{
			result = genArgNoParam_NYI5fC69aIqZGRakncXv9cNQ_8(p, (*ri)._Ukind.S6.sons->data[i]);
		}
		LA18_: ;
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, skipAddrDeref_vQuVJ3xsG9c85EJKF2xQ7mA)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* node) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n;
	NIM_BOOL isAddr;
{	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	n = node;
	isAddr = NIM_FALSE;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 63):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64):
	{
		n = (*n)._Ukind.S6.sons->data[((NI) 0)];
		isAddr = NIM_TRUE;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 47):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 65):
	{
		n = (*n)._Ukind.S6.sons->data[((NI) 0)];
	}
	break;
	default:
	{
		result = n;
		goto BeforeRet_;
	}
	break;
	}
	{
		if (!((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 66))) goto LA6_;
		n = (*n)._Ukind.S6.sons->data[((NI) 0)];
	}
	LA6_: ;
	{
		NIM_BOOL T10_;
		T10_ = (NIM_BOOL)0;
		T10_ = isAddr;
		if (!(T10_)) goto LA11_;
		T10_ = ((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 47) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 65));
		LA11_: ;
		if (!T10_) goto LA12_;
		result = (*n)._Ukind.S6.sons->data[((NI) 0)];
	}
	goto LA8_;
	LA12_: ;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 63) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64))) goto LA15_;
		result = (*n)._Ukind.S6.sons->data[((NI) 0)];
	}
	goto LA8_;
	LA15_: ;
	{
		result = node;
	}
	LA8_: ;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genThisArg_9a86z5oGsAZjkB52zPdLZJQ_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, NI i, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri_2;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		NI T3_;
		NimStringDesc* T6_;
		T3_ = (NI)0;
		T3_ = sonsLen_SWFNCiWYB89bTUPh5KptkvA(typ);
		if (!!((i < T3_))) goto LA4_;
		T6_ = (NimStringDesc*)0;
		T6_ = dollar__E5ya0OOlyISUCw4ENFn9bLA(TM_MQdRN7fpbG7rPm4JpVVAhA_470);
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*(*p).module).g).config, T6_);
	}
	LA4_: ;
	ri_2 = (*ri)._Ukind.S6.sons->data[i];
	{
		while (1) {
			if (!((*ri_2).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 66))) goto LA8;
			ri_2 = (*ri_2)._Ukind.S6.sons->data[((NI) 0)];
		} LA8: ;
	}
	t = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*typ).sons->data[i], IL64(70368744179728));
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x;
		if (!((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23))) goto LA11_;
		{
			if (!((*ri_2).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64))) goto LA15_;
			x = (*ri_2)._Ukind.S6.sons->data[((NI) 0)];
		}
		goto LA13_;
		LA15_: ;
		{
			x = ri_2;
		}
		LA13_: ;
		{
			if (!((*(*x).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21))) goto LA20_;
			result = genArgNoParam_NYI5fC69aIqZGRakncXv9cNQ_8(p, x);
			add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_471));
		}
		goto LA18_;
		LA20_: ;
		{
			NIM_BOOL T23_;
			T23_ = (NIM_BOOL)0;
			T23_ = ((*x).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 65) || (*x).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 47));
			if (!(T23_)) goto LA24_;
			T23_ = ((*(*(*x)._Ukind.S6.sons->data[((NI) 0)]).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21));
			LA24_: ;
			if (!T23_) goto LA25_;
			result = genArgNoParam_NYI5fC69aIqZGRakncXv9cNQ_8(p, (*x)._Ukind.S6.sons->data[((NI) 0)]);
			add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_471));
		}
		goto LA18_;
		LA25_: ;
		{
			result = genArgNoParam_NYI5fC69aIqZGRakncXv9cNQ_8(p, x);
			add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_299));
		}
		LA18_: ;
	}
	goto LA9_;
	LA11_: ;
	{
		if (!((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21))) goto LA29_;
		{
			if (!((*ri_2).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 63) || (*ri_2).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64))) goto LA33_;
			result = genArgNoParam_NYI5fC69aIqZGRakncXv9cNQ_8(p, (*ri_2)._Ukind.S6.sons->data[((NI) 0)]);
			add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_299));
		}
		goto LA31_;
		LA33_: ;
		{
			result = genArgNoParam_NYI5fC69aIqZGRakncXv9cNQ_8(p, ri_2);
			add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_471));
		}
		LA31_: ;
	}
	goto LA9_;
	LA29_: ;
	{
		ri_2 = skipAddrDeref_vQuVJ3xsG9c85EJKF2xQ7mA(ri_2);
		{
			if (!((*ri_2).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 63) || (*ri_2).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64))) goto LA39_;
			ri_2 = (*ri_2)._Ukind.S6.sons->data[((NI) 0)];
		}
		LA39_: ;
		result = genArgNoParam_NYI5fC69aIqZGRakncXv9cNQ_8(p, ri_2);
		add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_299));
	}
	LA9_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genPatternCall_n9aN0vqKCBL7B9cV6pjBnGNg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, NimStringDesc* pat, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	NI i;
	NI j;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	i = ((NI) 0);
	j = ((NI) 1);
	{
		while (1) {
			if (!(i < (pat ? pat->Sup.len : 0))) goto LA2;
			switch (((NU8)(pat->data[i]))) {
			case 64:
			{
				{
					NI T6_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
					T6_ = (NI)0;
					T6_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(ri);
					if (!(j < T6_)) goto LA7_;
					T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T9_ = genOtherArg_9a86z5oGsAZjkB52zPdLZJQ(p, ri, j, typ);
					add_iMTw0CDaruwETLGb9bhpBLg(&result, T9_);
					{
						NI k;
						NI colontmp_;
						NI colontmp__2;
						NI i_2;
						k = (NI)0;
						colontmp_ = (NI)0;
						colontmp__2 = (NI)0;
						colontmp_ = (NI)(j + ((NI) 1));
						colontmp__2 = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(ri);
						i_2 = colontmp_;
						{
							while (1) {
								tyArray_qTjAvTvKF9anytN1At69aJMQ T13_;
								tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
								tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T15_;
								if (!(i_2 < colontmp__2)) goto LA12;
								k = i_2;
								nimZeroMem((void*)T13_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
								T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
								T14_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_123), T13_, 0);
								add_iMTw0CDaruwETLGb9bhpBLg(&result, T14_);
								T15_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
								T15_ = genOtherArg_9a86z5oGsAZjkB52zPdLZJQ(p, ri, k, typ);
								add_iMTw0CDaruwETLGb9bhpBLg(&result, T15_);
								i_2 += ((NI) 1);
							} LA12: ;
						}
					}
				}
				LA7_: ;
				i += ((NI) 1);
			}
			break;
			case 35:
			{
				{
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri_2;
					if (!(((NU8)(pat->data[(NI)(i + ((NI) 1))])) == ((NU8)(43)) || ((NU8)(pat->data[(NI)(i + ((NI) 1))])) == ((NU8)(64)))) goto LA19_;
					ri_2 = (*ri)._Ukind.S6.sons->data[j];
					{
						tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ_2;
						tyArray_qTjAvTvKF9anytN1At69aJMQ T30_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T31_;
						tyArray_qTjAvTvKF9anytN1At69aJMQ T44_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T45_;
						if (!((*ri_2).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*ri_2).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*ri_2).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*ri_2).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*ri_2).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*ri_2).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*ri_2).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 32))) goto LA23_;
						typ_2 = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*ri_2)._Ukind.S6.sons->data[((NI) 0)]).typ, IL64(36099165763184912));
						{
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T29_;
							if (!((NU8)(pat->data[(NI)(i + ((NI) 1))]) == (NU8)(43))) goto LA27_;
							T29_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
							T29_ = genArgNoParam_NYI5fC69aIqZGRakncXv9cNQ_8(p, (*ri_2)._Ukind.S6.sons->data[((NI) 0)]);
							add_iMTw0CDaruwETLGb9bhpBLg(&result, T29_);
						}
						LA27_: ;
						nimZeroMem((void*)T30_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
						T31_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T31_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_130), T30_, 0);
						add_iMTw0CDaruwETLGb9bhpBLg(&result, T31_);
						{
							NI T34_;
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T37_;
							T34_ = (NI)0;
							T34_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(ri_2);
							if (!(((NI) 1) < T34_)) goto LA35_;
							T37_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
							T37_ = genOtherArg_9a86z5oGsAZjkB52zPdLZJQ(p, ri_2, ((NI) 1), typ_2);
							add_iMTw0CDaruwETLGb9bhpBLg(&result, T37_);
						}
						LA35_: ;
						{
							NI k_2;
							NI colontmp__3;
							NI colontmp__4;
							NI i_3;
							k_2 = (NI)0;
							colontmp__3 = (NI)0;
							colontmp__4 = (NI)0;
							colontmp__3 = (NI)(j + ((NI) 1));
							colontmp__4 = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(ri_2);
							i_3 = colontmp__3;
							{
								while (1) {
									tyArray_qTjAvTvKF9anytN1At69aJMQ T41_;
									tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T42_;
									tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T43_;
									if (!(i_3 < colontmp__4)) goto LA40;
									k_2 = i_3;
									nimZeroMem((void*)T41_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
									T42_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
									T42_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_123), T41_, 0);
									add_iMTw0CDaruwETLGb9bhpBLg(&result, T42_);
									T43_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
									T43_ = genOtherArg_9a86z5oGsAZjkB52zPdLZJQ(p, ri_2, k_2, typ_2);
									add_iMTw0CDaruwETLGb9bhpBLg(&result, T43_);
									i_3 += ((NI) 1);
								} LA40: ;
							}
						}
						nimZeroMem((void*)T44_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
						T45_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T45_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_129), T44_, 0);
						add_iMTw0CDaruwETLGb9bhpBLg(&result, T45_);
					}
					goto LA21_;
					LA23_: ;
					{
						localError_NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*ri_2).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_469));
					}
					LA21_: ;
					i += ((NI) 1);
				}
				goto LA17_;
				LA19_: ;
				{
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T50_;
					if (!((NU8)(pat->data[(NI)(i + ((NI) 1))]) == (NU8)(46))) goto LA48_;
					T50_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T50_ = genThisArg_9a86z5oGsAZjkB52zPdLZJQ_2(p, ri, j, typ);
					add_iMTw0CDaruwETLGb9bhpBLg(&result, T50_);
					i += ((NI) 1);
				}
				goto LA17_;
				LA48_: ;
				{
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* arg;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T56_;
					if (!((NU8)(pat->data[(NI)(i + ((NI) 1))]) == (NU8)(91))) goto LA52_;
					arg = skipAddrDeref_vQuVJ3xsG9c85EJKF2xQ7mA((*ri)._Ukind.S6.sons->data[j]);
					{
						while (1) {
							if (!((*arg).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 63) || (*arg).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64) || (*arg).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 66))) goto LA55;
							arg = (*arg)._Ukind.S6.sons->data[((NI) 0)];
						} LA55: ;
					}
					T56_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T56_ = genArgNoParam_NYI5fC69aIqZGRakncXv9cNQ_8(p, arg);
					add_iMTw0CDaruwETLGb9bhpBLg(&result, T56_);
				}
				goto LA17_;
				LA52_: ;
				{
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T58_;
					T58_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T58_ = genOtherArg_9a86z5oGsAZjkB52zPdLZJQ(p, ri, j, typ);
					add_iMTw0CDaruwETLGb9bhpBLg(&result, T58_);
				}
				LA17_: ;
				j += ((NI) 1);
				i += ((NI) 1);
			}
			break;
			case 39:
			{
				NI idx;
				NI stars;
				idx = (NI)0;
				stars = (NI)0;
				{
					NIM_BOOL T62_;
					tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
					T62_ = (NIM_BOOL)0;
					T62_ = scanCppGenericSlot_duLZKxkzK247jEYF4jUfog(pat, (&i), (&idx), (&stars));
					if (!T62_) goto LA63_;
					t = resolveStarsInCppType_xwSObpAAR9cXwGaH7j8BclQ(typ, idx, stars);
					{
						tyArray_qTjAvTvKF9anytN1At69aJMQ T69_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T70_;
						if (!(t == NIM_NIL)) goto LA67_;
						nimZeroMem((void*)T69_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
						T70_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T70_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_17), T69_, 0);
						add_iMTw0CDaruwETLGb9bhpBLg(&result, T70_);
					}
					goto LA65_;
					LA67_: ;
					{
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T72_;
						T72_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T72_ = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, t);
						add_iMTw0CDaruwETLGb9bhpBLg(&result, T72_);
					}
					LA65_: ;
				}
				LA63_: ;
			}
			break;
			default:
			{
				NI start;
				start = i;
				{
					while (1) {
						if (!(i < (pat ? pat->Sup.len : 0))) goto LA75;
						{
							if (!!((((NU8)(pat->data[i])) == ((NU8)(64)) || ((NU8)(pat->data[i])) == ((NU8)(35)) || ((NU8)(pat->data[i])) == ((NU8)(39))))) goto LA78_;
							i += ((NI) 1);
						}
						goto LA76_;
						LA78_: ;
						{
							goto LA74;
						}
						LA76_: ;
					} LA75: ;
				} LA74: ;
				{
					NimStringDesc* T85_;
					if (!(start <= (NI)(i - ((NI) 1)))) goto LA83_;
					T85_ = (NimStringDesc*)0;
					T85_ = substr_TWXUwbnq0SWWvDLfr8LXYw(pat, start, (NI)(i - ((NI) 1)));
					add_yG4AKzsBRS1W4MANDlXQeg(&result, T85_);
				}
				LA83_: ;
			}
			break;
			}
		} LA2: ;
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, fixupCall_5AieZFwkpMkLKPnkORd7Cw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* callee, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* params) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* pl;
	tyArray_qTjAvTvKF9anytN1At69aJMQ T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T2_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T3_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
	nimZeroMem((void*)T1_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
	T2_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_130), T1_, 0);
	T3_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T3_ = amp__mFDAEkd1kysB0V9aBd20A9aA(callee, T2_);
	pl = amp__mFDAEkd1kysB0V9aBd20A9aA(T3_, params);
	typ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*ri)._Ukind.S6.sons->data[((NI) 0)]).typ, IL64(36099165763184912));
	{
		if (!!(((*typ).sons->data[((NI) 0)] == NIM_NIL))) goto LA6_;
		{
			NIM_BOOL T10_;
			T10_ = (NIM_BOOL)0;
			T10_ = isInvalidReturnType_ugBeCbo3I6LqXHcpCBFN9ag((*(*(*p).module).g).config, (*typ).sons->data[((NI) 0)]);
			if (!T10_) goto LA11_;
			{
				tyArray_qTjAvTvKF9anytN1At69aJMQ T17_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T18_;
				if (!!((params == NIM_NIL))) goto LA15_;
				nimZeroMem((void*)T17_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
				T18_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T18_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_123), T17_, 0);
				add_iMTw0CDaruwETLGb9bhpBLg(&pl, T18_);
			}
			LA15_: ;
			{
				NIM_BOOL T21_;
				NIM_BOOL T23_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T36_;
				tyArray_qTjAvTvKF9anytN1At69aJMQ T37_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T38_;
				T21_ = (NIM_BOOL)0;
				T21_ = ((3 &(1U<<((NU)((*d).k)&15U)))!=0);
				if (T21_) goto LA22_;
				T23_ = (NIM_BOOL)0;
				T23_ = leftAppearsOnRightSide_vU9b0aggOQwExqsArZPu29aw(le, ri);
				T21_ = !(T23_);
				LA22_: ;
				if (!T21_) goto LA24_;
				{
					if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA28_;
					getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*typ).sons->data[((NI) 0)], d, NIM_TRUE);
				}
				goto LA26_;
				LA28_: ;
				{
					NIM_BOOL T31_;
					NIM_BOOL T33_;
					T31_ = (NIM_BOOL)0;
					T31_ = !(((2 &(1U<<((NU)((*d).k)&15U)))!=0));
					if (!(T31_)) goto LA32_;
					T33_ = (NIM_BOOL)0;
					T33_ = hasNoInit_LTm4EPvF5i2yXgRHKmV9apAcgen(ri);
					T31_ = !(T33_);
					LA32_: ;
					if (!T31_) goto LA34_;
				}
				goto LA26_;
				LA34_: ;
				LA26_: ;
				T36_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T36_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, (&(*d)));
				add_iMTw0CDaruwETLGb9bhpBLg(&pl, T36_);
				nimZeroMem((void*)T37_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
				T38_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T38_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_472), T37_, 0);
				add_iMTw0CDaruwETLGb9bhpBLg(&pl, T38_);
				line_7EHg9a9bBQrxiXUHES9aziKUQ(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), pl);
			}
			goto LA19_;
			LA24_: ;
			{
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T40_;
				tyArray_qTjAvTvKF9anytN1At69aJMQ T41_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T42_;
				nimZeroMem((void*)(&tmp), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*typ).sons->data[((NI) 0)], (&tmp), NIM_TRUE);
				T40_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T40_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, (&tmp));
				add_iMTw0CDaruwETLGb9bhpBLg(&pl, T40_);
				nimZeroMem((void*)T41_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
				T42_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T42_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_472), T41_, 0);
				add_iMTw0CDaruwETLGb9bhpBLg(&pl, T42_);
				line_7EHg9a9bBQrxiXUHES9aziKUQ(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), pl);
				genAssignment_BtucsTdHw7orsXIL75hNVg_2(p, (&(*d)), (&tmp), 0);
			}
			LA19_: ;
		}
		goto LA8_;
		LA11_: ;
		{
			tyArray_qTjAvTvKF9anytN1At69aJMQ T44_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T45_;
			nimZeroMem((void*)T44_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
			T45_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T45_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_129), T44_, 0);
			add_iMTw0CDaruwETLGb9bhpBLg(&pl, T45_);
			{
				NIM_BOOL T48_;
				NIM_BOOL T49_;
				T48_ = (NIM_BOOL)0;
				T49_ = (NIM_BOOL)0;
				T49_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
				if (T49_) goto LA50_;
				T49_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
				LA50_: ;
				T48_ = T49_;
				if (!(T48_)) goto LA51_;
				T48_ = (((*d).flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 8))&15U)))!=0);
				LA51_: ;
				if (!T48_) goto LA52_;
				(*d).k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 9);
				unsureAsgnRef((void**) (&(*d).r), pl);
				(*d).flags &= ~(((NU16)1) << ((((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 8)) % (sizeof(NU16)*8)));
			}
			goto LA46_;
			LA52_: ;
			{
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA list;
				{
					if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA57_;
					getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*typ).sons->data[((NI) 0)], d, NIM_FALSE);
				}
				LA57_: ;
				nimZeroMem((void*)(&list), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				initLoc_z9bd78in9czXhMZLT0QNB5Tw((&list), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 9), (*d).lode, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
				list.r = pl;
				genAssignment_BtucsTdHw7orsXIL75hNVg_2(p, (&(*d)), (&list), 0);
			}
			LA46_: ;
		}
		LA8_: ;
	}
	goto LA4_;
	LA6_: ;
	{
		tyArray_qTjAvTvKF9anytN1At69aJMQ T60_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T61_;
		nimZeroMem((void*)T60_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		T61_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T61_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_472), T60_, 0);
		add_iMTw0CDaruwETLGb9bhpBLg(&pl, T61_);
		line_7EHg9a9bBQrxiXUHES9aziKUQ(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), pl);
	}
	LA4_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genInfixCall_HKkL9adNEIcNHeJ0iZ6uitg_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA op;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
	NI length;
	NimStringDesc* pat;
	nimZeroMem((void*)(&op), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*ri)._Ukind.S6.sons->data[((NI) 0)], (&op));
	typ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*ri)._Ukind.S6.sons->data[((NI) 0)]).typ, IL64(36099165763184912));
	length = sonsLen_qPWPHw7WgJeEVYUdcaRIig(ri);
	pat = (*(*(*(*ri)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym).loc.r).data;
	{
		NimStringDesc* T5_;
		if (!!((((NI) 0) < (pat ? pat->Sup.len : 0)))) goto LA3_;
		T5_ = (NimStringDesc*)0;
		T5_ = dollar__E5ya0OOlyISUCw4ENFn9bLA(TM_MQdRN7fpbG7rPm4JpVVAhA_465);
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*(*p).module).g).config, T5_);
	}
	LA3_: ;
	{
		NIM_BOOL T8_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* pl;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ_2;
		T8_ = (NIM_BOOL)0;
		T8_ = contains_m1TSS3QwQPclQATuiRuVZg(pat, TM_MQdRN7fpbG7rPm4JpVVAhA_467);
		if (!T8_) goto LA9_;
		pl = genPatternCall_n9aN0vqKCBL7B9cV6pjBnGNg(p, ri, pat, typ);
		typ_2 = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*ri)._Ukind.S6.sons->data[((NI) 0)]).typ, IL64(36099165763184912));
		{
			if (!!(((*typ_2).sons->data[((NI) 0)] == NIM_NIL))) goto LA13_;
			{
				NIM_BOOL T17_;
				NIM_BOOL T18_;
				T17_ = (NIM_BOOL)0;
				T18_ = (NIM_BOOL)0;
				T18_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
				if (T18_) goto LA19_;
				T18_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
				LA19_: ;
				T17_ = T18_;
				if (!(T17_)) goto LA20_;
				T17_ = (((*d).flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 8))&15U)))!=0);
				LA20_: ;
				if (!T17_) goto LA21_;
				(*d).k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 9);
				unsureAsgnRef((void**) (&(*d).r), pl);
				(*d).flags &= ~(((NU16)1) << ((((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 8)) % (sizeof(NU16)*8)));
			}
			goto LA15_;
			LA21_: ;
			{
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA list;
				{
					if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA26_;
					getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*typ_2).sons->data[((NI) 0)], d, NIM_FALSE);
				}
				LA26_: ;
				nimZeroMem((void*)(&list), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				initLoc_z9bd78in9czXhMZLT0QNB5Tw((&list), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 9), (*d).lode, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
				list.r = pl;
				genAssignment_BtucsTdHw7orsXIL75hNVg_2(p, (&(*d)), (&list), 0);
			}
			LA15_: ;
		}
		goto LA11_;
		LA13_: ;
		{
			tyArray_qTjAvTvKF9anytN1At69aJMQ T29_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T30_;
			nimZeroMem((void*)T29_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
			T30_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T30_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_464), T29_, 0);
			add_iMTw0CDaruwETLGb9bhpBLg(&pl, T30_);
			line_7EHg9a9bBQrxiXUHES9aziKUQ(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), pl);
		}
		LA11_: ;
	}
	goto LA6_;
	LA9_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* pl_2;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* params;
		pl_2 = NIM_NIL;
		{
			NI T34_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T37_;
			T34_ = (NI)0;
			T34_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(ri);
			if (!(((NI) 1) < T34_)) goto LA35_;
			T37_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T37_ = genThisArg_9a86z5oGsAZjkB52zPdLZJQ_2(p, ri, ((NI) 1), typ);
			add_iMTw0CDaruwETLGb9bhpBLg(&pl_2, T37_);
		}
		LA35_: ;
		add_iMTw0CDaruwETLGb9bhpBLg(&pl_2, op.r);
		params = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		{
			NI i;
			NI colontmp_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = (NI)(length - ((NI) 1));
			res = ((NI) 2);
			{
				while (1) {
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T47_;
					if (!(res <= colontmp_)) goto LA40;
					i = res;
					{
						tyArray_qTjAvTvKF9anytN1At69aJMQ T45_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T46_;
						if (!!((params == NIM_NIL))) goto LA43_;
						nimZeroMem((void*)T45_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
						T46_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T46_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_123), T45_, 0);
						add_iMTw0CDaruwETLGb9bhpBLg(&params, T46_);
					}
					LA43_: ;
					T47_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T47_ = genOtherArg_9a86z5oGsAZjkB52zPdLZJQ(p, ri, i, typ);
					add_iMTw0CDaruwETLGb9bhpBLg(&params, T47_);
					res += ((NI) 1);
				} LA40: ;
			}
		}
		fixupCall_5AieZFwkpMkLKPnkORd7Cw(p, le, ri, d, pl_2, params);
	}
	LA6_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genNamedParamCall_9azKdI6vAayTOFEcJtCTo1g)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA op;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* pl;
	tyArray_qTjAvTvKF9anytN1At69aJMQ T1_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
	NI length;
	NimStringDesc* pat;
	NI start;
	nimZeroMem((void*)(&op), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*ri)._Ukind.S6.sons->data[((NI) 0)], (&op));
	nimZeroMem((void*)T1_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
	pl = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_473), T1_, 0);
	typ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*ri)._Ukind.S6.sons->data[((NI) 0)]).typ, IL64(36099165763184912));
	length = sonsLen_qPWPHw7WgJeEVYUdcaRIig(ri);
	pat = (*(*(*(*ri)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym).loc.r).data;
	{
		NimStringDesc* T6_;
		if (!!((((NI) 0) < (pat ? pat->Sup.len : 0)))) goto LA4_;
		T6_ = (NimStringDesc*)0;
		T6_ = dollar__E5ya0OOlyISUCw4ENFn9bLA(TM_MQdRN7fpbG7rPm4JpVVAhA_474);
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*(*p).module).g).config, T6_);
	}
	LA4_: ;
	start = ((NI) 3);
	{
		NIM_BOOL T9_;
		T9_ = (NIM_BOOL)0;
		T9_ = contains_6e5MGL10HDAJ205lBYpWxw(pat, 32);
		if (!T9_) goto LA10_;
		start = ((NI) 1);
		add_iMTw0CDaruwETLGb9bhpBLg(&pl, op.r);
		{
			tyArray_qTjAvTvKF9anytN1At69aJMQ T16_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T17_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T18_;
			if (!(((NI) 1) < length)) goto LA14_;
			nimZeroMem((void*)T16_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
			T17_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T17_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_284), T16_, 0);
			add_iMTw0CDaruwETLGb9bhpBLg(&pl, T17_);
			T18_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T18_ = genArg_DHNxWzRy19cVFA89bbFHabxg(p, (*ri)._Ukind.S6.sons->data[((NI) 1)], (*(*(*typ).n)._Ukind.S6.sons->data[((NI) 1)])._Ukind.S4.sym, ri);
			add_iMTw0CDaruwETLGb9bhpBLg(&pl, T18_);
			start = ((NI) 2);
		}
		LA14_: ;
	}
	goto LA7_;
	LA10_: ;
	{
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T24_;
			tyArray_qTjAvTvKF9anytN1At69aJMQ T25_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T26_;
			if (!(((NI) 1) < length)) goto LA22_;
			T24_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T24_ = genArg_DHNxWzRy19cVFA89bbFHabxg(p, (*ri)._Ukind.S6.sons->data[((NI) 1)], (*(*(*typ).n)._Ukind.S6.sons->data[((NI) 1)])._Ukind.S4.sym, ri);
			add_iMTw0CDaruwETLGb9bhpBLg(&pl, T24_);
			nimZeroMem((void*)T25_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
			T26_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T26_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_86), T25_, 0);
			add_iMTw0CDaruwETLGb9bhpBLg(&pl, T26_);
		}
		LA22_: ;
		add_iMTw0CDaruwETLGb9bhpBLg(&pl, op.r);
		{
			tyArray_qTjAvTvKF9anytN1At69aJMQ T31_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T32_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T33_;
			if (!(((NI) 2) < length)) goto LA29_;
			nimZeroMem((void*)T31_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
			T32_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T32_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_284), T31_, 0);
			add_iMTw0CDaruwETLGb9bhpBLg(&pl, T32_);
			T33_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T33_ = genArg_DHNxWzRy19cVFA89bbFHabxg(p, (*ri)._Ukind.S6.sons->data[((NI) 2)], (*(*(*typ).n)._Ukind.S6.sons->data[((NI) 2)])._Ukind.S4.sym, ri);
			add_iMTw0CDaruwETLGb9bhpBLg(&pl, T33_);
		}
		LA29_: ;
	}
	LA7_: ;
	{
		NI i;
		NI colontmp_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)(length - ((NI) 1));
		res = start;
		{
			while (1) {
				tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* param;
				tyArray_qTjAvTvKF9anytN1At69aJMQ T42_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T43_;
				tyArray_qTjAvTvKF9anytN1At69aJMQ T44_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T45_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T46_;
				if (!(res <= colontmp_)) goto LA36;
				i = res;
				{
					NI T39_;
					T39_ = (NI)0;
					T39_ = sonsLen_SWFNCiWYB89bTUPh5KptkvA(typ);
					if (!(T39_ <= i)) goto LA40_;
					internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*ri).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_475));
				}
				LA40_: ;
				param = (*(*(*typ).n)._Ukind.S6.sons->data[i])._Ukind.S4.sym;
				nimZeroMem((void*)T42_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
				T43_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T43_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_86), T42_, 0);
				add_iMTw0CDaruwETLGb9bhpBLg(&pl, T43_);
				add_yG4AKzsBRS1W4MANDlXQeg(&pl, (*(*param).name).s);
				nimZeroMem((void*)T44_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
				T45_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T45_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_284), T44_, 0);
				add_iMTw0CDaruwETLGb9bhpBLg(&pl, T45_);
				T46_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T46_ = genArg_DHNxWzRy19cVFA89bbFHabxg(p, (*ri)._Ukind.S6.sons->data[i], param, ri);
				add_iMTw0CDaruwETLGb9bhpBLg(&pl, T46_);
				res += ((NI) 1);
			} LA36: ;
		}
	}
	{
		if (!!(((*typ).sons->data[((NI) 0)] == NIM_NIL))) goto LA49_;
		{
			NIM_BOOL T53_;
			T53_ = (NIM_BOOL)0;
			T53_ = isInvalidReturnType_ugBeCbo3I6LqXHcpCBFN9ag((*(*(*p).module).g).config, (*typ).sons->data[((NI) 0)]);
			if (!T53_) goto LA54_;
			{
				NI T58_;
				tyArray_qTjAvTvKF9anytN1At69aJMQ T61_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T62_;
				T58_ = (NI)0;
				T58_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(ri);
				if (!(((NI) 1) < T58_)) goto LA59_;
				nimZeroMem((void*)T61_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
				T62_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T62_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_86), T61_, 0);
				add_iMTw0CDaruwETLGb9bhpBLg(&pl, T62_);
			}
			LA59_: ;
			{
				tyArray_qTjAvTvKF9anytN1At69aJMQ T71_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T72_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T73_;
				tyArray_qTjAvTvKF9anytN1At69aJMQ T74_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T75_;
				if (!((3 &(1U<<((NU)((*d).k)&15U)))!=0)) goto LA65_;
				{
					if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA69_;
					getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*typ).sons->data[((NI) 0)], d, NIM_TRUE);
				}
				LA69_: ;
				nimZeroMem((void*)T71_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
				T72_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T72_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_476), T71_, 0);
				add_iMTw0CDaruwETLGb9bhpBLg(&pl, T72_);
				T73_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T73_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, (&(*d)));
				add_iMTw0CDaruwETLGb9bhpBLg(&pl, T73_);
				nimZeroMem((void*)T74_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
				T75_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T75_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_477), T74_, 0);
				add_iMTw0CDaruwETLGb9bhpBLg(&pl, T75_);
				line_7EHg9a9bBQrxiXUHES9aziKUQ(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), pl);
			}
			goto LA63_;
			LA65_: ;
			{
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T77_;
				tyArray_qTjAvTvKF9anytN1At69aJMQ T78_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T79_;
				nimZeroMem((void*)(&tmp), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*typ).sons->data[((NI) 0)], (&tmp), NIM_TRUE);
				T77_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T77_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, (&tmp));
				add_iMTw0CDaruwETLGb9bhpBLg(&pl, T77_);
				nimZeroMem((void*)T78_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
				T79_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T79_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_477), T78_, 0);
				add_iMTw0CDaruwETLGb9bhpBLg(&pl, T79_);
				line_7EHg9a9bBQrxiXUHES9aziKUQ(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), pl);
				genAssignment_BtucsTdHw7orsXIL75hNVg_2(p, (&(*d)), (&tmp), 0);
			}
			LA63_: ;
		}
		goto LA51_;
		LA54_: ;
		{
			tyArray_qTjAvTvKF9anytN1At69aJMQ T81_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T82_;
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA list;
			nimZeroMem((void*)T81_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
			T82_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T82_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_478), T81_, 0);
			add_iMTw0CDaruwETLGb9bhpBLg(&pl, T82_);
			{
				if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA85_;
				getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*typ).sons->data[((NI) 0)], d, NIM_FALSE);
			}
			LA85_: ;
			nimZeroMem((void*)(&list), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			initLoc_z9bd78in9czXhMZLT0QNB5Tw((&list), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 9), ri, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
			list.r = pl;
			genAssignment_BtucsTdHw7orsXIL75hNVg_2(p, (&(*d)), (&list), 0);
		}
		LA51_: ;
	}
	goto LA47_;
	LA49_: ;
	{
		tyArray_qTjAvTvKF9anytN1At69aJMQ T88_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T89_;
		nimZeroMem((void*)T88_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		T89_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T89_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_477), T88_, 0);
		add_iMTw0CDaruwETLGb9bhpBLg(&pl, T89_);
		line_7EHg9a9bBQrxiXUHES9aziKUQ(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), pl);
	}
	LA47_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genPrefixCall_HKkL9adNEIcNHeJ0iZ6uitg_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA op;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* params;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
	NI length;
	nimZeroMem((void*)(&op), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*ri)._Ukind.S6.sons->data[((NI) 0)], (&op));
	params = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	typ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*ri)._Ukind.S6.sons->data[((NI) 0)]).typ, IL64(36099165763184912));
	length = sonsLen_qPWPHw7WgJeEVYUdcaRIig(ri);
	{
		NI i;
		NI colontmp_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)(length - ((NI) 1));
		res = ((NI) 1);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA3;
				i = res;
				{
					NI T6_;
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* paramType;
					T6_ = (NI)0;
					T6_ = sonsLen_SWFNCiWYB89bTUPh5KptkvA(typ);
					if (!(i < T6_)) goto LA7_;
					paramType = (*(*typ).n)._Ukind.S6.sons->data[i];
					{
						NIM_BOOL T11_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
						T11_ = (NIM_BOOL)0;
						T11_ = isCompileTimeOnly_xUyAbEic5Yj9bmdDArJbHkQcgen((*paramType).typ);
						if (!!(T11_)) goto LA12_;
						{
							tyArray_qTjAvTvKF9anytN1At69aJMQ T18_;
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T19_;
							if (!!((params == NIM_NIL))) goto LA16_;
							nimZeroMem((void*)T18_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
							T19_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
							T19_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_123), T18_, 0);
							add_iMTw0CDaruwETLGb9bhpBLg(&params, T19_);
						}
						LA16_: ;
						T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T20_ = genArg_DHNxWzRy19cVFA89bbFHabxg(p, (*ri)._Ukind.S6.sons->data[i], (*paramType)._Ukind.S4.sym, ri);
						add_iMTw0CDaruwETLGb9bhpBLg(&params, T20_);
					}
					LA12_: ;
				}
				goto LA4_;
				LA7_: ;
				{
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T28_;
					{
						tyArray_qTjAvTvKF9anytN1At69aJMQ T26_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T27_;
						if (!!((params == NIM_NIL))) goto LA24_;
						nimZeroMem((void*)T26_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
						T27_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T27_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_123), T26_, 0);
						add_iMTw0CDaruwETLGb9bhpBLg(&params, T27_);
					}
					LA24_: ;
					T28_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T28_ = genArgNoParam_NYI5fC69aIqZGRakncXv9cNQ_8(p, (*ri)._Ukind.S6.sons->data[i]);
					add_iMTw0CDaruwETLGb9bhpBLg(&params, T28_);
				}
				LA4_: ;
				res += ((NI) 1);
			} LA3: ;
		}
	}
	fixupCall_5AieZFwkpMkLKPnkORd7Cw(p, le, ri, d, op.r, params);
}

static N_INLINE(void, postStmtActions_bNG6Lz1b9a5TVMLjP9cTlLjwcgen)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T1_;
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T1_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	add_iMTw0CDaruwETLGb9bhpBLg(T1_, (*(*p).module).injectStmt);
}

N_LIB_PRIVATE N_NIMCALL(void, genCall_BKdMcfvryaJLplX0oFPcAQ_7)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T3_;
		T3_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T3_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*e)._Ukind.S6.sons->data[((NI) 0)]).typ, IL64(70368744179728));
		if (!((*T3_).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8))) goto LA4_;
		genClosureCall_HKkL9adNEIcNHeJ0iZ6uitg(p, NIM_NIL, e, d);
	}
	goto LA1_;
	LA4_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = ((*(*e)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
		if (!(T7_)) goto LA8_;
		T7_ = (((*(*(*e)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA8_: ;
		if (!T7_) goto LA9_;
		genInfixCall_HKkL9adNEIcNHeJ0iZ6uitg_2(p, NIM_NIL, e, d);
	}
	goto LA1_;
	LA9_: ;
	{
		NIM_BOOL T12_;
		T12_ = (NIM_BOOL)0;
		T12_ = ((*(*e)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
		if (!(T12_)) goto LA13_;
		T12_ = (((*(*(*e)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 29))&63U)))!=0);
		LA13_: ;
		if (!T12_) goto LA14_;
		genNamedParamCall_9azKdI6vAayTOFEcJtCTo1g(p, e, d);
	}
	goto LA1_;
	LA14_: ;
	{
		genPrefixCall_HKkL9adNEIcNHeJ0iZ6uitg_3(p, NIM_NIL, e, d);
	}
	LA1_: ;
	postStmtActions_bNG6Lz1b9a5TVMLjP9cTlLjwcgen(p);
}

N_LIB_PRIVATE N_NIMCALL(void, getIntTemp_SrOtkNNSJNR1CbG2n3nFcg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* result) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T2_;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T3_;
	tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q T4_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T5_;
	(*p).labels += ((NI) 1);
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).labels)));
	T2_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_169), T1_);
	unsureAsgnRef((void**) (&(*result).r), amp__Z7W1o5nPSc3ExfO5f7j1Gg(T2_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_3)));
	nimZeroMem((void*)T3_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T3_[0] = (*result).r;
	linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_227), T3_, 1);
	(*result).k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 1);
	(*result).storage = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 2);
	T4_ = unknownLineInfo_F9bjxJM4tdxwMljo3mi9bY8w();
	T5_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T5_ = getSysType_VcTNc9cK1Ftuh0MFwOC9c0Tg((*(*(*p).module).g).graph, T4_, ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31));
	unsureAsgnRef((void**) (&(*result).lode), lodeTyp_8thmRpt8YNsc9cFM33hAlHw(T5_));
	(*result).flags = 0;
}

N_LIB_PRIVATE N_NIMCALL(void, genSeqElemAppend_BKdMcfvryaJLplX0oFPcAQ_8)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	NimStringDesc* seqAppendPattern;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA dest;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmpL;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA call;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* seqType;
	tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T8_;
	tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T9_;
	tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T10_;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T3_) goto LA4_;
		T3_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA4_: ;
		if (!!(T3_)) goto LA5_;
		seqAppendPattern = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_479));
	}
	goto LA1_;
	LA5_: ;
	{
		seqAppendPattern = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_480));
	}
	LA1_: ;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&dest), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&tmpL), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&call), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 1)], (&a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 2)], (&b));
	seqType = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*e)._Ukind.S6.sons->data[((NI) 1)]).typ, 8388608);
	initLoc_z9bd78in9czXhMZLT0QNB5Tw((&call), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 9), e, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 4));
	nimZeroMem((void*)T8_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
	T8_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
	T8_[1] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, (*(*e)._Ukind.S6.sons->data[((NI) 1)]).typ);
	T8_[2] = genTypeInfo_7P9bdUkiYYdBWl5P39cGpERw((*p).module, seqType, (*e).info);
	call.r = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, seqAppendPattern, T8_, 3);
	genRefAssign_BtucsTdHw7orsXIL75hNVg(p, (&a), (&call), 0);
	initLoc_z9bd78in9czXhMZLT0QNB5Tw((&dest), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), (*e)._Ukind.S6.sons->data[((NI) 2)], ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 4));
	getIntTemp_SrOtkNNSJNR1CbG2n3nFcg(p, (&tmpL));
	nimZeroMem((void*)T9_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
	T9_[0] = tmpL.r;
	T9_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
	T9_[2] = lenField_3AsTOpq9crZUYBL9aD1lXBng(p);
	lineCg_zZ8N2PtAlqFZKCp7nvAnhw_2(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_481), T9_, 3);
	nimZeroMem((void*)T10_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
	T10_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
	T10_[1] = tmpL.r;
	T10_[2] = dataField_3AsTOpq9crZUYBL9aD1lXBng_2(p);
	dest.r = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_216), T10_, 3);
	genAssignment_BtucsTdHw7orsXIL75hNVg_2(p, (&dest), (&b), 3);
	gcUsage_Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, e);
}

N_LIB_PRIVATE N_NIMCALL(void, binaryExpr_U2agx9aO3WToOTIqL9baXQog_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* frmt) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T2_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 1)], (&a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 2)], (&b));
	nimZeroMem((void*)T1_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T1_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
	T1_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg((&b));
	T2_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, frmt, T1_, 2);
	putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T2_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
}

N_LIB_PRIVATE N_NIMCALL(void, genStrEquals_BKdMcfvryaJLplX0oFPcAQ_9)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA x;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b;
	nimZeroMem((void*)(&x), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	a = (*e)._Ukind.S6.sons->data[((NI) 1)];
	b = (*e)._Ukind.S6.sons->data[((NI) 2)];
	{
		NIM_BOOL T3_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T7_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*a).kind >= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*a).kind <= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 22));
		if (!(T3_)) goto LA4_;
		T3_ = (((*a)._Ukind.S3.strVal ? (*a)._Ukind.S3.strVal->Sup.len : 0) == 0);
		LA4_: ;
		if (!T3_) goto LA5_;
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 2)], (&x));
		nimZeroMem((void*)T7_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T7_[0] = lenExpr_Xfvxpx3W1zkiCqENsur9ckg(p, (&x));
		T8_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T8_ = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_482), T7_, 1);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T8_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	goto LA1_;
	LA5_: ;
	{
		NIM_BOOL T10_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T14_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T15_;
		T10_ = (NIM_BOOL)0;
		T10_ = ((*b).kind >= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*b).kind <= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 22));
		if (!(T10_)) goto LA11_;
		T10_ = (((*b)._Ukind.S3.strVal ? (*b)._Ukind.S3.strVal->Sup.len : 0) == 0);
		LA11_: ;
		if (!T10_) goto LA12_;
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 1)], (&x));
		nimZeroMem((void*)T14_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T14_[0] = lenExpr_Xfvxpx3W1zkiCqENsur9ckg(p, (&x));
		T15_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T15_ = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_482), T14_, 1);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T15_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	goto LA1_;
	LA12_: ;
	{
		binaryExpr_U2agx9aO3WToOTIqL9baXQog_4(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_483));
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genIsNil_BKdMcfvryaJLplX0oFPcAQ_10)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	t = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*e)._Ukind.S6.sons->data[((NI) 1)]).typ, IL64(36099165764233488));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25));
		if (!(T3_)) goto LA4_;
		T3_ = ((*t).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8));
		LA4_: ;
		if (!T3_) goto LA5_;
		unaryExpr_U2agx9aO3WToOTIqL9baXQog(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_486));
	}
	goto LA1_;
	LA5_: ;
	{
		unaryExpr_U2agx9aO3WToOTIqL9baXQog(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_482));
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genDollar_pXcuuf9c1RIGGsEW9a8cUntw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* frmt) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T1_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n)._Ukind.S6.sons->data[((NI) 1)], (&a));
	nimZeroMem((void*)T1_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T1_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
	a.r = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, frmt, T1_, 1);
	{
		if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA4_;
		getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*n).typ, d, NIM_FALSE);
	}
	LA4_: ;
	genAssignment_BtucsTdHw7orsXIL75hNVg_2(p, (&(*d)), (&a), 0);
	gcUsage_Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, n);
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genOfHelper_syG9ah9cBD4IpDknTLKkLglQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* dest, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* a, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* ti;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	ti = genTypeInfo_7P9bdUkiYYdBWl5P39cGpERw((*p).module, dest, info);
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T9_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((*dest).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 2))&63U)))!=0);
		if (T3_) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = (((*(*p).module).flags &(1U<<((NU)(((tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q) 5))&7U)))!=0);
		if (!(T5_)) goto LA6_;
		T5_ = !((((*dest).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 5))&63U)))!=0));
		LA6_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA7_;
		nimZeroMem((void*)T9_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T9_[0] = a;
		T9_[1] = ti;
		result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_495), T9_, 2);
	}
	goto LA1_;
	LA7_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* cache;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T12_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T13_;
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T14_;
		T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T11_ = cgsym_0d9bDo5R2p09cv1ljqpC4l8Q((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_140));
		T11_;
		(*(*p).module).labels += ((NI) 1);
		T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*(*p).module).labels)));
		cache = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_496), T12_);
		nimZeroMem((void*)T13_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T13_[0] = cache;
		addf_ocEHZ9cujtqicXvDuJUm5pg(&(*(*p).module).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_497), T13_, 1);
		nimZeroMem((void*)T14_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T14_[0] = a;
		T14_[1] = ti;
		T14_[2] = cache;
		result = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_498), T14_, 3);
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genOf_uDNhebNf5Eggw4ZZsc4T9cg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* dest;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* nilCheck;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T18_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, x, (&a));
	dest = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(typ, IL64(36239903266220304));
	r = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
	nilCheck = NIM_NIL;
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&a));
	t = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(T1_, IL64(36099165763184912));
	{
		while (1) {
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T17_;
			if (!((IL64(140737503035392) &((NU64)1<<((NU)((*t).kind)&63U)))!=0)) goto LA3;
			{
				if (!!(((IL64(140737496743936) &((NU64)1<<((NU)((*t).kind)&63U)))!=0))) goto LA6_;
				nilCheck = r;
			}
			LA6_: ;
			{
				NIM_BOOL T10_;
				NIM_BOOL T12_;
				tyArray_JiWwrsTRC6xqNlGcBthSVA T16_;
				T10_ = (NIM_BOOL)0;
				T10_ = !(((IL64(140737496743936) &((NU64)1<<((NU)((*t).kind)&63U)))!=0));
				if (T10_) goto LA11_;
				T12_ = (NIM_BOOL)0;
				T12_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
				if (T12_) goto LA13_;
				T12_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
				LA13_: ;
				T10_ = !(T12_);
				LA11_: ;
				if (!T10_) goto LA14_;
				nimZeroMem((void*)T16_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
				T16_[0] = r;
				r = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_137), T16_, 1);
			}
			LA14_: ;
			T17_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T17_ = lastSon_ab52xel9cFebv9am0xV04xXA(t);
			t = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(T17_, IL64(36099165763184912));
		} LA3: ;
	}
	T18_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T18_ = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, t);
	T18_;
	{
		NIM_BOOL T21_;
		T21_ = (NIM_BOOL)0;
		T21_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T21_) goto LA22_;
		T21_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA22_: ;
		if (!!(T21_)) goto LA23_;
		{
			while (1) {
				NIM_BOOL T27_;
				tyArray_qTjAvTvKF9anytN1At69aJMQ T29_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T30_;
				T27_ = (NIM_BOOL)0;
				T27_ = ((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17));
				if (!(T27_)) goto LA28_;
				T27_ = !(((*t).sons->data[((NI) 0)] == NIM_NIL));
				LA28_: ;
				if (!T27_) goto LA26;
				nimZeroMem((void*)T29_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
				T30_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T30_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_176), T29_, 0);
				add_iMTw0CDaruwETLGb9bhpBLg(&r, T30_);
				t = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*t).sons->data[((NI) 0)], IL64(36239903266179344));
			} LA26: ;
		}
	}
	LA23_: ;
	{
		NIM_BOOL T33_;
		T33_ = (NIM_BOOL)0;
		T33_ = isObjLackingTypeField_JIeDKK3bgEYJKEAkiaujRgcgen(t);
		if (!T33_) goto LA34_;
		globalError_NF6kBGchnhQYPbCedyefVA_2((*(*(*p).module).g).config, (*x).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_493));
	}
	LA34_: ;
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T40_;
		if (!!((nilCheck == NIM_NIL))) goto LA38_;
		nimZeroMem((void*)T40_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T40_[0] = nilCheck;
		T40_[1] = genOfHelper_syG9ah9cBD4IpDknTLKkLglQ(p, dest, r, (*x).info);
		r = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_494), T40_, 2);
	}
	goto LA36_;
	LA38_: ;
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T42_;
		nimZeroMem((void*)T42_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T42_[0] = genOfHelper_syG9ah9cBD4IpDknTLKkLglQ(p, dest, r, (*x).info);
		r = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_499), T42_, 1);
	}
	LA36_: ;
	putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, x, r, a.storage);
}

N_LIB_PRIVATE N_NIMCALL(void, genOf_8mAL9ckajemzgfLPfeZVNoQ_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	genOf_uDNhebNf5Eggw4ZZsc4T9cg(p, (*n)._Ukind.S6.sons->data[((NI) 1)], (*(*n)._Ukind.S6.sons->data[((NI) 2)]).typ, d);
}

N_LIB_PRIVATE N_NIMCALL(void, rawGenNew_xJGU3j3G6xInb7v14wgw2Q)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* sizeExpr) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* sizeExpr_2;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* refType;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* bt;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* ti;
	tyArray_wqYjTJU9ab2ZgEFMaQc3vNA args;
	sizeExpr_2 = sizeExpr;
	typ = t_wtveaWyn2FSNgJ2h4kSWzwcgen(a);
	nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLoc_z9bd78in9czXhMZLT0QNB5Tw((&b), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), (*a).lode, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 4));
	refType = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(typ, IL64(36099165763184912));
	bt = lastSon_ab52xel9cFebv9am0xV04xXA(refType);
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T5_;
		if (!(sizeExpr_2 == 0)) goto LA3_;
		nimZeroMem((void*)T5_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T5_[0] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, bt);
		sizeExpr_2 = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_500), T5_, 1);
	}
	LA3_: ;
	ti = genTypeInfo_7P9bdUkiYYdBWl5P39cGpERw((*p).module, typ, (*(*a).lode).info);
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA f;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T16_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T17_;
		if (!!(((*bt).destructor == NIM_NIL))) goto LA8_;
		{
			NIM_BOOL T12_;
			T12_ = (NIM_BOOL)0;
			T12_ = ((*(*bt).destructor).typ == NIM_NIL);
			if (T12_) goto LA13_;
			T12_ = !(((*(*(*bt).destructor).typ).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 0)));
			LA13_: ;
			if (!T12_) goto LA14_;
			localError_NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*(*a).lode).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_501));
		}
		LA14_: ;
		nimZeroMem((void*)(&f), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		T16_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		T16_ = newSymNode_UWZXukHA5As9aCftRHbafBg((*bt).destructor);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, T16_, (&f));
		nimZeroMem((void*)T17_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T17_[0] = ti;
		T17_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg((&f));
		addf_ocEHZ9cujtqicXvDuJUm5pg(&(*(*p).module).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_502), T17_, 2);
	}
	LA8_: ;
	nimZeroMem((void*)args, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
	args[0] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, typ);
	args[1] = ti;
	args[2] = sizeExpr_2;
	{
		NIM_BOOL T20_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T33_;
		T20_ = (NIM_BOOL)0;
		T20_ = ((*a).storage == ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 4));
		if (!(T20_)) goto LA21_;
		T20_ = usesWriteBarrier_6aU0ZBrns2mWNHTDUbDERQcgen((*(*(*p).module).g).config);
		LA21_: ;
		if (!T20_) goto LA22_;
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T26_;
			NIM_BOOL T27_;
			tyArray_JiWwrsTRC6xqNlGcBthSVA T30_;
			T26_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T26_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen(a);
			T27_ = (NIM_BOOL)0;
			T27_ = canFormAcycle_IVXYI9cxSeivThgKCncHRnA_2(T26_);
			if (!T27_) goto LA28_;
			nimZeroMem((void*)T30_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T30_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
			linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_503), T30_, 1);
		}
		goto LA24_;
		LA28_: ;
		{
			tyArray_JiWwrsTRC6xqNlGcBthSVA T32_;
			nimZeroMem((void*)T32_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T32_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
			linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_504), T32_, 1);
		}
		LA24_: ;
		b.r = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_505), args, 3);
		nimZeroMem((void*)T33_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T33_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T33_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg((&b));
		linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_136), T33_, 2);
	}
	goto LA18_;
	LA22_: ;
	{
		b.r = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_506), args, 3);
		genAssignment_BtucsTdHw7orsXIL75hNVg_2(p, a, (&b), 0);
	}
	LA18_: ;
	genObjectInit_pua7psQb9a19bblGZEt9b0ZXA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), bt, a, NIM_FALSE);
}

N_LIB_PRIVATE N_NIMCALL(void, genNew_X9cSqNhqEboci9cdmwBMNcBw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 1)], (&a));
	{
		NI T3_;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA se;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T6_;
		T3_ = (NI)0;
		T3_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(e);
		if (!(T3_ == ((NI) 3))) goto LA4_;
		nimZeroMem((void*)(&se), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 2)], (&se));
		T6_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T6_ = rdLoc_xidyzuHqIciXbQyEOKahDg((&se));
		rawGenNew_xJGU3j3G6xInb7v14wgw2Q(p, (&a), T6_);
	}
	goto LA1_;
	LA4_: ;
	{
		rawGenNew_xJGU3j3G6xInb7v14wgw2Q(p, (&a), NIM_NIL);
	}
	LA1_: ;
	gcUsage_Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, e);
}

N_LIB_PRIVATE N_NIMCALL(void, genNewFinalize_X9cSqNhqEboci9cdmwBMNcBw_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA f;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* refType;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* bt;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* ti;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T1_;
	tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T2_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T3_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T4_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T5_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&f), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	refType = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	bt = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	ti = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	refType = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*e)._Ukind.S6.sons->data[((NI) 1)]).typ, IL64(36099165772622096));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 1)], (&a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 2)], (&f));
	initLoc_z9bd78in9czXhMZLT0QNB5Tw((&b), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), a.lode, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 4));
	ti = genTypeInfo_7P9bdUkiYYdBWl5P39cGpERw((*p).module, refType, (*e).info);
	nimZeroMem((void*)T1_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T1_[0] = ti;
	T1_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg((&f));
	addf_ocEHZ9cujtqicXvDuJUm5pg(&(*(*p).module).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_502), T1_, 2);
	nimZeroMem((void*)T2_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
	T2_[0] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, refType);
	T2_[1] = ti;
	T3_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T3_ = lastSon_ab52xel9cFebv9am0xV04xXA(refType);
	T4_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T4_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(T3_, IL64(36099165764233488));
	T2_[2] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, T4_);
	b.r = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_507), T2_, 3);
	genAssignment_BtucsTdHw7orsXIL75hNVg_2(p, (&a), (&b), 0);
	T5_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T5_ = lastSon_ab52xel9cFebv9am0xV04xXA(refType);
	bt = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(T5_, IL64(36099165764233488));
	genObjectInit_pua7psQb9a19bblGZEt9b0ZXA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), bt, (&a), NIM_FALSE);
	gcUsage_Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, e);
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getSeqPayloadType_Z9cu9cahl9aI46mWjj9byAlMYQ)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyArray_qtqsWM5aXmcpMIVmvq3kAA T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T2_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	nimZeroMem((void*)T1_, sizeof(tyArray_qtqsWM5aXmcpMIVmvq3kAA));
	hashType_qLlmI8qzKQaMa2k5LnfLZQ(t, 2, T1_);
	T2_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = getTypeForward_YqOY29b9aUiJ9bpv9bRbgamVlA_2(m, t, T1_);
	result = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T2_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_509));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genNewSeqAux_Ri3gLeBVOaUltgSIU2SrQQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* dest, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* length, NIM_BOOL lenIsZero) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* seqtype;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	tyArray_wqYjTJU9ab2ZgEFMaQc3vNA args;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA call;
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen(dest);
	seqtype = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(T1_, IL64(36099165772622096));
	nimZeroMem((void*)args, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
	args[0] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, seqtype);
	args[1] = genTypeInfo_7P9bdUkiYYdBWl5P39cGpERw((*p).module, seqtype, (*(*dest).lode).info);
	args[2] = length;
	nimZeroMem((void*)(&call), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLoc_z9bd78in9czXhMZLT0QNB5Tw((&call), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), (*dest).lode, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 4));
	{
		NIM_BOOL T4_;
		T4_ = (NIM_BOOL)0;
		T4_ = ((*dest).storage == ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 4));
		if (!(T4_)) goto LA5_;
		T4_ = usesWriteBarrier_6aU0ZBrns2mWNHTDUbDERQcgen((*(*(*p).module).g).config);
		LA5_: ;
		if (!T4_) goto LA6_;
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T10_;
			NIM_BOOL T11_;
			tyArray_JiWwrsTRC6xqNlGcBthSVA T14_;
			T10_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T10_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen(dest);
			T11_ = (NIM_BOOL)0;
			T11_ = canFormAcycle_IVXYI9cxSeivThgKCncHRnA_2(T10_);
			if (!T11_) goto LA12_;
			nimZeroMem((void*)T14_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T14_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
			linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_503), T14_, 1);
		}
		goto LA8_;
		LA12_: ;
		{
			tyArray_JiWwrsTRC6xqNlGcBthSVA T16_;
			nimZeroMem((void*)T16_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T16_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
			linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_504), T16_, 1);
		}
		LA8_: ;
		{
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T21_;
			if (!!(lenIsZero)) goto LA19_;
			call.r = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_510), args, 3);
			nimZeroMem((void*)T21_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T21_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
			T21_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg((&call));
			linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_136), T21_, 2);
		}
		LA19_: ;
	}
	goto LA2_;
	LA6_: ;
	{
		{
			if (!lenIsZero) goto LA25_;
			call.r = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_327));
		}
		goto LA23_;
		LA25_: ;
		{
			call.r = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_511), args, 3);
		}
		LA23_: ;
		genAssignment_BtucsTdHw7orsXIL75hNVg_2(p, dest, (&call), 0);
	}
	LA2_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genNewSeq_X9cSqNhqEboci9cdmwBMNcBw_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 1)], (&a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 2)], (&b));
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* seqtype;
		tyArray_f7nG5LD47BH5K9c6mASit3g T5_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T6_;
		if (!((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 5))) goto LA3_;
		seqtype = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*e)._Ukind.S6.sons->data[((NI) 1)]).typ, IL64(36099165772622096));
		nimZeroMem((void*)T5_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
		T5_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
		T5_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg((&b));
		T6_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T6_ = lastSon_ab52xel9cFebv9am0xV04xXA(seqtype);
		T5_[2] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, T6_);
		T5_[3] = getSeqPayloadType_Z9cu9cahl9aI46mWjj9byAlMYQ((*p).module, seqtype);
		linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_508), T5_, 4);
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL lenIsZero;
		NIM_BOOL T8_;
		NIM_BOOL T9_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T12_;
		T8_ = (NIM_BOOL)0;
		T9_ = (NIM_BOOL)0;
		T9_ = !((((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 26))&31U)))!=0));
		if (!(T9_)) goto LA10_;
		T9_ = ((*(*e)._Ukind.S6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 6));
		LA10_: ;
		T8_ = T9_;
		if (!(T8_)) goto LA11_;
		T8_ = ((*(*e)._Ukind.S6.sons->data[((NI) 2)])._Ukind.S1.intVal == IL64(0));
		LA11_: ;
		lenIsZero = T8_;
		T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = rdLoc_xidyzuHqIciXbQyEOKahDg((&b));
		genNewSeqAux_Ri3gLeBVOaUltgSIU2SrQQ(p, (&a), T12_, lenIsZero);
		gcUsage_Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, e);
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genNewSeqOfCap_BKdMcfvryaJLplX0oFPcAQ_11)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* seqtype;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T2_;
	seqtype = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*e).typ, IL64(36099165772622096));
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 1)], (&a));
	nimZeroMem((void*)T1_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
	T1_[0] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, seqtype);
	T1_[1] = genTypeInfo_7P9bdUkiYYdBWl5P39cGpERw((*p).module, seqtype, (*e).info);
	T1_[2] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
	T2_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_512), T1_, 3);
	putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T2_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	gcUsage_Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, e);
}

N_LIB_PRIVATE N_NIMCALL(void, genSomeCast_BKdMcfvryaJLplX0oFPcAQ_12)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* etyp;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 1)], (&a));
	etyp = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*e).typ, IL64(36099165764233488));
	{
		NIM_BOOL T3_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T7_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((IL64(281475111387136) &((NU64)1<<((NU)((*etyp).kind)&63U)))!=0);
		if (!(T3_)) goto LA4_;
		T3_ = !(((a.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 0))&15U)))!=0));
		LA4_: ;
		if (!T3_) goto LA5_;
		nimZeroMem((void*)T7_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T7_[0] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, (*e).typ);
		T7_[1] = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, (&a));
		T8_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T8_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_514), T7_, 2);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T8_, a.storage);
	}
	goto LA1_;
	LA5_: ;
	{
		NIM_BOOL T10_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T14_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T15_;
		T10_ = (NIM_BOOL)0;
		T10_ = ((*etyp).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25));
		if (!(T10_)) goto LA11_;
		T10_ = ((*etyp).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8));
		LA11_: ;
		if (!T10_) goto LA12_;
		nimZeroMem((void*)T14_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T14_[0] = getClosureType_8lX9asp9a40vZatlX85XSswQ((*p).module, etyp, ((tyEnum_TClosureTypeKind_cLHRMz1vnpSK0uePy2qbWw) 1));
		T14_[1] = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2((&a));
		T15_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T15_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_515), T14_, 2);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T15_, a.storage);
	}
	goto LA1_;
	LA12_: ;
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* srcTyp;
		srcTyp = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*e)._Ukind.S6.sons->data[((NI) 1)]).typ, IL64(36099165764233488));
		{
			NIM_BOOL T19_;
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T23_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T24_;
			T19_ = (NIM_BOOL)0;
			T19_ = ((69206016 &((NU64)1<<((NU)((*srcTyp).kind)&63U)))!=0);
			if (!(T19_)) goto LA20_;
			T19_ = ((IL64(35182224621574) &((NU64)1<<((NU)((*etyp).kind)&63U)))!=0);
			LA20_: ;
			if (!T19_) goto LA21_;
			nimZeroMem((void*)T23_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T23_[0] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, (*e).typ);
			T23_[1] = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2((&a));
			T24_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T24_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_516), T23_, 2);
			putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T24_, a.storage);
		}
		goto LA17_;
		LA21_: ;
		{
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T26_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T27_;
			nimZeroMem((void*)T26_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T26_[0] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, (*e).typ);
			T26_[1] = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2((&a));
			T27_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T27_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_515), T26_, 2);
			putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T27_, a.storage);
		}
		LA17_: ;
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, unaryExprChar_U2agx9aO3WToOTIqL9baXQog_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* frmt) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T2_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 1)], (&a));
	nimZeroMem((void*)T1_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T1_[0] = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2((&a));
	T2_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, frmt, T1_, 1);
	putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T2_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
}

N_LIB_PRIVATE N_NIMCALL(void, genOrd_BKdMcfvryaJLplX0oFPcAQ_13)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	unaryExprChar_U2agx9aO3WToOTIqL9baXQog_5(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_324));
}

N_LIB_PRIVATE N_NIMCALL(void, genArrayLen_TU9cJnldbmGa9bZDxaR6I4tg_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg op) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
	a = (*e)._Ukind.S6.sons->data[((NI) 1)];
	{
		if (!((*a).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64))) goto LA3_;
		a = (*a)._Ukind.S6.sons->data[((NI) 0)];
	}
	LA3_: ;
	typ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*a).typ, IL64(49750702142040336));
	switch ((*typ).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48):
	{
		{
			if (!(op == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 8))) goto LA8_;
			unaryExpr_U2agx9aO3WToOTIqL9baXQog(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_517));
		}
		goto LA6_;
		LA8_: ;
		{
			unaryExpr_U2agx9aO3WToOTIqL9baXQog(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_518));
		}
		LA6_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 29):
	{
		{
			if (!(op == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 8))) goto LA14_;
			unaryExpr_U2agx9aO3WToOTIqL9baXQog(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_519));
		}
		goto LA12_;
		LA14_: ;
		{
			unaryExpr_U2agx9aO3WToOTIqL9baXQog(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_520));
		}
		LA12_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_2;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* x;
		nimZeroMem((void*)(&a_2), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 1)], (&a_2));
		x = lenExpr_Xfvxpx3W1zkiCqENsur9ckg(p, (&a_2));
		{
			tyArray_JiWwrsTRC6xqNlGcBthSVA T22_;
			if (!(op == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 8))) goto LA20_;
			nimZeroMem((void*)T22_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T22_[0] = x;
			x = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_521), T22_, 1);
		}
		LA20_: ;
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, x, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_3;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* x_2;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T29_;
		nimZeroMem((void*)(&a_3), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		nimZeroMem((void*)(&tmp), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 1)], (&a_3));
		getIntTemp_SrOtkNNSJNR1CbG2n3nFcg(p, (&tmp));
		x_2 = lenExpr_Xfvxpx3W1zkiCqENsur9ckg(p, (&a_3));
		{
			tyArray_JiWwrsTRC6xqNlGcBthSVA T28_;
			if (!(op == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 8))) goto LA26_;
			nimZeroMem((void*)T28_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T28_[0] = x_2;
			x_2 = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_521), T28_, 1);
		}
		LA26_: ;
		nimZeroMem((void*)T29_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T29_[0] = tmp.r;
		T29_[1] = x_2;
		lineCg_zZ8N2PtAlqFZKCp7nvAnhw_2(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_136), T29_, 2);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, tmp.r, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
	{
		{
			NI64 T35_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T36_;
			if (!(op == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 8))) goto LA33_;
			T35_ = (NI64)0;
			T35_ = lastOrd_PcKlk9cRVtdVcuEFs9bZTdAQ((*(*(*p).module).g).config, typ, NIM_FALSE);
			T36_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T36_ = rope_KOisMGxcPhz6CcSmxgwEQQ(T35_);
			putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T36_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		goto LA31_;
		LA33_: ;
		{
			NI64 T38_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T39_;
			T38_ = (NI64)0;
			T38_ = lengthOrd_4cSIntenL9aBXY6LAFsvXdQ_2((*(*(*p).module).g).config, typ);
			T39_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T39_ = rope_KOisMGxcPhz6CcSmxgwEQQ(T38_);
			putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T39_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		LA31_: ;
	}
	break;
	default:
	{
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*e).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_522));
	}
	break;
	}
}

N_LIB_PRIVATE N_NIMCALL(void, unaryStmt_U2agx9aO3WToOTIqL9baXQog_6)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* frmt) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T5_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	{
		if (!!(((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA3_;
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*e).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_527));
	}
	LA3_: ;
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 1)], (&a));
	nimZeroMem((void*)T5_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T5_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
	lineCg_zZ8N2PtAlqFZKCp7nvAnhw_2(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), frmt, T5_, 1);
}

N_LIB_PRIVATE N_NIMCALL(void, genSetLengthStr_BKdMcfvryaJLplX0oFPcAQ_14)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	{
		if (!((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 5))) goto LA3_;
		binaryStmtAddr_U2agx9aO3WToOTIqL9baXQog_3(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_530));
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA call;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T10_;
		nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		nimZeroMem((void*)(&call), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		{
			if (!!(((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA8_;
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*e).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_531));
		}
		LA8_: ;
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 1)], (&a));
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 2)], (&b));
		initLoc_z9bd78in9czXhMZLT0QNB5Tw((&call), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 9), e, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 4));
		nimZeroMem((void*)T10_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T10_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
		T10_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg((&b));
		call.r = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_532), T10_, 2);
		genAssignment_BtucsTdHw7orsXIL75hNVg_2(p, (&a), (&call), 0);
		gcUsage_Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, e);
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genSetLengthSeq_BKdMcfvryaJLplX0oFPcAQ_15)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA call;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	NimStringDesc* setLenPattern;
	tyArray_f7nG5LD47BH5K9c6mASit3g T16_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T17_;
{	{
		if (!((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 5))) goto LA3_;
		genCall_BKdMcfvryaJLplX0oFPcAQ_7(p, e, d);
		goto BeforeRet_;
	}
	LA3_: ;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&call), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	x = (*e)._Ukind.S6.sons->data[((NI) 1)];
	{
		if (!((*x).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 63) || (*x).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64))) goto LA7_;
		x = (*x)._Ukind.S6.sons->data[((NI) 0)];
	}
	LA7_: ;
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, x, (&a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 2)], (&b));
	t = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*e)._Ukind.S6.sons->data[((NI) 1)]).typ, 8388608);
	{
		NIM_BOOL T11_;
		T11_ = (NIM_BOOL)0;
		T11_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T11_) goto LA12_;
		T11_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA12_: ;
		if (!!(T11_)) goto LA13_;
		setLenPattern = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_533));
	}
	goto LA9_;
	LA13_: ;
	{
		setLenPattern = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_534));
	}
	LA9_: ;
	initLoc_z9bd78in9czXhMZLT0QNB5Tw((&call), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 9), e, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 4));
	nimZeroMem((void*)T16_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
	T16_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
	T16_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg((&b));
	T16_[2] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, t);
	T17_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T17_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(t, IL64(36099165763184912));
	T16_[3] = genTypeInfo_7P9bdUkiYYdBWl5P39cGpERw((*p).module, T17_, (*e).info);
	call.r = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, setLenPattern, T16_, 4);
	genAssignment_BtucsTdHw7orsXIL75hNVg_2(p, (&a), (&call), 0);
	gcUsage_Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, e);
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, rdSetElemLoc_yZiAKtQMz62JmONYJ0rLzg)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* setType;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	result = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(a);
	setType = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(typ, IL64(36239903266220304));
	{
		NI64 T3_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T6_;
		NI64 T7_;
		T3_ = (NI64)0;
		T3_ = firstOrd_4cSIntenL9aBXY6LAFsvXdQ(conf, setType);
		if (!!((T3_ == IL64(0)))) goto LA4_;
		nimZeroMem((void*)T6_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T6_[0] = result;
		T7_ = (NI64)0;
		T7_ = firstOrd_4cSIntenL9aBXY6LAFsvXdQ(conf, setType);
		T6_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(T7_);
		result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_535), T6_, 2);
	}
	LA4_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, binaryStmtInExcl_U2agx9aO3WToOTIqL9baXQog_7)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* frmt) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T1_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T2_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 1)], (&a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 2)], (&b));
	nimZeroMem((void*)T1_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T1_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
	T2_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T2_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&a));
	T1_[1] = rdSetElemLoc_yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, (&b), T2_);
	lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), frmt, T1_, 2);
}

N_LIB_PRIVATE N_NIMCALL(void, binaryExprChar_U2agx9aO3WToOTIqL9baXQog_8)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* frmt) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T2_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 1)], (&a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 2)], (&b));
	nimZeroMem((void*)T1_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T1_[0] = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2((&a));
	T1_[1] = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2((&b));
	T2_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, frmt, T1_, 2);
	putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T2_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, fewCmps_vBGSIpCyq29bEZNYsVP3V6w)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* s) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		if (!!(((*s).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 39)))) goto LA3_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		NIM_BOOL T7_;
		NI64 T8_;
		T7_ = (NIM_BOOL)0;
		T8_ = (NI64)0;
		T8_ = getSize_vCG1GF2Iu043oALVyuJfOw(conf, (*s).typ);
		T7_ = (T8_ <= ((NI64) ((*conf).target.intSize)));
		if (!(T7_)) goto LA9_;
		T7_ = (((*s).flags &(1U<<((NU)(((tyEnum_TNodeFlag_jyh9acXHkhZANSSvPIY7ZLg) 4))&31U)))!=0);
		LA9_: ;
		if (!T7_) goto LA10_;
		result = NIM_FALSE;
	}
	goto LA5_;
	LA10_: ;
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T13_;
		T13_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T13_ = elemType_BFFuB9cFDZ89c6QWZqEFAtdA_2((*s).typ);
		if (!((IL64(62277025792) &((NU64)1<<((NU)((*T13_).kind)&63U)))!=0)) goto LA14_;
		result = NIM_TRUE;
	}
	goto LA5_;
	LA14_: ;
	{
		NI T17_;
		T17_ = (NI)0;
		T17_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(s);
		result = (T17_ <= ((NI) 8));
	}
	LA5_: ;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, binaryExprIn_Q04NbRdson6NZhd9b3hsyXQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* b, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* frmt) {
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T1_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T2_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T3_;
	nimZeroMem((void*)T1_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T1_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&(*a)));
	T2_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T2_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&(*a)));
	T1_[1] = rdSetElemLoc_yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, (&(*b)), T2_);
	T3_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T3_ = percent__9bvKdnhoYI2ta9agQNm3orMA(frmt, T1_, 2);
	putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T3_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
}

N_LIB_PRIVATE N_NIMCALL(void, genInExprAux_9cclvr8sbqtJj8irRbQQpqQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* b, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	NI64 T2_;
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*e)._Ukind.S6.sons->data[((NI) 1)]).typ, IL64(36239903259928848));
	T2_ = (NI64)0;
	T2_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, T1_);
	switch (((NI) (T2_))) {
	case ((NI) 1):
	{
		binaryExprIn_Q04NbRdson6NZhd9b3hsyXQ(p, e, a, b, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_553));
	}
	break;
	case ((NI) 2):
	{
		binaryExprIn_Q04NbRdson6NZhd9b3hsyXQ(p, e, a, b, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_554));
	}
	break;
	case ((NI) 4):
	{
		binaryExprIn_Q04NbRdson6NZhd9b3hsyXQ(p, e, a, b, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_555));
	}
	break;
	case ((NI) 8):
	{
		binaryExprIn_Q04NbRdson6NZhd9b3hsyXQ(p, e, a, b, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_556));
	}
	break;
	default:
	{
		binaryExprIn_Q04NbRdson6NZhd9b3hsyXQ(p, e, a, b, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_557));
	}
	break;
	}
}

N_LIB_PRIVATE N_NIMCALL(void, genInOp_BKdMcfvryaJLplX0oFPcAQ_16)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA x;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA y;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&x), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&y), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	{
		NIM_BOOL T3_;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ea;
		NI length;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*e)._Ukind.S6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 39));
		if (!(T3_)) goto LA4_;
		T3_ = fewCmps_vBGSIpCyq29bEZNYsVP3V6w((*(*(*p).module).g).config, (*e)._Ukind.S6.sons->data[((NI) 1)]);
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			if (!((*(*e)._Ukind.S6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 70) || (*(*e)._Ukind.S6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 69))) goto LA9_;
			ea = (*(*e)._Ukind.S6.sons->data[((NI) 2)])._Ukind.S6.sons->data[((NI) 0)];
		}
		goto LA7_;
		LA9_: ;
		{
			ea = (*e)._Ukind.S6.sons->data[((NI) 2)];
		}
		LA7_: ;
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, ea, (&a));
		initLoc_z9bd78in9czXhMZLT0QNB5Tw((&b), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), e, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
		length = sonsLen_qPWPHw7WgJeEVYUdcaRIig((*e)._Ukind.S6.sons->data[((NI) 1)]);
		{
			if (!(((NI) 0) < length)) goto LA14_;
			b.r = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_130));
			{
				NI i;
				NI colontmp_;
				NI res;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = (NI)(length - ((NI) 1));
				res = ((NI) 0);
				{
					while (1) {
						tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
						if (!(res <= colontmp_)) goto LA18;
						i = res;
						it = (*(*e)._Ukind.S6.sons->data[((NI) 1)])._Ukind.S6.sons->data[i];
						{
							tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T23_;
							if (!((*it).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA21_;
							initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*it)._Ukind.S6.sons->data[((NI) 0)], (&x));
							initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*it)._Ukind.S6.sons->data[((NI) 1)], (&y));
							nimZeroMem((void*)T23_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
							T23_[0] = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2((&a));
							T23_[1] = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2((&x));
							T23_[2] = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2((&y));
							addf_ocEHZ9cujtqicXvDuJUm5pg(&b.r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_550), T23_, 3);
						}
						goto LA19_;
						LA21_: ;
						{
							tyArray_mrugoXXRZUEeG9bEXo9auBKw T25_;
							initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, it, (&x));
							nimZeroMem((void*)T25_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
							T25_[0] = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2((&a));
							T25_[1] = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2((&x));
							addf_ocEHZ9cujtqicXvDuJUm5pg(&b.r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_551), T25_, 2);
						}
						LA19_: ;
						{
							if (!(i < (NI)(length - ((NI) 1)))) goto LA28_;
							add_yG4AKzsBRS1W4MANDlXQeg(&b.r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_552));
						}
						LA28_: ;
						res += ((NI) 1);
					} LA18: ;
				}
			}
			add_yG4AKzsBRS1W4MANDlXQeg(&b.r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_129));
		}
		goto LA12_;
		LA14_: ;
		{
			b.r = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
		}
		LA12_: ;
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, b.r, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	goto LA1_;
	LA5_: ;
	{
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 1)], (&a));
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 2)], (&b));
		genInExprAux_9cclvr8sbqtJj8irRbQQpqQ(p, e, (&a), (&b), d);
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genSetOp_TU9cJnldbmGa9bZDxaR6I4tg_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg op) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA i;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* setType;
	NI size;
	NI64 T1_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&i), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	setType = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*e)._Ukind.S6.sons->data[((NI) 1)]).typ, IL64(36239903259928848));
	T1_ = (NI64)0;
	T1_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, setType);
	size = ((NI) (T1_));
	switch (size) {
	case ((NI) 1):
	case ((NI) 2):
	case ((NI) 4):
	case ((NI) 8):
	{
		switch (op) {
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 41):
		{
			NimStringDesc* ts;
			NimStringDesc* T4_;
			NimStringDesc* T5_;
			NimStringDesc* T6_;
			T4_ = (NimStringDesc*)0;
			T5_ = (NimStringDesc*)0;
			T5_ = nimIntToStr((NI)(size * ((NI) 8)));
			T4_ = rawNewString((T5_ ? T5_->Sup.len : 0) + 2);
appendString(T4_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_37));
appendString(T4_, T5_);
			ts = T4_;
			T6_ = (NimStringDesc*)0;
			T6_ = rawNewString((ts ? ts->Sup.len : 0) + (ts ? ts->Sup.len : 0) + 35);
appendString(T6_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_536));
appendString(T6_, ts);
appendString(T6_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_537));
appendString(T6_, ts);
appendString(T6_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_538));
			binaryStmtInExcl_U2agx9aO3WToOTIqL9baXQog_7(p, e, d, T6_);
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 42):
		{
			NimStringDesc* ts_2;
			NimStringDesc* T8_;
			NimStringDesc* T9_;
			NimStringDesc* T10_;
			T8_ = (NimStringDesc*)0;
			T9_ = (NimStringDesc*)0;
			T9_ = nimIntToStr((NI)(size * ((NI) 8)));
			T8_ = rawNewString((T9_ ? T9_->Sup.len : 0) + 2);
appendString(T8_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_37));
appendString(T8_, T9_);
			ts_2 = T8_;
			T10_ = (NimStringDesc*)0;
			T10_ = rawNewString((ts_2 ? ts_2->Sup.len : 0) + (ts_2 ? ts_2->Sup.len : 0) + 42);
appendString(T10_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_539));
appendString(T10_, ts_2);
appendString(T10_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_540));
appendString(T10_, ts_2);
appendString(T10_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_541));
			binaryStmtInExcl_U2agx9aO3WToOTIqL9baXQog_7(p, e, d, T10_);
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 43):
		{
			{
				if (!(size <= ((NI) 4))) goto LA14_;
				unaryExprChar_U2agx9aO3WToOTIqL9baXQog_5(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_542));
			}
			goto LA12_;
			LA14_: ;
			{
				unaryExprChar_U2agx9aO3WToOTIqL9baXQog_5(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_543));
			}
			LA12_: ;
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 136):
		{
			binaryExprChar_U2agx9aO3WToOTIqL9baXQog_8(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_544));
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 135):
		{
			binaryExprChar_U2agx9aO3WToOTIqL9baXQog_8(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_545));
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 134):
		{
			binaryExpr_U2agx9aO3WToOTIqL9baXQog_4(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_394));
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 137):
		{
			binaryExpr_U2agx9aO3WToOTIqL9baXQog_4(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_546));
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 138):
		{
			binaryExpr_U2agx9aO3WToOTIqL9baXQog_4(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_547));
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 139):
		{
			binaryExpr_U2agx9aO3WToOTIqL9baXQog_4(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_548));
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 140):
		{
			binaryExpr_U2agx9aO3WToOTIqL9baXQog_4(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_549));
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 151):
		{
			genInOp_BKdMcfvryaJLplX0oFPcAQ_16(p, e, d);
		}
		break;
		default:
		{
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*e).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_558));
		}
		break;
		}
	}
	break;
	default:
	{
		switch (op) {
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 41):
		{
			binaryStmtInExcl_U2agx9aO3WToOTIqL9baXQog_7(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_559));
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 42):
		{
			binaryStmtInExcl_U2agx9aO3WToOTIqL9baXQog_7(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_560));
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 43):
		{
			NimStringDesc* T30_;
			NimStringDesc* T31_;
			T30_ = (NimStringDesc*)0;
			T31_ = (NimStringDesc*)0;
			T31_ = nimIntToStr(size);
			T30_ = rawNewString((T31_ ? T31_->Sup.len : 0) + 14);
appendString(T30_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_561));
appendString(T30_, T31_);
appendChar(T30_, 41);
			unaryExprChar_U2agx9aO3WToOTIqL9baXQog_5(p, e, d, T30_);
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 136):
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 135):
		{
			tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q T33_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T34_;
			tyArray_duFhZXIIlrbrM62cWjNekg T41_;
			T33_ = unknownLineInfo_F9bjxJM4tdxwMljo3mi9bY8w();
			T34_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T34_ = getSysType_VcTNc9cK1Ftuh0MFwOC9c0Tg((*(*(*p).module).g).graph, T33_, ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31));
			getTemp_VjOFVqypINqQv5C3ECnxbw(p, T34_, (&i), NIM_FALSE);
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 1)], (&a));
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 2)], (&b));
			{
				tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q T39_;
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T40_;
				if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA37_;
				T39_ = unknownLineInfo_F9bjxJM4tdxwMljo3mi9bY8w();
				T40_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T40_ = getSysType_VcTNc9cK1Ftuh0MFwOC9c0Tg((*(*(*p).module).g).graph, T39_, ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 1));
				getTemp_VjOFVqypINqQv5C3ECnxbw(p, T40_, d, NIM_FALSE);
			}
			LA37_: ;
			nimZeroMem((void*)T41_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
			T41_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&i));
			T41_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (size)));
			T41_[2] = rdLoc_xidyzuHqIciXbQyEOKahDg((&(*d)));
			T41_[3] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
			T41_[4] = rdLoc_xidyzuHqIciXbQyEOKahDg((&b));
			linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), lookupOpr_w7WuexLq9cuXtAtqil9csnVQ[(op)- 135], T41_, 5);
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 134):
		{
			NimStringDesc* T43_;
			NimStringDesc* T44_;
			T43_ = (NimStringDesc*)0;
			T44_ = (NimStringDesc*)0;
			T44_ = nimIntToStr(size);
			T43_ = rawNewString((T44_ ? T44_->Sup.len : 0) + 25);
appendString(T43_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_567));
appendString(T43_, T44_);
appendString(T43_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_568));
			binaryExprChar_U2agx9aO3WToOTIqL9baXQog_8(p, e, d, T43_);
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 137):
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 138):
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 139):
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 140):
		{
			tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q T46_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T47_;
			tyArray_dNfZYyzVYdaWfURv4pxodA T53_;
			T46_ = unknownLineInfo_F9bjxJM4tdxwMljo3mi9bY8w();
			T47_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T47_ = getSysType_VcTNc9cK1Ftuh0MFwOC9c0Tg((*(*(*p).module).g).graph, T46_, ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31));
			getTemp_VjOFVqypINqQv5C3ECnxbw(p, T47_, (&i), NIM_FALSE);
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 1)], (&a));
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 2)], (&b));
			{
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T52_;
				if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA50_;
				T52_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T52_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&a));
				getTemp_VjOFVqypINqQv5C3ECnxbw(p, T52_, d, NIM_FALSE);
			}
			LA50_: ;
			nimZeroMem((void*)T53_, sizeof(tyArray_dNfZYyzVYdaWfURv4pxodA));
			T53_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&i));
			T53_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (size)));
			T53_[2] = rdLoc_xidyzuHqIciXbQyEOKahDg((&(*d)));
			T53_[3] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
			T53_[4] = rdLoc_xidyzuHqIciXbQyEOKahDg((&b));
			T53_[5] = rope_yShmEg9cffWxI7s5XzEKBow(lookupOpr_w7WuexLq9cuXtAtqil9csnVQ[(op)- 135]);
			lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_569), T53_, 6);
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 151):
		{
			genInOp_BKdMcfvryaJLplX0oFPcAQ_16(p, e, d);
		}
		break;
		default:
		{
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*e).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_570));
		}
		break;
		}
	}
	break;
	}
}

N_LIB_PRIVATE N_NIMCALL(void, genReset_UtJx89cn0a8CNSWWmaj6raA_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T1_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T2_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T3_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n)._Ukind.S6.sons->data[((NI) 1)], (&a));
	nimZeroMem((void*)T1_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T1_[0] = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, (&a));
	T2_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T2_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&a));
	T3_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T3_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(T2_, 8388608);
	T1_[1] = genTypeInfo_7P9bdUkiYYdBWl5P39cGpERw((*p).module, T3_, (*n).info);
	linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_249), T1_, 2);
}

N_LIB_PRIVATE N_NIMCALL(void, genEcho_UtJx89cn0a8CNSWWmaj6raA_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	{
		NimStringDesc* T5_;
		if (!!(((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 41)))) goto LA3_;
		T5_ = (NimStringDesc*)0;
		T5_ = dollar__E5ya0OOlyISUCw4ENFn9bLA(TM_MQdRN7fpbG7rPm4JpVVAhA_571);
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*(*p).module).g).config, T5_);
	}
	LA3_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* args;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T22_;
		if (!((*(*(*(*p).module).g).config).target.targetOS == ((tyEnum_TSystemOS_s7Mlr1t66SUqP6BKJMXLaQ) 24))) goto LA8_;
		args = NIM_NIL;
		nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		{
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
			tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ* colontmp_;
			NI i;
			NI L;
			NI T11_;
			it = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
			colontmp_ = (tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ*)0;
			colontmp_ = (*n)._Ukind.S6.sons;
			i = ((NI) 0);
			T11_ = (colontmp_ ? colontmp_->Sup.len : 0);
			L = T11_;
			{
				while (1) {
					if (!(i < L)) goto LA13;
					it = colontmp_->data[i];
					{
						tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T16_;
						T16_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
						T16_ = skipConv_6rsSLwtlU9c53a6w69be5JlQ(it);
						if (!((*T16_).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA17_;
						add_yG4AKzsBRS1W4MANDlXQeg(&args, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_572));
					}
					goto LA14_;
					LA17_: ;
					{
						tyArray_JiWwrsTRC6xqNlGcBthSVA T20_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T21_;
						initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, it, (&a));
						nimZeroMem((void*)T20_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
						T20_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
						T21_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T21_ = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_573), T20_, 1);
						add_iMTw0CDaruwETLGb9bhpBLg(&args, T21_);
					}
					LA14_: ;
					i += ((NI) 1);
				} LA13: ;
			}
		}
		includeHeader_uTF5360OavCefWH39cfa58w((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_574));
		includeHeader_uTF5360OavCefWH39cfa58w((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_575));
		nimZeroMem((void*)T22_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T22_[0] = args;
		linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_576), T22_, 1);
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T26_;
			tyArray_JiWwrsTRC6xqNlGcBthSVA T29_;
			NI T30_;
			T26_ = (NI)0;
			T26_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
			if (!(T26_ == ((NI) 0))) goto LA27_;
			nimZeroMem((void*)T29_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T30_ = (NI)0;
			T30_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
			T29_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (T30_)));
			linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_577), T29_, 1);
		}
		goto LA24_;
		LA27_: ;
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_2;
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T32_;
			NI T33_;
			nimZeroMem((void*)(&a_2), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, n, (&a_2));
			nimZeroMem((void*)T32_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T32_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a_2));
			T33_ = (NI)0;
			T33_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
			T32_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (T33_)));
			linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_578), T32_, 2);
		}
		LA24_: ;
	}
	LA6_: ;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lhsDoesAlias_edSekmjUCfSNOPSuXdUClg)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* y;
		y = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen_CdME9baJhvveuPEDZE9bXoxArenderer(b);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA4;
					i = i_2;
					y = (*b)._Ukind.S6.sons->data[i];
					{
						tyEnum_TAnalysisResult_p9a9bcrXoRmLT4eUuwrDq9b4w T7_;
						T7_ = (tyEnum_TAnalysisResult_p9a9bcrXoRmLT4eUuwrDq9b4w)0;
						T7_ = isPartOf_1otDDZAmvFsmbqPyFytXFg(a, y);
						if (!!((T7_ == ((tyEnum_TAnalysisResult_p9a9bcrXoRmLT4eUuwrDq9b4w) 0)))) goto LA8_;
						result = NIM_TRUE;
						goto BeforeRet_;
					}
					LA8_: ;
					i_2 += ((NI) 1);
				} LA4: ;
			}
		}
	}
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genSeqConstr_8mAL9ckajemzgfLPfeZVNoQ_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA arr;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp;
	NIM_BOOL doesAlias;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* dest;
	NI T13_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
	NIM_BOOL T15_;
	NI T17_;
	nimZeroMem((void*)(&arr), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&tmp), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	doesAlias = lhsDoesAlias_edSekmjUCfSNOPSuXdUClg((*d).lode, n);
	{
		if (!doesAlias) goto LA3_;
		dest = (&tmp);
	}
	goto LA1_;
	LA3_: ;
	{
		dest = d;
	}
	LA1_: ;
	{
		if (!doesAlias) goto LA8_;
		getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*n).typ, (&tmp), NIM_FALSE);
	}
	goto LA6_;
	LA8_: ;
	{
		if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA11_;
		getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*n).typ, d, NIM_FALSE);
	}
	goto LA6_;
	LA11_: ;
	LA6_: ;
	T13_ = (NI)0;
	T13_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
	T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T14_ = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg(((NI64) (T13_)));
	T15_ = (NIM_BOOL)0;
	T15_ = !((((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 26))&31U)))!=0));
	if (!(T15_)) goto LA16_;
	T17_ = (NI)0;
	T17_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
	T15_ = (T17_ == ((NI) 0));
	LA16_: ;
	genNewSeqAux_Ri3gLeBVOaUltgSIU2SrQQ(p, (&(*dest)), T14_, T15_);
	{
		NI i;
		NI colontmp_;
		NI T19_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T19_ = (NI)0;
		T19_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
		colontmp_ = (NI)(T19_ - ((NI) 1));
		res = ((NI) 0);
		{
			while (1) {
				tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T22_;
				if (!(res <= colontmp_)) goto LA21;
				i = res;
				initLoc_z9bd78in9czXhMZLT0QNB5Tw((&arr), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), (*n)._Ukind.S6.sons->data[i], ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 4));
				nimZeroMem((void*)T22_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
				T22_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&(*dest)));
				T22_[1] = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg(((NI64) (i)));
				T22_[2] = dataField_3AsTOpq9crZUYBL9aD1lXBng_2(p);
				arr.r = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_216), T22_, 3);
				arr.storage = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 4);
				expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*n)._Ukind.S6.sons->data[i], (&arr));
				res += ((NI) 1);
			} LA21: ;
		}
	}
	gcUsage_Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, n);
	{
		if (!doesAlias) goto LA25_;
		{
			if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA29_;
			genericAssign((void*)(&(*d)), (void*)(&tmp), (&NTI_EtHNvCB0bgfu9bFjzx9cb6aA_));
		}
		goto LA27_;
		LA29_: ;
		{
			genAssignment_BtucsTdHw7orsXIL75hNVg_2(p, (&(*d)), (&tmp), 0);
		}
		LA27_: ;
	}
	LA25_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genArrToSeq_8mAL9ckajemzgfLPfeZVNoQ_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA elem;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA arr;
	NI L;
	NI64 T9_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T10_;
	NIM_BOOL T11_;
{	nimZeroMem((void*)(&elem), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&arr), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	{
		if (!((*(*n)._Ukind.S6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 41))) goto LA3_;
		asgnRefNoCycle((void**) (&(*(*n)._Ukind.S6.sons->data[((NI) 1)]).typ), (*n).typ);
		genSeqConstr_8mAL9ckajemzgfLPfeZVNoQ_4(p, (*n)._Ukind.S6.sons->data[((NI) 1)], d);
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA7_;
		getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*n).typ, d, NIM_FALSE);
	}
	LA7_: ;
	T9_ = (NI64)0;
	T9_ = lengthOrd_4cSIntenL9aBXY6LAFsvXdQ_2((*(*(*p).module).g).config, (*(*n)._Ukind.S6.sons->data[((NI) 1)]).typ);
	L = ((NI) (T9_));
	T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T10_ = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg(((NI64) (L)));
	T11_ = (NIM_BOOL)0;
	T11_ = !((((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 26))&31U)))!=0));
	if (!(T11_)) goto LA12_;
	T11_ = (L == ((NI) 0));
	LA12_: ;
	genNewSeqAux_Ri3gLeBVOaUltgSIU2SrQQ(p, (&(*d)), T10_, T11_);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n)._Ukind.S6.sons->data[((NI) 1)], (&a));
	{
		if (!(L < ((NI) 10))) goto LA15_;
		{
			NI i;
			NI colontmp_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = (NI)(L - ((NI) 1));
			res = ((NI) 0);
			{
				while (1) {
					tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T20_;
					tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T21_;
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T22_;
					tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T23_;
					tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T24_;
					tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T25_;
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T26_;
					tyArray_mrugoXXRZUEeG9bEXo9auBKw T27_;
					if (!(res <= colontmp_)) goto LA19;
					i = res;
					T20_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T20_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*n).typ, IL64(36099165763184912));
					T21_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T21_ = elemType_BFFuB9cFDZ89c6QWZqEFAtdA_2(T20_);
					T22_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
					T22_ = lodeTyp_8thmRpt8YNsc9cFM33hAlHw(T21_);
					initLoc_z9bd78in9czXhMZLT0QNB5Tw((&elem), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), T22_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 4));
					nimZeroMem((void*)T23_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
					T23_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&(*d)));
					T23_[1] = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg(((NI64) (i)));
					T23_[2] = dataField_3AsTOpq9crZUYBL9aD1lXBng_2(p);
					elem.r = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_216), T23_, 3);
					elem.storage = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 4);
					T24_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T24_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*n)._Ukind.S6.sons->data[((NI) 1)]).typ, IL64(36099165763184912));
					T25_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T25_ = elemType_BFFuB9cFDZ89c6QWZqEFAtdA_2(T24_);
					T26_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
					T26_ = lodeTyp_8thmRpt8YNsc9cFM33hAlHw(T25_);
					initLoc_z9bd78in9czXhMZLT0QNB5Tw((&arr), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), T26_, a.storage);
					nimZeroMem((void*)T27_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
					T27_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
					T27_[1] = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg(((NI64) (i)));
					arr.r = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_157), T27_, 2);
					genAssignment_BtucsTdHw7orsXIL75hNVg_2(p, (&elem), (&arr), 3);
					res += ((NI) 1);
				} LA19: ;
			}
		}
	}
	goto LA13_;
	LA15_: ;
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA i_2;
		tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q T29_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T30_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* oldCode;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T31_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T32_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T33_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T34_;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T35_;
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T36_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T37_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T38_;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T39_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T40_;
		tyArray_qTjAvTvKF9anytN1At69aJMQ T41_;
		nimZeroMem((void*)(&i_2), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		T29_ = unknownLineInfo_F9bjxJM4tdxwMljo3mi9bY8w();
		T30_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T30_ = getSysType_VcTNc9cK1Ftuh0MFwOC9c0Tg((*(*(*p).module).g).graph, T29_, ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31));
		getTemp_VjOFVqypINqQv5C3ECnxbw(p, T30_, (&i_2), NIM_FALSE);
		T31_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T31_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		oldCode = (*T31_);
		nimZeroMem((void*)T32_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T32_[0] = i_2.r;
		T32_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (L)));
		linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_179), T32_, 2);
		T33_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T33_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*n).typ, IL64(36099165763184912));
		T34_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T34_ = elemType_BFFuB9cFDZ89c6QWZqEFAtdA_2(T33_);
		T35_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		T35_ = lodeTyp_8thmRpt8YNsc9cFM33hAlHw(T34_);
		initLoc_z9bd78in9czXhMZLT0QNB5Tw((&elem), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), T35_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 4));
		nimZeroMem((void*)T36_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T36_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&(*d)));
		T36_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg((&i_2));
		T36_[2] = dataField_3AsTOpq9crZUYBL9aD1lXBng_2(p);
		elem.r = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_216), T36_, 3);
		elem.storage = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 4);
		T37_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T37_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*n)._Ukind.S6.sons->data[((NI) 1)]).typ, IL64(36099165763184912));
		T38_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T38_ = elemType_BFFuB9cFDZ89c6QWZqEFAtdA_2(T37_);
		T39_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		T39_ = lodeTyp_8thmRpt8YNsc9cFM33hAlHw(T38_);
		initLoc_z9bd78in9czXhMZLT0QNB5Tw((&arr), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), T39_, a.storage);
		nimZeroMem((void*)T40_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T40_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
		T40_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg((&i_2));
		arr.r = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_157), T40_, 2);
		genAssignment_BtucsTdHw7orsXIL75hNVg_2(p, (&elem), (&arr), 3);
		nimZeroMem((void*)T41_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_184), T41_, 0);
	}
	LA13_: ;
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genDeepCopy_jdslQ8TsNpkTt8SvBLJjEA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* dest, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* src) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ty;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen(dest);
	ty = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(T1_, IL64(1189020670379469072));
	switch ((*ty).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
	{
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T3_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T10_;
		nimZeroMem((void*)T3_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T3_[0] = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, dest);
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T8_;
			if (!((*src).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6))) goto LA6_;
			nimZeroMem((void*)(&tmp), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			T8_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T8_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen(src);
			getTemp_VjOFVqypINqQv5C3ECnxbw(p, T8_, (&tmp), NIM_FALSE);
			genAssignment_BtucsTdHw7orsXIL75hNVg_2(p, (&tmp), src, 0);
			T3_[1] = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, (&tmp));
		}
		goto LA4_;
		LA6_: ;
		{
			T3_[1] = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, src);
		}
		LA4_: ;
		T10_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T10_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen(dest);
		T3_[2] = genTypeInfo_7P9bdUkiYYdBWl5P39cGpERw((*p).module, T10_, (*(*dest).lode).info);
		linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_580), T3_, 3);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
	{
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T12_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T13_;
		nimZeroMem((void*)T12_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T12_[0] = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, dest);
		T12_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
		T13_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T13_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen(dest);
		T12_[2] = genTypeInfo_7P9bdUkiYYdBWl5P39cGpERw((*p).module, T13_, (*(*dest).lode).info);
		linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_581), T12_, 3);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48):
	{
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T15_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T22_;
		nimZeroMem((void*)T15_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T15_[0] = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, dest);
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp_2;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T20_;
			if (!((*src).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6))) goto LA18_;
			nimZeroMem((void*)(&tmp_2), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			T20_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T20_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen(src);
			getTemp_VjOFVqypINqQv5C3ECnxbw(p, T20_, (&tmp_2), NIM_FALSE);
			genAssignment_BtucsTdHw7orsXIL75hNVg_2(p, (&tmp_2), src, 0);
			T15_[1] = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, (&tmp_2));
		}
		goto LA16_;
		LA18_: ;
		{
			T15_[1] = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, src);
		}
		LA16_: ;
		T22_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T22_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen(dest);
		T15_[2] = genTypeInfo_7P9bdUkiYYdBWl5P39cGpERw((*p).module, T22_, (*(*dest).lode).info);
		linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_582), T15_, 3);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 19):
	{
		{
			tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w T26_;
			tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T29_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T30_;
			NI64 T31_;
			T26_ = (tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w)0;
			T26_ = mapType_K9aceyVl15zb9aYN9b6YJ8TnA((*(*(*p).module).g).config, ty);
			if (!(T26_ == ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 17))) goto LA27_;
			nimZeroMem((void*)T29_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
			T29_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
			T29_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
			T30_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T30_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen(dest);
			T31_ = (NI64)0;
			T31_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, T30_);
			T29_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(T31_);
			linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_306), T29_, 3);
		}
		goto LA24_;
		LA27_: ;
		{
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T33_;
			nimZeroMem((void*)T33_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T33_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
			T33_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
			linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_136), T33_, 2);
		}
		LA24_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 26):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 1):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 14):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 29):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 20):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 47):
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T35_;
		nimZeroMem((void*)T35_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T35_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
		T35_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
		linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_136), T35_, 2);
	}
	break;
	default:
	{
		NimStringDesc* T37_;
		T37_ = (NimStringDesc*)0;
		T37_ = rawNewString((reprEnum((NI)(*ty).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*ty).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 13);
appendString(T37_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_583));
appendString(T37_, reprEnum((NI)(*ty).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*(*p).module).g).config, T37_);
	}
	break;
	}
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, skipAddr_1TL9cg0ds6vTtfhbmuTNGBA_2)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 63) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64))) goto LA3_;
		result = (*n)._Ukind.S6.sons->data[((NI) 0)];
	}
	goto LA1_;
	LA3_: ;
	{
		result = n;
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genWasMoved_UtJx89cn0a8CNSWWmaj6raA_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T1_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	T1_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = skipAddr_1TL9cg0ds6vTtfhbmuTNGBA_2((*n)._Ukind.S6.sons->data[((NI) 1)]);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, T1_, (&a));
	resetLoc_B9bNAYVEwjQtkUkvoOVhV2Q(p, (&a));
}

N_LIB_PRIVATE N_NIMCALL(void, genMove_8mAL9ckajemzgfLPfeZVNoQ_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T5_;
	{
		if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA3_;
		getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*n).typ, d, NIM_FALSE);
	}
	LA3_: ;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	T5_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	T5_ = skipAddr_1TL9cg0ds6vTtfhbmuTNGBA_2((*n)._Ukind.S6.sons->data[((NI) 1)]);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, T5_, (&a));
	genAssignment_BtucsTdHw7orsXIL75hNVg_2(p, (&(*d)), (&a), 0);
	resetLoc_B9bNAYVEwjQtkUkvoOVhV2Q(p, (&a));
}

N_LIB_PRIVATE N_NIMCALL(void, genMagicExpr_TU9cJnldbmGa9bZDxaR6I4tg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg op) {
	switch (op) {
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 130):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 129):
	{
		genAndOr_yX5yxw6c9agMF4ZvIHKAZvg(p, e, d, op);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 102) ... ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 120):
	{
		unaryArith_TU9cJnldbmGa9bZDxaR6I4tg_2(p, e, d, op);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 99) ... ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 101):
	{
		unaryArithOverflow_yX5yxw6c9agMF4ZvIHKAZvg_2(p, e, d, op);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 54) ... ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 57):
	{
		binaryFloatArith_yX5yxw6c9agMF4ZvIHKAZvg_3(p, e, d, op);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 58) ... ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 96):
	{
		binaryArith_TU9cJnldbmGa9bZDxaR6I4tg_3(p, e, d, op);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 98):
	{
		genEqProc_BKdMcfvryaJLplX0oFPcAQ(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 47) ... ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 53):
	{
		binaryArithOverflow_yX5yxw6c9agMF4ZvIHKAZvg_4(p, e, d, op);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 152):
	{
		genRepr_BKdMcfvryaJLplX0oFPcAQ_2(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 279):
	{
		genGetTypeInfo_BKdMcfvryaJLplX0oFPcAQ_3(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 159):
	{
		genSwap_BKdMcfvryaJLplX0oFPcAQ_4(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 27):
	{
		{
			if (!!((((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 5))&31U)))!=0))) goto LA14_;
			unaryExpr_U2agx9aO3WToOTIqL9baXQog(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_438));
		}
		goto LA12_;
		LA14_: ;
		{
			unaryExpr_U2agx9aO3WToOTIqL9baXQog(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_439));
		}
		LA12_: ;
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 28):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 29):
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* underlying;
		underlying = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*e)._Ukind.S6.sons->data[((NI) 1)]).typ, IL64(211106241972240));
		{
			NIM_BOOL T20_;
			T20_ = (NIM_BOOL)0;
			T20_ = !((((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 5))&31U)))!=0));
			if (T20_) goto LA21_;
			T20_ = ((IL64(34084860461056) &((NU64)1<<((NU)((*underlying).kind)&63U)))!=0);
			LA21_: ;
			if (!T20_) goto LA22_;
			binaryStmt_U2agx9aO3WToOTIqL9baXQog_2(p, e, d, opr_O7uP3jzNu3e9auWdRdRa9cJA[(op)- 28]);
		}
		goto LA18_;
		LA22_: ;
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ranged;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* res;
			NimStringDesc* T25_;
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T31_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T32_;
			nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 1)], (&a));
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 2)], (&b));
			ranged = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*e)._Ukind.S6.sons->data[((NI) 1)]).typ, IL64(211106240923664));
			T25_ = (NimStringDesc*)0;
			{
				if (!((*underlying).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 35))) goto LA28_;
				T25_ = copyString(fun64_fjrbodMqcYB619bEDCGfJsA[(op)- 28]);
			}
			goto LA26_;
			LA28_: ;
			{
				T25_ = copyString(fun_gOe15RXeJ2duD5In6NwLXA[(op)- 28]);
			}
			LA26_: ;
			res = binaryArithOverflowRaw_ve9b1jPKH19c7Oix9aPGf9cWag(p, ranged, (&a), (&b), T25_);
			nimZeroMem((void*)T31_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T31_[0] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, ranged);
			T31_[1] = res;
			T32_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T32_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_423), T31_, 2);
			putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, (&a), (*e)._Ukind.S6.sons->data[((NI) 1)], T32_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		LA18_: ;
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 141):
	{
		genStrConcat_BKdMcfvryaJLplX0oFPcAQ_5(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 147):
	{
		{
			if (!((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 5))) goto LA37_;
			binaryStmtAddr_U2agx9aO3WToOTIqL9baXQog_3(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_448));
		}
		goto LA35_;
		LA37_: ;
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA dest;
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b_2;
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA call;
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T40_;
			nimZeroMem((void*)(&dest), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			nimZeroMem((void*)(&b_2), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			nimZeroMem((void*)(&call), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			initLoc_z9bd78in9czXhMZLT0QNB5Tw((&call), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 9), e, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 4));
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 1)], (&dest));
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 2)], (&b_2));
			nimZeroMem((void*)T40_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T40_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&dest));
			T40_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg((&b_2));
			call.r = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_449), T40_, 2);
			genAssignment_BtucsTdHw7orsXIL75hNVg_2(p, (&dest), (&call), 0);
		}
		LA35_: ;
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 148):
	{
		genStrAppend_BKdMcfvryaJLplX0oFPcAQ_6(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 149):
	{
		{
			if (!((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 5))) goto LA45_;
			genCall_BKdMcfvryaJLplX0oFPcAQ_7(p, e, d);
		}
		goto LA43_;
		LA45_: ;
		{
			genSeqElemAppend_BKdMcfvryaJLplX0oFPcAQ_8(p, e, d);
		}
		LA43_: ;
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 131):
	{
		genStrEquals_BKdMcfvryaJLplX0oFPcAQ_9(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 132):
	{
		binaryExpr_U2agx9aO3WToOTIqL9baXQog_4(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_484));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 133):
	{
		binaryExpr_U2agx9aO3WToOTIqL9baXQog_4(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_485));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 160):
	{
		genIsNil_BKdMcfvryaJLplX0oFPcAQ_10(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 123):
	{
		genDollar_pXcuuf9c1RIGGsEW9a8cUntw(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_487));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 124):
	{
		genDollar_pXcuuf9c1RIGGsEW9a8cUntw(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_488));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 122):
	{
		genDollar_pXcuuf9c1RIGGsEW9a8cUntw(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_489));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 121):
	{
		genDollar_pXcuuf9c1RIGGsEW9a8cUntw(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_490));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 125):
	{
		genDollar_pXcuuf9c1RIGGsEW9a8cUntw(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_491));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 126):
	{
		genDollar_pXcuuf9c1RIGGsEW9a8cUntw(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_492));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 127):
	{
		expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*e)._Ukind.S6.sons->data[((NI) 1)], d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 128):
	{
		genRepr_BKdMcfvryaJLplX0oFPcAQ_2(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 12):
	{
		genOf_8mAL9ckajemzgfLPfeZVNoQ_2(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 31):
	{
		genNew_X9cSqNhqEboci9cdmwBMNcBw(p, e);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 32):
	{
		genNewFinalize_X9cSqNhqEboci9cdmwBMNcBw_2(p, e);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 33):
	{
		genNewSeq_X9cSqNhqEboci9cdmwBMNcBw_3(p, e);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 34):
	{
		genNewSeqOfCap_BKdMcfvryaJLplX0oFPcAQ_11(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 9):
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T66_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T67_;
		t = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*e)._Ukind.S6.sons->data[((NI) 1)]).typ, 256);
		nimZeroMem((void*)T66_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T66_[0] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, t);
		T67_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T67_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_513), T66_, 1);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T67_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 44):
	{
		genSomeCast_BKdMcfvryaJLplX0oFPcAQ_12(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 30):
	{
		genOrd_BKdMcfvryaJLplX0oFPcAQ_13(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 37):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 8):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 36):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 38):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 35):
	{
		genArrayLen_TU9cJnldbmGa9bZDxaR6I4tg_4(p, e, d, op);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 39):
	{
		{
			NIM_BOOL T74_;
			T74_ = (NIM_BOOL)0;
			T74_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
			if (T74_) goto LA75_;
			T74_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA75_: ;
			if (!!(T74_)) goto LA76_;
			unaryExpr_U2agx9aO3WToOTIqL9baXQog(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_523));
		}
		goto LA72_;
		LA76_: ;
		{
			unaryExpr_U2agx9aO3WToOTIqL9baXQog(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_524));
		}
		LA72_: ;
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 40):
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_2;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp;
		NimStringDesc* frmt;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T87_;
		nimZeroMem((void*)(&a_2), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		nimZeroMem((void*)(&tmp), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 1)], (&a_2));
		getIntTemp_SrOtkNNSJNR1CbG2n3nFcg(p, (&tmp));
		frmt = (NimStringDesc*)0;
		{
			NIM_BOOL T82_;
			T82_ = (NIM_BOOL)0;
			T82_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
			if (T82_) goto LA83_;
			T82_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA83_: ;
			if (!!(T82_)) goto LA84_;
			frmt = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_525));
		}
		goto LA80_;
		LA84_: ;
		{
			frmt = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_526));
		}
		LA80_: ;
		nimZeroMem((void*)T87_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T87_[0] = tmp.r;
		T87_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a_2));
		lineCg_zZ8N2PtAlqFZKCp7nvAnhw_2(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), frmt, T87_, 2);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, tmp.r, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 45):
	{
		unaryStmt_U2agx9aO3WToOTIqL9baXQog_6(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_528));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 46):
	{
		unaryStmt_U2agx9aO3WToOTIqL9baXQog_6(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_529));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 154):
	{
		genSetLengthStr_BKdMcfvryaJLplX0oFPcAQ_14(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 155):
	{
		genSetLengthSeq_BKdMcfvryaJLplX0oFPcAQ_15(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 41):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 42):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 43):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 136):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 135):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 134):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 137):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 138):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 139):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 151):
	{
		genSetOp_TU9cJnldbmGa9bZDxaR6I4tg_5(p, e, d, op);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 162):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 163):
	{
		genCall_BKdMcfvryaJLplX0oFPcAQ_7(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 164):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 165):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 153):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 166):
	{
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* opr;
		opr = (*(*e)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym;
		{
			NimStringDesc* T99_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T100_;
			if (!!((((*opr).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 3))&15U)))!=0))) goto LA97_;
			T99_ = (NimStringDesc*)0;
			T99_ = dollar__4KNdcWAONkpTKQgUR8XiZQ((*opr).loc.r);
			T100_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T100_ = cgsym_0d9bDo5R2p09cv1ljqpC4l8Q((*p).module, T99_);
			T100_;
		}
		LA97_: ;
		genCall_BKdMcfvryaJLplX0oFPcAQ_7(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 169):
	{
		genReset_UtJx89cn0a8CNSWWmaj6raA_2(p, e);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 18):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T103_;
		T103_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		T103_ = skipConv_6rsSLwtlU9c53a6w69be5JlQ((*e)._Ukind.S6.sons->data[((NI) 1)]);
		genEcho_UtJx89cn0a8CNSWWmaj6raA_3(p, T103_);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 161):
	{
		genArrToSeq_8mAL9ckajemzgfLPfeZVNoQ_3(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 231) ... ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 277):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 20) ... ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 26):
	{
		NimStringDesc* T106_;
		T106_ = (NimStringDesc*)0;
		T106_ = nsuFormatSingleElem(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_579), (*(*(*(*e)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym).name).s);
		localError_NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*e).info, T106_);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 214):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n;
		n = wrapProcForSpawn_MJZ4vKNaMfcU6vC2PCi1Ng((*(*(*p).module).g).graph, (*(*p).module).module, e, (*e).typ, NIM_NIL, NIM_NIL);
		expr_8mAL9ckajemzgfLPfeZVNoQ(p, n, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 158):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n_2;
		n_2 = liftParallel_ndOOzgg7N9cEw3E9bRfkcIDw((*(*(*p).module).g).graph, (*(*p).module).module, e);
		expr_8mAL9ckajemzgfLPfeZVNoQ(p, n_2, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 215):
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_3;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b_3;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x;
		nimZeroMem((void*)(&a_3), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		nimZeroMem((void*)(&b_3), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		{
			if (!((*(*e)._Ukind.S6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 63) || (*(*e)._Ukind.S6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64))) goto LA112_;
			x = (*(*e)._Ukind.S6.sons->data[((NI) 1)])._Ukind.S6.sons->data[((NI) 0)];
		}
		goto LA110_;
		LA112_: ;
		{
			x = (*e)._Ukind.S6.sons->data[((NI) 1)];
		}
		LA110_: ;
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, x, (&a_3));
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 2)], (&b_3));
		genDeepCopy_jdslQ8TsNpkTt8SvBLJjEA(p, (&a_3), (&b_3));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 143):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 97):
	{
		genCall_BKdMcfvryaJLplX0oFPcAQ_7(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 168):
	{
		genWasMoved_UtJx89cn0a8CNSWWmaj6raA_4(p, e);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 167):
	{
		genMove_8mAL9ckajemzgfLPfeZVNoQ_5(p, e, d);
	}
	break;
	default:
	{
		NimStringDesc* T119_;
		T119_ = (NimStringDesc*)0;
		T119_ = rawNewString((reprEnum((NI)op, (&NTI_shZhZOdbVC5nnFvcXQAImg_)) ? reprEnum((NI)op, (&NTI_shZhZOdbVC5nnFvcXQAImg_))->Sup.len : 0) + 14);
appendString(T119_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_584));
appendString(T119_, reprEnum((NI)op, (&NTI_shZhZOdbVC5nnFvcXQAImg_)));
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*e).info, T119_);
	}
	break;
	}
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genSetNode_NYI5fC69aIqZGRakncXv9cNQ_9)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tySequence_pxbIse2JUQkJU0n9blV9bY5g* cs;
	NI size;
	NI64 T1_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	cs = (tySequence_pxbIse2JUQkJU0n9blV9bY5g*)0;
	T1_ = (NI64)0;
	T1_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, (*n).typ);
	size = ((NI) (T1_));
	toBitSet_NZsBRVngLBw9c79cEt9a4qOHg((*(*(*p).module).g).config, n, (&cs));
	{
		NI id;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T6_;
		if (!(((NI) 8) < size)) goto LA4_;
		id = nodeTableTestOrSet_tWmKJP7glBWLCISQFGGk2Q((&(*(*p).module).dataCache), n, ((NI) ((*(*p).module).labels)));
		T6_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T6_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (id)));
		result = amp__mFDAEkd1kysB0V9aBd20A9aA((*(*p).module).tmpBase, T6_);
		{
			tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T11_;
			if (!(id == ((NI) ((*(*p).module).labels)))) goto LA9_;
			(*(*p).module).labels += ((NI) 1);
			nimZeroMem((void*)T11_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
			T11_[0] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, (*n).typ);
			T11_[1] = result;
			T11_[2] = genRawSetData_lBnyc1f1M4k1nDKRQRL0HA(cs, size);
			addf_ocEHZ9cujtqicXvDuJUm5pg(&(*(*p).module).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_585), T11_, 3);
		}
		LA9_: ;
	}
	goto LA2_;
	LA4_: ;
	{
		result = genRawSetData_lBnyc1f1M4k1nDKRQRL0HA(cs, size);
	}
	LA2_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genSetConstr_BKdMcfvryaJLplX0oFPcAQ_17)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA idx;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&idx), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T5_;
		if (!(((*e).flags &(1U<<((NU)(((tyEnum_TNodeFlag_jyh9acXHkhZANSSvPIY7ZLg) 4))&31U)))!=0)) goto LA3_;
		T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T5_ = genSetNode_NYI5fC69aIqZGRakncXv9cNQ_9(p, e);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T5_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	goto LA1_;
	LA3_: ;
	{
		{
			if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA9_;
			getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*e).typ, d, NIM_FALSE);
		}
		LA9_: ;
		{
			NI64 T13_;
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T16_;
			T13_ = (NI64)0;
			T13_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, (*e).typ);
			if (!(IL64(8) < T13_)) goto LA14_;
			nimZeroMem((void*)T16_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T16_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&(*d)));
			T16_[1] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, (*e).typ);
			linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_586), T16_, 2);
			{
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
				tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ* colontmp_;
				NI i;
				NI L;
				NI T18_;
				it = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
				colontmp_ = (tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ*)0;
				colontmp_ = (*e)._Ukind.S6.sons;
				i = ((NI) 0);
				T18_ = (colontmp_ ? colontmp_->Sup.len : 0);
				L = T18_;
				{
					while (1) {
						if (!(i < L)) goto LA20;
						it = colontmp_->data[i];
						{
							tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q T25_;
							tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T26_;
							tyArray_f7nG5LD47BH5K9c6mASit3g T27_;
							if (!((*it).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA23_;
							T25_ = unknownLineInfo_F9bjxJM4tdxwMljo3mi9bY8w();
							T26_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
							T26_ = getSysType_VcTNc9cK1Ftuh0MFwOC9c0Tg((*(*(*p).module).g).graph, T25_, ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31));
							getTemp_VjOFVqypINqQv5C3ECnxbw(p, T26_, (&idx), NIM_FALSE);
							initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*it)._Ukind.S6.sons->data[((NI) 0)], (&a));
							initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*it)._Ukind.S6.sons->data[((NI) 1)], (&b));
							nimZeroMem((void*)T27_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
							T27_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&idx));
							T27_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg((&(*d)));
							T27_[2] = rdSetElemLoc_yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, (&a), (*e).typ);
							T27_[3] = rdSetElemLoc_yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, (&b), (*e).typ);
							lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_587), T27_, 4);
						}
						goto LA21_;
						LA23_: ;
						{
							tyArray_mrugoXXRZUEeG9bEXo9auBKw T29_;
							initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, it, (&a));
							nimZeroMem((void*)T29_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
							T29_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&(*d)));
							T29_[1] = rdSetElemLoc_yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, (&a), (*e).typ);
							lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_588), T29_, 2);
						}
						LA21_: ;
						i += ((NI) 1);
					} LA20: ;
				}
			}
		}
		goto LA11_;
		LA14_: ;
		{
			NimStringDesc* ts;
			NimStringDesc* T31_;
			NI64 T32_;
			NimStringDesc* T33_;
			tyArray_JiWwrsTRC6xqNlGcBthSVA T34_;
			T31_ = (NimStringDesc*)0;
			T32_ = (NI64)0;
			T32_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, (*e).typ);
			T33_ = (NimStringDesc*)0;
			T33_ = nimInt64ToStr((NI64)(T32_ * IL64(8)));
			T31_ = rawNewString((T33_ ? T33_->Sup.len : 0) + 2);
appendString(T31_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_37));
appendString(T31_, T33_);
			ts = T31_;
			nimZeroMem((void*)T34_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T34_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&(*d)));
			lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_247), T34_, 1);
			{
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it_2;
				tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ* colontmp__2;
				NI i_2;
				NI L_2;
				NI T36_;
				it_2 = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
				colontmp__2 = (tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ*)0;
				colontmp__2 = (*e)._Ukind.S6.sons;
				i_2 = ((NI) 0);
				T36_ = (colontmp__2 ? colontmp__2->Sup.len : 0);
				L_2 = T36_;
				{
					while (1) {
						if (!(i_2 < L_2)) goto LA38;
						it_2 = colontmp__2->data[i_2];
						{
							tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q T43_;
							tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T44_;
							NimStringDesc* T45_;
							tyArray_f7nG5LD47BH5K9c6mASit3g T46_;
							if (!((*it_2).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA41_;
							T43_ = unknownLineInfo_F9bjxJM4tdxwMljo3mi9bY8w();
							T44_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
							T44_ = getSysType_VcTNc9cK1Ftuh0MFwOC9c0Tg((*(*(*p).module).g).graph, T43_, ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31));
							getTemp_VjOFVqypINqQv5C3ECnxbw(p, T44_, (&idx), NIM_FALSE);
							initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*it_2)._Ukind.S6.sons->data[((NI) 0)], (&a));
							initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*it_2)._Ukind.S6.sons->data[((NI) 1)], (&b));
							T45_ = (NimStringDesc*)0;
							T45_ = rawNewString((ts ? ts->Sup.len : 0) + (ts ? ts->Sup.len : 0) + 68);
appendString(T45_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_589));
appendString(T45_, ts);
appendString(T45_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_590));
appendString(T45_, ts);
appendString(T45_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_541));
							nimZeroMem((void*)T46_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
							T46_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&idx));
							T46_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg((&(*d)));
							T46_[2] = rdSetElemLoc_yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, (&a), (*e).typ);
							T46_[3] = rdSetElemLoc_yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, (&b), (*e).typ);
							lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), T45_, T46_, 4);
						}
						goto LA39_;
						LA41_: ;
						{
							NimStringDesc* T48_;
							tyArray_mrugoXXRZUEeG9bEXo9auBKw T49_;
							initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, it_2, (&a));
							T48_ = (NimStringDesc*)0;
							T48_ = rawNewString((ts ? ts->Sup.len : 0) + (ts ? ts->Sup.len : 0) + 36);
appendString(T48_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_591));
appendString(T48_, ts);
appendString(T48_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_592));
appendString(T48_, ts);
appendString(T48_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_541));
							nimZeroMem((void*)T49_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
							T49_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&(*d)));
							T49_[1] = rdSetElemLoc_yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, (&a), (*e).typ);
							lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), T48_, T49_, 2);
						}
						LA39_: ;
						i_2 += ((NI) 1);
					} LA38: ;
				}
			}
		}
		LA11_: ;
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, exprComplexConst_8mAL9ckajemzgfLPfeZVNoQ_6)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T1_;
	NI id;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tmp;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T2_;
	t = (*n).typ;
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, t);
	T1_;
	id = nodeTableTestOrSet_tWmKJP7glBWLCISQFGGk2Q((&(*(*p).module).dataCache), n, ((NI) ((*(*p).module).labels)));
	T2_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (id)));
	tmp = amp__mFDAEkd1kysB0V9aBd20A9aA((*(*p).module).tmpBase, T2_);
	{
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T7_;
		if (!(id == ((NI) ((*(*p).module).labels)))) goto LA5_;
		(*(*p).module).labels += ((NI) 1);
		nimZeroMem((void*)T7_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T7_[0] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, t);
		T7_[1] = tmp;
		T7_[2] = genConstExpr_NYI5fC69aIqZGRakncXv9cNQ_3(p, n);
		addf_ocEHZ9cujtqicXvDuJUm5pg(&(*(*p).module).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_311), T7_, 3);
	}
	LA5_: ;
	{
		if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA10_;
		fillLoc_US6BUWbxbS9bTHtpMCqKFkw(d, ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 8), n, tmp, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 1));
	}
	goto LA8_;
	LA10_: ;
	{
		putDataIntoDest_fYECstGN5jPehhn5p8Iclg(p, d, n, tmp);
		{
			if (!!(((285212672 &((NU64)1<<((NU)((*t).kind)&63U)))!=0))) goto LA15_;
			(*d).storage = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 1);
		}
		LA15_: ;
	}
	LA8_: ;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, handleConstExpr_3euU5r9bcG0Rnz4QchCOUyw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NI T6_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T10_;
		NI id;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T12_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = ((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0));
		if (!(T4_)) goto LA5_;
		T6_ = (NI)0;
		T6_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
		T4_ = (((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 38)) < T6_);
		LA5_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA7_;
		T3_ = isDeepConstExpr_FTbvAnf1y9b9c3Krp9bsHDTiw_2(n);
		LA7_: ;
		if (!T3_) goto LA8_;
		t = (*n).typ;
		T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T10_ = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, t);
		T10_;
		id = nodeTableTestOrSet_tWmKJP7glBWLCISQFGGk2Q((&(*(*p).module).dataCache), n, ((NI) ((*(*p).module).labels)));
		T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T11_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (id)));
		T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = amp__mFDAEkd1kysB0V9aBd20A9aA((*(*p).module).tmpBase, T11_);
		fillLoc_US6BUWbxbS9bTHtpMCqKFkw(d, ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 8), n, T12_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 1));
		{
			tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T17_;
			if (!(id == ((NI) ((*(*p).module).labels)))) goto LA15_;
			(*(*p).module).labels += ((NI) 1);
			nimZeroMem((void*)T17_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
			T17_[0] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, t);
			T17_[1] = (*d).r;
			T17_[2] = genConstExpr_NYI5fC69aIqZGRakncXv9cNQ_3(p, n);
			addf_ocEHZ9cujtqicXvDuJUm5pg(&(*(*p).module).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_311), T17_, 3);
		}
		LA15_: ;
		result = NIM_TRUE;
	}
	goto LA1_;
	LA8_: ;
	{
		result = NIM_FALSE;
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genArrayConstr_8mAL9ckajemzgfLPfeZVNoQ_7)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA arr;
	nimZeroMem((void*)(&arr), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = handleConstExpr_3euU5r9bcG0Rnz4QchCOUyw(p, n, d);
		if (!!(T3_)) goto LA4_;
		{
			if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA8_;
			getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*n).typ, d, NIM_FALSE);
		}
		LA8_: ;
		{
			NI i;
			NI colontmp_;
			NI T11_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T11_ = (NI)0;
			T11_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
			colontmp_ = (NI)(T11_ - ((NI) 1));
			res = ((NI) 0);
			{
				while (1) {
					tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T14_;
					tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T15_;
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T16_;
					tyArray_mrugoXXRZUEeG9bEXo9auBKw T17_;
					if (!(res <= colontmp_)) goto LA13;
					i = res;
					T14_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T14_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*n).typ, IL64(36099165763184912));
					T15_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T15_ = elemType_BFFuB9cFDZ89c6QWZqEFAtdA_2(T14_);
					T16_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
					T16_ = lodeTyp_8thmRpt8YNsc9cFM33hAlHw(T15_);
					initLoc_z9bd78in9czXhMZLT0QNB5Tw((&arr), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), T16_, (*d).storage);
					nimZeroMem((void*)T17_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
					T17_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&(*d)));
					T17_[1] = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg(((NI64) (i)));
					arr.r = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_157), T17_, 2);
					expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*n)._Ukind.S6.sons->data[i], (&arr));
					res += ((NI) 1);
				} LA13: ;
			}
		}
	}
	LA4_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genTupleConstr_8mAL9ckajemzgfLPfeZVNoQ_8)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA rec;
	nimZeroMem((void*)(&rec), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	{
		NIM_BOOL T3_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T6_;
		T3_ = (NIM_BOOL)0;
		T3_ = handleConstExpr_3euU5r9bcG0Rnz4QchCOUyw(p, n, d);
		if (!!(T3_)) goto LA4_;
		t = (*n).typ;
		T6_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T6_ = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, t);
		T6_;
		{
			if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA9_;
			getTemp_VjOFVqypINqQv5C3ECnxbw(p, t, d, NIM_FALSE);
		}
		LA9_: ;
		{
			NI i;
			NI colontmp_;
			NI T12_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T12_ = (NI)0;
			T12_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
			colontmp_ = (NI)(T12_ - ((NI) 1));
			res = ((NI) 0);
			{
				while (1) {
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
					tyArray_mrugoXXRZUEeG9bEXo9auBKw T19_;
					if (!(res <= colontmp_)) goto LA14;
					i = res;
					it = (*n)._Ukind.S6.sons->data[i];
					{
						if (!((*it).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA17_;
						it = (*it)._Ukind.S6.sons->data[((NI) 1)];
					}
					LA17_: ;
					initLoc_z9bd78in9czXhMZLT0QNB5Tw((&rec), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), it, (*d).storage);
					nimZeroMem((void*)T19_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
					T19_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&(*d)));
					T19_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (i)));
					rec.r = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_214), T19_, 2);
					expr_8mAL9ckajemzgfLPfeZVNoQ(p, it, (&rec));
					res += ((NI) 1);
				} LA14: ;
			}
		}
	}
	LA4_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*, lookupFieldAgain_x9bTneajlTd1ibxrXw5m2Pw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ty, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** r, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ** resTyp) {
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ty_2;
	result = (tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*)0;
	ty_2 = ty;
	{
		while (1) {
			if (!!((ty_2 == NIM_NIL))) goto LA2;
			ty_2 = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(ty_2, IL64(36239903266179344));
			result = lookupInRecord_UKAypME5AMFgsArDll8WMg((*ty_2).n, (*field).name);
			{
				if (!!((result == NIM_NIL))) goto LA5_;
				{
					if (!!((resTyp == NIM_NIL))) goto LA9_;
					unsureAsgnRef((void**) (&(*resTyp)), ty_2);
				}
				LA9_: ;
				goto LA1;
			}
			LA5_: ;
			{
				NIM_BOOL T13_;
				T13_ = (NIM_BOOL)0;
				T13_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
				if (T13_) goto LA14_;
				T13_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
				LA14_: ;
				if (!!(T13_)) goto LA15_;
				add_yG4AKzsBRS1W4MANDlXQeg(r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_176));
			}
			LA15_: ;
			ty_2 = (*ty_2).sons->data[((NI) 0)];
		} LA2: ;
	} LA1: ;
	{
		if (!(result == NIM_NIL)) goto LA19_;
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*field).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_593));
	}
	LA19_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genStringLiteralDataOnly_tpGWhSp1xC3JuIpAoNyC1A)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, NimStringDesc* s, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	NI T1_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = (NI)0;
	T1_ = detectStrVersion_ZhBx9ci102xAHSOpksGzT6g(m);
	switch (T1_) {
	case ((NI) 0):
	case ((NI) 1):
	{
		result = genStringLiteralDataOnlyV1_czBo5sg9cHyaaP5feko54tA(m, s);
	}
	break;
	case ((NI) 2):
	{
		result = genStringLiteralDataOnlyV2_czBo5sg9cHyaaP5feko54tA_2(m, s);
	}
	break;
	default:
	{
		localError_NF6kBGchnhQYPbCedyefVA((*(*m).g).config, info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_207));
	}
	break;
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genStringLiteralFromData_d8K4FwDbRgw11uUZqU9amkA)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* data, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T1_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	nimZeroMem((void*)T1_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T1_[0] = data;
	result = ropecg_pDjCXevkau9aaTuKWN9cvHGw(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_201), T1_, 1);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genFieldCheck_9bUUELnkXphPuPspD3YnKHQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* obj, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA test;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA u;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA v;
	nimZeroMem((void*)(&test), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&u), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&v), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(e);
		colontmp_ = (NI)(T2_ - ((NI) 1));
		res = ((NI) 1);
		{
			while (1) {
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
				tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* op;
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* disc;
				NI id;
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T9_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* strLit;
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				it = (*e)._Ukind.S6.sons->data[i];
				op = (*(*it)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym;
				{
					if (!((*op).magic == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 102))) goto LA7_;
					it = (*it)._Ukind.S6.sons->data[((NI) 1)];
				}
				LA7_: ;
				disc = skipConv_6rsSLwtlU9c53a6w69be5JlQ((*it)._Ukind.S6.sons->data[((NI) 2)]);
				initLoc_z9bd78in9czXhMZLT0QNB5Tw((&test), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0), it, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 2));
				initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*it)._Ukind.S6.sons->data[((NI) 1)], (&u));
				initLoc_z9bd78in9czXhMZLT0QNB5Tw((&v), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), disc, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
				v.r = obj;
				add_yG4AKzsBRS1W4MANDlXQeg(&v.r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_299));
				add_iMTw0CDaruwETLGb9bhpBLg(&v.r, (*(*disc)._Ukind.S4.sym).loc.r);
				genInExprAux_9cclvr8sbqtJj8irRbQQpqQ(p, it, (&u), (&v), (&test));
				T9_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
				T9_ = newStrNode_8GaTnuPqpzGLNcerzDOURQ(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20), (*(*field).name).s);
				id = nodeTableTestOrSet_tWmKJP7glBWLCISQFGGk2Q((&(*(*p).module).dataCache), T9_, ((NI) ((*(*p).module).labels)));
				{
					if (!(id == ((NI) ((*(*p).module).labels)))) goto LA12_;
					strLit = genStringLiteralDataOnly_tpGWhSp1xC3JuIpAoNyC1A((*p).module, (*(*field).name).s, (*e).info);
				}
				goto LA10_;
				LA12_: ;
				{
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T15_;
					T15_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T15_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (id)));
					strLit = amp__mFDAEkd1kysB0V9aBd20A9aA((*(*p).module).tmpBase, T15_);
				}
				LA10_: ;
				{
					tyArray_mrugoXXRZUEeG9bEXo9auBKw T20_;
					if (!((*op).magic == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 102))) goto LA18_;
					nimZeroMem((void*)T20_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
					T20_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&test));
					T20_[1] = genStringLiteralFromData_d8K4FwDbRgw11uUZqU9amkA((*p).module, strLit, (*e).info);
					linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_595), T20_, 2);
				}
				goto LA16_;
				LA18_: ;
				{
					tyArray_mrugoXXRZUEeG9bEXo9auBKw T22_;
					nimZeroMem((void*)T22_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
					T22_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&test));
					T22_[1] = genStringLiteralFromData_d8K4FwDbRgw11uUZqU9amkA((*p).module, strLit, (*e).info);
					linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_596), T22_, 2);
				}
				LA16_: ;
				res += ((NI) 1);
			} LA4: ;
		}
	}
}

N_LIB_PRIVATE N_NIMCALL(void, genObjConstr_BKdMcfvryaJLplX0oFPcAQ_18)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	NIM_BOOL isRef;
	NIM_BOOL useTemp;
	NIM_BOOL T12_;
	NIM_BOOL T13_;
	tyEnum_TAnalysisResult_p9a9bcrXoRmLT4eUuwrDq9b4w T16_;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T29_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ty;
{	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T3_) goto LA4_;
		T3_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA4_: ;
		if (!!(T3_)) goto LA5_;
		{
			NIM_BOOL T9_;
			T9_ = (NIM_BOOL)0;
			T9_ = handleConstExpr_3euU5r9bcG0Rnz4QchCOUyw(p, e, d);
			if (!T9_) goto LA10_;
			goto BeforeRet_;
		}
		LA10_: ;
	}
	LA5_: ;
	t = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*e).typ, IL64(36099165763184912));
	isRef = ((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22));
	T12_ = (NIM_BOOL)0;
	T13_ = (NIM_BOOL)0;
	T13_ = isRef;
	if (T13_) goto LA14_;
	T13_ = !(((62 &(1U<<((NU)((*d).k)&15U)))!=0));
	LA14_: ;
	T12_ = T13_;
	if (T12_) goto LA15_;
	T16_ = (tyEnum_TAnalysisResult_p9a9bcrXoRmLT4eUuwrDq9b4w)0;
	T16_ = isPartOf_1otDDZAmvFsmbqPyFytXFg((*d).lode, e);
	T12_ = !((T16_ == ((tyEnum_TAnalysisResult_p9a9bcrXoRmLT4eUuwrDq9b4w) 0)));
	LA15_: ;
	useTemp = T12_;
	nimZeroMem((void*)(&tmp), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	r = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!useTemp) goto LA19_;
		getTemp_VjOFVqypINqQv5C3ECnxbw(p, t, (&tmp), NIM_FALSE);
		r = rdLoc_xidyzuHqIciXbQyEOKahDg((&tmp));
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T25_;
			tyArray_JiWwrsTRC6xqNlGcBthSVA T26_;
			if (!isRef) goto LA23_;
			rawGenNew_xJGU3j3G6xInb7v14wgw2Q(p, (&tmp), NIM_NIL);
			T25_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T25_ = lastSon_ab52xel9cFebv9am0xV04xXA(t);
			t = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(T25_, IL64(36099165763184912));
			nimZeroMem((void*)T26_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T26_[0] = r;
			r = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_137), T26_, 1);
			gcUsage_Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, e);
		}
		goto LA21_;
		LA23_: ;
		{
			constructLoc_UnMShnfXExBqkSCjaZsFdw(p, (&tmp), NIM_FALSE);
		}
		LA21_: ;
	}
	goto LA17_;
	LA19_: ;
	{
		resetLoc_B9bNAYVEwjQtkUkvoOVhV2Q(p, d);
		r = rdLoc_xidyzuHqIciXbQyEOKahDg((&(*d)));
	}
	LA17_: ;
	T29_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T29_ = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, t);
	T29_;
	ty = t;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(e);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp2;
				tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field;
				if (!(i_2 < colontmp_)) goto LA32;
				i = i_2;
				it = (*e)._Ukind.S6.sons->data[i];
				nimZeroMem((void*)(&tmp2), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				tmp2.r = r;
				field = lookupFieldAgain_x9bTneajlTd1ibxrXw5m2Pw(p, ty, (*(*it)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym, &tmp2.r, NIM_NIL);
				{
					if (!((*field).loc.r == NIM_NIL)) goto LA35_;
					fillObjectFields_9ay9bmecW6As1fjmHzaEve9cQ((*p).module, ty);
				}
				LA35_: ;
				{
					if (!((*field).loc.r == NIM_NIL)) goto LA39_;
					internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*e).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_594));
				}
				LA39_: ;
				{
					NIM_BOOL T43_;
					NI T44_;
					T43_ = (NIM_BOOL)0;
					T44_ = (NI)0;
					T44_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(it);
					T43_ = (T44_ == ((NI) 3));
					if (!(T43_)) goto LA45_;
					T43_ = (((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 2))&31U)))!=0);
					LA45_: ;
					if (!T43_) goto LA46_;
					genFieldCheck_9bUUELnkXphPuPspD3YnKHQ(p, (*it)._Ukind.S6.sons->data[((NI) 2)], r, field);
				}
				LA46_: ;
				add_yG4AKzsBRS1W4MANDlXQeg(&tmp2.r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_299));
				add_iMTw0CDaruwETLGb9bhpBLg(&tmp2.r, (*field).loc.r);
				{
					if (!useTemp) goto LA50_;
					tmp2.k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 1);
					{
						if (!isRef) goto LA54_;
						tmp2.storage = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 4);
					}
					goto LA52_;
					LA54_: ;
					{
						tmp2.storage = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 2);
					}
					LA52_: ;
				}
				goto LA48_;
				LA50_: ;
				{
					tmp2.k = (*d).k;
					{
						if (!isRef) goto LA60_;
						tmp2.storage = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 4);
					}
					goto LA58_;
					LA60_: ;
					{
						tmp2.storage = (*d).storage;
					}
					LA58_: ;
				}
				LA48_: ;
				tmp2.lode = (*it)._Ukind.S6.sons->data[((NI) 1)];
				expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*it)._Ukind.S6.sons->data[((NI) 1)], (&tmp2));
				i_2 += ((NI) 1);
			} LA32: ;
		}
	}
	{
		if (!useTemp) goto LA65_;
		{
			if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA69_;
			genericAssign((void*)(&(*d)), (void*)(&tmp), (&NTI_EtHNvCB0bgfu9bFjzx9cb6aA_));
		}
		goto LA67_;
		LA69_: ;
		{
			genAssignment_BtucsTdHw7orsXIL75hNVg_2(p, (&(*d)), (&tmp), 0);
		}
		LA67_: ;
	}
	LA65_: ;
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genCast_BKdMcfvryaJLplX0oFPcAQ_19)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* destt;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* srct;
	destt = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*e).typ, IL64(36099165764233488));
	srct = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*e)._Ukind.S6.sons->data[((NI) 1)]).typ, IL64(36099165764233488));
	{
		NIM_BOOL T3_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* lbl;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T7_;
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T8_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T9_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T10_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((IL64(1030792609792) &((NU64)1<<((NU)((*destt).kind)&63U)))!=0);
		if (T3_) goto LA4_;
		T3_ = ((IL64(1030792609792) &((NU64)1<<((NU)((*srct).kind)&63U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		(*p).labels += ((NI) 1);
		lbl = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).labels)));
		nimZeroMem((void*)(&tmp), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		nimZeroMem((void*)T7_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T7_[0] = lbl;
		tmp.r = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_597), T7_, 1);
		nimZeroMem((void*)T8_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T8_[0] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, (*(*e)._Ukind.S6.sons->data[((NI) 1)]).typ);
		T8_[1] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, (*e).typ);
		T8_[2] = lbl;
		linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_598), T8_, 3);
		tmp.k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6);
		tmp.lode = lodeTyp_8thmRpt8YNsc9cFM33hAlHw(srct);
		tmp.storage = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 2);
		tmp.flags = 0;
		expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*e)._Ukind.S6.sons->data[((NI) 1)], (&tmp));
		nimZeroMem((void*)T9_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T9_[0] = lbl;
		T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T10_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_599), T9_, 1);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T10_, tmp.storage);
	}
	goto LA1_;
	LA5_: ;
	{
		genSomeCast_BKdMcfvryaJLplX0oFPcAQ_12(p, e, d);
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genConv_BKdMcfvryaJLplX0oFPcAQ_20)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* destType;
	destType = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*e).typ, IL64(211106240923664));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = sameBackendType_n70Tq9c0HITdaYm9cT8YLryw(destType, (*(*e)._Ukind.S6.sons->data[((NI) 1)]).typ);
		if (!T3_) goto LA4_;
		expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*e)._Ukind.S6.sons->data[((NI) 1)], d);
	}
	goto LA1_;
	LA4_: ;
	{
		genSomeCast_BKdMcfvryaJLplX0oFPcAQ_12(p, e, d);
	}
	LA1_: ;
}

static N_INLINE(NIM_BOOL, isCppRef_W1pyohIhafix2U26ZP9a5aAcgen)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	NIM_BOOL T3_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T6_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T8_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T3_ = (NIM_BOOL)0;
	T3_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
	if (T3_) goto LA4_;
	T3_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
	LA4_: ;
	T2_ = T3_;
	if (!(T2_)) goto LA5_;
	T6_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T6_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(typ, IL64(36099165763184912));
	T2_ = ((*T6_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23));
	LA5_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA7_;
	T8_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T8_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(typ, IL64(36099165763184912));
	T1_ = !((((*T8_).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 19))&63U)))!=0));
	LA7_: ;
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genAddr_BKdMcfvryaJLplX0oFPcAQ_21)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T3_;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T6_;
		T3_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T3_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*e)._Ukind.S6.sons->data[((NI) 0)]).typ, IL64(36099165763184912));
		if (!((6291456 &((NU64)1<<((NU)((*T3_).kind)&63U)))!=0)) goto LA4_;
		nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 0)], (&a));
		T6_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T6_ = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_45), a.r);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T6_, a.storage);
	}
	goto LA1_;
	LA4_: ;
	{
		NIM_BOOL T8_;
		tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w T9_;
		T8_ = (NIM_BOOL)0;
		T9_ = (tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w)0;
		T9_ = mapType_K9aceyVl15zb9aYN9b6YJ8TnA((*(*(*p).module).g).config, (*(*e)._Ukind.S6.sons->data[((NI) 0)]).typ);
		T8_ = (T9_ == ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 17));
		if (T8_) goto LA10_;
		T8_ = isCppRef_W1pyohIhafix2U26ZP9a5aAcgen(p, (*(*e)._Ukind.S6.sons->data[((NI) 0)]).typ);
		LA10_: ;
		if (!T8_) goto LA11_;
		expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*e)._Ukind.S6.sons->data[((NI) 0)], d);
	}
	goto LA1_;
	LA11_: ;
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_2;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
		nimZeroMem((void*)(&a_2), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 0)], (&a_2));
		T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, (&a_2));
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T14_, a_2.storage);
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genArrayElem_BCJD8YW9ak7zQIm4nTPgpMQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* y, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ty;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* first;
	NI64 T2_;
	tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T49_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T50_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, x, (&a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, y, (&b));
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&a));
	ty = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(T1_, IL64(49750702149380368));
	T2_ = (NI64)0;
	T2_ = firstOrd_4cSIntenL9aBXY6LAFsvXdQ((*(*(*p).module).g).config, ty);
	first = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg(T2_);
	{
		NIM_BOOL T5_;
		T5_ = (NIM_BOOL)0;
		T5_ = (((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 4))&31U)))!=0);
		if (!(T5_)) goto LA6_;
		T5_ = !((((*ty).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 0))&63U)))!=0));
		LA6_: ;
		if (!T5_) goto LA7_;
		{
			NIM_BOOL T11_;
			T11_ = (NIM_BOOL)0;
			T11_ = isConstExpr_FTbvAnf1y9b9c3Krp9bsHDTiw_4(y);
			if (!!(T11_)) goto LA12_;
			{
				NI64 T16_;
				T16_ = (NI64)0;
				T16_ = firstOrd_4cSIntenL9aBXY6LAFsvXdQ((*(*(*p).module).g).config, ty);
				if (!(T16_ == IL64(0))) goto LA17_;
				{
					NIM_BOOL T21_;
					tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T22_;
					NI64 T23_;
					NI64 T24_;
					NI64 T26_;
					tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T27_;
					NI64 T28_;
					tyArray_mrugoXXRZUEeG9bEXo9auBKw T31_;
					NI64 T32_;
					T21_ = (NIM_BOOL)0;
					T22_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T22_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&b));
					T23_ = (NI64)0;
					T23_ = firstOrd_4cSIntenL9aBXY6LAFsvXdQ((*(*(*p).module).g).config, T22_);
					T24_ = (NI64)0;
					T24_ = firstOrd_4cSIntenL9aBXY6LAFsvXdQ((*(*(*p).module).g).config, ty);
					T21_ = (T23_ < T24_);
					if (T21_) goto LA25_;
					T26_ = (NI64)0;
					T26_ = lastOrd_PcKlk9cRVtdVcuEFs9bZTdAQ((*(*(*p).module).g).config, ty, NIM_FALSE);
					T27_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T27_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&b));
					T28_ = (NI64)0;
					T28_ = lastOrd_PcKlk9cRVtdVcuEFs9bZTdAQ((*(*(*p).module).g).config, T27_, NIM_FALSE);
					T21_ = (T26_ < T28_);
					LA25_: ;
					if (!T21_) goto LA29_;
					nimZeroMem((void*)T31_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
					T31_[0] = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2((&b));
					T32_ = (NI64)0;
					T32_ = lastOrd_PcKlk9cRVtdVcuEFs9bZTdAQ((*(*(*p).module).g).config, ty, NIM_FALSE);
					T31_[1] = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg(T32_);
					linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_600), T31_, 2);
				}
				LA29_: ;
			}
			goto LA14_;
			LA17_: ;
			{
				tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T34_;
				NI64 T35_;
				nimZeroMem((void*)T34_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
				T34_[0] = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2((&b));
				T34_[1] = first;
				T35_ = (NI64)0;
				T35_ = lastOrd_PcKlk9cRVtdVcuEFs9bZTdAQ((*(*(*p).module).g).config, ty, NIM_FALSE);
				T34_[2] = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg(T35_);
				linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_601), T34_, 3);
			}
			LA14_: ;
		}
		goto LA9_;
		LA12_: ;
		{
			NI64 idx;
			idx = getOrdValue_k4X4XP9cdVXYioHD9akA9bVbQ(y);
			{
				NIM_BOOL T39_;
				NI64 T40_;
				NI64 T42_;
				T39_ = (NIM_BOOL)0;
				T40_ = (NI64)0;
				T40_ = firstOrd_4cSIntenL9aBXY6LAFsvXdQ((*(*(*p).module).g).config, ty);
				T39_ = (idx < T40_);
				if (T39_) goto LA41_;
				T42_ = (NI64)0;
				T42_ = lastOrd_PcKlk9cRVtdVcuEFs9bZTdAQ((*(*(*p).module).g).config, ty, NIM_FALSE);
				T39_ = (T42_ < idx);
				LA41_: ;
				if (!T39_) goto LA43_;
				localError_NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*x).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_602));
			}
			LA43_: ;
		}
		LA9_: ;
	}
	LA7_: ;
	{
		if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA47_;
		(*d).storage = a.storage;
	}
	LA47_: ;
	nimZeroMem((void*)T49_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
	T49_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
	T49_[1] = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2((&b));
	T49_[2] = first;
	T50_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T50_ = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_603), T49_, 3);
	putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, n, T50_, a.storage);
}

N_LIB_PRIVATE N_NIMCALL(void, genOpenArrayElem_BCJD8YW9ak7zQIm4nTPgpMQ_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* y, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T10_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, x, (&a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, y, (&b));
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T5_;
		if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 4))&31U)))!=0)) goto LA3_;
		nimZeroMem((void*)T5_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T5_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&b));
		T5_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
		linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_604), T5_, 2);
	}
	LA3_: ;
	{
		if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA8_;
		(*d).storage = a.storage;
	}
	LA8_: ;
	nimZeroMem((void*)T10_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T10_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
	T10_[1] = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2((&b));
	T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T11_ = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_157), T10_, 2);
	putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, n, T11_, a.storage);
}

N_LIB_PRIVATE N_NIMCALL(void, genSeqElem_BCJD8YW9ak7zQIm4nTPgpMQ_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* y, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ty;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T33_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T34_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, x, (&a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, y, (&b));
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&a));
	ty = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(T1_, IL64(36099165772622096));
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T6_;
		if (!((6291456 &((NU64)1<<((NU)((*ty).kind)&63U)))!=0)) goto LA4_;
		T6_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T6_ = lastSon_ab52xel9cFebv9am0xV04xXA(ty);
		ty = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(T6_, IL64(36099165772622096));
	}
	LA4_: ;
	{
		if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 4))&31U)))!=0)) goto LA9_;
		{
			NIM_BOOL T13_;
			NIM_BOOL T15_;
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T19_;
			T13_ = (NIM_BOOL)0;
			T13_ = ((*ty).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28));
			if (!(T13_)) goto LA14_;
			T15_ = (NIM_BOOL)0;
			T15_ = NIM_FALSE;
			if (T15_) goto LA16_;
			T15_ = (((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 25))&31U)))!=0);
			LA16_: ;
			T13_ = T15_;
			LA14_: ;
			if (!T13_) goto LA17_;
			nimZeroMem((void*)T19_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T19_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&b));
			T19_[1] = lenExpr_Xfvxpx3W1zkiCqENsur9ckg(p, (&a));
			linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_605), T19_, 2);
		}
		goto LA11_;
		LA17_: ;
		{
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T21_;
			nimZeroMem((void*)T21_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T21_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&b));
			T21_[1] = lenExpr_Xfvxpx3W1zkiCqENsur9ckg(p, (&a));
			linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_606), T21_, 2);
		}
		LA11_: ;
	}
	LA9_: ;
	{
		if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA24_;
		(*d).storage = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 4);
	}
	LA24_: ;
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T28_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T29_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T32_;
		T28_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T28_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&a));
		T29_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T29_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(T28_, IL64(36239903259928848));
		if (!((6291456 &((NU64)1<<((NU)((*T29_).kind)&63U)))!=0)) goto LA30_;
		nimZeroMem((void*)T32_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T32_[0] = a.r;
		a.r = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_137), T32_, 1);
	}
	LA30_: ;
	nimZeroMem((void*)T33_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
	T33_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
	T33_[1] = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2((&b));
	T33_[2] = dataField_3AsTOpq9crZUYBL9aD1lXBng_2(p);
	T34_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T34_ = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_216), T33_, 3);
	putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, n, T34_, a.storage);
}

N_LIB_PRIVATE N_NIMCALL(void, genCStringElem_BCJD8YW9ak7zQIm4nTPgpMQ_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* y, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ty;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T6_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T7_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, x, (&a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, y, (&b));
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&a));
	ty = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(T1_, IL64(36099165772622096));
	{
		if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA4_;
		(*d).storage = a.storage;
	}
	LA4_: ;
	nimZeroMem((void*)T6_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T6_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
	T6_[1] = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2((&b));
	T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T7_ = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_157), T6_, 2);
	putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, n, T7_, a.storage);
}

N_LIB_PRIVATE N_NIMCALL(void, genTupleElem_BKdMcfvryaJLplX0oFPcAQ_22)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	NI i;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* tupType;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T6_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T7_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T10_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	i = (NI)0;
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 0)], (&a));
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&a));
	tupType = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(T1_, IL64(36099165763184912));
	{
		if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA4_;
		(*d).storage = a.storage;
	}
	LA4_: ;
	T6_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T6_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&a));
	T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T7_ = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, T6_);
	T7_;
	r = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
	switch ((*(*e)._Ukind.S6.sons->data[((NI) 1)]).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 6) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 15):
	{
		i = ((NI) ((*(*e)._Ukind.S6.sons->data[((NI) 1)])._Ukind.S1.intVal));
	}
	break;
	default:
	{
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*e).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_607));
	}
	break;
	}
	nimZeroMem((void*)T10_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T10_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (i)));
	addf_ocEHZ9cujtqicXvDuJUm5pg(&r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_608), T10_, 1);
	putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, r, a.storage);
}

N_LIB_PRIVATE N_NIMCALL(void, genBracketExpr_8mAL9ckajemzgfLPfeZVNoQ_9)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ty;
	ty = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*n)._Ukind.S6.sons->data[((NI) 0)]).typ, IL64(49609964654733584));
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T5_;
		if (!((6291456 &((NU64)1<<((NU)((*ty).kind)&63U)))!=0)) goto LA3_;
		T5_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T5_ = lastSon_ab52xel9cFebv9am0xV04xXA(ty);
		ty = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(T5_, IL64(36099165772622096));
	}
	LA3_: ;
	switch ((*ty).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
	{
		genArrayElem_BCJD8YW9ak7zQIm4nTPgpMQ(p, n, (*n)._Ukind.S6.sons->data[((NI) 0)], (*n)._Ukind.S6.sons->data[((NI) 1)], d);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48):
	{
		genOpenArrayElem_BCJD8YW9ak7zQIm4nTPgpMQ_2(p, n, (*n)._Ukind.S6.sons->data[((NI) 0)], (*n)._Ukind.S6.sons->data[((NI) 1)], d);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
	{
		genSeqElem_BCJD8YW9ak7zQIm4nTPgpMQ_3(p, n, (*n)._Ukind.S6.sons->data[((NI) 0)], (*n)._Ukind.S6.sons->data[((NI) 1)], d);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 29):
	{
		genCStringElem_BCJD8YW9ak7zQIm4nTPgpMQ_4(p, n, (*n)._Ukind.S6.sons->data[((NI) 0)], (*n)._Ukind.S6.sons->data[((NI) 1)], d);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		genTupleElem_BKdMcfvryaJLplX0oFPcAQ_22(p, n, d);
	}
	break;
	default:
	{
		NimStringDesc* T12_;
		T12_ = (NimStringDesc*)0;
		T12_ = rawNewString((reprEnum((NI)(*ty).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*ty).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 21);
appendString(T12_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_609));
appendString(T12_, reprEnum((NI)(*ty).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
appendChar(T12_, 41);
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, T12_);
	}
	break;
	}
}

N_LIB_PRIVATE N_NIMCALL(void, genDeref_BLGSHeDM9cawDE7Hp9bscFgg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NIM_BOOL enforceDeref) {
	tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w mt;
{	mt = mapType_K9aceyVl15zb9aYN9b6YJ8TnA((*(*(*p).module).g).config, (*(*e)._Ukind.S6.sons->data[((NI) 0)]).typ);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((393216 &(1U<<((NU)(mt)&31U)))!=0);
		if (!(T3_)) goto LA4_;
		T3_ = !(enforceDeref);
		LA4_: ;
		if (!T3_) goto LA5_;
		expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*e)._Ukind.S6.sons->data[((NI) 0)], d);
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T9_;
			T9_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T9_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*e)._Ukind.S6.sons->data[((NI) 0)]).typ, IL64(36099165763184912));
			if (!((*T9_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22))) goto LA10_;
			(*d).storage = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 4);
		}
		LA10_: ;
	}
	goto LA1_;
	LA5_: ;
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
		nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		typ = (*(*e)._Ukind.S6.sons->data[((NI) 0)]).typ;
		{
			NIM_BOOL T15_;
			T15_ = (NIM_BOOL)0;
			T15_ = ((IL64(13510798882111488) &((NU64)1<<((NU)((*typ).kind)&63U)))!=0);
			if (!(T15_)) goto LA16_;
			T15_ = (((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 10))&63U)))!=0);
			LA16_: ;
			if (!T15_) goto LA17_;
			typ = lastSon_ab52xel9cFebv9am0xV04xXA(typ);
		}
		LA17_: ;
		typ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(typ, IL64(36099165763184912));
		{
			NIM_BOOL T21_;
			NIM_BOOL T22_;
			NIM_BOOL T23_;
			NIM_BOOL T26_;
			T21_ = (NIM_BOOL)0;
			T22_ = (NIM_BOOL)0;
			T23_ = (NIM_BOOL)0;
			T23_ = ((*typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23));
			if (!(T23_)) goto LA24_;
			T23_ = !((((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 19))&63U)))!=0));
			LA24_: ;
			T22_ = T23_;
			if (!(T22_)) goto LA25_;
			T26_ = (NIM_BOOL)0;
			T26_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
			if (T26_) goto LA27_;
			T26_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA27_: ;
			T22_ = T26_;
			LA25_: ;
			T21_ = T22_;
			if (!(T21_)) goto LA28_;
			T21_ = ((*(*e)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64));
			LA28_: ;
			if (!T21_) goto LA29_;
			initLocExprSingleUse_9biTBaXPz9cezuLjjWw9cSEGw(p, (*(*e)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S6.sons->data[((NI) 0)], d);
			goto BeforeRet_;
		}
		goto LA19_;
		LA29_: ;
		{
			initLocExprSingleUse_9biTBaXPz9cezuLjjWw9cSEGw(p, (*e)._Ukind.S6.sons->data[((NI) 0)], (&a));
		}
		LA19_: ;
		{
			if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA34_;
			switch ((*typ).kind) {
			case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22):
			{
				(*d).storage = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 4);
			}
			break;
			case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23):
			case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 47):
			{
				(*d).storage = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0);
				{
					NIM_BOOL T40_;
					NIM_BOOL T41_;
					NIM_BOOL T43_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T48_;
					T40_ = (NIM_BOOL)0;
					T41_ = (NIM_BOOL)0;
					T41_ = !((((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 19))&63U)))!=0));
					if (!(T41_)) goto LA42_;
					T43_ = (NIM_BOOL)0;
					T43_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
					if (T43_) goto LA44_;
					T43_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
					LA44_: ;
					T41_ = T43_;
					LA42_: ;
					T40_ = T41_;
					if (!(T40_)) goto LA45_;
					T40_ = ((*e).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 65));
					LA45_: ;
					if (!T40_) goto LA46_;
					T48_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T48_ = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
					putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T48_, a.storage);
					goto BeforeRet_;
				}
				LA46_: ;
			}
			break;
			case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21):
			{
				(*d).storage = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0);
			}
			break;
			default:
			{
				NimStringDesc* T51_;
				T51_ = (NimStringDesc*)0;
				T51_ = rawNewString((reprEnum((NI)(*typ).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*typ).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 9);
appendString(T51_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_610));
appendString(T51_, reprEnum((NI)(*typ).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
				internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*e).info, T51_);
			}
			break;
			}
		}
		goto LA32_;
		LA34_: ;
		{
			NIM_BOOL T53_;
			T53_ = (NIM_BOOL)0;
			T53_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
			if (T53_) goto LA54_;
			T53_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA54_: ;
			if (!T53_) goto LA55_;
			{
				NIM_BOOL T59_;
				NIM_BOOL T60_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T65_;
				T59_ = (NIM_BOOL)0;
				T60_ = (NIM_BOOL)0;
				T60_ = ((*typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23));
				if (!(T60_)) goto LA61_;
				T60_ = !((((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 19))&63U)))!=0));
				LA61_: ;
				T59_ = T60_;
				if (!(T59_)) goto LA62_;
				T59_ = ((*e).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 65));
				LA62_: ;
				if (!T59_) goto LA63_;
				T65_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T65_ = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
				putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T65_, a.storage);
				goto BeforeRet_;
			}
			LA63_: ;
		}
		goto LA32_;
		LA55_: ;
		LA32_: ;
		{
			NIM_BOOL T68_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T72_;
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T73_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T74_;
			T68_ = (NIM_BOOL)0;
			T68_ = enforceDeref;
			if (!(T68_)) goto LA69_;
			T68_ = (mt == ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 18));
			LA69_: ;
			if (!T68_) goto LA70_;
			T72_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T72_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&a));
			T73_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
			T73_ = lodeTyp_8thmRpt8YNsc9cFM33hAlHw((*T72_).sons->data[((NI) 0)]);
			T74_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T74_ = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
			putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, T73_, T74_, a.storage);
		}
		goto LA66_;
		LA70_: ;
		{
			tyArray_JiWwrsTRC6xqNlGcBthSVA T76_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T77_;
			nimZeroMem((void*)T76_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T76_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
			T77_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T77_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_137), T76_, 1);
			putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T77_, a.storage);
		}
		LA66_: ;
	}
	LA1_: ;
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genRecordFieldAux_O8nIPJbfEFU0FjR77WG5eA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T9_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T10_;
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 0)], a);
	{
		if (!!(((*(*e)._Ukind.S6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA3_;
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*e).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_611));
	}
	LA3_: ;
	{
		if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA7_;
		(*d).storage = (*a).storage;
	}
	LA7_: ;
	T9_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T9_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&(*a)));
	T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T10_ = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, T9_);
	T10_;
}

N_LIB_PRIVATE N_NIMCALL(void, genRecordField_BKdMcfvryaJLplX0oFPcAQ_23)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r;
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* f;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ty;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	genRecordFieldAux_O8nIPJbfEFU0FjR77WG5eA(p, e, d, (&a));
	r = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
	f = (*(*e)._Ukind.S6.sons->data[((NI) 1)])._Ukind.S4.sym;
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&a));
	ty = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(T1_, IL64(49609964645296400));
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T6_;
		if (!((*ty).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18))) goto LA4_;
		nimZeroMem((void*)T6_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T6_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*f).position)));
		addf_ocEHZ9cujtqicXvDuJUm5pg(&r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_608), T6_, 1);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, r, a.storage);
	}
	goto LA2_;
	LA4_: ;
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* rtyp;
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T20_;
		rtyp = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		field = lookupFieldAgain_x9bTneajlTd1ibxrXw5m2Pw(p, ty, f, &r, &rtyp);
		{
			NIM_BOOL T10_;
			T10_ = (NIM_BOOL)0;
			T10_ = ((*field).loc.r == NIM_NIL);
			if (!(T10_)) goto LA11_;
			T10_ = !((rtyp == NIM_NIL));
			LA11_: ;
			if (!T10_) goto LA12_;
			fillObjectFields_9ay9bmecW6As1fjmHzaEve9cQ((*p).module, rtyp);
		}
		LA12_: ;
		{
			NimStringDesc* T18_;
			NimStringDesc* T19_;
			if (!((*field).loc.r == NIM_NIL)) goto LA16_;
			T18_ = (NimStringDesc*)0;
			T19_ = (NimStringDesc*)0;
			T19_ = typeToString_QlvraUan7WbHowhAbvDvdA(ty, ((tyEnum_TPreferedDesc_tnd4qt9c4xddV8oKV5zyusw) 0));
			T18_ = rawNewString((T19_ ? T19_->Sup.len : 0) + 17);
appendString(T18_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_612));
appendString(T18_, T19_);
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*e).info, T18_);
		}
		LA16_: ;
		nimZeroMem((void*)T20_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T20_[0] = (*field).loc.r;
		addf_ocEHZ9cujtqicXvDuJUm5pg(&r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_613), T20_, 1);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, r, a.storage);
	}
	LA2_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genCheckedRecordField_BKdMcfvryaJLplX0oFPcAQ_24)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ty;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T5_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r;
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* f;
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T14_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T15_;
		if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 2))&31U)))!=0)) goto LA3_;
		nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		genRecordFieldAux_O8nIPJbfEFU0FjR77WG5eA(p, (*e)._Ukind.S6.sons->data[((NI) 0)], d, (&a));
		T5_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T5_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&a));
		ty = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(T5_, IL64(49609964645296400));
		r = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
		f = (*(*(*e)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S6.sons->data[((NI) 1)])._Ukind.S4.sym;
		field = lookupFieldAgain_x9bTneajlTd1ibxrXw5m2Pw(p, ty, f, &r, NIM_NIL);
		{
			if (!((*field).loc.r == NIM_NIL)) goto LA8_;
			fillObjectFields_9ay9bmecW6As1fjmHzaEve9cQ((*p).module, ty);
		}
		LA8_: ;
		{
			if (!((*field).loc.r == NIM_NIL)) goto LA12_;
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*e).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_593));
		}
		LA12_: ;
		genFieldCheck_9bUUELnkXphPuPspD3YnKHQ(p, e, r, field);
		nimZeroMem((void*)T14_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T14_[0] = (*field).loc.r;
		T15_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T15_ = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_613), T14_, 1);
		add_iMTw0CDaruwETLGb9bhpBLg(&r, T15_);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, (*e)._Ukind.S6.sons->data[((NI) 0)], r, a.storage);
	}
	goto LA1_;
	LA3_: ;
	{
		genRecordField_BKdMcfvryaJLplX0oFPcAQ_23(p, (*e)._Ukind.S6.sons->data[((NI) 0)], d);
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(NI, inExceptBlockLen_lPGsm5WeJbPHE8Q8iwQujw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p) {
	NI result;
	result = (NI)0;
	{
		tyTuple_aTNxDjHI7v9cq37xS7PT7jA x;
		tySequence_P9c6Y5h4sjjYLVGti5AELHg* colontmp_;
		NI i;
		NI L;
		NI T2_;
		nimZeroMem((void*)(&x), sizeof(tyTuple_aTNxDjHI7v9cq37xS7PT7jA));
		colontmp_ = (tySequence_P9c6Y5h4sjjYLVGti5AELHg*)0;
		colontmp_ = (*p).nestedTryStmts;
		i = ((NI) 0);
		T2_ = (colontmp_ ? colontmp_->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				if (!(i < L)) goto LA4;
				x.Field0 = colontmp_->data[i].Field0;
				x.Field1 = colontmp_->data[i].Field1;
				{
					if (!x.Field1) goto LA7_;
					result += ((NI) 1);
				}
				LA7_: ;
				i += ((NI) 1);
			} LA4: ;
		}
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NI, startBlock_5VnWFu9cyKySWdJiAv81lJQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, NimStringDesc* start, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0) {
	NI result;
	NI T1_;
	NI T2_;
	NI T3_;
	result = (NI)0;
	lineCg_zZ8N2PtAlqFZKCp7nvAnhw_2(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), start, args, argsLen_0);
	(*p).labels += ((NI) 1);
	T1_ = ((*p).blocks ? (*p).blocks->Sup.len : 0);
	result = T1_;
	asgnRefNoCycle((void**) (&(*p).blocks), (tySequence_oUyaggHmIX9bpJcMeoG6lpA*) setLengthSeqV2(&((*p).blocks)->Sup, (&NTI_oUyaggHmIX9bpJcMeoG6lpA_), ((NI) ((NI)(result + ((NI) 1))))));
	(*p).blocks->data[result].id = ((NI) ((*p).labels));
	T2_ = ((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0);
	(*p).blocks->data[result].nestedTryStmts = ((NI16) (T2_));
	T3_ = (NI)0;
	T3_ = inExceptBlockLen_lPGsm5WeJbPHE8Q8iwQujw(p);
	(*p).blocks->data[result].nestedExceptStmts = ((NI16) (T3_));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, blockBody_tMtK9ba4LBR5bZYSR9avbIag)(tyObject_TBlock_GFhahvekTq3dDOkWyhchMA* b) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	result = (*b).sections[(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0))- 0];
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T5_;
		if (!(((NI16) 0) < (*b).frameLen)) goto LA3_;
		nimZeroMem((void*)T5_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T5_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*b).frameLen)));
		addf_ocEHZ9cujtqicXvDuJUm5pg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_616), T5_, 1);
	}
	LA3_: ;
	add_iMTw0CDaruwETLGb9bhpBLg(&result, (*b).sections[(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1))- 0]);
	add_iMTw0CDaruwETLGb9bhpBLg(&result, (*b).sections[(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2))- 0]);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, endBlock_12ZfBiPs9cA29axtp2bvV6zg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* blockEnd) {
	NI topBlock;
	NI T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T2_;
	T1_ = ((*p).blocks ? (*p).blocks->Sup.len : 0);
	topBlock = (NI)(T1_ - ((NI) 1));
	T2_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = blockBody_tMtK9ba4LBR5bZYSR9avbIag((&(*p).blocks->data[topBlock]));
	add_iMTw0CDaruwETLGb9bhpBLg(&(*p).blocks->data[(NI)(topBlock - ((NI) 1))].sections[(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2))- 0], T2_);
	asgnRefNoCycle((void**) (&(*p).blocks), (tySequence_oUyaggHmIX9bpJcMeoG6lpA*) setLengthSeqV2(&((*p).blocks)->Sup, (&NTI_oUyaggHmIX9bpJcMeoG6lpA_), ((NI) (topBlock))));
	line_7EHg9a9bBQrxiXUHES9aziKUQ(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), blockEnd);
}

N_LIB_PRIVATE N_NIMCALL(void, endBlock_0dpuY9coTlraj8JXIe2BzVw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p) {
	NI topBlock;
	NI T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* blockEnd;
	NI16 frameLen;
	T1_ = ((*p).blocks ? (*p).blocks->Sup.len : 0);
	topBlock = (NI)(T1_ - ((NI) 1));
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T6_;
		if (!!(((*p).blocks->data[topBlock].label == NIM_NIL))) goto LA4_;
		nimZeroMem((void*)T6_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T6_[0] = (*p).blocks->data[topBlock].label;
		blockEnd = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_614), T6_, 1);
	}
	goto LA2_;
	LA4_: ;
	{
		tyArray_qTjAvTvKF9anytN1At69aJMQ T8_;
		nimZeroMem((void*)T8_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		blockEnd = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_184), T8_, 0);
	}
	LA2_: ;
	frameLen = (*p).blocks->data[topBlock].frameLen;
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T13_;
		if (!(((NI16) 0) < frameLen)) goto LA11_;
		nimZeroMem((void*)T13_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T13_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (frameLen)));
		addf_ocEHZ9cujtqicXvDuJUm5pg(&blockEnd, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_615), T13_, 1);
	}
	LA11_: ;
	endBlock_12ZfBiPs9cA29axtp2bvV6zg(p, blockEnd);
}

N_LIB_PRIVATE N_NIMCALL(void, genBlock_8mAL9ckajemzgfLPfeZVNoQ_10)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	NI oldBreakIdx;
	tyArray_qTjAvTvKF9anytN1At69aJMQ T8_;
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = isEmptyType_9aw9cztYHpNdZjCV1t0mJqwgvmgen((*n).typ);
		T3_ = !(T4_);
		if (!(T3_)) goto LA5_;
		T3_ = ((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0));
		LA5_: ;
		if (!T3_) goto LA6_;
		getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*n).typ, d, NIM_FALSE);
	}
	LA6_: ;
	oldBreakIdx = (*p).breakIdx;
	nimZeroMem((void*)T8_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
	(*p).breakIdx = startBlock_5VnWFu9cyKySWdJiAv81lJQ(p, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_312), T8_, 0);
	{
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym;
		if (!!(((*(*n)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA11_;
		sym = (*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym;
		(*sym).loc.k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 10);
		(*sym).position = (NI)((*p).breakIdx + ((NI) 1));
	}
	LA11_: ;
	expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*n)._Ukind.S6.sons->data[((NI) 1)], d);
	endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
	(*p).breakIdx = oldBreakIdx;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, initFrameNoDebug_pzdwBzdMmIm0ZmOmWB6yqA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* frame, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* procname, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* filename, NI line) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T1_;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T2_;
	tyArray_f7nG5LD47BH5K9c6mASit3g T3_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = cgsym_0d9bDo5R2p09cv1ljqpC4l8Q((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_257));
	T1_;
	nimZeroMem((void*)T2_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T2_[0] = frame;
	addf_ocEHZ9cujtqicXvDuJUm5pg(&(*p).blocks->data[((NI) 0)].sections[(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_618), T2_, 1);
	nimZeroMem((void*)T3_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
	T3_[0] = frame;
	T3_[1] = procname;
	T3_[2] = filename;
	T3_[3] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (line)));
	result = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_619), T3_, 4);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, deinitFrameNoDebug_i9b8wSa9cUkrnf3r9bmZ8OzfA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* frame) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T1_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	nimZeroMem((void*)T1_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T1_[0] = frame;
	result = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_620), T1_, 1);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genStmtListExpr_8mAL9ckajemzgfLPfeZVNoQ_11)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	NIM_BOOL hasNimFrame;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* frameName;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = !(((*p).prc == NIM_NIL));
	if (!(T2_)) goto LA3_;
	T2_ = !((((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 13))&63U)))!=0));
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T1_ = (((*(*p).prc).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 16))&31U)))!=0);
	LA4_: ;
	hasNimFrame = T1_;
	frameName = NIM_NIL;
	{
		NI i;
		NI colontmp_;
		NI T6_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T6_ = (NI)0;
		T6_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
		colontmp_ = (NI)(T6_ - ((NI) 2));
		res = ((NI) 0);
		{
			while (1) {
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
				if (!(res <= colontmp_)) goto LA8;
				i = res;
				it = (*n)._Ukind.S6.sons->data[i];
				{
					if (!((*it).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 24))) goto LA11_;
					{
						NIM_BOOL T15_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T19_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
						tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* theMacro;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T21_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T22_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T23_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T24_;
						T15_ = (NIM_BOOL)0;
						T15_ = hasNimFrame;
						if (!(T15_)) goto LA16_;
						T15_ = (frameName == NIM_NIL);
						LA16_: ;
						if (!T15_) goto LA17_;
						(*p).labels += ((NI) 1);
						T19_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T19_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).labels)));
						T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T20_ = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_617), T19_);
						frameName = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T20_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_3));
						theMacro = (*(*it)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym;
						T21_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
						T21_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
						T22_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T22_ = makeCString_vQJydtKy4Nf6bXPYtbmjtg((*(*theMacro).name).s);
						T23_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T23_ = quotedFilename_9cv9aIRvZfYbftCtn2P2ABrQ((*(*(*p).module).g).config, (*theMacro).info);
						T24_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T24_ = initFrameNoDebug_pzdwBzdMmIm0ZmOmWB6yqA(p, frameName, T22_, T23_, ((NI) ((*it).info.line)));
						add_iMTw0CDaruwETLGb9bhpBLg(T21_, T24_);
					}
					LA17_: ;
				}
				goto LA9_;
				LA11_: ;
				{
					genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, it);
				}
				LA9_: ;
				res += ((NI) 1);
			} LA8: ;
		}
	}
	{
		NI T28_;
		NI T31_;
		T28_ = (NI)0;
		T28_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
		if (!(((NI) 0) < T28_)) goto LA29_;
		T31_ = (NI)0;
		T31_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
		expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*n)._Ukind.S6.sons->data[(NI)(T31_ - ((NI) 1))], d);
	}
	LA29_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T36_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T37_;
		if (!!((frameName == NIM_NIL))) goto LA34_;
		T36_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T36_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		T37_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T37_ = deinitFrameNoDebug_i9b8wSa9cUkrnf3r9bmZ8OzfA(p, frameName);
		add_iMTw0CDaruwETLGb9bhpBLg(T36_, T37_);
	}
	LA34_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genStmtList_UtJx89cn0a8CNSWWmaj6raA_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL hasNimFrame;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* frameName;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = !(((*p).prc == NIM_NIL));
	if (!(T2_)) goto LA3_;
	T2_ = !((((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 13))&63U)))!=0));
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T1_ = (((*(*p).prc).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 16))&31U)))!=0);
	LA4_: ;
	hasNimFrame = T1_;
	frameName = NIM_NIL;
	{
		NI i;
		NI colontmp_;
		NI T6_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T6_ = (NI)0;
		T6_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
		colontmp_ = (NI)(T6_ - ((NI) 2));
		res = ((NI) 0);
		{
			while (1) {
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
				if (!(res <= colontmp_)) goto LA8;
				i = res;
				it = (*n)._Ukind.S6.sons->data[i];
				{
					if (!((*it).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 24))) goto LA11_;
					{
						NIM_BOOL T15_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T19_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
						tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* theMacro;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T21_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T22_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T23_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T24_;
						T15_ = (NIM_BOOL)0;
						T15_ = hasNimFrame;
						if (!(T15_)) goto LA16_;
						T15_ = (frameName == NIM_NIL);
						LA16_: ;
						if (!T15_) goto LA17_;
						(*p).labels += ((NI) 1);
						T19_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T19_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).labels)));
						T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T20_ = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_617), T19_);
						frameName = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T20_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_3));
						theMacro = (*(*it)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym;
						T21_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
						T21_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
						T22_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T22_ = makeCString_vQJydtKy4Nf6bXPYtbmjtg((*(*theMacro).name).s);
						T23_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T23_ = quotedFilename_9cv9aIRvZfYbftCtn2P2ABrQ((*(*(*p).module).g).config, (*theMacro).info);
						T24_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T24_ = initFrameNoDebug_pzdwBzdMmIm0ZmOmWB6yqA(p, frameName, T22_, T23_, ((NI) ((*it).info.line)));
						add_iMTw0CDaruwETLGb9bhpBLg(T21_, T24_);
					}
					LA17_: ;
				}
				goto LA9_;
				LA11_: ;
				{
					genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, it);
				}
				LA9_: ;
				res += ((NI) 1);
			} LA8: ;
		}
	}
	{
		NI T28_;
		NI T31_;
		T28_ = (NI)0;
		T28_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
		if (!(((NI) 0) < T28_)) goto LA29_;
		T31_ = (NI)0;
		T31_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
		genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, (*n)._Ukind.S6.sons->data[(NI)(T31_ - ((NI) 1))]);
	}
	LA29_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T36_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T37_;
		if (!!((frameName == NIM_NIL))) goto LA34_;
		T36_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T36_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		T37_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T37_ = deinitFrameNoDebug_i9b8wSa9cUkrnf3r9bmZ8OzfA(p, frameName);
		add_iMTw0CDaruwETLGb9bhpBLg(T36_, T37_);
	}
	LA34_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genIf_8mAL9ckajemzgfLPfeZVNoQ_12)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* lelse;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* lend;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	lelse = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = isEmptyType_9aw9cztYHpNdZjCV1t0mJqwgvmgen((*n).typ);
		T3_ = !(T4_);
		if (!(T3_)) goto LA5_;
		T3_ = ((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0));
		LA5_: ;
		if (!T3_) goto LA6_;
		getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*n).typ, d, NIM_FALSE);
	}
	LA6_: ;
	genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, n);
	lend = getLabel_3AsTOpq9crZUYBL9aD1lXBng_6(p);
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
		tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ* colontmp_;
		NI i;
		NI L;
		NI T9_;
		it = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		colontmp_ = (tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ*)0;
		colontmp_ = (*n)._Ukind.S6.sons;
		i = ((NI) 0);
		T9_ = (colontmp_ ? colontmp_->Sup.len : 0);
		L = T9_;
		{
			while (1) {
				if (!(i < L)) goto LA11;
				it = colontmp_->data[i];
				{
					NIM_BOOL T14_;
					T14_ = (NIM_BOOL)0;
					T14_ = ((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 1));
					if (!(T14_)) goto LA15_;
					T14_ = isEmptyType_9aw9cztYHpNdZjCV1t0mJqwgvmgen((*n).typ);
					LA15_: ;
					if (!T14_) goto LA16_;
					(*d).k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0);
				}
				LA16_: ;
				{
					NI T20_;
					tyArray_qTjAvTvKF9anytN1At69aJMQ T23_;
					NI T24_;
					tyArray_mrugoXXRZUEeG9bEXo9auBKw T25_;
					T20_ = (NI)0;
					T20_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(it);
					if (!(T20_ == ((NI) 2))) goto LA21_;
					nimZeroMem((void*)T23_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
					T24_ = (NI)0;
					T24_ = startBlock_5VnWFu9cyKySWdJiAv81lJQ(p, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_312), T23_, 0);
					initLocExprSingleUse_9biTBaXPz9cezuLjjWw9cSEGw(p, (*it)._Ukind.S6.sons->data[((NI) 0)], (&a));
					lelse = getLabel_3AsTOpq9crZUYBL9aD1lXBng_6(p);
					(*p).labels += ((NI) 1);
					nimZeroMem((void*)T25_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
					T25_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
					T25_[1] = lelse;
					lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_621), T25_, 2);
					{
						NIM_BOOL T28_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T32_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T33_;
						T28_ = (NIM_BOOL)0;
						T28_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
						if (T28_) goto LA29_;
						T28_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
						LA29_: ;
						if (!T28_) goto LA30_;
						T32_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
						T32_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
						add_yG4AKzsBRS1W4MANDlXQeg(T32_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_262));
						expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*it)._Ukind.S6.sons->data[((NI) 1)], d);
						T33_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
						T33_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
						add_yG4AKzsBRS1W4MANDlXQeg(T33_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_319));
					}
					goto LA26_;
					LA30_: ;
					{
						expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*it)._Ukind.S6.sons->data[((NI) 1)], d);
					}
					LA26_: ;
					endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
					{
						NI T37_;
						tyArray_JiWwrsTRC6xqNlGcBthSVA T40_;
						T37_ = (NI)0;
						T37_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
						if (!(((NI) 1) < T37_)) goto LA38_;
						nimZeroMem((void*)T40_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
						T40_[0] = lend;
						lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_622), T40_, 1);
					}
					LA38_: ;
					fixLabel_z1hx9axqa9cHsmY7bMeZVSrQ(p, lelse);
				}
				goto LA18_;
				LA21_: ;
				{
					NI T42_;
					tyArray_qTjAvTvKF9anytN1At69aJMQ T45_;
					NI T46_;
					T42_ = (NI)0;
					T42_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(it);
					if (!(T42_ == ((NI) 1))) goto LA43_;
					nimZeroMem((void*)T45_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
					T46_ = (NI)0;
					T46_ = startBlock_5VnWFu9cyKySWdJiAv81lJQ(p, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_312), T45_, 0);
					expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*it)._Ukind.S6.sons->data[((NI) 0)], d);
					endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
				}
				goto LA18_;
				LA43_: ;
				{
					internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_623));
				}
				LA18_: ;
				i += ((NI) 1);
			} LA11: ;
		}
	}
	{
		NI T50_;
		T50_ = (NI)0;
		T50_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
		if (!(((NI) 1) < T50_)) goto LA51_;
		fixLabel_z1hx9axqa9cHsmY7bMeZVSrQ(p, lend);
	}
	LA51_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, downConv_8mAL9ckajemzgfLPfeZVNoQ_13)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	{
		NIM_BOOL T3_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T7_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T3_) goto LA4_;
		T3_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		T7_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T7_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*n)._Ukind.S6.sons->data[((NI) 0)]).typ, IL64(36239903266220304));
		T8_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T8_ = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, T7_);
		T8_;
		expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*n)._Ukind.S6.sons->data[((NI) 0)], d);
	}
	goto LA1_;
	LA5_: ;
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* dest;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* arg;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* src;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T12_;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r;
		NIM_BOOL isRef;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T13_;
		dest = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*n).typ, IL64(36239903266220304));
		arg = (*n)._Ukind.S6.sons->data[((NI) 0)];
		{
			while (1) {
				if (!((*arg).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 66))) goto LA11;
				arg = (*arg)._Ukind.S6.sons->data[((NI) 0)];
			} LA11: ;
		}
		src = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*arg).typ, IL64(36239903266220304));
		T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, src);
		T12_;
		nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, arg, (&a));
		r = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
		T13_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T13_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*arg).typ, IL64(36099165763184912));
		isRef = ((IL64(140737503035392) &((NU64)1<<((NU)((*T13_).kind)&63U)))!=0);
		{
			if (!isRef) goto LA16_;
			add_yG4AKzsBRS1W4MANDlXQeg(&r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_624));
		}
		goto LA14_;
		LA16_: ;
		{
			add_yG4AKzsBRS1W4MANDlXQeg(&r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_176));
		}
		LA14_: ;
		{
			NI i;
			NI colontmp_;
			NI T20_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T20_ = (NI)0;
			T20_ = inheritanceDiff_1dM2iQB5qStJfnn3684ijQ_2(dest, src);
			colontmp_ = (T20_ > 0? (T20_) : -(T20_));
			res = ((NI) 2);
			{
				while (1) {
					if (!(res <= colontmp_)) goto LA22;
					i = res;
					add_yG4AKzsBRS1W4MANDlXQeg(&r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_176));
					res += ((NI) 1);
				} LA22: ;
			}
		}
		{
			if (!isRef) goto LA25_;
			{
				NIM_BOOL T29_;
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T31_;
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T34_;
				T29_ = (NIM_BOOL)0;
				T29_ = ((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0));
				if (!(T29_)) goto LA30_;
				T31_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T31_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*n).typ, IL64(36099165763184912));
				T29_ = ((IL64(140737503035392) &((NU64)1<<((NU)((*T31_).kind)&63U)))!=0);
				LA30_: ;
				if (!T29_) goto LA32_;
				getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*n).typ, d, NIM_FALSE);
				nimZeroMem((void*)T34_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T34_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&(*d)));
				T34_[1] = r;
				linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_625), T34_, 2);
			}
			goto LA27_;
			LA32_: ;
			{
				r = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_45), r);
				putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, n, r, a.storage);
			}
			LA27_: ;
		}
		goto LA23_;
		LA25_: ;
		{
			putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, n, r, a.storage);
		}
		LA23_: ;
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, upConv_8mAL9ckajemzgfLPfeZVNoQ_14)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* dest;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n)._Ukind.S6.sons->data[((NI) 0)], (&a));
	dest = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*n).typ, IL64(36239903266220304));
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* nilCheck;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T8_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T25_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 1))&31U)))!=0);
		if (!(T3_)) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = isObjLackingTypeField_JIeDKK3bgEYJKEAkiaujRgcgen(dest);
		T3_ = !(T5_);
		LA4_: ;
		if (!T3_) goto LA6_;
		r = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
		nilCheck = NIM_NIL;
		T8_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T8_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&a));
		t = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(T8_, IL64(36099165763184912));
		{
			while (1) {
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T24_;
				if (!((IL64(140737503035392) &((NU64)1<<((NU)((*t).kind)&63U)))!=0)) goto LA10;
				{
					if (!!(((IL64(140737496743936) &((NU64)1<<((NU)((*t).kind)&63U)))!=0))) goto LA13_;
					nilCheck = r;
				}
				LA13_: ;
				{
					NIM_BOOL T17_;
					NIM_BOOL T19_;
					tyArray_JiWwrsTRC6xqNlGcBthSVA T23_;
					T17_ = (NIM_BOOL)0;
					T17_ = !(((IL64(140737496743936) &((NU64)1<<((NU)((*t).kind)&63U)))!=0));
					if (T17_) goto LA18_;
					T19_ = (NIM_BOOL)0;
					T19_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
					if (T19_) goto LA20_;
					T19_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
					LA20_: ;
					T17_ = !(T19_);
					LA18_: ;
					if (!T17_) goto LA21_;
					nimZeroMem((void*)T23_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
					T23_[0] = r;
					r = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_137), T23_, 1);
				}
				LA21_: ;
				T24_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T24_ = lastSon_ab52xel9cFebv9am0xV04xXA(t);
				t = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(T24_, IL64(36099165763184912));
			} LA10: ;
		}
		T25_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T25_ = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, t);
		T25_;
		{
			NIM_BOOL T28_;
			T28_ = (NIM_BOOL)0;
			T28_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
			if (T28_) goto LA29_;
			T28_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA29_: ;
			if (!!(T28_)) goto LA30_;
			{
				while (1) {
					NIM_BOOL T34_;
					T34_ = (NIM_BOOL)0;
					T34_ = ((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17));
					if (!(T34_)) goto LA35_;
					T34_ = !(((*t).sons->data[((NI) 0)] == NIM_NIL));
					LA35_: ;
					if (!T34_) goto LA33;
					add_yG4AKzsBRS1W4MANDlXQeg(&r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_176));
					t = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*t).sons->data[((NI) 0)], IL64(36239903266179344));
				} LA33: ;
			}
		}
		LA30_: ;
		{
			tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T40_;
			if (!!((nilCheck == NIM_NIL))) goto LA38_;
			nimZeroMem((void*)T40_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
			T40_[0] = nilCheck;
			T40_[1] = r;
			T40_[2] = genTypeInfo_7P9bdUkiYYdBWl5P39cGpERw((*p).module, dest, (*n).info);
			linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_626), T40_, 3);
		}
		goto LA36_;
		LA38_: ;
		{
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T42_;
			nimZeroMem((void*)T42_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T42_[0] = r;
			T42_[1] = genTypeInfo_7P9bdUkiYYdBWl5P39cGpERw((*p).module, dest, (*n).info);
			linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_627), T42_, 2);
		}
		LA36_: ;
	}
	LA6_: ;
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T47_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T48_;
		if (!!(((*(*(*n)._Ukind.S6.sons->data[((NI) 0)]).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17)))) goto LA45_;
		nimZeroMem((void*)T47_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T47_[0] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, (*n).typ);
		T47_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
		T48_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T48_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_515), T47_, 2);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, n, T48_, a.storage);
	}
	goto LA43_;
	LA45_: ;
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T50_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T51_;
		nimZeroMem((void*)T50_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T50_[0] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, dest);
		T50_[1] = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, (&a));
		T51_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T51_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_514), T50_, 2);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, n, T51_, a.storage);
	}
	LA43_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genRangeChck_s6WVujc8IISl9b7Y39bTXvlw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* magic) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* dest;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	dest = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*n).typ, IL64(36239903259928848));
	{
		NIM_BOOL T3_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T5_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T8_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
		T3_ = (NIM_BOOL)0;
		T3_ = !((((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 3))&31U)))!=0));
		if (T3_) goto LA4_;
		T5_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T5_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(dest, 1048576);
		T3_ = ((IL64(34084860461056) &((NU64)1<<((NU)((*T5_).kind)&63U)))!=0);
		LA4_: ;
		if (!T3_) goto LA6_;
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n)._Ukind.S6.sons->data[((NI) 0)], (&a));
		nimZeroMem((void*)T8_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T8_[0] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, dest);
		T8_[1] = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2((&a));
		T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T9_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_515), T8_, 2);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, n, T9_, a.storage);
	}
	goto LA1_;
	LA6_: ;
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T11_;
		tyArray_duFhZXIIlrbrM62cWjNekg T12_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T13_;
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n)._Ukind.S6.sons->data[((NI) 0)], (&a));
		T11_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		T11_ = lodeTyp_8thmRpt8YNsc9cFM33hAlHw(dest);
		nimZeroMem((void*)T12_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T12_[0] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, dest);
		T12_[1] = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2((&a));
		T12_[2] = genLiteral_qifZy01sZ5OX01eT5FP76w(p, (*n)._Ukind.S6.sons->data[((NI) 1)], dest);
		T12_[3] = genLiteral_qifZy01sZ5OX01eT5FP76w(p, (*n)._Ukind.S6.sons->data[((NI) 2)], dest);
		T12_[4] = rope_yShmEg9cffWxI7s5XzEKBow(magic);
		T13_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T13_ = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_628), T12_, 5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, T11_, T13_, a.storage);
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, convStrToCStr_8mAL9ckajemzgfLPfeZVNoQ_15)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T2_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n)._Ukind.S6.sons->data[((NI) 0)], (&a));
	nimZeroMem((void*)T1_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T1_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
	T2_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_452), T1_, 1);
	putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, n, T2_, a.storage);
}

N_LIB_PRIVATE N_NIMCALL(void, convCStrToStr_8mAL9ckajemzgfLPfeZVNoQ_16)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T2_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n)._Ukind.S6.sons->data[((NI) 0)], (&a));
	nimZeroMem((void*)T1_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T1_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
	T2_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_492), T1_, 1);
	putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, n, T2_, a.storage);
	gcUsage_Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, n);
}

static N_INLINE(NIM_BOOL, isRoutine_r9cAFhCIx1KQ7kiILYnBfeAparampatterns)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((520192 &(1U<<((NU)((*s).kind)&31U)))!=0);
	return result;
}

static N_INLINE(NIM_BOOL, isConstClosure_cw9b4FeB3czQDBAn8OhomGAcgen)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = ((*(*n)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
	if (!(T2_)) goto LA3_;
	T2_ = isRoutine_r9cAFhCIx1KQ7kiILYnBfeAparampatterns((*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym);
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T1_ = ((*(*n)._Ukind.S6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 23));
	LA4_: ;
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genClosure_8mAL9ckajemzgfLPfeZVNoQ_17)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	{
		NIM_BOOL T3_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tmp;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T6_;
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = isConstClosure_cw9b4FeB3czQDBAn8OhomGAcgen(n);
		if (!T3_) goto LA4_;
		(*(*p).module).labels += ((NI) 1);
		T6_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T6_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*(*p).module).labels)));
		tmp = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_632), T6_);
		nimZeroMem((void*)T7_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T7_[0] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, (*n).typ);
		T7_[1] = tmp;
		T7_[2] = genConstExpr_NYI5fC69aIqZGRakncXv9cNQ_3(p, n);
		addf_ocEHZ9cujtqicXvDuJUm5pg(&(*(*p).module).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_585), T7_, 3);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, n, tmp, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 1));
	}
	goto LA1_;
	LA4_: ;
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp_2;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T14_;
		nimZeroMem((void*)(&tmp_2), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n)._Ukind.S6.sons->data[((NI) 0)], (&a));
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n)._Ukind.S6.sons->data[((NI) 1)], (&b));
		{
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T11_;
			T11_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
			T11_ = skipConv_6rsSLwtlU9c53a6w69be5JlQ((*n)._Ukind.S6.sons->data[((NI) 0)]);
			if (!((*T11_).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 155))) goto LA12_;
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_633));
		}
		LA12_: ;
		getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*n).typ, (&tmp_2), NIM_FALSE);
		nimZeroMem((void*)T14_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T14_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&tmp_2));
		T14_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
		T14_[2] = rdLoc_xidyzuHqIciXbQyEOKahDg((&b));
		linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_634), T14_, 3);
		putLocIntoDest_SkhzpH2DDHJ7pbmCpsHIPg(p, d, (&tmp_2));
	}
	LA1_: ;
}

static N_INLINE(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, assignLabel_mIFKIo7g6Echd7EokLhQegcgen)(tyObject_TBlock_GFhahvekTq3dDOkWyhchMA* b) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T1_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*b).id)));
	unsureAsgnRef((void**) (&(*b).label), amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_348), T1_));
	result = (*b).label;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genComputedGoto_UtJx89cn0a8CNSWWmaj6raA_6)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NI casePos;
	NI arraySize;
	NI id;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tmp;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T31_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* gotoArray;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T32_;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T37_;
	NI topBlock;
	NI T38_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* oldBody;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tailB;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tailA;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* caseStmt;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T45_;
{	casePos = ((NI) -1);
	arraySize = (NI)0;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				it = (*n)._Ukind.S6.sons->data[i];
				{
					NI64 aSize;
					if (!((*it).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 97))) goto LA6_;
					{
						tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T10_;
						T10_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
						T10_ = lastSon_esDJA7239bJDiq4UrX9aHCjg(it);
						if (!!(((*T10_).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 85)))) goto LA11_;
						localError_NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*it).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_636));
						goto BeforeRet_;
					}
					LA11_: ;
					casePos = i;
					{
						NIM_BOOL T15_;
						T15_ = (NIM_BOOL)0;
						T15_ = enumHasHoles_oBaRrNx0TwrublbZIUKenA_2((*(*it)._Ukind.S6.sons->data[((NI) 0)]).typ);
						if (!T15_) goto LA16_;
						localError_NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*it).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_637));
						goto BeforeRet_;
					}
					LA16_: ;
					aSize = lengthOrd_4cSIntenL9aBXY6LAFsvXdQ_2((*(*(*p).module).g).config, (*(*it)._Ukind.S6.sons->data[((NI) 0)]).typ);
					{
						if (!(IL64(10000) < aSize)) goto LA20_;
						localError_NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*it).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_638));
						goto BeforeRet_;
					}
					LA20_: ;
					arraySize = ((NI) (aSize));
					{
						NI64 T24_;
						T24_ = (NI64)0;
						T24_ = firstOrd_4cSIntenL9aBXY6LAFsvXdQ((*(*(*p).module).g).config, (*(*it)._Ukind.S6.sons->data[((NI) 0)]).typ);
						if (!!((T24_ == IL64(0)))) goto LA25_;
						localError_NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*it).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_639));
						goto BeforeRet_;
					}
					LA25_: ;
				}
				LA6_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	{
		if (!(casePos < ((NI) 0))) goto LA29_;
		localError_NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_640));
		goto BeforeRet_;
	}
	LA29_: ;
	id = (NI)(((NI) ((*p).labels)) + ((NI) 1));
	(*p).labels += (NI)(arraySize + ((NI) 1));
	nimZeroMem((void*)T31_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T31_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (id)));
	tmp = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_641), T31_, 1);
	nimZeroMem((void*)T32_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T32_[0] = tmp;
	T32_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (arraySize)));
	gotoArray = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_642), T32_, 2);
	{
		NI i_3;
		NI colontmp__2;
		NI res;
		i_3 = (NI)0;
		colontmp__2 = (NI)0;
		colontmp__2 = (NI)(arraySize - ((NI) 1));
		res = ((NI) 1);
		{
			while (1) {
				tyArray_JiWwrsTRC6xqNlGcBthSVA T36_;
				if (!(res <= colontmp__2)) goto LA35;
				i_3 = res;
				nimZeroMem((void*)T36_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
				T36_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((NI)(id + i_3))));
				addf_ocEHZ9cujtqicXvDuJUm5pg(&gotoArray, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_643), T36_, 1);
				res += ((NI) 1);
			} LA35: ;
		}
	}
	nimZeroMem((void*)T37_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T37_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((NI)(id + arraySize))));
	addf_ocEHZ9cujtqicXvDuJUm5pg(&gotoArray, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_644), T37_, 1);
	line_7EHg9a9bBQrxiXUHES9aziKUQ(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0), gotoArray);
	T38_ = ((*p).blocks ? (*p).blocks->Sup.len : 0);
	topBlock = (NI)(T38_ - ((NI) 1));
	oldBody = (*p).blocks->data[topBlock].sections[(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2))- 0];
	asgnRefNoCycle((void**) (&(*p).blocks->data[topBlock].sections[(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2))- 0]), NIM_NIL);
	{
		NI j;
		NI colontmp__3;
		NI colontmp__4;
		NI i_4;
		j = (NI)0;
		colontmp__3 = (NI)0;
		colontmp__4 = (NI)0;
		colontmp__3 = (NI)(casePos + ((NI) 1));
		colontmp__4 = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
		i_4 = colontmp__3;
		{
			while (1) {
				if (!(i_4 < colontmp__4)) goto LA41;
				j = i_4;
				genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, (*n)._Ukind.S6.sons->data[j]);
				i_4 += ((NI) 1);
			} LA41: ;
		}
	}
	tailB = (*p).blocks->data[topBlock].sections[(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2))- 0];
	asgnRefNoCycle((void**) (&(*p).blocks->data[topBlock].sections[(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2))- 0]), NIM_NIL);
	{
		NI j_2;
		NI colontmp__5;
		NI res_2;
		j_2 = (NI)0;
		colontmp__5 = (NI)0;
		colontmp__5 = (NI)(casePos - ((NI) 1));
		res_2 = ((NI) 0);
		{
			while (1) {
				if (!(res_2 <= colontmp__5)) goto LA44;
				j_2 = res_2;
				genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, (*n)._Ukind.S6.sons->data[j_2]);
				res_2 += ((NI) 1);
			} LA44: ;
		}
	}
	tailA = (*p).blocks->data[topBlock].sections[(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2))- 0];
	asgnRefNoCycle((void**) (&(*p).blocks->data[topBlock].sections[(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2))- 0]), amp__mFDAEkd1kysB0V9aBd20A9aA(oldBody, tailA));
	caseStmt = (*n)._Ukind.S6.sons->data[casePos];
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*caseStmt)._Ukind.S6.sons->data[((NI) 0)], (&a));
	nimZeroMem((void*)T45_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T45_[0] = tmp;
	T45_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
	lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_645), T45_, 2);
	{
		NI i_5;
		NI colontmp__6;
		NI i_6;
		i_5 = (NI)0;
		colontmp__6 = (NI)0;
		colontmp__6 = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(caseStmt);
		i_6 = ((NI) 1);
		{
			while (1) {
				tyArray_qTjAvTvKF9anytN1At69aJMQ T49_;
				NI T50_;
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it_2;
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T60_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T61_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T62_;
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_2;
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T63_;
				if (!(i_6 < colontmp__6)) goto LA48;
				i_5 = i_6;
				nimZeroMem((void*)T49_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
				T50_ = (NI)0;
				T50_ = startBlock_5VnWFu9cyKySWdJiAv81lJQ(p, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_312), T49_, 0);
				it_2 = (*caseStmt)._Ukind.S6.sons->data[i_5];
				{
					NI j_3;
					NI colontmp__7;
					NI T52_;
					NI res_3;
					j_3 = (NI)0;
					colontmp__7 = (NI)0;
					T52_ = (NI)0;
					T52_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(it_2);
					colontmp__7 = (NI)(T52_ - ((NI) 2));
					res_3 = ((NI) 0);
					{
						while (1) {
							NI64 val;
							tyArray_JiWwrsTRC6xqNlGcBthSVA T59_;
							if (!(res_3 <= colontmp__7)) goto LA54;
							j_3 = res_3;
							{
								if (!((*(*it_2)._Ukind.S6.sons->data[j_3]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA57_;
								localError_NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*it_2).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_646));
								goto BeforeRet_;
							}
							LA57_: ;
							val = getOrdValue_k4X4XP9cdVXYioHD9akA9bVbQ((*it_2)._Ukind.S6.sons->data[j_3]);
							nimZeroMem((void*)T59_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
							T59_[0] = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg((NI64)((NI64)(val + ((NI64) (id))) + IL64(1)));
							lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_647), T59_, 1);
							res_3 += ((NI) 1);
						} LA54: ;
					}
				}
				T60_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
				T60_ = lastSon_esDJA7239bJDiq4UrX9aHCjg(it_2);
				genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, T60_);
				T61_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T61_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				add_iMTw0CDaruwETLGb9bhpBLg(T61_, tailB);
				T62_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T62_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				add_iMTw0CDaruwETLGb9bhpBLg(T62_, tailA);
				nimZeroMem((void*)(&a_2), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*caseStmt)._Ukind.S6.sons->data[((NI) 0)], (&a_2));
				nimZeroMem((void*)T63_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T63_[0] = tmp;
				T63_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a_2));
				lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_645), T63_, 2);
				endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
				i_6 += ((NI) 1);
			} LA48: ;
		}
	}
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genWhileStmt_QrTB5DOwbDX9bKAW7PNbuJA_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	NI oldBreakIdx;
	tyArray_qTjAvTvKF9anytN1At69aJMQ T1_;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* loopBody;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	(*p).withinLoop += ((NI) 1);
	genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
	oldBreakIdx = (*p).breakIdx;
	nimZeroMem((void*)T1_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
	(*p).breakIdx = startBlock_5VnWFu9cyKySWdJiAv81lJQ(p, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_635), T1_, 0);
	(*p).blocks->data[(*p).breakIdx].isLoop = NIM_TRUE;
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*t)._Ukind.S6.sons->data[((NI) 0)], (&a));
	{
		NIM_BOOL T4_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* label;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T8_;
		T4_ = (NIM_BOOL)0;
		T4_ = !(((*(*t)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 6)));
		if (T4_) goto LA5_;
		T4_ = ((*(*t)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S1.intVal == IL64(0));
		LA5_: ;
		if (!T4_) goto LA6_;
		label = assignLabel_mIFKIo7g6Echd7EokLhQegcgen((&(*p).blocks->data[(*p).breakIdx]));
		nimZeroMem((void*)T8_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T8_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
		T8_[1] = label;
		lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_621), T8_, 2);
	}
	LA6_: ;
	loopBody = (*t)._Ukind.S6.sons->data[((NI) 1)];
	{
		NIM_BOOL T11_;
		T11_ = (NIM_BOOL)0;
		T11_ = stmtsContainPragma_9aY8Dd0aB4xmQTh5kptvVOg(loopBody, ((tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw) 184));
		if (!(T11_)) goto LA12_;
		T11_ = ((CC_78I18QZNZFIv9ah7oETc0jg[((*(*(*(*p).module).g).config).cCompiler)- 1].Field19 &(1U<<((NU)(((tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg) 1))&7U)))!=0);
		LA12_: ;
		if (!T11_) goto LA13_;
		{
			NIM_BOOL T17_;
			NI T18_;
			T17_ = (NIM_BOOL)0;
			T18_ = (NI)0;
			T18_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(loopBody);
			T17_ = (T18_ == ((NI) 2));
			if (!(T17_)) goto LA19_;
			T17_ = ((*(*loopBody)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1));
			LA19_: ;
			if (!T17_) goto LA20_;
			loopBody = (*loopBody)._Ukind.S6.sons->data[((NI) 1)];
		}
		LA20_: ;
		genComputedGoto_UtJx89cn0a8CNSWWmaj6raA_6(p, loopBody);
	}
	goto LA9_;
	LA13_: ;
	{
		genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, loopBody);
	}
	LA9_: ;
	{
		tyArray_qTjAvTvKF9anytN1At69aJMQ T27_;
		if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 20))&31U)))!=0)) goto LA25_;
		nimZeroMem((void*)T27_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_648), T27_, 0);
	}
	LA25_: ;
	endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
	(*p).breakIdx = oldBreakIdx;
	(*p).withinLoop -= ((NI) 1);
}

N_LIB_PRIVATE N_NIMCALL(void, genGotoVar_4xOIY9bgIMy9bAzg2ZyIieBw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* value) {
	{
		if (!!(((*value).kind >= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*value).kind <= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 15)))) goto LA3_;
		localError_NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*value).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_649));
	}
	goto LA1_;
	LA3_: ;
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T6_;
		nimZeroMem((void*)T6_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T6_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ((*value)._Ukind.S1.intVal);
		lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_650), T6_, 1);
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, varInDynamicLib_5Uk70SBbgLBcInZnRFJtnA_4)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym) {
	tyObject_TLib_NBMxlJ6g3utqUlplqTTHkA* lib;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* extname;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tmp;
	tyArray_f7nG5LD47BH5K9c6mASit3g T1_;
	NimStringDesc* T2_;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T3_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T4_;
	lib = (*sym).annex;
	extname = (*sym).loc.r;
	loadDynamicLib_rOv9bE9csBi1MWNoAOUzHcBg(m, lib);
	(*sym).loc.flags |= ((NU16)1)<<((((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 0))%(sizeof(NU16)*8));
	tmp = mangleDynLibProc_MkmvPNwLUVhzodPsMjdbJw(sym);
	asgnRefNoCycle((void**) (&(*sym).loc.r), tmp);
	(*m).labels += ((NI) 2);
	nimZeroMem((void*)T1_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
	T1_[0] = tmp;
	T1_[1] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2(m, (*sym).typ);
	T1_[2] = (*lib).name;
	T2_ = (NimStringDesc*)0;
	T2_ = dollar__4KNdcWAONkpTKQgUR8XiZQ(extname);
	T1_[3] = makeCString_vQJydtKy4Nf6bXPYtbmjtg(T2_);
	appcg_GrB2Hbyo8XeK6TPKMD0Y5A(m, &(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_651), T1_, 4);
	nimZeroMem((void*)T3_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T3_[0] = (*sym).loc.r;
	T4_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T4_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&(*sym).loc));
	T3_[1] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2(m, T4_);
	addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_652), T3_, 2);
}

N_LIB_PRIVATE N_NIMCALL(void, assignGlobalVar_UtJx89cn0a8CNSWWmaj6raA_8)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s;
{	s = (*n)._Ukind.S4.sym;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T5_;
		if (!((*s).loc.k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA3_;
		T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T5_ = mangleName_lo8D59ciMfLVeiUtGYx89bOg((*p).module, s);
		fillLoc_US6BUWbxbS9bTHtpMCqKFkw((&(*s).loc), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 3), n, T5_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 4));
	}
	LA3_: ;
	{
		tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* q;
		if (!(((*s).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 4))&15U)))!=0)) goto LA8_;
		q = findPendingModule_QkizK2DHRxMh5swL3xy9bjQ((*p).module, s);
		{
			NIM_BOOL T12_;
			NIM_BOOL T14_;
			T12_ = (NIM_BOOL)0;
			T12_ = !((q == NIM_NIL));
			if (!(T12_)) goto LA13_;
			T14_ = (NIM_BOOL)0;
			T14_ = containsOrIncl_B0EhVMrh5BBBZOOtYjAvVg((&(*q).declaredThings), (*s).Sup.id);
			T12_ = !(T14_);
			LA13_: ;
			if (!T12_) goto LA15_;
			varInDynamicLib_5Uk70SBbgLBcInZnRFJtnA_4(q, s);
		}
		goto LA10_;
		LA15_: ;
		{
			asgnRefNoCycle((void**) (&(*s).loc.r), mangleDynLibProc_MkmvPNwLUVhzodPsMjdbJw(s));
		}
		LA10_: ;
		goto BeforeRet_;
	}
	LA8_: ;
	useHeader_Ckp4X4sj45vdj9bafLr5LQw((*p).module, s);
	{
		if (!(((*s).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 3))&15U)))!=0)) goto LA20_;
		goto BeforeRet_;
	}
	LA20_: ;
	{
		if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 23))&63U)))!=0)) goto LA24_;
		declareThreadVar_aYevuGpX9cFv5Jxa39aUJomg((*p).module, s, (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 5))&63U)))!=0));
	}
	goto LA22_;
	LA24_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* decl;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* td;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T27_;
		decl = NIM_NIL;
		T27_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T27_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&(*s).loc));
		td = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, T27_);
		{
			tyArray_JiWwrsTRC6xqNlGcBthSVA T44_;
			if (!((*s).constraint == 0)) goto LA30_;
			{
				if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 5))&63U)))!=0)) goto LA34_;
				add_yG4AKzsBRS1W4MANDlXQeg(&decl, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_280));
			}
			LA34_: ;
			add_iMTw0CDaruwETLGb9bhpBLg(&decl, td);
			{
				if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 8))&63U)))!=0)) goto LA38_;
				add_yG4AKzsBRS1W4MANDlXQeg(&decl, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_133));
			}
			LA38_: ;
			{
				if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 7))&63U)))!=0)) goto LA42_;
				add_yG4AKzsBRS1W4MANDlXQeg(&decl, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_134));
			}
			LA42_: ;
			nimZeroMem((void*)T44_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T44_[0] = (*s).loc.r;
			addf_ocEHZ9cujtqicXvDuJUm5pg(&decl, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_282), T44_, 1);
		}
		goto LA28_;
		LA30_: ;
		{
			NimStringDesc* T46_;
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T47_;
			T46_ = (NimStringDesc*)0;
			T46_ = rawNewString(((*(*s).constraint)._Ukind.S3.strVal ? (*(*s).constraint)._Ukind.S3.strVal->Sup.len : 0) + 3);
appendString(T46_, (*(*s).constraint)._Ukind.S3.strVal);
appendString(T46_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_464));
			nimZeroMem((void*)T47_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T47_[0] = td;
			T47_[1] = (*s).loc.r;
			decl = percent__9bvKdnhoYI2ta9agQNm3orMA(T46_, T47_, 2);
		}
		LA28_: ;
		add_iMTw0CDaruwETLGb9bhpBLg(&(*(*p).module).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], decl);
	}
	LA22_: ;
	{
		if (!(((NI) 0) < (*p).withinLoop)) goto LA50_;
		resetLoc_B9bNAYVEwjQtkUkvoOVhV2Q(p, (&(*s).loc));
	}
	LA50_: ;
	{
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T56_;
		NimStringDesc* T57_;
		NimStringDesc* T58_;
		if (!(((*(*(*p).module).module).options & 327680) == 327680)) goto LA54_;
		nimZeroMem((void*)T56_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T57_ = (NimStringDesc*)0;
		T57_ = rawNewString(((*(*(*s).owner).name).s ? (*(*(*s).owner).name).s->Sup.len : 0) + ((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 1);
appendString(T57_, (*(*(*s).owner).name).s);
appendChar(T57_, 46);
appendString(T57_, (*(*s).name).s);
		T58_ = (NimStringDesc*)0;
		T58_ = nsuNormalize(T57_);
		T56_[0] = makeCString_vQJydtKy4Nf6bXPYtbmjtg(T58_);
		T56_[1] = (*s).loc.r;
		T56_[2] = genTypeInfo_7P9bdUkiYYdBWl5P39cGpERw((*p).module, (*s).typ, (*n).info);
		appcg_GrB2Hbyo8XeK6TPKMD0Y5A((*p).module, &(*(*p).module).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 15))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_653), T56_, 3);
	}
	LA54_: ;
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genTraverseProcForGlobal_jq7V9aOuskruyTpimXVl8QQ)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T2_;
	tyObject_TTraversalClosure_xQv4a9atAYFpL11GCS9cY9bCg c;
	tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* sLoc;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* header;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T9_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T10_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* generatedProc;
	tyArray_f7nG5LD47BH5K9c6mASit3g T11_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T12_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T13_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T14_;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T15_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&(*s).loc));
	T2_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = genTypeInfo_7P9bdUkiYYdBWl5P39cGpERw(m, T1_, info);
	T2_;
	nimZeroMem((void*)(&c), sizeof(tyObject_TTraversalClosure_xQv4a9atAYFpL11GCS9cY9bCg));
	p = newProc_STnnVeEn5Wp52dw0JRN7ZQ(NIM_NIL, m);
	sLoc = (*s).loc.r;
	result = getTempName_9cFzUT5Cyfi5u0F447WwLvA(m);
	{
		NIM_BOOL T5_;
		T5_ = (NIM_BOOL)0;
		T5_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 23))&63U)))!=0);
		if (!(T5_)) goto LA6_;
		T5_ = emulatedThreadVars_viA2VrQ9cI0jU5DX49b1MeYgcgen((*(*m).g).config);
		LA6_: ;
		if (!T5_) goto LA7_;
		accessThreadLocalVar_IpGUPLhMYizrVHs0OdHySA_3(p, s);
		sLoc = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_339), sLoc);
	}
	LA7_: ;
	c.visitorFrmt = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_654));
	c.p = p;
	nimZeroMem((void*)T9_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T9_[0] = result;
	header = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_655), T9_, 1);
	T10_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T10_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&(*s).loc));
	genTraverseProc_LXrm7ZbTiXTVtbB5E60yIA_2(c, sLoc, T10_);
	nimZeroMem((void*)T11_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
	T11_[0] = header;
	T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T12_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
	T11_[1] = (*T12_);
	T13_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T13_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1));
	T11_[2] = (*T13_);
	T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T14_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	T11_[3] = (*T14_);
	generatedProc = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_221), T11_, 4);
	nimZeroMem((void*)T15_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T15_[0] = header;
	addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 7))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_222), T15_, 1);
	add_iMTw0CDaruwETLGb9bhpBLg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], generatedProc);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, registerGcRoot_9bU9aKybzNLHLYGtzhHXXPkg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* v) {
	{
		NIM_BOOL T3_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T5_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* prc;
		T3_ = (NIM_BOOL)0;
		T3_ = ((240 &(1U<<((NU)((*(*(*(*p).module).g).config).selectedGC)&7U)))!=0);
		if (!(T3_)) goto LA4_;
		T5_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T5_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&(*v).loc));
		T3_ = containsGarbageCollectedRef_IVXYI9cxSeivThgKCncHRnA(T5_);
		LA4_: ;
		if (!T3_) goto LA6_;
		prc = genTraverseProcForGlobal_jq7V9aOuskruyTpimXVl8QQ((*p).module, v, (*v).info);
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T12_;
			tyArray_JiWwrsTRC6xqNlGcBthSVA T13_;
			if (!(((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 23))&63U)))!=0)) goto LA10_;
			T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T12_ = procSec_oPjlsf0lwosYuh6KXhkqLQ_2cgen((*(*p).module).initProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1));
			nimZeroMem((void*)T13_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T13_[0] = prc;
			appcg_GrB2Hbyo8XeK6TPKMD0Y5A((*p).module, T12_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_656), T13_, 1);
		}
		goto LA8_;
		LA10_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T15_;
			tyArray_JiWwrsTRC6xqNlGcBthSVA T16_;
			T15_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T15_ = procSec_oPjlsf0lwosYuh6KXhkqLQ_2cgen((*(*p).module).initProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1));
			nimZeroMem((void*)T16_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T16_[0] = prc;
			appcg_GrB2Hbyo8XeK6TPKMD0Y5A((*p).module, T15_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_657), T16_, 1);
		}
		LA8_: ;
	}
	LA6_: ;
}

static N_INLINE(NIM_BOOL, isAssignedImmediately_udBNoPxZaHjsWUNp37jAdwcgen)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA3_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = isInvalidReturnType_ugBeCbo3I6LqXHcpCBFN9ag(conf, (*n).typ);
		if (!T7_) goto LA8_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA8_: ;
	result = NIM_TRUE;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genAsgnCall_HKkL9adNEIcNHeJ0iZ6uitg_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T3_;
		T3_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T3_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*ri)._Ukind.S6.sons->data[((NI) 0)]).typ, IL64(70368744179728));
		if (!((*T3_).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8))) goto LA4_;
		genClosureCall_HKkL9adNEIcNHeJ0iZ6uitg(p, le, ri, d);
	}
	goto LA1_;
	LA4_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = ((*(*ri)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
		if (!(T7_)) goto LA8_;
		T7_ = (((*(*(*ri)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA8_: ;
		if (!T7_) goto LA9_;
		genInfixCall_HKkL9adNEIcNHeJ0iZ6uitg_2(p, le, ri, d);
	}
	goto LA1_;
	LA9_: ;
	{
		NIM_BOOL T12_;
		T12_ = (NIM_BOOL)0;
		T12_ = ((*(*ri)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
		if (!(T12_)) goto LA13_;
		T12_ = (((*(*(*ri)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 29))&63U)))!=0);
		LA13_: ;
		if (!T12_) goto LA14_;
		genNamedParamCall_9azKdI6vAayTOFEcJtCTo1g(p, ri, d);
	}
	goto LA1_;
	LA14_: ;
	{
		genPrefixCall_HKkL9adNEIcNHeJ0iZ6uitg_3(p, le, ri, d);
	}
	LA1_: ;
	postStmtActions_bNG6Lz1b9a5TVMLjP9cTlLjwcgen(p);
}

static N_INLINE(void, loadInto_vkEx8Dn9aiGOI04WjvQIHIwcgen)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a) {
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*ri).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*ri).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*ri).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*ri).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*ri).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*ri).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*ri).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 32));
		if (!(T3_)) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = !(((*(*ri)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)));
		if (T5_) goto LA6_;
		T5_ = ((*(*(*ri)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym).magic == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 0));
		LA6_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA7_;
		genAsgnCall_HKkL9adNEIcNHeJ0iZ6uitg_4(p, le, ri, a);
	}
	goto LA1_;
	LA7_: ;
	{
		if (!((*ri).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 47) || (*ri).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 65))) goto LA10_;
		genDeref_BLGSHeDM9cawDE7Hp9bscFgg(p, ri, a, NIM_TRUE);
	}
	goto LA1_;
	LA10_: ;
	{
		expr_8mAL9ckajemzgfLPfeZVNoQ(p, ri, a);
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genSingleVar_9c6v9b6B8RZkui111YH4cbEw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* vn;
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* v;
	tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* targetProc;
{	vn = (*a)._Ukind.S6.sons->data[((NI) 0)];
	v = (*vn)._Ukind.S4.sym;
	{
		if (!(((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 24))&63U)))!=0)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!(((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 31))&63U)))!=0)) goto LA7_;
		genGotoVar_4xOIY9bgIMy9bAzg2ZyIieBw(p, (*a)._Ukind.S6.sons->data[((NI) 2)]);
		goto BeforeRet_;
	}
	LA7_: ;
	targetProc = p;
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA loc;
		if (!(((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0)) goto LA11_;
		{
			NIM_BOOL T15_;
			NIM_BOOL T16_;
			T15_ = (NIM_BOOL)0;
			T16_ = (NIM_BOOL)0;
			T16_ = (((*v).flags & 96) == 32);
			if (!(T16_)) goto LA17_;
			T16_ = ((*(*a)._Ukind.S6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1));
			LA17_: ;
			T15_ = T16_;
			if (!(T15_)) goto LA18_;
			T15_ = !((((*v).loc.flags & 72) == 0));
			LA18_: ;
			if (!T15_) goto LA19_;
			goto BeforeRet_;
		}
		LA19_: ;
		{
			if (!(((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 9))&63U)))!=0)) goto LA23_;
			targetProc = (*(*p).module).preInitProc;
		}
		LA23_: ;
		assignGlobalVar_UtJx89cn0a8CNSWWmaj6raA_8(targetProc, vn);
		nimZeroMem((void*)(&loc), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		genericAssign((void*)(&loc), (void*)(&(*v).loc), (&NTI_EtHNvCB0bgfu9bFjzx9cb6aA_));
		{
			NIM_BOOL T27_;
			NIM_BOOL T28_;
			T27_ = (NIM_BOOL)0;
			T28_ = (NIM_BOOL)0;
			T28_ = (((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 23))&63U)))!=0);
			if (!(T28_)) goto LA29_;
			T28_ = emulatedThreadVars_viA2VrQ9cI0jU5DX49b1MeYgcgen((*(*(*p).module).g).config);
			LA29_: ;
			T27_ = T28_;
			if (!(T27_)) goto LA30_;
			T27_ = isComplexValueType_AcJpLeR4vGQ9bUfQVqMi1Egcgen((*v).typ);
			LA30_: ;
			if (!T27_) goto LA31_;
			initLocExprSingleUse_9biTBaXPz9cezuLjjWw9cSEGw((*(*p).module).preInitProc, vn, (&loc));
		}
		LA31_: ;
		genObjectInit_pua7psQb9a19bblGZEt9b0ZXA((*(*p).module).preInitProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1), (*v).typ, (&loc), NIM_TRUE);
		{
			NIM_BOOL T35_;
			T35_ = (NIM_BOOL)0;
			T35_ = (((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 6))&63U)))!=0);
			if (!(T35_)) goto LA36_;
			T35_ = !(((*(*(*p).module).g).generatedHeader == NIM_NIL));
			LA36_: ;
			if (!T35_) goto LA37_;
			genVarPrototype_60cAEEW2jYgQLzNzmWrfPg_2((*(*(*p).module).g).generatedHeader, vn);
		}
		LA37_: ;
		registerGcRoot_9bU9aKybzNLHLYGtzhHXXPkg(p, v);
	}
	goto LA9_;
	LA11_: ;
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* value;
		NIM_BOOL imm;
		value = (*a)._Ukind.S6.sons->data[((NI) 2)];
		imm = isAssignedImmediately_udBNoPxZaHjsWUNp37jAdwcgen((*(*(*p).module).g).config, value);
		{
			NIM_BOOL T42_;
			NIM_BOOL T43_;
			NIM_BOOL T44_;
			NIM_BOOL T46_;
			NIM_BOOL T50_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* decl;
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp;
			T42_ = (NIM_BOOL)0;
			T43_ = (NIM_BOOL)0;
			T44_ = (NIM_BOOL)0;
			T44_ = imm;
			if (!(T44_)) goto LA45_;
			T46_ = (NIM_BOOL)0;
			T46_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
			if (T46_) goto LA47_;
			T46_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA47_: ;
			T44_ = T46_;
			LA45_: ;
			T43_ = T44_;
			if (!(T43_)) goto LA48_;
			T43_ = ((*p).splitDecls == ((NI) 0));
			LA48_: ;
			T42_ = T43_;
			if (!(T42_)) goto LA49_;
			T50_ = (NIM_BOOL)0;
			T50_ = containsHiddenPointer_IVXYI9cxSeivThgKCncHRnA_3((*v).typ);
			T42_ = !(T50_);
			LA49_: ;
			if (!T42_) goto LA51_;
			genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, a);
			decl = localVarDecl_NYI5fC69aIqZGRakncXv9cNQ(p, vn);
			nimZeroMem((void*)(&tmp), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			{
				NIM_BOOL T55_;
				NIM_BOOL T56_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* params;
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
				T55_ = (NIM_BOOL)0;
				T56_ = (NIM_BOOL)0;
				T56_ = ((*value).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*value).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*value).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*value).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*value).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*value).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*value).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 32));
				if (!(T56_)) goto LA57_;
				T56_ = ((*(*value)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
				LA57_: ;
				T55_ = T56_;
				if (!(T55_)) goto LA58_;
				T55_ = (((*(*(*value)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 25))&63U)))!=0);
				LA58_: ;
				if (!T55_) goto LA59_;
				params = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				typ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*value)._Ukind.S6.sons->data[((NI) 0)]).typ, IL64(36099165763184912));
				{
					NI i;
					NI colontmp_;
					NI i_2;
					i = (NI)0;
					colontmp_ = (NI)0;
					colontmp_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(value);
					i_2 = ((NI) 1);
					{
						while (1) {
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T70_;
							if (!(i_2 < colontmp_)) goto LA63;
							i = i_2;
							{
								tyArray_qTjAvTvKF9anytN1At69aJMQ T68_;
								tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T69_;
								if (!!((params == NIM_NIL))) goto LA66_;
								nimZeroMem((void*)T68_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
								T69_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
								T69_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_123), T68_, 0);
								add_iMTw0CDaruwETLGb9bhpBLg(&params, T69_);
							}
							LA66_: ;
							T70_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
							T70_ = genOtherArg_9a86z5oGsAZjkB52zPdLZJQ(p, value, i, typ);
							add_iMTw0CDaruwETLGb9bhpBLg(&params, T70_);
							i_2 += ((NI) 1);
						} LA63: ;
					}
				}
				{
					tyArray_JiWwrsTRC6xqNlGcBthSVA T75_;
					if (!(params == NIM_NIL)) goto LA73_;
					nimZeroMem((void*)T75_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
					T75_[0] = decl;
					lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_658), T75_, 1);
				}
				goto LA71_;
				LA73_: ;
				{
					tyArray_mrugoXXRZUEeG9bEXo9auBKw T77_;
					nimZeroMem((void*)T77_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
					T77_[0] = decl;
					T77_[1] = params;
					lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_659), T77_, 2);
				}
				LA71_: ;
			}
			goto LA53_;
			LA59_: ;
			{
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T79_;
				initLocExprSingleUse_9biTBaXPz9cezuLjjWw9cSEGw(p, value, (&tmp));
				nimZeroMem((void*)T79_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T79_[0] = decl;
				T79_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg((&tmp));
				lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_660), T79_, 2);
			}
			LA53_: ;
			goto BeforeRet_;
		}
		LA51_: ;
		assignLocalVar_UtJx89cn0a8CNSWWmaj6raA(p, vn);
		initLocalVar_EpeofNfMJPurx0duaALCaA(p, v, imm);
	}
	LA9_: ;
	{
		if (!!(((*(*a)._Ukind.S6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA82_;
		genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(targetProc, a);
		loadInto_vkEx8Dn9aiGOI04WjvQIHIwcgen(targetProc, (*a)._Ukind.S6.sons->data[((NI) 0)], (*a)._Ukind.S6.sons->data[((NI) 2)], (&(*v).loc));
	}
	LA82_: ;
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genClosureVar_9c6v9b6B8RZkui111YH4cbEw_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a) {
	NIM_BOOL immediateAsgn;
	immediateAsgn = !(((*(*a)._Ukind.S6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1)));
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA v;
		if (!immediateAsgn) goto LA3_;
		nimZeroMem((void*)(&v), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*a)._Ukind.S6.sons->data[((NI) 0)], (&v));
		genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, a);
		loadInto_vkEx8Dn9aiGOI04WjvQIHIwcgen(p, (*a)._Ukind.S6.sons->data[((NI) 0)], (*a)._Ukind.S6.sons->data[((NI) 2)], (&v));
	}
	LA3_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genVarTuple_UtJx89cn0a8CNSWWmaj6raA_9)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tup;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA field;
	NI L;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T13_;
{	nimZeroMem((void*)(&tup), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&field), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	{
		if (!!(((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 36)))) goto LA3_;
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_661));
	}
	LA3_: ;
	L = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
	{
		NI i;
		NI colontmp_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)(L - ((NI) 3));
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA7;
				i = res;
				{
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T12_;
					if (!!(((*(*n)._Ukind.S6.sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA10_;
					T12_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
					T12_ = lowerTupleUnpacking_8A4G64HByteFanrMUexmNw((*(*(*p).module).g).graph, n, (*p).prc);
					genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, T12_);
					goto BeforeRet_;
				}
				LA10_: ;
				res += ((NI) 1);
			} LA7: ;
		}
	}
	genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, n);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n)._Ukind.S6.sons->data[(NI)(L - ((NI) 1))], (&tup));
	T13_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T13_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&tup));
	t = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(T13_, IL64(36099165763184912));
	{
		NI i_2;
		NI colontmp__2;
		NI res_2;
		i_2 = (NI)0;
		colontmp__2 = (NI)0;
		colontmp__2 = (NI)(L - ((NI) 3));
		res_2 = ((NI) 0);
		{
			while (1) {
				if (!(res_2 <= colontmp__2)) goto LA16;
				i_2 = res_2;
				{
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* vn;
					tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* v;
					vn = (*n)._Ukind.S6.sons->data[i_2];
					v = (*vn)._Ukind.S4.sym;
					{
						if (!(((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 24))&63U)))!=0)) goto LA20_;
						goto LA17;
					}
					LA20_: ;
					{
						if (!(((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0)) goto LA24_;
						assignGlobalVar_UtJx89cn0a8CNSWWmaj6raA_8(p, vn);
						genObjectInit_pua7psQb9a19bblGZEt9b0ZXA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1), (*v).typ, (&(*v).loc), NIM_TRUE);
						registerGcRoot_9bU9aKybzNLHLYGtzhHXXPkg(p, v);
					}
					goto LA22_;
					LA24_: ;
					{
						NIM_BOOL T27_;
						assignLocalVar_UtJx89cn0a8CNSWWmaj6raA(p, vn);
						T27_ = (NIM_BOOL)0;
						T27_ = isAssignedImmediately_udBNoPxZaHjsWUNp37jAdwcgen((*(*(*p).module).g).config, (*n)._Ukind.S6.sons->data[(NI)(L - ((NI) 1))]);
						initLocalVar_EpeofNfMJPurx0duaALCaA(p, v, T27_);
					}
					LA22_: ;
					initLoc_z9bd78in9czXhMZLT0QNB5Tw((&field), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), vn, tup.storage);
					{
						tyArray_mrugoXXRZUEeG9bEXo9auBKw T32_;
						if (!((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18))) goto LA30_;
						nimZeroMem((void*)T32_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
						T32_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&tup));
						T32_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (i_2)));
						field.r = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_214), T32_, 2);
					}
					goto LA28_;
					LA30_: ;
					{
						tyArray_mrugoXXRZUEeG9bEXo9auBKw T38_;
						{
							if (!!(((*(*(*t).n)._Ukind.S6.sons->data[i_2]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA36_;
							internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_661));
						}
						LA36_: ;
						nimZeroMem((void*)T38_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
						T38_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&tup));
						T38_[1] = mangleRecFieldName_0XUZA8cv9auQGQetv8JLneQ((*p).module, (*(*(*t).n)._Ukind.S6.sons->data[i_2])._Ukind.S4.sym, t);
						field.r = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_97), T38_, 2);
					}
					LA28_: ;
					putLocIntoDest_SkhzpH2DDHJ7pbmCpsHIPg(p, (&(*v).loc), (&field));
				} LA17: ;
				res_2 += ((NI) 1);
			} LA16: ;
		}
	}
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genVarStmt_UtJx89cn0a8CNSWWmaj6raA_7)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
		tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ* colontmp_;
		NI i;
		NI L;
		NI T2_;
		it = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		colontmp_ = (tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ*)0;
		colontmp_ = (*n)._Ukind.S6.sons;
		i = ((NI) 0);
		T2_ = (colontmp_ ? colontmp_->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				if (!(i < L)) goto LA4;
				it = colontmp_->data[i];
				{
					{
						if (!((*it).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 125))) goto LA8_;
						goto LA5;
					}
					LA8_: ;
					{
						if (!((*it).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 35))) goto LA12_;
						{
							if (!((*(*it)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA16_;
							genSingleVar_9c6v9b6B8RZkui111YH4cbEw(p, it);
						}
						goto LA14_;
						LA16_: ;
						{
							genClosureVar_9c6v9b6B8RZkui111YH4cbEw_2(p, it);
						}
						LA14_: ;
					}
					goto LA10_;
					LA12_: ;
					{
						genVarTuple_UtJx89cn0a8CNSWWmaj6raA_9(p, it);
					}
					LA10_: ;
				} LA5: ;
				i += ((NI) 1);
			} LA4: ;
		}
	}
}

N_LIB_PRIVATE N_NIMCALL(void, genCaseStringBranch_P8OJ6tb5bbr0Tp2llps5Rw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* e, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* labl, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** branches, NI branchesLen_0) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA x;
	NI length;
	nimZeroMem((void*)(&x), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	length = sonsLen_qPWPHw7WgJeEVYUdcaRIig(b);
	{
		NI i;
		NI colontmp_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)(length - ((NI) 2));
		res = ((NI) 0);
		{
			while (1) {
				NI j;
				NI64 T4_;
				tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T5_;
				if (!(res <= colontmp_)) goto LA3;
				i = res;
				initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*b)._Ukind.S6.sons->data[i], (&x));
				T4_ = (NI64)0;
				T4_ = hashString_bnoSfGDS48HKk44sKjGWyQ((*(*(*p).module).g).config, (*(*b)._Ukind.S6.sons->data[i])._Ukind.S3.strVal);
				j = ((NI) ((NI64)(T4_ & ((NI64) ((branchesLen_0-1))))));
				nimZeroMem((void*)T5_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
				T5_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(e);
				T5_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg((&x));
				T5_[2] = labl;
				appcg_GrB2Hbyo8XeK6TPKMD0Y5A((*p).module, &branches[j], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_663), T5_, 3);
				res += ((NI) 1);
			} LA3: ;
		}
	}
}

N_LIB_PRIVATE N_NIMCALL(void, exprBlock_8mAL9ckajemzgfLPfeZVNoQ_18)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyArray_qTjAvTvKF9anytN1At69aJMQ T1_;
	NI T2_;
	nimZeroMem((void*)T1_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
	T2_ = (NI)0;
	T2_ = startBlock_5VnWFu9cyKySWdJiAv81lJQ(p, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_312), T1_, 0);
	expr_8mAL9ckajemzgfLPfeZVNoQ(p, n, d);
	endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genCaseSecondPass_4DRiNj9aN6Z9aXL9bqOB79czGw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NI labId, NI until) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* lend;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	lend = getLabel_3AsTOpq9crZUYBL9aD1lXBng_6(p);
	{
		NI i;
		NI res;
		i = (NI)0;
		res = ((NI) 1);
		{
			while (1) {
				tyArray_JiWwrsTRC6xqNlGcBthSVA T10_;
				if (!(res <= until)) goto LA3;
				i = res;
				{
					NIM_BOOL T6_;
					T6_ = (NIM_BOOL)0;
					T6_ = ((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 1));
					if (!(T6_)) goto LA7_;
					T6_ = isEmptyType_9aw9cztYHpNdZjCV1t0mJqwgvmgen((*t).typ);
					LA7_: ;
					if (!T6_) goto LA8_;
					(*d).k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0);
				}
				LA8_: ;
				nimZeroMem((void*)T10_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
				T10_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((NI)(labId + i))));
				lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_667), T10_, 1);
				{
					NI length;
					tyArray_JiWwrsTRC6xqNlGcBthSVA T15_;
					if (!((*(*t)._Ukind.S6.sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA13_;
					length = sonsLen_qPWPHw7WgJeEVYUdcaRIig((*t)._Ukind.S6.sons->data[i]);
					exprBlock_8mAL9ckajemzgfLPfeZVNoQ_18(p, (*(*t)._Ukind.S6.sons->data[i])._Ukind.S6.sons->data[(NI)(length - ((NI) 1))], d);
					nimZeroMem((void*)T15_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
					T15_[0] = lend;
					lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_622), T15_, 1);
				}
				goto LA11_;
				LA13_: ;
				{
					exprBlock_8mAL9ckajemzgfLPfeZVNoQ_18(p, (*(*t)._Ukind.S6.sons->data[i])._Ukind.S6.sons->data[((NI) 0)], d);
				}
				LA11_: ;
				res += ((NI) 1);
			} LA3: ;
		}
	}
	result = lend;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genCaseGenericBranch_L9cVGppHJKqGKFR603R9boYw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* e, NimStringDesc* rangeFormat, NimStringDesc* eqFormat, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* labl) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA x;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA y;
	NI length;
	nimZeroMem((void*)(&x), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&y), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	length = sonsLen_qPWPHw7WgJeEVYUdcaRIig(b);
	{
		NI i;
		NI colontmp_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)(length - ((NI) 2));
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA3;
				i = res;
				{
					tyArray_f7nG5LD47BH5K9c6mASit3g T8_;
					if (!((*(*b)._Ukind.S6.sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA6_;
					initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*(*b)._Ukind.S6.sons->data[i])._Ukind.S6.sons->data[((NI) 0)], (&x));
					initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*(*b)._Ukind.S6.sons->data[i])._Ukind.S6.sons->data[((NI) 1)], (&y));
					nimZeroMem((void*)T8_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
					T8_[0] = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(e);
					T8_[1] = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2((&x));
					T8_[2] = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2((&y));
					T8_[3] = labl;
					lineCg_zZ8N2PtAlqFZKCp7nvAnhw_2(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), rangeFormat, T8_, 4);
				}
				goto LA4_;
				LA6_: ;
				{
					tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T10_;
					initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*b)._Ukind.S6.sons->data[i], (&x));
					nimZeroMem((void*)T10_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
					T10_[0] = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(e);
					T10_[1] = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2((&x));
					T10_[2] = labl;
					lineCg_zZ8N2PtAlqFZKCp7nvAnhw_2(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), eqFormat, T10_, 3);
				}
				LA4_: ;
				res += ((NI) 1);
			} LA3: ;
		}
	}
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genIfForCaseUntil_FkXf1Gng7LHrb22W8xnIzg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* rangeFormat, NimStringDesc* eqFormat, NI until, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	NI labId;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	labId = (*p).labels;
	{
		NI i;
		NI res;
		i = (NI)0;
		res = ((NI) 1);
		{
			while (1) {
				if (!(res <= until)) goto LA3;
				i = res;
				(*p).labels += ((NI) 1);
				{
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T8_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T10_;
					if (!((*(*t)._Ukind.S6.sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA6_;
					T8_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T8_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).labels)));
					T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T9_ = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_348), T8_);
					T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T10_ = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T9_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_3));
					genCaseGenericBranch_L9cVGppHJKqGKFR603R9boYw(p, (*t)._Ukind.S6.sons->data[i], a, rangeFormat, eqFormat, T10_);
				}
				goto LA4_;
				LA6_: ;
				{
					tyArray_JiWwrsTRC6xqNlGcBthSVA T12_;
					nimZeroMem((void*)T12_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
					T12_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).labels)));
					lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_666), T12_, 1);
				}
				LA4_: ;
				res += ((NI) 1);
			} LA3: ;
		}
	}
	{
		NI T15_;
		NI gotoTarget;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T18_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T19_;
		T15_ = (NI)0;
		T15_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(t);
		if (!(until < (NI)(T15_ - ((NI) 1)))) goto LA16_;
		(*p).labels += ((NI) 1);
		gotoTarget = (*p).labels;
		nimZeroMem((void*)T18_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T18_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (gotoTarget)));
		lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_666), T18_, 1);
		result = genCaseSecondPass_4DRiNj9aN6Z9aXL9bqOB79czGw(p, t, d, ((NI) (labId)), until);
		nimZeroMem((void*)T19_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T19_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (gotoTarget)));
		lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_667), T19_, 1);
	}
	goto LA13_;
	LA16_: ;
	{
		result = genCaseSecondPass_4DRiNj9aN6Z9aXL9bqOB79czGw(p, t, d, ((NI) (labId)), until);
	}
	LA13_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genCaseGeneric_A9aEg9csf4anYemsYRjz0L9cw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* rangeFormat, NimStringDesc* eqFormat) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* lend;
	NI T1_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*t)._Ukind.S6.sons->data[((NI) 0)], (&a));
	T1_ = (NI)0;
	T1_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(t);
	lend = genIfForCaseUntil_FkXf1Gng7LHrb22W8xnIzg(p, t, d, rangeFormat, eqFormat, (NI)(T1_ - ((NI) 1)), (&a));
	fixLabel_z1hx9axqa9cHsmY7bMeZVSrQ(p, lend);
}

N_LIB_PRIVATE N_NIMCALL(void, genStringCase_re1pwmyeR32ikwnOC3vvzQ_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	NI strings;
	strings = ((NI) 0);
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(t);
		colontmp_ = (NI)(T2_ - ((NI) 1));
		res = ((NI) 1);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				{
					NI T9_;
					if (!((*(*t)._Ukind.S6.sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA7_;
					T9_ = (NI)0;
					T9_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig((*t)._Ukind.S6.sons->data[i]);
					strings += (NI)(T9_ - ((NI) 1));
				}
				LA7_: ;
				res += ((NI) 1);
			} LA4: ;
		}
	}
	{
		NI bitMask;
		NI T14_;
		tySequence_WwUFq9cJ2xKRlsAWVEHyPRg* branches;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
		NI labId;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T27_;
		tyArray_qTjAvTvKF9anytN1At69aJMQ T37_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* lend;
		NI T44_;
		if (!(((NI) 8) < strings)) goto LA12_;
		T14_ = (NI)0;
		T14_ = nextPowerOfTwo_gcitR3TEXHJ3GR9bmwIvtRA(strings);
		bitMask = (NI)(T14_ - ((NI) 1));
		branches = (tySequence_WwUFq9cJ2xKRlsAWVEHyPRg*)0;
		branches = (tySequence_WwUFq9cJ2xKRlsAWVEHyPRg*) newSeq((&NTI_WwUFq9cJ2xKRlsAWVEHyPRg_), ((NI) ((NI)(bitMask + ((NI) 1)))));
		nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*t)._Ukind.S6.sons->data[((NI) 0)], (&a));
		labId = (*p).labels;
		{
			NI i_2;
			NI colontmp__2;
			NI T16_;
			NI res_2;
			i_2 = (NI)0;
			colontmp__2 = (NI)0;
			T16_ = (NI)0;
			T16_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(t);
			colontmp__2 = (NI)(T16_ - ((NI) 1));
			res_2 = ((NI) 1);
			{
				while (1) {
					if (!(res_2 <= colontmp__2)) goto LA18;
					i_2 = res_2;
					(*p).labels += ((NI) 1);
					{
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T23_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T24_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T25_;
						if (!((*(*t)._Ukind.S6.sons->data[i_2]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA21_;
						T23_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T23_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).labels)));
						T24_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T24_ = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_348), T23_);
						T25_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T25_ = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T24_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_3));
						genCaseStringBranch_P8OJ6tb5bbr0Tp2llps5Rw(p, (*t)._Ukind.S6.sons->data[i_2], (&a), T25_, branches->data, (branches ? branches->Sup.len : 0));
					}
					goto LA19_;
					LA21_: ;
					{
					}
					LA19_: ;
					res_2 += ((NI) 1);
				} LA18: ;
			}
		}
		nimZeroMem((void*)T27_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T27_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
		T27_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (bitMask)));
		linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_664), T27_, 2);
		{
			NI j;
			NI colontmp__3;
			NI T29_;
			NI res_3;
			j = (NI)0;
			colontmp__3 = (NI)0;
			T29_ = ((branches ? branches->Sup.len : 0)-1);
			colontmp__3 = T29_;
			res_3 = ((NI) 0);
			{
				while (1) {
					if (!(res_3 <= colontmp__3)) goto LA31;
					j = res_3;
					{
						tyArray_mrugoXXRZUEeG9bEXo9auBKw T36_;
						if (!!((branches->data[j] == NIM_NIL))) goto LA34_;
						nimZeroMem((void*)T36_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
						T36_[0] = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg(((NI64) (j)));
						T36_[1] = branches->data[j];
						lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_665), T36_, 2);
					}
					LA34_: ;
					res_3 += ((NI) 1);
				} LA31: ;
			}
		}
		nimZeroMem((void*)T37_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_184), T37_, 0);
		{
			NI T40_;
			tyArray_JiWwrsTRC6xqNlGcBthSVA T43_;
			T40_ = (NI)0;
			T40_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(t);
			if (!!(((*(*t)._Ukind.S6.sons->data[(NI)(T40_ - ((NI) 1))]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 85)))) goto LA41_;
			nimZeroMem((void*)T43_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T43_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).labels)));
			lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_666), T43_, 1);
		}
		LA41_: ;
		T44_ = (NI)0;
		T44_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(t);
		lend = genCaseSecondPass_4DRiNj9aN6Z9aXL9bqOB79czGw(p, t, d, ((NI) (labId)), (NI)(T44_ - ((NI) 1)));
		fixLabel_z1hx9axqa9cHsmY7bMeZVSrQ(p, lend);
	}
	goto LA10_;
	LA12_: ;
	{
		genCaseGeneric_A9aEg9csf4anYemsYRjz0L9cw(p, t, d, ((NimStringDesc*) NIM_NIL), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_663));
	}
	LA10_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genGotoForCase_ACGHJp9bbmHaRpjqO8LXrqA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* caseStmt) {
{	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(caseStmt);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyArray_qTjAvTvKF9anytN1At69aJMQ T4_;
				NI T5_;
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T15_;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				nimZeroMem((void*)T4_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
				T5_ = (NI)0;
				T5_ = startBlock_5VnWFu9cyKySWdJiAv81lJQ(p, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_312), T4_, 0);
				it = (*caseStmt)._Ukind.S6.sons->data[i];
				{
					NI j;
					NI colontmp__2;
					NI T7_;
					NI res;
					j = (NI)0;
					colontmp__2 = (NI)0;
					T7_ = (NI)0;
					T7_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(it);
					colontmp__2 = (NI)(T7_ - ((NI) 2));
					res = ((NI) 0);
					{
						while (1) {
							NI64 val;
							tyArray_JiWwrsTRC6xqNlGcBthSVA T14_;
							if (!(res <= colontmp__2)) goto LA9;
							j = res;
							{
								if (!((*(*it)._Ukind.S6.sons->data[j]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA12_;
								localError_NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*it).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_646));
								goto BeforeRet_;
							}
							LA12_: ;
							val = getOrdValue_k4X4XP9cdVXYioHD9akA9bVbQ((*it)._Ukind.S6.sons->data[j]);
							nimZeroMem((void*)T14_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
							T14_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(val);
							lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_670), T14_, 1);
							res += ((NI) 1);
						} LA9: ;
					}
				}
				T15_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
				T15_ = lastSon_esDJA7239bJDiq4UrX9aHCjg(it);
				genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, T15_);
				endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, branchHasTooBigRange_ATpc9czZVSSl5DwvggVYrTA)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(b);
		colontmp_ = (NI)(T2_ - ((NI) 2));
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				{
					NIM_BOOL T7_;
					T7_ = (NIM_BOOL)0;
					T7_ = ((*(*b)._Ukind.S6.sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 44));
					if (!(T7_)) goto LA8_;
					T7_ = (IL64(256) < (NI64)((*(*(*b)._Ukind.S6.sons->data[i])._Ukind.S6.sons->data[((NI) 1)])._Ukind.S1.intVal - (*(*(*b)._Ukind.S6.sons->data[i])._Ukind.S6.sons->data[((NI) 0)])._Ukind.S1.intVal));
					LA8_: ;
					if (!T7_) goto LA9_;
					result = NIM_TRUE;
					goto BeforeRet_;
				}
				LA9_: ;
				res += ((NI) 1);
			} LA4: ;
		}
	}
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NI, ifSwitchSplitPoint_4hTzApDoaLx0fdq41ZoEAg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	result = (NI)0;
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
		colontmp_ = (NI)(T2_ - ((NI) 1));
		res = ((NI) 1);
		{
			while (1) {
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* branch;
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* stmtBlock;
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				branch = (*n)._Ukind.S6.sons->data[i];
				stmtBlock = lastSon_esDJA7239bJDiq4UrX9aHCjg(branch);
				{
					NIM_BOOL T7_;
					T7_ = (NIM_BOOL)0;
					T7_ = stmtsContainPragma_9aY8Dd0aB4xmQTh5kptvVOg(stmtBlock, ((tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw) 183));
					if (!T7_) goto LA8_;
					result = i;
				}
				goto LA5_;
				LA8_: ;
				{
					if (!!(((CC_78I18QZNZFIv9ah7oETc0jg[((*(*(*(*p).module).g).config).cCompiler)- 1].Field19 &(1U<<((NU)(((tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg) 0))&7U)))!=0))) goto LA11_;
					{
						NIM_BOOL T15_;
						T15_ = (NIM_BOOL)0;
						T15_ = ((*branch).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 85));
						if (!(T15_)) goto LA16_;
						T15_ = branchHasTooBigRange_ATpc9czZVSSl5DwvggVYrTA(branch);
						LA16_: ;
						if (!T15_) goto LA17_;
						result = i;
					}
					LA17_: ;
				}
				goto LA5_;
				LA11_: ;
				LA5_: ;
				res += ((NI) 1);
			} LA4: ;
		}
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genOrdinalCase_8mAL9ckajemzgfLPfeZVNoQ_19)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	NI splitPoint;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* lend;
	splitPoint = ifSwitchSplitPoint_4hTzApDoaLx0fdq41ZoEAg(p, n);
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n)._Ukind.S6.sons->data[((NI) 0)], (&a));
	{
		if (!(((NI) 0) < splitPoint)) goto LA3_;
		lend = genIfForCaseUntil_FkXf1Gng7LHrb22W8xnIzg(p, n, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_668), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_669), splitPoint, (&a));
	}
	goto LA1_;
	LA3_: ;
	{
		lend = NIM_NIL;
	}
	LA1_: ;
	{
		NI T8_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T11_;
		NIM_BOOL hasDefault;
		tyArray_qTjAvTvKF9anytN1At69aJMQ T36_;
		T8_ = (NI)0;
		T8_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
		if (!((NI)(splitPoint + ((NI) 1)) < T8_)) goto LA9_;
		nimZeroMem((void*)T11_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T11_[0] = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2((&a));
		lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_671), T11_, 1);
		hasDefault = NIM_FALSE;
		{
			NI i;
			NI colontmp_;
			NI colontmp__2;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp__2 = (NI)0;
			colontmp_ = (NI)(splitPoint + ((NI) 1));
			colontmp__2 = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
			i_2 = colontmp_;
			{
				while (1) {
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* branch;
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T27_;
					tyArray_qTjAvTvKF9anytN1At69aJMQ T28_;
					if (!(i_2 < colontmp__2)) goto LA14;
					i = i_2;
					{
						NIM_BOOL T17_;
						T17_ = (NIM_BOOL)0;
						T17_ = ((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 1));
						if (!(T17_)) goto LA18_;
						T17_ = isEmptyType_9aw9cztYHpNdZjCV1t0mJqwgvmgen((*n).typ);
						LA18_: ;
						if (!T17_) goto LA19_;
						(*d).k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0);
					}
					LA19_: ;
					branch = (*n)._Ukind.S6.sons->data[i];
					{
						if (!((*branch).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA23_;
						genCaseRange_KUz7NJSCXeUWRl4foF5zfg(p, branch);
					}
					goto LA21_;
					LA23_: ;
					{
						tyArray_qTjAvTvKF9anytN1At69aJMQ T26_;
						nimZeroMem((void*)T26_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
						lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_211), T26_, 0);
						hasDefault = NIM_TRUE;
					}
					LA21_: ;
					T27_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
					T27_ = lastSon_esDJA7239bJDiq4UrX9aHCjg(branch);
					exprBlock_8mAL9ckajemzgfLPfeZVNoQ_18(p, T27_, d);
					nimZeroMem((void*)T28_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
					lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_212), T28_, 0);
					i_2 += ((NI) 1);
				} LA14: ;
			}
		}
		{
			NIM_BOOL T31_;
			tyArray_qTjAvTvKF9anytN1At69aJMQ T35_;
			T31_ = (NIM_BOOL)0;
			T31_ = ((CC_78I18QZNZFIv9ah7oETc0jg[((*(*(*(*p).module).g).config).cCompiler)- 1].Field19 &(1U<<((NU)(((tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg) 3))&7U)))!=0);
			if (!(T31_)) goto LA32_;
			T31_ = !(hasDefault);
			LA32_: ;
			if (!T31_) goto LA33_;
			nimZeroMem((void*)T35_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
			lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_672), T35_, 0);
		}
		LA33_: ;
		nimZeroMem((void*)T36_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_184), T36_, 0);
	}
	LA9_: ;
	{
		if (!!((lend == NIM_NIL))) goto LA39_;
		fixLabel_z1hx9axqa9cHsmY7bMeZVSrQ(p, lend);
	}
	LA39_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genCase_re1pwmyeR32ikwnOC3vvzQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T8_;
	genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = isEmptyType_9aw9cztYHpNdZjCV1t0mJqwgvmgen((*t).typ);
		T3_ = !(T4_);
		if (!(T3_)) goto LA5_;
		T3_ = ((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0));
		LA5_: ;
		if (!T3_) goto LA6_;
		getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*t).typ, d, NIM_FALSE);
	}
	LA6_: ;
	T8_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T8_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*t)._Ukind.S6.sons->data[((NI) 0)]).typ, IL64(36099165772622096));
	switch ((*T8_).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
	{
		genStringCase_re1pwmyeR32ikwnOC3vvzQ_2(p, t, d);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 39):
	{
		genCaseGeneric_A9aEg9csf4anYemsYRjz0L9cw(p, t, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_668), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_669));
	}
	break;
	default:
	{
		{
			NIM_BOOL T14_;
			T14_ = (NIM_BOOL)0;
			T14_ = ((*(*t)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T14_)) goto LA15_;
			T14_ = (((*(*(*t)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 31))&63U)))!=0);
			LA15_: ;
			if (!T14_) goto LA16_;
			genGotoForCase_ACGHJp9bbmHaRpjqO8LXrqA(p, t);
		}
		goto LA12_;
		LA16_: ;
		{
			genOrdinalCase_8mAL9ckajemzgfLPfeZVNoQ_19(p, t, d);
		}
		LA12_: ;
	}
	break;
	}
}

static N_INLINE(void, pop_YLluDKGZN2sKVVF4ZTxS0Acgen)(tySequence_P9c6Y5h4sjjYLVGti5AELHg** s, tyTuple_aTNxDjHI7v9cq37xS7PT7jA* Result) {
	NI L;
	NI T1_;
	T1_ = ((*s) ? (*s)->Sup.len : 0);
	L = (NI)(T1_ - ((NI) 1));
	unsureAsgnRef((void**) (&(*Result).Field0), (*s)->data[L].Field0);
	(*Result).Field1 = (*s)->data[L].Field1;
	unsureAsgnRef((void**) (&(*s)), (tySequence_P9c6Y5h4sjjYLVGti5AELHg*) setLengthSeqV2(&((*s))->Sup, (&NTI_P9c6Y5h4sjjYLVGti5AELHg_), ((NI) (L))));
}

N_LIB_PRIVATE N_NIMCALL(void, blockLeaveActions_e09bgD1fQnMSV07ItnToC3Q)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, NI howManyTrys, NI howManyExcepts) {
	tySequence_P9c6Y5h4sjjYLVGti5AELHg* stack;
	stack = newSeq_ldNLYIJTuHtJnMsIMCgWkA(((NI) 0));
	{
		NI i;
		NI res;
		i = (NI)0;
		res = ((NI) 1);
		{
			while (1) {
				tyTuple_aTNxDjHI7v9cq37xS7PT7jA tryStmt;
				NI T17_;
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* finallyStmt;
				if (!(res <= howManyTrys)) goto LA3;
				i = res;
				nimZeroMem((void*)(&tryStmt), sizeof(tyTuple_aTNxDjHI7v9cq37xS7PT7jA));
				pop_YLluDKGZN2sKVVF4ZTxS0Acgen((&(*p).nestedTryStmts), (&tryStmt));
				{
					NIM_BOOL T6_;
					NIM_BOOL T7_;
					T6_ = (NIM_BOOL)0;
					T7_ = (NIM_BOOL)0;
					T7_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
					if (T7_) goto LA8_;
					T7_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
					LA8_: ;
					T6_ = !(T7_);
					if (T6_) goto LA9_;
					T6_ = (((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 29))&63U)))!=0);
					LA9_: ;
					if (!T6_) goto LA10_;
					{
						tyArray_qTjAvTvKF9anytN1At69aJMQ T16_;
						if (!!(tryStmt.Field1)) goto LA14_;
						nimZeroMem((void*)T16_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
						linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_673), T16_, 0);
					}
					LA14_: ;
				}
				LA10_: ;
				stack = (tySequence_P9c6Y5h4sjjYLVGti5AELHg*) incrSeqV3(&(stack)->Sup, (&NTI_P9c6Y5h4sjjYLVGti5AELHg_));
				T17_ = stack->Sup.len++;
				asgnRefNoCycle((void**) (&stack->data[T17_].Field0), tryStmt.Field0);
				stack->data[T17_].Field1 = tryStmt.Field1;
				finallyStmt = lastSon_esDJA7239bJDiq4UrX9aHCjg(tryStmt.Field0);
				{
					if (!((*finallyStmt).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 107))) goto LA20_;
					genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, (*finallyStmt)._Ukind.S6.sons->data[((NI) 0)]);
				}
				LA20_: ;
				res += ((NI) 1);
			} LA3: ;
		}
	}
	{
		NI i_2;
		NI colontmp_;
		NI res_2;
		i_2 = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)(howManyTrys - ((NI) 1));
		res_2 = colontmp_;
		{
			while (1) {
				NI T25_;
				if (!(((NI) 0) <= res_2)) goto LA24;
				i_2 = res_2;
				asgnRefNoCycle((void**) (&(*p).nestedTryStmts), (tySequence_P9c6Y5h4sjjYLVGti5AELHg*) incrSeqV3(&((*p).nestedTryStmts)->Sup, (&NTI_P9c6Y5h4sjjYLVGti5AELHg_)));
				T25_ = (*p).nestedTryStmts->Sup.len++;
				asgnRefNoCycle((void**) (&(*p).nestedTryStmts->data[T25_].Field0), stack->data[i_2].Field0);
				(*p).nestedTryStmts->data[T25_].Field1 = stack->data[i_2].Field1;
				res_2 -= ((NI) 1);
			} LA24: ;
		}
	}
	{
		NIM_BOOL T28_;
		NIM_BOOL T29_;
		T28_ = (NIM_BOOL)0;
		T29_ = (NIM_BOOL)0;
		T29_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T29_) goto LA30_;
		T29_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA30_: ;
		T28_ = !(T29_);
		if (T28_) goto LA31_;
		T28_ = (((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 29))&63U)))!=0);
		LA31_: ;
		if (!T28_) goto LA32_;
		{
			NI i_3;
			NI colontmp__2;
			NI res_3;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = (NI)(howManyExcepts - ((NI) 1));
			res_3 = colontmp__2;
			{
				while (1) {
					tyArray_qTjAvTvKF9anytN1At69aJMQ T37_;
					if (!(((NI) 0) <= res_3)) goto LA36;
					i_3 = res_3;
					nimZeroMem((void*)T37_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
					linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_674), T37_, 0);
					res_3 -= ((NI) 1);
				} LA36: ;
			}
		}
	}
	LA32_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genReturnStmt_QrTB5DOwbDX9bKAW7PNbuJA_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t) {
	NI T9_;
	NI T10_;
	tyArray_qTjAvTvKF9anytN1At69aJMQ T18_;
{	{
		if (!(((*t).flags &(1U<<((NU)(((tyEnum_TNodeFlag_jyh9acXHkhZANSSvPIY7ZLg) 14))&31U)))!=0)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	(*p).beforeRetNeeded = NIM_TRUE;
	genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
	{
		if (!!(((*(*t)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA7_;
		genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, (*t)._Ukind.S6.sons->data[((NI) 0)]);
	}
	LA7_: ;
	T9_ = ((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0);
	T10_ = (NI)0;
	T10_ = inExceptBlockLen_lPGsm5WeJbPHE8Q8iwQujw(p);
	blockLeaveActions_e09bgD1fQnMSV07ItnToC3Q(p, T9_, T10_);
	{
		NI T13_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* safePoint;
		NI T16_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T17_;
		T13_ = ((*p).finallySafePoints ? (*p).finallySafePoints->Sup.len : 0);
		if (!(((NI) 0) < T13_)) goto LA14_;
		T16_ = ((*p).finallySafePoints ? (*p).finallySafePoints->Sup.len : 0);
		safePoint = (*p).finallySafePoints->data[(NI)(T16_ - ((NI) 1))];
		nimZeroMem((void*)T17_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T17_[0] = safePoint;
		linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_675), T17_, 1);
	}
	LA14_: ;
	nimZeroMem((void*)T18_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
	lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_676), T18_, 0);
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genBreakStmt_QrTB5DOwbDX9bKAW7PNbuJA_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t) {
	NI idx;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* label;
	NI T20_;
	NI T21_;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T22_;
	idx = (*p).breakIdx;
	{
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym;
		if (!!(((*(*t)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA3_;
		sym = (*(*t)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym;
		{
			if (!!(((*sym).loc.k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 10)))) goto LA7_;
			failedAssertImpl_aDmpBTs9cPuXp0Mp9cfiNeyA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_677));
		}
		LA7_: ;
		idx = (NI)((*sym).position - ((NI) 1));
	}
	goto LA1_;
	LA3_: ;
	{
		{
			while (1) {
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (((NI) 0) <= idx);
				if (!(T12_)) goto LA13_;
				T12_ = !((*p).blocks->data[idx].isLoop);
				LA13_: ;
				if (!T12_) goto LA11;
				idx -= ((NI) 1);
			} LA11: ;
		}
		{
			NIM_BOOL T16_;
			T16_ = (NIM_BOOL)0;
			T16_ = (idx < ((NI) 0));
			if (T16_) goto LA17_;
			T16_ = !((*p).blocks->data[idx].isLoop);
			LA17_: ;
			if (!T16_) goto LA18_;
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*t).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_678));
		}
		LA18_: ;
	}
	LA1_: ;
	label = assignLabel_mIFKIo7g6Echd7EokLhQegcgen((&(*p).blocks->data[idx]));
	T20_ = ((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0);
	T21_ = (NI)0;
	T21_ = inExceptBlockLen_lPGsm5WeJbPHE8Q8iwQujw(p);
	blockLeaveActions_e09bgD1fQnMSV07ItnToC3Q(p, (NI)(T20_ - ((NI) ((*p).blocks->data[idx].nestedTryStmts))), (NI)(T21_ - ((NI) ((*p).blocks->data[idx].nestedExceptStmts))));
	genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
	nimZeroMem((void*)T22_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T22_[0] = label;
	lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_622), T22_, 1);
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, fieldDiscriminantCheckNeeded_Eyz2KtzeOLvgSAeQHJsjPQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* asgn) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le;
		if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 2))&31U)))!=0)) goto LA3_;
		le = (*asgn)._Ukind.S6.sons->data[((NI) 0)];
		{
			tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field;
			if (!((*le).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 46))) goto LA7_;
			field = (*(*(*le)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S6.sons->data[((NI) 1)])._Ukind.S4.sym;
			result = (((*field).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 18))&63U)))!=0);
		}
		goto LA5_;
		LA7_: ;
		{
			tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field_2;
			if (!((*le).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 45))) goto LA10_;
			field_2 = (*(*le)._Ukind.S6.sons->data[((NI) 1)])._Ukind.S4.sym;
			result = (((*field_2).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 18))&63U)))!=0);
		}
		goto LA5_;
		LA10_: ;
		LA5_: ;
	}
	LA3_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, patchAsgnStmtListExpr_KAraXem1fGqbyFed2BZeaA)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* orig, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 47):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 65):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* asgn;
		asgn = copyNode_lz8T1F9c0YwEOpUnrAUYgjg(orig);
		add_gCCf68XrWL79bKes6htzFjQ(asgn, (*orig)._Ukind.S6.sons->data[((NI) 0)]);
		add_gCCf68XrWL79bKes6htzFjQ(asgn, n);
		add_gCCf68XrWL79bKes6htzFjQ(father, asgn);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 115):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 126):
	{
		{
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x;
			x = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen_CdME9baJhvveuPEDZE9bXoxArenderer(n);
				i_2 = ((NI) 0);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA6;
						i = i_2;
						x = (*n)._Ukind.S6.sons->data[i];
						patchAsgnStmtListExpr_KAraXem1fGqbyFed2BZeaA(father, orig, x);
						i_2 += ((NI) 1);
					} LA6: ;
				}
			}
		}
	}
	break;
	default:
	{
		add_gCCf68XrWL79bKes6htzFjQ(father, n);
	}
	break;
	}
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, discriminatorTableDecl_wOfMK5JrT0vmKss7nf2bjw_2)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* objtype, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* d) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tmp;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T2_;
	NI64 T3_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = cgsym_0d9bDo5R2p09cv1ljqpC4l8Q(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_141));
	T1_;
	tmp = discriminatorTableName_wOfMK5JrT0vmKss7nf2bjw(m, objtype, d);
	nimZeroMem((void*)T2_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T2_[0] = tmp;
	T3_ = (NI64)0;
	T3_ = lengthOrd_4cSIntenL9aBXY6LAFsvXdQ_2((*(*m).g).config, (*d).typ);
	T2_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ((NI64)(T3_ + IL64(1)));
	result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_237), T2_, 2);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genDiscriminantCheck_c1s9cEnyLNclmLP8bBuHmDg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* tmp, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* objtype, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T1_;
	NI64 L;
	tyArray_f7nG5LD47BH5K9c6mASit3g T8_;
	t = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(objtype, IL64(36239903259928848));
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = genTypeInfo_7P9bdUkiYYdBWl5P39cGpERw((*p).module, t, (*(*a).lode).info);
	T1_;
	L = lengthOrd_4cSIntenL9aBXY6LAFsvXdQ_2((*(*(*p).module).g).config, (*field).typ);
	{
		NIM_BOOL T4_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T7_;
		T4_ = (NIM_BOOL)0;
		T4_ = containsOrIncl_B0EhVMrh5BBBZOOtYjAvVg((&(*(*p).module).declaredThings), (*field).Sup.id);
		if (!!(T4_)) goto LA5_;
		nimZeroMem((void*)T7_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T7_[0] = discriminatorTableDecl_wOfMK5JrT0vmKss7nf2bjw_2((*p).module, t, field);
		appcg_OBq0R3oyTk3megut9c9bSbcA((*p).module, ((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_679), T7_, 1);
	}
	LA5_: ;
	nimZeroMem((void*)T8_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
	T8_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
	T8_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(tmp);
	T8_[2] = discriminatorTableName_wOfMK5JrT0vmKss7nf2bjw((*p).module, t, field);
	T8_[3] = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg((NI64)(L + IL64(1)));
	lineCg_zZ8N2PtAlqFZKCp7nvAnhw_2(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_680), T8_, 4);
}

N_LIB_PRIVATE N_NIMCALL(void, asgnFieldDiscriminant_X9cSqNhqEboci9cdmwBMNcBw_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* dotExpr;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T5_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&tmp), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	dotExpr = (*e)._Ukind.S6.sons->data[((NI) 0)];
	{
		if (!((*dotExpr).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 46))) goto LA3_;
		dotExpr = (*dotExpr)._Ukind.S6.sons->data[((NI) 0)];
	}
	LA3_: ;
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._Ukind.S6.sons->data[((NI) 0)], (&a));
	T5_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T5_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&a));
	getTemp_VjOFVqypINqQv5C3ECnxbw(p, T5_, (&tmp), NIM_FALSE);
	expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*e)._Ukind.S6.sons->data[((NI) 1)], (&tmp));
	genDiscriminantCheck_c1s9cEnyLNclmLP8bBuHmDg(p, (&a), (&tmp), (*(*dotExpr)._Ukind.S6.sons->data[((NI) 0)]).typ, (*(*dotExpr)._Ukind.S6.sons->data[((NI) 1)])._Ukind.S4.sym);
	genAssignment_BtucsTdHw7orsXIL75hNVg_2(p, (&a), (&tmp), 0);
}

N_LIB_PRIVATE N_NIMCALL(void, genAsgn_9ap9b3IFVLSL9b9akVbfMyRxlA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, NIM_BOOL fastAsgn) {
{	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*e)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
		if (!(T3_)) goto LA4_;
		T3_ = (((*(*(*e)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 31))&63U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, e);
		genGotoVar_4xOIY9bgIMy9bAzg2ZyIieBw(p, (*e)._Ukind.S6.sons->data[((NI) 1)]);
	}
	goto LA1_;
	LA5_: ;
	{
		NIM_BOOL T8_;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri;
		NIM_BOOL needsRepair;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T19_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
		T8_ = (NIM_BOOL)0;
		T8_ = fieldDiscriminantCheckNeeded_Eyz2KtzeOLvgSAeQHJsjPQ(p, e);
		if (!!(T8_)) goto LA9_;
		le = (*e)._Ukind.S6.sons->data[((NI) 0)];
		ri = (*e)._Ukind.S6.sons->data[((NI) 1)];
		needsRepair = NIM_FALSE;
		it = ri;
		{
			while (1) {
				if (!((*it).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 115) || (*it).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 126))) goto LA12;
				it = lastSon_esDJA7239bJDiq4UrX9aHCjg(it);
				needsRepair = NIM_TRUE;
			} LA12: ;
		}
		{
			NIM_BOOL T15_;
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* patchedTree;
			T15_ = (NIM_BOOL)0;
			T15_ = ((*it).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 47) || (*it).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 65));
			if (!(T15_)) goto LA16_;
			T15_ = needsRepair;
			LA16_: ;
			if (!T15_) goto LA17_;
			patchedTree = newNodeI_I7fH85CUcZMasoPRKxPsPg(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 115), (*e).info);
			patchAsgnStmtListExpr_KAraXem1fGqbyFed2BZeaA(patchedTree, e, ri);
			genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, patchedTree);
			goto BeforeRet_;
		}
		LA17_: ;
		nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		T19_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T19_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*le).typ, IL64(36239903266179344));
		T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T20_ = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, T19_);
		T20_;
		{
			if (!((*le).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 47) || (*le).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 65))) goto LA23_;
			genDeref_BLGSHeDM9cawDE7Hp9bscFgg(p, le, (&a), NIM_TRUE);
		}
		goto LA21_;
		LA23_: ;
		{
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, le, (&a));
		}
		LA21_: ;
		{
			if (!fastAsgn) goto LA28_;
			a.flags |= ((NU16)1)<<((((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 2))%(sizeof(NU16)*8));
		}
		LA28_: ;
		genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, ri);
		loadInto_vkEx8Dn9aiGOI04WjvQIHIwcgen(p, (*e)._Ukind.S6.sons->data[((NI) 0)], ri, (&a));
	}
	goto LA1_;
	LA9_: ;
	{
		genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, e);
		asgnFieldDiscriminant_X9cSqNhqEboci9cdmwBMNcBw_4(p, e);
	}
	LA1_: ;
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genAsmOrEmitStmt_53Pwv51Dxuia7o9bQN4K9agw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, NIM_BOOL isAsmStmt) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	NimStringDesc* res;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	res = ((NimStringDesc*) NIM_NIL);
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
		tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ* colontmp_;
		NI i;
		NI L;
		NI T2_;
		it = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		colontmp_ = (tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ*)0;
		colontmp_ = (*t)._Ukind.S6.sons;
		i = ((NI) 0);
		T2_ = (colontmp_ ? colontmp_->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				if (!(i < L)) goto LA4;
				it = colontmp_->data[i];
				switch ((*it).kind) {
				case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 22):
				{
					res = resizeString(res, ((*it)._Ukind.S3.strVal ? (*it)._Ukind.S3.strVal->Sup.len : 0) + 0);
appendString(res, (*it)._Ukind.S3.strVal);
				}
				break;
				case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3):
				{
					tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym;
					sym = (*it)._Ukind.S4.sym;
					{
						tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
						NimStringDesc* T12_;
						if (!((61440 &(1U<<((NU)((*sym).kind)&31U)))!=0)) goto LA9_;
						nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
						initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, it, (&a));
						T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T11_ = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
						T12_ = (NimStringDesc*)0;
						T12_ = dollar__4KNdcWAONkpTKQgUR8XiZQ(T11_);
						res = resizeString(res, (T12_ ? T12_->Sup.len : 0) + 0);
appendString(res, T12_);
					}
					goto LA7_;
					LA9_: ;
					{
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T16_;
						NimStringDesc* T17_;
						if (!((*sym).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 7))) goto LA14_;
						T16_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T16_ = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, (*sym).typ);
						T17_ = (NimStringDesc*)0;
						T17_ = dollar__4KNdcWAONkpTKQgUR8XiZQ(T16_);
						res = resizeString(res, (T17_ ? T17_->Sup.len : 0) + 0);
appendString(res, T17_);
					}
					goto LA7_;
					LA14_: ;
					{
						tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T19_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r;
						NimStringDesc* T25_;
						T19_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
						T19_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*sym).typ, IL64(36239903266220304));
						T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T20_ = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, T19_);
						T20_;
						r = (*sym).loc.r;
						{
							if (!(r == NIM_NIL)) goto LA23_;
							r = mangleName_lo8D59ciMfLVeiUtGYx89bOg((*p).module, sym);
							asgnRefNoCycle((void**) (&(*sym).loc.r), r);
						}
						LA23_: ;
						T25_ = (NimStringDesc*)0;
						T25_ = dollar__4KNdcWAONkpTKQgUR8XiZQ(r);
						res = resizeString(res, (T25_ ? T25_->Sup.len : 0) + 0);
appendString(res, T25_);
					}
					LA7_: ;
				}
				break;
				case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 132):
				{
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T27_;
					NimStringDesc* T28_;
					T27_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T27_ = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, (*it).typ);
					T28_ = (NimStringDesc*)0;
					T28_ = dollar__4KNdcWAONkpTKQgUR8XiZQ(T27_);
					res = resizeString(res, (T28_ ? T28_->Sup.len : 0) + 0);
appendString(res, T28_);
				}
				break;
				default:
				{
					tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T30_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T31_;
					tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_2;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T32_;
					NimStringDesc* T33_;
					T30_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T30_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*it).typ, IL64(36239903266220304));
					T31_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T31_ = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, T30_);
					T31_;
					nimZeroMem((void*)(&a_2), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
					initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, it, (&a_2));
					T32_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T32_ = rdLoc_xidyzuHqIciXbQyEOKahDg((&a_2));
					T33_ = (NimStringDesc*)0;
					T33_ = dollar__4KNdcWAONkpTKQgUR8XiZQ(T32_);
					res = resizeString(res, (T33_ ? T33_->Sup.len : 0) + 0);
appendString(res, T33_);
				}
				break;
				}
				i += ((NI) 1);
			} LA4: ;
		}
	}
	{
		NIM_BOOL T36_;
		T36_ = (NIM_BOOL)0;
		T36_ = isAsmStmt;
		if (!(T36_)) goto LA37_;
		T36_ = ((CC_78I18QZNZFIv9ah7oETc0jg[((*(*(*(*p).module).g).config).cCompiler)- 1].Field19 &(1U<<((NU)(((tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg) 5))&7U)))!=0);
		LA37_: ;
		if (!T36_) goto LA38_;
		{
			NimStringDesc* x;
			NI first;
			NI last;
			NI eolpos;
			x = (NimStringDesc*)0;
			first = ((NI) 0);
			last = ((NI) 0);
			eolpos = ((NI) 0);
			{
				while (1) {
					NI T64_;
					NI j;
					{
						while (1) {
							NIM_BOOL T45_;
							T45_ = (NIM_BOOL)0;
							T45_ = (last < (res ? res->Sup.len : 0));
							if (!(T45_)) goto LA46_;
							T45_ = !((((NU8)(res->data[last])) == ((NU8)(13)) || ((NU8)(res->data[last])) == ((NU8)(10))));
							LA46_: ;
							if (!T45_) goto LA44;
							last += ((NI) 1);
						} LA44: ;
					}
					eolpos = last;
					{
						if (!(last < (res ? res->Sup.len : 0))) goto LA49_;
						{
							if (!((NU8)(res->data[last]) == (NU8)(10))) goto LA53_;
							last += ((NI) 1);
						}
						goto LA51_;
						LA53_: ;
						{
							if (!((NU8)(res->data[last]) == (NU8)(13))) goto LA56_;
							last += ((NI) 1);
							{
								NIM_BOOL T60_;
								T60_ = (NIM_BOOL)0;
								T60_ = (last < (res ? res->Sup.len : 0));
								if (!(T60_)) goto LA61_;
								T60_ = ((NU8)(res->data[last]) == (NU8)(10));
								LA61_: ;
								if (!T60_) goto LA62_;
								last += ((NI) 1);
							}
							LA62_: ;
						}
						goto LA51_;
						LA56_: ;
						LA51_: ;
					}
					LA49_: ;
					T64_ = (NI)0;
					{
						if (!NIM_FALSE) goto LA67_;
						T64_ = (NI)(last - ((NI) 1));
					}
					goto LA65_;
					LA67_: ;
					{
						T64_ = (NI)(eolpos - ((NI) 1));
					}
					LA65_: ;
					x = substr_TWXUwbnq0SWWvDLfr8LXYw(res, first, T64_);
					j = ((NI) 0);
					{
						while (1) {
							NIM_BOOL T72_;
							T72_ = (NIM_BOOL)0;
							T72_ = (j < (x ? x->Sup.len : 0));
							if (!(T72_)) goto LA73_;
							T72_ = (((NU8)(x->data[j])) == ((NU8)(32)) || ((NU8)(x->data[j])) == ((NU8)(9)));
							LA73_: ;
							if (!T72_) goto LA71;
							j += ((NI) 1);
						} LA71: ;
					}
					{
						if (!(j < (x ? x->Sup.len : 0))) goto LA76_;
						{
							if (!(((NU8)(x->data[j])) == ((NU8)(34)) || ((NU8)(x->data[j])) == ((NU8)(58)))) goto LA80_;
							add_yG4AKzsBRS1W4MANDlXQeg(&result, x);
							add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_8));
						}
						goto LA78_;
						LA80_: ;
						{
							add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_682));
							add_yG4AKzsBRS1W4MANDlXQeg(&result, x);
							add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_683));
						}
						LA78_: ;
					}
					LA76_: ;
					{
						if (!(eolpos == last)) goto LA85_;
						goto LA41;
					}
					LA85_: ;
					first = last;
				}
			} LA41: ;
		}
	}
	goto LA34_;
	LA38_: ;
	{
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_8));
		result = rope_yShmEg9cffWxI7s5XzEKBow(res);
	}
	LA34_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genAsmStmt_QrTB5DOwbDX9bKAW7PNbuJA_6)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* s;
	genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
	s = genAsmOrEmitStmt_53Pwv51Dxuia7o9bQN4K9agw(p, t, NIM_TRUE);
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T5_;
		if (!((*p).prc == NIM_NIL)) goto LA3_;
		nimZeroMem((void*)T5_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T5_[0] = s;
		addf_ocEHZ9cujtqicXvDuJUm5pg(&(*(*p).module).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 7))- 0], CC_78I18QZNZFIv9ah7oETc0jg[((*(*(*(*p).module).g).config).cCompiler)- 1].Field17, T5_, 1);
	}
	goto LA1_;
	LA3_: ;
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T7_;
		nimZeroMem((void*)T7_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T7_[0] = s;
		lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), CC_78I18QZNZFIv9ah7oETc0jg[((*(*(*(*p).module).g).config).cCompiler)- 1].Field17, T7_, 1);
	}
	LA1_: ;
}

static N_INLINE(tyTuple_aTNxDjHI7v9cq37xS7PT7jA*, X5BX5D__DNaoadBNamECp4NO8E7GXgcgen)(tyTuple_aTNxDjHI7v9cq37xS7PT7jA* s, NI sLen_0, NI i) {
	tyTuple_aTNxDjHI7v9cq37xS7PT7jA* result;
	result = (tyTuple_aTNxDjHI7v9cq37xS7PT7jA*)0;
	result = (&s[(NI)(sLen_0 - i)]);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genRestoreFrameAfterException_0dpuY9coTlraj8JXIe2BzVw_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p) {
	{
		tyArray_qTjAvTvKF9anytN1At69aJMQ T15_;
		if (!(((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 16))&31U)))!=0)) goto LA3_;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T9_;
			tyArray_qTjAvTvKF9anytN1At69aJMQ T10_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T12_;
			tyArray_qTjAvTvKF9anytN1At69aJMQ T13_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
			if (!!((*p).hasCurFramePointer)) goto LA7_;
			(*p).hasCurFramePointer = NIM_TRUE;
			T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T9_ = procSec_oPjlsf0lwosYuh6KXhkqLQ_2cgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
			nimZeroMem((void*)T10_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
			T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T11_ = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_686), T10_, 0);
			add_iMTw0CDaruwETLGb9bhpBLg(T9_, T11_);
			T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T12_ = procSec_oPjlsf0lwosYuh6KXhkqLQ_2cgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1));
			nimZeroMem((void*)T13_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
			T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T14_ = ropecg_pDjCXevkau9aaTuKWN9cvHGw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_687), T13_, 0);
			add_iMTw0CDaruwETLGb9bhpBLg(T12_, T14_);
		}
		LA7_: ;
		nimZeroMem((void*)T15_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_688), T15_, 0);
	}
	LA3_: ;
}

static N_INLINE(void, genSimpleBlock_RH6PUsmPRE4ftBMagpWhBQcgen)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* stmts) {
	tyArray_qTjAvTvKF9anytN1At69aJMQ T1_;
	NI T2_;
	nimZeroMem((void*)T1_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
	T2_ = (NI)0;
	T2_ = startBlock_5VnWFu9cyKySWdJiAv81lJQ(p, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_312), T1_, 0);
	genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, stmts);
	endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
}

N_LIB_PRIVATE N_NIMCALL(void, genTryCpp_re1pwmyeR32ikwnOC3vvzQ_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T8_;
	tyTuple_aTNxDjHI7v9cq37xS7PT7jA T9_;
	NI T10_;
	tyArray_qTjAvTvKF9anytN1At69aJMQ T11_;
	NI T12_;
	NIM_BOOL catchAllPresent;
	tyTuple_aTNxDjHI7v9cq37xS7PT7jA* T13_;
	tyTuple_aTNxDjHI7v9cq37xS7PT7jA T50_;
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = isEmptyType_9aw9cztYHpNdZjCV1t0mJqwgvmgen((*t).typ);
		T3_ = !(T4_);
		if (!(T3_)) goto LA5_;
		T3_ = ((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0));
		LA5_: ;
		if (!T3_) goto LA6_;
		getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*t).typ, d, NIM_FALSE);
	}
	LA6_: ;
	genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
	T8_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T8_ = cgsym_0d9bDo5R2p09cv1ljqpC4l8Q((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_92));
	T8_;
	nimZeroMem((void*)(&T9_), sizeof(tyTuple_aTNxDjHI7v9cq37xS7PT7jA));
	T9_.Field0 = t;
	T9_.Field1 = NIM_FALSE;
	asgnRefNoCycle((void**) (&(*p).nestedTryStmts), (tySequence_P9c6Y5h4sjjYLVGti5AELHg*) incrSeqV3(&((*p).nestedTryStmts)->Sup, (&NTI_P9c6Y5h4sjjYLVGti5AELHg_)));
	T10_ = (*p).nestedTryStmts->Sup.len++;
	asgnRefNoCycle((void**) (&(*p).nestedTryStmts->data[T10_].Field0), T9_.Field0);
	(*p).nestedTryStmts->data[T10_].Field1 = T9_.Field1;
	nimZeroMem((void*)T11_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
	T12_ = (NI)0;
	T12_ = startBlock_5VnWFu9cyKySWdJiAv81lJQ(p, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_684), T11_, 0);
	expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*t)._Ukind.S6.sons->data[((NI) 0)], d);
	endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
	catchAllPresent = NIM_FALSE;
	T13_ = (tyTuple_aTNxDjHI7v9cq37xS7PT7jA*)0;
	T13_ = X5BX5D__DNaoadBNamECp4NO8E7GXgcgen((*p).nestedTryStmts->data, ((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0), ((NI) 1));
	(*T13_).Field1 = NIM_TRUE;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(t);
		i_2 = ((NI) 1);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA16;
				i = i_2;
				{
					if (!!(((*(*t)._Ukind.S6.sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 87)))) goto LA19_;
					goto LA14;
				}
				LA19_: ;
				{
					NIM_BOOL T23_;
					T23_ = (NIM_BOOL)0;
					T23_ = ((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 1));
					if (!(T23_)) goto LA24_;
					T23_ = isEmptyType_9aw9cztYHpNdZjCV1t0mJqwgvmgen((*t).typ);
					LA24_: ;
					if (!T23_) goto LA25_;
					(*d).k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0);
				}
				LA25_: ;
				{
					NI T29_;
					tyArray_qTjAvTvKF9anytN1At69aJMQ T32_;
					NI T33_;
					T29_ = (NI)0;
					T29_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch((*t)._Ukind.S6.sons->data[i]);
					if (!(T29_ == ((NI) 1))) goto LA30_;
					catchAllPresent = NIM_TRUE;
					nimZeroMem((void*)T32_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
					T33_ = (NI)0;
					T33_ = startBlock_5VnWFu9cyKySWdJiAv81lJQ(p, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_685), T32_, 0);
					genRestoreFrameAfterException_0dpuY9coTlraj8JXIe2BzVw_2(p);
					expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*(*t)._Ukind.S6.sons->data[i])._Ukind.S6.sons->data[((NI) 0)], d);
					endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
				}
				goto LA27_;
				LA30_: ;
				{
					{
						NI j;
						NI colontmp__2;
						NI T36_;
						NI res;
						j = (NI)0;
						colontmp__2 = (NI)0;
						T36_ = (NI)0;
						T36_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch((*t)._Ukind.S6.sons->data[i]);
						colontmp__2 = (NI)(T36_ - ((NI) 2));
						res = ((NI) 0);
						{
							while (1) {
								NI T39_;
								NI T49_;
								if (!(res <= colontmp__2)) goto LA38;
								j = res;
								T39_ = (NI)0;
								{
									NIM_BOOL T42_;
									tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* exvar;
									tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T45_;
									tyArray_mrugoXXRZUEeG9bEXo9auBKw T46_;
									T42_ = (NIM_BOOL)0;
									T42_ = isInfixAs_63pt39coF5C8JoG0utNnwWg_2((*(*t)._Ukind.S6.sons->data[i])._Ukind.S6.sons->data[j]);
									if (!T42_) goto LA43_;
									exvar = (*(*(*t)._Ukind.S6.sons->data[i])._Ukind.S6.sons->data[j])._Ukind.S6.sons->data[((NI) 2)];
									T45_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
									T45_ = mangleLocalName_VpV5Cmis02zaNlTmLYJNfQ(p, (*exvar)._Ukind.S4.sym);
									fillLoc_US6BUWbxbS9bTHtpMCqKFkw((&(*(*exvar)._Ukind.S4.sym).loc), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 1), exvar, T45_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
									nimZeroMem((void*)T46_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
									T46_[0] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, (*(*(*(*t)._Ukind.S6.sons->data[i])._Ukind.S6.sons->data[j])._Ukind.S6.sons->data[((NI) 1)]).typ);
									T46_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg((&(*(*exvar)._Ukind.S4.sym).loc));
									T39_ = startBlock_5VnWFu9cyKySWdJiAv81lJQ(p, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_689), T46_, 2);
								}
								goto LA40_;
								LA43_: ;
								{
									tyArray_JiWwrsTRC6xqNlGcBthSVA T48_;
									nimZeroMem((void*)T48_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
									T48_[0] = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2((*p).module, (*(*(*t)._Ukind.S6.sons->data[i])._Ukind.S6.sons->data[j]).typ);
									T39_ = startBlock_5VnWFu9cyKySWdJiAv81lJQ(p, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_690), T48_, 1);
								}
								LA40_: ;
								genRestoreFrameAfterException_0dpuY9coTlraj8JXIe2BzVw_2(p);
								T49_ = (NI)0;
								T49_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch((*t)._Ukind.S6.sons->data[i]);
								expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*(*t)._Ukind.S6.sons->data[i])._Ukind.S6.sons->data[(NI)(T49_ - ((NI) 1))], d);
								endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
								res += ((NI) 1);
							} LA38: ;
						}
					}
				}
				LA27_: ;
				i_2 += ((NI) 1);
			} LA16: ;
		}
	} LA14: ;
	nimZeroMem((void*)(&T50_), sizeof(tyTuple_aTNxDjHI7v9cq37xS7PT7jA));
	pop_YLluDKGZN2sKVVF4ZTxS0Acgen((&(*p).nestedTryStmts), (&T50_));
	T50_;
	{
		NIM_BOOL T53_;
		NI T55_;
		tyArray_qTjAvTvKF9anytN1At69aJMQ T58_;
		NI T59_;
		NI T60_;
		tyArray_qTjAvTvKF9anytN1At69aJMQ T61_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T62_;
		T53_ = (NIM_BOOL)0;
		T53_ = !(catchAllPresent);
		if (!(T53_)) goto LA54_;
		T55_ = (NI)0;
		T55_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(t);
		T53_ = ((*(*t)._Ukind.S6.sons->data[(NI)(T55_ - ((NI) 1))]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 107));
		LA54_: ;
		if (!T53_) goto LA56_;
		nimZeroMem((void*)T58_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		T59_ = (NI)0;
		T59_ = startBlock_5VnWFu9cyKySWdJiAv81lJQ(p, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_685), T58_, 0);
		T60_ = (NI)0;
		T60_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(t);
		genSimpleBlock_RH6PUsmPRE4ftBMagpWhBQcgen(p, (*(*t)._Ukind.S6.sons->data[(NI)(T60_ - ((NI) 1))])._Ukind.S6.sons->data[((NI) 0)]);
		nimZeroMem((void*)T61_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		T62_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T62_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_691), T61_, 0);
		line_7EHg9a9bBQrxiXUHES9aziKUQ(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), T62_);
		endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
	}
	LA56_: ;
	{
		NI T65_;
		NI T68_;
		T65_ = (NI)0;
		T65_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(t);
		if (!((*(*t)._Ukind.S6.sons->data[(NI)(T65_ - ((NI) 1))]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 107))) goto LA66_;
		T68_ = (NI)0;
		T68_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(t);
		genSimpleBlock_RH6PUsmPRE4ftBMagpWhBQcgen(p, (*(*t)._Ukind.S6.sons->data[(NI)(T68_ - ((NI) 1))])._Ukind.S6.sons->data[((NI) 0)]);
	}
	LA66_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, line_9aXHc8esghJ4O9cCshiFsv8g)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg s, NimStringDesc* r) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T2_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T3_;
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T1_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p, s);
	T2_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = rope_yShmEg9cffWxI7s5XzEKBow(r);
	T3_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T3_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T2_);
	add_iMTw0CDaruwETLGb9bhpBLg(T1_, T3_);
}

static N_INLINE(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, pop_Ux3gtntcVjVnGxXx3h8vbwropes)(tySequence_WwUFq9cJ2xKRlsAWVEHyPRg** s) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	NI L;
	NI T1_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = ((*s) ? (*s)->Sup.len : 0);
	L = (NI)(T1_ - ((NI) 1));
	result = (*s)->data[L];
	unsureAsgnRef((void**) (&(*s)), (tySequence_WwUFq9cJ2xKRlsAWVEHyPRg*) setLengthSeqV2(&((*s))->Sup, (&NTI_WwUFq9cJ2xKRlsAWVEHyPRg_), ((NI) (L))));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genTry_re1pwmyeR32ikwnOC3vvzQ_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* safePoint;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T8_;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T9_;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T10_;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T29_;
	NI T30_;
	NI length;
	tyTuple_aTNxDjHI7v9cq37xS7PT7jA T31_;
	NI T32_;
	tyArray_qTjAvTvKF9anytN1At69aJMQ T33_;
	tyArray_qTjAvTvKF9anytN1At69aJMQ T34_;
	NI T35_;
	tyArray_qTjAvTvKF9anytN1At69aJMQ T36_;
	tyTuple_aTNxDjHI7v9cq37xS7PT7jA* T37_;
	NI i;
	tyTuple_aTNxDjHI7v9cq37xS7PT7jA T85_;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T94_;
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = isEmptyType_9aw9cztYHpNdZjCV1t0mJqwgvmgen((*t).typ);
		T3_ = !(T4_);
		if (!(T3_)) goto LA5_;
		T3_ = ((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0));
		LA5_: ;
		if (!T3_) goto LA6_;
		getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*t).typ, d, NIM_FALSE);
	}
	LA6_: ;
	includeHeader_uTF5360OavCefWH39cfa58w((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_692));
	genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
	safePoint = getTempName_9cFzUT5Cyfi5u0F447WwLvA((*p).module);
	T8_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T8_ = cgsym_0d9bDo5R2p09cv1ljqpC4l8Q((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_693));
	T8_;
	nimZeroMem((void*)T9_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T9_[0] = safePoint;
	linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_694), T9_, 1);
	nimZeroMem((void*)T10_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T10_[0] = safePoint;
	linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_695), T10_, 1);
	{
		NIM_BOOL T13_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T16_;
		T13_ = (NIM_BOOL)0;
		T13_ = isDefined_TeEHxEj0zXnJc9aUarshH9aA((*(*(*p).module).g).config, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_696));
		if (!T13_) goto LA14_;
		nimZeroMem((void*)T16_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T16_[0] = safePoint;
		linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_697), T16_, 1);
	}
	goto LA11_;
	LA14_: ;
	{
		NIM_BOOL T18_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T21_;
		T18_ = (NIM_BOOL)0;
		T18_ = isDefined_TeEHxEj0zXnJc9aUarshH9aA((*(*(*p).module).g).config, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_698));
		if (!T18_) goto LA19_;
		nimZeroMem((void*)T21_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T21_[0] = safePoint;
		linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_699), T21_, 1);
	}
	goto LA11_;
	LA19_: ;
	{
		NIM_BOOL T23_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T26_;
		T23_ = (NIM_BOOL)0;
		T23_ = isDefined_TeEHxEj0zXnJc9aUarshH9aA((*(*(*p).module).g).config, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_700));
		if (!T23_) goto LA24_;
		nimZeroMem((void*)T26_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T26_[0] = safePoint;
		linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_701), T26_, 1);
	}
	goto LA11_;
	LA24_: ;
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T28_;
		nimZeroMem((void*)T28_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T28_[0] = safePoint;
		linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_697), T28_, 1);
	}
	LA11_: ;
	nimZeroMem((void*)T29_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T29_[0] = safePoint;
	T30_ = (NI)0;
	T30_ = startBlock_5VnWFu9cyKySWdJiAv81lJQ(p, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_702), T29_, 1);
	length = sonsLen_qPWPHw7WgJeEVYUdcaRIig(t);
	nimZeroMem((void*)(&T31_), sizeof(tyTuple_aTNxDjHI7v9cq37xS7PT7jA));
	T31_.Field0 = t;
	T31_.Field1 = NIM_FALSE;
	asgnRefNoCycle((void**) (&(*p).nestedTryStmts), (tySequence_P9c6Y5h4sjjYLVGti5AELHg*) incrSeqV3(&((*p).nestedTryStmts)->Sup, (&NTI_P9c6Y5h4sjjYLVGti5AELHg_)));
	T32_ = (*p).nestedTryStmts->Sup.len++;
	asgnRefNoCycle((void**) (&(*p).nestedTryStmts->data[T32_].Field0), T31_.Field0);
	(*p).nestedTryStmts->data[T32_].Field1 = T31_.Field1;
	expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*t)._Ukind.S6.sons->data[((NI) 0)], d);
	nimZeroMem((void*)T33_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
	linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_673), T33_, 0);
	endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
	nimZeroMem((void*)T34_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
	T35_ = (NI)0;
	T35_ = startBlock_5VnWFu9cyKySWdJiAv81lJQ(p, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_703), T34_, 0);
	nimZeroMem((void*)T36_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
	linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_673), T36_, 0);
	genRestoreFrameAfterException_0dpuY9coTlraj8JXIe2BzVw_2(p);
	T37_ = (tyTuple_aTNxDjHI7v9cq37xS7PT7jA*)0;
	T37_ = X5BX5D__DNaoadBNamECp4NO8E7GXgcgen((*p).nestedTryStmts->data, ((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0), ((NI) 1));
	(*T37_).Field1 = NIM_TRUE;
	i = ((NI) 1);
	{
		while (1) {
			NIM_BOOL T40_;
			NI blen;
			T40_ = (NIM_BOOL)0;
			T40_ = (i < length);
			if (!(T40_)) goto LA41_;
			T40_ = ((*(*t)._Ukind.S6.sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 87));
			LA41_: ;
			if (!T40_) goto LA39;
			{
				NIM_BOOL T44_;
				T44_ = (NIM_BOOL)0;
				T44_ = ((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 1));
				if (!(T44_)) goto LA45_;
				T44_ = isEmptyType_9aw9cztYHpNdZjCV1t0mJqwgvmgen((*t).typ);
				LA45_: ;
				if (!T44_) goto LA46_;
				(*d).k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0);
			}
			LA46_: ;
			blen = sonsLen_qPWPHw7WgJeEVYUdcaRIig((*t)._Ukind.S6.sons->data[i]);
			{
				tyArray_qTjAvTvKF9anytN1At69aJMQ T57_;
				NI T58_;
				tyArray_JiWwrsTRC6xqNlGcBthSVA T59_;
				tyArray_qTjAvTvKF9anytN1At69aJMQ T60_;
				if (!(blen == ((NI) 1))) goto LA50_;
				{
					tyArray_qTjAvTvKF9anytN1At69aJMQ T56_;
					if (!(((NI) 1) < i)) goto LA54_;
					nimZeroMem((void*)T56_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
					lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_704), T56_, 0);
				}
				LA54_: ;
				nimZeroMem((void*)T57_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
				T58_ = (NI)0;
				T58_ = startBlock_5VnWFu9cyKySWdJiAv81lJQ(p, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_312), T57_, 0);
				nimZeroMem((void*)T59_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
				T59_[0] = safePoint;
				linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_705), T59_, 1);
				expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*(*t)._Ukind.S6.sons->data[i])._Ukind.S6.sons->data[((NI) 0)], d);
				nimZeroMem((void*)T60_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
				linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_674), T60_, 0);
				endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
			}
			goto LA48_;
			LA50_: ;
			{
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* orExpr;
				tyArray_JiWwrsTRC6xqNlGcBthSVA T81_;
				NI T82_;
				tyArray_JiWwrsTRC6xqNlGcBthSVA T83_;
				tyArray_qTjAvTvKF9anytN1At69aJMQ T84_;
				orExpr = NIM_NIL;
				{
					NI j;
					NI colontmp_;
					NI res;
					j = (NI)0;
					colontmp_ = (NI)0;
					colontmp_ = (NI)(blen - ((NI) 2));
					res = ((NI) 0);
					{
						while (1) {
							NimStringDesc* isObjFormat;
							tyArray_JiWwrsTRC6xqNlGcBthSVA T76_;
							if (!(res <= colontmp_)) goto LA64;
							j = res;
							{
								if (!!((orExpr == NIM_NIL))) goto LA67_;
								add_yG4AKzsBRS1W4MANDlXQeg(&orExpr, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_268));
							}
							LA67_: ;
							{
								NIM_BOOL T71_;
								T71_ = (NIM_BOOL)0;
								T71_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
								if (T71_) goto LA72_;
								T71_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
								LA72_: ;
								if (!!(T71_)) goto LA73_;
								isObjFormat = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_706));
							}
							goto LA69_;
							LA73_: ;
							{
								isObjFormat = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_707));
							}
							LA69_: ;
							nimZeroMem((void*)T76_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
							T76_[0] = genTypeInfo_7P9bdUkiYYdBWl5P39cGpERw((*p).module, (*(*(*t)._Ukind.S6.sons->data[i])._Ukind.S6.sons->data[j]).typ, (*(*(*t)._Ukind.S6.sons->data[i])._Ukind.S6.sons->data[j]).info);
							appcg_GrB2Hbyo8XeK6TPKMD0Y5A((*p).module, &orExpr, isObjFormat, T76_, 1);
							res += ((NI) 1);
						} LA64: ;
					}
				}
				{
					if (!(((NI) 1) < i)) goto LA79_;
					line_9aXHc8esghJ4O9cCshiFsv8g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_708));
				}
				LA79_: ;
				nimZeroMem((void*)T81_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
				T81_[0] = orExpr;
				T82_ = (NI)0;
				T82_ = startBlock_5VnWFu9cyKySWdJiAv81lJQ(p, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_709), T81_, 1);
				nimZeroMem((void*)T83_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
				T83_[0] = safePoint;
				linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_705), T83_, 1);
				expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*(*t)._Ukind.S6.sons->data[i])._Ukind.S6.sons->data[(NI)(blen - ((NI) 1))], d);
				nimZeroMem((void*)T84_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
				linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_674), T84_, 0);
				endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
			}
			LA48_: ;
			i += ((NI) 1);
		} LA39: ;
	}
	nimZeroMem((void*)(&T85_), sizeof(tyTuple_aTNxDjHI7v9cq37xS7PT7jA));
	pop_YLluDKGZN2sKVVF4ZTxS0Acgen((&(*p).nestedTryStmts), (&T85_));
	T85_;
	endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
	{
		NIM_BOOL T88_;
		NI T92_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T93_;
		T88_ = (NIM_BOOL)0;
		T88_ = (i < length);
		if (!(T88_)) goto LA89_;
		T88_ = ((*(*t)._Ukind.S6.sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 107));
		LA89_: ;
		if (!T88_) goto LA90_;
		asgnRefNoCycle((void**) (&(*p).finallySafePoints), (tySequence_WwUFq9cJ2xKRlsAWVEHyPRg*) incrSeqV3(&((*p).finallySafePoints)->Sup, (&NTI_WwUFq9cJ2xKRlsAWVEHyPRg_)));
		T92_ = (*p).finallySafePoints->Sup.len++;
		asgnRefNoCycle((void**) (&(*p).finallySafePoints->data[T92_]), safePoint);
		genSimpleBlock_RH6PUsmPRE4ftBMagpWhBQcgen(p, (*(*t)._Ukind.S6.sons->data[i])._Ukind.S6.sons->data[((NI) 0)]);
		T93_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T93_ = pop_Ux3gtntcVjVnGxXx3h8vbwropes((&(*p).finallySafePoints));
		T93_;
	}
	LA90_: ;
	nimZeroMem((void*)T94_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T94_[0] = safePoint;
	linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_710), T94_, 1);
}

N_LIB_PRIVATE N_NIMCALL(void, genRaiseStmt_QrTB5DOwbDX9bKAW7PNbuJA_7)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t) {
	{
		NIM_BOOL T3_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T3_) goto LA4_;
		T3_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T7_ = cgsym_0d9bDo5R2p09cv1ljqpC4l8Q((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_92));
		T7_;
	}
	LA5_: ;
	{
		NIM_BOOL T10_;
		NI T11_;
		tyTuple_aTNxDjHI7v9cq37xS7PT7jA* T13_;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* finallyBlock;
		tyTuple_aTNxDjHI7v9cq37xS7PT7jA* T16_;
		tyTuple_aTNxDjHI7v9cq37xS7PT7jA* T17_;
		NI T18_;
		T10_ = (NIM_BOOL)0;
		T11_ = ((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0);
		T10_ = (((NI) 0) < T11_);
		if (!(T10_)) goto LA12_;
		T13_ = (tyTuple_aTNxDjHI7v9cq37xS7PT7jA*)0;
		T13_ = X5BX5D__DNaoadBNamECp4NO8E7GXgcgen((*p).nestedTryStmts->data, ((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0), ((NI) 1));
		T10_ = (*T13_).Field1;
		LA12_: ;
		if (!T10_) goto LA14_;
		T16_ = (tyTuple_aTNxDjHI7v9cq37xS7PT7jA*)0;
		T16_ = X5BX5D__DNaoadBNamECp4NO8E7GXgcgen((*p).nestedTryStmts->data, ((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0), ((NI) 1));
		T17_ = (tyTuple_aTNxDjHI7v9cq37xS7PT7jA*)0;
		T17_ = X5BX5D__DNaoadBNamECp4NO8E7GXgcgen((*p).nestedTryStmts->data, ((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0), ((NI) 1));
		T18_ = (NI)0;
		T18_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch((*T17_).Field0);
		finallyBlock = (*(*T16_).Field0)._Ukind.S6.sons->data[(NI)(T18_ - ((NI) 1))];
		{
			if (!((*finallyBlock).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 107))) goto LA21_;
			genSimpleBlock_RH6PUsmPRE4ftBMagpWhBQcgen(p, (*finallyBlock)._Ukind.S6.sons->data[((NI) 0)]);
		}
		LA21_: ;
	}
	LA14_: ;
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* e;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
		if (!!(((*(*t)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA25_;
		nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		initLocExprSingleUse_9biTBaXPz9cezuLjjWw9cSEGw(p, (*t)._Ukind.S6.sons->data[((NI) 0)], (&a));
		e = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
		typ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*t)._Ukind.S6.sons->data[((NI) 0)]).typ, IL64(36239903266220304));
		genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
		{
			NIM_BOOL T29_;
			tyArray_JiWwrsTRC6xqNlGcBthSVA T32_;
			T29_ = (NIM_BOOL)0;
			T29_ = isImportedException_ziFZ9chCaA06nUtpwM9aqMyQ(typ, (*(*(*p).module).g).config);
			if (!T29_) goto LA30_;
			nimZeroMem((void*)T32_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T32_[0] = e;
			lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_711), T32_, 1);
		}
		goto LA27_;
		LA30_: ;
		{
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T34_;
			nimZeroMem((void*)T34_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T34_[0] = e;
			T34_[1] = makeCString_vQJydtKy4Nf6bXPYtbmjtg((*(*(*typ).sym).name).s);
			lineCg_zZ8N2PtAlqFZKCp7nvAnhw_2(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_712), T34_, 2);
		}
		LA27_: ;
	}
	goto LA23_;
	LA25_: ;
	{
		genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
		{
			NIM_BOOL T38_;
			NIM_BOOL T39_;
			tyArray_qTjAvTvKF9anytN1At69aJMQ T44_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T45_;
			T38_ = (NIM_BOOL)0;
			T39_ = (NIM_BOOL)0;
			T39_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
			if (T39_) goto LA40_;
			T39_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA40_: ;
			T38_ = T39_;
			if (!(T38_)) goto LA41_;
			T38_ = !((((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 29))&63U)))!=0));
			LA41_: ;
			if (!T38_) goto LA42_;
			nimZeroMem((void*)T44_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
			T45_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T45_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_691), T44_, 0);
			line_7EHg9a9bBQrxiXUHES9aziKUQ(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), T45_);
		}
		goto LA36_;
		LA42_: ;
		{
			tyArray_qTjAvTvKF9anytN1At69aJMQ T47_;
			nimZeroMem((void*)T47_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
			linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_713), T47_, 0);
		}
		LA36_: ;
	}
	LA23_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genTypeSection_msKE4zaiMHSbPQgj9bUkbbg)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
}

N_LIB_PRIVATE N_NIMCALL(tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg, determineSection_9arH9c6mXq5etPZBb1Z9cafbw)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg result;
	result = (tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg)0;
	result = ((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 7);
	{
		NIM_BOOL T3_;
		NI T4_;
		NimStringDesc* sec;
		T3_ = (NIM_BOOL)0;
		T4_ = (NI)0;
		T4_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
		T3_ = (((NI) 1) <= T4_);
		if (!(T3_)) goto LA5_;
		T3_ = ((*(*n)._Ukind.S6.sons->data[((NI) 0)]).kind >= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*(*n)._Ukind.S6.sons->data[((NI) 0)]).kind <= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 22));
		LA5_: ;
		if (!T3_) goto LA6_;
		sec = (*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S3.strVal;
		{
			NIM_BOOL T10_;
			T10_ = (NIM_BOOL)0;
			T10_ = nsuStartsWith(sec, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_714));
			if (!T10_) goto LA11_;
			result = ((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 3);
		}
		goto LA8_;
		LA11_: ;
		{
			NIM_BOOL T14_;
			T14_ = (NIM_BOOL)0;
			T14_ = nsuStartsWith(sec, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_715));
			if (!T14_) goto LA15_;
			result = ((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8);
		}
		goto LA8_;
		LA15_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = nsuStartsWith(sec, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_716));
			if (!T18_) goto LA19_;
			result = ((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1);
		}
		goto LA8_;
		LA19_: ;
		LA8_: ;
	}
	LA6_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genEmit_QrTB5DOwbDX9bKAW7PNbuJA_8)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* s;
	s = genAsmOrEmitStmt_53Pwv51Dxuia7o9bQN4K9agw(p, (*t)._Ukind.S6.sons->data[((NI) 1)], NIM_FALSE);
	{
		tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg section;
		if (!((*p).prc == NIM_NIL)) goto LA3_;
		section = determineSection_9arH9c6mXq5etPZBb1Z9cafbw((*t)._Ukind.S6.sons->data[((NI) 1)]);
		genCLineDir_8gOq38UiI9arVxZ9at35m22Q(&(*(*p).module).s[(section)- 0], (*t).info, (*(*(*p).module).g).config);
		add_iMTw0CDaruwETLGb9bhpBLg(&(*(*p).module).s[(section)- 0], s);
	}
	goto LA1_;
	LA3_: ;
	{
		genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
		line_7EHg9a9bBQrxiXUHES9aziKUQ(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), s);
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genBreakPoint_QrTB5DOwbDX9bKAW7PNbuJA_9)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t) {
	NimStringDesc* name;
	name = (NimStringDesc*)0;
	{
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T12_;
		NI T13_;
		NimStringDesc* T14_;
		if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 18))&31U)))!=0)) goto LA3_;
		{
			if (!((*t).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA7_;
			name = nsuNormalize((*(*t)._Ukind.S6.sons->data[((NI) 1)])._Ukind.S3.strVal);
		}
		goto LA5_;
		LA7_: ;
		{
			NimStringDesc* T10_;
			NimStringDesc* T11_;
			(*(*(*p).module).g).breakPointId += ((NI) 1);
			T10_ = (NimStringDesc*)0;
			T11_ = (NimStringDesc*)0;
			T11_ = nimIntToStr((*(*(*p).module).g).breakPointId);
			T10_ = rawNewString((T11_ ? T11_->Sup.len : 0) + 2);
appendString(T10_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_717));
appendString(T10_, T11_);
			name = T10_;
		}
		LA5_: ;
		genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
		nimZeroMem((void*)T12_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T13_ = (NI)0;
		T13_ = toLinenumber_xCTdxEFc5VM0Lp6fDoJKSwastalgo((*t).info);
		T12_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (T13_)));
		T14_ = (NimStringDesc*)0;
		{
			NIM_BOOL T17_;
			T17_ = (NIM_BOOL)0;
			T17_ = ((*t).info.fileIndex < ((NI32) 0));
			if (T17_) goto LA18_;
			T17_ = ((*(*(*p).module).g).config == NIM_NIL);
			LA18_: ;
			if (!T17_) goto LA19_;
			T14_ = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_346));
		}
		goto LA15_;
		LA19_: ;
		{
			T14_ = copyString((*(*(*(*p).module).g).config).m.fileInfos->data[(*t).info.fileIndex].projPath);
		}
		LA15_: ;
		T12_[1] = makeCString_vQJydtKy4Nf6bXPYtbmjtg(T14_);
		T12_[2] = makeCString_vQJydtKy4Nf6bXPYtbmjtg(name);
		appcg_GrB2Hbyo8XeK6TPKMD0Y5A((*p).module, &(*(*(*p).module).g).breakpoints, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_718), T12_, 3);
	}
	LA3_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genWatchpoint_UtJx89cn0a8CNSWWmaj6raA_11)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
	tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T5_;
	NimStringDesc* T6_;
{	{
		if (!!((((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 18))&31U)))!=0))) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n)._Ukind.S6.sons->data[((NI) 1)], (&a));
	typ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*n)._Ukind.S6.sons->data[((NI) 1)]).typ, IL64(36099165772622096));
	nimZeroMem((void*)T5_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
	T5_[0] = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, (&a));
	T6_ = (NimStringDesc*)0;
	T6_ = renderTree_ppjdh9aQ5L0SGPF8yz1gZ9cA((*n)._Ukind.S6.sons->data[((NI) 1)], 0);
	T5_[1] = makeCString_vQJydtKy4Nf6bXPYtbmjtg(T6_);
	T5_[2] = genTypeInfo_7P9bdUkiYYdBWl5P39cGpERw((*p).module, typ, (*n).info);
	lineCg_zZ8N2PtAlqFZKCp7nvAnhw_2(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_719), T5_, 3);
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genPragma_UtJx89cn0a8CNSWWmaj6raA_10)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
		tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ* colontmp_;
		NI i;
		NI L;
		NI T2_;
		it = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		colontmp_ = (tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ*)0;
		colontmp_ = (*n)._Ukind.S6.sons;
		i = ((NI) 0);
		T2_ = (colontmp_ ? colontmp_->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw T5_;
				if (!(i < L)) goto LA4;
				it = colontmp_->data[i];
				T5_ = (tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw)0;
				T5_ = whichPragma_tadMdqrtQd2cek9aFwyE1XQ(it);
				switch (T5_) {
				case ((tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw) 193):
				{
					genEmit_QrTB5DOwbDX9bKAW7PNbuJA_8(p, it);
				}
				break;
				case ((tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw) 130):
				{
					genBreakPoint_QrTB5DOwbDX9bKAW7PNbuJA_9(p, it);
				}
				break;
				case ((tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw) 178):
				{
					genWatchpoint_UtJx89cn0a8CNSWWmaj6raA_11(p, it);
				}
				break;
				case ((tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw) 185):
				{
					tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p_2;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T10_;
					p_2 = newProc_STnnVeEn5Wp52dw0JRN7ZQ(NIM_NIL, (*p).module);
					(*p_2).options = ((*p_2).options & ~ 196608);
					genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p_2, (*it)._Ukind.S6.sons->data[((NI) 1)]);
					T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
					T10_ = s_oPjlsf0lwosYuh6KXhkqLQcgen(p_2, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
					asgnRefNoCycle((void**) (&(*(*p_2).module).injectStmt), (*T10_));
				}
				break;
				default:
				{
				}
				break;
				}
				i += ((NI) 1);
			} LA4: ;
		}
	}
}

N_LIB_PRIVATE N_NIMCALL(void, genParForStmt_QrTB5DOwbDX9bKAW7PNbuJA_10)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t) {
	NI oldBreakIdx;
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* forLoopVar;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA rangeA;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA rangeB;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* call;
	tyArray_f7nG5LD47BH5K9c6mASit3g T1_;
	NimStringDesc* T2_;
	tyArray_qTjAvTvKF9anytN1At69aJMQ T3_;
	(*p).withinLoop += ((NI) 1);
	genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
	oldBreakIdx = (*p).breakIdx;
	forLoopVar = (*(*t)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym;
	nimZeroMem((void*)(&rangeA), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&rangeB), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	assignLocalVar_UtJx89cn0a8CNSWWmaj6raA(p, (*t)._Ukind.S6.sons->data[((NI) 0)]);
	call = (*t)._Ukind.S6.sons->data[((NI) 1)];
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*call)._Ukind.S6.sons->data[((NI) 1)], (&rangeA));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*call)._Ukind.S6.sons->data[((NI) 2)], (&rangeB));
	nimZeroMem((void*)T1_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
	T1_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&(*forLoopVar).loc));
	T1_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg((&rangeA));
	T1_[2] = rdLoc_xidyzuHqIciXbQyEOKahDg((&rangeB));
	T2_ = (NimStringDesc*)0;
	T2_ = getStr_Zk78ps1ie3XE3N7AlzjwWw((*call)._Ukind.S6.sons->data[((NI) 3)]);
	T1_[3] = rope_yShmEg9cffWxI7s5XzEKBow(T2_);
	lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_720), T1_, 4);
	nimZeroMem((void*)T3_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
	(*p).breakIdx = startBlock_5VnWFu9cyKySWdJiAv81lJQ(p, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_312), T3_, 0);
	(*p).blocks->data[(*p).breakIdx].isLoop = NIM_TRUE;
	genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, (*t)._Ukind.S6.sons->data[((NI) 2)]);
	endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
	(*p).breakIdx = oldBreakIdx;
	(*p).withinLoop -= ((NI) 1);
}

N_LIB_PRIVATE N_NIMCALL(void, genState_UtJx89cn0a8CNSWWmaj6raA_12)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n0;
	{
		NI T3_;
		NimStringDesc* T6_;
		T3_ = (NI)0;
		T3_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
		if (!!((T3_ == ((NI) 1)))) goto LA4_;
		T6_ = (NimStringDesc*)0;
		T6_ = dollar__E5ya0OOlyISUCw4ENFn9bLA(TM_MQdRN7fpbG7rPm4JpVVAhA_721);
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*(*p).module).g).config, T6_);
	}
	LA4_: ;
	n0 = (*n)._Ukind.S6.sons->data[((NI) 0)];
	{
		NI64 idx;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T11_;
		if (!((*n0).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 6))) goto LA9_;
		idx = (*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S1.intVal;
		nimZeroMem((void*)T11_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T11_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(idx);
		linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_723), T11_, 1);
	}
	goto LA7_;
	LA9_: ;
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T15_;
		if (!((*n0).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20))) goto LA13_;
		nimZeroMem((void*)T15_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T15_[0] = rope_yShmEg9cffWxI7s5XzEKBow((*n0)._Ukind.S3.strVal);
		linefmt_zZ8N2PtAlqFZKCp7nvAnhw(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_351), T15_, 1);
	}
	goto LA7_;
	LA13_: ;
	LA7_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genGotoState_UtJx89cn0a8CNSWWmaj6raA_13)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T1_;
	tyArray_qTjAvTvKF9anytN1At69aJMQ T2_;
	NI T3_;
	NI T4_;
	tyArray_qTjAvTvKF9anytN1At69aJMQ T5_;
	NI64 statesCounter;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* prefix;
	tyArray_qTjAvTvKF9anytN1At69aJMQ T25_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n)._Ukind.S6.sons->data[((NI) 0)], (&a));
	nimZeroMem((void*)T1_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T1_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
	lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_671), T1_, 1);
	(*p).beforeRetNeeded = NIM_TRUE;
	nimZeroMem((void*)T2_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
	lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_724), T2_, 0);
	T3_ = ((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0);
	T4_ = (NI)0;
	T4_ = inExceptBlockLen_lPGsm5WeJbPHE8Q8iwQujw(p);
	blockLeaveActions_e09bgD1fQnMSV07ItnToC3Q(p, T3_, T4_);
	nimZeroMem((void*)T5_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
	lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_725), T5_, 0);
	statesCounter = lastOrd_PcKlk9cRVtdVcuEFs9bZTdAQ((*(*(*p).module).g).config, (*(*n)._Ukind.S6.sons->data[((NI) 0)]).typ, NIM_FALSE);
	{
		NIM_BOOL T8_;
		NI T9_;
		T8_ = (NIM_BOOL)0;
		T9_ = (NI)0;
		T9_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
		T8_ = (((NI) 2) <= T9_);
		if (!(T8_)) goto LA10_;
		T8_ = ((*(*n)._Ukind.S6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 6));
		LA10_: ;
		if (!T8_) goto LA11_;
		statesCounter = (*(*n)._Ukind.S6.sons->data[((NI) 1)])._Ukind.S1.intVal;
	}
	LA11_: ;
	{
		NIM_BOOL T15_;
		NI T16_;
		T15_ = (NIM_BOOL)0;
		T16_ = (NI)0;
		T16_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
		T15_ = (T16_ == ((NI) 3));
		if (!(T15_)) goto LA17_;
		T15_ = ((*(*n)._Ukind.S6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20));
		LA17_: ;
		if (!T15_) goto LA18_;
		prefix = rope_yShmEg9cffWxI7s5XzEKBow((*(*n)._Ukind.S6.sons->data[((NI) 2)])._Ukind.S3.strVal);
	}
	goto LA13_;
	LA18_: ;
	{
		prefix = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_726));
	}
	LA13_: ;
	{
		NI64 i;
		NI64 res;
		i = (NI64)0;
		res = IL64(0);
		{
			while (1) {
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T24_;
				if (!(res <= statesCounter)) goto LA23;
				i = res;
				nimZeroMem((void*)T24_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T24_[0] = prefix;
				T24_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(i);
				lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_727), T24_, 2);
				res += ((NI) 1);
			} LA23: ;
		}
	}
	nimZeroMem((void*)T25_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
	lineF_zMT5gX18xu8QE6ofSbgTAA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_184), T25_, 0);
}

N_LIB_PRIVATE N_NIMCALL(void, genBreakState_8mAL9ckajemzgfLPfeZVNoQ_20)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLoc_z9bd78in9czXhMZLT0QNB5Tw(d, ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), n, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T5_;
		if (!((*(*n)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 155))) goto LA3_;
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S6.sons->data[((NI) 1)], (&a));
		nimZeroMem((void*)T5_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T5_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
		unsureAsgnRef((void**) (&(*d).r), percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_728), T5_, 1));
	}
	goto LA1_;
	LA3_: ;
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T7_;
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n)._Ukind.S6.sons->data[((NI) 0)], (&a));
		nimZeroMem((void*)T7_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T7_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((&a));
		unsureAsgnRef((void**) (&(*d).r), percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_729), T7_, 1));
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, expr_8mAL9ckajemzgfLPfeZVNoQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	(*p).currLineInfo = (*n).info;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym;
		sym = (*n)._Ukind.S4.sym;
		switch ((*sym).kind) {
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 14):
		{
			{
				if (!!(((67108880 & (*sym).flags) == 0))) goto LA5_;
				fillProcLoc_60cAEEW2jYgQLzNzmWrfPg((*p).module, n);
				genProcPrototype_5Uk70SBbgLBcInZnRFJtnA((*p).module, sym);
			}
			goto LA3_;
			LA5_: ;
			{
				genProc_LVUZwjNmLEZwI6xGJ9aeU7Q((*p).module, sym);
			}
			LA3_: ;
			putLocIntoDest_SkhzpH2DDHJ7pbmCpsHIPg(p, d, (&(*sym).loc));
		}
		break;
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 12):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 16):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 15):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 13):
		{
			{
				NimStringDesc* T13_;
				if (!(((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 24))&63U)))!=0)) goto LA11_;
				T13_ = (NimStringDesc*)0;
				T13_ = rawNewString(((*(*sym).name).s ? (*(*sym).name).s->Sup.len : 0) + 48);
appendString(T13_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_309));
appendString(T13_, (*(*sym).name).s);
				localError_NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*n).info, T13_);
			}
			LA11_: ;
			genProc_LVUZwjNmLEZwI6xGJ9aeU7Q((*p).module, sym);
			{
				NIM_BOOL T16_;
				NimStringDesc* T20_;
				T16_ = (NIM_BOOL)0;
				T16_ = ((*sym).loc.r == NIM_NIL);
				if (T16_) goto LA17_;
				T16_ = ((*sym).loc.lode == NIM_NIL);
				LA17_: ;
				if (!T16_) goto LA18_;
				T20_ = (NimStringDesc*)0;
				T20_ = rawNewString(((*(*sym).name).s ? (*(*sym).name).s->Sup.len : 0) + 20);
appendString(T20_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_310));
appendString(T20_, (*(*sym).name).s);
				internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, T20_);
			}
			LA18_: ;
			putLocIntoDest_SkhzpH2DDHJ7pbmCpsHIPg(p, d, (&(*sym).loc));
		}
		break;
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 10):
		{
			{
				NIM_BOOL T24_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T27_;
				T24_ = (NIM_BOOL)0;
				T24_ = isSimpleConst_gM9acTTK4cC5I9bRy8Pc6OTQ((*sym).typ);
				if (!T24_) goto LA25_;
				T27_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T27_ = genLiteral_qifZy01sZ5OX01eT5FP76w(p, (*sym).ast, (*sym).typ);
				putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, n, T27_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 1));
			}
			goto LA22_;
			LA25_: ;
			{
				genComplexConst_ARtcpl8G0t9cQCPr2Np8Srw(p, sym, d);
			}
			LA22_: ;
		}
		break;
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 20):
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T30_;
			T30_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T30_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*sym).position)));
			putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, n, T30_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		break;
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 8):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 21):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 11):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 9):
		{
			{
				if (!!(((8388616 & (*sym).flags) == 0))) goto LA34_;
				genVarPrototype_60cAEEW2jYgQLzNzmWrfPg_2((*p).module, n);
			}
			LA34_: ;
			{
				NIM_BOOL T38_;
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T40_;
				NimStringDesc* T43_;
				NimStringDesc* T44_;
				T38_ = (NIM_BOOL)0;
				T38_ = ((*sym).loc.r == NIM_NIL);
				if (T38_) goto LA39_;
				T40_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T40_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&(*sym).loc));
				T38_ = (T40_ == NIM_NIL);
				LA39_: ;
				if (!T38_) goto LA41_;
				T43_ = (NimStringDesc*)0;
				T44_ = (NimStringDesc*)0;
				T44_ = nimIntToStr((*sym).Sup.id);
				T43_ = rawNewString(((*(*sym).name).s ? (*(*sym).name).s->Sup.len : 0) + (T44_ ? T44_->Sup.len : 0) + 20);
appendString(T43_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_336));
appendString(T43_, (*(*sym).name).s);
appendString(T43_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_3));
appendString(T43_, T44_);
				internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, T43_);
			}
			LA41_: ;
			{
				if (!(((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 23))&63U)))!=0)) goto LA47_;
				accessThreadLocalVar_IpGUPLhMYizrVHs0OdHySA_3(p, sym);
				{
					NIM_BOOL T51_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T54_;
					T51_ = (NIM_BOOL)0;
					T51_ = emulatedThreadVars_viA2VrQ9cI0jU5DX49b1MeYgcgen((*(*(*p).module).g).config);
					if (!T51_) goto LA52_;
					T54_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T54_ = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_339), (*sym).loc.r);
					putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, (*sym).loc.lode, T54_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
				}
				goto LA49_;
				LA52_: ;
				{
					putLocIntoDest_SkhzpH2DDHJ7pbmCpsHIPg(p, d, (&(*sym).loc));
				}
				LA49_: ;
			}
			goto LA45_;
			LA47_: ;
			{
				putLocIntoDest_SkhzpH2DDHJ7pbmCpsHIPg(p, d, (&(*sym).loc));
			}
			LA45_: ;
		}
		break;
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 5):
		{
			{
				NIM_BOOL T60_;
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T62_;
				NimStringDesc* T65_;
				NimStringDesc* T66_;
				T60_ = (NIM_BOOL)0;
				T60_ = ((*sym).loc.r == NIM_NIL);
				if (T60_) goto LA61_;
				T62_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T62_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&(*sym).loc));
				T60_ = (T62_ == NIM_NIL);
				LA61_: ;
				if (!T60_) goto LA63_;
				T65_ = (NimStringDesc*)0;
				T66_ = (NimStringDesc*)0;
				T66_ = nimIntToStr((*sym).Sup.id);
				T65_ = rawNewString(((*(*sym).name).s ? (*(*sym).name).s->Sup.len : 0) + (T66_ ? T66_->Sup.len : 0) + 21);
appendString(T65_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_340));
appendString(T65_, (*(*sym).name).s);
appendString(T65_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_3));
appendString(T65_, T66_);
				internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, T65_);
			}
			LA63_: ;
			putLocIntoDest_SkhzpH2DDHJ7pbmCpsHIPg(p, d, (&(*sym).loc));
		}
		break;
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 3):
		{
			{
				NIM_BOOL T70_;
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T72_;
				NimStringDesc* T75_;
				NimStringDesc* T76_;
				T70_ = (NIM_BOOL)0;
				T70_ = ((*sym).loc.r == NIM_NIL);
				if (T70_) goto LA71_;
				T72_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T72_ = t_wtveaWyn2FSNgJ2h4kSWzwcgen((&(*sym).loc));
				T70_ = (T72_ == NIM_NIL);
				LA71_: ;
				if (!T70_) goto LA73_;
				T75_ = (NimStringDesc*)0;
				T76_ = (NimStringDesc*)0;
				T76_ = nimIntToStr((*sym).Sup.id);
				T75_ = rawNewString(((*(*sym).name).s ? (*(*sym).name).s->Sup.len : 0) + (T76_ ? T76_->Sup.len : 0) + 22);
appendString(T75_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_341));
appendString(T75_, (*(*sym).name).s);
appendString(T75_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_3));
appendString(T75_, T76_);
				internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, T75_);
			}
			LA73_: ;
			putLocIntoDest_SkhzpH2DDHJ7pbmCpsHIPg(p, d, (&(*sym).loc));
		}
		break;
		default:
		{
			NimStringDesc* T78_;
			T78_ = (NimStringDesc*)0;
			T78_ = rawNewString((reprEnum((NI)(*sym).kind, (&NTI_cNCW9acsSznmEccl1fgQwkw_)) ? reprEnum((NI)(*sym).kind, (&NTI_cNCW9acsSznmEccl1fgQwkw_))->Sup.len : 0) + 22);
appendString(T78_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_342));
appendString(T78_, reprEnum((NI)(*sym).kind, (&NTI_cNCW9acsSznmEccl1fgQwkw_)));
appendString(T78_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_343));
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, T78_);
		}
		break;
		}
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 23):
	{
		{
			NIM_BOOL T82_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T85_;
			T82_ = (NIM_BOOL)0;
			T82_ = isEmptyType_9aw9cztYHpNdZjCV1t0mJqwgvmgen((*n).typ);
			if (!!(T82_)) goto LA83_;
			T85_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T85_ = genLiteral_NYI5fC69aIqZGRakncXv9cNQ_2(p, n);
			putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, n, T85_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		LA83_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 22):
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T87_;
		T87_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T87_ = genLiteral_NYI5fC69aIqZGRakncXv9cNQ_2(p, n);
		putDataIntoDest_fYECstGN5jPehhn5p8Iclg(p, d, n, T87_);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 6) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 15):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 16) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 19):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 5):
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T89_;
		T89_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T89_ = genLiteral_NYI5fC69aIqZGRakncXv9cNQ_2(p, n);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, n, T89_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 27):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 32):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 29):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 30):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 31):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 26):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 28):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* op;
		genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, n);
		op = (*n)._Ukind.S6.sons->data[((NI) 0)];
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
			if (!((*n).typ == 0)) goto LA93_;
			nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			{
				NIM_BOOL T97_;
				T97_ = (NIM_BOOL)0;
				T97_ = ((*op).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
				if (!(T97_)) goto LA98_;
				T97_ = !(((*(*op)._Ukind.S4.sym).magic == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 0)));
				LA98_: ;
				if (!T97_) goto LA99_;
				genMagicExpr_TU9cJnldbmGa9bZDxaR6I4tg(p, n, (&a), (*(*op)._Ukind.S4.sym).magic);
			}
			goto LA95_;
			LA99_: ;
			{
				genCall_BKdMcfvryaJLplX0oFPcAQ_7(p, n, (&a));
			}
			LA95_: ;
		}
		goto LA91_;
		LA93_: ;
		{
			{
				NIM_BOOL T105_;
				T105_ = (NIM_BOOL)0;
				T105_ = ((*op).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
				if (!(T105_)) goto LA106_;
				T105_ = !(((*(*op)._Ukind.S4.sym).magic == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 0)));
				LA106_: ;
				if (!T105_) goto LA107_;
				genMagicExpr_TU9cJnldbmGa9bZDxaR6I4tg(p, n, d, (*(*op)._Ukind.S4.sym).magic);
			}
			goto LA103_;
			LA107_: ;
			{
				genCall_BKdMcfvryaJLplX0oFPcAQ_7(p, n, d);
			}
			LA103_: ;
		}
		LA91_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 39):
	{
		{
			NIM_BOOL T113_;
			NI T115_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T118_;
			T113_ = (NIM_BOOL)0;
			T113_ = isDeepConstExpr_FTbvAnf1y9b9c3Krp9bsHDTiw_2(n);
			if (!(T113_)) goto LA114_;
			T115_ = (NI)0;
			T115_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
			T113_ = !((T115_ == ((NI) 0)));
			LA114_: ;
			if (!T113_) goto LA116_;
			T118_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T118_ = genSetNode_NYI5fC69aIqZGRakncXv9cNQ_9(p, n);
			putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, n, T118_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		goto LA111_;
		LA116_: ;
		{
			genSetConstr_BKdMcfvryaJLplX0oFPcAQ_17(p, n, d);
		}
		LA111_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 41):
	{
		{
			NIM_BOOL T123_;
			NI T125_;
			T123_ = (NIM_BOOL)0;
			T123_ = isDeepConstExpr_FTbvAnf1y9b9c3Krp9bsHDTiw_2(n);
			if (!(T123_)) goto LA124_;
			T125_ = (NI)0;
			T125_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
			T123_ = !((T125_ == ((NI) 0)));
			LA124_: ;
			if (!T123_) goto LA126_;
			exprComplexConst_8mAL9ckajemzgfLPfeZVNoQ_6(p, n, d);
		}
		goto LA121_;
		LA126_: ;
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T129_;
			T129_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T129_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*n).typ, IL64(36099165772622096));
			if (!((*T129_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24))) goto LA130_;
			genSeqConstr_8mAL9ckajemzgfLPfeZVNoQ_4(p, n, d);
		}
		goto LA121_;
		LA130_: ;
		{
			genArrayConstr_8mAL9ckajemzgfLPfeZVNoQ_7(p, n, d);
		}
		LA121_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 37):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 160):
	{
		{
			NIM_BOOL T136_;
			NI T138_;
			T136_ = (NIM_BOOL)0;
			T136_ = isDeepConstExpr_FTbvAnf1y9b9c3Krp9bsHDTiw_2(n);
			if (!(T136_)) goto LA137_;
			T138_ = (NI)0;
			T138_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
			T136_ = !((T138_ == ((NI) 0)));
			LA137_: ;
			if (!T136_) goto LA139_;
			exprComplexConst_8mAL9ckajemzgfLPfeZVNoQ_6(p, n, d);
		}
		goto LA134_;
		LA139_: ;
		{
			genTupleConstr_8mAL9ckajemzgfLPfeZVNoQ_8(p, n, d);
		}
		LA134_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 38):
	{
		genObjConstr_BKdMcfvryaJLplX0oFPcAQ_18(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 61):
	{
		genCast_BKdMcfvryaJLplX0oFPcAQ_19(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 58):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 59):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 60):
	{
		genConv_BKdMcfvryaJLplX0oFPcAQ_20(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 63):
	{
		genAddr_BKdMcfvryaJLplX0oFPcAQ_21(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 42):
	{
		genBracketExpr_8mAL9ckajemzgfLPfeZVNoQ_9(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 47):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 65):
	{
		genDeref_BLGSHeDM9cawDE7Hp9bscFgg(p, n, d, NIM_FALSE);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 45):
	{
		genRecordField_BKdMcfvryaJLplX0oFPcAQ_23(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 46):
	{
		genCheckedRecordField_BKdMcfvryaJLplX0oFPcAQ_24(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 127):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 112):
	{
		genBlock_8mAL9ckajemzgfLPfeZVNoQ_10(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 126):
	{
		genStmtListExpr_8mAL9ckajemzgfLPfeZVNoQ_11(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 115):
	{
		genStmtList_UtJx89cn0a8CNSWWmaj6raA_5(p, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 48):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 92):
	{
		genIf_8mAL9ckajemzgfLPfeZVNoQ_12(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 93):
	{
		expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*(*n)._Ukind.S6.sons->data[((NI) 1)])._Ukind.S6.sons->data[((NI) 0)], d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 66):
	{
		downConv_8mAL9ckajemzgfLPfeZVNoQ_13(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 67):
	{
		upConv_8mAL9ckajemzgfLPfeZVNoQ_14(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 68):
	{
		genRangeChck_s6WVujc8IISl9b7Y39bTXvlw(p, n, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_629));
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 69):
	{
		genRangeChck_s6WVujc8IISl9b7Y39bTXvlw(p, n, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_630));
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 70):
	{
		genRangeChck_s6WVujc8IISl9b7Y39bTXvlw(p, n, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_631));
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 71):
	{
		convStrToCStr_8mAL9ckajemzgfLPfeZVNoQ_15(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 72):
	{
		convCStrToStr_8mAL9ckajemzgfLPfeZVNoQ_16(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 51) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 52):
	{
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym_2;
		sym_2 = (*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym;
		genProc_LVUZwjNmLEZwI6xGJ9aeU7Q((*p).module, sym_2);
		{
			NIM_BOOL T165_;
			NimStringDesc* T169_;
			T165_ = (NIM_BOOL)0;
			T165_ = ((*sym_2).loc.r == NIM_NIL);
			if (T165_) goto LA166_;
			T165_ = ((*sym_2).loc.lode == NIM_NIL);
			LA166_: ;
			if (!T165_) goto LA167_;
			T169_ = (NimStringDesc*)0;
			T169_ = rawNewString(((*(*sym_2).name).s ? (*(*sym_2).name).s->Sup.len : 0) + 20);
appendString(T169_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_310));
appendString(T169_, (*(*sym_2).name).s);
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, T169_);
		}
		LA167_: ;
		putLocIntoDest_SkhzpH2DDHJ7pbmCpsHIPg(p, d, (&(*sym_2).loc));
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 155):
	{
		genClosure_8mAL9ckajemzgfLPfeZVNoQ_17(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1):
	{
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 96):
	{
		genWhileStmt_QrTB5DOwbDX9bKAW7PNbuJA_3(p, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 99):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 100):
	{
		genVarStmt_UtJx89cn0a8CNSWWmaj6raA_7(p, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 101):
	{
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 94):
	{
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_662));
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 97):
	{
		genCase_re1pwmyeR32ikwnOC3vvzQ(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 109):
	{
		genReturnStmt_QrTB5DOwbDX9bKAW7PNbuJA_4(p, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 110):
	{
		genBreakStmt_QrTB5DOwbDX9bKAW7PNbuJA_5(p, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 73):
	{
		{
			if (!!((((*n).flags &(1U<<((NU)(((tyEnum_TNodeFlag_jyh9acXHkhZANSSvPIY7ZLg) 14))&31U)))!=0))) goto LA182_;
			genAsgn_9ap9b3IFVLSL9b9akVbfMyRxlA(p, n, NIM_FALSE);
		}
		LA182_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 74):
	{
		{
			if (!!((((*n).flags &(1U<<((NU)(((tyEnum_TNodeFlag_jyh9acXHkhZANSSvPIY7ZLg) 14))&31U)))!=0))) goto LA187_;
			genAsgn_9ap9b3IFVLSL9b9akVbfMyRxlA(p, n, !(((*p).prc == NIM_NIL)));
		}
		LA187_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 114):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ex;
		ex = (*n)._Ukind.S6.sons->data[((NI) 0)];
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_2;
			if (!!(((*ex).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA192_;
			genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, n);
			nimZeroMem((void*)(&a_2), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			{
				NIM_BOOL T196_;
				NIM_BOOL T198_;
				T196_ = (NIM_BOOL)0;
				T196_ = ((*ex).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*ex).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*ex).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*ex).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*ex).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*ex).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*ex).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 32));
				if (!(T196_)) goto LA197_;
				T198_ = (NIM_BOOL)0;
				T198_ = !(((*(*ex)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)));
				if (T198_) goto LA199_;
				T198_ = ((*(*(*ex)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym).magic == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 0));
				LA199_: ;
				T196_ = T198_;
				LA197_: ;
				if (!T196_) goto LA200_;
				a_2.flags |= ((NU16)1)<<((((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 8))%(sizeof(NU16)*8));
				genCall_BKdMcfvryaJLplX0oFPcAQ_7(p, ex, (&a_2));
				{
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T206_;
					if (!!(((a_2.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 8))&15U)))!=0))) goto LA204_;
					T206_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T206_ = amp__Z7W1o5nPSc3ExfO5f7j1Gg(a_2.r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_681));
					line_7EHg9a9bBQrxiXUHES9aziKUQ(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), T206_);
				}
				LA204_: ;
			}
			goto LA194_;
			LA200_: ;
			{
				initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, ex, (&a_2));
			}
			LA194_: ;
		}
		LA192_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 89):
	{
		genAsmStmt_QrTB5DOwbDX9bKAW7PNbuJA_6(p, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 106):
	{
		{
			NIM_BOOL T212_;
			NIM_BOOL T213_;
			T212_ = (NIM_BOOL)0;
			T213_ = (NIM_BOOL)0;
			T213_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
			if (T213_) goto LA214_;
			T213_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA214_: ;
			T212_ = T213_;
			if (!(T212_)) goto LA215_;
			T212_ = !((((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 29))&63U)))!=0));
			LA215_: ;
			if (!T212_) goto LA216_;
			genTryCpp_re1pwmyeR32ikwnOC3vvzQ_3(p, n, d);
		}
		goto LA210_;
		LA216_: ;
		{
			genTry_re1pwmyeR32ikwnOC3vvzQ_4(p, n, d);
		}
		LA210_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 108):
	{
		genRaiseStmt_QrTB5DOwbDX9bKAW7PNbuJA_7(p, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 98):
	{
		genTypeSection_msKE4zaiMHSbPQgj9bUkbbg((*p).module, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 125):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 84):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 121):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 116):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 117):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 118):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 119):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 120):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 83):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 82):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 113):
	{
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 90):
	{
		genPragma_UtJx89cn0a8CNSWWmaj6raA_10(p, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 91):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T224_;
		T224_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		T224_ = lastSon_esDJA7239bJDiq4UrX9aHCjg(n);
		expr_8mAL9ckajemzgfLPfeZVNoQ(p, T224_, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 79):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 159):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 80):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 81):
	{
		{
			tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc;
			if (!((*(*n)._Ukind.S6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA228_;
			prc = (*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym;
			{
				NIM_BOOL T232_;
				tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* T233_;
				T232_ = (NIM_BOOL)0;
				T233_ = (tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*)0;
				T233_ = skipGenericOwner_yJlkgivdZFfxOuRjhZjB8Q_2(prc);
				T232_ = ((*T233_).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 6));
				if (!(T232_)) goto LA234_;
				T232_ = !((((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 24))&63U)))!=0));
				LA234_: ;
				if (!T232_) goto LA235_;
				{
					NIM_BOOL T239_;
					NIM_BOOL T240_;
					NIM_BOOL T242_;
					T239_ = (NIM_BOOL)0;
					T240_ = (NIM_BOOL)0;
					T240_ = ((65600 & (*prc).flags) == 64);
					if (T240_) goto LA241_;
					T242_ = (NIM_BOOL)0;
					T242_ = (((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 6))&63U)))!=0);
					if (!(T242_)) goto LA243_;
					T242_ = (((*prc).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 5))&15U)))!=0);
					LA243_: ;
					T240_ = T242_;
					LA241_: ;
					T239_ = T240_;
					if (T239_) goto LA244_;
					T239_ = ((*prc).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 14));
					LA244_: ;
					if (!T239_) goto LA245_;
					{
						NIM_BOOL T249_;
						T249_ = (NIM_BOOL)0;
						T249_ = !(((*(*(*prc).ast)._Ukind.S6.sons->data[((NI) 6)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1)));
						if (T249_) goto LA250_;
						T249_ = (((*prc).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 4))&15U)))!=0);
						LA250_: ;
						if (!T249_) goto LA251_;
						genProc_LVUZwjNmLEZwI6xGJ9aeU7Q((*p).module, prc);
					}
					LA251_: ;
				}
				LA245_: ;
			}
			LA235_: ;
		}
		LA228_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 95):
	{
		genParForStmt_QrTB5DOwbDX9bKAW7PNbuJA_10(p, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 157):
	{
		genState_UtJx89cn0a8CNSWWmaj6raA_12(p, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 156):
	{
		genGotoState_UtJx89cn0a8CNSWWmaj6raA_13(p, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 158):
	{
		genBreakState_8mAL9ckajemzgfLPfeZVNoQ_20(p, n, d);
	}
	break;
	default:
	{
		NimStringDesc* T258_;
		T258_ = (NimStringDesc*)0;
		T258_ = rawNewString((reprEnum((NI)(*n).kind, (&NTI_G4E4Gxe7oI2Cm03rkiOzQw_)) ? reprEnum((NI)(*n).kind, (&NTI_G4E4Gxe7oI2Cm03rkiOzQw_))->Sup.len : 0) + 25);
appendString(T258_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_342));
appendString(T258_, reprEnum((NI)(*n).kind, (&NTI_G4E4Gxe7oI2Cm03rkiOzQw_)));
appendString(T258_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_730));
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, T258_);
	}
	break;
	}
}

N_LIB_PRIVATE N_NIMCALL(void, genStmts_QrTB5DOwbDX9bKAW7PNbuJA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	NIM_BOOL isPush;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	isPush = (((*(*(*(*p).module).g).config).notes &((NU64)1<<((NU)((((tyEnum_TMsgKind_ZQWti4neSCb9bXB2tK1JcKg) 69)- 11))&63U)))!=0);
	{
		if (!isPush) goto LA3_;
		pushInfoContext_jVPMMc4H29cyI52qg0Kp9aUg((*(*(*p).module).g).config, (*t).info);
	}
	LA3_: ;
	expr_8mAL9ckajemzgfLPfeZVNoQ(p, t, (&a));
	{
		if (!isPush) goto LA7_;
		popInfoContext_HFVjkUQz7LMV9aOS6uKLckQ((*(*(*p).module).g).config);
	}
	LA7_: ;
	{
		NimStringDesc* T13_;
		if (!!(((71 &(1U<<((NU)(a.k)&15U)))!=0))) goto LA11_;
		T13_ = (NimStringDesc*)0;
		T13_ = dollar__E5ya0OOlyISUCw4ENFn9bLA(TM_MQdRN7fpbG7rPm4JpVVAhA_731);
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*(*p).module).g).config, T13_);
	}
	LA11_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, myProcess_LVRbvMPhqo2sqQ8WvOawWA)(tyObject_TPassContext_ZmGcnZ1NlGbjfV1h4uuYdw* b, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m;
{	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	{
		if (!(b == NIM_NIL)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	m = ((tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A*) (b));
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = skipCodegen_A72PL1PX0Fg9cwfX3uIOVUAcgen((*(*m).g).config, n);
		if (!T7_) goto LA8_;
		goto BeforeRet_;
	}
	LA8_: ;
	(*(*m).initProc).options = initProcOptions_oPbEKB4n1AIYrfJ09cINXQw(m);
	genStmts_QrTB5DOwbDX9bKAW7PNbuJA((*m).initProc, n);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getSomeInitName_w6QsbcV9cKZyPX3cvCfpTDg)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* m, NimStringDesc* suffix) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	NimStringDesc* T6_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		NimStringDesc* T5_;
		if (!((12288 & (*m).flags) == 0)) goto LA3_;
		T5_ = (NimStringDesc*)0;
		T5_ = mangle_0ctHksTXSPyaxjBOgK4TiA((*(*(*m).owner).name).s);
		result = rope_yShmEg9cffWxI7s5XzEKBow(T5_);
		add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_3));
	}
	LA3_: ;
	T6_ = (NimStringDesc*)0;
	T6_ = mangle_0ctHksTXSPyaxjBOgK4TiA((*(*m).name).s);
	add_yG4AKzsBRS1W4MANDlXQeg(&result, T6_);
	add_yG4AKzsBRS1W4MANDlXQeg(&result, suffix);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getInitName_JBd7XGjgK9ab0QMtKIFvb8Q)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* m) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!(((*m).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 12))&63U)))!=0)) goto LA3_;
		result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_732));
	}
	goto LA1_;
	LA3_: ;
	{
		result = getSomeInitName_w6QsbcV9cKZyPX3cvCfpTDg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_733));
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getDatInitName_JBd7XGjgK9ab0QMtKIFvb8Q_2)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* m) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	result = getSomeInitName_w6QsbcV9cKZyPX3cvCfpTDg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_734));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, registerModuleToMain_9b9cE9c9cXV8ajZBf8pZ9cXrH8A)(tyObject_BModuleListcolonObjectType__CpP4eJLbv5ZwofQXpESuGA* g, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* m) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* init;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* datInit;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T1_;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T2_;
	init = getInitName_JBd7XGjgK9ab0QMtKIFvb8Q(m);
	datInit = getDatInitName_JBd7XGjgK9ab0QMtKIFvb8Q_2(m);
	nimZeroMem((void*)T1_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T1_[0] = init;
	addf_ocEHZ9cujtqicXvDuJUm5pg(&(*g).mainModProcs, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_735), T1_, 1);
	nimZeroMem((void*)T2_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T2_[0] = datInit;
	addf_ocEHZ9cujtqicXvDuJUm5pg(&(*g).mainModProcs, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_735), T2_, 1);
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T7_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* initCall;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T8_;
		if (!!((((*m).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 13))&63U)))!=0))) goto LA5_;
		nimZeroMem((void*)T7_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T7_[0] = datInit;
		addf_ocEHZ9cujtqicXvDuJUm5pg(&(*g).mainDatInit, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_736), T7_, 1);
		nimZeroMem((void*)T8_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T8_[0] = init;
		initCall = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_736), T8_, 1);
		{
			if (!(((*m).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 12))&63U)))!=0)) goto LA11_;
			add_iMTw0CDaruwETLGb9bhpBLg(&(*g).mainModInit, initCall);
		}
		goto LA9_;
		LA11_: ;
		{
			add_iMTw0CDaruwETLGb9bhpBLg(&(*g).otherModsInit, initCall);
		}
		LA9_: ;
	}
	LA5_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genFilenames_9cFzUT5Cyfi5u0F447WwLvA_3)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T1_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = cgsym_0d9bDo5R2p09cv1ljqpC4l8Q(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_750));
	T1_;
	result = NIM_NIL;
	{
		NI i;
		NI colontmp_;
		NI T3_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T3_ = ((*(*(*m).g).config).m.fileInfos ? (*(*(*m).g).config).m.fileInfos->Sup.len : 0);
		colontmp_ = T3_;
		i_2 = ((NI) 0);
		{
			while (1) {
				tyArray_JiWwrsTRC6xqNlGcBthSVA T6_;
				if (!(i_2 < colontmp_)) goto LA5;
				i = i_2;
				nimZeroMem((void*)T6_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
				T6_[0] = makeCString_vQJydtKy4Nf6bXPYtbmjtg((*(*(*m).g).config).m.fileInfos->data[i].projPath);
				addf_ocEHZ9cujtqicXvDuJUm5pg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_751), T6_, 1);
				i_2 += ((NI) 1);
			} LA5: ;
		}
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, closeNamespaceNim_EBP36f89alKNeO11l19ca8RQ)(void) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_755));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, openNamespaceNim_h7k639c1gj2MLT300oN1wwg)(NimStringDesc* namespace_0) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_757));
	add_yG4AKzsBRS1W4MANDlXQeg(&result, namespace_0);
	add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_758));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genMainProc_Uk2KC544lDJr1joRO9bvANQ)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m) {
	NimStringDesc* nimMain;
	NimStringDesc* otherMain;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* initStackBottomCall;
	tyArray_duFhZXIIlrbrM62cWjNekg T40_;
	tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T49_;
	nimMain = (NimStringDesc*)0;
	otherMain = (NimStringDesc*)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*(*m).g).config).target.targetOS == ((tyEnum_TSystemOS_s7Mlr1t66SUqP6BKJMXLaQ) 2));
		if (!(T3_)) goto LA4_;
		T3_ = !((((*(*(*m).g).config).globalOptions & 640) == 0));
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			if (!(((*(*(*m).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 9))&63U)))!=0)) goto LA9_;
			nimMain = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_737));
			otherMain = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_738));
		}
		goto LA7_;
		LA9_: ;
		{
			nimMain = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_739));
			otherMain = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_740));
		}
		LA7_: ;
		includeHeader_uTF5360OavCefWH39cfa58w(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_741));
	}
	goto LA1_;
	LA5_: ;
	{
		if (!((*(*(*m).g).config).target.targetOS == ((tyEnum_TSystemOS_s7Mlr1t66SUqP6BKJMXLaQ) 24))) goto LA13_;
		nimMain = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_742));
		otherMain = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_743));
		includeHeader_uTF5360OavCefWH39cfa58w(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_744));
	}
	goto LA1_;
	LA13_: ;
	{
		if (!(((*(*(*m).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 7))&63U)))!=0)) goto LA16_;
		nimMain = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_739));
		otherMain = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_745));
	}
	goto LA1_;
	LA16_: ;
	{
		if (!((*(*(*m).g).config).target.targetOS == ((tyEnum_TSystemOS_s7Mlr1t66SUqP6BKJMXLaQ) 27))) goto LA19_;
		nimMain = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_746));
		otherMain = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_747));
	}
	goto LA1_;
	LA19_: ;
	{
		nimMain = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_746));
		otherMain = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_748));
	}
	LA1_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T26_;
		if (!!(((*(*m).g).breakpoints == NIM_NIL))) goto LA24_;
		T26_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T26_ = cgsym_0d9bDo5R2p09cv1ljqpC4l8Q(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_749));
		T26_;
	}
	LA24_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T31_;
		if (!(((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 18))&31U)))!=0)) goto LA29_;
		T31_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T31_ = genFilenames_9cFzUT5Cyfi5u0F447WwLvA_3(m);
		add_iMTw0CDaruwETLGb9bhpBLg(&(*(*m).g).breakpoints, T31_);
	}
	LA29_: ;
	{
		NIM_BOOL T34_;
		T34_ = (NIM_BOOL)0;
		T34_ = ((*(*(*m).g).config).target.targetOS == ((tyEnum_TSystemOS_s7Mlr1t66SUqP6BKJMXLaQ) 27));
		if (T34_) goto LA35_;
		T34_ = ((*(*(*m).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 0));
		LA35_: ;
		if (!T34_) goto LA36_;
		initStackBottomCall = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) NIM_NIL));
	}
	goto LA32_;
	LA36_: ;
	{
		tyArray_qTjAvTvKF9anytN1At69aJMQ T39_;
		nimZeroMem((void*)T39_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		initStackBottomCall = ropecg_pDjCXevkau9aaTuKWN9cvHGw(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_752), T39_, 0);
	}
	LA32_: ;
	(*m).labels += ((NI) 1);
	nimZeroMem((void*)T40_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
	T40_[0] = (*(*m).g).mainDatInit;
	T40_[1] = (*(*m).g).breakpoints;
	T40_[2] = (*(*m).g).otherModsInit;
	{
		NIM_BOOL T43_;
		tyArray_qTjAvTvKF9anytN1At69aJMQ T47_;
		T43_ = (NIM_BOOL)0;
		T43_ = emulatedThreadVars_viA2VrQ9cI0jU5DX49b1MeYgcgen((*(*m).g).config);
		if (!(T43_)) goto LA44_;
		T43_ = !(((*(*(*m).g).config).target.targetOS == ((tyEnum_TSystemOS_s7Mlr1t66SUqP6BKJMXLaQ) 27)));
		LA44_: ;
		if (!T43_) goto LA45_;
		nimZeroMem((void*)T47_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		T40_[3] = ropecg_pDjCXevkau9aaTuKWN9cvHGw(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_754), T47_, 0);
	}
	goto LA41_;
	LA45_: ;
	{
		T40_[3] = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) NIM_NIL));
	}
	LA41_: ;
	T40_[4] = initStackBottomCall;
	appcg_GrB2Hbyo8XeK6TPKMD0Y5A(m, &(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_753), T40_, 5);
	nimZeroMem((void*)T49_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
	T49_[0] = (*(*m).g).mainModInit;
	T49_[1] = initStackBottomCall;
	T49_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*m).labels)));
	appcg_GrB2Hbyo8XeK6TPKMD0Y5A(m, &(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], nimMain, T49_, 3);
	{
		tyArray_qTjAvTvKF9anytN1At69aJMQ T62_;
		if (!!((((*(*(*m).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 18))&63U)))!=0))) goto LA52_;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T58_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T59_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T60_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T61_;
			if (!(((NI) 0) < ((*(*(*m).g).config).cppCustomNamespace ? (*(*(*m).g).config).cppCustomNamespace->Sup.len : 0))) goto LA56_;
			T58_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T58_ = closeNamespaceNim_EBP36f89alKNeO11l19ca8RQ();
			T59_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T59_ = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T58_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_756));
			T60_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T60_ = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T59_, (*(*(*m).g).config).cppCustomNamespace);
			T61_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T61_ = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T60_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_681));
			add_iMTw0CDaruwETLGb9bhpBLg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], T61_);
		}
		LA56_: ;
		nimZeroMem((void*)T62_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		appcg_GrB2Hbyo8XeK6TPKMD0Y5A(m, &(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], otherMain, T62_, 0);
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T67_;
			if (!(((NI) 0) < ((*(*(*m).g).config).cppCustomNamespace ? (*(*(*m).g).config).cppCustomNamespace->Sup.len : 0))) goto LA65_;
			T67_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T67_ = openNamespaceNim_h7k639c1gj2MLT300oN1wwg((*(*(*m).g).config).cppCustomNamespace);
			add_iMTw0CDaruwETLGb9bhpBLg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], T67_);
		}
		LA65_: ;
	}
	LA52_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, myClose_Gs5s2a4UfkaIhdroTYBUbQ)(tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TPassContext_ZmGcnZ1NlGbjfV1h4uuYdw* b, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m;
{	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	{
		if (!(b == NIM_NIL)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	m = ((tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A*) (b));
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = skipCodegen_A72PL1PX0Fg9cwfX3uIOVUAcgen((*(*m).g).config, n);
		if (!T7_) goto LA8_;
		goto BeforeRet_;
	}
	LA8_: ;
	{
		if (!!((n == NIM_NIL))) goto LA12_;
		(*(*m).initProc).options = initProcOptions_oPbEKB4n1AIYrfJ09cINXQw(m);
		genStmts_QrTB5DOwbDX9bKAW7PNbuJA((*m).initProc, n);
	}
	LA12_: ;
	registerModuleToMain_9b9cE9c9cXV8ajZBf8pZ9cXrH8A((*m).g, (*m).module);
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* disp;
		if (!(((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 12))&63U)))!=0)) goto LA16_;
		{
			if (!((*(*m).g).forwardedProcsCounter == ((NI) 0))) goto LA20_;
			(*m).flags |= ((NU8)1)<<((((tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q) 5))%(sizeof(NU8)*8));
		}
		LA20_: ;
		disp = generateMethodDispatchers_7t0GJlNQwZyLt0Kz3RhRdw(graph);
		{
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x;
			x = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen_CdME9baJhvveuPEDZE9bXoxArenderer(disp);
				i_2 = ((NI) 0);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA25;
						i = i_2;
						x = (*disp)._Ukind.S6.sons->data[i];
						genProcAux_LVUZwjNmLEZwI6xGJ9aeU7Q_3(m, (*x)._Ukind.S4.sym);
						i_2 += ((NI) 1);
					} LA25: ;
				}
			}
		}
		genMainProc_Uk2KC544lDJr1joRO9bvANQ(m);
	}
	LA16_: ;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, finishModule_Uk2KC544lDJr1joRO9bvANQ_2)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m) {
	NI i;
	i = ((NI) 0);
	{
		while (1) {
			NI T3_;
			tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc;
			T3_ = (((*m).forwardedProcs ? (*m).forwardedProcs->Sup.len : 0)-1);
			if (!(i <= T3_)) goto LA2;
			prc = (*m).forwardedProcs->data[i];
			{
				NimStringDesc* T8_;
				if (!(((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 4))&63U)))!=0)) goto LA6_;
				T8_ = (NimStringDesc*)0;
				T8_ = rawNewString(((*(*prc).name).s ? (*(*prc).name).s->Sup.len : 0) + 17);
appendString(T8_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_759));
appendString(T8_, (*(*prc).name).s);
				internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*m).g).config, (*prc).info, T8_);
			}
			LA6_: ;
			genProcNoForward_LVUZwjNmLEZwI6xGJ9aeU7Q_2(m, prc);
			i += ((NI) 1);
		} LA2: ;
	}
	(*(*m).g).forwardedProcsCounter -= i;
	asgnRefNoCycle((void**) (&(*m).forwardedProcs), (tySequence_DfgJFJEYoj4YBAHLZPl5lQ*) setLengthSeqV2(&((*m).forwardedProcs)->Sup, (&NTI_DfgJFJEYoj4YBAHLZPl5lQ_), ((NI) 0)));
}

N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getCFile_1XCYPP4W7lGJfZnVV4ETpQ)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m) {
	NimStringDesc* result;
	NimStringDesc* ext;
	NimStringDesc* T13_;
	NimStringDesc* T14_;
	result = (NimStringDesc*)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*(*m).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T3_) goto LA4_;
		T3_ = (((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		ext = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_760));
	}
	goto LA1_;
	LA5_: ;
	{
		NIM_BOOL T8_;
		T8_ = (NIM_BOOL)0;
		T8_ = ((*(*(*m).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 3));
		if (T8_) goto LA9_;
		T8_ = (((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 29))&63U)))!=0);
		LA9_: ;
		if (!T8_) goto LA10_;
		ext = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_761));
	}
	goto LA1_;
	LA10_: ;
	{
		ext = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_762));
	}
	LA1_: ;
	T13_ = (NimStringDesc*)0;
	T13_ = withPackageName_4YwxMBUnZIgsMzSI4IbEdg((*(*m).g).config, (*m).cfilename);
	T14_ = (NimStringDesc*)0;
	T14_ = completeCFilePath_nUeinU41FdF8oB8ZXMTOhQ((*(*m).g).config, T13_, NIM_TRUE);
	result = noschangeFileExt(T14_, ext);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genInitCode_Uk2KC544lDJr1joRO9bvANQ_3)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* initname;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* prc;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T1_;
	tyArray_qTjAvTvKF9anytN1At69aJMQ T12_;
	tyArray_qTjAvTvKF9anytN1At69aJMQ T25_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T26_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T27_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T28_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T29_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T45_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T46_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T47_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T48_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T49_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T50_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T58_;
	tyArray_qTjAvTvKF9anytN1At69aJMQ T59_;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T60_;
	tyArray_qTjAvTvKF9anytN1At69aJMQ T66_;
	initname = getInitName_JBd7XGjgK9ab0QMtKIFvb8Q((*m).module);
	nimZeroMem((void*)T1_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T1_[0] = initname;
	prc = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_763), T1_, 1);
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T6_;
		if (!(((NI) 0) < (*m).typeNodes)) goto LA4_;
		nimZeroMem((void*)T6_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T6_[0] = (*m).typeNodesName;
		T6_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*m).typeNodes)));
		appcg_GrB2Hbyo8XeK6TPKMD0Y5A(m, &(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 12))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_764), T6_, 2);
	}
	LA4_: ;
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T11_;
		if (!(((NI) 0) < (*m).nimTypes)) goto LA9_;
		nimZeroMem((void*)T11_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T11_[0] = (*m).nimTypesName;
		T11_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*m).nimTypes)));
		appcg_GrB2Hbyo8XeK6TPKMD0Y5A(m, &(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 12))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_765), T11_, 2);
	}
	LA9_: ;
	nimZeroMem((void*)T12_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
	addf_ocEHZ9cujtqicXvDuJUm5pg(&prc, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_766), T12_, 0);
	{
		tyArray_qTjAvTvKF9anytN1At69aJMQ T14_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T15_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T16_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T17_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T18_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T19_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T20_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T21_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T22_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T23_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T24_;
		nimZeroMem((void*)T14_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		T15_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T15_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_767), T14_, 0);
		add_iMTw0CDaruwETLGb9bhpBLg(&prc, T15_);
		T16_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T16_ = genSectionStart_otaTb0ytiYCWgsXTIvijfg(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0), (*(*m).g).config);
		add_iMTw0CDaruwETLGb9bhpBLg(&prc, T16_);
		T17_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T17_ = s_oPjlsf0lwosYuh6KXhkqLQcgen((*m).preInitProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
		add_iMTw0CDaruwETLGb9bhpBLg(&prc, (*T17_));
		T18_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T18_ = genSectionEnd_otaTb0ytiYCWgsXTIvijfg_2(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0), (*(*m).g).config);
		add_iMTw0CDaruwETLGb9bhpBLg(&prc, T18_);
		T19_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T19_ = genSectionStart_otaTb0ytiYCWgsXTIvijfg(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1), (*(*m).g).config);
		add_iMTw0CDaruwETLGb9bhpBLg(&prc, T19_);
		T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T20_ = s_oPjlsf0lwosYuh6KXhkqLQcgen((*m).preInitProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1));
		add_iMTw0CDaruwETLGb9bhpBLg(&prc, (*T20_));
		T21_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T21_ = genSectionEnd_otaTb0ytiYCWgsXTIvijfg_2(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1), (*(*m).g).config);
		add_iMTw0CDaruwETLGb9bhpBLg(&prc, T21_);
		T22_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T22_ = genSectionStart_otaTb0ytiYCWgsXTIvijfg(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), (*(*m).g).config);
		add_iMTw0CDaruwETLGb9bhpBLg(&prc, T22_);
		T23_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T23_ = s_oPjlsf0lwosYuh6KXhkqLQcgen((*m).preInitProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		add_iMTw0CDaruwETLGb9bhpBLg(&prc, (*T23_));
		T24_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T24_ = genSectionEnd_otaTb0ytiYCWgsXTIvijfg_2(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), (*(*m).g).config);
		add_iMTw0CDaruwETLGb9bhpBLg(&prc, T24_);
	}
	nimZeroMem((void*)T25_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
	addf_ocEHZ9cujtqicXvDuJUm5pg(&prc, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_266), T25_, 0);
	T26_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T26_ = initGCFrame_3AsTOpq9crZUYBL9aD1lXBng_3((*m).initProc);
	add_iMTw0CDaruwETLGb9bhpBLg(&prc, T26_);
	T27_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T27_ = genSectionStart_otaTb0ytiYCWgsXTIvijfg(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0), (*(*m).g).config);
	add_iMTw0CDaruwETLGb9bhpBLg(&prc, T27_);
	T28_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T28_ = s_oPjlsf0lwosYuh6KXhkqLQcgen((*m).initProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
	add_iMTw0CDaruwETLGb9bhpBLg(&prc, (*T28_));
	T29_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T29_ = genSectionEnd_otaTb0ytiYCWgsXTIvijfg_2(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0), (*(*m).g).config);
	add_iMTw0CDaruwETLGb9bhpBLg(&prc, T29_);
	{
		NIM_BOOL T32_;
		T32_ = (NIM_BOOL)0;
		T32_ = (((*(*m).initProc).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 16))&31U)))!=0);
		if (!(T32_)) goto LA33_;
		T32_ = !((((*m).flags &(1U<<((NU)(((tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q) 2))&7U)))!=0));
		LA33_: ;
		if (!T32_) goto LA34_;
		(*m).flags |= ((NU8)1)<<((((tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q) 2))%(sizeof(NU8)*8));
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* procname;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T40_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T41_;
			if (!!((((*m).flags &(1U<<((NU)(((tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q) 0))&7U)))!=0))) goto LA38_;
			procname = makeCString_vQJydtKy4Nf6bXPYtbmjtg((*(*(*m).module).name).s);
			T40_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T40_ = quotedFilename_9cv9aIRvZfYbftCtn2P2ABrQ((*(*m).g).config, (*(*m).module).info);
			T41_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T41_ = initFrame_hSB0mXJGcFil9bvrhp0Qm5g((*m).initProc, procname, T40_);
			add_iMTw0CDaruwETLGb9bhpBLg(&prc, T41_);
		}
		goto LA36_;
		LA38_: ;
		{
			tyArray_qTjAvTvKF9anytN1At69aJMQ T43_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T44_;
			nimZeroMem((void*)T43_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
			T44_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T44_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_767), T43_, 0);
			add_iMTw0CDaruwETLGb9bhpBLg(&prc, T44_);
		}
		LA36_: ;
	}
	LA34_: ;
	T45_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T45_ = genSectionStart_otaTb0ytiYCWgsXTIvijfg(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1), (*(*m).g).config);
	add_iMTw0CDaruwETLGb9bhpBLg(&prc, T45_);
	T46_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T46_ = s_oPjlsf0lwosYuh6KXhkqLQcgen((*m).initProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1));
	add_iMTw0CDaruwETLGb9bhpBLg(&prc, (*T46_));
	T47_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T47_ = genSectionEnd_otaTb0ytiYCWgsXTIvijfg_2(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1), (*(*m).g).config);
	add_iMTw0CDaruwETLGb9bhpBLg(&prc, T47_);
	T48_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T48_ = genSectionStart_otaTb0ytiYCWgsXTIvijfg(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), (*(*m).g).config);
	add_iMTw0CDaruwETLGb9bhpBLg(&prc, T48_);
	T49_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T49_ = s_oPjlsf0lwosYuh6KXhkqLQcgen((*m).initProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	add_iMTw0CDaruwETLGb9bhpBLg(&prc, (*T49_));
	T50_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T50_ = genSectionEnd_otaTb0ytiYCWgsXTIvijfg_2(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), (*(*m).g).config);
	add_iMTw0CDaruwETLGb9bhpBLg(&prc, T50_);
	{
		NIM_BOOL T53_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T57_;
		T53_ = (NIM_BOOL)0;
		T53_ = (((*(*m).initProc).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 16))&31U)))!=0);
		if (!(T53_)) goto LA54_;
		T53_ = !((((*m).flags &(1U<<((NU)(((tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q) 0))&7U)))!=0));
		LA54_: ;
		if (!T53_) goto LA55_;
		T57_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T57_ = deinitFrame_3AsTOpq9crZUYBL9aD1lXBng_5((*m).initProc);
		add_iMTw0CDaruwETLGb9bhpBLg(&prc, T57_);
	}
	LA55_: ;
	T58_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T58_ = deinitGCFrame_3AsTOpq9crZUYBL9aD1lXBng_4((*m).initProc);
	add_iMTw0CDaruwETLGb9bhpBLg(&prc, T58_);
	nimZeroMem((void*)T59_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
	addf_ocEHZ9cujtqicXvDuJUm5pg(&prc, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_768), T59_, 0);
	nimZeroMem((void*)T60_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T60_[0] = getDatInitName_JBd7XGjgK9ab0QMtKIFvb8Q_2((*m).module);
	addf_ocEHZ9cujtqicXvDuJUm5pg(&prc, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_763), T60_, 1);
	{
		tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg i;
		NI res;
		i = (tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg)0;
		res = ((NI) 12);
		{
			while (1) {
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T64_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T65_;
				if (!(res <= ((NI) 16))) goto LA63;
				i = ((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) (res));
				T64_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T64_ = genSectionStart_KYNwN8RXzjqIkzxFSwHsxw(i, (*(*m).g).config);
				add_iMTw0CDaruwETLGb9bhpBLg(&prc, T64_);
				add_iMTw0CDaruwETLGb9bhpBLg(&prc, (*m).s[(i)- 0]);
				T65_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T65_ = genSectionEnd_KYNwN8RXzjqIkzxFSwHsxw_2(i, (*(*m).g).config);
				add_iMTw0CDaruwETLGb9bhpBLg(&prc, T65_);
				res += ((NI) 1);
			} LA63: ;
		}
	}
	nimZeroMem((void*)T66_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
	addf_ocEHZ9cujtqicXvDuJUm5pg(&prc, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_768), T66_, 0);
	add_iMTw0CDaruwETLGb9bhpBLg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0], prc);
	{
		NIM_CHAR i_2;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* el;
		tyArray_MxT2Arb3Nlp7V9bRITO3dvg colontmp_;
		NIM_CHAR i_3;
		i_2 = (NIM_CHAR)0;
		el = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		nimZeroMem((void*)colontmp_, sizeof(tyArray_MxT2Arb3Nlp7V9bRITO3dvg));
		nimCopyMem((void*)colontmp_, (NIM_CONST void*)(*m).extensionLoaders, sizeof(colontmp_));
		i_3 = 48;
		{
			if (!((NU8)(((NIM_CHAR) (((NU8)(i_3))))) <= (NU8)(57))) goto LA70_;
			{
				while (1) {
					i_2 = i_3;
					el = colontmp_[(((NU8)(i_3)))- 48];
					{
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* ex;
						tyArray_mrugoXXRZUEeG9bEXo9auBKw T78_;
						if (!!((el == NIM_NIL))) goto LA76_;
						nimZeroMem((void*)T78_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
						T78_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((NI)(((NU8)(i_2)) - ((NI) 48)))));
						T78_[1] = el;
						ex = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_769), T78_, 2);
						add_iMTw0CDaruwETLGb9bhpBLg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0], ex);
					}
					LA76_: ;
					{
						if (!((NU8)(57) <= (NU8)(((NIM_CHAR) (((NU8)(i_3))))))) goto LA81_;
						goto LA72;
					}
					LA81_: ;
					i_3 += ((NI) 1);
				}
			} LA72: ;
		}
		LA70_: ;
	}
}

N_LIB_PRIVATE N_NIMCALL(void, finishTypeDescriptions_Uk2KC544lDJr1joRO9bvANQ_4)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m) {
	NI i;
	i = ((NI) 0);
	{
		while (1) {
			NI T3_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T4_;
			T3_ = ((*m).typeStack ? (*m).typeStack->Sup.len : 0);
			if (!(i < T3_)) goto LA2;
			T4_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T4_ = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2(m, (*m).typeStack->data[i]);
			T4_;
			i += ((NI) 1);
		} LA2: ;
	}
}

N_LIB_PRIVATE N_NIMCALL(void, generateThreadVarsSize_Uk2KC544lDJr1joRO9bvANQ_5)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m) {
	{
		NimStringDesc* externc;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T12_;
		if (!!(((*(*m).g).nimtv == NIM_NIL))) goto LA3_;
		{
			NIM_BOOL T7_;
			T7_ = (NIM_BOOL)0;
			T7_ = ((*(*(*m).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
			if (T7_) goto LA8_;
			T7_ = (((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA8_: ;
			if (!T7_) goto LA9_;
			externc = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_287));
		}
		goto LA5_;
		LA9_: ;
		{
			externc = ((NimStringDesc*) NIM_NIL);
		}
		LA5_: ;
		nimZeroMem((void*)T12_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T12_[0] = rope_yShmEg9cffWxI7s5XzEKBow(externc);
		addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_770), T12_, 1);
	}
	LA3_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getCopyright_t9c9byVBpvEfissxdPQCEZLw_2)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg cfile) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T5_;
		if (!(((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 4))&63U)))!=0)) goto LA3_;
		nimZeroMem((void*)T5_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T5_[0] = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_772));
		result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_771), T5_, 1);
	}
	goto LA1_;
	LA3_: ;
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T7_;
		NimStringDesc* T8_;
		nimZeroMem((void*)T7_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T7_[0] = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_772));
		T7_[1] = rope_yShmEg9cffWxI7s5XzEKBow(OS_Jx0qy9c9bSo4fGkMxUfUaAaw[((*conf).target.targetOS)- 1].Field0);
		T7_[2] = rope_yShmEg9cffWxI7s5XzEKBow(CPU_uYXopJX8pM87pQDCtmgWfQ[((*conf).target.targetCPU)- 1].Field0);
		T7_[3] = rope_yShmEg9cffWxI7s5XzEKBow(CC_78I18QZNZFIv9ah7oETc0jg[((*conf).cCompiler)- 1].Field0);
		T8_ = (NimStringDesc*)0;
		T8_ = getCompileCFileCmd_QfCX9czC0M7psgT3pyi1eyw(conf, cfile);
		T7_[4] = rope_yShmEg9cffWxI7s5XzEKBow(T8_);
		result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_773), T7_, 5);
	}
	LA1_: ;
	return result;
}

static N_INLINE(void, addIntTypes_jVBximZchOMC4kzSRdtvHgcgen)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** result, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf) {
	tyArray_JiWwrsTRC6xqNlGcBthSVA T1_;
	nimZeroMem((void*)T1_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T1_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (CPU_uYXopJX8pM87pQDCtmgWfQ[((*conf).target.targetCPU)- 1].Field1)));
	addf_ocEHZ9cujtqicXvDuJUm5pg(result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_774), T1_, 1);
	{
		if (!(((NI) 0) < ((*conf).cppCustomNamespace ? (*conf).cppCustomNamespace->Sup.len : 0))) goto LA4_;
		add_yG4AKzsBRS1W4MANDlXQeg(result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_775));
		add_yG4AKzsBRS1W4MANDlXQeg(result, (*conf).cppCustomNamespace);
		add_yG4AKzsBRS1W4MANDlXQeg(result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_8));
	}
	LA4_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getFileHeader_t9c9byVBpvEfissxdPQCEZLw)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg cfile) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	result = getCopyright_t9c9byVBpvEfissxdPQCEZLw_2(conf, cfile);
	addIntTypes_jVBximZchOMC4kzSRdtvHgcgen(&result, conf);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, generateThreadLocalStorage_Uk2KC544lDJr1joRO9bvANQ_6)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m) {
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T14_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*(*m).g).nimtv == NIM_NIL));
		if (!(T3_)) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = (((*m).flags &(1U<<((NU)(((tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q) 1))&7U)))!=0);
		if (T5_) goto LA6_;
		T5_ = (((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 12))&63U)))!=0);
		LA6_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA7_;
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
			tySequence_Ef05srmQTDulnBdXR4Ja6Q* colontmp_;
			NI i;
			NI L;
			NI T10_;
			t = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			colontmp_ = (tySequence_Ef05srmQTDulnBdXR4Ja6Q*)0;
			colontmp_ = (*(*m).g).nimtvDeps;
			i = ((NI) 0);
			T10_ = (colontmp_ ? colontmp_->Sup.len : 0);
			L = T10_;
			{
				while (1) {
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T13_;
					if (!(i < L)) goto LA12;
					t = colontmp_->data[i];
					T13_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T13_ = getTypeDesc_TttItRxQT67RCnbQdIsyRQ_2(m, t);
					T13_;
					i += ((NI) 1);
				} LA12: ;
			}
		}
		nimZeroMem((void*)T14_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T14_[0] = (*(*m).g).nimtv;
		addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 4))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_776), T14_, 1);
	}
	LA7_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, generateHeaders_Uk2KC544lDJr1joRO9bvANQ_7)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m) {
	add_yG4AKzsBRS1W4MANDlXQeg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_777));
	{
		NimStringDesc* it;
		tySequence_sM4lkSb7zS6F7OVMvW9cffQ* colontmp_;
		NI i;
		NI L;
		NI T2_;
		it = (NimStringDesc*)0;
		colontmp_ = (tySequence_sM4lkSb7zS6F7OVMvW9cffQ*)0;
		colontmp_ = (*m).headerFiles;
		i = ((NI) 0);
		T2_ = (colontmp_ ? colontmp_->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				if (!(i < L)) goto LA4;
				it = colontmp_->data[i];
				{
					NimStringDesc* T9_;
					NimStringDesc* T10_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
					if (!((NU8)(it->data[((NI) 0)]) == (NU8)(35))) goto LA7_;
					T9_ = (NimStringDesc*)0;
					T10_ = (NimStringDesc*)0;
					T10_ = nsuReplaceChar(it, 96, 34);
					T9_ = rawNewString((T10_ ? T10_->Sup.len : 0) + 1);
appendString(T9_, T10_);
appendString(T9_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_8));
					T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T11_ = rope_yShmEg9cffWxI7s5XzEKBow(T9_);
					add_iMTw0CDaruwETLGb9bhpBLg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0], T11_);
				}
				goto LA5_;
				LA7_: ;
				{
					tyArray_JiWwrsTRC6xqNlGcBthSVA T15_;
					if (!!((((NU8)(it->data[((NI) 0)])) == ((NU8)(34)) || ((NU8)(it->data[((NI) 0)])) == ((NU8)(60))))) goto LA13_;
					nimZeroMem((void*)T15_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
					T15_[0] = rope_yShmEg9cffWxI7s5XzEKBow(it);
					addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_778), T15_, 1);
				}
				goto LA5_;
				LA13_: ;
				{
					tyArray_JiWwrsTRC6xqNlGcBthSVA T17_;
					nimZeroMem((void*)T17_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
					T17_[0] = rope_yShmEg9cffWxI7s5XzEKBow(it);
					addf_ocEHZ9cujtqicXvDuJUm5pg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_779), T17_, 1);
				}
				LA5_: ;
				i += ((NI) 1);
			} LA4: ;
		}
	}
	add_yG4AKzsBRS1W4MANDlXQeg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_780));
	add_yG4AKzsBRS1W4MANDlXQeg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_781));
	add_yG4AKzsBRS1W4MANDlXQeg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_782));
	add_yG4AKzsBRS1W4MANDlXQeg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_783));
	add_yG4AKzsBRS1W4MANDlXQeg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_784));
	add_yG4AKzsBRS1W4MANDlXQeg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_785));
	add_yG4AKzsBRS1W4MANDlXQeg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_786));
	add_yG4AKzsBRS1W4MANDlXQeg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_787));
	add_yG4AKzsBRS1W4MANDlXQeg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_788));
	add_yG4AKzsBRS1W4MANDlXQeg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_789));
	add_yG4AKzsBRS1W4MANDlXQeg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_790));
	add_yG4AKzsBRS1W4MANDlXQeg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_791));
	add_yG4AKzsBRS1W4MANDlXQeg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_792));
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genModule_ntChrrJJ8SZ7k7xo0KnvNQ)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg cfile) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T1_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	result = getFileHeader_t9c9byVBpvEfissxdPQCEZLw((*(*m).g).config, cfile);
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = genMergeInfo_KvulhR9b3jYRAtMO06J1PXQ(m);
	add_iMTw0CDaruwETLGb9bhpBLg(&result, T1_);
	generateThreadLocalStorage_Uk2KC544lDJr1joRO9bvANQ_6(m);
	generateHeaders_Uk2KC544lDJr1joRO9bvANQ_7(m);
	{
		tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg i;
		NI res;
		i = (tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg)0;
		res = ((NI) 1);
		{
			while (1) {
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T5_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T6_;
				if (!(res <= ((NI) 10))) goto LA4;
				i = ((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) (res));
				T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T5_ = genSectionStart_KYNwN8RXzjqIkzxFSwHsxw(i, (*(*m).g).config);
				add_iMTw0CDaruwETLGb9bhpBLg(&result, T5_);
				add_iMTw0CDaruwETLGb9bhpBLg(&result, (*m).s[(i)- 0]);
				T6_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T6_ = genSectionEnd_KYNwN8RXzjqIkzxFSwHsxw_2(i, (*(*m).g).config);
				add_iMTw0CDaruwETLGb9bhpBLg(&result, T6_);
				{
					NIM_BOOL T9_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T13_;
					T9_ = (NIM_BOOL)0;
					T9_ = (((NI) 0) < ((*(*(*m).g).config).cppCustomNamespace ? (*(*(*m).g).config).cppCustomNamespace->Sup.len : 0));
					if (!(T9_)) goto LA10_;
					T9_ = (i == ((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1));
					LA10_: ;
					if (!T9_) goto LA11_;
					T13_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T13_ = openNamespaceNim_h7k639c1gj2MLT300oN1wwg((*(*(*m).g).config).cppCustomNamespace);
					add_iMTw0CDaruwETLGb9bhpBLg(&result, T13_);
				}
				LA11_: ;
				res += ((NI) 1);
			} LA4: ;
		}
	}
	add_iMTw0CDaruwETLGb9bhpBLg(&result, (*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0]);
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T18_;
		if (!(((NI) 0) < ((*(*(*m).g).config).cppCustomNamespace ? (*(*(*m).g).config).cppCustomNamespace->Sup.len : 0))) goto LA16_;
		T18_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T18_ = closeNamespaceNim_EBP36f89alKNeO11l19ca8RQ();
		add_iMTw0CDaruwETLGb9bhpBLg(&result, T18_);
	}
	LA16_: ;
	return result;
}

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

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, shouldRecompile_wDVWwFMADGmdVZ0bU78OHQ)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* code, tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg cfile) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	result = NIM_TRUE;
	{
		if (!!((((*(*(*m).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 1))&63U)))!=0))) goto LA3_;
		{
			NIM_BOOL T7_;
			T7_ = (NIM_BOOL)0;
			T7_ = equalsFile_EnPyko9cdia3BJbBC9ao9a60A(code, cfile.cname);
			if (!!(T7_)) goto LA8_;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = isDefined_TeEHxEj0zXnJc9aUarshH9aA((*(*m).g).config, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_793));
				if (!T12_) goto LA13_;
				{
					NIM_BOOL T17_;
					NimStringDesc* T20_;
					tyArray_sMpvt1sOxOJ3LFGulnbeMQ T21_;
					T17_ = (NIM_BOOL)0;
					T17_ = fileExists_yTPrfdEKg9cKCeSFUA6popQoptions(cfile.cname);
					if (!T17_) goto LA18_;
					T20_ = (NimStringDesc*)0;
					T20_ = rawNewString((cfile.cname ? cfile.cname->Sup.len : 0) + 7);
appendString(T20_, cfile.cname);
appendString(T20_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_794));
					noscopyFile(cfile.cname, T20_);
					nimZeroMem((void*)T21_, sizeof(tyArray_sMpvt1sOxOJ3LFGulnbeMQ));
					T21_[0] = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_795));
					T21_[1] = copyString(cfile.cname);
					T21_[2] = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_796));
					T21_[3] = copyString(cfile.cname);
					echoBinSafe(T21_, 4);
				}
				goto LA15_;
				LA18_: ;
				{
					tyArray_Re75IspeoxXy2oCZHwcRrA T23_;
					nimZeroMem((void*)T23_, sizeof(tyArray_Re75IspeoxXy2oCZHwcRrA));
					T23_[0] = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_797));
					T23_[1] = copyString(cfile.cname);
					echoBinSafe(T23_, 2);
				}
				LA15_: ;
			}
			LA13_: ;
			{
				NIM_BOOL T26_;
				T26_ = (NIM_BOOL)0;
				T26_ = writeRope_xVzCd39bh3ndCAWl6XETYRg(code, cfile.cname);
				if (!!(T26_)) goto LA27_;
				rawMessage_h30HgTFwbGq0PsyHmRqZ8g((*(*m).g).config, ((tyEnum_TMsgKind_29cbg2fC1z5iM1PAI28kR5w) 3), cfile.cname);
			}
			LA27_: ;
			goto BeforeRet_;
		}
		LA8_: ;
		{
			NIM_BOOL T31_;
			T31_ = (NIM_BOOL)0;
			T31_ = fileExists_yTPrfdEKg9cKCeSFUA6popQoptions(cfile.obj);
			if (!(T31_)) goto LA32_;
			T31_ = nosfileNewer(cfile.obj, cfile.cname);
			LA32_: ;
			if (!T31_) goto LA33_;
			result = NIM_FALSE;
		}
		LA33_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		{
			NIM_BOOL T38_;
			T38_ = (NIM_BOOL)0;
			T38_ = writeRope_xVzCd39bh3ndCAWl6XETYRg(code, cfile.cname);
			if (!!(T38_)) goto LA39_;
			rawMessage_h30HgTFwbGq0PsyHmRqZ8g((*(*m).g).config, ((tyEnum_TMsgKind_29cbg2fC1z5iM1PAI28kR5w) 3), cfile.cname);
		}
		LA39_: ;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, writeModule_OYDkNxqPpixZGOgH0HYQvQ)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m, NIM_BOOL pending) {
	NimStringDesc* cfile;
	cfile = getCFile_1XCYPP4W7lGJfZnVV4ETpQ(m);
	{
		NIM_BOOL T3_;
		tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg cf;
		NimStringDesc* T11_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* code;
		T3_ = (NIM_BOOL)0;
		T3_ = NIM_TRUE;
		if (T3_) goto LA4_;
		T3_ = (((*(*(*m).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 1))&63U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		genInitCode_Uk2KC544lDJr1joRO9bvANQ_3(m);
		finishTypeDescriptions_Uk2KC544lDJr1joRO9bvANQ_4(m);
		{
			if (!(((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 12))&63U)))!=0)) goto LA9_;
			add_iMTw0CDaruwETLGb9bhpBLg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 7))- 0], (*(*m).g).mainModProcs);
			generateThreadVarsSize_Uk2KC544lDJr1joRO9bvANQ_5(m);
		}
		LA9_: ;
		nimZeroMem((void*)(&cf), sizeof(tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg));
		nimZeroMem((void*)(&cf), sizeof(tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg));
		cf.cname = copyString(cfile);
		T11_ = (NimStringDesc*)0;
		T11_ = toObjFile_wie9aYwLpNU3lDmFQ5RIoiw((*(*m).g).config, cfile);
		cf.obj = completeCFilePath_nUeinU41FdF8oB8ZXMTOhQ((*(*m).g).config, T11_, NIM_TRUE);
		cf.flags = 0;
		code = genModule_ntChrrJJ8SZ7k7xo0KnvNQ(m, cf);
		{
			NIM_BOOL T14_;
			T14_ = (NIM_BOOL)0;
			T14_ = shouldRecompile_wDVWwFMADGmdVZ0bU78OHQ(m, code, cf);
			if (!!(T14_)) goto LA15_;
			cf.flags = 1;
		}
		LA15_: ;
		addFileToCompile_DrjMOFR2ikK4fdFuJNiaYg((*(*m).g).config, cf);
	}
	goto LA1_;
	LA5_: ;
	{
		NIM_BOOL T18_;
		NIM_BOOL T19_;
		tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg cf_2;
		NimStringDesc* T24_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* code_2;
		T18_ = (NIM_BOOL)0;
		T19_ = (NIM_BOOL)0;
		T19_ = pending;
		if (!(T19_)) goto LA20_;
		T19_ = mergeRequired_tI6nnTYCo9bEon9bDwT7wZEg(m);
		LA20_: ;
		T18_ = T19_;
		if (!(T18_)) goto LA21_;
		T18_ = !((((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 12))&63U)))!=0));
		LA21_: ;
		if (!T18_) goto LA22_;
		nimZeroMem((void*)(&cf_2), sizeof(tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg));
		nimZeroMem((void*)(&cf_2), sizeof(tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg));
		cf_2.cname = copyString(cfile);
		T24_ = (NimStringDesc*)0;
		T24_ = toObjFile_wie9aYwLpNU3lDmFQ5RIoiw((*(*m).g).config, cfile);
		cf_2.obj = completeCFilePath_nUeinU41FdF8oB8ZXMTOhQ((*(*m).g).config, T24_, NIM_TRUE);
		cf_2.flags = 0;
		mergeFiles_dx5FrFzzoyK0pxKs3VgXfA(cfile, m);
		genInitCode_Uk2KC544lDJr1joRO9bvANQ_3(m);
		finishTypeDescriptions_Uk2KC544lDJr1joRO9bvANQ_4(m);
		code_2 = genModule_ntChrrJJ8SZ7k7xo0KnvNQ(m, cf_2);
		{
			NIM_BOOL T27_;
			T27_ = (NIM_BOOL)0;
			T27_ = writeRope_xVzCd39bh3ndCAWl6XETYRg(code_2, cfile);
			if (!!(T27_)) goto LA28_;
			rawMessage_h30HgTFwbGq0PsyHmRqZ8g((*(*m).g).config, ((tyEnum_TMsgKind_29cbg2fC1z5iM1PAI28kR5w) 3), cfile);
		}
		LA28_: ;
		addFileToCompile_DrjMOFR2ikK4fdFuJNiaYg((*(*m).g).config, cf_2);
	}
	goto LA1_;
	LA22_: ;
	{
		tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg cf_3;
		NimStringDesc* T31_;
		nimZeroMem((void*)(&cf_3), sizeof(tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg));
		nimZeroMem((void*)(&cf_3), sizeof(tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg));
		cf_3.cname = copyString(cfile);
		T31_ = (NimStringDesc*)0;
		T31_ = toObjFile_wie9aYwLpNU3lDmFQ5RIoiw((*(*m).g).config, cfile);
		cf_3.obj = completeCFilePath_nUeinU41FdF8oB8ZXMTOhQ((*(*m).g).config, T31_, NIM_TRUE);
		cf_3.flags = 0;
		{
			NIM_BOOL T34_;
			T34_ = (NIM_BOOL)0;
			T34_ = fileExists_yTPrfdEKg9cKCeSFUA6popQoptions(cf_3.obj);
			if (!!(T34_)) goto LA35_;
			cf_3.flags = 1;
		}
		LA35_: ;
		addFileToCompile_DrjMOFR2ikK4fdFuJNiaYg((*(*m).g).config, cf_3);
	}
	LA1_: ;
	close_9b6I81M9agpKe5u9cmzSmOaGA((&(*m).ndi));
}

N_LIB_PRIVATE N_NIMCALL(void, writeHeader_Uk2KC544lDJr1joRO9bvANQ_8)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* guard;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T2_;
	tyTuple_7q7q3E6Oj24ZNVJb9aonhAg T3_;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T4_;
	tyArray_qTjAvTvKF9anytN1At69aJMQ T21_;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T27_;
	nimZeroMem((void*)T1_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T1_[0] = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_772));
	result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_798), T1_, 1);
	nimZeroMem((void*)T2_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	nimZeroMem((void*)(&T3_), sizeof(tyTuple_7q7q3E6Oj24ZNVJb9aonhAg));
	splitFile_R3dPKp0IXOiTZhAeiTEnrA((*m).filename, (&T3_));
	T2_[0] = rope_yShmEg9cffWxI7s5XzEKBow(T3_.Field1);
	guard = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_799), T2_, 1);
	nimZeroMem((void*)T4_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T4_[0] = guard;
	addf_ocEHZ9cujtqicXvDuJUm5pg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_800), T4_, 1);
	addIntTypes_jVBximZchOMC4kzSRdtvHgcgen(&result, (*(*m).g).config);
	generateHeaders_Uk2KC544lDJr1joRO9bvANQ_7(m);
	generateThreadLocalStorage_Uk2KC544lDJr1joRO9bvANQ_6(m);
	{
		tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg i;
		NI res;
		i = (tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg)0;
		res = ((NI) 1);
		{
			while (1) {
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T8_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
				if (!(res <= ((NI) 10))) goto LA7;
				i = ((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) (res));
				T8_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T8_ = genSectionStart_KYNwN8RXzjqIkzxFSwHsxw(i, (*(*m).g).config);
				add_iMTw0CDaruwETLGb9bhpBLg(&result, T8_);
				add_iMTw0CDaruwETLGb9bhpBLg(&result, (*m).s[(i)- 0]);
				T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T9_ = genSectionEnd_KYNwN8RXzjqIkzxFSwHsxw_2(i, (*(*m).g).config);
				add_iMTw0CDaruwETLGb9bhpBLg(&result, T9_);
				{
					NIM_BOOL T12_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T16_;
					T12_ = (NIM_BOOL)0;
					T12_ = (((NI) 0) < ((*(*(*m).g).config).cppCustomNamespace ? (*(*(*m).g).config).cppCustomNamespace->Sup.len : 0));
					if (!(T12_)) goto LA13_;
					T12_ = (i == ((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1));
					LA13_: ;
					if (!T12_) goto LA14_;
					T16_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T16_ = openNamespaceNim_h7k639c1gj2MLT300oN1wwg((*(*(*m).g).config).cppCustomNamespace);
					add_iMTw0CDaruwETLGb9bhpBLg(&result, T16_);
				}
				LA14_: ;
				res += ((NI) 1);
			} LA7: ;
		}
	}
	add_iMTw0CDaruwETLGb9bhpBLg(&result, (*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0]);
	{
		if (!(((*(*(*m).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 7))&63U)))!=0)) goto LA19_;
		add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_10));
	}
	LA19_: ;
	nimZeroMem((void*)T21_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
	addf_ocEHZ9cujtqicXvDuJUm5pg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_801), T21_, 0);
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T26_;
		if (!(((NI) 0) < ((*(*(*m).g).config).cppCustomNamespace ? (*(*(*m).g).config).cppCustomNamespace->Sup.len : 0))) goto LA24_;
		T26_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T26_ = closeNamespaceNim_EBP36f89alKNeO11l19ca8RQ();
		add_iMTw0CDaruwETLGb9bhpBLg(&result, T26_);
	}
	LA24_: ;
	nimZeroMem((void*)T27_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T27_[0] = guard;
	addf_ocEHZ9cujtqicXvDuJUm5pg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_802), T27_, 1);
	{
		NIM_BOOL T30_;
		T30_ = (NIM_BOOL)0;
		T30_ = writeRope_xVzCd39bh3ndCAWl6XETYRg(result, (*m).filename);
		if (!!(T30_)) goto LA31_;
		rawMessage_h30HgTFwbGq0PsyHmRqZ8g((*(*m).g).config, ((tyEnum_TMsgKind_29cbg2fC1z5iM1PAI28kR5w) 3), (*m).filename);
	}
	LA31_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, cgenWriteModules_f9b9ctpv6DQPmjwWpbkP6UPw)(RootObj* backend, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config) {
	tyObject_BModuleListcolonObjectType__CpP4eJLbv5ZwofQXpESuGA* g;
	g = ((tyObject_BModuleListcolonObjectType__CpP4eJLbv5ZwofQXpESuGA*) (backend));
	asgnRef((void**) (&(*g).config), config);
	{
		if (!!(((*g).generatedHeader == NIM_NIL))) goto LA3_;
		finishModule_Uk2KC544lDJr1joRO9bvANQ_2((*g).generatedHeader);
	}
	LA3_: ;
	{
		while (1) {
			if (!(((NI) 0) < (*g).forwardedProcsCounter)) goto LA6;
			{
				tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m;
				m = (tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A*)0;
				{
					NI i;
					NI colontmp_;
					NI T9_;
					NI res;
					i = (NI)0;
					colontmp_ = (NI)0;
					T9_ = (((*g).modules ? (*g).modules->Sup.len : 0)-1);
					colontmp_ = T9_;
					res = ((NI) 0);
					{
						while (1) {
							if (!(res <= colontmp_)) goto LA11;
							i = res;
							{
								if (!!(((*g).modules->data[i] == NIM_NIL))) goto LA14_;
								m = (*g).modules->data[i];
								finishModule_Uk2KC544lDJr1joRO9bvANQ_2(m);
							}
							LA14_: ;
							res += ((NI) 1);
						} LA11: ;
					}
				}
			}
		} LA6: ;
	}
	{
		tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m_2;
		m_2 = (tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A*)0;
		{
			NI i_2;
			NI colontmp__2;
			NI T18_;
			NI res_2;
			i_2 = (NI)0;
			colontmp__2 = (NI)0;
			T18_ = (((*g).modules ? (*g).modules->Sup.len : 0)-1);
			colontmp__2 = T18_;
			res_2 = ((NI) 0);
			{
				while (1) {
					if (!(res_2 <= colontmp__2)) goto LA20;
					i_2 = res_2;
					{
						if (!!(((*g).modules->data[i_2] == NIM_NIL))) goto LA23_;
						m_2 = (*g).modules->data[i_2];
						writeModule_OYDkNxqPpixZGOgH0HYQvQ(m_2, NIM_TRUE);
					}
					LA23_: ;
					res_2 += ((NI) 1);
				} LA20: ;
			}
		}
	}
	writeMapping_LBHXhYTVO2vldQU4a5LZ9aQ(config, (*g).mapping);
	{
		if (!!(((*g).generatedHeader == NIM_NIL))) goto LA27_;
		writeHeader_Uk2KC544lDJr1joRO9bvANQ_8((*g).generatedHeader);
	}
	LA27_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, compiler_cgenInit000)(void) {
{
	TFrame FR_; FR_.len = 0;
}
}

N_LIB_PRIVATE N_NIMCALL(void, compiler_cgenDatInit000)(void) {
}

