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

#include "nimbase.h"
#include <string.h>
#include <stdio.h>
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef far
#undef powerpc
#undef unix
#define nimfr_(x, y)
#define nimln_(x, y)
typedef struct tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w;
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__fdKWDDO1P17zvuQPReVgRA tyObject_Table__fdKWDDO1P17zvuQPReVgRA;
typedef struct tySequence__fdmz6VkIf1ewwrssKYqRFg tySequence__fdmz6VkIf1ewwrssKYqRFg;
typedef struct tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ;
typedef struct tySequence__kxu4GK0onha2t9bo86mdVAg tySequence__kxu4GK0onha2t9bo86mdVAg;
typedef struct tySequence__48JTohSgTy339bRxHzUD8KA tySequence__48JTohSgTy339bRxHzUD8KA;
typedef struct 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__IioUJGdqPI6xC7S7QF8MBw tyObject_Table__IioUJGdqPI6xC7S7QF8MBw;
typedef struct tySequence__Qr6E8eH7btq79cFKGaJfGLw tySequence__Qr6E8eH7btq79cFKGaJfGLw;
typedef struct tyObject_Table__G1v8c16HePOldLeucwe05Q tyObject_Table__G1v8c16HePOldLeucwe05Q;
typedef struct tySequence__fIB1rTQ55aFonoft9a9bmljQ tySequence__fIB1rTQ55aFonoft9a9bmljQ;
typedef struct tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA;
typedef struct tySequence__23SMqauuRsbDANhthj9bWlA tySequence__23SMqauuRsbDANhthj9bWlA;
typedef struct tyObject_Table__NttoEzoiq5CiphZe81oadg tyObject_Table__NttoEzoiq5CiphZe81oadg;
typedef struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA tySequence__squ9b9bUH4OLHf6cEMrt6hVA;
typedef struct tyObject_Table__nagDFX4QHx0s6Fvma9blmSg tyObject_Table__nagDFX4QHx0s6Fvma9blmSg;
typedef struct tySequence__pHNq3oXj9av2sEUdqaqeZjw tySequence__pHNq3oXj9av2sEUdqaqeZjw;
typedef struct tySequence__PzqTLBFNawCGiqTk0UORYw tySequence__PzqTLBFNawCGiqTk0UORYw;
typedef struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q;
typedef struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ;
typedef struct tyTuple__ubXr9bFCXs9bc35NkwsYmx2Q tyTuple__ubXr9bFCXs9bc35NkwsYmx2Q;
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__SHVxAqOYtIy7teT1q4s0zQ tySequence__SHVxAqOYtIy7teT1q4s0zQ;
typedef struct tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow;
typedef struct tyObject_Table__6nOsw5R7jH72bux7HSST9bg tyObject_Table__6nOsw5R7jH72bux7HSST9bg;
typedef struct tySequence__diqJJ1bWuFP7M6rQDS9cBLQ tySequence__diqJJ1bWuFP7M6rQDS9cBLQ;
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 tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA;
typedef struct tySequence__sII3pVVRkIdBZ2HDPdZddA tySequence__sII3pVVRkIdBZ2HDPdZddA;
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_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA;
typedef struct tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA;
typedef struct tySequence__KjgUMUjT3LUKOFIK4xt5ug tySequence__KjgUMUjT3LUKOFIK4xt5ug;
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_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg;
typedef struct tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A;
typedef struct tySequence__tNFrR3kRuS1FSwuiLGoSSA tySequence__tNFrR3kRuS1FSwuiLGoSSA;
typedef struct tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA;
typedef struct tySequence__7lEisrXlQEzwtUKW5pzRCw tySequence__7lEisrXlQEzwtUKW5pzRCw;
typedef struct tySequence__Zi9cGbCWofbtABoHJ5RbLNQ tySequence__Zi9cGbCWofbtABoHJ5RbLNQ;
typedef struct tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg;
typedef struct tySequence__4eRCaZmrYLLw2k30GPTiMw tySequence__4eRCaZmrYLLw2k30GPTiMw;
typedef struct tySequence__pK3qSsBZwdXd6qyUMkd5Jw tySequence__pK3qSsBZwdXd6qyUMkd5Jw;
typedef struct tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ;
typedef struct tyObject_TBlock__GFhahvekTq3dDOkWyhchMA tyObject_TBlock__GFhahvekTq3dDOkWyhchMA;
typedef struct tyTuple__FxkU4d1VDodDMc9ah6Mbagw tyTuple__FxkU4d1VDodDMc9ah6Mbagw;
typedef struct tySequence__MvZmat48bhe9b6x9aUD58D5Q tySequence__MvZmat48bhe9b6x9aUD58D5Q;
typedef struct tyObject_Int128__9a9axPfb75jdWY25AamJewkA tyObject_Int128__9a9axPfb75jdWY25AamJewkA;
typedef struct tyTuple__Iz0jrTw3w7v6sMzjrqs0nA tyTuple__Iz0jrTw3w7v6sMzjrqs0nA;
typedef struct tyTuple__7q7q3E6Oj24ZNVJb9aonhAg tyTuple__7q7q3E6Oj24ZNVJb9aonhAg;
typedef struct tyTuple__5L3fCt9bX0gyEcO30ervPLw tyTuple__5L3fCt9bX0gyEcO30ervPLw;
typedef struct tyTuple__kN8up2W6YKc5YA9avn5mV5w tyTuple__kN8up2W6YKc5YA9avn5mV5w;
typedef struct tyObject_TTraversalClosure__xQv4a9atAYFpL11GCS9cY9bCg tyObject_TTraversalClosure__xQv4a9atAYFpL11GCS9cY9bCg;
typedef struct tyTuple__yByxe8FSFNTgs4tcAkTYag tyTuple__yByxe8FSFNTgs4tcAkTYag;
typedef struct tySequence__6H5Oh5UUvVCLiakt9aTwtUQ tySequence__6H5Oh5UUvVCLiakt9aTwtUQ;
typedef struct tyTuple__zwpS6d6iewrdlBSTNFoyVA tyTuple__zwpS6d6iewrdlBSTNFoyVA;
typedef struct tySequence__sno9c9bXUVS2CqhtWOJadaCw tySequence__sno9c9bXUVS2CqhtWOJadaCw;
typedef struct tyTuple__9cSd9cjH9cnPQaBRO0ioKSxRA tyTuple__9cSd9cjH9cnPQaBRO0ioKSxRA;
typedef struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q;
typedef struct tyObject_Env_cgendotnim___IDX4istqRyOZp3l6j9aUesw tyObject_Env_cgendotnim___IDX4istqRyOZp3l6j9aUesw;
typedef struct tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg;
typedef struct tyTuple__UpiOGlu5Ux6DLM73wSrdpg tyTuple__UpiOGlu5Ux6DLM73wSrdpg;
typedef struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ tyTuple__xDU9bZmv1ZbZkJDaATBekIQ;
typedef struct tyTuple__quA39a2QdEQU9cSEIUSibApQ tyTuple__quA39a2QdEQU9cSEIUSibApQ;
typedef struct tyTuple__EkGTYRWQ6y9cppXTlT8Xm5g tyTuple__EkGTYRWQ6y9cppXTlT8Xm5g;
typedef struct tyTuple__OJFzEczluV8Jmo9bRpBfkzw tyTuple__OJFzEczluV8Jmo9bRpBfkzw;
typedef struct tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw;
typedef struct tyTuple__F3gkSrMB1qp2Tvf9bixVXwg tyTuple__F3gkSrMB1qp2Tvf9bixVXwg;
typedef struct tyTuple__wcNatyuf8WOqAhGLhSvgiw tyTuple__wcNatyuf8WOqAhGLhSvgiw;
typedef struct tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg;
typedef struct tyObject_NodecolonObjectType___dNELmBSmY7nthjhZupWO6g tyObject_NodecolonObjectType___dNELmBSmY7nthjhZupWO6g;
typedef struct tyTuple__euPCXX9bc3XzndEhYlqNS7g tyTuple__euPCXX9bc3XzndEhYlqNS7g;
typedef struct tyTuple__4keOEuB8uAwYehpErwqI9ag tyTuple__4keOEuB8uAwYehpErwqI9ag;
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__z822nu9bFF1AlQnLrHjdwpA tyTuple__z822nu9bFF1AlQnLrHjdwpA;
typedef struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw tyTuple__xYhUhS7X82rKTqbT9bRfCnw;
typedef struct tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw;
typedef struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw tyTuple__QeWl6B6ffS4pU6WWrtcrDw;
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__fdKWDDO1P17zvuQPReVgRA {
tySequence__fdmz6VkIf1ewwrssKYqRFg* data;
NI counter;
};
struct tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ {
tySequence__kxu4GK0onha2t9bo86mdVAg* data;
NI counter;
};
typedef struct {
N_NIMCALL_PTR(NIM_BOOL, ClP_0) (void* ClE_0);
void* ClE_0;
} tyProc__xdLb0cyzx3FuM6Q4NnRTpQ;
typedef tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* tyArray__OLX364rHC66WkzRbMp49aQg[64];
typedef tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* tyArray__6GDJmNRiFxkWAAdMgUie8g[70];
struct tyObject_IncrementalCtx__sdH7TnbKACuAzE7DBabnCA {
char dummy;
};
struct tyObject_Table__IioUJGdqPI6xC7S7QF8MBw {
tySequence__Qr6E8eH7btq79cFKGaJfGLw* data;
NI counter;
};
struct tyObject_Table__G1v8c16HePOldLeucwe05Q {
tySequence__fIB1rTQ55aFonoft9a9bmljQ* data;
NI counter;
};
typedef N_NIMCALL_PTR(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, tyProc__c6vdo1yHyj19b9bS17tijS2w) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* m, NI32 fileIdx);
typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__d5yEkT9aXkAtHvVerr7IeCQ) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* m, NI32 fileIdx);
typedef N_NIMCALL_PTR(void, tyProc__sP1I7TbCn358eLy9bX4IphA) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
struct tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA {
tySequence__23SMqauuRsbDANhthj9bWlA* data;
NI counter;
};
struct tyObject_Table__NttoEzoiq5CiphZe81oadg {
tySequence__squ9b9bUH4OLHf6cEMrt6hVA* data;
NI counter;
};
struct tyObject_Table__nagDFX4QHx0s6Fvma9blmSg {
tySequence__pHNq3oXj9av2sEUdqaqeZjw* data;
NI counter;
};
typedef N_NIMCALL_PTR(void, tyProc__R9aa9aO9cNhvWgTGK9bAAvuSRA) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
typedef N_NIMCALL_PTR(void, tyProc__gSRciuQJWoGdSES9cKZObDA) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* assumptions, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* toProve, tyTuple__ubXr9bFCXs9bc35NkwsYmx2Q* Result);
typedef N_NIMCALL_PTR(void, tyProc__1WzpMcp9cPe19cAmEzHWVDNQ) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* assumptions, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* call, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* requirement, tyTuple__ubXr9bFCXs9bc35NkwsYmx2Q* Result);
typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__3TeLOx1euAsRk3YCaQCuPg) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* formal, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* actual);
struct tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ {
tySequence__DfgJFJEYoj4YBAHLZPl5lQ* modules;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA packageSyms;
tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg deps;
tyObject_Table__fdKWDDO1P17zvuQPReVgRA importDeps;
NIM_BOOL suggestMode;
NIM_BOOL invalidTransitiveClosure;
tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ inclToMod;
tySequence__48JTohSgTy339bRxHzUD8KA* importStack;
RootObj* backend;
tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config;
tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache;
RootObj* vm;
tyProc__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;
tyObject_Table__IioUJGdqPI6xC7S7QF8MBw canonTypes;
tyObject_Table__G1v8c16HePOldLeucwe05Q symBodyHashes;
tyProc__c6vdo1yHyj19b9bS17tijS2w importModuleCallback;
tyProc__d5yEkT9aXkAtHvVerr7IeCQ includeFileCallback;
tyProc__sP1I7TbCn358eLy9bX4IphA recordStmt;
tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA cacheSeqs;
tyObject_Table__NttoEzoiq5CiphZe81oadg cacheCounters;
tyObject_Table__nagDFX4QHx0s6Fvma9blmSg cacheTables;
tySequence__PzqTLBFNawCGiqTk0UORYw* passes;
tyProc__R9aa9aO9cNhvWgTGK9bAAvuSRA onDefinition;
tyProc__R9aa9aO9cNhvWgTGK9bAAvuSRA onDefinitionResolveForward;
tyProc__R9aa9aO9cNhvWgTGK9bAAvuSRA onUsage;
tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* globalDestructors;
tyProc__gSRciuQJWoGdSES9cKZObDA proofEngine;
tyProc__1WzpMcp9cPe19cAmEzHWVDNQ requirementsCheck;
tyProc__3TeLOx1euAsRk3YCaQCuPg compatibleProps;
};
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__6nOsw5R7jH72bux7HSST9bg {
tySequence__diqJJ1bWuFP7M6rQDS9cBLQ* 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__SHVxAqOYtIy7teT1q4s0zQ* modules;
tySequence__SHVxAqOYtIy7teT1q4s0zQ* modulesClosed;
tySequence__DfgJFJEYoj4YBAHLZPl5lQ* forwardedProcs;
tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* generatedHeader;
tyObject_Table__6nOsw5R7jH72bux7HSST9bg 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;
NI zctThreshold;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
NI recGcLock;
tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
NI gcThreadId;
};
typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w {
  RootObj Sup;
};
typedef tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* tyArray__pujFC2IN5RzE4MXkqaMD9aQ[20];
typedef NU8 tySet_tyEnum_CodegenFlag__9c7EibnXBApMXwrQsaaMb6Q;
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA {
tySequence__sII3pVVRkIdBZ2HDPdZddA* data;
NI counter;
};
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;
NIM_BOOL isSorted;
};
struct tyObject_NdiFile__9cEuXfAnHp9bnWFK409cMtsEw {
NIM_BOOL enabled;
FILE* f;
NimStringDesc* buf;
NimStringDesc* filename;
tySequence__DfgJFJEYoj4YBAHLZPl5lQ* syms;
};
struct tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow {
  tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w Sup;
tyArray__pujFC2IN5RzE4MXkqaMD9aQ s;
tySet_tyEnum_CodegenFlag__9c7EibnXBApMXwrQsaaMb6Q 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;
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* hcrCreateTypeInfosProc;
NIM_BOOL inHcrInitGuard;
tySequence__Ef05srmQTDulnBdXR4Ja6Q* typeStack;
tyObject_TNodeTable__wN7B39cKxLpMkvKNm9bduZ0A dataCache;
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;
};
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;
};
struct tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w {
  tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA Sup;
tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind;
union{
struct {tySequence__Ef05srmQTDulnBdXR4Ja6Q* typeInstCache;
} _kind_1;
struct {tySequence__DXS6mEo7PVUFJkirsQ9bNQA* procInstCache;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* gcUnsafetyReason;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* transformedBody;
} _kind_2;
struct {tySequence__DXS6mEo7PVUFJkirsQ9bNQA* usedGenerics;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA tab;
} _kind_3;
struct {tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* guard;
NI bitsize;
NI alignment;
} _kind_4;
};
tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic;
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* name;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner;
tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw flags;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ast;
tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
NI position;
NI offset;
tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA* annex;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* constraint;
};
typedef NU8 tySet_tyEnum_TCProcFlag__LgBeaca7tT1nUR7RL1RjPQ;
struct tyObject_CountTable__chlLjy9bvnFM9b9bSZfiIkyGg {
tySequence__jwzrUFjG9akTIJTBBFvvqxw* data;
NI counter;
NIM_BOOL isSorted;
};
struct tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q {
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* prc;
tySet_tyEnum_TCProcFlag__LgBeaca7tT1nUR7RL1RjPQ flags;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q lastLineInfo;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q currLineInfo;
tySequence__KjgUMUjT3LUKOFIK4xt5ug* nestedTryStmts;
tySequence__WwUFq9cJ2xKRlsAWVEHyPRg* finallySafePoints;
NI labels;
tySequence__oUyaggHmIX9bpJcMeoG6lpA* blocks;
NI breakIdx;
tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* module;
NI withinLoop;
NI splitDecls;
NI withinTryWithExcept;
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__tNFrR3kRuS1FSwuiLGoSSA* msgContext;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q lastError;
tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA filenameToIndexTbl;
tySequence__Zi9cGbCWofbtABoHJ5RbLNQ* fileInfos;
NI32 systemFileIdx;
};
typedef NU8 tyEnum_TCommands__VH3ghgQVwLSg3krOAoXigw;
typedef NU8 tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw;
typedef NU8 tyEnum_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ;
typedef NU8 tyEnum_SymbolFilesOption__gBES9bqm1ru9ape8SeMRAFgQ;
struct tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg {
tySequence__4eRCaZmrYLLw2k30GPTiMw* data;
NI counter;
};
typedef NU16 tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ;
typedef NU8 tySet_tyEnum_LegacyFeature__hGCD9aOrxPvpXn4Ne6W6OVA;
typedef NU8 tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ;
typedef NU8 tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA;
typedef NU8 tySet_tyEnum_TMsgKind__9aTDTIqNJIW9bjpBdW7rixiA[9];
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* result, void* ClE_0);
void* ClE_0;
} tyProc__QYEVXrYc9beQ379crS3rzqRA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (NimStringDesc* output, void* ClE_0);
void* ClE_0;
} tyProc__Q1W5D85O9cNu3iq9cZ9alS9aWA;
typedef NU8 tyEnum_Severity__x5BWBPGAbIH9clm5pmNp5DA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* msg, tyEnum_Severity__x5BWBPGAbIH9clm5pmNp5DA severity, void* ClE_0);
void* ClE_0;
} tyProc__22mgIiTBBoqNe1T0FSw9ahQ;
struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw {
tyObject_Target__9abOl5DLX8suLujOaHSvGzw target;
NI linesCompiled;
tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
tySet_tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw globalOptions;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* macrosToExpand;
tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A m;
NI evalTemplateCounter;
NI evalMacroCounter;
NI8 exitcode;
tyEnum_TCommands__VH3ghgQVwLSg3krOAoXigw cmd;
tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw selectedGC;
tyEnum_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ exc;
NI verbosity;
NI numberOfProcessors;
NimStringDesc* evalExpr;
NF lastCmdTime;
tyEnum_SymbolFilesOption__gBES9bqm1ru9ape8SeMRAFgQ symbolFiles;
tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg cppDefines;
NimStringDesc* headerFile;
tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ features;
tySet_tyEnum_LegacyFeature__hGCD9aOrxPvpXn4Ne6W6OVA legacyFeatures;
NimStringDesc* arguments;
tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ ideCmd;
NIM_BOOL oldNewlines;
tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA cCompiler;
tySet_tyEnum_TMsgKind__9aTDTIqNJIW9bjpBdW7rixiA modifiedyNotes;
tySet_tyEnum_TMsgKind__9aTDTIqNJIW9bjpBdW7rixiA cmdlineNotes;
tySet_tyEnum_TMsgKind__9aTDTIqNJIW9bjpBdW7rixiA foreignPackageNotes;
tySet_tyEnum_TMsgKind__9aTDTIqNJIW9bjpBdW7rixiA notes;
tySet_tyEnum_TMsgKind__9aTDTIqNJIW9bjpBdW7rixiA mainPackageNotes;
NI mainPackageId;
NI errorCounter;
NI hintCounter;
NI warnCounter;
NI errorMax;
NI maxLoopIterationsVM;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* configVars;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* symbols;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* packageCache;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* nimblePaths;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* searchPaths;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* lazyPaths;
NimStringDesc* outFile;
NimStringDesc* outDir;
NimStringDesc* prefixDir;
NimStringDesc* libpath;
NimStringDesc* nimcacheDir;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* dllOverrides;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* moduleOverrides;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* cfileSpecificOptions;
NimStringDesc* projectName;
NimStringDesc* projectPath;
NimStringDesc* projectFull;
NIM_BOOL projectIsStdin;
NI32 projectMainIdx;
NimStringDesc* command;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* commandArgs;
NimStringDesc* commandLine;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* extraCmds;
NIM_BOOL keepComments;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* implicitImports;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* implicitIncludes;
NimStringDesc* docSeeSrcUrl;
NimStringDesc* docRoot;
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__9c7EibnXBApMXwrQsaaMb6Q;
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;
} _kind_1;
struct {NF floatVal;
} _kind_2;
struct {NimStringDesc* strVal;
} _kind_3;
struct {tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym;
} _kind_4;
struct {tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* ident;
} _kind_5;
struct {tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* sons;
} _kind_6;
};
NimStringDesc* comment;
};
typedef NU8 tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw[21];
typedef NU8 tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg;
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;
};
typedef tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* tyArray__JiWwrsTRC6xqNlGcBthSVA[1];
typedef tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* tyArray__qTjAvTvKF9anytN1At69aJMQ[1];
typedef NU8 tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg;
struct tyTuple__FxkU4d1VDodDMc9ah6Mbagw {
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* Field0;
NIM_BOOL Field1;
NI Field2;
};
typedef NU8 tyEnum_TMsgKind__9aTDTIqNJIW9bjpBdW7rixiA;
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 NU64 tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag;
typedef NU8 tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag;
typedef NU8 tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA;
typedef NU64 tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
typedef tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* tyArray__PsPyPA45AAjHu4uDGHNjTg[6];
struct tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ {
  tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA Sup;
tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind;
tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA callConv;
tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw flags;
tySequence__Ef05srmQTDulnBdXR4Ja6Q* sons;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym;
tyArray__PsPyPA45AAjHu4uDGHNjTg attachedOps;
tySequence__MvZmat48bhe9b6x9aUD58D5Q* methods;
NI64 size;
NI16 align;
NI16 paddingAtEnd;
NI16 lockLevel;
tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typeInst;
NI uniqueId;
};
typedef NU8 tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw;
typedef NU8 tySet_tyEnum_ConsiderFlag__9a9az8WnKmq9bvt8EXoSUES7g;
typedef NU32 tyArray__FleBT9cC2nxhgiXmSYYnEKA[4];
struct tyObject_Int128__9a9axPfb75jdWY25AamJewkA {
tyArray__FleBT9cC2nxhgiXmSYYnEKA udata;
};
typedef NU8 tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w;
typedef NU8 tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
typedef tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* tyArray__mrugoXXRZUEeG9bEXo9auBKw[2];
typedef N_NIMCALL_PTR(void, tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ) (void);
typedef tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* tyArray__duFhZXIIlrbrM62cWjNekg[5];
typedef NimStringDesc* tyArray__t1sx1FVcaX4m77XqENedIQ[10];
typedef tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* tyArray__wqYjTJU9ab2ZgEFMaQc3vNA[3];
typedef NU8 tyEnum_ObjConstrMode__9agQ3x8C5KfK9c9a3uY9abfUTw;
typedef NU8 tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw;
struct tyTuple__Iz0jrTw3w7v6sMzjrqs0nA {
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* Field0;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* Field1;
};
struct tyTuple__7q7q3E6Oj24ZNVJb9aonhAg {
NimStringDesc* Field0;
NimStringDesc* Field1;
NimStringDesc* Field2;
};
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__YVLVUFXb56wpTwg4j9bCpYQ[30];
typedef NimStringDesc* tyArray__nHXaesL0DJZHyVS07ARPRA[1];
typedef NU8 tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg;
typedef tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* tyArray__dNfZYyzVYdaWfURv4pxodA[6];
typedef tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* tyArray__f7nG5LD47BH5K9c6mASit3g[4];
struct tyTuple__kN8up2W6YKc5YA9avn5mV5w {
NimStringDesc* Field0;
NI Field1;
NI Field2;
};
struct tyObject_TTraversalClosure__xQv4a9atAYFpL11GCS9cY9bCg {
tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p;
NimStringDesc* visitorFrmt;
};
typedef NU8 tySet_tyEnum_TInfoCCProp__49cn73TjZ7Rt9b8QCAU8tLNg;
struct tyTuple__yByxe8FSFNTgs4tcAkTYag {
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;
NimStringDesc* Field19;
NimStringDesc* Field20;
tySet_tyEnum_TInfoCCProp__49cn73TjZ7Rt9b8QCAU8tLNg Field21;
};
typedef tyTuple__yByxe8FSFNTgs4tcAkTYag tyArray__T6obFRqWmmY1URYbExtG5g[15];
typedef NU8 tyEnum_TInfoCCProp__49cn73TjZ7Rt9b8QCAU8tLNg;
typedef tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* tyArray__YcHYlgE5mhtkt9a3rnoucVg[7];
typedef NU8 tyEnum_TClosureTypeKind__cLHRMz1vnpSK0uePy2qbWw;
typedef NU8 tySet_tyEnum_TAssignmentFlag__Kd9aFyBNhxSsWFh1Km9a2hMw;
typedef NU8 tyEnum_TAssignmentFlag__Kd9aFyBNhxSsWFh1Km9a2hMw;
typedef NU8 tyEnum_InitResultEnum__9c9csRan2YP9boKbiUR9cP6PNg;
typedef NU8 tyEnum_TCProcFlag__LgBeaca7tT1nUR7RL1RjPQ;
typedef NU8 tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w;
typedef NimStringDesc* tyArray__Sjq0yxKksnvb1U6tEMqzYg[14];
typedef NU8 tySet_tyEnum_TRenderFlag__wrPgUo1ExBlHvFnXN2nSHw;
typedef NU8 tyEnum_TAnalysisResult__p9a9bcrXoRmLT4eUuwrDq9b4w;
typedef NU8 tySet_tyChar__nmiMWKVIe46vacnhAFrQvw[32];
typedef NimStringDesc* tyArray__1SeZR8kaOX3FtWvHoBu9c4g[4];
typedef NimStringDesc* tyArray__bKFSxC0i7ZtH3saMnwZufw[7];
typedef NimStringDesc* tyArray__H8bljeYwRVBMsVXxvskZog[2];
typedef tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tyArray__jlWPjgtbdjE069arIWHC9c9bg[1];
struct tyTuple__zwpS6d6iewrdlBSTNFoyVA {
NI Field0;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* Field1;
};
typedef NimStringDesc* tyArray__Tf7McyWEXuMltjAT4dp6Jw[5];
typedef NU8 tyEnum_LegacyFeature__hGCD9aOrxPvpXn4Ne6W6OVA;
typedef NU16 tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw;
typedef NU8 tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g;
struct tyTuple__9cSd9cjH9cnPQaBRO0ioKSxRA {
tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA Field0;
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* Field1;
};
struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q {
NI Field0;
NI32 Field1;
tySequence__48JTohSgTy339bRxHzUD8KA* Field2;
};
struct tyObject_Env_cgendotnim___IDX4istqRyOZp3l6j9aUesw {
  RootObj Sup;
NI colonstate_;
tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m1;
};
typedef struct {
N_NIMCALL_PTR(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, ClP_0) (NimStringDesc* handle, NimStringDesc* name, void* ClE_0);
void* ClE_0;
} tyProc__cTGFl1a233rLFzi7BSxmtg;
typedef N_CLOSURE_PTR(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, TM__MQdRN7fpbG7rPm4JpVVAhA_1183) (NimStringDesc* handle, NimStringDesc* name);
typedef N_CLOSURE_PTR(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, TM__MQdRN7fpbG7rPm4JpVVAhA_1187) (NimStringDesc* handle, NimStringDesc* name);
typedef NU8 tySet_tyEnum_CfileFlag__Vl9c9ayddDuXiWtnWTsEYGsA;
struct tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg {
NimStringDesc* nimname;
NimStringDesc* cname;
NimStringDesc* obj;
tySet_tyEnum_CfileFlag__Vl9c9ayddDuXiWtnWTsEYGsA flags;
};
typedef NU8 tyEnum_TEndian__bQ3yFYQJojZPNYsZnS7Zjg;
struct tyTuple__UpiOGlu5Ux6DLM73wSrdpg {
NimStringDesc* Field0;
NI Field1;
tyEnum_TEndian__bQ3yFYQJojZPNYsZnS7Zjg Field2;
NI Field3;
NI Field4;
};
typedef tyTuple__UpiOGlu5Ux6DLM73wSrdpg tyArray__NB2DB4s9cLl9bnr5JhKigbhQ[24];
struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ {
NI Field0;
NI32 Field1;
NI32 Field2;
};
struct tyTuple__quA39a2QdEQU9cSEIUSibApQ {
tySequence__DfgJFJEYoj4YBAHLZPl5lQ* Field0;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* Field1;
};
struct tyTuple__EkGTYRWQ6y9cppXTlT8Xm5g {
NI Field0;
tyArray__qtqsWM5aXmcpMIVmvq3kAA Field1;
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* Field2;
};
struct tyTuple__OJFzEczluV8Jmo9bRpBfkzw {
NI Field0;
NI Field1;
tyArray__qtqsWM5aXmcpMIVmvq3kAA Field2;
};
struct tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw {
NI Field0;
NimStringDesc* Field1;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* Field2;
};
struct tyTuple__F3gkSrMB1qp2Tvf9bixVXwg {
NI Field0;
NimStringDesc* Field1;
NI64 Field2;
};
struct tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg {
tyObject_NodecolonObjectType___dNELmBSmY7nthjhZupWO6g* root;
NI entries;
};
struct tyTuple__wcNatyuf8WOqAhGLhSvgiw {
NI Field0;
NimStringDesc* Field1;
tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg Field2;
};
typedef N_NIMCALL_PTR(tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w*, tyProc__8ooe5vdoqmvpHnfXV29bP3w) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* module);
typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__A7Sdoem70tRxSEmKrf9cmyg) (tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* topLevelStmt);
typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__EAEKmBUgKFg29agoUGtzDEQ) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
struct tyTuple__euPCXX9bc3XzndEhYlqNS7g {
tyProc__8ooe5vdoqmvpHnfXV29bP3w Field0;
tyProc__A7Sdoem70tRxSEmKrf9cmyg Field1;
tyProc__EAEKmBUgKFg29agoUGtzDEQ Field2;
NIM_BOOL Field3;
};
struct tyTuple__ubXr9bFCXs9bc35NkwsYmx2Q {
NIM_BOOL Field0;
NimStringDesc* Field1;
};
struct tyTuple__4keOEuB8uAwYehpErwqI9ag {
NI Field0;
tyArray__qtqsWM5aXmcpMIVmvq3kAA Field1;
tyTuple__Iz0jrTw3w7v6sMzjrqs0nA 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__z822nu9bFF1AlQnLrHjdwpA {
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q Field0;
NimStringDesc* Field1;
};
struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw {
NI Field0;
NimStringDesc* Field1;
NI32 Field2;
};
struct tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw {
NimStringDesc* fullPath;
NimStringDesc* projPath;
NimStringDesc* shortName;
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* quotedName;
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* quotedFullName;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* lines;
NimStringDesc* dirtyFile;
NimStringDesc* hash;
NIM_BOOL dirty;
};
struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw {
NI Field0;
NimStringDesc* Field1;
};
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
  TGenericSeq Sup;
  NimStringDesc* data[SEQ_DECL_SIZE];
};
struct tySequence__Ef05srmQTDulnBdXR4Ja6Q {
  TGenericSeq Sup;
  tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* data[SEQ_DECL_SIZE];
};
struct tySequence__SHVxAqOYtIy7teT1q4s0zQ {
  TGenericSeq Sup;
  tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* data[SEQ_DECL_SIZE];
};
struct tySequence__oUyaggHmIX9bpJcMeoG6lpA {
  TGenericSeq Sup;
  tyObject_TBlock__GFhahvekTq3dDOkWyhchMA data[SEQ_DECL_SIZE];
};
struct tySequence__DfgJFJEYoj4YBAHLZPl5lQ {
  TGenericSeq Sup;
  tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* data[SEQ_DECL_SIZE];
};
struct tySequence__WwUFq9cJ2xKRlsAWVEHyPRg {
  TGenericSeq Sup;
  tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* data[SEQ_DECL_SIZE];
};
struct tySequence__6H5Oh5UUvVCLiakt9aTwtUQ {
  TGenericSeq Sup;
  NU8 data[SEQ_DECL_SIZE];
};
struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ {
  TGenericSeq Sup;
  tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
};
struct tySequence__MvZmat48bhe9b6x9aUD58D5Q {
  TGenericSeq Sup;
  tyTuple__zwpS6d6iewrdlBSTNFoyVA data[SEQ_DECL_SIZE];
};
struct tySequence__sno9c9bXUVS2CqhtWOJadaCw {
  TGenericSeq Sup;
  tyTuple__9cSd9cjH9cnPQaBRO0ioKSxRA data[SEQ_DECL_SIZE];
};
struct tySequence__KjgUMUjT3LUKOFIK4xt5ug {
  TGenericSeq Sup;
  tyTuple__FxkU4d1VDodDMc9ah6Mbagw data[SEQ_DECL_SIZE];
};
struct tySequence__48JTohSgTy339bRxHzUD8KA {
  TGenericSeq Sup;
  NI32 data[SEQ_DECL_SIZE];
};
struct tySequence__9brg1xNurxcus33lU4IE1Dw {
  TGenericSeq Sup;
  tyObject_Trunk__ul49aWfv9aes8cutmeltT3gQ* data[SEQ_DECL_SIZE];
};
struct tySequence__fdmz6VkIf1ewwrssKYqRFg {
  TGenericSeq Sup;
  tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q data[SEQ_DECL_SIZE];
};
struct tySequence__kxu4GK0onha2t9bo86mdVAg {
  TGenericSeq Sup;
  tyTuple__xDU9bZmv1ZbZkJDaATBekIQ data[SEQ_DECL_SIZE];
};
struct tySequence__bWZXqEvLFwhLvAqSRoFNgQ {
  TGenericSeq Sup;
  tyTuple__quA39a2QdEQU9cSEIUSibApQ data[SEQ_DECL_SIZE];
};
struct tySequence__Qr6E8eH7btq79cFKGaJfGLw {
  TGenericSeq Sup;
  tyTuple__EkGTYRWQ6y9cppXTlT8Xm5g data[SEQ_DECL_SIZE];
};
struct tySequence__fIB1rTQ55aFonoft9a9bmljQ {
  TGenericSeq Sup;
  tyTuple__OJFzEczluV8Jmo9bRpBfkzw data[SEQ_DECL_SIZE];
};
struct tySequence__23SMqauuRsbDANhthj9bWlA {
  TGenericSeq Sup;
  tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw data[SEQ_DECL_SIZE];
};
struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA {
  TGenericSeq Sup;
  tyTuple__F3gkSrMB1qp2Tvf9bixVXwg data[SEQ_DECL_SIZE];
};
struct tySequence__pHNq3oXj9av2sEUdqaqeZjw {
  TGenericSeq Sup;
  tyTuple__wcNatyuf8WOqAhGLhSvgiw data[SEQ_DECL_SIZE];
};
struct tySequence__PzqTLBFNawCGiqTk0UORYw {
  TGenericSeq Sup;
  tyTuple__euPCXX9bc3XzndEhYlqNS7g data[SEQ_DECL_SIZE];
};
struct tySequence__diqJJ1bWuFP7M6rQDS9cBLQ {
  TGenericSeq Sup;
  tyTuple__4keOEuB8uAwYehpErwqI9ag 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__tNFrR3kRuS1FSwuiLGoSSA {
  TGenericSeq Sup;
  tyTuple__z822nu9bFF1AlQnLrHjdwpA data[SEQ_DECL_SIZE];
};
struct tySequence__7lEisrXlQEzwtUKW5pzRCw {
  TGenericSeq Sup;
  tyTuple__xYhUhS7X82rKTqbT9bRfCnw data[SEQ_DECL_SIZE];
};
struct tySequence__Zi9cGbCWofbtABoHJ5RbLNQ {
  TGenericSeq Sup;
  tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw data[SEQ_DECL_SIZE];
};
struct tySequence__4eRCaZmrYLLw2k30GPTiMw {
  TGenericSeq Sup;
  tyTuple__QeWl6B6ffS4pU6WWrtcrDw data[SEQ_DECL_SIZE];
};
struct tySequence__pK3qSsBZwdXd6qyUMkd5Jw {
  TGenericSeq Sup;
  tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg data[SEQ_DECL_SIZE];
};
N_LIB_PRIVATE N_NIMCALL(tyObject_BModuleListcolonObjectType___CpP4eJLbv5ZwofQXpESuGA*, newModuleList__pKl1ntXN7hbkEFOmcSlHSg)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef__AT1eRuflKWyTTBdLjEDZbg_3system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(NI, pluspercent___dgYAo7RfdUVVpvkfKDym8wsystem)(NI x, NI y);
static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr);
static N_INLINE(NI, minuspercent___dgYAo7RfdUVVpvkfKDym8w_2system)(NI x, NI y);
static N_INLINE(void, decRef__AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(NIM_BOOL, ltpercent___hPljn3JCDQ00ua1R07X9bxQsystem)(NI x, NI y);
static N_INLINE(void, rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_2system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NOINLINE(void, addZCT__Y66tOYFjgwJ0k4aLz4bc0Q)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isObj)(TNimType* obj, TNimType* subclass);
N_LIB_PRIVATE N_NOINLINE(void, raiseObjectConversionError)(void);
N_LIB_PRIVATE N_NIMCALL(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow*, newModule__S73dIOk2nN4g6ZKuvNB9ceA)(tyObject_BModuleListcolonObjectType___CpP4eJLbv5ZwofQXpESuGA* g, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* module, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow*, rawNewModule__S73dIOk2nN4g6ZKuvNB9ceA_2)(tyObject_BModuleListcolonObjectType___CpP4eJLbv5ZwofQXpESuGA* g, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* module, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow*, rawNewModule__a8P0HPhDv3Sesns79bJU0jA)(tyObject_BModuleListcolonObjectType___CpP4eJLbv5ZwofQXpESuGA* g, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* module, NimStringDesc* filename);
N_LIB_PRIVATE 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__M04YC71iJg1N7gBF3HZTngsystem)(void* dest, void* source, NI size);
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___0A9bslyIJ49bWrftLGh13rvg)(tyArray__qtqsWM5aXmcpMIVmvq3kAA u);
N_LIB_PRIVATE N_NIMCALL(void, hashOwner__mSn9a9aX0NBzWqerwPW0qRww_4)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyArray__qtqsWM5aXmcpMIVmvq3kAA Result);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__JE6t4x7Z3v2iVz27Nx0MRAmemory)(void* a, int v, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
static N_INLINE(void, nimGCunrefNoCycle)(void* p);
N_LIB_PRIVATE N_NIMCALL(void, initIntSet__n8oDZMn19bEdodSnrBQB9a1Q)(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* Result);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
N_LIB_PRIVATE N_NIMCALL(void, initTable__ZudPzqPNlpthuJgNIdX3jA)(NI initialSize, tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA* Result);
N_LIB_PRIVATE N_NIMCALL(void, initCountTable__9apu9bmxB0tG2KjdEWuGfVPg)(NI initialSize, tyObject_CountTable__tUMxxU9cRgLolsrW9b7IBGsQ* Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q*, newProc__r9c9cj4fW68RhY7ht9btSvB8w)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* prc, tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* module);
N_LIB_PRIVATE N_NIMCALL(tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg, initProcOptions__qttThLa3xHNEeApwU61sZA)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q*, newPreInitProc__Bb5LmORIEBm1ncSKlFHvVA)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(void, initNodeTable__RsAJjlvhLCgVyd9cZJtMRoQ)(tyObject_TNodeTable__wN7B39cKxLpMkvKNm9bduZ0A* x);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getTempName__ao6gUnuVfQLtZ89c4kaIKfg)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, amp___ShdZ6VrAQkY0nWR9a39b9bGdQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* a, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, rope__KOisMGxcPhz6CcSmxgwEQQ)(NI64 i);
static N_INLINE(NIM_BOOL, nimAddInt)(NI a, NI b, NI* res);
N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, noschangeFileExt)(NimStringDesc* filename, NimStringDesc* ext);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, completeCfilePath__VmrjcznbGOrooG3SBIdEFQ)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* cfile, NIM_BOOL createSubDir);
N_LIB_PRIVATE N_NIMCALL(void, open__jmWVcl5Qp9atJWCEkvq1SfA)(tyObject_NdiFile__9cEuXfAnHp9bnWFK409cMtsEw* f, NimStringDesc* filename, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toFullPath__VW1RaR1l9c9bPnJxr1KuvIrg)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NI32 fileIdx);
N_LIB_PRIVATE N_NOINLINE(void, raiseRangeErrorI)(NI64 i, NI64 a, NI64 b);
N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, setLengthSeqV2)(TGenericSeq* s, TNimType* typ, NI newLen);
N_LIB_PRIVATE N_NOINLINE(void, raiseIndexError2)(NI i, NI n);
static N_INLINE(NIM_BOOL, skipCodegen__nwSFZweO0MiC1cK59cLXWvgpasses)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NIM_BOOL, moduleHasChanged__nJ9czoaD1xFoTuiaDFAAiaApasses)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* module);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDefined__jkXTnxDf8MX1Pmks3s0XxA)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* symbol);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, transformStmt__o9bTtoSsaDmuiyVzV15dOyg_2)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* module, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, injectDestructorCalls__vFi0WDJke19caFCX1tc1FkQ)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hcrOn__a2BRACVCGIuooKjHNmoLsA)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hcrOn__UhPXgqyDuuU9cKcS8FM883w)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(void, addHcrInitGuards__fTdzF9aUiQk4rKtSH3doafQ)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL* inInitGuard);
static N_INLINE(NI, safeLen__P89cqdlERShb9alU3iC0yj8w_2ast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NI, len__P89cqdlERShb9alU3iC0yj8wast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NOINLINE(void, raiseFieldError)(NimStringDesc* f);
N_LIB_PRIVATE N_NIMCALL(void, endBlock__0dpuY9coTlraj8JXIe2BzVw)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p);
static N_INLINE(NIM_BOOL, nimSubInt)(NI a, NI b, NI* res);
N_LIB_PRIVATE N_NIMCALL(void, add__IM4kcMNkkOLJtqdEqSxR8A)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** a, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___KxpxlR6eqq3gRIOYTfR67w)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___IFeEbVhQpPGgxkLehuSiBA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___BYiowJAm8zF7RBRISElaLg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
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(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___ZkZcMxwzInnijXy5kz1K3A)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
static N_INLINE(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**, s__kOyJGmZMM2tMgCKSrvUE3gcgendata)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg s);
static N_INLINE(tyObject_TBlock__GFhahvekTq3dDOkWyhchMA*, X5BX5D___VZz2UCb3YWId9ctIYs8ikogsystem)(tyObject_TBlock__GFhahvekTq3dDOkWyhchMA* s, NI sLen_0, NI i);
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__IM4kcMNkkOLJtqdEqSxR8A_2)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** a, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* b);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A)(NimStringDesc* msg);
N_NIMCALL(NimStringDesc*, rawNewString)(NI cap);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
N_LIB_PRIVATE N_NIMCALL(NI, startBlockInternal__1ygdb876UM9astcNUXtgUBQ)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p);
N_LIB_PRIVATE N_NIMCALL(NI, inExceptBlockLen__1ygdb876UM9astcNUXtgUBQ_2)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p);
N_LIB_PRIVATE N_NIMCALL(void, genStmts__QrTB5DOwbDX9bKAW7PNbuJA)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasHint__nhq3WvyhDl20egvbLwYMMw_2)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyEnum_TMsgKind__9aTDTIqNJIW9bjpBdW7rixiA note);
N_LIB_PRIVATE N_NIMCALL(void, pushInfoContext__uDLK9aoAOWwwFTev4NOwF7Q)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* detail);
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__t9a9a9bxmaOztYOfsfhQUOXXw)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, fillLoc__o49bXuxJYpCizOgQ54UViIg)(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* a, tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg k, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* lode, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r, tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw s);
N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, mangleName__RaNE9b8A430I9bfpgZmdrC1w)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, mangle__GxzvEIRbrShQbyJNboTw7A)(NimStringDesc* name);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, idOrSig__sKAFwdXn9cKHxc9cdaovk69cA)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, NimStringDesc* currentModule, tyObject_CountTable__tUMxxU9cRgLolsrW9b7IBGsQ* sigCollisions);
N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(void, genProcPrototype__TAVDUakAwQnRHDK9cFe6L7g)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym);
N_LIB_PRIVATE N_NIMCALL(void, useHeader__TAVDUakAwQnRHDK9cFe6L7g_2)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getStr__P2DOsHG6Jk4Siab3L2qwUg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a);
N_LIB_PRIVATE N_NIMCALL(void, includeHeader__G5jzmdnwglHVk5qfDcXonA)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* this_0, NimStringDesc* header);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, getModule__xfh8ar7fDxVX2A4OO9b5sqQ)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsOrIncl__VFt0uM7bgfJ5age9alOsU9cg)(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* s, NI key);
N_LIB_PRIVATE N_NIMCALL(void, cgFormatValue__GOaK9aDgu4cLOYhocodpf3Q)(NimStringDesc** result, NimStringDesc* value);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isReloadable__bilAk8nY4d5fxUpVg9bnphQ)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* prc);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_LIB_PRIVATE N_NIMCALL(void, cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ)(NimStringDesc** result, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* value);
N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
static N_INLINE(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, pop__9c4Y4hTtvRqjj2EC8KP9aqDAsystem)(tySequence__WwUFq9cJ2xKRlsAWVEHyPRg** s);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getTypeDesc__jXUNYqSX189axAU8O9bJBgpA)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getTypeDescAux__BpNtboTsUfmvl9cmcZf9bOSQ)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* origTyp, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* check);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kinds);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isImportedCppType__IafZhvqpthq9b9c13SFhzAOw)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(void, internalError__5hPl6LjCYJxMYxh9af9b9bXzw)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* errMsg);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, typeToString__QlvraUan7WbHowhAbvDvdA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
N_LIB_PRIVATE N_NIMCALL(void, hashType__UdooXLclXL8uld7qLI5JRw)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tySet_tyEnum_ConsiderFlag__9a9az8WnKmq9bvt8EXoSUES7g flags, tyArray__qtqsWM5aXmcpMIVmvq3kAA Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getTypePre__zLenRlTUJy0Mn9b8JKwzEcQ)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyArray__qtqsWM5aXmcpMIVmvq3kAA sig);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, typeNameOrLiteral__HJRyQju7CXfTTxFyPP3IJQ)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, NimStringDesc* literal);
N_LIB_PRIVATE N_NIMCALL(NI, detectStrVersion__V25kMWfh1jWVNQQI5BNfLg)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, getCompilerProc__4qXS5VHrKJ5hq9crvvz8tIA)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, NimStringDesc* name);
N_LIB_PRIVATE N_NIMCALL(NI, toInt__TIX0sFuRf3uBpOBltYp7bw)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, getInt__Ml9bTZ5dXYSLBfnGRkErokw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, cgsym__arLmPq9aJc9b7GpWTbo6dvHg)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, NimStringDesc* name);
N_LIB_PRIVATE N_NIMCALL(void, genProc__HbYPOpwLApFuBkISFGrmEQ)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* prc);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isActivated__FP3Xc9c0yhzvB6NLyfQJkYw)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* prc);
N_LIB_PRIVATE N_NIMCALL(void, addForwardedProc__HbYPOpwLApFuBkISFGrmEQ_2)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* prc);
N_LIB_PRIVATE N_NIMCALL(void, genProcNoForward__HbYPOpwLApFuBkISFGrmEQ_3)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* prc);
N_LIB_PRIVATE N_NIMCALL(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow*, findPendingModule__Dhy9cmzSsJkQqlfDq047WUA)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(void, genProcAux__HbYPOpwLApFuBkISFGrmEQ_4)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* prc);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genProcHeader__OWG529cW3RTHLgDJuQoIH8A)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* prc, NIM_BOOL asPtr);
N_LIB_PRIVATE N_NIMCALL(void, add__yG4AKzsBRS1W4MANDlXQeg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** a, NimStringDesc* b);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isNonReloadable__bilAk8nY4d5fxUpVg9bnphQ_2)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* prc);
N_LIB_PRIVATE N_NIMCALL(void, genProcParams__uApDq1rn2zPxULBMpTSrxQ)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* 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(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lt___nr9cP9b0OL9cabygV9bo19cJgZA_3)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NI64 b);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, firstOrd__hjogdnp59cMX1rwmjikBhqw)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsGarbageCollectedRef__IVXYI9cxSeivThgKCncHRnA_2)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
static N_INLINE(NIM_BOOL, isObjLackingTypeField__kS4QQNg40ThwD2ps8HD9aQgcgen)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isPureObject__IVXYI9cxSeivThgKCncHRnA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___G9aA37gQrW88KHzpCAwhgjQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, internalError__yTu5SGHF0j0P9cQrqN7YylA)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* errMsg);
static N_INLINE(NIM_BOOL, isCompileTimeOnly__F9ciDIanrWYqbJ4rgLlNAAg_3types)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___PoDv5ydEvGdd9aiIF9cOiAPw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, mangleParamName__RaNE9b8A430I9bfpgZmdrC1w_2)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isKeyword__plkNLyLwnwkMYELCfG4Gxw)(tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* w);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__RafAVeUVSno4B47UdPqNlg)(tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg s, NimStringDesc* key);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw, paramStorageLoc__lQqiacOo5FnwNzTrDjiPvw)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* param);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, ccgIntroducedPtr__W9aw79b629bysnh3DDOpE3OTg)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* retType);
static N_INLINE(NIM_BOOL, nimMulInt)(NI a, NI b, NI* res);
static N_INLINE(NF, toFloat__y1Fm9aHmxw9bS2jir137Fu5gsystem)(NI i);
static N_INLINE(NF, abs__BRaAqinz6OWTHkALb4oj6Qsystem)(NF x);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getTypeDescWeak__zbGAk3tbGBemhAx4n61z3g)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* check);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getTypeForward__zLenRlTUJy0Mn9b8JKwzEcQ_2)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyArray__qtqsWM5aXmcpMIVmvq3kAA sig);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, cacheGetType__2wgznvEs9bt7XaKJgVohBCw)(tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA tab, tyArray__qtqsWM5aXmcpMIVmvq3kAA sig);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getOrDefault__tD8SQMueXhdfvpBnagcsKg)(tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getTypeName__zLenRlTUJy0Mn9b8JKwzEcQ_3)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyArray__qtqsWM5aXmcpMIVmvq3kAA sig);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, amp___Z7W1o5nPSc3ExfO5f7j1Gg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* a, NimStringDesc* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, typeName__qvCJ9bux56nS82Shxh5hLNg)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, reprEnum)(NI e, TNimType* typ);
static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c);
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___zhbvOVNN6tTRFgZkPDZOmA)(tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA* t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* val);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isImportedType__IafZhvqpthq9b9c13SFhzAOw_2)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(void, addForwardStructFormat__pzRGCZRDAEWnDSHC2tztFg)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* structOrUnion, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* typename_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___vzbf0XksfaFTXNoTT6BCwA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___lQVSDPkAFXHNoa1N7jYrNw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, structOrUnion__TLFDupRCidtMx8175pusWQ)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
static N_NIMCALL(void, TM__MQdRN7fpbG7rPm4JpVVAhA_56)(void);
N_LIB_PRIVATE N_NIMCALL(void, nimRegisterGlobalMarker)(tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ markerProc);
static N_NIMCALL(void, TM__MQdRN7fpbG7rPm4JpVVAhA_58)(void);
N_LIB_PRIVATE N_NIMCALL(void, pushType__4q3XOfd3NI3C8cSNkaF9cWA)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**, X5BX5D___KricVWBSqqSbgxpQ5up3Ig)(tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA* t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, seqStar__hiFj6GH2C6Qv8bI0r9caT5A)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___6d8an6hdqiIrRjPW1wEh5Q)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___gMbiWAc0IjihIq46IYhmAw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___uHsu7fLXac4OhMNd79bSJwA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w, mapReturnType__K9aceyVl15zb9aYN9b6YJ8TnA_3)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___3WM9b4PeyDKoIDFMvYcQX3w)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, amp___4cYKitaHx6RQ9azRtQsZp6w)(NimStringDesc* a, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___p4LhaCxKpUERrq9cB9b8Mp9cw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, runtimeFormat__9bvKdnhoYI2ta9agQNm3orMA)(NimStringDesc* frmt, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, transformBody__ocxOgPRHWfivNZELIhOv7w)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* prc, NIM_BOOL cache);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, easyResultAsgn__oKhRC9bEKTxG5epdNiNWZ0w)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsResult__fNMD7OWzxZVWuSQ9cYs2S9ag)(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__cnzwaZQQIa73ryXE31wijQsystem)(NimStringDesc** s);
N_NIMCALL(NimStringDesc*, mnewString)(NI len);
N_LIB_PRIVATE N_NIMCALL(NI, getOrDefault__9bK0jMctS3Kpz9aVaHPQI4gA)(tyObject_CountTable__chlLjy9bvnFM9b9bSZfiIkyGg t, NimStringDesc* key, NI default_0);
N_LIB_PRIVATE N_NIMCALL(void, inc__1cI9bkIJF86iCGvJofQDn7g)(tyObject_CountTable__chlLjy9bvnFM9b9bSZfiIkyGg* t, NimStringDesc* key, NI val);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___iaEKHmIC9bNRZLxBqSNX0Sg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
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__qlujIAW86QclHYUVxlHRiQ)(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* result, tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg k, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* lode, tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw s);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, rdLoc__xidyzuHqIciXbQyEOKahDg)(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___TbMwXzwNL7txOQADiTjwKA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, assignLocalVar__UtJx89cn0a8CNSWWmaj6raA)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
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, constructLoc__Q4oQMHZIwSi4nGkYAuAC8A)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* loc, NIM_BOOL isTemp);
static N_INLINE(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, t__XNOXh7uniWNgiq58C9bW49awcgen)(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a);
static N_INLINE(NIM_BOOL, isComplexValueType__Fl17jclCP5VEr9a7Ycym1awcgen)(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__UANnSFbuKD1BS6RrMbZs2A)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg section, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* a, tyEnum_ObjConstrMode__9agQ3x8C5KfK9c9a3uY9abfUTw mode);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw, analyseObjectWithTypeField__Pldxz9alDV6810oJzh2Apog)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genTypeInfo__BeEYMOjEPJinzbFpsfTaZg)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, getOrDefault__qISsmXPGy0MStH2gg2BcOA)(tyObject_Table__6nOsw5R7jH72bux7HSST9bg t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, tyTuple__Iz0jrTw3w7v6sMzjrqs0nA* Result);
N_LIB_PRIVATE N_NIMCALL(void, declareNimType__w2jZebce9cvMAGUdQoJVOuA)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* str, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* ownerModule);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___E0nDsXp7tY4mC1BnrrjWmA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___mbjeaBETPixw9bUvyk31B6g)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getModuleDllPath__RaNE9b8A430I9bfpgZmdrC1w_3)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getModuleDllPath__ao6gUnuVfQLtZ89c4kaIKfg_2)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(void, splitFile__z7B4FbwzX3Y0L1EA2lLGXw)(NimStringDesc* x, tyTuple__7q7q3E6Oj24ZNVJb9aonhAg* Result);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getCFile__bmANOnd5oQhXRrTCn9a8S4g)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, withPackageName__9bhgFqdEZM7DoX7p3U69bQEg_2)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* path);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatOpenArray)(NimStringDesc* formatstr, NimStringDesc** a, NI aLen_0);
N_LIB_PRIVATE N_NOINLINE(void, raiseIndexError3)(NI i, NI a, NI b);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, makeCString__vQJydtKy4Nf6bXPYtbmjtg)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___AfR9bXoD9bcehKoM7F8O79bYA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___nlZFDYB4M9bmBbYqEropRVw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___e9czpY4GXpbU9cznliOfqQ1Q)(tyObject_Table__6nOsw5R7jH72bux7HSST9bg* t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, tyTuple__Iz0jrTw3w7v6sMzjrqs0nA val);
N_LIB_PRIVATE N_NIMCALL(void, genTypeInfoV2__TDEOLqqwXHVFJ9cWxDq6Nww)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* origType, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* name, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, localError__NF6kBGchnhQYPbCedyefVA)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* arg);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genTypeInfo2Name__HPYuz9bvVOGBv0EUX9c74xhg)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___4OTrYJoAayXfDUrtxFShhg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genHook__oupeNBgikmhXuZ8U9c35Zlg)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg op);
static N_INLINE(NIM_BOOL, isTrivialProc__0ARm8KufT2VWgot8ref79bwcgen)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___9adrtlfC8UlkOjB1RSMMMEg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genTypeInfoAuxBase__7TeHWriUy9a9aRQ1EAhsSN1w)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* 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(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, tiNameForHcr__oXvL9aGYxIh9cO59b845ZGKcA)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* name);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___dwsIkeXQe0E8HKrzN9aRE5A)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, canFormAcycle__IVXYI9cxSeivThgKCncHRnA_3)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___fIR1FG0QPRsKvEYKq4tJUQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NIM_BOOL, equalMem__Bj9c9cm9cBM9coLsuNsT5BvZ9awsystem)(void* a, void* b, NI size);
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___aQsiZUvE4SFfnWyKx1JgKA)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___jADQs38xm62v1oxF2cSvEw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___DZV83DjWnQ9a19atC2oeswXg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___sfvTjNjtOC86mU9bHczF6ow)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___r38WafKlW80RkvoZTcia4Q)(tyTuple__kN8up2W6YKc5YA9avn5mV5w x);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, fakeClosureType__OVHn4Lx3T69a1BHJ0KreWYw)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, newType__SNqpa06pdVCLFFBR28119aQ)(tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner);
N_LIB_PRIVATE N_NIMCALL(void, rawAddSon__LW9aGb2JfjdMXhDZwQYa5xg)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* father, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* son, NIM_BOOL propagateHasAsgn);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, createObj__vpIcmDdKH7ed0dcs37b1GQ)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NIM_BOOL final);
N_LIB_PRIVATE N_NIMCALL(void, genTupleInfo__DVDUKxJo5CvrWtAaM2iHCw)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* 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__ao6gUnuVfQLtZ89c4kaIKfg_3)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___jadqNPnY9aM3oxYK6jarLrA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
static N_INLINE(NI, len__5mJADrRYkP3r9auuiuDZN9cQast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* n);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nimIntToStr)(NI x);
N_LIB_PRIVATE N_NIMCALL(void, genTNimNodeArray__8W0lvt5dkO9cVIIfffRji9cQ)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* name, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* size);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___LvsIDF8olc08xBiqCYIUog)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___6Tfa1iP1ENVlWbe89cSELSQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___hKg2Id9cvzE5Dgl9cU31c4Vw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___H3xXuIFdbz4MNb5T6BSfcQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___ELXFo0GedkhGYj9bocTHZAg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___9aLrcjgzGJE3f9ab2uR37jog)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___3Q9c5iS9btBDBXZVoQktb1XQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___MALQXTKXJv7x9a9c247satLQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genTypeInfoAux__DVDUKxJo5CvrWtAaM2iHCw_2)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* 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__6ja22UmHW9bFsLaOtztGpHQ)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* origTyp, tyArray__qtqsWM5aXmcpMIVmvq3kAA sig);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___0nBiBCva6YS9a9bSV2Vr7Zxw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___yyhPPkMkLJqWG6p8HGn9aoA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___t8gRNGR1flvaCNlBxuLn1A)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
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__Zo4XKVi6BmwOZE51Yogqwg)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNode__PMZ27S9ai4FB3gXOMDXvwsQ)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind);
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_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___xQaqlAwFuwxqBFixw7ewLg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
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*, percent___2SWcbuU7RHQR0b8y9aJ9a5VQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, lenField__3AsTOpq9crZUYBL9aD1lXBng)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p);
N_LIB_PRIVATE N_NIMCALL(NI, len__9b0YRltzV3kNSE9aQTsG82wg)(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);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, lengthOrd__hjogdnp59cMX1rwmjikBhqw_3)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(void, cgFormatValue__JXx3ANPSFqQ9c8gmnEaNQ9cA)(NimStringDesc** result, tyObject_Int128__9a9axPfb75jdWY25AamJewkA value);
N_LIB_PRIVATE N_NIMCALL(void, addInt128__IvecK4CF4vhXBu6XHFt6sg)(NimStringDesc** result, tyObject_Int128__9a9axPfb75jdWY25AamJewkA value);
static N_INLINE(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, parentObj__uBOaBBiKguvub019cPppbOQcgen)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* accessor, tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___gSgutt9b7GMWVGBkCt0UHAQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
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__4q3XOfd3NI3C8cSNkaF9cWA_2)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getRecordFields__1Yw0f9bM6njBLDchKVMziZw)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* check);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genRecordFieldsAux__4Ai9cgO7hu1LuaSdTl5N9anw)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* rectype, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* check, NimStringDesc* unionPrefix);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lastSon__UPSW0jLTX5qJL51YMUAHgw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, mangleRecFieldName__HzLa9cY9ad9bp8c63DnHIEfWA)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* field);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, mangleField__IekjVhJd9bZAI9cs9bWYUDsTA)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* name);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___mZ66tEveFIQokq3arf8Klw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___Vcuq0AWiVDndx4UH9cJ9cBRg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___wbZBBJwMkBeW6eH9agO9boag)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___zgEKWXsZtT6lqQ6XlgfrsA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___uXZ30k0oJEqGPZW57O3dwg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___tTI9aMQiBZdiEeBIVh7QtYA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, elemType__PfgI9ap7WOnsRfFV4znQ27w_2)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___VJBBlA9aMl5p0yYB1WzSMVg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___jw4Sb0OSpKH1T5cLz7iyzA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genCaseRange__KUz7NJSCXeUWRl4foF5zfg)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branch);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___0RQ2PINB4t8FjFlNUM6N9cQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
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*, percent___LQ9bGxpANW8yeg5P9c0UYAaQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___f8tdlskieCnWysl9c9blzqZg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___KbFpNe1pZ7hIuQi7dp1dSQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___nunbo9aB0HmmYQJ3InIBEzQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___RBxLok7DyUB0aHl9bxPIl9bQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
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___RkX9btpg5sQIaP8yYXB6tbA)(NU64 x);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___NARRjCd1x5Fr7NTTcoPRrw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
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*, percent___NlLLwmZHOiJUpZfuk00AWA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genNilStringLiteral__mf9bJ50BK9auefXIgup7r1CQ)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genStringLiteral__SO73hKlDdl5sMaSHTbOJLw)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genStringLiteralV1__SO73hKlDdl5sMaSHTbOJLw_2)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genStringLiteralDataOnlyV1__wg9bxyc8oC9b9ahuYUo9bM4FJQ)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___mF9aI9b3hDjj53TD2C2gTrHA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g)(NimStringDesc** result, NI64 value);
N_LIB_PRIVATE N_NIMCALL(void, addInt__mftMOxbyu0h4yByfs3sqjA)(NimStringDesc** result, NI64 x);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genStringLiteralV2__Cfuh3qIr16gdBtlWztnjAQ)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL isConst);
N_LIB_PRIVATE N_NIMCALL(void, genStringLiteralDataOnlyV2__vp7GP3wlFybjCJ5ExVrrhg)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, NimStringDesc* s, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result, NIM_BOOL isConst);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___Q63d9bGPwQ9ae1XrP9b7wHM3w)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___bgV9a1wkKJUW9aAfeUrmhalQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toStrMaxPrecision__ayHojnbqAtgkZF8TXMNMzg)(NF f, NimStringDesc* literalPostfix);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, copyNode__Dsjo9bte8vGxzhtcSrsTyiQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___f8NIixSwWrk6SXQ3BFamWw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
static N_INLINE(NIM_BOOL, nimAddInt64)(NI64 a, NI64 b, NI64* res);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___TTRh79a14hh1gb0owIP1Y6Q)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___TmeCjGna9cPfiHHcfqmKXjw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___FsfRVuOOBePjn9cQ9aK7Vh1w)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___paA0sar8RKZqiwEaDfWo2A)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___jr9cXNQhhlLDfFJH4RSjeZg)(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(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___EnzikEr9bDhOR6GYxWuYSwQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___QqzUiJcAEZE2azDhIWHrgg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___20ZujjIFPkyqvS2OmenEAA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___Vxo9ayk1xB18if39aZ1TBnKA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___NtQEfuK9bXszNTfYU57z19bw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genArrayInfo__TiBDnY33G5Ca1p0Z3BOA9bg)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* name, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, genSetInfo__TiBDnY33G5Ca1p0Z3BOA9bg_2)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* name, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___AKNexo4CH8G2vDeWW34Vpg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, rope__b5mr3rjXEwHVfmNLJr4cBA)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___W2wbDjPGDCaBwLQM6yLUQg)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a);
N_LIB_PRIVATE N_NIMCALL(void, genEnumInfo__TiBDnY33G5Ca1p0Z3BOA9bg_3)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* name, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___LE3oWAmB5YDSDHm3LNHhCg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___W83I2xs7lC32PrMs9bq4P2w)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___JKMGBJtXtDvc0NwxujFmZQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___TA8WFV49atYpIneJatQWALw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___nPenDL3j2Q6A1an1Cl3oCA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___TNkzce2Sd9bck2QRtketc8A)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genObjectInfo__DVDUKxJo5CvrWtAaM2iHCw_3)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* origType, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* name, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, genObjectFields__TSbjDRI5MCd36QpIuSTshg)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* 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__WpGsd0DJejVIze0ZXr8L3g)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* objtype, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* d);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, lookupInRecord__gYQxUKQhlRY6yBu3Ll2TYg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* field);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___BKnrQUIV2xGn2MO0RK09aUw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lt___xL5gyZrjbGMarSdRAXOo9ag_3)(NI64 a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___SCyrk9acEm3vLZhXCV1fGNg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___erDe9aYc2BNxzH9brKlmtEBg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, plus___hiijuMqvH9aC9aKmwIYuqUAA_2)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NI64 b);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, getOrdValue__GvVg8kpCh7QA2PDTJnFJlQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Int128__9a9axPfb75jdWY25AamJewkA onError);
static N_INLINE(NIM_BOOL, isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___HSAgkeH84eiEd8MfKIuBQA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genDeepCopyProc__hi0Gu9bcBd9a9cO4KStt3d7iw)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___1AD3Wp47Hcdfg6PO2ac0NQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, rawConstExpr__8mAL9ckajemzgfLPfeZVNoQ_2)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___bJpxHYPJaxWBQn6QxwBA4w)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genBracedInit__zuhkXYLhosH9cERvaWpRX2w)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL isConst);
N_LIB_PRIVATE N_NIMCALL(void, toBitSet__WoVO5FKglpQIWZt87zKYXA)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* s, tySequence__6H5Oh5UUvVCLiakt9aTwtUQ** b);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genRawSetData__P8T6oQDSZlTI5UtVVMB9c9aw)(tySequence__6H5Oh5UUvVCLiakt9aTwtUQ* cs, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
N_LIB_PRIVATE N_NOINLINE(void, raiseDivByZero)(void);
N_LIB_PRIVATE N_NIMCALL(NU64, bitSetToWord__7N9cVgZTBxAgp9c0RZ0w0l9cg)(tySequence__6H5Oh5UUvVCLiakt9aTwtUQ* s, NI size);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genConstSeqV2__qmtU7fqvjfQZWR4m4R9aU1g)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, NIM_BOOL isConst);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___rouofEnBX1ok9aMXmOsKdHg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___C3GQZbey70223GyG307UFg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getSeqPayloadType__HPYuz9bvVOGBv0EUX9c74xhg_2)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genConstSeq__qmtU7fqvjfQZWR4m4R9aU1g_2)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, NIM_BOOL isConst);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___yxmLIVRKySYknm2wSBp9cpg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___8u7UPO7ZpaMkWoJRtZLlYQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___xXT7cKE1NTiL4U2MdlA2yQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
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*, percent___44q9ak51X9b9bmuZ9cK4LsFWOg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getClosureType__lWDfUH9cj8K8DjyEqo9cmP3A)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyEnum_TClosureTypeKind__cLHRMz1vnpSK0uePy2qbWw kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___Msid9awGKVeVe7p3v7WfNQA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___xyRsdWsGY1DVVispyn0Xeg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genConstSimpleList__zuhkXYLhosH9cERvaWpRX2w_2)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL isConst);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___77dMna2dOod5LqwYkRMZGg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genNamedConstExpr__zuhkXYLhosH9cERvaWpRX2w_3)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL isConst);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genConstObjConstr__zuhkXYLhosH9cERvaWpRX2w_4)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL isConst);
N_LIB_PRIVATE N_NIMCALL(void, getNullValueAuxT__Fl6EeAE3i9aDp1Z4U9aU6eLg)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* orig, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* obj, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* constOrNil, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** result, NI* count, NIM_BOOL isConst, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, getNullValueAux__bDGkqDlpSTLF19cHOigiRwA)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* obj, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* constOrNil, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** result, NI* count, NIM_BOOL isConst, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NOINLINE(void, chckNil)(void* p);
N_LIB_PRIVATE N_NIMCALL(NI, caseObjDefaultBranch__E9aJksCVNSVSpIoSEOSPgZQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* obj, tyObject_Int128__9a9axPfb75jdWY25AamJewkA branch);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lteq___7c5Zw7H31uJfWmmhZe9aEqw_2)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___7c5Zw7H31uJfWmmhZe9aEqw)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
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*, percent___dnB3So2xw9c189c09a9cc9b4hxA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genStringLiteralV2Const__Cfuh3qIr16gdBtlWztnjAQ_2)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL isConst);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___r2gXVULKoAtQjkgjf0Z4wg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(void, genAssignment__BtucsTdHw7orsXIL75hNVg)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA dest, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA src, tySet_tyEnum_TAssignmentFlag__Kd9aFyBNhxSsWFh1Km9a2hMw flags);
N_LIB_PRIVATE N_NIMCALL(void, genRefAssign__jdslQ8TsNpkTt8SvBLJjEA)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA dest, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA src);
static N_INLINE(NIM_BOOL, usesWriteBarrier__TzsgO9bY9cwAf4hwmbs7dTmg_2options)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(void, genGenericAsgn__BtucsTdHw7orsXIL75hNVg_2)(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__b5Hq2LPdi5DP1QFBXQYNdA)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA dest);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDeepConstExpr__sjm2oD6Aq9cG39aPE7CTvtmA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL preventInheritance);
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_LIB_PRIVATE N_NIMCALL(void, genOptAsgnTuple__BtucsTdHw7orsXIL75hNVg_3)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA dest, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA src, tySet_tyEnum_TAssignmentFlag__Kd9aFyBNhxSsWFh1Km9a2hMw flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___ym0Pr6z8A9ajyOAgotpd9a9bw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NI, asgnComplexity__jQZhYDteQXOIUBRG4iLXPQ)(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_LIB_PRIVATE N_NIMCALL(NI, safeLineNm__cb5f0VvvxoagMath9ay3UuQ)(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
static N_INLINE(NI, toLinenumber__6D4Rmpw7LpcRI1j7CMqEsAmsgs)(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isException__YPjOkGV9axAnGR3UfLeWZ1g_11)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(void, fillResult__p9cP79bBkRq6WIT5fOHMaTzQ)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* param);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___T11tCz9bIGT2CcftAwrDXZw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, assignParam__9aFEJaMCg37I5D9b15sgctsw)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* retType);
N_LIB_PRIVATE N_NIMCALL(void, scopeMangledParam__8o8k31aDRiyxRXKGzZbQIQ)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* param);
N_LIB_PRIVATE N_NIMCALL(tyEnum_InitResultEnum__9c9csRan2YP9boKbiUR9cP6PNg, allPathsAsgnResult__3E19a9b4Xsk8ypT9b1MEmPyCQ)(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, specializeReset__9cgrUeVA21BOQab6CBAvXRQ)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a);
N_LIB_PRIVATE N_NIMCALL(void, specializeResetT__2tWZcLKL9aUNXJnFJbKKN9aQ)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* accessor, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(void, specializeResetN__a4Eirucy5vgnjUqFNeFEfw)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* accessor, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(void, closureSetup__PDMGXd7Yn9cB79asQW3arukQ)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* prc);
N_LIB_PRIVATE N_NIMCALL(void, genProcBody__IroqGJs3T8by0fVw4XMZJg)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* procBody);
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(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___lS9bA1j3Ue6pp7sCliDsT8g)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, makeSingleLineCString__rMRFcrOdLs9cBLwxpf0jLag)(NimStringDesc* s);
static N_INLINE(NIM_BOOL, isNoReturn__wKa9aVgc3t9a9atx3OlQKTJyQcgen)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
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__2Kbe7lBq9cqJa8J9cn4WRepg)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q i);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___BBAyGuVoK6QA7nXfPUIYKA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, deinitFrame__3AsTOpq9crZUYBL9aD1lXBng_3)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___g9b9arp3BWCGRHDe21SJso6w)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___09aVguRR64dWfw4b6fKBcqg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getProcTypeCast__kjPRfLdGk3b78KhSOOjbOA)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* prc);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___tgUnLdPVK0vRqC0pWxMClQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, symInDynamicLib__TAVDUakAwQnRHDK9cFe6L7g_3)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isGetProcAddr__SYG8r9a6ANje3aBM5rYzaeg)(tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA* lib);
N_LIB_PRIVATE N_NIMCALL(void, loadDynamicLib__Q3RS49c6kF7OS9bmwvFHRQJQ)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA* lib);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___FBNsdfF5FNrY4P9cYQIfvZQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, libCandidates__TEY9aqiaMWVK2l0NzZy7BwQ)(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__zLcHGdlEbBYFtoCoan9agkg)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, NimStringDesc* strVal);
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(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___cB7zULPbG5vWWdCukRjdqg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___dpzmcz9a6kXbhFacdElIMOw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___AWFBEodxoi9a61KDUc9aiw1w)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, symInDynamicLibPartial__TAVDUakAwQnRHDK9cFe6L7g_4)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__R6uRTGpl30Ofaw4Ni3vawA)(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* s, NI key);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___vHbYzYlzLPcurSm0Hu8InQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genVarPrototype__t9a9a9bxmaOztYOfsfhQUOXXw_2)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, treatGlobalDifferentlyForHCR__AaEyY9c5j7G9bThwkB9ajJ8Pw)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(void, declareThreadVar__wDT42Iy4l3KGL9cd8rMjKRA)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, NIM_BOOL isExtern);
static N_INLINE(NIM_BOOL, emulatedThreadVars__7uEG6ZwO4OOj3nQvIat2mwcgen)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___nzT6Rke9c7tkW9b3XMmld2LA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, incl__jENnK9c9bPE73pKmo2vYjpqg)(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* s, NI key);
static N_INLINE(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**, procSec__kOyJGmZMM2tMgCKSrvUE3g_2cgendata)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg s);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___9cCc2iMcL3MEBZTTL3LCW1w)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newSymNode__I2DV2TmmOysY1ZEGW19b9bRg)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym);
N_LIB_PRIVATE N_NIMCALL(void, addActualSuffixForHCR__Mns9bHWQy2Dza12fE8Mjw9aw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** res, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* module, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym);
N_LIB_PRIVATE N_NIMCALL(void, addAbiCheck__SaA9bA11X42SNop9bW9cVLmng)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* name);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___ahBYcGrhpPvM5dTdzCQBrQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, excl__jENnK9c9bPE73pKmo2vYjpqg_2)(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* s, NI key);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___XI9awM9a9aQ9cB9bcS7uDRsa1Rw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___9cWNaGuyEpBbdBlD9b5nY1ug)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___6P67I9czJ9aa9aZzVyYWUiGlw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___S4jE5dFDtcCC8ODzxaJk6A)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___EPABzhs2B9atAvHV4CUTw2Q)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NI64, toInt64__1szweXXq3RBN50owrYu2Xw)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___2MhCcipNmSHgcDtN4cr8ng)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, scanCppGenericSlot__YRbO0Zq30XmyAQjpf1Mi6g)(NimStringDesc* pat, NI* cursor, NI* outIdx, NI* outStars);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__2yh9cer0ymNRHlOOg8P7IuA)(NimStringDesc* s, NI first, NI last);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, resolveStarsInCppType__dTa9cSuyNlFVdzNe1dV0rag)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, NI idx, NI stars);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TRenderFlag__wrPgUo1ExBlHvFnXN2nSHw renderFlags);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__iGg0RIKceRvsmvq8FUHOEw)(NimStringDesc* s, NI first);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getRecordDesc__HJhu9cCeHNnnn2AMyLicEaw)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* name, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* check);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___0ul9cDZYl7YkH1RhZBTd9c6A)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___QFf4DPoOk6Jy59cL2OASJzw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___7yDHbEsisDNKcqQHIRgOuQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___GwVmUG4AZCEAP8dBk4TGHg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getTupleDesc__HJhu9cCeHNnnn2AMyLicEaw_2)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* name, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* check);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___q7DaQZqCe0lRO0rhBWzM0w)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___hGIvKp3CGssDQ2vSvfksxQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___9c1P82lz6H9anMKDbz1vYNpg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___dbg9bsMENUwtF9aO45wEGG3Q)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
static N_INLINE(NIM_BOOL, requiresExternC__axmagSzN10JTkqlmiAFoqQcgen)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* 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, genericAssign)(void* dest, void* src, TNimType* mt);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isSimpleConst__y9bTRtTAknVsv9apXKbpJYJA)(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*, percent___eMtcjnP5EASsGpHWzVmIXA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___VsLzrOz1nS9cRBBz9ccZfETQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genSingleVar__T7FeUoHVfLrGm0JydrFabA)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* v, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* vn, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* value);
N_LIB_PRIVATE N_NIMCALL(void, genGotoVar__4xOIY9bgIMy9bAzg2ZyIieBw)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* value);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___tRSKshYob5uzZE3eBVe59cg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, potentialValueInit__ZPEw9bE7bf9b89ciOwNlnaiIg)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* v, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* value);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hcrOn__NAlbw3fU59aFdo7L5aQtmkw)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p);
N_LIB_PRIVATE N_NIMCALL(void, assignGlobalVar__yX9bZpeKIzp3RLrjnzlc0NQ)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* value);
N_LIB_PRIVATE N_NIMCALL(void, varInDynamicLib__TAVDUakAwQnRHDK9cFe6L7g_5)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___vcbf2lEZaiSjbAHwgt9aKXw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___8aeHBTewuDsR3u9akMPiPqQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getTraverseProc__V1atRcoAv09bVdrCPNlvW8Q)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* v);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genTraverseProcForGlobal__N6PVM8zp2L2vM3WsaTEaJQ)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, accessThreadLocalVar__IpGUPLhMYizrVHs0OdHySA)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___sb2NV56uvmvOtYkgVsaVQQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___7STLi75js8HXlmFg7Abt9bQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___5O50gePV9adn3wgFGWjlOLQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___9a3Y7eeGNXkOCLUktwxzN9ag)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, registerTraverseProc__BwxixSWhJWbQ369cJZeckHA)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* v, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* traverseProc);
static N_INLINE(NIM_BOOL, isAssignedImmediately__udBNoPxZaHjsWUNp37jAdwcgen)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsHiddenPointer__IVXYI9cxSeivThgKCncHRnA_4)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(void, genLineDir__QrTB5DOwbDX9bKAW7PNbuJA_2)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___Ng8dczn37bLzoM9bsVdPwjQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, sourceLine__b49bYNvmBdG6RP9cHaZGFhvQ)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q i);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, freshLineInfo__7ClJaTgavvBeZEMW4B6fYA)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
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*, genArgNoParam__NYI5fC69aIqZGRakncXv9cNQ_3)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genArgStringToCString__yOhPG2oQOpNhI6KfbLI1XQcgen)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___boICAAvO1zkTlYDOuEaj6g)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___LeuvM3mIc6pSNktpm9cHSVw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___mxQQ2vwZhwfDagj5SEXeHA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___x2NKZw9brJpylbwEtLfx9a9bg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
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)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genClosureCall__HKkL9adNEIcNHeJ0iZ6uitg_2)(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);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, openArrayLoc__6mPoivdljN39aZZDBAbjmIw)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* formalType, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipConv__BH9abOhPX8pH0DnEWlRxmlw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg, getMagic__4W1ZJaFiusqlhViRx9cbM9bw)(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*, raiseInstr__3AsTOpq9crZUYBL9aD1lXBng_4)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, intLiteral__0L2LUBpuDvHdOo5Bdh2tRw)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA i);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, rdCharLoc__xidyzuHqIciXbQyEOKahDg_2)(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___TmT2Gs9cB7RN9cmo9c9cBpfKsA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, lastOrd__hjogdnp59cMX1rwmjikBhqw_2)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___RiPFNabSvay09bAW4Jic2ag)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___efSHgbCUYoX1lUK7M9aj4Pg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___Vmgih7rhd9cXUC9cEBz2cwXQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, byRefLoc__Xfvxpx3W1zkiCqENsur9ckg_2)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___rB3209aHcqpT39anNUezpSjg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___x85Q1O2QUnYbstPlxUCyAQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___L3AeZ1n9aK4C1jsBCeaCmlQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___ebmRHYtM9cCbYF6WvKDfQ9cg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___qE1JtEDDOvP6J49a9cv9aK1Dg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___ctvQ2lU9b9bnVVpNP4GhIo2Q)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getRawProcType__pQ3A543K4YxeaNh48yoUog)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, canRaiseDisp__Y9bFh7BmZkh729bS2kZ5kwnQ)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, canRaise__qAerQ9bftuf70QDk42UIFXg_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fn);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, canRaiseConservative__qAerQ9bftuf70QDk42UIFXg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fn);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, preventNrvo__VzIhhB7jFivZ9c6NgOwxU1Q)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, 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);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, locationEscapes__fKz9bDGxeJtVdl9bZW9aX2KFA)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* le, NIM_BOOL inTryStmt);
N_LIB_PRIVATE N_NIMCALL(void, message__mMj7lrOf3zBP9bl69amiKu5g)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msg, NimStringDesc* arg);
static N_INLINE(NIM_BOOL, hasNoInit__XO14mevzEVVwQTyfj9cMewwcgen)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* call);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___8bHx2qDxS2yWIId1X52mqg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, addComma__WAlh7NpO6KFA22Kxnp9aoaw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___kTDR7D9c9aomjcaUQOmKJ9csg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, raiseExit__0dpuY9coTlraj8JXIe2BzVw_2)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p);
static N_INLINE(tyTuple__FxkU4d1VDodDMc9ah6Mbagw*, X5BX5D___X6aCqErYyvvzizP8PaBpFQsystem)(tyTuple__FxkU4d1VDodDMc9ah6Mbagw* s, NI sLen_0, NI i);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isHarmlessStore__4h2Oud7u5jWCpkY1i8QUDg)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, NIM_BOOL canRaise, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA d);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___1tj59chZC08k4TWYeZiqDnQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___533QKY9a8quvLM1SsLE1JfQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genInfixCall__HKkL9adNEIcNHeJ0iZ6uitg_3)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__wAzSnEu9cCHHjvPQlWBZUeQ)(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*, percent___uFJUSitn9c1Tw6cF9cZf6x6Q)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___G8iCcDovsaw25PkF7wHs0g)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
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__vMC9cau6W2PcQ0Z0zO9cDXMA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* node);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___SY4U2QvmoQxocaG8MOmyHA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
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(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___bhkFYKbURxGcJnKpswdr2Q)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, getTempCpp__17YlQRjV7sYeIVr87qv2GA)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* result, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* value);
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(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___lTsL0bi6njxzDh9c8A32r2w)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
static N_INLINE(NIM_BOOL, contains__Pa9a8m0kZYH6LC8N1EcZJdQsystem)(NIM_CHAR* a, NI aLen_0, NIM_CHAR item);
static N_INLINE(NI, find__31wM5Ui9c8jnrQ5QD4oPxOQsystem)(NIM_CHAR* a, NI aLen_0, NIM_CHAR item);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___k4VEB3kaBL72FRQN8buzSg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___YbQIA9cHUESCyYT1WEeIVbA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___66KauNYQRukYNgmb6bVXEA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___S550SlHmWbDpD7rs0J2lrA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genPrefixCall__HKkL9adNEIcNHeJ0iZ6uitg_4)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d);
static N_INLINE(void, postStmtActions__hU2pQ4yYkske4uOCGEGfMwcgen)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, astdef__PBkjYIaAGbtrZ8DiUArHcw)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
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, 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_5)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___sGnLi1DjaBomQ9c9a6MOCA5g)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___bEKtSmboScaCP8PPnlOWqw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, fixLabel__z1hx9axqa9cHsmY7bMeZVSrQ)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* labl);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___ZpwWwpfBXgcQ6xoLOH4CJw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
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(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___GHW5yjG8N9c2BQBun6aBJzQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
static N_INLINE(NIM_BOOL, nimMulInt64)(NI64 a, NI64 b, NI64* res);
static N_INLINE(NF, toBiggestFloat__hTpm9cXKgh17pxyZUsNnUyQsystem)(NI64 i);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___QXMcmOst45ThYFLo9cOKDiQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___Yup67SPGRVcwMdmZwc9cSag)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___ec65mR1N7BSL9cmUa3z9czvA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_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);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___ibyK70G44kCK9cN8nAkxyGA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___H9b69aGZGrLOiKWQdd30yQ9bg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_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);
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(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___Te7bvH18PbGe5siNJ9aDTTA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___MUaBvSw0MHw3qQi9bYavAmg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___bWYxjLMocXEvYgQQcC63rw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___ZpcNBrQMfioSvQNxKHhu9aw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___gywCjjjPZobIva6liQWNLQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___6PDHoyz05lEjxGNE0k0ikw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___AXGsBlGV5DoEOwPJSl9bdJw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___ygzR9aJ6oM1bZTq4Z2lNO3Q)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___uYVc6UX8hcaEdrHosUQAOw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___AlV8xJkjCXujAUesHxezgw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___L9asecuKwevQN2h9cWzyv6oA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___nZD9cadh12dcqTFsXBHbCRg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___dz1JHdrf1p9bPB9ad2dZBtYw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___0MUu7DVBoaLHTVUZe9bKoIA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___29aIWEGnJW0wnITIeSKWfFg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___n2CigWG38YNInkiL4n8g7A)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___bb3v9bDRLv9c9bcQzGH9c5H4Gw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___tkJq8W3gQVDjuu9aT3THC6Q)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___oyQkqbRkRzo43y6iRevkaA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___YuphtPwdJHG6BUJOVa9bX3w)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___EQxs5xa4FNWtMfcvmFZ9cMA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___5YbjRZxm0g3SrdnL73aQaw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___4JrnABFfF3UTQ3nO9a6mXzQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___bkAwkKoaz09cAQo9arQjGA0A)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___7N9bV9cjVBHs9ciAhz7vgdI9aw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___QX9cU2fNK0jJrZNDQKnAycA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
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(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___vTbVjc6faJqdBrTckFLLWQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
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*, percent___v4k9cDtOUzGyUHJbnJ7kQKg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___0ym49cR6ES8k9bYWsnh1fELA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
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, genGetTypeInfo__BKdMcfvryaJLplX0oFPcAQ_3)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isFinal__YPjOkGV9axAnGR3UfLeWZ1g_5)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, rdMType__NjNUZn30hQD5ajLFvp2bbA)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** nilCheck);
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, binaryStmt__FWB0HmRDLgoWdgSy9bfL9b5w)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* op);
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__vxeaiXjty5M8JXT1fo429aQ)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* cpname);
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(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, makeAddr__oKhRC9bEKTxG5epdNiNWZ0w_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newTree__FpOm4fidh9bWdkMa1BMRJkQ)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** children, NI childrenLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, makePtrType__W0UItHZuQBLie8iFE3EjmA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* baseType);
N_LIB_PRIVATE N_NIMCALL(void, addSonSkipIntLit__2IwAMgUJgjdjR7Qyvt9bjCQ)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* father, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* son);
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, 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, genIsNil__BKdMcfvryaJLplX0oFPcAQ_10)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genEnumToStr__BKdMcfvryaJLplX0oFPcAQ_11)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, genEnumToStrProc__1dNAvAAONCZJhs8N6saOAw)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, copyTree__Dsjo9bte8vGxzhtcSrsTyiQ_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
N_LIB_PRIVATE N_NIMCALL(void, genOf__8mAL9ckajemzgfLPfeZVNoQ_3)(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*, percent___Jx78R9a9anGvjjocCaP8YgIg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
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(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___s0lnM9cZDB9bOREa4Fx1leBw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___aT7p9bNEmP3LxrK3OhspnSw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genNew__X9cSqNhqEboci9cdmwBMNcBw)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e);
N_LIB_PRIVATE N_NIMCALL(void, rawGenNew__9cYWmo3ycKMiJEsDvNXZAQg)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* a, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* sizeExpr, NIM_BOOL needsInit);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___mV75vMLuQ8rrQEUzNz6llA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___jhVz7tKuf0heLM2D3nL0gw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
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(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_12)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___c4YKWXetPKpaUUF7Qft2gA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___rCIIoKC0OrXhpuTFTIZn0g)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___lXaYcLcHHuQ46VvpH6Qr2A)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genSomeCast__BKdMcfvryaJLplX0oFPcAQ_13)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___duX6hgjmpJtFFdvJVuoafg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___GNSb4l0oRsR1gu66azz1LQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___LGbUtKnsZL8FcQiQN7sWEA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___e8Xf9ajw9cRlpuqnFnlEuSpA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___BDuDfIpocbuOrxKmsugV6Q)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genOrd__BKdMcfvryaJLplX0oFPcAQ_14)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d);
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(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___nVQhtKHyPC8pvPbUAUBU7A)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genSetLengthStr__BKdMcfvryaJLplX0oFPcAQ_15)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genSetLengthSeq__BKdMcfvryaJLplX0oFPcAQ_16)(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(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___9bI5GhokFUA9bgO9av819cgdBg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
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(NIM_BOOL, eqeq___nr9cP9b0OL9cabygV9bo19cJgZA_2)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NI64 b);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___qTicKO8EMC9cWGOyybIz4WQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___yZHx0qMqBvbhmZ0fMuAP6A)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___YQzyPnY5vKAqE2RyLX0cew)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___cIILAsA6BeRrvHfloZIscg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___IwDTuHqkGn7wW16ga2ktSg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___lbkoHJP5AIgE86vP7MmlKw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___9b84wNYrm79cLYfx9bsPNHjPQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___K5ihI3kW9cFBh6sKlfEpJwg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genInOp__BKdMcfvryaJLplX0oFPcAQ_17)(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(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___nEiBK88oEGnvYfkiei9cyJA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___Psy1qActyEYmIhrRo2KkJA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_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);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___bIZqgQGMIUCBRFFeiRG0aA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___HPctrFzseNT2BeQr9aYVqcg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___k5v9c9cMBoWUlAaq59araCfmg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___Py40oiVtYdIelNuiQQjpjw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___QzVlk7tEXgagMWC19aLvbkg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___qxufH5vUl9aY2l9cFq39bnVwA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___jiTCvQQpgMU0bTrdVuECiw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___n4OrLXC1r9a83k5wz2NoWxQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genDefault__8mAL9ckajemzgfLPfeZVNoQ_4)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d);
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_5)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genSeqConstr__8mAL9ckajemzgfLPfeZVNoQ_6)(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__9cWXyScktPXvQmRC9aBs0ADw)(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_2)(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__oKhRC9bEKTxG5epdNiNWZ0w_3)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genMove__8mAL9ckajemzgfLPfeZVNoQ_7)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genDestroy__UtJx89cn0a8CNSWWmaj6raA_5)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genSetNode__NYI5fC69aIqZGRakncXv9cNQ_4)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genSetConstr__BKdMcfvryaJLplX0oFPcAQ_18)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___fOn9b5Ij3ytw2Ui9a2CPI5zw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___zJU3FoYOdJ9bmuODPmqtgdQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nimInt64ToStr)(NI64 x);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___1MXpJAdeOMc2XMg5H7t9aSg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___VNAv31sqVgxrd9aXeFF5wYw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___MULS9c8dKz2mJ1U9a9cMyTCYw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, exprComplexConst__8mAL9ckajemzgfLPfeZVNoQ_8)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genArrayConstr__8mAL9ckajemzgfLPfeZVNoQ_9)(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, genClosure__8mAL9ckajemzgfLPfeZVNoQ_10)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d);
static N_INLINE(NIM_BOOL, isConstClosure__4MUa2M7mDMhaGJLAFrkWDwcgen)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NIM_BOOL, isRoutine__Ye2MiAptq3GrXxTQeyXNeAast)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(void, genTupleConstr__8mAL9ckajemzgfLPfeZVNoQ_11)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___5TB09c2Iz60T0YagbSbI5RQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genObjConstr__BKdMcfvryaJLplX0oFPcAQ_19)(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(NimStringDesc*, genFieldError__NFvxltQN2CgyfP8SjDTS1g)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* field, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* disc);
N_LIB_PRIVATE N_NIMCALL(void, genCast__BKdMcfvryaJLplX0oFPcAQ_20)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___NIzUqj4Mr1E3EKy0AkJaXQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___yQdCkIARIVr9aqI8oVxi9cQw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genConv__BKdMcfvryaJLplX0oFPcAQ_21)(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_22)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d);
static N_INLINE(NIM_BOOL, isCppRef__Rt7PF9bsOeNWjGFhSpqAlTwcgen)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(void, genBracketExpr__8mAL9ckajemzgfLPfeZVNoQ_12)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genUncheckedArrayElem__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(void, genArrayElem__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(NIM_BOOL, isConstExpr__9cP6JNeOKqczaXCI4Zo4SBQ_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lt___7c5Zw7H31uJfWmmhZe9aEqw_3)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
N_LIB_PRIVATE N_NIMCALL(void, genOpenArrayElem__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, genSeqElem__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, genCStringElem__BCJD8YW9ak7zQIm4nTPgpMQ_5)(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_23)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___WYvjnWcyRjjjI0lasIi1YA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genDeref__BKdMcfvryaJLplX0oFPcAQ_24)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genRecordField__BKdMcfvryaJLplX0oFPcAQ_25)(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(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___hR4oq6WdDjEl0JIvQtvUlg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genCheckedRecordField__BKdMcfvryaJLplX0oFPcAQ_26)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genBlock__8mAL9ckajemzgfLPfeZVNoQ_13)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genStmtListExpr__8mAL9ckajemzgfLPfeZVNoQ_14)(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*, percent___84GQPNcrIJtbrzuA7JnMPw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
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_6)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genIf__8mAL9ckajemzgfLPfeZVNoQ_15)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___SqZEI7bxySjmJX4GsXyvKw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___c1f569aWpTd825BTnv9bq4Xg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, downConv__8mAL9ckajemzgfLPfeZVNoQ_16)(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_17)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genRangeChck__8mAL9ckajemzgfLPfeZVNoQ_18)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, convStrToCStr__8mAL9ckajemzgfLPfeZVNoQ_19)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, convCStrToStr__8mAL9ckajemzgfLPfeZVNoQ_20)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genWhileStmt__QrTB5DOwbDX9bKAW7PNbuJA_3)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, stmtsContainPragma__QPJXGOVirAPBlaL8RY5bwA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw w);
N_LIB_PRIVATE N_NIMCALL(void, genComputedGoto__UtJx89cn0a8CNSWWmaj6raA_7)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, flattenStmts__qsyX8NJX39ctdwAi4rC8W1g)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, enumHasHoles__YPjOkGV9axAnGR3UfLeWZ1g_3)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___ibl3qMPOrpGT2x8X7vmbeQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___bBcuDHMXr6Kz1tr7BzD9aKw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___aDvifvZOUmduC6Unfm69bKA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___5kuxCbMO8PVJc9aJbXScUOQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___Uu9cBz7dxPVDFhF9aLzWecyQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___WWt3il4CHPiYP10KdNLrWw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, transitionSonsKind__uOUBEXn0RV9b64TOM9ajIDag)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g kind);
static N_INLINE(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, assignLabel__mIFKIo7g6Echd7EokLhQegcgen)(tyObject_TBlock__GFhahvekTq3dDOkWyhchMA* b);
N_LIB_PRIVATE N_NIMCALL(void, genVarStmt__UtJx89cn0a8CNSWWmaj6raA_8)(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, 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_2)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner);
static N_NIMCALL(void, Marker_tySequence__sno9c9bXUVS2CqhtWOJadaCw)(void* p, NI op);
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__v2qC0V55wqa9bmqc7eHTz8A)(NI x);
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__9acplCwsZ5kwBbm0f7S7DNw)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___hc7hMh137dtaNdd3qw28EQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___XWz49cQA2QiZaLkqHBU5L3g)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
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(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___Au81R9a68Rv3gwlPtvDarPg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, exprBlock__8mAL9ckajemzgfLPfeZVNoQ_21)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genGotoForCase__ACGHJp9bbmHaRpjqO8LXrqA)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* caseStmt);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___Yw741acxvsUs9cOX9cuiDj9bw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genOrdinalCase__8mAL9ckajemzgfLPfeZVNoQ_22)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(NI, ifSwitchSplitPoint__sCIDQrEETdL3XXbX8Uzgrg)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, branchHasTooBigRange__FtWqvDVdWg4sJ9aFlt4ZdKg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
static N_INLINE(NIM_BOOL, nimSubInt64)(NI64 a, NI64 b, NI64* res);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___T9caGByKkBhaXSZ6fCJLIdQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___JmTWN8YiVKTZuvCYW2XNZA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
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__KjgUMUjT3LUKOFIK4xt5ug*, newSeq__uReleM9aRnQZRzdaRfwc5xQ)(NI len);
static N_INLINE(void, pop__Y36bTNxSoXinCwCTSTCSTgsystem)(tySequence__KjgUMUjT3LUKOFIK4xt5ug** s, tyTuple__FxkU4d1VDodDMc9ah6Mbagw* Result);
static N_INLINE(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**, X5BX5D___TZRG9c19bQX0slkSQAmDzJZAsystem)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** s, NI sLen_0, NI i);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___Kbv8OIo8zpawh7SNMbfgkA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
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, isDiscriminantField__OTZyO2oJpdYpHVBZuRXuRQ_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
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__WpGsd0DJejVIze0ZXr8L3g_2)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* 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, genTryGoto__re1pwmyeR32ikwnOC3vvzQ_3)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___22ELRKd9bDuNug6qvIihS3A)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, bodyCanRaise__Y9bFh7BmZkh729bS2kZ5kwnQ_2)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genTryCpp__re1pwmyeR32ikwnOC3vvzQ_4)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genRestoreFrameAfterException__0dpuY9coTlraj8JXIe2BzVw_3)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___xr7e1yaPtCde5qS79c5DFzg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isInfixAs__CZaoTkWCFI9acor4BmYF3Yw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isImportedException__dZW9czpRSiiVl9cyT6tyk84A)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(void, genTrySetjmp__re1pwmyeR32ikwnOC3vvzQ_5)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genRaiseStmt__QrTB5DOwbDX9bKAW7PNbuJA_7)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* t);
N_LIB_PRIVATE N_NIMCALL(void, finallyActions__0dpuY9coTlraj8JXIe2BzVw_4)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p);
static N_INLINE(void, genSimpleBlock__RH6PUsmPRE4ftBMagpWhBQcgen)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* stmts);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___ddrHnMlEhcHznkXv27msmQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___B0OBOTOJQENvDd71LJ9b19bw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genTypeSection__t9a9a9bxmaOztYOfsfhQUOXXw_3)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* 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__Pjztiiq9bHmTTxDuLd39cNRw)(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__3f2MBweHSQI3C7jDZiYA2Q)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nsuStartsWith)(NimStringDesc* s, NimStringDesc* prefix);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, skipGenericOwner__lIu8wX6Beq6dBJgESOFFjg_3)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(void, genParForStmt__QrTB5DOwbDX9bKAW7PNbuJA_9)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___yhJ9aDxHfJqHvWO0i6N9bukQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___MLJpsW0DAZYB8lAgq09cUjg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genState__UtJx89cn0a8CNSWWmaj6raA_11)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genGotoState__UtJx89cn0a8CNSWWmaj6raA_12)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___8tWfSjtTOlDafxpQPvChAA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___xKLwwPkFSVy2Dtn9cuJ78xw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___hdRijZdoPR3UGq9aUw2zFDQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genBreakState__8mAL9ckajemzgfLPfeZVNoQ_23)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___ZjQc8bFVF8ePFYxjN0iVVg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___SiqB8gWmdYKb4vtgqYrrMA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, popInfoContext__O9arH9bYenXLOr27ZSmcQnEw_3)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(void, add__P8dDSotTW25BkfbyspojGg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* son);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, generateMethodDispatchers__7t0GJlNQwZyLt0Kz3RhRdw)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g);
N_LIB_PRIVATE N_NIMCALL(void, genForwardedProcs__PBGOqkExHgxzX6Rn0nJkYg)(tyObject_BModuleListcolonObjectType___CpP4eJLbv5ZwofQXpESuGA* g);
static N_INLINE(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, pop__sJkHMuFHoY5Elz2ZDxz78Asystem)(tySequence__DfgJFJEYoj4YBAHLZPl5lQ** s);
N_LIB_PRIVATE N_NIMCALL(void, writeModule__ZCCFqS1YhEjeMHLdSMM8xg)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, NIM_BOOL pending);
N_LIB_PRIVATE N_NIMCALL(void, genInitCode__7ll08CGQoDzh9cxhZCroU4w)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getInitName__ao6gUnuVfQLtZ89c4kaIKfg_4)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getSomeInitName__E8VUcJLPfNp8S9aZKgHijew)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, NimStringDesc* suffix);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getSomeNameForModule__JBd7XGjgK9ab0QMtKIFvb8Q)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* m);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___2Ixv9aZ9bvpNaVAVzYBJlUPg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___HoXSbgR7plMG7Fef0fcy9aw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___H1Ma2EXqegHnMqzJZ4SA1g)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___jpXTCDNVjIi5r4hbHN5SVQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
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*, percent___Mb9ccCVvEQ2RaqUK5tbPQ2w)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___4L62Yp9bLO2ZDcvBG9bSvP9bw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genericSeqAssign)(void* dest, void* src, TNimType* mt);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___MCSdS9cTdQvttqiM9azLzkDg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getHcrInitName__ao6gUnuVfQLtZ89c4kaIKfg_5)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, hcrGetProcLoadCode__uWPA1lTRrPufWdliMF9aGrg)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, NimStringDesc* sym, NimStringDesc* prefix, NimStringDesc* handle, NimStringDesc* getProcFunc);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___E9bSTz8DQ4tgiLV9avQjFgFA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___3CQpPXVDiNqC3jKO8Juliw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___w50CkyHBltcyR8rWxttZCg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genDatInitCode__7ll08CGQoDzh9cxhZCroU4w_2)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getDatInitName__ao6gUnuVfQLtZ89c4kaIKfg_6)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m);
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(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___fmEfDTfNDkVDxWi9c0O6D2g)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, registerModuleToMain__9aldr9cciNpmwLn9bc4Nq2PGQ)(tyObject_BModuleListcolonObjectType___CpP4eJLbv5ZwofQXpESuGA* g, tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___k9bgPIs43oLgxnk1l4TNQaw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___5MqeIopvDuA9aozxL79cQ88g)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
static N_INLINE(NI, rawGet__QnNqXOulpiE3rTDm0rj6bgtables)(tyObject_Table__fdKWDDO1P17zvuQPReVgRA t, NI32 key, NI* hc);
static N_INLINE(NI, hash__ixIcN23Rzgwj4rjH9cMHDWQhashes)(NI32 x);
static N_INLINE(NIM_BOOL, isFilled__5Qpmu5QqwDY0esVXn6wf7wtables)(NI hcode);
static N_INLINE(NI, nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables)(NI h, NI maxHash);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___Zp9bMZDO5tEkvVLTxiKsBkA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___j5FZyaqnqjc2dcsUkAp28Q)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___EbvvG9awBeRKzx8xuBIb7TA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, sigHash__mSn9a9aX0NBzWqerwPW0qRww_2)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyArray__qtqsWM5aXmcpMIVmvq3kAA Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___9a8besSQa09cOOt9b9cgdVwY9aQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___oVKF7oq59cRGAaMpvWzNWbw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___7ru3bwKuSx4Sc8ilsBmX3g)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___MDIdJXTVckPj57aO7LMVgw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___vQDE0VOBftnrpkVsM9cme4w)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___9bmR9bM9b0qqEqU0QJKnmLQnA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___88tWbH31SmOWJjgJ7RnfHA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___t1CB59bEwlxfHZhNwNNz1bw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___YbLM7ZajsWOFLl4iSo0Krg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuReplaceStr)(NimStringDesc* s, NimStringDesc* sub, NimStringDesc* by);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___rH7Ns9bqAnnfkukwBIlz9bKg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___zx9ctq3Ffe9aysjoWhZOzevQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___T9a21DAzFCa3OqRooKKtkqw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, finishTypeDescriptions__7ll08CGQoDzh9cxhZCroU4w_3)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(void, seqV2ContentType__MFyPdYFFCqzDX9cGGcC0rbA)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* check);
N_LIB_PRIVATE N_NIMCALL(void, genMainProc__7ll08CGQoDzh9cxhZCroU4w_4)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m);
static N_NIMCALL(void, Marker_tyRef__UjwNQwrGjW3X9ahveEH9bnWA)(void* p, NI op);
N_LIB_PRIVATE N_CLOSURE(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, loadLib__U9bFGPRkCoZVGu0OHStKJag)(NimStringDesc* handle, NimStringDesc* name, void* ClE_0);
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, generateThreadVarsSize__7ll08CGQoDzh9cxhZCroU4w_5)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___Y4DThr9bpMbmoKpvgT1rYwg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toObjFile__GMjJ0d3khWrmxAqhh9anEsw)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* filename);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genModule__EFwkiA59cPQJZpsz0yL8eHQ)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* 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(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___j6hWzb1y4ej13yZg5WynCQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___7GaivGwvdxlAsVH2IdyT2Q)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getCompileCFileCmd__uOCPoEVtEQdC7k9cm7JeVsw)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg cfile, NIM_BOOL isMainFile, NIM_BOOL produceOutput);
static N_INLINE(void, addNimDefines__jVBximZchOMC4kzSRdtvHgcgen)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** result, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___YfbBxPLyPvVS6F2y9bSUFIA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genMergeInfo__T0VHRXp9cMnXMqYxgPwvmXw)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(void, generateThreadLocalStorage__7ll08CGQoDzh9cxhZCroU4w_6)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___OBvl4G6evYkvK9b9bClFGqNw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, generateHeaders__7ll08CGQoDzh9cxhZCroU4w_7)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuReplaceChar)(NimStringDesc* s, NIM_CHAR sub, NIM_CHAR by);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___pHsLkkx9bTDctZjmJqwCYRA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___ksH6NowTz9bh4eMOdyaiR1w)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, shouldRecompile__H4aCBrBgfkxUNX78oimi1g)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* code, tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg cfile);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, equalsFile__Wiam9c8x73Mtmbj0r4Ppikg)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r, NimStringDesc* filename);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, writeRope__LLRRC42xWBSkxzV9bsPu7lA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* head, NimStringDesc* filename);
static N_INLINE(NIM_BOOL, fileExists__2KLbGVKGy3qOdtJ4Bb1ADgos)(NimStringDesc* filename);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nosexistsFile)(NimStringDesc* filename);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nosfileNewer)(NimStringDesc* a, NimStringDesc* b);
N_LIB_PRIVATE N_NIMCALL(void, addFileToCompile__0nANBPjKLpImf3GNXBeQ2Q)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg cf);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, mergeRequired__X8MaNNxDVB7fxLVXrvJcFw)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(void, mergeFiles__l8sH9bHsXY4q3tbS3srelEw)(NimStringDesc* cfilename, tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(void, close__yy9bzEsQhd9bXopz79cWnxXdw)(tyObject_NdiFile__9cEuXfAnHp9bnWFK409cMtsEw* f, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(void, writeMapping__LBHXhYTVO2vldQU4a5LZ9aQ)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* symbolMapping);
N_LIB_PRIVATE N_NIMCALL(void, writeHeader__7ll08CGQoDzh9cxhZCroU4w_8)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___y39ant8iE9bjKB0kbkRCAibQ)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___RKXvZR1cmZW5dfjtFQCG3g)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___nEA33x9cMfuJw3ZiGbn25iw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___0xK6HolrLvVFWil73hZYbA)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___Z2c9cvs0wVVVqTEZ3Qwe9bfw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
extern TNimType NTI__CpP4eJLbv5ZwofQXpESuGA_;
extern TNimType NTI__NkKlBfvvsMUW70DxvxLVIg_;
extern TNimType NTI__9cG6VsX22pOhho6kxyhFVow_;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_2, "TM", 2);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_3, "_", 1);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_5, "ndi", 3);
extern TNimType NTI__SHVxAqOYtIy7teT1q4s0zQ_;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_7, ".h", 2);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_8, "nimBackendAssumesChange", 23);
static NIM_CONST tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw TM__MQdRN7fpbG7rPm4JpVVAhA_9 = {
0xec, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_10, "\'sons\' is not accessible using discriminant \'kind\' of type \'TNo"
"de\'", 66);
extern TNimType NTI__oUyaggHmIX9bpJcMeoG6lpA_;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_16, "\011", 1);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_18, "if (nim_hcr_do_init_)\012", 22);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_19, "cgen.nim(127, 14) `p.module != nil` ", 36);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_20, "{", 1);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_21, "\012", 1);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_26, "iterators.nim(189, 11) `len(a) == L` the length of the seq chan"
"ged while iterating over it", 90);
static NIM_CONST tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw TM__MQdRN7fpbG7rPm4JpVVAhA_27 = {
0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_28, "\'sym\' is not accessible using discriminant \'kind\' of type \'TNod"
"e\'", 65);
extern TNimType NTI__DfgJFJEYoj4YBAHLZPl5lQ_;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_29, "cgen.nim(89, 11) `sym.annex != nil` ", 36);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_30, "cgen.nim(127, 14) `m != nil` ", 29);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_31, "static", 6);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_32, "extern", 6);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_33, " ", 1);
extern TNimType NTI__WwUFq9cJ2xKRlsAWVEHyPRg_;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_35, "ropes.nim(177, 16) `it.right != nil` ", 37);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_36, "ropes.nim(180, 15) `it != nil` ", 31);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_37, "cannot generate C type for: ", 28);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_38, "void", 4);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_39, "void*", 5);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_40, "nimStrVersion", 13);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_41, "N_LIB_IMPORT ", 13);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_42, "N_LIB_EXPORT ", 13);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_43, "static ", 7);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_44, "N_LIB_PRIVATE ", 14);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_45, "ccgtypes.nim(163, 14) `typ.isResolvedUserTypeClass` ", 52);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_48, "ccgtypes.nim(196, 19) `false` mapType", 37);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_49, "ccgtypes.nim(197, 17) `false` mapType", 37);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_50, "genProcParams", 13);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_51, "_0", 2);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_52, "ccgtypes.nim(255, 10) `skResult != s.kind` ", 43);
extern TNimType NTI__9a3YiReNVD0IJHWFKgXRe9ag_;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_55, "getTypeName: ", 13);
extern TNimType NTI__4hi0XQqK9aLiPuWT9acsXm9aQ_;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_57, "union", 5);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_59, "struct", 6);
extern TNimType NTI__Ef05srmQTDulnBdXR4Ja6Q_;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_61, "ccgtypes.nim(376, 14) `m.forwTypeCache[sig] == result` ", 55);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_62, "getTypeForward(", 15);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_63, "cannot map the empty seq type to a C type", 41);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_64, "struct", 6);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_65, "_Content", 8);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_66, "struct ", 7);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_67, " {\012  NI len; ", 13);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_68, "_Content* p;\012};\012", 16);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_69, "*", 1);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_72, ", ", 2);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_73, "void* ClE_0", 11);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_74, "...", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_75, "void)", 5);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_76, ")", 1);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_77, "(", 1);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_78, "_PTR", 4);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_79, "_actual", 7);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_80, "N_NIMCALL", 9);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_81, "N_STDCALL", 9);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_82, "N_CDECL", 7);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_83, "N_SAFECALL", 10);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_84, "N_SYSCALL", 9);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_85, "N_INLINE", 8);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_86, "N_NOINLINE", 10);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_87, "N_FASTCALL", 10);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_88, "N_CLOSURE", 9);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_89, "N_NOCONV", 8);
N_LIB_PRIVATE NIM_CONST tyArray__t1sx1FVcaX4m77XqENedIQ CallingConvToStr__A7GdKVVGtI3pvj9cV9adydpw = {((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_80),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_81),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_82),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_83),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_84),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_85),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_86),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_87),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_88),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_89)}
;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_90, "(*", 2);
static NIM_CONST tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw TM__MQdRN7fpbG7rPm4JpVVAhA_91 = {
0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_92, "\'strVal\' is not accessible using discriminant \'kind\' of type \'T"
"Node\'", 68);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_93, "cgen.nim(988, 9) `prc.ast != nil` ", 34);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_94, "proc has no result symbol", 25);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_97, "ccgtypes.nim(85, 10) `s.kind in skLocalVars + {skTemp}` ", 56);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_100, "\'alignment\' is not accessible using discriminant \'kind\' of type"
" \'TSym\'", 70);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_101, " register", 9);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_102, " volatile", 9);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_103, " = ", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_104, ";", 1);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_105, "cgen.nim(1009, 15) `res.loc.r != nil` ", 38);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_106, ".len = 0; ", 10);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_107, ".p = NIM_NIL;", 13);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_108, " = (", 4);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_109, ")0;", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_110, "nimZeroMem", 10);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_111, "((void*)", 8);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_112, "(&", 2);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_113, ", sizeof(", 9);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_114, "));", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_115, ".Sup", 4);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_116, ".m_type = ", 10);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_117, "TNimType", 8);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_118, "TNimNode", 8);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_119, ".nim.cpp", 8);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_120, ".nim.m", 6);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_121, ".nim.c", 6);
extern NIM_CONST tyArray__YVLVUFXb56wpTwg4j9bCpYQ OS__Jx0qy9c9bSo4fGkMxUfUaAaw;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_122, "/", 1);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_123, "ccgtypes.nim(1350, 12) `m.g.modules[owner.position] != nil` ", 60);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_124, "request for RTTI generation for incomplete object: ", 51);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_125, "|", 1);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_126, ".", 1);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_127, "NIM_NIL", 7);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_128, " needs to have the \'nimcall\' calling convention", 47);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_129, "0", 1);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_130, "void*", 5);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_131, "nimTypeNames", 12);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_132, "ref object", 10);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_133, "anon ref object from ", 21);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_134, "nimTypeRoot", 11);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_135, "genTypeInfo(", 12);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_137, "ccgtypes.nim", 12);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__MQdRN7fpbG7rPm4JpVVAhA_136 = {((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_137),
((NI) 1371),
((NI) 21)}
;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_138, "0", 1);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_141, "Marker_", 7);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_142, "op", 2);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_143, "ccgtrav.nim(154, 10) `typ.kind != tyTypeDesc` ", 46);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_144, "ccgtrav.nim(120, 10) `typ.kind == tySequence` ", 46);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_146, "T", 1);
static NIM_CONST tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q TM__MQdRN7fpbG7rPm4JpVVAhA_147 = {((NU16) 0), ((NI16) -1), ((NI32) -1)}
;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_148, ".len", 4);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_149, "len", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_150, "Sup.len", 7);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_151, "for (", 5);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_152, " = 0; ", 6);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_153, " < ", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_154, "; ", 2);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_155, "++) {", 5);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_156, "cgen.nim(127, 14) `c.p.module != nil` ", 38);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_157, "[", 1);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_158, "]", 1);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_161, "genTraverseProc", 15);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_163, "genRecordFieldsAux", 18);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_164, "mangleRecFieldName", 18);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_165, "struct {", 8);
extern NIM_CONST tyArray__T6obFRqWmmY1URYbExtG5g CC__78I18QZNZFIv9ah7oETc0jg;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_166, "struct __attribute__((__packed__)){", 35);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_167, "genRecordFieldsAux(record case branch)", 38);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_169, "\'bitsize\' is not accessible using discriminant \'kind\' of type \'"
"TSym\'", 68);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_170, "genRecordFieldsAux()", 20);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_171, "genTraverseProc()", 17);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_172, "ccgtrav.nim(43, 14) `branch.kind in {nkOfBranch, nkElse}` ", 58);
static NIM_CONST tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw TM__MQdRN7fpbG7rPm4JpVVAhA_174 = {
0xe0, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_175, "\'intVal\' is not accessible using discriminant \'kind\' of type \'T"
"Node\'", 68);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_176, "ULL", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_178, "((", 2);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_179, "NimStringDesc", 13);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_180, "*) NIM_NIL)", 11);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_181, "*) &", 4);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_182, "TGenericSeq", 11);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_183, "const", 5);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_184, "NimStrPayload", 13);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_185, "NimStringV2", 11);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_186, "cannot determine how to produce code for string literal", 55);
static NIM_CONST tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw TM__MQdRN7fpbG7rPm4JpVVAhA_187 = {
0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_188, "\'floatVal\' is not accessible using discriminant \'kind\' of type "
"\'TNode\'", 70);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_189, "f", 1);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_190, "genLiteral(", 11);
extern TNimType NTI__G4E4Gxe7oI2Cm03rkiOzQw_;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_194, ".Field", 6);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_196, "nimGCvisit", 10);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_197, ");", 2);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_198, "nimGCvisitSeq", 13);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_199, ".ClE_0", 6);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_200, ".p->data", 8);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_201, "->data", 6);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_202, "a", 1);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_203, "(*a)", 4);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_204, "ccgtypes.nim(1223, 9) `typ[0] != nil` ", 38);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_205, "ccgtypes.nim(1193, 11) `typ.n[i].kind == nkSym` ", 48);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_207, ", \012", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_210, "ccgtypes.nim(1089, 11) `n[0].kind == nkSym` ", 44);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_211, "anonymous obj with discriminator", 32);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_212, "ccgtypes.nim(1093, 12) `L > 0` ", 31);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_213, "genObjectFields", 15);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_214, "genObjectFields; nkOfBranch broken", 34);
static NIM_CONST tyObject_Int128__9a9axPfb75jdWY25AamJewkA TM__MQdRN7fpbG7rPm4JpVVAhA_216 = {{((NU32) IL64(4294967295)),
((NU32) IL64(4294967295)),
((NU32) IL64(4294967295)),
((NU32) 2147483647)}
}
;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_219, "genObjectFields(nkRecCase)", 26);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_222, "node has no type", 16);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_223, "{\012", 2);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_224, "0x", 2);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_225, "0123456789abcdef", 16);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_228, ",\012", 2);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_229, "}\012", 2);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_233, "{", 1);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_235, "}", 1);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_236, " struct {", 9);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_237, "  NI cap; ", 10);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_238, " data[", 6);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_239, "];", 2);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_240, "} ", 2);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_241, " = {", 4);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_242, " | NIM_STRLIT_FLAG, ", 20);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_243, "};", 2);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_244, ", {", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_246, "NIM_CONST", 9);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_247, "  ", 2);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_248, " Sup;", 5);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_249, "ccgtypes.nim(913, 10) `t.kind == tyProc` ", 41);
static NIM_CONST tyArray__FleBT9cC2nxhgiXmSYYnEKA TM__MQdRN7fpbG7rPm4JpVVAhA_255 = {((NU32) 0),
((NU32) 0),
((NU32) 0),
((NU32) 0)}
;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_260, "ccgexprs.nim(2805, 9) `false` unreachable", 41);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_261, "._", 2);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_264, "NIM_FALSE", 9);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_265, "0.0", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_266, "NIM_NIL", 7);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_267, "{0, NIM_NIL}", 12);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_268, "{NIM_NIL, NIM_NIL}", 18);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_271, "{}", 2);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_272, "cannot create null element for: ", 32);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_273, "nimCopyMem", 10);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_274, ", (NIM_CONST void*)&", 20);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_275, "asgnRef", 7);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_276, "((void**) ", 10);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_277, "unsureAsgnRef", 13);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_278, ", (NIM_CONST void*)", 19);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_279, "genericShallowAssign", 20);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_280, ", (void*)", 9);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_281, "genericAssign", 13);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_282, "genericSeqAssign", 16);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_283, "copyString", 10);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_284, "copyStringRC1", 13);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_285, "if (", 4);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_286, ") ", 2);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_287, "nimGCunrefNoCycle", 17);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_288, "ccgexprs.nim(209, 10) `field != nil` ", 37);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_289, "ClE_0", 5);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_290, ".ClP_0 = ", 9);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_291, ".ClP_0;", 7);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_296, "ccgexprs.nim", 12);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__MQdRN7fpbG7rPm4JpVVAhA_295 = {((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_296),
((NI) 336),
((NI) 23)}
;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_298, "genericAssignOpenArray", 22);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_299, "Len_0, ", 7);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_300, "genAssignment: ", 15);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_301, "memTrackerWrite", 15);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_302, "objectInit", 10);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_303, ".name = ", 8);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_304, "\011return ", 8);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_305, "cgen.nim(574, 9) `s.loc.r != nil` ", 34);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_311, "cgen.nim(400, 12) `rdLoc(loc) != nil` ", 38);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_312, " = 0;", 5);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_313, "chckNil", 7);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_316, "specializeResetN", 16);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_317, "specializeResetN()", 18);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_318, "ccgreset.nim(33, 14) `branch.kind in {nkOfBranch, nkElse}` ", 59);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_321, "((void**)&", 10);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_322, ", NIM_NIL);", 11);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_323, ".ClE_0, NIM_NIL);", 17);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_324, ".ClP_0 = NIM_NIL;", 17);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_325, " = NIM_NIL;", 11);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_327, "closure generation failed", 25);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_328, ", (", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_329, ") ClE_0);", 9);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_330, ") ClE_0;", 8);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_331, "NIM_BOOL* nimErr_;", 18);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_332, "nimErr_ = ", 10);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_333, "nimErrorFlag", 12);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_334, "();", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_335, "cgen.nim(246, 10) `line >= 0` ", 30);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_336, "__declspec(noreturn) ", 21);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_337, "__declspec(naked) ", 18);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_338, " {", 2);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_339, "}\012\012", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_340, "#", 1);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_341, "  define nimfr_(proc, file) \\\012      TFrame FR_; \\\012      FR_.pro"
"cname = proc; FR_.filename = file; FR_.line = 0; FR_.len = 0; ", 125);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_342, "nimFrame", 8);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_343, "(&FR_);\012\012  ", 11);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_344, "  define nimfrs_(proc, file, slots, length) \\\012      struct {TFr"
"ame* prev;NCSTRING procname;NI line;NCSTRING filename; NI len; V"
"arSlot s[slots];} FR_; \\\012      FR_.procname = proc; FR_.filename"
" = file; FR_.line = 0; FR_.len = length; ", 232);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_345, "((TFrame*)&FR_);\012\012  ", 20);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_346, "  define nimln_(n, file) \\\012      FR_.line = n; FR_.filename = f"
"ile;\012  ", 70);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_347, "\011nimfr_(", 8);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_348, "nimProfile", 10);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_349, "popFrame", 8);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_350, "cgen.nim(662, 9) `lib != nil` ", 30);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_351, "cgen.nim(666, 11) `lib.name == nil` ", 36);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_353, "||", 2);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_354, "nimLoadLibrary", 14);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_355, "))", 2);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_357, "if (!(", 6);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_358, ")) ", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_359, "nimLoadLibraryError", 19);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_360, "))) ", 4);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_361, "loadDynamicLib", 14);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_362, "Dl_$1_", 6);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_367, "cgen.nim", 8);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__MQdRN7fpbG7rPm4JpVVAhA_366 = {((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_367),
((NI) 735),
((NI) 18)}
;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_368, "wrong index: ", 13);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_369, "nimGetProcAddr", 14);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_370, "cgen.nim(1222, 11) `sym.loc.r != nil` ", 38);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_371, "extern ", 7);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_372, "N_LIB_EXPORT_VAR ", 17);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_373, "NIM_THREADVAR ", 14);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_374, "cgsym: ", 7);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_375, ": ", 2);
extern TNimType NTI__cNCW9acsSznmEccl1fgQwkw_;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_376, "system module needs: ", 21);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_377, "NimStringDesc*", 14);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_378, "NCSTRING", 8);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_379, "NIM_BOOL", 8);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_380, "NIM_CHAR", 8);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_381, "NI", 2);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_382, "NI8", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_383, "NI16", 4);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_384, "NI32", 4);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_385, "NI64", 4);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_386, "NF", 2);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_387, "NF32", 4);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_388, "NF64", 4);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_389, "NF128", 5);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_390, "NU", 2);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_391, "NU8", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_392, "NU16", 4);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_393, "NU32", 4);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_394, "NU64", 4);
N_LIB_PRIVATE NIM_CONST tyArray__Sjq0yxKksnvb1U6tEMqzYg NumericalTypeToStr__do7KqFuyalEFiD7s8tBisg = {((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_389),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_390),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_391),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_392),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_393),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_394)}
;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_395, "tyStatic for getSimpleTypeDesc", 30);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_396, "checkabi", 8);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_397, "&", 1);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_398, "getTypeDescAux: enum", 20);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_399, "ccgtypes.nim(787, 13) `cacheGetType(m.typeCache, sig) == nil` ", 62);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_400, " : ", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_401, " data[SEQ_DECL_SIZE];", 21);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_408, "ccgtypes.nim(669, 14) `false` invalid apostrophe type parameter"
" index", 69);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__MQdRN7fpbG7rPm4JpVVAhA_411 = {((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_137),
((NI) 832),
((NI) 25)}
;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_413, "<", 1);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_415, " COMMA ", 7);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_417, "> ", 2);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_418, "ccgtypes.nim(859, 14) `t.kind != tyTuple` ", 42);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_419, " __attribute__((__packed__))", 28);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_420, "#pragma pack(push, 1)\012", 22);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_421, "* m_type;", 9);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_422, " : public ", 10);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_423, "};\012", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_424, "#pragma pack(pop)\012", 18);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_425, "ccgtypes.nim(875, 16) `m.forwTypeCache[sig] == result` ", 55);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_427, "char dummy;\012", 12);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_429, "getTypeDescAux(", 15);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_430, "extern \"C\" ", 11);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_431, " __attribute__((naked))", 23);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_432, " __attribute__((noreturn))", 26);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_433, ";\012", 2);
extern TNimType NTI__EtHNvCB0bgfu9bFjzx9cb6aA_;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_434, "request to generate code for .compileTime proc: ", 48);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_435, "expr: proc not init ", 20);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_436, "cgen.nim(1183, 12) `q.initProc.module == q` ", 44);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_437, "cgen.nim(1188, 11) `sym.loc.r != nil` ", 38);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_438, "ccgexprs.nim(2422, 9) `(sym.loc.r != nil) and (sym.loc.t != nil"
")` ", 66);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_439, "\'goto\' target must be a literal value", 37);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_441, "*) ", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_442, ".dynlib variables cannot have a value", 37);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_443, ".threadvar variables cannot have a value", 40);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_444, "NIM_CONST ", 10);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_445, " = $#;$n", 8);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_446, ";$n", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_447, "\011NimTV_ = (NimThreadVars*) ", 27);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_448, "GetThreadLocalVars", 18);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_449, "NimTV_->", 8);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_450, "nimRegisterThreadLocalMarker", 28);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_451, "nimRegisterGlobalMarker", 23);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_452, "nimln_(", 7);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_453, "ccgstmts.nim(338, 15) `typ.kind == tyProc` ", 43);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_454, "ccgstmts.nim(341, 17) `typ.len == typ.n.len` ", 45);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_455, "ccgcalls.nim(372, 11) `paramType.kind == nkSym` ", 48);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_456, "nimToCStringConv", 16);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_457, "wrong argument count", 20);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_459, "cgen.nim(127, 14) `targetProc.module != nil` ", 45);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_460, "hcrRegisterGlobal(", 18);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_461, ", \"", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_462, "\", sizeof(", 10);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_463, "), ", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_464, ", (void**)&", 11);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_465, "if (hcrRegisterGlobal(", 22);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_466, "))\012", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_467, "ccgcalls.nim(306, 9) `typ.kind == tyProc` ", 42);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_468, "ccgcalls.nim(308, 11) `typ.len == typ.n.len` ", 45);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_469, "ccgcalls.nim(261, 11) `typ.n[i].kind == nkSym` ", 47);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_472, "-", 1);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_473, " != -1 && ((NU)(", 16);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_474, ") >= (NU)(", 10);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_475, "Len_0) || (NU)(", 15);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_476, "Len_0))){ ", 10);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_477, "raiseIndexError", 15);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_478, "(); ", 4);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_479, "goto BeforeRet_;", 16);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_480, "goto LA", 7);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_482, "_;", 2);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_483, " != -1 && (", 11);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_484, " < -1 || ", 9);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_485, " || ", 4);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_486, " > ", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_487, ")){ ", 4);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_488, ") >= (NU)", 9);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_489, " || (NU)(", 9);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_490, "nimPrepareStrMutationV2", 23);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_491, "openArrayLoc: ", 14);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_494, "ccgstmts.nim(690, 10) `p.config.exc == excGoto` ", 48);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_495, "if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;", 44);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_496, "if (NIM_UNLIKELY(*nimErr_)) goto LA", 35);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_498, "ccgcalls.nim(341, 13) `d.t != nil` ", 35);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_499, "ccgcalls.nim(353, 13) `d.t != nil` ", 35);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_500, "ccgcalls.nim(538, 9) `typ.kind == tyProc` ", 42);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_501, "ccgcalls.nim(539, 9) `typ.len == typ.n.len` ", 44);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_503, "ccgcalls.nim", 12);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__MQdRN7fpbG7rPm4JpVVAhA_502 = {((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_503),
((NI) 542),
((NI) 17)}
;
static NIM_CONST tySet_tyChar__nmiMWKVIe46vacnhAFrQvw TM__MQdRN7fpbG7rPm4JpVVAhA_504 = {
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_512, "call expression expected for C++ pattern", 40);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__MQdRN7fpbG7rPm4JpVVAhA_516 = {((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_503),
((NI) 445),
((NI) 17)}
;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_517, "ccgcalls.nim(446, 9) `typ.n[i].kind == nkSym` ", 46);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_518, "->", 2);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_527, "ccgcalls.nim(557, 15) `d.t != nil` ", 35);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_528, "ccgcalls.nim(574, 13) `typ.len == typ.n.len` ", 45);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_531, "ccgcalls.nim(122, 15) `d.t != nil` ", 35);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_532, "ccgcalls.nim(585, 9) `typ.kind == tyProc` ", 42);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_533, "ccgcalls.nim(586, 9) `typ.len == typ.n.len` ", 44);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__MQdRN7fpbG7rPm4JpVVAhA_534 = {((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_503),
((NI) 590),
((NI) 17)}
;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_537, "ccgcalls.nim(608, 11) `typ.len == typ.n.len` ", 45);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_538, "varargs for objective C method\?", 31);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_539, "ccgcalls.nim(611, 11) `typ.n[i].kind == nkSym` ", 47);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_541, "ccgcalls.nim(638, 13) `d.t != nil` ", 35);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_542, "ccgcalls.nim(282, 9) `typ.kind == tyProc` ", 42);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_543, "ccgcalls.nim(283, 9) `typ.len == typ.n.len` ", 44);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_545, "expr: var not init ", 19);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_546, "expr: temp not init ", 20);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_547, "expr: param not init ", 21);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_548, "expr(", 5);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_549, "); unknown symbol", 17);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_552, "LA", 2);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_554, "ccgexprs.nim(655, 9) `e[1].typ != nil` ", 39);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_560, "ccgexprs.nim(674, 12) `false` ", 30);
extern TNimType NTI__shZhZOdbVC5nnFvcXQAImg_;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_561, "ccgexprs.nim(556, 9) `e[1].typ != nil` ", 39);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_562, " == ", 4);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_563, "){ ", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_564, "raiseOverflow", 13);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_566, "ccgexprs.nim(570, 11) `false` ", 30);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_567, "ccgexprs.nim(2048, 11) `e[1].typ != nil` ", 41);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_568, "ccgexprs.nim(2049, 11) `e[2].typ != nil` ", 41);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_569, ")(", 2);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_570, "+", 1);
N_LIB_PRIVATE NIM_CONST tyArray__1SeZR8kaOX3FtWvHoBu9c4g opr__jSXnH9c8YRRwSdXyVdSg9acA = {((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_570),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_472),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_69),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_122)}
;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_571, " (", 2);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_572, " != ", 4);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_573, "raiseFloatInvalidOp", 19);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_574, " != 0.0 && ", 11);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_575, "*0.5 == ", 8);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_576, ") { ", 4);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_577, "raiseFloatOverflow", 18);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_578, "); ", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_579, "ccgexprs.nim(576, 9) `e[1].typ != nil` ", 39);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_580, "ccgexprs.nim(577, 9) `e[2].typ != nil` ", 39);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_583, "ccgexprs.nim(630, 11) `false` ", 30);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_584, "ccgexprs.nim(634, 9) `e[1].typ != nil` ", 39);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_585, "ccgexprs.nim(635, 9) `e[2].typ != nil` ", 39);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_586, "ccgexprs.nim(531, 9) `e[1].typ != nil` ", 39);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_587, "ccgexprs.nim(532, 9) `e[2].typ != nil` ", 39);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_588, "%", 1);
N_LIB_PRIVATE NIM_CONST tyArray__bKFSxC0i7ZtH3saMnwZufw opr__UAWyVnvyQoWbplounFNlGg = {((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_570),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_472),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_69),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_122),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_588),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_570),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_472)}
;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_589, " == 0){ ", 8);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_590, "raiseDivByZero", 14);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_591, "nimAddInt64", 11);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_592, "nimSubInt64", 11);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_593, "nimMulInt64", 11);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_594, "nimDivInt64", 11);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_595, "nimModInt64", 11);
N_LIB_PRIVATE NIM_CONST tyArray__bKFSxC0i7ZtH3saMnwZufw prc64__9bTptLAKOOYdunqlEwXM6PQ = {((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_591),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_592),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_593),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_594),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_595),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_591),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_592)}
;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_596, "nimAddInt", 9);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_597, "nimSubInt", 9);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_598, "nimMulInt", 9);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_599, "nimDivInt", 9);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_600, "nimModInt", 9);
N_LIB_PRIVATE NIM_CONST tyArray__bKFSxC0i7ZtH3saMnwZufw prc__8UqUr1y9abLbrO1vSUF2CqQ = {((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_596),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_597),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_598),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_599),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_600),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_596),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_597)}
;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_601, ", &", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_602, ")) { ", 5);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_603, "\'repr\' is not available for --newruntime", 40);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_604, "reprInt", 7);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_605, "((NI64)", 7);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_606, "reprFloat", 9);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_607, "reprBool", 8);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_608, "reprChar", 8);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_609, "reprEnum", 8);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_610, "((NI)", 5);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_611, "reprStr", 7);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_612, "reprSet", 7);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_613, "genRepr()", 9);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_614, "reprOpenArray", 13);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_615, "reprAny", 7);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_616, "\'repr\' doesn\'t support \'void\' type", 34);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_617, "getDynamicTypeInfo", 18);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_618, ".m_type", 7);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_619, "binaryStmt", 10);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_620, "+=", 2);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_621, "-=", 2);
N_LIB_PRIVATE NIM_CONST tyArray__H8bljeYwRVBMsVXxvskZog opr__O7uP3jzNu3e9auWdRdRa9cJA = {((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_620),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_621)}
;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_622, "ccgexprs.nim(2166, 13) `e[1].typ != nil` ", 41);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_623, "ccgexprs.nim(2167, 13) `e[2].typ != nil` ", 41);
N_LIB_PRIVATE NIM_CONST tyArray__H8bljeYwRVBMsVXxvskZog fun64__fjrbodMqcYB619bEDCGfJsA = {((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_591),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_592)}
;
N_LIB_PRIVATE NIM_CONST tyArray__H8bljeYwRVBMsVXxvskZog fun__gOe15RXeJ2duD5In6NwLXA = {((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_596),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_597)}
;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_628, "appendChar", 10);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_632, " + ", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_633, "appendString", 12);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_635, "rawNewString", 12);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_636, "binaryStmtAddr", 14);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_637, "nimAddCharV1", 12);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_638, "addChar", 7);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_639, "ccgexprs.nim(1135, 9) `d.k == locNone` ", 39);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_648, "prepareAdd", 10);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_649, "resizeString", 12);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_650, "incrSeqV3", 9);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_651, "((TGenericSeq*)(", 16);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_653, "NI ", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_654, "++;", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_655, " == 0)", 6);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_656, "ccgexprs.nim(478, 9) `e[1].typ != nil` ", 39);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_657, "ccgexprs.nim(479, 9) `e[2].typ != nil` ", 39);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_658, "eqStrings", 9);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_659, "cmpStrings", 10);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_660, ") <= 0)", 7);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_661, ") < 0)", 6);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_662, ".ClP_0 == 0)", 12);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_663, "nimIntToStr", 11);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_664, "nimInt64ToStr", 13);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_665, "nimBoolToStr", 12);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_666, "nimCharToStr", 12);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_667, "nimFloatToStr", 13);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_668, "cstrToNimstr", 12);
extern TNimType NTI__MvZmat48bhe9b6x9aUD58D5Q_;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_670, "no \'of\' operator available for pure objects", 43);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_671, ") && (", 6);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_672, "isObj", 5);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_673, ".m_type, ", 9);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_675, "Nim_OfCheck_CACHE", 17);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_676, "isObjWithCache", 14);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_677, "ccgexprs.nim(1213, 10) `refType.kind == tyRef` ", 47);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_678, "nimNewObj", 9);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_679, "nimNewObjUninit", 15);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_680, "the destructor that is turned into a finalizer needs to have th"
"e \'nimcall\' calling convention", 93);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_681, "nimGCunrefRC1", 13);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_682, " = NIM_NIL; }", 13);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_683, "newObj", 6);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_684, "newObjRC1", 9);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_685, ".len = ", 7);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_686, ".p = (", 6);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_687, "newSeqPayload", 13);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_688, "newSeq", 6);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_689, "newSeqRC1", 9);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_690, "nimNewSeqOfCap", 14);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_691, "<stdalign.h>", 12);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_692, "unknown ast", 11);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_693, "Field", 5);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_694, ")-(", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_695, ")+1", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_696, "Len_0-1)", 8);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_697, "Len_0", 5);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_698, " \? (", 4);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_699, "nimCStrLen", 10);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_700, ")-1) : -1)", 10);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_701, " \? ", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_702, ") : 0)", 6);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_703, "genArrayLen()", 13);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_704, "unaryStmt", 9);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_705, "nimGCref", 8);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_706, "); }", 4);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_707, "nimGCunref", 10);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_708, "setLengthStrV2", 14);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_709, "genSetLengthStr", 15);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_710, "setLengthStr", 12);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_711, "ccgexprs.nim(1708, 9) `d.k == locNone` ", 39);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_712, "setLengthSeqV2", 14);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_713, "(&(", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_714, ")->Sup, ", 8);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_715, "ccgexprs.nim(1792, 9) `d.k == locNone` ", 39);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_716, "ccgexprs.nim(1764, 9) `setType.kind == tySet` ", 46);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_717, "ccgexprs.nim(1860, 19) `false` ", 31);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_718, "ccgexprs.nim(1867, 19) `false` ", 31);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_719, "countBits32", 11);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_720, "countBits64", 11);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_721, "ccgexprs.nim(486, 9) `e[1].typ != nil` ", 39);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_722, "ccgexprs.nim(487, 9) `e[2].typ != nil` ", 39);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_723, "(((", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_724, " & ~ ", 5);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_725, ")==0)&&(", 8);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_726, ")==0)", 5);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_727, " & ", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_728, " | ", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_731, "ccgexprs.nim(1829, 11) `e[1].typ != nil` ", 41);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_732, "ccgexprs.nim(1830, 11) `e[2].typ != nil` ", 41);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_733, "genSetOp()", 10);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_734, "cardSet", 7);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_735, "++) { ", 6);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_736, " = ((", 5);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_737, "] & ~ ", 6);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_738, "]) == 0);", 9);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_739, "  if (!", 7);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_740, ") break;}", 9);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_741, "nimCmpMem", 9);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_742, ") != 0);", 8);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_743, "ccgexprs.nim(1901, 13) `e[1].typ != nil` ", 41);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_744, "ccgexprs.nim(1902, 13) `e[2].typ != nil` ", 41);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_745, "for ($1 = 0; $1 < $2; $1++) { $n  $3 = (($4[$1] & ~ $5[$1]) == "
"0);$n  if (!$3) break;}$n", 88);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_746, "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_747, "& ~", 3);
N_LIB_PRIVATE NIM_CONST tyArray__Tf7McyWEXuMltjAT4dp6Jw lookupOpr__w7WuexLq9cuXtAtqil9csnVQ = {((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_745),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_746),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_397),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_125),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_747)}
;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_748, "genSetOp", 8);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__MQdRN7fpbG7rPm4JpVVAhA_749 = {((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_296),
((NI) 1041),
((NI) 17)}
;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_750, ", \"\"", 4);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_751, ", Genode::Cstring(", 18);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_752, "->data, ", 8);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_753, "->len)", 6);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_755, "<base/log.h>", 12);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_756, "<util/string.h>", 15);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_757, "Genode::log(\"\"", 14);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_758, "echoBinSafe", 11);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_759, "(NIM_NIL, ", 10);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_763, "\'$1\' can only be used in compile-time context", 45);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_764, "genericDeepCopy", 15);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_765, "genericSeqDeepCopy", 18);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_766, "genericDeepCopyOpenArray", 24);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_767, "genDeepCopy: ", 13);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_768, ".len && ", 8);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_769, ".p != ", 6);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_770, ".p) {", 5);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_771, ".len; ", 6);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_772, ".p = ", 5);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_773, ".p;", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_774, ".p && !(", 8);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_775, ".p->cap & NIM_STRLIT_FLAG)) {", 29);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_776, "deallocShared", 13);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_777, ".p);", 4);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_778, ".p = NIM_NIL; ", 14);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_779, ".len = 0; }", 11);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_780, "destructor turned out to be not trivial", 39);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_781, "invalid context for \'toOpenArray\'; \'toOpenArray\' is only valid "
"within a call expression", 87);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_782, "genMagicExpr: ", 14);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_789, "ccgexprs.nim(2386, 10) `n.kind in {nkPar, nkTupleConstr, nkClos"
"ure}` ", 69);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_791, "CNSTCLOSURE", 11);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_792, "closure to closure created", 26);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_793, ".ClE_0 = ", 9);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_795, "ccgexprs.nim(774, 10) `r != nil` ", 33);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_796, "ccgexprs.nim(777, 11) `ty.kind in {tyTuple, tyObject}` ", 55);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_797, "genCheckedRecordField", 21);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_798, "genObjConstr", 12);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_799, "ccgexprs.nim(811, 11) `it.kind in nkCallKinds` ", 47);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_800, "ccgexprs.nim(812, 11) `it[0].kind == nkSym` ", 44);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_801, "ccgexprs.nim(816, 11) `disc.kind == nkSym` ", 43);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_802, "raiseFieldError", 15);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_806, "union { ", 8);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_807, " source; ", 9);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_808, " dest; } LOC", 12);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_809, "if ((NU)(", 9);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_810, ") > (NU)(", 9);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_811, "raiseIndexError2", 16);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_812, "raiseIndexError3", 16);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_813, "index out of bounds, the container is empty", 43);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_814, "index ", 6);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_815, " not in ", 8);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_816, " .. ", 4);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_817, "[(", 2);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_818, ")- ", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_819, "Len_0)){ ", 9);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_820, ",", 1);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_821, "Len_0-1); ", 10);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_822, ") > (NU)", 8);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_823, "-1); ", 5);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_824, "ccgexprs.nim(761, 10) `tupType.kind == tyTuple` ", 48);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_825, "genTupleElem", 12);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_826, "expr(nkBracketExpr, ", 20);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_827, "genDeref ", 9);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_828, "genRecordFieldAux", 17);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_829, "genRecordField 3 ", 17);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_830, "ccgstmts.nim(623, 13) `n[0].kind == nkSym` ", 43);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_834, "FR", 2);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_835, ".procname = ", 12);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_836, ".filename = ", 12);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_837, ";  ", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_838, ".line = ", 8);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_839, ".len = -1; nimFrame(&", 21);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_842, "popFrameOfAddr", 14);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_848, "genIf()", 7);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_850, "->Sup", 5);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_852, " = &", 4);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_853, " && !", 5);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_854, "raiseObjectConversionError", 26);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_855, "if (!", 5);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_856, "raiseRangeErrorU", 16);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_857, "raiseRangeErrorF", 16);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_858, "raiseRangeErrorI", 16);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_859, "csize", 5);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_860, "(NI64)", 6);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_861, ") < ", 4);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_862, ") > ", 4);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_863, "ccgstmts.nim(584, 9) `t.len == 2` ", 34);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_865, "case statement must be exhaustive for computed goto", 51);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_866, "case statement cannot work on enums with holes for computed got"
"o", 64);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_867, "case statement has too many cases for computed goto", 51);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_868, "case statement has to start at 0 for computed goto", 50);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_870, "no case statement found for computed goto", 41);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_880, "range notation not available for computed goto", 46);
extern TNimType NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_886, "ccgstmts.nim(484, 9) `n.kind in {nkLetSection, nkVarSection}` ", 62);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_895, "while (1) {", 11);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_897, "genVarTuple", 11);
N_LIB_PRIVATE TNimType NTI__9cSd9cjH9cnPQaBRO0ioKSxRA_;
N_LIB_PRIVATE TNimType NTI__sno9c9bXUVS2CqhtWOJadaCw_;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_905, "NIM_BOOL ", 9);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_906, " = NIM_FALSE;", 13);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_907, " |= hcrRegisterGlobal(", 22);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_908, ");\012", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_911, "for statement not eliminated", 28);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_919, "ccgstmts.nim(819, 11) `b[i].kind != nkRange` ", 45);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_920, "ccgstmts.nim(821, 11) `b[i].kind in {nkStrLit .. nkTripleStrLit"
"}` ", 66);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_921, ")) goto ", 8);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_924, "switch (", 8);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_925, "hashString", 10);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_926, ") & ", 4);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_927, ") {", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_947, " >= ", 4);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_948, " && ", 4);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_949, " <= ", 4);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_950, ") goto ", 7);
extern TNimType NTI__KjgUMUjT3LUKOFIK4xt5ug_;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_975, "popSafePoint", 12);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_980, "popCurrentException", 19);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_983, ".status != 0) ", 14);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_984, "ccgstmts.nim(673, 11) `t[0].kind == nkSym` ", 43);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_985, "ccgstmts.nim(675, 13) `sym.loc.k == locOther` ", 46);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_988, "no loop to break", 16);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_991, "ccgstmts.nim(1497, 10) `t.kind == tyObject` ", 44);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_992, "FieldDiscriminantCheck", 22);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_993, "((NI)(NU)(", 10);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_994, "), (NI)(NU)(", 12);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_996, "ccgstmts.nim(1553, 11) `a.t != nil` ", 36);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_997, "(void)(", 7);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_998, "ccgstmts.nim(1451, 9) `t.kind == nkAsmStmt` ", 44);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1007, "\"", 1);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1008, "\\n\"\012", 4);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1013, "if (NIM_UNLIKELY(*nimErr_)) {", 29);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1014, "_:;", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1016, "*nimErr_ = NIM_FALSE;", 21);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1018, "ccgstmts.nim(1240, 15) `t[i][j].kind == nkType` ", 48);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1019, "m_type", 6);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1020, "Sup.m_type", 10);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1021, "nimBorrowCurrentException", 25);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1022, "()->", 4);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1024, "else ", 5);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1029, "NIM_BOOL oldNimErrFin", 21);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1030, "oldNimErrFin", 12);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1031, "_ = *nimErr_; *nimErr_ = NIM_FALSE;", 35);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1032, "*nimErr_ = oldNimErrFin", 23);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1034, "<exception>", 11);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1036, "\011std::exception_ptr T", 21);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1037, "_ = nullptr;", 12);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1040, "try {", 5);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1041, "catch (", 7);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1042, "Exception", 9);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1043, "* T", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1045, "_) {", 4);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1046, "\011TFrame* _nimCurFrame;", 22);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1047, "\011_nimCurFrame = ", 16);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1048, "getFrame", 8);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1049, "setFrame", 8);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1050, "(_nimCurFrame);", 15);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1051, "_ = std::current_exception();", 29);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1053, "ccgstmts.nim(1026, 15) `typeNode.kind == nkType` ", 49);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1055, "else if (", 9);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1056, " = T", 4);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1060, "else throw;", 11);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1061, "catch (...) {", 13);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1063, "& ", 2);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1065, "&) {", 4);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1071, "if (T", 5);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1072, "_) std::rethrow_exception(T", 27);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1073, "_);", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1074, "<setjmp.h>", 10);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1075, "TSafePoint", 10);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1076, "pushSafePoint", 13);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1077, "nimStdSetjmp", 12);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1078, ".status = setjmp(", 17);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1079, ".context);", 10);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1080, "nimSigSetjmp", 12);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1081, ".status = sigsetjmp(", 20);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1082, ".context, 0);", 13);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1083, "nimRawSetjmp", 12);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1084, ".status = _setjmp(", 18);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1085, ".status == 0) {", 15);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1088, "else {", 6);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1089, "()) {", 5);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1090, ".status = 0;", 12);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1092, "ccgstmts.nim(1368, 15) `t[i][j].kind == nkType` ", 48);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1096, "nimLeaveFinally", 15);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1097, "reraiseException", 16);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1098, "raiseExceptionEx", 16);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1099, "*)", 2);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1100, "/*TYPESECTION*/", 15);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1101, "/*VARSECTION*/", 14);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1102, "/*INCLUDESECTION*/", 18);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1104, "ccgstmts.nim(631, 9) `t.len == 3` ", 34);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1106, "ccgstmts.nim(642, 11) `call.len in {4, 5}` ", 43);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1109, "ccgstmts.nim", 12);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__MQdRN7fpbG7rPm4JpVVAhA_1108 = {((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1109),
((NI) 189),
((NI) 17)}
;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1110, "STATE", 5);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1111, ": ;", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1113, "STATE", 5);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1115, "); unknown node kind", 20);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__MQdRN7fpbG7rPm4JpVVAhA_1116 = {((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1109),
((NI) 1564),
((NI) 17)}
;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1117, "nimTestErrorFlag", 16);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1119, "programResult", 13);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1120, "procAddrError", 13);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1121, "rawWrite", 8);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1122, "initStackBottomWith", 19);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1123, "initThreadVarsEmulation", 23);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1126, "still forwarded: ", 17);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1127, "NimMainModule", 13);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1128, "cgen.nim(1274, 10) `m.kind == skModule` ", 40);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1129, "cgen.nim(1275, 10) `m.owner.kind == skPackage` ", 47);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1130, "Init000", 7);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1131, "N_LIB_EXPORT", 12);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1132, "N_LIB_PRIVATE", 13);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1133, "generated_not_to_break_here", 27);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1134, "* ", 2);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1135, "\011hcrRegisterGlobal(", 19);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1136, "\", sizeof(TNimNode) * ", 22);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1137, ", NULL, (void**)&", 17);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1138, "\011if (nim_hcr_do_init_) {\012\012", 26);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1139, "\012\011} // nim_hcr_do_init_\012", 24);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1141, "hcrRegisterProc", 15);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1142, "hcrGetProc", 10);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1143, "hcrRegisterGlobal", 17);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1144, "hcrGetGlobal", 12);
static NIM_CONST struct {
  TGenericSeq Sup;
  NimStringDesc* data[4];
} TM__MQdRN7fpbG7rPm4JpVVAhA_1145 = {{4, 4 | NIM_STRLIT_FLAG}, {((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1141),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1142),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1143),
((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1144)}};
static NIM_CONST tySequence__sM4lkSb7zS6F7OVMvW9cffQ* TM__MQdRN7fpbG7rPm4JpVVAhA_1140 = ((tySequence__sM4lkSb7zS6F7OVMvW9cffQ*)&TM__MQdRN7fpbG7rPm4JpVVAhA_1145);
extern TNimType NTI__sM4lkSb7zS6F7OVMvW9cffQ_;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1146, "HcrInit000", 10);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1147, "hcrInit", 7);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1148, "hcrAddModule", 12);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1149, "cgen.nim(1587, 10) `prc != nil` ", 32);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1150, "handle", 6);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1151, "getProcAddr", 11);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1155, "DatInit000", 10);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1160, "stdlib_system", 13);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1161, "stdlib_os", 9);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1162, "\011int* cmd_count;\012", 17);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1163, "\011char*** cmd_line;\012", 19);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1164, "\011*cmd_count = cmdCount;\012", 24);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1165, "\011*cmd_line = cmdLine;\012", 22);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1166, "();\012", 4);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1167, "((void *)&inner);\012", 18);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1168, "\012\012", 2);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1169, "#", 1);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1170, "ifndef ", 7);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1171, "_Content_PP\012", 12);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1172, "define ", 7);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1173, "_Content_PP\012struct ", 19);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1174, "_Content { NI cap; ", 19);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1175, " data[SEQ_DECL_SIZE];};\012", 24);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1176, "endif\012\012      ", 13);
extern TNimType NTI__ytyiCJqK439aF9cIibuRVpAg_;
N_LIB_PRIVATE TNimType NTI__IDX4istqRyOZp3l6j9aUesw_;
extern TNimType NTI__xHTZrq9aYs6boc9bCba0JbpQ_;
N_LIB_PRIVATE TNimType NTI__UjwNQwrGjW3X9ahveEH9bnWA_;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1179, "cgen.nim(1307, 14) `prc != nil` ", 32);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1180, "\011if (!(", 7);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1181, ")))\012\011\011", 6);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1182, "hcr_handle", 10);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1184, "\011void* rtl_handle;\012", 19);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1185, "rtl_handle", 10);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1186, "nimGC_setStackBottom", 20);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1188, "nimrtl_", 7);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1189, "\011inner = PreMain;\012", 18);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1190, "\011initStackBottomWith_actual((void *)&inner);\012", 45);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1191, "\011(*inner)();\012", 13);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1192, "\011PreMain();\012", 12);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1193, "<windows.h>", 11);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1194, "<libc/component.h>", 18);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1196, "\012N_LIB_PRIVATE void PreMainInner(void) {\012", 41);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1197, "}\012\012N_LIB_PRIVATE int cmdCount;\012N_LIB_PRIVATE char** cmdLine;\012N_"
"LIB_PRIVATE char** gEnv;\012N_LIB_PRIVATE void PreMain(void) {\012\011voi"
"d (*volatile inner)(void);\012\011inner = PreMainInner;\012", 177);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1198, "\011(*inner)();\012}\012\012", 16);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1199, "N_LIB_PRIVATE N_CDECL(void, NimMainInner)(void) {\012", 50);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1200, "}\012\012N_CDECL(void, NimMain)(void) {\012\011void (*volatile inner)(void)"
";\012", 65);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1201, "\011inner = NimMainInner;\012", 23);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1202, "}\012\012N_LIB_EXPORT N_CDECL(void, NimMain)(void) {\012\011void (*volatile"
" inner)(void);\012", 78);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1203, "extern Genode::Env *nim_runtime_env;\012extern void nim_component_"
"construct(Genode::Env*);\012\012N_LIB_PRIVATE N_CDECL(void, NimMainInn"
"er)(void) {\012", 139);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1204, "using namespace ", 16);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1205, "N_STDCALL(int, WinMain)(HINSTANCE hCurInstance, \012              "
"          HINSTANCE hPrevInstance, \012                        LPST"
"R lpCmdLine, int nCmdShow) {\012\011NimMain();\012\011return ", 176);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1206, "nim_program_result;\012}\012\012", 23);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1207, "BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fwdreason, \012     "
"               LPVOID lpvReserved) {\012\011if(fwdreason == DLL_PROCES"
"S_ATTACH) {\012\011NimMain();\012}\012\011return 1;\012}\012\012", 167);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1208, "void Libc::Component::construct(Libc::Env &env) {\012\011// Set Env u"
"sed during runtime initialization\012\011nim_runtime_env = &env;\012\011Libc"
"::with_libc([&] () {\012\011\011// Initialize runtime and globals\012\011NimMai"
"n();\012\011// Call application construct\012\011\011nim_component_construct(&e"
"nv);\012\011});\012}\012\012", 268);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1209, "N_LIB_PRIVATE void NIM_POSIX_INIT NimMainInit(void) {\012\011NimMain("
");\012}\012\012", 69);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1210, "int main(void) {\012\011NimMain();\012\011return 0;\012}\012\012", 43);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1211, "int main(int argc, char** args, char** env) {\012\011cmdLine = args;\012"
"\011cmdCount = argc;\012\011gEnv = env;\012\011NimMain();\012\011return ", 114);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1212, "namespace ", 10);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1213, " {\012", 3);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1214, "1.2.4", 5);
extern NIM_CONST tyArray__NB2DB4s9cLl9bnr5JhKigbhQ CPU__uYXopJX8pM87pQDCtmgWfQ;
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1215, "#define NIM_HOT_CODE_RELOADING\012", 31);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1216, "#define USE_NIM_NAMESPACE ", 26);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1217, "nimEmulateOverflowChecks", 24);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1218, "#define NIM_EmulateOverflowChecks\012", 34);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1220, "\012#include \"nimbase.h\"\012", 22);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1222, "#undef LANGUAGE_C\012#undef MIPSEB\012#undef MIPSEL\012#undef PPC\012#undef"
" R3000\012#undef R4000\012#undef i386\012#undef linux\012#undef mips\012#undef "
"near\012#undef far\012#undef powerpc\012#undef unix\012", 170);
STRING_LITERAL(TM__MQdRN7fpbG7rPm4JpVVAhA_1223, "#define nimfr_(x, y)\012#define nimln_(x, y)\012", 42);
extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__IcYaEuuWivYAS86vFMTS3Q;
N_LIB_PRIVATE tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* cachedUnion__37c7SFtO1oJKGkAWrI71Fw;
N_LIB_PRIVATE tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* cachedStruct__9a5hqgEB1sqNj6CL5z0oy5w;
static N_INLINE(NI, pluspercent___dgYAo7RfdUVVpvkfKDym8wsystem)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU32)(((NU) (x))) + (NU32)(((NU) (y))))));
	return result;
}
static N_INLINE(void, incRef__AT1eRuflKWyTTBdLjEDZbg_3system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
	(*c).refcount = pluspercent___dgYAo7RfdUVVpvkfKDym8wsystem((*c).refcount, ((NI) 8));
}
static N_INLINE(NI, minuspercent___dgYAo7RfdUVVpvkfKDym8w_2system)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU32)(((NU) (x))) - (NU32)(((NU) (y))))));
	return result;
}
static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr) {
	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
	NI T1_;
	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
	T1_ = (NI)0;
	T1_ = minuspercent___dgYAo7RfdUVVpvkfKDym8w_2system(((NI) (ptrdiff_t) (usr)), ((NI) 8));
	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
	return result;
}
static N_INLINE(NIM_BOOL, ltpercent___hPljn3JCDQ00ua1R07X9bxQsystem)(NI x, NI y) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((NU32)(((NU) (x))) < (NU32)(((NU) (y))));
	return result;
}
static N_INLINE(void, rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_2system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
	addZCT__Y66tOYFjgwJ0k4aLz4bc0Q((&gch__IcYaEuuWivYAS86vFMTS3Q.zct), c);
}
static N_INLINE(void, decRef__AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
	(*c).refcount = minuspercent___dgYAo7RfdUVVpvkfKDym8w_2system((*c).refcount, ((NI) 8));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ltpercent___hPljn3JCDQ00ua1R07X9bxQsystem((*c).refcount, ((NI) 8));
		if (!T3_) goto LA4_;
		rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_2system(c);
	}
	LA4_: ;
}
static N_INLINE(void, asgnRef)(void** dest, void* src) {
	{
		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
		if (!!((src == NIM_NIL))) goto LA3_;
		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T5_ = usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem(src);
		incRef__AT1eRuflKWyTTBdLjEDZbg_3system(T5_);
	}
	LA3_: ;
	{
		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
		if (!!(((*dest) == NIM_NIL))) goto LA8_;
		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T10_ = usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem((*dest));
		decRef__AT1eRuflKWyTTBdLjEDZbgsystem(T10_);
	}
	LA8_: ;
	(*dest) = src;
}
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memcpy(dest, source, ((size_t) (size)));
}
static N_INLINE(void, copyMem__M04YC71iJg1N7gBF3HZTngsystem)(void* dest, void* source, NI size) {
	nimCopyMem(dest, source, size);
}
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	{
		if (!!((src == NIM_NIL))) goto LA3_;
		copyMem__M04YC71iJg1N7gBF3HZTngsystem(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
		(*dest).Sup.len += (*src).Sup.len;
	}
	LA3_: ;
}
static N_INLINE(void, nimSetMem__JE6t4x7Z3v2iVz27Nx0MRAmemory)(void* a, int v, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memset(a, v, ((size_t) (size)));
}
static N_INLINE(void, nimZeroMem)(void* p, NI size) {
	nimSetMem__JE6t4x7Z3v2iVz27Nx0MRAmemory(p, ((int) 0), size);
}
static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T1_;
	T1_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
	T1_ = usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem(p);
	decRef__AT1eRuflKWyTTBdLjEDZbgsystem(T1_);
}
N_LIB_PRIVATE N_NIMCALL(tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg, initProcOptions__qttThLa3xHNEeApwU61sZA)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* 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) 15))&63U)))!=0)) goto LA3_;
		result = (opts & ~ 262144);
	}
	goto LA1_;
	LA3_: ;
	{
		result = opts;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q*, newPreInitProc__Bb5LmORIEBm1ncSKlFHvVA)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m) {
	tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* result;
	result = (tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q*)0;
	result = newProc__r9c9cj4fW68RhY7ht9btSvB8w(NIM_NIL, m);
	(*result).labels = ((NI) 100000);
	return result;
}
static N_INLINE(NIM_BOOL, nimAddInt)(NI a, NI b, NI* res) {
	NIM_BOOL result;
	NI r;
	result = (NIM_BOOL)0;
	r = ((NI) ((NU)((NU32)(((NU) (a))) + (NU32)(((NU) (b))))));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) 0) <= (NI)(r ^ a));
		if (T3_) goto LA4_;
		T3_ = (((NI) 0) <= (NI)(r ^ b));
		LA4_: ;
		if (!T3_) goto LA5_;
		(*res) = r;
	}
	goto LA1_;
	LA5_: ;
	{
		result = NIM_TRUE;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getTempName__ao6gUnuVfQLtZ89c4kaIKfg)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T1_;
	NI TM__MQdRN7fpbG7rPm4JpVVAhA_4;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*m).labels)));
	result = amp___ShdZ6VrAQkY0nWR9a39b9bGdQ((*m).tmpBase, T1_);
	if (nimAddInt((*m).labels, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_4)) { raiseOverflow(); };
	if (TM__MQdRN7fpbG7rPm4JpVVAhA_4 < 0 || TM__MQdRN7fpbG7rPm4JpVVAhA_4 > 2147483647){ raiseOverflow(); }
	(*m).labels = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_4);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow*, rawNewModule__a8P0HPhDv3Sesns79bJU0jA)(tyObject_BModuleListcolonObjectType___CpP4eJLbv5ZwofQXpESuGA* g, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* module, NimStringDesc* filename) {
	tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* result;
	NimStringDesc* T1_;
	tyArray__qtqsWM5aXmcpMIVmvq3kAA T2_;
	NimStringDesc* T3_;
	NimStringDesc* T4_;
	NimStringDesc* T5_;
	NimStringDesc* ndiName;
	result = (tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow*)0;
	result = (tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow*) newObj((&NTI__NkKlBfvvsMUW70DxvxLVIg_), sizeof(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow));
	(*result).Sup.Sup.m_type = (&NTI__9cG6VsX22pOhho6kxyhFVow_);
	asgnRef((void**) (&(*result).g), g);
	T1_ = (NimStringDesc*)0;
	nimZeroMem((void*)T2_, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
	hashOwner__mSn9a9aX0NBzWqerwPW0qRww_4(module, T2_);
	T3_ = (NimStringDesc*)0;
	T3_ = dollar___0A9bslyIJ49bWrftLGh13rvg(T2_);
	T1_ = rawNewString((T3_ ? T3_->Sup.len : 0) + 3);
appendString(T1_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_2));
appendString(T1_, T3_);
appendString(T1_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_3));
	asgnRef((void**) (&(*result).tmpBase), rope__yShmEg9cffWxI7s5XzEKBow(T1_));
	if ((*result).headerFiles) { nimGCunrefNoCycle((*result).headerFiles); (*result).headerFiles = NIM_NIL; }
	initIntSet__n8oDZMn19bEdodSnrBQB9a1Q((&(*result).declaredThings));
	initIntSet__n8oDZMn19bEdodSnrBQB9a1Q((&(*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__ZudPzqPNlpthuJgNIdX3jA(((NI) 64), (&(*result).typeCache));
	initTable__ZudPzqPNlpthuJgNIdX3jA(((NI) 64), (&(*result).forwTypeCache));
	asgnRef((void**) (&(*result).module), module);
	initTable__ZudPzqPNlpthuJgNIdX3jA(((NI) 64), (&(*result).typeInfoMarker));
	initCountTable__9apu9bmxB0tG2KjdEWuGfVPg(((NI) 64), (&(*result).sigConflicts));
	asgnRef((void**) (&(*result).initProc), newProc__r9c9cj4fW68RhY7ht9btSvB8w(NIM_NIL, result));
	(*(*result).initProc).options = initProcOptions__qttThLa3xHNEeApwU61sZA(result);
	asgnRef((void**) (&(*result).preInitProc), newPreInitProc__Bb5LmORIEBm1ncSKlFHvVA(result));
	initNodeTable__RsAJjlvhLCgVyd9cZJtMRoQ((&(*result).dataCache));
	if ((*result).typeStack) { nimGCunrefNoCycle((*result).typeStack); (*result).typeStack = NIM_NIL; }
	asgnRef((void**) (&(*result).typeNodesName), getTempName__ao6gUnuVfQLtZ89c4kaIKfg(result));
	asgnRef((void**) (&(*result).nimTypesName), getTempName__ao6gUnuVfQLtZ89c4kaIKfg(result));
	{
		if (!(((*module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 15))&63U)))!=0)) goto LA8_;
		(*result).flags |= ((NU8)1)<<((((tyEnum_CodegenFlag__9c7EibnXBApMXwrQsaaMb6Q) 0)) & 7);
		(*(*result).preInitProc).options &= ~(((NU32)1) << ((((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 18)) & 31));
	}
	LA8_: ;
	{
		NimStringDesc* T14_;
		if (!(((*(*g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 6))&63U)))!=0)) goto LA12_;
		T14_ = (NimStringDesc*)0;
		T14_ = completeCfilePath__VmrjcznbGOrooG3SBIdEFQ((*g).config, filename, NIM_TRUE);
		ndiName = noschangeFileExt(T14_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_5));
	}
	goto LA10_;
	LA12_: ;
	{
		ndiName = ((NimStringDesc*) NIM_NIL);
	}
	LA10_: ;
	open__jmWVcl5Qp9atJWCEkvq1SfA((&(*result).ndi), ndiName, (*g).config);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow*, rawNewModule__S73dIOk2nN4g6ZKuvNB9ceA_2)(tyObject_BModuleListcolonObjectType___CpP4eJLbv5ZwofQXpESuGA* g, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* module, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf) {
	tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* result;
	NimStringDesc* T1_;
	result = (tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow*)0;
	T1_ = (NimStringDesc*)0;
	T1_ = toFullPath__VW1RaR1l9c9bPnJxr1KuvIrg(conf, ((NI32) ((*module).position)));
	result = rawNewModule__a8P0HPhDv3Sesns79bJU0jA(g, module, T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow*, newModule__S73dIOk2nN4g6ZKuvNB9ceA)(tyObject_BModuleListcolonObjectType___CpP4eJLbv5ZwofQXpESuGA* g, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* module, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf) {
	tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* result;
	result = (tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow*)0;
	result = rawNewModule__S73dIOk2nN4g6ZKuvNB9ceA_2(g, module, conf);
	{
		NI T3_;
		NI TM__MQdRN7fpbG7rPm4JpVVAhA_6;
		T3_ = ((*g).modules ? (*g).modules->Sup.len : 0);
		if (!(T3_ <= (*module).position)) goto LA4_;
		if (nimAddInt((*module).position, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_6)) { raiseOverflow(); };
		if (((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_6)) < ((NI) 0) || ((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_6)) > ((NI) 2147483647)){ raiseRangeErrorI((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_6), ((NI) 0), ((NI) 2147483647)); }
		asgnRef((void**) (&(*g).modules), (tySequence__SHVxAqOYtIy7teT1q4s0zQ*) setLengthSeqV2(&((*g).modules)->Sup, (&NTI__SHVxAqOYtIy7teT1q4s0zQ_), ((NI) ((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_6)))));
	}
	LA4_: ;
	if ((NU)((*module).position) >= (NU)((*g).modules ? (*g).modules->Sup.len : 0)){ raiseIndexError2((*module).position,((*g).modules ? (*g).modules->Sup.len : 0)-1); }
	asgnRef((void**) (&(*g).modules->data[(*module).position]), result);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w*, myOpen__uilCuJJCRRa62GOiz1PPkg)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* module) {
	tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w* result;
	tyObject_BModuleListcolonObjectType___CpP4eJLbv5ZwofQXpESuGA* g;
	tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* T6_;
	result = (tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w*)0;
	{
		tyObject_BModuleListcolonObjectType___CpP4eJLbv5ZwofQXpESuGA* T5_;
		if (!((*graph).backend == NIM_NIL)) goto LA3_;
		T5_ = (tyObject_BModuleListcolonObjectType___CpP4eJLbv5ZwofQXpESuGA*)0;
		T5_ = newModuleList__pKl1ntXN7hbkEFOmcSlHSg(graph);
		asgnRef((void**) (&(*graph).backend), &T5_->Sup);
	}
	LA3_: ;
	if ((*graph).backend && !isObj((*(*graph).backend).m_type, (&NTI__CpP4eJLbv5ZwofQXpESuGA_))){ raiseObjectConversionError(); }
	g = ((tyObject_BModuleListcolonObjectType___CpP4eJLbv5ZwofQXpESuGA*) ((*graph).backend));
	T6_ = (tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow*)0;
	T6_ = newModule__S73dIOk2nN4g6ZKuvNB9ceA(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) 26))&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__VmrjcznbGOrooG3SBIdEFQ((*graph).config, f, NIM_TRUE);
		T19_ = (NimStringDesc*)0;
		T19_ = noschangeFileExt(T18_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_7));
		asgnRef((void**) (&(*g).generatedHeader), rawNewModule__a8P0HPhDv3Sesns79bJU0jA(g, module, T19_));
		(*(*g).generatedHeader).flags |= ((NU8)1)<<((((tyEnum_CodegenFlag__9c7EibnXBApMXwrQsaaMb6Q) 3)) & 7);
	}
	LA11_: ;
	return result;
}
static N_INLINE(NIM_BOOL, skipCodegen__nwSFZweO0MiC1cK59cLXWvgpasses)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = (((NI) 0) < (*config).errorCounter);
	return result;
}
static N_INLINE(NIM_BOOL, moduleHasChanged__nJ9czoaD1xFoTuiaDFAAiaApasses)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* module) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (((NI) 0) <= (*module).Sup.id);
	if (T1_) goto LA2_;
	T1_ = isDefined__jkXTnxDf8MX1Pmks3s0XxA((*graph).config, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_8));
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hcrOn__a2BRACVCGIuooKjHNmoLsA)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = hcrOn__UhPXgqyDuuU9cKcS8FM883w((*(*m).g).config);
	return result;
}
static N_INLINE(NI, len__P89cqdlERShb9alU3iC0yj8wast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	NI T1_;
	result = (NI)0;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	T1_ = ((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0);
	result = T1_;
	return result;
}
static N_INLINE(NI, safeLen__P89cqdlERShb9alU3iC0yj8w_2ast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	result = (NI)0;
	{
		if (!((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 0) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA3_;
		result = ((NI) 0);
	}
	goto LA1_;
	LA3_: ;
	{
		result = len__P89cqdlERShb9alU3iC0yj8wast(n);
	}
	LA1_: ;
	return result;
}
static N_INLINE(NIM_BOOL, nimSubInt)(NI a, NI b, NI* res) {
	NIM_BOOL result;
	NI r;
	result = (NIM_BOOL)0;
	r = ((NI) ((NU)((NU32)(((NU) (a))) - (NU32)(((NU) (b))))));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) 0) <= (NI)(r ^ a));
		if (T3_) goto LA4_;
		T3_ = (((NI) 0) <= (NI)(r ^ (NI)((NU32) ~(b))));
		LA4_: ;
		if (!T3_) goto LA5_;
		(*res) = r;
	}
	goto LA1_;
	LA5_: ;
	{
		result = NIM_TRUE;
	}
	LA1_: ;
	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_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T6_;
		if (!(((NI16) 0) < (*b).frameLen)) goto LA3_;
		nimZeroMem((void*)T5_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
		T5_[0] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*b).frameLen)));
		T6_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T6_ = percent___ZkZcMxwzInnijXy5kz1K3A(T5_, 1);
		add__IM4kcMNkkOLJtqdEqSxR8A(&result, T6_);
	}
	LA3_: ;
	add__IM4kcMNkkOLJtqdEqSxR8A(&result, (*b).sections[(((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 1))- 0]);
	add__IM4kcMNkkOLJtqdEqSxR8A(&result, (*b).sections[(((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2))- 0]);
	return result;
}
static N_INLINE(tyObject_TBlock__GFhahvekTq3dDOkWyhchMA*, X5BX5D___VZz2UCb3YWId9ctIYs8ikogsystem)(tyObject_TBlock__GFhahvekTq3dDOkWyhchMA* s, NI sLen_0, NI i) {
	tyObject_TBlock__GFhahvekTq3dDOkWyhchMA* result;
	NI TM__MQdRN7fpbG7rPm4JpVVAhA_15;
	result = (tyObject_TBlock__GFhahvekTq3dDOkWyhchMA*)0;
	if (nimSubInt(sLen_0, i, &TM__MQdRN7fpbG7rPm4JpVVAhA_15)) { raiseOverflow(); };
	if ((NU)((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_15)) >= (NU)(sLen_0)){ raiseIndexError2((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_15),sLen_0-1); }
	result = (&s[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_15)]);
	return result;
}
static N_INLINE(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**, s__kOyJGmZMM2tMgCKSrvUE3gcgendata)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg s) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** result;
	tyObject_TBlock__GFhahvekTq3dDOkWyhchMA* T1_;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T1_ = (tyObject_TBlock__GFhahvekTq3dDOkWyhchMA*)0;
	T1_ = X5BX5D___VZz2UCb3YWId9ctIYs8ikogsystem((*p).blocks->data, ((*p).blocks ? (*p).blocks->Sup.len : 0), ((NI) 1));
	result = &(*T1_).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 i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = ((*p).blocks ? (*p).blocks->Sup.len : 0);
		colontmp_ = T2_;
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T5_;
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_17;
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				T5_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T5_ = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_16));
				prepend__IM4kcMNkkOLJtqdEqSxR8A_2(&result, T5_);
				if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_17)) { raiseOverflow(); };
				i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_17);
			} LA4: ;
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, endBlock__12ZfBiPs9cA29axtp2bvV6zg)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* blockEnd) {
	NI topBlock;
	NI T1_;
	NI TM__MQdRN7fpbG7rPm4JpVVAhA_13;
	NI TM__MQdRN7fpbG7rPm4JpVVAhA_14;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T2_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T3_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T4_;
	T1_ = ((*p).blocks ? (*p).blocks->Sup.len : 0);
	if (nimSubInt(T1_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_13)) { raiseOverflow(); };
	topBlock = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_13);
	if (nimSubInt(topBlock, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_14)) { raiseOverflow(); };
	if ((NU)((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_14)) >= (NU)((*p).blocks ? (*p).blocks->Sup.len : 0)){ raiseIndexError2((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_14),((*p).blocks ? (*p).blocks->Sup.len : 0)-1); }
	if ((NU)(topBlock) >= (NU)((*p).blocks ? (*p).blocks->Sup.len : 0)){ raiseIndexError2(topBlock,((*p).blocks ? (*p).blocks->Sup.len : 0)-1); }
	T2_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = blockBody__tMtK9ba4LBR5bZYSR9avbIag((&(*p).blocks->data[topBlock]));
	add__IM4kcMNkkOLJtqdEqSxR8A(&(*p).blocks->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_14)].sections[(((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2))- 0], T2_);
	if ((topBlock) < ((NI) 0) || (topBlock) > ((NI) 2147483647)){ raiseRangeErrorI(topBlock, ((NI) 0), ((NI) 2147483647)); }
	asgnRef((void**) (&(*p).blocks), (tySequence__oUyaggHmIX9bpJcMeoG6lpA*) setLengthSeqV2(&((*p).blocks)->Sup, (&NTI__oUyaggHmIX9bpJcMeoG6lpA_), ((NI) (topBlock))));
	T3_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T3_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
	T4_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T4_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, blockEnd);
	add__IM4kcMNkkOLJtqdEqSxR8A(T3_, T4_);
}
N_LIB_PRIVATE N_NIMCALL(void, endBlock__0dpuY9coTlraj8JXIe2BzVw)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p) {
	NI topBlock;
	NI T1_;
	NI TM__MQdRN7fpbG7rPm4JpVVAhA_12;
	NI16 frameLen;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* blockEnd;
	T1_ = ((*p).blocks ? (*p).blocks->Sup.len : 0);
	if (nimSubInt(T1_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_12)) { raiseOverflow(); };
	topBlock = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_12);
	if ((NU)(topBlock) >= (NU)((*p).blocks ? (*p).blocks->Sup.len : 0)){ raiseIndexError2(topBlock,((*p).blocks ? (*p).blocks->Sup.len : 0)-1); }
	frameLen = (*p).blocks->data[topBlock].frameLen;
	blockEnd = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		tyArray__JiWwrsTRC6xqNlGcBthSVA T6_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T7_;
		if (!(((NI16) 0) < frameLen)) goto LA4_;
		nimZeroMem((void*)T6_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
		T6_[0] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (frameLen)));
		T7_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T7_ = percent___KxpxlR6eqq3gRIOYTfR67w(T6_, 1);
		add__IM4kcMNkkOLJtqdEqSxR8A(&blockEnd, T7_);
	}
	LA4_: ;
	{
		tyArray__JiWwrsTRC6xqNlGcBthSVA T12_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T13_;
		if ((NU)(topBlock) >= (NU)((*p).blocks ? (*p).blocks->Sup.len : 0)){ raiseIndexError2(topBlock,((*p).blocks ? (*p).blocks->Sup.len : 0)-1); }
		if (!!(((*p).blocks->data[topBlock].label == NIM_NIL))) goto LA10_;
		nimZeroMem((void*)T12_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
		if ((NU)(topBlock) >= (NU)((*p).blocks ? (*p).blocks->Sup.len : 0)){ raiseIndexError2(topBlock,((*p).blocks ? (*p).blocks->Sup.len : 0)-1); }
		T12_[0] = (*p).blocks->data[topBlock].label;
		T13_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T13_ = percent___IFeEbVhQpPGgxkLehuSiBA(T12_, 1);
		add__IM4kcMNkkOLJtqdEqSxR8A(&blockEnd, T13_);
	}
	goto LA8_;
	LA10_: ;
	{
		tyArray__qTjAvTvKF9anytN1At69aJMQ T15_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T16_;
		nimZeroMem((void*)T15_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
		T16_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T16_ = percent___BYiowJAm8zF7RBRISElaLg(T15_, 0);
		add__IM4kcMNkkOLJtqdEqSxR8A(&blockEnd, T16_);
	}
	LA8_: ;
	endBlock__12ZfBiPs9cA29axtp2bvV6zg(p, blockEnd);
}
N_LIB_PRIVATE N_NIMCALL(NI, inExceptBlockLen__1ygdb876UM9astcNUXtgUBQ_2)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p) {
	NI result;
	result = (NI)0;
	{
		tyTuple__FxkU4d1VDodDMc9ah6Mbagw x;
		NI i;
		NI L;
		NI T2_;
		nimZeroMem((void*)(&x), sizeof(tyTuple__FxkU4d1VDodDMc9ah6Mbagw));
		i = ((NI) 0);
		T2_ = ((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_25;
				if (!(i < L)) goto LA4;
				if ((NU)(i) >= (NU)((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0)){ raiseIndexError2(i,((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0)-1); }
				x.Field0 = (*p).nestedTryStmts->data[i].Field0;
				x.Field1 = (*p).nestedTryStmts->data[i].Field1;
				x.Field2 = (*p).nestedTryStmts->data[i].Field2;
				{
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_24;
					if (!x.Field1) goto LA7_;
					if (nimAddInt(result, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_24)) { raiseOverflow(); };
					result = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_24);
				}
				LA7_: ;
				if (nimAddInt(i, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_25)) { raiseOverflow(); };
				i = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_25);
				{
					NI T11_;
					T11_ = ((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0);
					if (!!((T11_ == L))) goto LA12_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_26));
				}
				LA12_: ;
			} LA4: ;
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, startBlockInternal__1ygdb876UM9astcNUXtgUBQ)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p) {
	NI result;
	NI TM__MQdRN7fpbG7rPm4JpVVAhA_22;
	NI T1_;
	NI TM__MQdRN7fpbG7rPm4JpVVAhA_23;
	NI T2_;
	NI T3_;
	result = (NI)0;
	if (nimAddInt((*p).labels, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_22)) { raiseOverflow(); };
	if (TM__MQdRN7fpbG7rPm4JpVVAhA_22 < 0 || TM__MQdRN7fpbG7rPm4JpVVAhA_22 > 2147483647){ raiseOverflow(); }
	(*p).labels = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_22);
	T1_ = ((*p).blocks ? (*p).blocks->Sup.len : 0);
	result = T1_;
	if (nimAddInt(result, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_23)) { raiseOverflow(); };
	if (((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_23)) < ((NI) 0) || ((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_23)) > ((NI) 2147483647)){ raiseRangeErrorI((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_23), ((NI) 0), ((NI) 2147483647)); }
	asgnRef((void**) (&(*p).blocks), (tySequence__oUyaggHmIX9bpJcMeoG6lpA*) setLengthSeqV2(&((*p).blocks)->Sup, (&NTI__oUyaggHmIX9bpJcMeoG6lpA_), ((NI) ((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_23)))));
	if ((NU)(result) >= (NU)((*p).blocks ? (*p).blocks->Sup.len : 0)){ raiseIndexError2(result,((*p).blocks ? (*p).blocks->Sup.len : 0)-1); }
	(*p).blocks->data[result].id = ((NI) ((*p).labels));
	if ((NU)(result) >= (NU)((*p).blocks ? (*p).blocks->Sup.len : 0)){ raiseIndexError2(result,((*p).blocks ? (*p).blocks->Sup.len : 0)-1); }
	T2_ = ((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0);
	if ((T2_) < ((NI16) -32768) || (T2_) > ((NI16) 32767)){ raiseRangeErrorI(T2_, ((NI16) -32768), ((NI16) 32767)); }
	(*p).blocks->data[result].nestedTryStmts = ((NI16) (T2_));
	if ((NU)(result) >= (NU)((*p).blocks ? (*p).blocks->Sup.len : 0)){ raiseIndexError2(result,((*p).blocks ? (*p).blocks->Sup.len : 0)-1); }
	T3_ = (NI)0;
	T3_ = inExceptBlockLen__1ygdb876UM9astcNUXtgUBQ_2(p);
	if ((T3_) < ((NI16) -32768) || (T3_) > ((NI16) 32767)){ raiseRangeErrorI(T3_, ((NI16) -32768), ((NI16) 32767)); }
	(*p).blocks->data[result].nestedExceptStmts = ((NI16) (T3_));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, fillLoc__o49bXuxJYpCizOgQ54UViIg)(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__RaNE9b8A430I9bfpgZmdrC1w)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* 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__GxzvEIRbrShQbyJNboTw7A((*(*s).name).s);
		result = rope__yShmEg9cffWxI7s5XzEKBow(T5_);
		T6_ = (NimStringDesc*)0;
		T6_ = mangle__GxzvEIRbrShQbyJNboTw7A((*(*(*m).module).name).s);
		T7_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T7_ = idOrSig__sKAFwdXn9cKHxc9cdaovk69cA(s, T6_, (&(*m).sigConflicts));
		add__IM4kcMNkkOLJtqdEqSxR8A(&result, T7_);
		asgnRef((void**) (&(*s).loc.r), result);
		{
			NI T12_;
			if (!(*m).ndi.enabled) goto LA10_;
			asgnRef((void**) (&(*m).ndi.syms), (tySequence__DfgJFJEYoj4YBAHLZPl5lQ*) incrSeqV3((TGenericSeq*)((*m).ndi.syms), (&NTI__DfgJFJEYoj4YBAHLZPl5lQ_)));
			T12_ = (*m).ndi.syms->Sup.len++;
			asgnRef((void**) (&(*m).ndi.syms->data[T12_]), s);
		}
		LA10_: ;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, fillProcLoc__t9a9a9bxmaOztYOfsfhQUOXXw)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym;
	if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
	sym = (*n)._kind_4.sym;
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T5_;
		if (!((*sym).loc.k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0))) goto LA3_;
		T5_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T5_ = mangleName__RaNE9b8A430I9bfpgZmdrC1w(m, sym);
		fillLoc__o49bXuxJYpCizOgQ54UViIg((&(*sym).loc), ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 7), n, T5_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 2));
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, useHeader__TAVDUakAwQnRHDK9cFe6L7g_2)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym) {
	{
		NimStringDesc* str;
		if (!(((*sym).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA) 6))&15U)))!=0)) goto LA3_;
		{
			if (!!(!(((*sym).annex == NIM_NIL)))) goto LA7_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_29));
		}
		LA7_: ;
		str = getStr__P2DOsHG6Jk4Siab3L2qwUg((*(*sym).annex).path);
		includeHeader__G5jzmdnwglHVk5qfDcXonA(m, str);
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, cgFormatValue__GOaK9aDgu4cLOYhocodpf3Q)(NimStringDesc** result, NimStringDesc* value) {
	unsureAsgnRef((void**) (&(*result)), resizeString((*result), (value ? value->Sup.len : 0) + 0));
appendString((*result), value);
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isReloadable__bilAk8nY4d5fxUpVg9bnphQ)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* prc) {
	NIM_BOOL result;
	NIM_BOOL T1_;
{	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = hcrOn__a2BRACVCGIuooKjHNmoLsA(m);
	if (!(T1_)) goto LA2_;
	T1_ = !((((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 37))&63U)))!=0));
	LA2_: ;
	result = T1_;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, pop__9c4Y4hTtvRqjj2EC8KP9aqDAsystem)(tySequence__WwUFq9cJ2xKRlsAWVEHyPRg** s) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	NI L;
	NI T1_;
	NI TM__MQdRN7fpbG7rPm4JpVVAhA_34;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = ((*s) ? (*s)->Sup.len : 0);
	if (nimSubInt(T1_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_34)) { raiseOverflow(); };
	L = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_34);
	if ((NU)(L) >= (NU)((*s) ? (*s)->Sup.len : 0)){ raiseIndexError2(L,((*s) ? (*s)->Sup.len : 0)-1); }
	result = (*s)->data[L];
	if ((L) < ((NI) 0) || (L) > ((NI) 2147483647)){ raiseRangeErrorI(L, ((NI) 0), ((NI) 2147483647)); }
	unsureAsgnRef((void**) (&(*s)), (tySequence__WwUFq9cJ2xKRlsAWVEHyPRg*) setLengthSeqV2(&((*s))->Sup, (&NTI__WwUFq9cJ2xKRlsAWVEHyPRg_), ((NI) (L))));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ)(NimStringDesc** result, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* value) {
	{
		NimStringDesc* str;
		str = (NimStringDesc*)0;
		{
			tySequence__WwUFq9cJ2xKRlsAWVEHyPRg* stack;
			if (!!((value == NIM_NIL))) goto LA4_;
			stack = (tySequence__WwUFq9cJ2xKRlsAWVEHyPRg*) newSeq((&NTI__WwUFq9cJ2xKRlsAWVEHyPRg_), 1);
			asgnRef((void**) (&stack->data[0]), value);
			{
				while (1) {
					NI T8_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* it;
					T8_ = (stack ? stack->Sup.len : 0);
					if (!(((NI) 0) < T8_)) goto LA7;
					it = pop__9c4Y4hTtvRqjj2EC8KP9aqDAsystem((&stack));
					{
						while (1) {
							NI T15_;
							if (!!(((*it).left == NIM_NIL))) goto LA10;
							{
								if (!!(!(((*it).right == NIM_NIL)))) goto LA13_;
								failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_35));
							}
							LA13_: ;
							stack = (tySequence__WwUFq9cJ2xKRlsAWVEHyPRg*) incrSeqV3((TGenericSeq*)(stack), (&NTI__WwUFq9cJ2xKRlsAWVEHyPRg_));
							T15_ = stack->Sup.len++;
							asgnRef((void**) (&stack->data[T15_]), (*it).right);
							it = (*it).left;
							{
								if (!!(!((it == NIM_NIL)))) goto LA18_;
								failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_36));
							}
							LA18_: ;
						} LA10: ;
					}
					str = (*it).data;
					unsureAsgnRef((void**) (&(*result)), resizeString((*result), (str ? str->Sup.len : 0) + 0));
appendString((*result), str);
				} LA7: ;
			}
		}
		LA4_: ;
	}
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isImportedCppType__IafZhvqpthq9b9c13SFhzAOw)(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__zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(1189055854743137808));
	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) 31))&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) 31))&63U)))!=0);
	LA6_: ;
	T1_ = T5_;
	LA4_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, typeNameOrLiteral__HJRyQju7CXfTTxFyPP3IJQ)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* 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) 6))&63U)))!=0);
		LA5_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA6_;
		T3_ = ((*(*t).sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0));
		LA6_: ;
		if (!T3_) goto LA7_;
		useHeader__TAVDUakAwQnRHDK9cFe6L7g_2(m, (*t).sym);
		result = (*(*t).sym).loc.r;
	}
	goto LA1_;
	LA7_: ;
	{
		result = rope__yShmEg9cffWxI7s5XzEKBow(literal);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, detectStrVersion__V25kMWfh1jWVNQQI5BNfLg)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m) {
	NI result;
	result = (NI)0;
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* coreX60gensym93025034_;
		if (!((*(*m).g).strVersion == ((NI) 0))) goto LA3_;
		coreX60gensym93025034_ = getCompilerProc__4qXS5VHrKJ5hq9crvvz8tIA((*(*m).g).graph, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_40));
		{
			NIM_BOOL T7_;
			T7_ = (NIM_BOOL)0;
			T7_ = (coreX60gensym93025034_ == NIM_NIL);
			if (T7_) goto LA8_;
			T7_ = !(((*coreX60gensym93025034_).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 10)));
			LA8_: ;
			if (!T7_) goto LA9_;
			(*(*m).g).strVersion = ((NI) 1);
		}
		goto LA5_;
		LA9_: ;
		{
			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T12_;
			T12_ = getInt__Ml9bTZ5dXYSLBfnGRkErokw((*coreX60gensym93025034_).ast);
			(*(*m).g).strVersion = toInt__TIX0sFuRf3uBpOBltYp7bw(T12_);
		}
		LA5_: ;
	}
	LA3_: ;
	result = (*(*m).g).strVersion;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isActivated__FP3Xc9c0yhzvB6NLyfQJkYw)(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__HbYPOpwLApFuBkISFGrmEQ_2)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* prc) {
	NI T1_;
	asgnRef((void**) (&(*(*m).g).forwardedProcs), (tySequence__DfgJFJEYoj4YBAHLZPl5lQ*) incrSeqV3((TGenericSeq*)((*(*m).g).forwardedProcs), (&NTI__DfgJFJEYoj4YBAHLZPl5lQ_)));
	T1_ = (*(*m).g).forwardedProcs->Sup.len++;
	asgnRef((void**) (&(*(*m).g).forwardedProcs->data[T1_]), prc);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow*, findPendingModule__Dhy9cmzSsJkQqlfDq047WUA)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {
	tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* ms;
	result = (tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow*)0;
	ms = getModule__xfh8ar7fDxVX2A4OO9b5sqQ(s);
	if ((NU)((*ms).position) >= (NU)((*(*m).g).modules ? (*(*m).g).modules->Sup.len : 0)){ raiseIndexError2((*ms).position,((*(*m).g).modules ? (*(*m).g).modules->Sup.len : 0)-1); }
	result = (*(*m).g).modules->data[(*ms).position];
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isNonReloadable__bilAk8nY4d5fxUpVg9bnphQ_2)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* prc) {
	NIM_BOOL result;
	NIM_BOOL T1_;
{	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = hcrOn__a2BRACVCGIuooKjHNmoLsA(m);
	if (!(T1_)) goto LA2_;
	T1_ = (((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 37))&63U)))!=0);
	LA2_: ;
	result = T1_;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
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);
	if ((T1_) < ((NI) (-2147483647 -1)) || (T1_) > ((NI) 2147483647)){ raiseRangeErrorI(T1_, ((NI) (-2147483647 -1)), ((NI) 2147483647)); }
	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) 5):
	{
		result = ((tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w) 20);
	}
	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):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 49):
	{
		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* T13_;
		{
			if (!!((((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 10))&63U)))!=0))) goto LA11_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_45));
		}
		LA11_: ;
		T13_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T13_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(typ);
		result = mapType__K9aceyVl15zb9aYN9b6YJ8TnA(conf, T13_);
		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):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T15_;
		T15_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T15_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(typ);
		result = mapType__K9aceyVl15zb9aYN9b6YJ8TnA(conf, T15_);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14):
	{
		{
			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T19_;
			NIM_BOOL T20_;
			T19_ = firstOrd__hjogdnp59cMX1rwmjikBhqw(conf, typ);
			T20_ = (NIM_BOOL)0;
			T20_ = lt___nr9cP9b0OL9cabygV9bo19cJgZA_3(T19_, IL64(0));
			if (!T20_) goto LA21_;
			result = ((tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w) 6);
		}
		goto LA17_;
		LA21_: ;
		{
			NI64 T24_;
			T24_ = (NI64)0;
			T24_ = getSize__vCG1GF2Iu043oALVyuJfOw(conf, typ);
			if ((T24_) < ((NI) (-2147483647 -1)) || (T24_) > ((NI) 2147483647)){ raiseRangeErrorI(T24_, ((NI) (-2147483647 -1)), ((NI) 2147483647)); }
			switch (((NI) (T24_))) {
			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;
			}
		}
		LA17_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20):
	{
		if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1); }
		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):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* base;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T32_;
		T32_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T32_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(typ);
		base = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(T32_, IL64(36134350135273744));
		switch ((*base).kind) {
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 49):
		{
			result = ((tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w) 18);
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19):
		{
			{
				tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w T37_;
				T37_ = (tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w)0;
				T37_ = mapSetType__K9aceyVl15zb9aYN9b6YJ8TnA_2(conf, base);
				if (!(T37_ == ((tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w) 17))) goto LA38_;
				result = ((tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w) 18);
			}
			goto LA35_;
			LA38_: ;
			{
				result = ((tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w) 20);
			}
			LA35_: ;
		}
		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 LA47_;
			result = ((tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w) 23);
		}
		goto LA45_;
		LA47_: ;
		{
			result = ((tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w) 19);
		}
		LA45_: ;
	}
	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):
	{
		NI TM__MQdRN7fpbG7rPm4JpVVAhA_46;
		NI TM__MQdRN7fpbG7rPm4JpVVAhA_47;
		if (nimSubInt((*typ).kind, ((NI) 31), &TM__MQdRN7fpbG7rPm4JpVVAhA_46)) { raiseOverflow(); };
		if (nimAddInt((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_46), ((NI) 3), &TM__MQdRN7fpbG7rPm4JpVVAhA_47)) { raiseOverflow(); };
		if (((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_47)) < ((tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w) 0) || ((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_47)) > ((tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w) 24)){ raiseRangeErrorI((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_47), ((tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w) 0), ((tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w) 24)); }
		result = ((tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w) ((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_47)));
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60):
	{
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T58_;
			if (!!(((*typ).n == NIM_NIL))) goto LA56_;
			T58_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T58_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(typ);
			result = mapType__K9aceyVl15zb9aYN9b6YJ8TnA(conf, T58_);
		}
		goto LA54_;
		LA56_: ;
		{
			{
				if (!NIM_TRUE) goto LA62_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_48));
			}
			LA62_: ;
		}
		LA54_: ;
	}
	break;
	default:
	{
		{
			if (!NIM_TRUE) goto LA67_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_49));
		}
		LA67_: ;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isObjLackingTypeField__kS4QQNg40ThwD2ps8HD9aQgcgen)(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_;
	if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1); }
	T4_ = ((*typ).sons->data[((NI) 0)] == NIM_NIL);
	LA5_: ;
	T3_ = T4_;
	if (T3_) goto LA6_;
	T3_ = isPureObject__IVXYI9cxSeivThgKCncHRnA(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__zsqmUNR5OZrTUna0Y9bdu9bg(rettype, IL64(36134350135273744));
			result = !(((*T8_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*T8_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47) || (*T8_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*T8_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21)));
		}
		break;
		case ((tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w) 19):
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
			NIM_BOOL T16_;
			NIM_BOOL T18_;
			NIM_BOOL T20_;
			t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(rettype, IL64(36134350135273744));
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = isImportedCppType__IafZhvqpthq9b9c13SFhzAOw(rettype);
				if (T12_) goto LA13_;
				T12_ = isImportedCppType__IafZhvqpthq9b9c13SFhzAOw(t);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = NIM_FALSE;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = (NIM_BOOL)0;
			T16_ = containsGarbageCollectedRef__IVXYI9cxSeivThgKCncHRnA_2(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__kS4QQNg40ThwD2ps8HD9aQgcgen(t);
			T18_ = !(T20_);
			LA19_: ;
			T16_ = T18_;
			LA17_: ;
			result = T16_;
		}
		break;
		default:
		{
			result = NIM_FALSE;
		}
		break;
		}
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isCompileTimeOnly__F9ciDIanrWYqbJ4rgLlNAAg_3types)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isKeyword__plkNLyLwnwkMYELCfG4Gxw)(tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* w) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	switch ((*w).Sup.id) {
	case ((NI) 218) ... ((NI) 283):
	case ((NI) 4) ... ((NI) 66):
	case ((NI) 140):
	{
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	break;
	default:
	{
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, mangleParamName__RaNE9b8A430I9bfpgZmdrC1w_2)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* 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__GxzvEIRbrShQbyJNboTw7A((*(*s).name).s);
		{
			NIM_BOOL T7_;
			NIM_BOOL T8_;
			T7_ = (NIM_BOOL)0;
			T8_ = (NIM_BOOL)0;
			T8_ = hcrOn__a2BRACVCGIuooKjHNmoLsA(m);
			if (T8_) goto LA9_;
			T8_ = isKeyword__plkNLyLwnwkMYELCfG4Gxw((*s).name);
			LA9_: ;
			T7_ = T8_;
			if (T7_) goto LA10_;
			T7_ = contains__RafAVeUVSno4B47UdPqNlg((*(*(*m).g).config).cppDefines, res);
			LA10_: ;
			if (!T7_) goto LA11_;
			res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_51));
		}
		LA11_: ;
		result = rope__yShmEg9cffWxI7s5XzEKBow(res);
		asgnRef((void**) (&(*s).loc.r), result);
		{
			NI T17_;
			if (!(*m).ndi.enabled) goto LA15_;
			asgnRef((void**) (&(*m).ndi.syms), (tySequence__DfgJFJEYoj4YBAHLZPl5lQ*) incrSeqV3((TGenericSeq*)((*m).ndi.syms), (&NTI__DfgJFJEYoj4YBAHLZPl5lQ_)));
			T17_ = (*m).ndi.syms->Sup.len++;
			asgnRef((void**) (&(*m).ndi.syms->data[T17_]), s);
		}
		LA15_: ;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw, paramStorageLoc__lQqiacOo5FnwNzTrDjiPvw)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* param) {
	tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw result;
	result = (tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw)0;
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T3_;
		T3_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T3_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*param).typ, IL64(140737496744192));
		if (!!(((*T3_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16) || (*T3_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27) || (*T3_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48)))) goto LA4_;
		result = ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 2);
	}
	goto LA1_;
	LA4_: ;
	{
		result = ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0);
	}
	LA1_: ;
	return result;
}
static N_INLINE(NF, toFloat__y1Fm9aHmxw9bS2jir137Fu5gsystem)(NI i) {
	NF result;
	result = (NF)0;
	result = ((NF) (i));
	return result;
}
static N_INLINE(NF, abs__BRaAqinz6OWTHkALb4oj6Qsystem)(NF x) {
	NF result;
	result = (NF)0;
	{
		if (!(x < 0.0)) goto LA3_;
		result = -(x);
	}
	goto LA1_;
	LA3_: ;
	{
		result = x;
	}
	LA1_: ;
	return result;
}
static N_INLINE(NIM_BOOL, nimMulInt)(NI a, NI b, NI* res) {
	NIM_BOOL result;
	NI r;
	NF floatProd;
	NF T1_;
	NF T2_;
	NF resAsFloat;
	result = (NIM_BOOL)0;
	r = ((NI) ((NU)((NU32)(((NU) (a))) * (NU32)(((NU) (b))))));
	T1_ = (NF)0;
	T1_ = toFloat__y1Fm9aHmxw9bS2jir137Fu5gsystem(a);
	T2_ = (NF)0;
	T2_ = toFloat__y1Fm9aHmxw9bS2jir137Fu5gsystem(b);
	floatProd = ((NF)(T1_) * (NF)(T2_));
	resAsFloat = toFloat__y1Fm9aHmxw9bS2jir137Fu5gsystem(r);
	{
		if (!(resAsFloat == floatProd)) goto LA5_;
		(*res) = r;
	}
	goto LA3_;
	LA5_: ;
	{
		{
			NF T10_;
			NF T11_;
			T10_ = (NF)0;
			T10_ = abs__BRaAqinz6OWTHkALb4oj6Qsystem(((NF)(resAsFloat) - (NF)(floatProd)));
			T11_ = (NF)0;
			T11_ = abs__BRaAqinz6OWTHkALb4oj6Qsystem(floatProd);
			if (!(((NF)(3.2000000000000000e+01) * (NF)(T10_)) <= T11_)) goto LA12_;
			(*res) = r;
		}
		goto LA8_;
		LA12_: ;
		{
			result = NIM_TRUE;
		}
		LA8_: ;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, ccgIntroducedPtr__W9aw79b629bysnh3DDOpE3OTg)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* retType) {
	NIM_BOOL result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* pt;
{	result = (NIM_BOOL)0;
	pt = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*s).typ, IL64(36134350135273744));
	{
		if (!!(!((((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 11) == (*s).kind)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_52));
	}
	LA3_: ;
	{
		if (!(((*pt).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 14))&63U)))!=0)) goto LA7_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	goto LA5_;
	LA7_: ;
	{
		if (!(((*pt).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 13))&63U)))!=0)) goto LA10_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	goto LA5_;
	LA10_: ;
	LA5_: ;
	switch ((*pt).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17):
	{
		{
			NIM_BOOL T15_;
			T15_ = (NIM_BOOL)0;
			T15_ = !(((*(*s).typ).sym == NIM_NIL));
			if (!(T15_)) goto LA16_;
			T15_ = (((*(*(*s).typ).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 4))&63U)))!=0);
			LA16_: ;
			if (!T15_) goto LA17_;
			result = NIM_TRUE;
		}
		goto LA13_;
		LA17_: ;
		{
			NIM_BOOL T20_;
			NI TM__MQdRN7fpbG7rPm4JpVVAhA_53;
			NI64 T22_;
			T20_ = (NIM_BOOL)0;
			T20_ = (((*s).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 21))&31U)))!=0);
			if (T20_) goto LA21_;
			if (nimMulInt((*conf).target.floatSize, ((NI) 3), &TM__MQdRN7fpbG7rPm4JpVVAhA_53)) { raiseOverflow(); };
			T22_ = (NI64)0;
			T22_ = getSize__vCG1GF2Iu043oALVyuJfOw(conf, pt);
			T20_ = (((NI64) ((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_53))) < T22_);
			LA21_: ;
			if (!T20_) goto LA23_;
			result = NIM_TRUE;
		}
		goto LA13_;
		LA23_: ;
		{
			NIM_BOOL T26_;
			T26_ = (NIM_BOOL)0;
			T26_ = !((retType == NIM_NIL));
			if (!(T26_)) goto LA27_;
			T26_ = ((*retType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47));
			LA27_: ;
			if (!T26_) goto LA28_;
			result = NIM_TRUE;
		}
		goto LA13_;
		LA28_: ;
		{
			NIM_BOOL T31_;
			T31_ = (NIM_BOOL)0;
			T31_ = (((*pt).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 2))&63U)))!=0);
			if (!(T31_)) goto LA32_;
			if ((NU)(((NI) 0)) >= (NU)((*pt).sons ? (*pt).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*pt).sons ? (*pt).sons->Sup.len : 0)-1); }
			T31_ = ((*pt).sons->data[((NI) 0)] == NIM_NIL);
			LA32_: ;
			if (!T31_) goto LA33_;
			result = NIM_FALSE;
		}
		goto LA13_;
		LA33_: ;
		{
			result = NIM_TRUE;
		}
		LA13_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		{
			NIM_BOOL T39_;
			T39_ = (NIM_BOOL)0;
			T39_ = !((retType == NIM_NIL));
			if (!(T39_)) goto LA40_;
			T39_ = ((*retType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47));
			LA40_: ;
			if (!T39_) goto LA41_;
			result = NIM_TRUE;
		}
		goto LA37_;
		LA41_: ;
		{
			NIM_BOOL T44_;
			NI TM__MQdRN7fpbG7rPm4JpVVAhA_54;
			NI64 T45_;
			T44_ = (NIM_BOOL)0;
			if (nimMulInt((*conf).target.floatSize, ((NI) 3), &TM__MQdRN7fpbG7rPm4JpVVAhA_54)) { raiseOverflow(); };
			T45_ = (NI64)0;
			T45_ = getSize__vCG1GF2Iu043oALVyuJfOw(conf, pt);
			T44_ = (((NI64) ((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_54))) < T45_);
			if (T44_) goto LA46_;
			T44_ = (((*s).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 21))&31U)))!=0);
			LA46_: ;
			result = T44_;
		}
		LA37_: ;
	}
	break;
	default:
	{
		result = NIM_FALSE;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, cacheGetType__2wgznvEs9bt7XaKJgVohBCw)(tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA tab, tyArray__qtqsWM5aXmcpMIVmvq3kAA sig) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	result = getOrDefault__tD8SQMueXhdfvpBnagcsKg(tab, sig);
	return result;
}
static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c) {
	(*dest).data[(*dest).Sup.len] = c;
	(*dest).data[(NI)((*dest).Sup.len + ((NI) 1))] = 0;
	(*dest).Sup.len += ((NI) 1);
}
N_LIB_PRIVATE N_NIMCALL(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__zsqmUNR5OZrTUna0Y9bdu9bg(typ, IL64(1189055854743137808));
	{
		NIM_BOOL T3_;
		NimStringDesc* T7_;
		NimStringDesc* T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*typ_2).sym == NIM_NIL));
		if (!(T3_)) goto LA4_;
		T3_ = ((*typ_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17) || (*typ_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14));
		LA4_: ;
		if (!T3_) goto LA5_;
		T7_ = (NimStringDesc*)0;
		T8_ = (NimStringDesc*)0;
		T8_ = mangle__GxzvEIRbrShQbyJNboTw7A((*(*(*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__zLenRlTUJy0Mn9b8JKwzEcQ_3)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* 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_ = !(((192 & (*(*t).sym).flags) == 0));
				LA6_: ;
				if (!T5_) goto LA7_;
				result = (*(*t).sym).loc.r;
				goto BeforeRet_;
			}
			LA7_: ;
			{
				if (!((IL64(1189055854743137808) &((NU64)1<<((NU)((*t).kind)&63U)))!=0)) goto LA11_;
				t = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(t);
			}
			goto LA9_;
			LA11_: ;
			{
				goto LA1;
			}
			LA9_: ;
		}
	} LA1: ;
	{
		if (!((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4) || (*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46) || (*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45))) goto LA16_;
		typ_2 = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(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___0A9bslyIJ49bWrftLGh13rvg(sig);
		asgnRef((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_55));
appendString(T30_, reprEnum((NI)(*typ_2).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_)));
		internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, T30_);
	}
	LA28_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isImportedType__IafZhvqpthq9b9c13SFhzAOw_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) 6))&63U)))!=0);
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addForwardStructFormat__pzRGCZRDAEWnDSHC2tztFg)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* structOrUnion, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* typename_0) {
	{
		NIM_BOOL T3_;
		tyArray__mrugoXXRZUEeG9bEXo9auBKw T7_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T8_;
		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) 31))&63U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		nimZeroMem((void*)T7_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
		T7_[0] = structOrUnion;
		T7_[1] = typename_0;
		T8_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T8_ = percent___vzbf0XksfaFTXNoTT6BCwA(T7_, 2);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 3))- 0], T8_);
	}
	goto LA1_;
	LA5_: ;
	{
		tyArray__mrugoXXRZUEeG9bEXo9auBKw T10_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T11_;
		nimZeroMem((void*)T10_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
		T10_[0] = structOrUnion;
		T10_[1] = typename_0;
		T11_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T11_ = percent___lQVSDPkAFXHNoa1N7jYrNw(T10_, 2);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 3))- 0], T11_);
	}
	LA1_: ;
}
static N_NIMCALL(void, TM__MQdRN7fpbG7rPm4JpVVAhA_56)(void) {
	nimGCvisit((void*)cachedUnion__37c7SFtO1oJKGkAWrI71Fw, 0);
}
static N_NIMCALL(void, TM__MQdRN7fpbG7rPm4JpVVAhA_58)(void) {
	nimGCvisit((void*)cachedStruct__9a5hqgEB1sqNj6CL5z0oy5w, 0);
}
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__zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(70368744177680));
	{
		if (!(((*t_2).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 1))&63U)))!=0)) goto LA3_;
		result = cachedUnion__37c7SFtO1oJKGkAWrI71Fw;
	}
	goto LA1_;
	LA3_: ;
	{
		result = cachedStruct__9a5hqgEB1sqNj6CL5z0oy5w;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, pushType__4q3XOfd3NI3C8cSNkaF9cWA)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	NI T9_;
{	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (((*m).typeStack ? (*m).typeStack->Sup.len : 0)-1);
		colontmp_ = T2_;
		res = ((NI) 0);
		{
			while (1) {
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_60;
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				{
					if ((NU)(i) >= (NU)((*m).typeStack ? (*m).typeStack->Sup.len : 0)){ raiseIndexError2(i,((*m).typeStack ? (*m).typeStack->Sup.len : 0)-1); }
					if (!((*m).typeStack->data[i] == typ)) goto LA7_;
					goto BeforeRet_;
				}
				LA7_: ;
				if (nimAddInt(res, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_60)) { raiseOverflow(); };
				res = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_60);
			} LA4: ;
		}
	}
	asgnRef((void**) (&(*m).typeStack), (tySequence__Ef05srmQTDulnBdXR4Ja6Q*) incrSeqV3((TGenericSeq*)((*m).typeStack), (&NTI__Ef05srmQTDulnBdXR4Ja6Q_)));
	T9_ = (*m).typeStack->Sup.len++;
	asgnRef((void**) (&(*m).typeStack->data[T9_]), typ);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getTypeForward__zLenRlTUJy0Mn9b8JKwzEcQ_2)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyArray__qtqsWM5aXmcpMIVmvq3kAA sig) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* concrete;
{	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	result = cacheGetType__2wgznvEs9bt7XaKJgVohBCw((*m).forwTypeCache, sig);
	{
		if (!!((result == NIM_NIL))) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	result = getTypePre__zLenRlTUJy0Mn9b8JKwzEcQ(m, typ, sig);
	{
		if (!!((result == NIM_NIL))) goto LA7_;
		goto BeforeRet_;
	}
	LA7_: ;
	concrete = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(typ, IL64(4647820368562661648));
	switch ((*concrete).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17):
	{
		result = getTypeName__zLenRlTUJy0Mn9b8JKwzEcQ_3(m, typ, sig);
		X5BX5Deq___zhbvOVNN6tTRFgZkPDZOmA((&(*m).forwTypeCache), sig, result);
		{
			NIM_BOOL T12_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T15_;
			T12_ = (NIM_BOOL)0;
			T12_ = isImportedType__IafZhvqpthq9b9c13SFhzAOw_2(concrete);
			if (!!(T12_)) goto LA13_;
			T15_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T15_ = structOrUnion__TLFDupRCidtMx8175pusWQ(typ);
			addForwardStructFormat__pzRGCZRDAEWnDSHC2tztFg(m, T15_, result);
		}
		goto LA10_;
		LA13_: ;
		{
			pushType__4q3XOfd3NI3C8cSNkaF9cWA(m, concrete);
		}
		LA10_: ;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T19_;
			T19_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T19_ = X5BX5D___KricVWBSqqSbgxpQ5up3Ig((&(*m).forwTypeCache), sig);
			if (!!(((*T19_) == result))) goto LA20_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_61));
		}
		LA20_: ;
	}
	break;
	default:
	{
		NimStringDesc* T23_;
		T23_ = (NimStringDesc*)0;
		T23_ = rawNewString((reprEnum((NI)(*typ).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*typ).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 16);
appendString(T23_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_62));
appendString(T23_, reprEnum((NI)(*typ).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_)));
appendChar(T23_, 41);
		internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, T23_);
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, seqStar__hiFj6GH2C6Qv8bI0r9caT5A)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m) {
	NimStringDesc* result;
	result = (NimStringDesc*)0;
	{
		if (!(((*(*(*m).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 39))&63U)))!=0)) goto LA3_;
		result = ((NimStringDesc*) NIM_NIL);
	}
	goto LA1_;
	LA3_: ;
	{
		result = copyString(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_69));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getTypeDescWeak__zbGAk3tbGBemhAx4n61z3g)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* check) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* etB;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	etB = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(36134350135273744));
	switch ((*etB).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		{
			NIM_BOOL T4_;
			T4_ = (NIM_BOOL)0;
			T4_ = isImportedCppType__IafZhvqpthq9b9c13SFhzAOw(etB);
			if (!(T4_)) goto LA5_;
			T4_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11));
			LA5_: ;
			if (!T4_) goto LA6_;
			result = getTypeDescAux__BpNtboTsUfmvl9cmcZf9bOSQ(m, t, check);
		}
		goto LA2_;
		LA6_: ;
		{
			tyArray__qtqsWM5aXmcpMIVmvq3kAA T9_;
			nimZeroMem((void*)T9_, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
			hashType__UdooXLclXL8uld7qLI5JRw(t, 2, T9_);
			result = getTypeForward__zLenRlTUJy0Mn9b8JKwzEcQ_2(m, t, T9_);
			pushType__4q3XOfd3NI3C8cSNkaF9cWA(m, t);
		}
		LA2_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
	{
		tyArray__qtqsWM5aXmcpMIVmvq3kAA sig;
		nimZeroMem((void*)sig, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
		hashType__UdooXLclXL8uld7qLI5JRw(t, 2, sig);
		{
			if (!(((*(*(*m).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 39))&63U)))!=0)) goto LA13_;
			{
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T17_;
				if ((NU)(((NI) 0)) >= (NU)((*etB).sons ? (*etB).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*etB).sons ? (*etB).sons->Sup.len : 0)-1); }
				T17_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T17_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*etB).sons->data[((NI) 0)], IL64(36134350135273744));
				if (!((*T17_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 3))) goto LA18_;
				internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_63));
			}
			LA18_: ;
			result = cacheGetType__2wgznvEs9bt7XaKJgVohBCw((*m).forwTypeCache, sig);
			{
				if (!(result == NIM_NIL)) goto LA22_;
				result = getTypeName__zLenRlTUJy0Mn9b8JKwzEcQ_3(m, t, sig);
				{
					NIM_BOOL T26_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T29_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* payload;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T30_;
					T26_ = (NIM_BOOL)0;
					T26_ = isImportedType__IafZhvqpthq9b9c13SFhzAOw_2(t);
					if (!!(T26_)) goto LA27_;
					X5BX5Deq___zhbvOVNN6tTRFgZkPDZOmA((&(*m).forwTypeCache), sig, result);
					T29_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T29_ = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_64));
					addForwardStructFormat__pzRGCZRDAEWnDSHC2tztFg(m, T29_, result);
					payload = amp___Z7W1o5nPSc3ExfO5f7j1Gg(result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_65));
					T30_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T30_ = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_64));
					addForwardStructFormat__pzRGCZRDAEWnDSHC2tztFg(m, T30_, payload);
				}
				LA27_: ;
			}
			LA22_: ;
			{
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T33_;
				NimStringDesc* res;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T40_;
				T33_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T33_ = cacheGetType__2wgznvEs9bt7XaKJgVohBCw((*m).typeCache, sig);
				if (!(T33_ == NIM_NIL)) goto LA34_;
				X5BX5Deq___zhbvOVNN6tTRFgZkPDZOmA((&(*m).typeCache), sig, result);
				{
					if (!!(!((m == NIM_NIL)))) goto LA38_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_30));
				}
				LA38_: ;
				res = rawNewString(((NI) 80));
				res = resizeString(res, 7);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_66));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), result);
				res = resizeString(res, 13);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_67));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), result);
				res = resizeString(res, 16);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_68));
				T40_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T40_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
				add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 4))- 0], T40_);
			}
			LA34_: ;
		}
		goto LA11_;
		LA13_: ;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T42_;
			NimStringDesc* T43_;
			T42_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T42_ = getTypeForward__zLenRlTUJy0Mn9b8JKwzEcQ_2(m, t, sig);
			T43_ = (NimStringDesc*)0;
			T43_ = seqStar__hiFj6GH2C6Qv8bI0r9caT5A(m);
			result = amp___Z7W1o5nPSc3ExfO5f7j1Gg(T42_, T43_);
		}
		LA11_: ;
		pushType__4q3XOfd3NI3C8cSNkaF9cWA(m, t);
	}
	break;
	default:
	{
		result = getTypeDescAux__BpNtboTsUfmvl9cmcZf9bOSQ(m, t, check);
	}
	break;
	}
	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__uApDq1rn2zPxULBMpTSrxQ)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* 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;
		if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1); }
		T3_ = ((*t).sons->data[((NI) 0)] == NIM_NIL);
		if (T3_) goto LA4_;
		if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1); }
		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___G9aA37gQrW88KHzpCAwhgjQ(T7_, 0));
	}
	goto LA1_;
	LA5_: ;
	{
		if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1); }
		unsureAsgnRef((void**) (&(*rettype)), getTypeDescAux__BpNtboTsUfmvl9cmcZf9bOSQ(m, (*t).sons->data[((NI) 0)], check));
	}
	LA1_: ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast((*t).n);
		i_2 = ((NI) 1);
		{
			while (1) {
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_71;
				if (!(i_2 < colontmp_)) goto LA11;
				i = i_2;
				{
					tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* param;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T28_;
					tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw T29_;
					tyArray__qTjAvTvKF9anytN1At69aJMQ T44_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T45_;
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* arr;
					NI j;
					{
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t).n).kind)>>3] &(1U<<((NU)((*(*t).n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if ((NU)(i) >= (NU)((*(*t).n)._kind_6.sons ? (*(*t).n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*(*t).n)._kind_6.sons ? (*(*t).n)._kind_6.sons->Sup.len : 0)-1); }
						if (!!(((*(*(*t).n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA15_;
						internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*m).g).config, (*(*t).n).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_50));
					}
					LA15_: ;
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t).n).kind)>>3] &(1U<<((NU)((*(*t).n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i) >= (NU)((*(*t).n)._kind_6.sons ? (*(*t).n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*(*t).n)._kind_6.sons ? (*(*t).n)._kind_6.sons->Sup.len : 0)-1); }
					if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*(*t).n)._kind_6.sons->data[i]).kind)>>3] &(1U<<((NU)((*(*(*t).n)._kind_6.sons->data[i]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
					param = (*(*(*t).n)._kind_6.sons->data[i])._kind_4.sym;
					{
						NIM_BOOL T19_;
						T19_ = (NIM_BOOL)0;
						T19_ = isCompileTimeOnly__F9ciDIanrWYqbJ4rgLlNAAg_3types((*param).typ);
						if (!T19_) goto LA20_;
						goto LA12;
					}
					LA20_: ;
					{
						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___PoDv5ydEvGdd9aiIF9cOiAPw(T26_, 0);
						add__IM4kcMNkkOLJtqdEqSxR8A(params, T27_);
					}
					LA24_: ;
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t).n).kind)>>3] &(1U<<((NU)((*(*t).n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i) >= (NU)((*(*t).n)._kind_6.sons ? (*(*t).n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*(*t).n)._kind_6.sons ? (*(*t).n)._kind_6.sons->Sup.len : 0)-1); }
					T28_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T28_ = mangleParamName__RaNE9b8A430I9bfpgZmdrC1w_2(m, param);
					T29_ = (tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw)0;
					T29_ = paramStorageLoc__lQqiacOo5FnwNzTrDjiPvw(param);
					fillLoc__o49bXuxJYpCizOgQ54UViIg((&(*param).loc), ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 4), (*(*t).n)._kind_6.sons->data[i], T28_, T29_);
					{
						NIM_BOOL T32_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T35_;
						tyArray__qTjAvTvKF9anytN1At69aJMQ T36_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T37_;
						if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1); }
						T32_ = (NIM_BOOL)0;
						T32_ = ccgIntroducedPtr__W9aw79b629bysnh3DDOpE3OTg((*(*m).g).config, param, (*t).sons->data[((NI) 0)]);
						if (!T32_) goto LA33_;
						T35_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T35_ = getTypeDescWeak__zbGAk3tbGBemhAx4n61z3g(m, (*param).typ, check);
						add__IM4kcMNkkOLJtqdEqSxR8A(params, T35_);
						nimZeroMem((void*)T36_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
						T37_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T37_ = percent___6d8an6hdqiIrRjPW1wEh5Q(T36_, 0);
						add__IM4kcMNkkOLJtqdEqSxR8A(params, T37_);
						(*param).loc.flags |= ((NU16)1)<<((((tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA) 0)) & 15);
						(*param).loc.storage = ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0);
					}
					goto LA30_;
					LA33_: ;
					{
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T41_;
						if (!weakDep) goto LA39_;
						T41_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T41_ = getTypeDescWeak__zbGAk3tbGBemhAx4n61z3g(m, (*param).typ, check);
						add__IM4kcMNkkOLJtqdEqSxR8A(params, T41_);
					}
					goto LA30_;
					LA39_: ;
					{
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T43_;
						T43_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T43_ = getTypeDescAux__BpNtboTsUfmvl9cmcZf9bOSQ(m, (*param).typ, check);
						add__IM4kcMNkkOLJtqdEqSxR8A(params, T43_);
					}
					LA30_: ;
					nimZeroMem((void*)T44_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
					T45_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T45_ = percent___gMbiWAc0IjihIq46IYhmAw(T44_, 0);
					add__IM4kcMNkkOLJtqdEqSxR8A(params, T45_);
					add__IM4kcMNkkOLJtqdEqSxR8A(params, (*param).loc.r);
					arr = (*param).typ;
					{
						if (!((*arr).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*arr).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47) || (*arr).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46))) goto LA48_;
						arr = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(arr);
					}
					LA48_: ;
					j = ((NI) 0);
					{
						while (1) {
							tyArray__mrugoXXRZUEeG9bEXo9auBKw T56_;
							tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T57_;
							NI TM__MQdRN7fpbG7rPm4JpVVAhA_70;
							if (!((*arr).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27) || (*arr).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48))) goto LA51;
							{
								if (!((*(*param).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*(*param).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47))) goto LA54_;
								(*param).loc.storage = ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0);
							}
							LA54_: ;
							nimZeroMem((void*)T56_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
							T56_[0] = (*param).loc.r;
							T56_[1] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (j)));
							T57_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
							T57_ = percent___uHsu7fLXac4OhMNd79bSJwA(T56_, 2);
							add__IM4kcMNkkOLJtqdEqSxR8A(params, T57_);
							if (nimAddInt(j, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_70)) { raiseOverflow(); };
							j = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_70);
							if ((NU)(((NI) 0)) >= (NU)((*arr).sons ? (*arr).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*arr).sons ? (*arr).sons->Sup.len : 0)-1); }
							arr = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*arr).sons->data[((NI) 0)], IL64(70368744177664));
						} LA51: ;
					}
				} LA12: ;
				if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_71)) { raiseOverflow(); };
				i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_71);
			} LA11: ;
		}
	}
	{
		NIM_BOOL T60_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* arr_2;
		tyArray__qTjAvTvKF9anytN1At69aJMQ T76_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T77_;
		T60_ = (NIM_BOOL)0;
		if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1); }
		T60_ = !(((*t).sons->data[((NI) 0)] == NIM_NIL));
		if (!(T60_)) goto LA61_;
		if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1); }
		T60_ = isInvalidReturnType__ugBeCbo3I6LqXHcpCBFN9ag((*(*m).g).config, (*t).sons->data[((NI) 0)]);
		LA61_: ;
		if (!T60_) goto LA62_;
		if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1); }
		arr_2 = (*t).sons->data[((NI) 0)];
		{
			if (!!(((*params) == NIM_NIL))) goto LA66_;
			add__yG4AKzsBRS1W4MANDlXQeg(params, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
		}
		LA66_: ;
		{
			tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w T70_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T73_;
			if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1); }
			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__zbGAk3tbGBemhAx4n61z3g(m, arr_2, check);
			add__IM4kcMNkkOLJtqdEqSxR8A(params, T73_);
			add__yG4AKzsBRS1W4MANDlXQeg(params, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_69));
		}
		goto LA68_;
		LA71_: ;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T75_;
			T75_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T75_ = getTypeDescAux__BpNtboTsUfmvl9cmcZf9bOSQ(m, arr_2, check);
			add__IM4kcMNkkOLJtqdEqSxR8A(params, T75_);
		}
		LA68_: ;
		nimZeroMem((void*)T76_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
		T77_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T77_ = percent___3WM9b4PeyDKoIDFMvYcQX3w(T76_, 0);
		add__IM4kcMNkkOLJtqdEqSxR8A(params, T77_);
	}
	LA62_: ;
	{
		NIM_BOOL T80_;
		T80_ = (NIM_BOOL)0;
		T80_ = ((*t).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 8));
		if (!(T80_)) goto LA81_;
		T80_ = declareEnvironment;
		LA81_: ;
		if (!T80_) goto LA82_;
		{
			if (!!(((*params) == NIM_NIL))) goto LA86_;
			add__yG4AKzsBRS1W4MANDlXQeg(params, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
		}
		LA86_: ;
		add__yG4AKzsBRS1W4MANDlXQeg(params, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_73));
	}
	LA82_: ;
	{
		if (!(((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 0))&63U)))!=0)) goto LA90_;
		{
			if (!!(((*params) == NIM_NIL))) goto LA94_;
			add__yG4AKzsBRS1W4MANDlXQeg(params, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
		}
		LA94_: ;
		add__yG4AKzsBRS1W4MANDlXQeg(params, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_74));
	}
	LA90_: ;
	{
		if (!((*params) == NIM_NIL)) goto LA98_;
		add__yG4AKzsBRS1W4MANDlXQeg(params, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_75));
	}
	goto LA96_;
	LA98_: ;
	{
		add__yG4AKzsBRS1W4MANDlXQeg(params, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
	}
	LA96_: ;
	unsureAsgnRef((void**) (&(*params)), amp___4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77), (*params)));
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genProcHeader__OWG529cW3RTHLgDJuQoIH8A)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* prc, NIM_BOOL asPtr) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* rettype;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* params;
	tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg check;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T20_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* asPtrStr;
	NimStringDesc* T21_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* name;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	rettype = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	params = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!(((*prc).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA) 5))&15U)))!=0)) goto LA3_;
		{
			if (!(((*m).flags &(1U<<((NU)(((tyEnum_CodegenFlag__9c7EibnXBApMXwrQsaaMb6Q) 3))&7U)))!=0)) goto LA7_;
			add__yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_41));
		}
		goto LA5_;
		LA7_: ;
		{
			add__yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_42));
		}
		LA5_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T11_;
		NIM_BOOL T12_;
		T11_ = (NIM_BOOL)0;
		T12_ = (NIM_BOOL)0;
		T12_ = ((*(*prc).typ).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 5));
		if (T12_) goto LA13_;
		T12_ = asPtr;
		LA13_: ;
		T11_ = T12_;
		if (T11_) goto LA14_;
		T11_ = isNonReloadable__bilAk8nY4d5fxUpVg9bnphQ_2(m, prc);
		LA14_: ;
		if (!T11_) goto LA15_;
		add__yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_43));
	}
	goto LA1_;
	LA15_: ;
	{
		if (!!((((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 6))&63U)))!=0))) goto LA18_;
		add__yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_44));
	}
	goto LA1_;
	LA18_: ;
	LA1_: ;
	nimZeroMem((void*)(&check), sizeof(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg));
	initIntSet__n8oDZMn19bEdodSnrBQB9a1Q((&check));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*prc).ast).kind)>>3] &(1U<<((NU)((*(*prc).ast).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*(*prc).ast)._kind_6.sons ? (*(*prc).ast)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*prc).ast)._kind_6.sons ? (*(*prc).ast)._kind_6.sons->Sup.len : 0)-1); }
	T20_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T20_ = mangleName__RaNE9b8A430I9bfpgZmdrC1w(m, prc);
	fillLoc__o49bXuxJYpCizOgQ54UViIg((&(*prc).loc), ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 7), (*(*prc).ast)._kind_6.sons->data[((NI) 0)], T20_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	genProcParams__uApDq1rn2zPxULBMpTSrxQ(m, (*prc).typ, &rettype, &params, (&check), NIM_TRUE, NIM_FALSE);
	T21_ = (NimStringDesc*)0;
	{
		if (!asPtr) goto LA24_;
		T21_ = copyString(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_78));
	}
	goto LA22_;
	LA24_: ;
	{
		T21_ = ((NimStringDesc*) NIM_NIL);
	}
	LA22_: ;
	asPtrStr = rope__yShmEg9cffWxI7s5XzEKBow(T21_);
	name = (*prc).loc.r;
	{
		NIM_BOOL T29_;
		T29_ = (NIM_BOOL)0;
		T29_ = isReloadable__bilAk8nY4d5fxUpVg9bnphQ(m, prc);
		if (!(T29_)) goto LA30_;
		T29_ = !(asPtr);
		LA30_: ;
		if (!T29_) goto LA31_;
		add__yG4AKzsBRS1W4MANDlXQeg(&name, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_79));
	}
	LA31_: ;
	{
		tyArray__duFhZXIIlrbrM62cWjNekg T37_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T38_;
		if (!((*prc).constraint == 0)) goto LA35_;
		nimZeroMem((void*)T37_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
		T37_[0] = rope__yShmEg9cffWxI7s5XzEKBow(CallingConvToStr__A7GdKVVGtI3pvj9cV9adydpw[((*(*prc).typ).callConv)- 0]);
		T37_[1] = asPtrStr;
		T37_[2] = rettype;
		T37_[3] = name;
		T37_[4] = params;
		T38_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T38_ = percent___p4LhaCxKpUERrq9cB9b8Mp9cw(T37_, 5);
		add__IM4kcMNkkOLJtqdEqSxR8A(&result, T38_);
	}
	goto LA33_;
	LA35_: ;
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* asPtrStr_2;
		tyArray__wqYjTJU9ab2ZgEFMaQc3vNA T47_;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T44_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T45_;
			if (!asPtr) goto LA42_;
			T44_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T44_ = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_90));
			T45_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T45_ = amp___ShdZ6VrAQkY0nWR9a39b9bGdQ(T44_, name);
			asPtrStr_2 = amp___Z7W1o5nPSc3ExfO5f7j1Gg(T45_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
		}
		goto LA40_;
		LA42_: ;
		{
			asPtrStr_2 = name;
		}
		LA40_: ;
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_91[(NU)((*(*prc).constraint).kind)>>3] &(1U<<((NU)((*(*prc).constraint).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_92)); }
		nimZeroMem((void*)T47_, sizeof(tyArray__wqYjTJU9ab2ZgEFMaQc3vNA));
		T47_[0] = rettype;
		T47_[1] = asPtrStr_2;
		T47_[2] = params;
		result = runtimeFormat__9bvKdnhoYI2ta9agQNm3orMA((*(*prc).constraint)._kind_3.strVal, T47_, 3);
	}
	LA33_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsResult__fNMD7OWzxZVWuSQ9cYs2S9ag)(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_;
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
		T3_ = ((*(*n)._kind_4.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__P89cqdlERShb9alU3iC0yj8w_2ast(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_96;
					if (!(i_2 < colontmp_)) goto LA10;
					i = i_2;
					{
						NIM_BOOL T13_;
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if ((NU)(i) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
						T13_ = (NIM_BOOL)0;
						T13_ = containsResult__fNMD7OWzxZVWuSQ9cYs2S9ag((*n)._kind_6.sons->data[i]);
						if (!T13_) goto LA14_;
						result = NIM_TRUE;
						goto BeforeRet_;
					}
					LA14_: ;
					if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_96)) { raiseOverflow(); };
					i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_96);
				} LA10: ;
			}
		}
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, easyResultAsgn__oKhRC9bEKTxG5epdNiNWZ0w)(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_;
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_95;
				T4_ = (NIM_BOOL)0;
				T5_ = (NI)0;
				T5_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
				T4_ = (i < T5_);
				if (!(T4_)) goto LA6_;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(i) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
				T4_ = ((*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1) || (*(*n)._kind_6.sons->data[i]).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) && (*(*n)._kind_6.sons->data[i]).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84) || (*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98) || (*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 101) || (*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125) || (*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159));
				LA6_: ;
				if (!T4_) goto LA3;
				if (nimAddInt(i, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_95)) { raiseOverflow(); };
				i = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_95);
			} LA3: ;
		}
		{
			NI T9_;
			T9_ = (NI)0;
			T9_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (!(i < T9_)) goto LA10_;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(i) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
			result = easyResultAsgn__oKhRC9bEKTxG5epdNiNWZ0w((*n)._kind_6.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;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
			T16_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T16_)) goto LA17_;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
			if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
			T16_ = ((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 11));
			LA17_: ;
			T15_ = T16_;
			if (!(T15_)) goto LA18_;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
			T19_ = (NIM_BOOL)0;
			T19_ = containsResult__fNMD7OWzxZVWuSQ9cYs2S9ag((*n)._kind_6.sons->data[((NI) 1)]);
			T15_ = !(T19_);
			LA18_: ;
			if (!T15_) goto LA20_;
			(*n).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 15)) & 31);
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
			result = (*n)._kind_6.sons->data[((NI) 1)];
			goto BeforeRet_;
		}
		LA20_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 109):
	{
		{
			NI T25_;
			T25_ = (NI)0;
			T25_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (!(((NI) 0) < T25_)) goto LA26_;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
			result = easyResultAsgn__oKhRC9bEKTxG5epdNiNWZ0w((*n)._kind_6.sons->data[((NI) 0)]);
			{
				if (!!((result == NIM_NIL))) goto LA30_;
				(*n).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 15)) & 31);
			}
			LA30_: ;
		}
		LA26_: ;
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, shallow__cnzwaZQQIa73ryXE31wijQsystem)(NimStringDesc** s) {
	TGenericSeq* s_2;
	s_2 = ((TGenericSeq*) ((*s)));
	{
		NimStringDesc* T5_;
		if (!(s_2 == NIM_NIL)) goto LA3_;
		T5_ = (NimStringDesc*)0;
		T5_ = mnewString(((NI) 0));
		s_2 = ((TGenericSeq*) (T5_));
	}
	LA3_: ;
	{
		if (!((NI)((*s_2).reserved & ((NI) 1073741824)) == ((NI) 0))) goto LA8_;
		(*s_2).reserved = (NI)((*s_2).reserved | ((NI) (-2147483647 -1)));
	}
	LA8_: ;
}
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;
	{
		if (!!(((2100008 &(1U<<((NU)((*s).kind)&31U)))!=0))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_97));
	}
	LA3_: ;
	result = (*s).loc.r;
	{
		NimStringDesc* key;
		NI counter;
		if (!(result == NIM_NIL)) goto LA7_;
		key = mangle__GxzvEIRbrShQbyJNboTw7A((*(*s).name).s);
		shallow__cnzwaZQQIa73ryXE31wijQsystem((&key));
		counter = getOrDefault__9bK0jMctS3Kpz9aVaHPQI4gA((*p).sigConflicts, key, ((NI) 0));
		result = rope__yShmEg9cffWxI7s5XzEKBow(key);
		{
			if (!((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 5))) goto LA11_;
			{
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_98;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T17_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T18_;
				if (!!((counter == ((NI) 0)))) goto LA15_;
				if (nimAddInt(counter, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_98)) { raiseOverflow(); };
				T17_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T17_ = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_98))));
				T18_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T18_ = amp___4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_3), T17_);
				add__IM4kcMNkkOLJtqdEqSxR8A(&result, T18_);
			}
			LA15_: ;
		}
		goto LA9_;
		LA11_: ;
		{
			NIM_BOOL T20_;
			NIM_BOOL T21_;
			NI TM__MQdRN7fpbG7rPm4JpVVAhA_99;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T26_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T27_;
			T20_ = (NIM_BOOL)0;
			T21_ = (NIM_BOOL)0;
			T21_ = !((counter == ((NI) 0)));
			if (T21_) goto LA22_;
			T21_ = isKeyword__plkNLyLwnwkMYELCfG4Gxw((*s).name);
			LA22_: ;
			T20_ = T21_;
			if (T20_) goto LA23_;
			T20_ = contains__RafAVeUVSno4B47UdPqNlg((*(*(*(*p).module).g).config).cppDefines, key);
			LA23_: ;
			if (!T20_) goto LA24_;
			if (nimAddInt(counter, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_99)) { raiseOverflow(); };
			T26_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T26_ = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_99))));
			T27_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T27_ = amp___4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_3), T26_);
			add__IM4kcMNkkOLJtqdEqSxR8A(&result, T27_);
		}
		goto LA9_;
		LA24_: ;
		LA9_: ;
		inc__1cI9bkIJF86iCGvJofQDn7g((&(*p).sigConflicts), key, ((NI) 1));
		asgnRef((void**) (&(*s).loc.r), result);
		{
			if (!!(((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 5)))) goto LA30_;
			{
				NI T36_;
				if (!(*(*p).module).ndi.enabled) goto LA34_;
				asgnRef((void**) (&(*(*p).module).ndi.syms), (tySequence__DfgJFJEYoj4YBAHLZPl5lQ*) incrSeqV3((TGenericSeq*)((*(*p).module).ndi.syms), (&NTI__DfgJFJEYoj4YBAHLZPl5lQ_)));
				T36_ = (*(*p).module).ndi.syms->Sup.len++;
				asgnRef((void**) (&(*(*p).module).ndi.syms->data[T36_]), s);
			}
			LA34_: ;
		}
		LA30_: ;
	}
	LA7_: ;
	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;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T18_;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
	s = (*n)._kind_4.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__o49bXuxJYpCizOgQ54UViIg((&(*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)) & 15);
		}
		LA8_: ;
	}
	LA3_: ;
	{
		NIM_BOOL T12_;
		tyArray__JiWwrsTRC6xqNlGcBthSVA T16_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T17_;
		T12_ = (NIM_BOOL)0;
		T12_ = ((2622208 &(1U<<((NU)((*s).kind)&31U)))!=0);
		if (!(T12_)) goto LA13_;
		if (!(((2622208 &(1U<<((NU)((*s).kind)&31U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_100)); }
		T12_ = (((NI) 0) < (*s)._kind_4.alignment);
		LA13_: ;
		if (!T12_) goto LA14_;
		nimZeroMem((void*)T16_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
		if (!(((2622208 &(1U<<((NU)((*s).kind)&31U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_100)); }
		T16_[0] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*s)._kind_4.alignment)));
		T17_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T17_ = percent___iaEKHmIC9bNRZLxBqSNX0Sg(T16_, 1);
		add__IM4kcMNkkOLJtqdEqSxR8A(&result, T17_);
	}
	LA14_: ;
	T18_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T18_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, (*s).typ);
	add__IM4kcMNkkOLJtqdEqSxR8A(&result, T18_);
	{
		if (!((*s).constraint == 0)) goto LA21_;
		{
			if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 10))&63U)))!=0)) goto LA25_;
			add__yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_101));
		}
		LA25_: ;
		{
			if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 9))&63U)))!=0)) goto LA29_;
			add__yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_102));
		}
		LA29_: ;
		add__yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_33));
		add__IM4kcMNkkOLJtqdEqSxR8A(&result, (*s).loc.r);
	}
	goto LA19_;
	LA21_: ;
	{
		tyArray__mrugoXXRZUEeG9bEXo9auBKw T32_;
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_91[(NU)((*(*s).constraint).kind)>>3] &(1U<<((NU)((*(*s).constraint).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_92)); }
		nimZeroMem((void*)T32_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
		T32_[0] = result;
		T32_[1] = (*s).loc.r;
		result = runtimeFormat__9bvKdnhoYI2ta9agQNm3orMA((*(*s).constraint)._kind_3.strVal, T32_, 2);
	}
	LA19_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, initLoc__qlujIAW86QclHYUVxlHRiQ)(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__qlujIAW86QclHYUVxlHRiQ(result, ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0), e, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*e).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*e).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*e).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*e).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*e).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*e).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*e).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32));
		if (!(T3_)) goto LA4_;
		T5_ = (NIM_BOOL)0;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		T5_ = !(((*(*e)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)));
		if (T5_) goto LA6_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*e)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*e)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
		T5_ = ((*(*(*e)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0));
		LA6_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA7_;
		{
			NIM_BOOL T11_;
			T11_ = (NIM_BOOL)0;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			T11_ = ((*(*e)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T11_)) goto LA12_;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*e)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*e)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
			T11_ = (((*(*(*e)._kind_6.sons->data[((NI) 0)])._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 31))&63U)))!=0);
			LA12_: ;
			if (!T11_) goto LA13_;
			(*result).flags |= ((NU16)1)<<((((tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA) 8)) & 15);
		}
		LA13_: ;
	}
	goto LA1_;
	LA7_: ;
	{
		(*result).flags |= ((NU16)1)<<((((tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA) 8)) & 15);
	}
	LA1_: ;
	expr__8mAL9ckajemzgfLPfeZVNoQ(p, e, result);
}
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___TbMwXzwNL7txOQADiTjwKA(T5_, 1);
	}
	LA3_: ;
	return result;
}
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_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T8_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T9_;
	{
		if (!(((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0)) goto LA3_;
		nl = ((NimStringDesc*) NIM_NIL);
	}
	goto LA1_;
	LA3_: ;
	{
		nl = copyString(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
	}
	LA1_: ;
	T6_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T6_ = localVarDecl__NYI5fC69aIqZGRakncXv9cNQ(p, n);
	T7_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T7_ = amp___Z7W1o5nPSc3ExfO5f7j1Gg(T6_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_104));
	decl = amp___Z7W1o5nPSc3ExfO5f7j1Gg(T7_, nl);
	T8_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T8_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 0));
	T9_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T9_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, decl);
	add__IM4kcMNkkOLJtqdEqSxR8A(T8_, T9_);
}
static N_INLINE(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, t__XNOXh7uniWNgiq58C9bW49awcgen)(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	{
		if (!((*a.lode).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA3_;
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*a.lode).kind)>>3] &(1U<<((NU)((*a.lode).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
		result = (*(*a.lode)._kind_4.sym).typ;
	}
	goto LA1_;
	LA3_: ;
	{
		result = (*a.lode).typ;
	}
	LA1_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isComplexValueType__Fl17jclCP5VEr9a7Ycym1awcgen)(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__zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(49645149017385232));
	T1_ = (NIM_BOOL)0;
	T1_ = ((*t_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16) || (*t_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19) || (*t_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18) || (*t_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17));
	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__XNOXh7uniWNgiq58C9bW49awcgen(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_112), result);
		result = amp___Z7W1o5nPSc3ExfO5f7j1Gg(T9_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
	}
	LA7_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getCFile__bmANOnd5oQhXRrTCn9a8S4g)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* 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) 31))&63U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		ext = copyString(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_119));
	}
	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) 32))&63U)))!=0);
		LA9_: ;
		if (!T8_) goto LA10_;
		ext = copyString(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_120));
	}
	goto LA1_;
	LA10_: ;
	{
		ext = copyString(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_121));
	}
	LA1_: ;
	T13_ = (NimStringDesc*)0;
	T13_ = withPackageName__9bhgFqdEZM7DoX7p3U69bQEg_2((*(*m).g).config, (*m).cfilename);
	T14_ = (NimStringDesc*)0;
	T14_ = completeCfilePath__VmrjcznbGOrooG3SBIdEFQ((*(*m).g).config, T13_, NIM_TRUE);
	result = noschangeFileExt(T14_, ext);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getModuleDllPath__ao6gUnuVfQLtZ89c4kaIKfg_2)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	NimStringDesc* T1_;
	tyTuple__7q7q3E6Oj24ZNVJb9aonhAg T2_;
	NimStringDesc* dir;
	NimStringDesc* name;
	NimStringDesc* ext;
	NimStringDesc* filename;
	tyArray__nHXaesL0DJZHyVS07ARPRA T3_;
	NimStringDesc* T4_;
	NimStringDesc* T5_;
{	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = (NimStringDesc*)0;
	T1_ = getCFile__bmANOnd5oQhXRrTCn9a8S4g(m);
	nimZeroMem((void*)(&T2_), sizeof(tyTuple__7q7q3E6Oj24ZNVJb9aonhAg));
	splitFile__z7B4FbwzX3Y0L1EA2lLGXw(T1_, (&T2_));
	dir = (NimStringDesc*)0;
	dir = T2_.Field0;
	name = (NimStringDesc*)0;
	name = T2_.Field1;
	ext = (NimStringDesc*)0;
	ext = T2_.Field2;
	if ((*(*(*m).g).config).target.targetOS < 1 || (*(*(*m).g).config).target.targetOS > 30){ raiseIndexError3((*(*(*m).g).config).target.targetOS, 1, 30); }
	nimZeroMem((void*)T3_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
	T4_ = (NimStringDesc*)0;
	T4_ = rawNewString((name ? name->Sup.len : 0) + (ext ? ext->Sup.len : 0) + 0);
appendString(T4_, name);
appendString(T4_, ext);
	T3_[0] = T4_;
	filename = nsuFormatOpenArray(OS__Jx0qy9c9bSo4fGkMxUfUaAaw[((*(*(*m).g).config).target.targetOS)- 1].Field2, T3_, 1);
	T5_ = (NimStringDesc*)0;
	T5_ = rawNewString((dir ? dir->Sup.len : 0) + (filename ? filename->Sup.len : 0) + 1);
appendString(T5_, dir);
appendString(T5_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_122));
appendString(T5_, filename);
	result = makeCString__vQJydtKy4Nf6bXPYtbmjtg(T5_);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getModuleDllPath__RaNE9b8A430I9bfpgZmdrC1w_3)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* T1_;
{	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = (tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow*)0;
	T1_ = findPendingModule__Dhy9cmzSsJkQqlfDq047WUA(m, s);
	result = getModuleDllPath__ao6gUnuVfQLtZ89c4kaIKfg_2(T1_);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, declareNimType__w2jZebce9cvMAGUdQoJVOuA)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* str, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* ownerModule) {
	{
		NIM_BOOL T3_;
		tyArray__JiWwrsTRC6xqNlGcBthSVA T6_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T7_;
		tyArray__mrugoXXRZUEeG9bEXo9auBKw T8_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T9_;
		T3_ = (NIM_BOOL)0;
		T3_ = hcrOn__a2BRACVCGIuooKjHNmoLsA(m);
		if (!T3_) goto LA4_;
		nimZeroMem((void*)T6_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
		T6_[0] = str;
		T7_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T7_ = percent___E0nDsXp7tY4mC1BnrrjWmA(T6_, 1);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], T7_);
		nimZeroMem((void*)T8_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
		T8_[0] = str;
		T8_[1] = getModuleDllPath__RaNE9b8A430I9bfpgZmdrC1w_3(m, ownerModule);
		T9_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T9_ = percent___mbjeaBETPixw9bUvyk31B6g(T8_, 2);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], T9_);
	}
	goto LA1_;
	LA4_: ;
	{
		tyArray__JiWwrsTRC6xqNlGcBthSVA T11_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T12_;
		nimZeroMem((void*)T11_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
		T11_[0] = str;
		T12_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = percent___AfR9bXoD9bcehKoM7F8O79bYA(T11_, 1);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], T12_);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genTypeInfo2Name__HPYuz9bvVOGBv0EUX9c74xhg)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	NimStringDesc* res;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* it;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	res = copyString(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_125));
	it = t;
	{
		while (1) {
			if (!!((it == NIM_NIL))) goto LA2;
			it = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(it, IL64(36275087638268176));
			{
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* m_2;
				if (!!(((*it).sym == NIM_NIL))) goto LA5_;
				m_2 = (*(*it).sym).owner;
				{
					while (1) {
						NIM_BOOL T9_;
						T9_ = (NIM_BOOL)0;
						T9_ = !((m_2 == NIM_NIL));
						if (!(T9_)) goto LA10_;
						T9_ = !(((*m_2).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6)));
						LA10_: ;
						if (!T9_) goto LA8;
						m_2 = (*m_2).owner;
					} LA8: ;
				}
				{
					NIM_BOOL T13_;
					T13_ = (NIM_BOOL)0;
					T13_ = (m_2 == NIM_NIL);
					if (T13_) goto LA14_;
					T13_ = (((*m_2).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 15))&63U)))!=0);
					LA14_: ;
					if (!T13_) goto LA15_;
					res = resizeString(res, ((*(*(*it).sym).name).s ? (*(*(*it).sym).name).s->Sup.len : 0) + 0);
appendString(res, (*(*(*it).sym).name).s);
				}
				goto LA11_;
				LA15_: ;
				{
					tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* p;
					NimStringDesc* T25_;
					p = (*m_2).owner;
					{
						NIM_BOOL T20_;
						NimStringDesc* T24_;
						T20_ = (NIM_BOOL)0;
						T20_ = !((p == NIM_NIL));
						if (!(T20_)) goto LA21_;
						T20_ = ((*p).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 24));
						LA21_: ;
						if (!T20_) goto LA22_;
						T24_ = (NimStringDesc*)0;
						T24_ = rawNewString(((*(*p).name).s ? (*(*p).name).s->Sup.len : 0) + 1);
appendString(T24_, (*(*p).name).s);
appendString(T24_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_126));
						res = resizeString(res, (T24_ ? T24_->Sup.len : 0) + 0);
appendString(res, T24_);
					}
					LA22_: ;
					T25_ = (NimStringDesc*)0;
					T25_ = rawNewString(((*(*m_2).name).s ? (*(*m_2).name).s->Sup.len : 0) + 1);
appendString(T25_, (*(*m_2).name).s);
appendString(T25_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_126));
					res = resizeString(res, (T25_ ? T25_->Sup.len : 0) + 0);
appendString(res, T25_);
					res = resizeString(res, ((*(*(*it).sym).name).s ? (*(*(*it).sym).name).s->Sup.len : 0) + 0);
appendString(res, (*(*(*it).sym).name).s);
				}
				LA11_: ;
			}
			goto LA3_;
			LA5_: ;
			{
				tyArray__qtqsWM5aXmcpMIVmvq3kAA T27_;
				NimStringDesc* T28_;
				nimZeroMem((void*)T27_, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
				hashType__UdooXLclXL8uld7qLI5JRw(it, 2, T27_);
				T28_ = (NimStringDesc*)0;
				T28_ = dollar___0A9bslyIJ49bWrftLGh13rvg(T27_);
				res = resizeString(res, (T28_ ? T28_->Sup.len : 0) + 0);
appendString(res, T28_);
			}
			LA3_: ;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_125));
			if ((NU)(((NI) 0)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*it).sons ? (*it).sons->Sup.len : 0)-1); }
			it = (*it).sons->data[((NI) 0)];
		} LA2: ;
	}
	result = makeCString__vQJydtKy4Nf6bXPYtbmjtg(res);
	return result;
}
static N_INLINE(NIM_BOOL, isTrivialProc__0ARm8KufT2VWgot8ref79bwcgen)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {
	NIM_BOOL result;
	NI T1_;
	result = (NIM_BOOL)0;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*s).ast).kind)>>3] &(1U<<((NU)((*(*s).ast).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 6)) >= (NU)((*(*s).ast)._kind_6.sons ? (*(*s).ast)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 6),((*(*s).ast)._kind_6.sons ? (*(*s).ast)._kind_6.sons->Sup.len : 0)-1); }
	T1_ = (NI)0;
	T1_ = len__P89cqdlERShb9alU3iC0yj8wast((*(*s).ast)._kind_6.sons->data[((NI) 6)]);
	result = (T1_ == ((NI) 0));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genHook__oupeNBgikmhXuZ8U9c35Zlg)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg op) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* theProc;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	theProc = (*t).attachedOps[(op)- 0];
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = !((theProc == NIM_NIL));
		if (!(T3_)) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = isTrivialProc__0ARm8KufT2VWgot8ref79bwcgen(theProc);
		T3_ = !(T5_);
		LA4_: ;
		if (!T3_) goto LA6_;
		{
			NIM_BOOL T10_;
			NimStringDesc* T14_;
			T10_ = (NIM_BOOL)0;
			T10_ = ((*theProc).typ == NIM_NIL);
			if (T10_) goto LA11_;
			T10_ = !(((*(*theProc).typ).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 0)));
			LA11_: ;
			if (!T10_) goto LA12_;
			T14_ = (NimStringDesc*)0;
			T14_ = rawNewString(((*(*theProc).name).s ? (*(*theProc).name).s->Sup.len : 0) + 47);
appendString(T14_, (*(*theProc).name).s);
appendString(T14_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_128));
			localError__NF6kBGchnhQYPbCedyefVA((*(*m).g).config, info, T14_);
		}
		LA12_: ;
		genProc__HbYPOpwLApFuBkISFGrmEQ(m, theProc);
		result = (*theProc).loc.r;
	}
	goto LA1_;
	LA6_: ;
	{
		{
			NIM_BOOL T18_;
			NIM_BOOL T19_;
			T18_ = (NIM_BOOL)0;
			T19_ = (NIM_BOOL)0;
			T19_ = (op == ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 3));
			if (!(T19_)) goto LA20_;
			T19_ = ((*(*(*m).g).config).selectedGC == ((tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw) 6));
			LA20_: ;
			T18_ = T19_;
			if (!(T18_)) goto LA21_;
			T18_ = containsGarbageCollectedRef__IVXYI9cxSeivThgKCncHRnA_2(t);
			LA21_: ;
			if (!T18_) goto LA22_;
		}
		LA22_: ;
		result = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_127));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genTypeInfoV2__TDEOLqqwXHVFJ9cWxDq6Nww)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* origType, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* name, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* typeName_1;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T14_;
	tyArray__JiWwrsTRC6xqNlGcBthSVA T15_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T16_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* destroyImpl;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* traceImpl;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* disposeImpl;
	tyArray__dNfZYyzVYdaWfURv4pxodA T17_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T18_;
	typeName_1 = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17))) goto LA3_;
		{
			NIM_BOOL T7_;
			NimStringDesc* T11_;
			NimStringDesc* T12_;
			T7_ = (NIM_BOOL)0;
			T7_ = !(((*t).sym == NIM_NIL));
			if (!(T7_)) goto LA8_;
			T7_ = ((1040 & (*(*t).sym).flags) == 16);
			LA8_: ;
			if (!T7_) goto LA9_;
			T11_ = (NimStringDesc*)0;
			T12_ = (NimStringDesc*)0;
			T12_ = typeToString__QlvraUan7WbHowhAbvDvdA(t, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			T11_ = rawNewString((T12_ ? T12_->Sup.len : 0) + 51);
appendString(T11_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_124));
appendString(T11_, T12_);
			localError__NF6kBGchnhQYPbCedyefVA((*(*m).g).config, info, T11_);
		}
		LA9_: ;
		typeName_1 = genTypeInfo2Name__HPYuz9bvVOGBv0EUX9c74xhg(m, t);
	}
	goto LA1_;
	LA3_: ;
	{
		typeName_1 = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_127));
	}
	LA1_: ;
	T14_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T14_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_117));
	(void)(T14_);
	nimZeroMem((void*)T15_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
	T15_[0] = name;
	T16_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T16_ = percent___4OTrYJoAayXfDUrtxFShhg(T15_, 1);
	add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], T16_);
	destroyImpl = genHook__oupeNBgikmhXuZ8U9c35Zlg(m, t, info, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0));
	traceImpl = genHook__oupeNBgikmhXuZ8U9c35Zlg(m, t, info, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 3));
	disposeImpl = genHook__oupeNBgikmhXuZ8U9c35Zlg(m, t, info, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 4));
	nimZeroMem((void*)T17_, sizeof(tyArray__dNfZYyzVYdaWfURv4pxodA));
	T17_[0] = name;
	T17_[1] = destroyImpl;
	T17_[2] = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA(m, t);
	T17_[3] = typeName_1;
	T17_[4] = traceImpl;
	T17_[5] = disposeImpl;
	T18_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T18_ = percent___9adrtlfC8UlkOjB1RSMMMEg(T17_, 6);
	add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T18_);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, tiNameForHcr__oXvL9aGYxIh9cO59b845ZGKcA)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* name) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
{	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		NIM_BOOL T3_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T6_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = hcrOn__a2BRACVCGIuooKjHNmoLsA(m);
		if (!T3_) goto LA4_;
		T6_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T6_ = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_90));
		T7_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T7_ = amp___ShdZ6VrAQkY0nWR9a39b9bGdQ(T6_, name);
		result = amp___Z7W1o5nPSc3ExfO5f7j1Gg(T7_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
	}
	goto LA1_;
	LA4_: ;
	{
		result = name;
	}
	LA1_: ;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size) {
	int result;
	result = (int)0;
	result = memcmp(a, b, ((size_t) (size)));
	return result;
}
static N_INLINE(NIM_BOOL, equalMem__Bj9c9cm9cBM9coLsuNsT5BvZ9awsystem)(void* a, void* b, NI size) {
	NIM_BOOL result;
	int T1_;
	result = (NIM_BOOL)0;
	T1_ = (int)0;
	T1_ = nimCmpMem(a, b, size);
	result = (T1_ == ((NI32) 0));
	return result;
}
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b) {
	NIM_BOOL result;
	NI alen;
	NI blen;
{	result = (NIM_BOOL)0;
	alen = (a ? a->Sup.len : 0);
	blen = (b ? b->Sup.len : 0);
	{
		if (!(alen == blen)) goto LA3_;
		{
			if (!(alen == ((NI) 0))) goto LA7_;
			result = NIM_TRUE;
			goto BeforeRet_;
		}
		LA7_: ;
		result = equalMem__Bj9c9cm9cBM9coLsuNsT5BvZ9awsystem(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
		goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genTypeInfoAuxBase__7TeHWriUy9a9aRQ1EAhsSN1w)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* 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* nameHcr;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* size;
	tyArray__f7nG5LD47BH5K9c6mASit3g T12_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T13_;
	NI flags;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T30_;
	nimtypeKind = (NI)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isObjLackingTypeField__kS4QQNg40ThwD2ps8HD9aQgcgen(typ);
		if (!T3_) goto LA4_;
		nimtypeKind = ((NI) 18);
	}
	goto LA1_;
	LA4_: ;
	{
		nimtypeKind = (*typ).kind;
	}
	LA1_: ;
	nameHcr = tiNameForHcr__oXvL9aGYxIh9cO59b845ZGKcA(m, name);
	size = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!(((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 40))&63U)))!=0)) goto LA9_;
		size = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_130));
	}
	goto LA7_;
	LA9_: ;
	{
		size = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA(m, origType);
	}
	LA7_: ;
	nimZeroMem((void*)T12_, sizeof(tyArray__f7nG5LD47BH5K9c6mASit3g));
	T12_[0] = nameHcr;
	T12_[1] = size;
	T12_[2] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (nimtypeKind)));
	T12_[3] = base;
	T13_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T13_ = percent___dwsIkeXQe0E8HKrzN9aRE5A(T12_, 4);
	add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T13_);
	flags = ((NI) 0);
	{
		NIM_BOOL T16_;
		T16_ = (NIM_BOOL)0;
		T16_ = containsGarbageCollectedRef__IVXYI9cxSeivThgKCncHRnA_2(typ);
		if (!!(T16_)) goto LA17_;
		flags = (NI)(flags | ((NI) 1));
	}
	LA17_: ;
	{
		NIM_BOOL T21_;
		T21_ = (NIM_BOOL)0;
		T21_ = canFormAcycle__IVXYI9cxSeivThgKCncHRnA_3(typ);
		if (!!(T21_)) goto LA22_;
		flags = (NI)(flags | ((NI) 2));
	}
	LA22_: ;
	{
		tyArray__mrugoXXRZUEeG9bEXo9auBKw T28_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T29_;
		if (!!((flags == ((NI) 0)))) goto LA26_;
		nimZeroMem((void*)T28_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
		T28_[0] = nameHcr;
		T28_[1] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (flags)));
		T29_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T29_ = percent___fIR1FG0QPRsKvEYKq4tJUQ(T28_, 2);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T29_);
	}
	LA26_: ;
	T30_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T30_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_117));
	(void)(T30_);
	{
		NIM_BOOL T33_;
		NimStringDesc* typename_1;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T36_;
		tyArray__mrugoXXRZUEeG9bEXo9auBKw T52_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T53_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T54_;
		tyArray__JiWwrsTRC6xqNlGcBthSVA T55_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T56_;
		T33_ = (NIM_BOOL)0;
		T33_ = isDefined__jkXTnxDf8MX1Pmks3s0XxA((*(*m).g).config, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_131));
		if (!T33_) goto LA34_;
		T36_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		{
			if (!!(((*origType).typeInst == NIM_NIL))) goto LA39_;
			T36_ = (*origType).typeInst;
		}
		goto LA37_;
		LA39_: ;
		{
			T36_ = origType;
		}
		LA37_: ;
		typename_1 = typeToString__QlvraUan7WbHowhAbvDvdA(T36_, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
		{
			NIM_BOOL T44_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T46_;
			NimStringDesc* T49_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T50_;
			NimStringDesc* T51_;
			T44_ = (NIM_BOOL)0;
			T44_ = eqStrings(typename_1, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_132));
			if (!(T44_)) goto LA45_;
			T46_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T46_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(origType, IL64(36275087638268176));
			T44_ = !(((*T46_).sym == NIM_NIL));
			LA45_: ;
			if (!T44_) goto LA47_;
			T49_ = (NimStringDesc*)0;
			T50_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T50_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(origType, IL64(36275087638268176));
			T51_ = (NimStringDesc*)0;
			T51_ = dollar___aQsiZUvE4SFfnWyKx1JgKA((*(*m).g).config, (*(*T50_).sym).info);
			T49_ = rawNewString((T51_ ? T51_->Sup.len : 0) + 21);
appendString(T49_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_133));
appendString(T49_, T51_);
			typename_1 = T49_;
		}
		LA47_: ;
		nimZeroMem((void*)T52_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
		T52_[0] = nameHcr;
		T52_[1] = makeCString__vQJydtKy4Nf6bXPYtbmjtg(typename_1);
		T53_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T53_ = percent___jADQs38xm62v1oxF2cSvEw(T52_, 2);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T53_);
		T54_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T54_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_134));
		(void)(T54_);
		nimZeroMem((void*)T55_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
		T55_[0] = nameHcr;
		T56_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T56_ = percent___DZV83DjWnQ9a19atC2oeswXg(T55_, 1);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T56_);
	}
	LA34_: ;
	{
		NIM_BOOL T59_;
		tyArray__JiWwrsTRC6xqNlGcBthSVA T62_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T63_;
		tyArray__mrugoXXRZUEeG9bEXo9auBKw T64_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T65_;
		T59_ = (NIM_BOOL)0;
		T59_ = hcrOn__a2BRACVCGIuooKjHNmoLsA(m);
		if (!T59_) goto LA60_;
		nimZeroMem((void*)T62_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
		T62_[0] = name;
		T63_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T63_ = percent___E0nDsXp7tY4mC1BnrrjWmA(T62_, 1);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], T63_);
		nimZeroMem((void*)T64_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
		T64_[0] = name;
		T64_[1] = getModuleDllPath__RaNE9b8A430I9bfpgZmdrC1w_3(m, (*m).module);
		T65_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T65_ = percent___sfvTjNjtOC86mU9bHczF6ow(T64_, 2);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).hcrCreateTypeInfosProc, T65_);
	}
	goto LA57_;
	LA60_: ;
	{
		tyArray__JiWwrsTRC6xqNlGcBthSVA T67_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T68_;
		nimZeroMem((void*)T67_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
		T67_[0] = name;
		T68_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T68_ = percent___4OTrYJoAayXfDUrtxFShhg(T67_, 1);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], T68_);
	}
	LA57_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, fakeClosureType__OVHn4Lx3T69a1BHJ0KreWYw)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* 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__SNqpa06pdVCLFFBR28119aQ(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18), owner);
	T1_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = newType__SNqpa06pdVCLFFBR28119aQ(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 26), owner);
	rawAddSon__LW9aGb2JfjdMXhDZwQYa5xg(result, T1_, NIM_TRUE);
	r = newType__SNqpa06pdVCLFFBR28119aQ(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22), owner);
	obj = createObj__vpIcmDdKH7ed0dcs37b1GQ((*(*m).g).graph, owner, (*owner).info, NIM_FALSE);
	rawAddSon__LW9aGb2JfjdMXhDZwQYa5xg(r, obj, NIM_TRUE);
	rawAddSon__LW9aGb2JfjdMXhDZwQYa5xg(result, r, NIM_TRUE);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getNimNode__ao6gUnuVfQLtZ89c4kaIKfg_3)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	tyArray__mrugoXXRZUEeG9bEXo9auBKw T1_;
	NI TM__MQdRN7fpbG7rPm4JpVVAhA_139;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	nimZeroMem((void*)T1_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
	T1_[0] = (*m).typeNodesName;
	T1_[1] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*m).typeNodes)));
	result = percent___jadqNPnY9aM3oxYK6jarLrA(T1_, 2);
	if (nimAddInt((*m).typeNodes, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_139)) { raiseOverflow(); };
	(*m).typeNodes = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_139);
	return result;
}
static N_INLINE(NI, len__5mJADrRYkP3r9auuiuDZN9cQast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* n) {
	NI result;
	NI T1_;
	result = (NI)0;
	T1_ = ((*n).sons ? (*n).sons->Sup.len : 0);
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genTNimNodeArray__8W0lvt5dkO9cVIIfffRji9cQ)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* name, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* size) {
	{
		NIM_BOOL T3_;
		tyArray__JiWwrsTRC6xqNlGcBthSVA T6_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T7_;
		tyArray__wqYjTJU9ab2ZgEFMaQc3vNA T8_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T9_;
		T3_ = (NIM_BOOL)0;
		T3_ = hcrOn__a2BRACVCGIuooKjHNmoLsA(m);
		if (!T3_) goto LA4_;
		nimZeroMem((void*)T6_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
		T6_[0] = name;
		T7_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T7_ = percent___LvsIDF8olc08xBiqCYIUog(T6_, 1);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], T7_);
		nimZeroMem((void*)T8_, sizeof(tyArray__wqYjTJU9ab2ZgEFMaQc3vNA));
		T8_[0] = name;
		T8_[1] = size;
		T8_[2] = getModuleDllPath__RaNE9b8A430I9bfpgZmdrC1w_3(m, (*m).module);
		T9_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T9_ = percent___6Tfa1iP1ENVlWbe89cSELSQ(T8_, 3);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).hcrCreateTypeInfosProc, T9_);
	}
	goto LA1_;
	LA4_: ;
	{
		tyArray__mrugoXXRZUEeG9bEXo9auBKw T11_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T12_;
		nimZeroMem((void*)T11_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
		T11_[0] = name;
		T11_[1] = size;
		T12_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = percent___hKg2Id9cvzE5Dgl9cU31c4Vw(T11_, 2);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], T12_);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genTupleInfo__DVDUKxJo5CvrWtAaM2iHCw)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* 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;
	tyArray__mrugoXXRZUEeG9bEXo9auBKw T27_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T28_;
	T1_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_138));
	genTypeInfoAuxBase__7TeHWriUy9a9aRQ1EAhsSN1w(m, typ, typ, name, T1_, info);
	expr = getNimNode__ao6gUnuVfQLtZ89c4kaIKfg_3(m);
	{
		NI T4_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* tmp;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T7_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T8_;
		NI T9_;
		NimStringDesc* T10_;
		NI T11_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T12_;
		tyArray__wqYjTJU9ab2ZgEFMaQc3vNA T20_;
		NI T21_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T22_;
		T4_ = (NI)0;
		T4_ = len__5mJADrRYkP3r9auuiuDZN9cQast(typ);
		if (!(((NI) 0) < T4_)) goto LA5_;
		T7_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T7_ = getTempName__ao6gUnuVfQLtZ89c4kaIKfg(m);
		T8_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T8_ = amp___Z7W1o5nPSc3ExfO5f7j1Gg(T7_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_3));
		T9_ = (NI)0;
		T9_ = len__5mJADrRYkP3r9auuiuDZN9cQast(typ);
		T10_ = (NimStringDesc*)0;
		T10_ = nimIntToStr(T9_);
		tmp = amp___Z7W1o5nPSc3ExfO5f7j1Gg(T8_, T10_);
		T11_ = (NI)0;
		T11_ = len__5mJADrRYkP3r9auuiuDZN9cQast(typ);
		T12_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (T11_)));
		genTNimNodeArray__8W0lvt5dkO9cVIIfffRji9cQ(m, tmp, T12_);
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__5mJADrRYkP3r9auuiuDZN9cQast(typ);
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* a;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* tmp2;
					tyArray__wqYjTJU9ab2ZgEFMaQc3vNA T16_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T17_;
					tyArray__f7nG5LD47BH5K9c6mASit3g T18_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T19_;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_140;
					if (!(i_2 < colontmp_)) goto LA15;
					i = i_2;
					if ((NU)(i) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)){ raiseIndexError2(i,((*typ).sons ? (*typ).sons->Sup.len : 0)-1); }
					a = (*typ).sons->data[i];
					tmp2 = getNimNode__ao6gUnuVfQLtZ89c4kaIKfg_3(m);
					nimZeroMem((void*)T16_, sizeof(tyArray__wqYjTJU9ab2ZgEFMaQc3vNA));
					T16_[0] = tmp;
					T16_[1] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (i)));
					T16_[2] = tmp2;
					T17_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T17_ = percent___H3xXuIFdbz4MNb5T6BSfcQ(T16_, 3);
					add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T17_);
					nimZeroMem((void*)T18_, sizeof(tyArray__f7nG5LD47BH5K9c6mASit3g));
					T18_[0] = tmp2;
					T18_[1] = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA(m, origType);
					T18_[2] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (i)));
					T18_[3] = genTypeInfo__BeEYMOjEPJinzbFpsfTaZg(m, a, info);
					T19_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T19_ = percent___ELXFo0GedkhGYj9bocTHZAg(T18_, 4);
					add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T19_);
					if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_140)) { raiseOverflow(); };
					i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_140);
				} LA15: ;
			}
		}
		nimZeroMem((void*)T20_, sizeof(tyArray__wqYjTJU9ab2ZgEFMaQc3vNA));
		T20_[0] = expr;
		T21_ = (NI)0;
		T21_ = len__5mJADrRYkP3r9auuiuDZN9cQast(typ);
		T20_[1] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (T21_)));
		T20_[2] = tmp;
		T22_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T22_ = percent___9aLrcjgzGJE3f9ab2uR37jog(T20_, 3);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T22_);
	}
	goto LA2_;
	LA5_: ;
	{
		tyArray__mrugoXXRZUEeG9bEXo9auBKw T24_;
		NI T25_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T26_;
		nimZeroMem((void*)T24_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
		T24_[0] = expr;
		T25_ = (NI)0;
		T25_ = len__5mJADrRYkP3r9auuiuDZN9cQast(typ);
		T24_[1] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (T25_)));
		T26_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T26_ = percent___3Q9c5iS9btBDBXZVoQktb1XQ(T24_, 2);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T26_);
	}
	LA2_: ;
	nimZeroMem((void*)T27_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
	T27_[0] = tiNameForHcr__oXvL9aGYxIh9cO59b845ZGKcA(m, name);
	T27_[1] = expr;
	T28_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T28_ = percent___MALQXTKXJv7x9a9c247satLQ(T27_, 2);
	add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T28_);
}
N_LIB_PRIVATE N_NIMCALL(void, genTypeInfoAux__DVDUKxJo5CvrWtAaM2iHCw_2)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* 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_ = len__5mJADrRYkP3r9auuiuDZN9cQast(typ);
		T3_ = (((NI) 0) < T4_);
		if (!(T3_)) goto LA5_;
		T6_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T6_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(typ);
		T3_ = !((T6_ == NIM_NIL));
		LA5_: ;
		if (!T3_) goto LA7_;
		x = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(typ);
		{
			if (!((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17))) goto LA11_;
			x = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(x, IL64(36275087638268176));
		}
		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_ = ((1040 & (*(*x).sym).flags) == 16);
			LA20_: ;
			T15_ = T19_;
			LA18_: ;
			if (!T15_) goto LA21_;
			base = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_138));
		}
		goto LA13_;
		LA21_: ;
		{
			base = genTypeInfo__BeEYMOjEPJinzbFpsfTaZg(m, x, info);
		}
		LA13_: ;
	}
	goto LA1_;
	LA7_: ;
	{
		base = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_138));
	}
	LA1_: ;
	genTypeInfoAuxBase__7TeHWriUy9a9aRQ1EAhsSN1w(m, typ, origType, name, base, info);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lodeTyp__Zo4XKVi6BmwOZE51Yogqwg)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNode__PMZ27S9ai4FB3gXOMDXvwsQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
	asgnRef((void**) (&(*result).typ), t);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, getTemp__VjOFVqypINqQv5C3ECnxbw)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* result, NIM_BOOL needsInit) {
	NI TM__MQdRN7fpbG7rPm4JpVVAhA_145;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T1_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T2_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T3_;
	NimStringDesc* res;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T8_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T13_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T14_;
	if (nimAddInt((*p).labels, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_145)) { raiseOverflow(); };
	if (TM__MQdRN7fpbG7rPm4JpVVAhA_145 < 0 || TM__MQdRN7fpbG7rPm4JpVVAhA_145 > 2147483647){ raiseOverflow(); }
	(*p).labels = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_145);
	T1_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).labels)));
	T2_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = amp___4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_146), T1_);
	unsureAsgnRef((void**) (&(*result).r), amp___Z7W1o5nPSc3ExfO5f7j1Gg(T2_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_3)));
	T3_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T3_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 0));
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA6_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
	}
	LA6_: ;
	res = rawNewString(((NI) 80));
	T8_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T8_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, t);
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T8_);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_33));
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), (*result).r);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_104));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA11_;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
	}
	LA11_: ;
	T13_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T13_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
	T14_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T14_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T13_);
	add__IM4kcMNkkOLJtqdEqSxR8A(T3_, T14_);
	(*result).k = ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 1);
	unsureAsgnRef((void**) (&(*result).lode), lodeTyp__Zo4XKVi6BmwOZE51Yogqwg(t));
	(*result).storage = ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 2);
	(*result).flags = 0;
	constructLoc__Q4oQMHZIwSi4nGkYAuAC8A(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) 31))&63U)))!=0);
		LA5_: ;
		if (!T4_) goto LA6_;
		T1_ = copyString(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_149));
	}
	goto LA2_;
	LA6_: ;
	{
		T1_ = copyString(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_150));
	}
	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).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 39))&63U)))!=0)) goto LA3_;
		T5_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T5_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		result = amp___Z7W1o5nPSc3ExfO5f7j1Gg(T5_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_148));
	}
	goto LA1_;
	LA3_: ;
	{
		tyArray__mrugoXXRZUEeG9bEXo9auBKw T7_;
		nimZeroMem((void*)T7_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
		T7_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T7_[1] = lenField__3AsTOpq9crZUYBL9aD1lXBng(p);
		result = percent___2SWcbuU7RHQR0b8y9aJ9a5VQ(T7_, 2);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, cgFormatValue__JXx3ANPSFqQ9c8gmnEaNQ9cA)(NimStringDesc** result, tyObject_Int128__9a9axPfb75jdWY25AamJewkA value) {
	addInt128__IvecK4CF4vhXBu6XHFt6sg(result, value);
}
static N_INLINE(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, parentObj__uBOaBBiKguvub019cPppbOQcgen)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* accessor, tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* 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) 31))&63U)))!=0);
		LA4_: ;
		if (!!(T3_)) goto LA5_;
		nimZeroMem((void*)T7_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
		T7_[0] = accessor;
		result = percent___gSgutt9b7GMWVGBkCt0UHAQ(T7_, 1);
	}
	goto LA1_;
	LA5_: ;
	{
		result = accessor;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, mangleField__IekjVhJd9bZAI9cs9bWYUDsTA)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* name) {
	NimStringDesc* result;
	result = (NimStringDesc*)0;
	result = mangle__GxzvEIRbrShQbyJNboTw7A((*name).s);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isKeyword__plkNLyLwnwkMYELCfG4Gxw(name);
		if (!T3_) goto LA4_;
		result = resizeString(result, 2);
appendString(result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_51));
	}
	LA4_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, mangleRecFieldName__HzLa9cY9ad9bp8c63DnHIEfWA)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* field) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!!(((192 & (*field).flags) == 0))) goto LA3_;
		result = (*field).loc.r;
	}
	goto LA1_;
	LA3_: ;
	{
		NimStringDesc* T6_;
		T6_ = (NimStringDesc*)0;
		T6_ = mangleField__IekjVhJd9bZAI9cs9bWYUDsTA(m, (*field).name);
		result = rope__yShmEg9cffWxI7s5XzEKBow(T6_);
	}
	LA1_: ;
	{
		if (!(result == NIM_NIL)) goto LA9_;
		internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*m).g).config, (*field).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_164));
	}
	LA9_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genRecordFieldsAux__4Ai9cgO7hu1LuaSdTl5N9anw)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* rectype, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* check, NimStringDesc* unionPrefix) {
	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 i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T5_;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_162;
					if (!(i_2 < colontmp_)) goto LA4;
					i = i_2;
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
					T5_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T5_ = genRecordFieldsAux__4Ai9cgO7hu1LuaSdTl5N9anw(m, (*n)._kind_6.sons->data[i], rectype, check, unionPrefix);
					add__IM4kcMNkkOLJtqdEqSxR8A(&result, T5_);
					if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_162)) { raiseOverflow(); };
					i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_162);
				} LA4: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 139):
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T11_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* unionBody;
		{
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
			if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA9_;
			internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*m).g).config, (*n).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_163));
		}
		LA9_: ;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		T11_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T11_ = genRecordFieldsAux__4Ai9cgO7hu1LuaSdTl5N9anw(m, (*n)._kind_6.sons->data[((NI) 0)], rectype, check, unionPrefix);
		add__IM4kcMNkkOLJtqdEqSxR8A(&result, T11_);
		unionBody = NIM_NIL;
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			i_4 = ((NI) 1);
			{
				while (1) {
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_168;
					if (!(i_4 < colontmp__2)) goto LA14;
					i_3 = i_4;
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i_3) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_3,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
					switch ((*(*n)._kind_6.sons->data[i_3]).kind) {
					case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85):
					case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88):
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* k;
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if ((NU)(i_3) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_3,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
						k = lastSon__UPSW0jLTX5qJL51YMUAHgw((*n)._kind_6.sons->data[i_3]);
						{
							tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* structName;
							tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T20_;
							tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T21_;
							tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T22_;
							NimStringDesc* T23_;
							tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* a;
							NimStringDesc* T24_;
							NimStringDesc* T25_;
							if (!!(((*k).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA18_;
							if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
							if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
							if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
							T20_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
							T20_ = mangleRecFieldName__HzLa9cY9ad9bp8c63DnHIEfWA(m, (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym);
							T21_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
							T21_ = amp___4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_3), T20_);
							T22_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
							T22_ = amp___Z7W1o5nPSc3ExfO5f7j1Gg(T21_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_3));
							T23_ = (NimStringDesc*)0;
							T23_ = nimIntToStr(i_3);
							structName = amp___Z7W1o5nPSc3ExfO5f7j1Gg(T22_, T23_);
							T24_ = (NimStringDesc*)0;
							T25_ = (NimStringDesc*)0;
							T25_ = dollar___mZ66tEveFIQokq3arf8Klw(structName);
							T24_ = rawNewString((unionPrefix ? unionPrefix->Sup.len : 0) + (T25_ ? T25_->Sup.len : 0) + 1);
appendString(T24_, unionPrefix);
appendString(T24_, T25_);
appendString(T24_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_126));
							a = genRecordFieldsAux__4Ai9cgO7hu1LuaSdTl5N9anw(m, k, rectype, check, T24_);
							{
								tyArray__JiWwrsTRC6xqNlGcBthSVA T42_;
								tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T43_;
								if (!!((a == NIM_NIL))) goto LA28_;
								{
									if (!!((((*rectype).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 23))&63U)))!=0))) goto LA32_;
									add__yG4AKzsBRS1W4MANDlXQeg(&unionBody, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_165));
								}
								goto LA30_;
								LA32_: ;
								{
									{
										if ((*(*(*m).g).config).cCompiler < 1 || (*(*(*m).g).config).cCompiler > 15){ raiseIndexError3((*(*(*m).g).config).cCompiler, 1, 15); }
										if (!((CC__78I18QZNZFIv9ah7oETc0jg[((*(*(*m).g).config).cCompiler)- 1].Field21 &(1U<<((NU)(((tyEnum_TInfoCCProp__49cn73TjZ7Rt9b8QCAU8tLNg) 7))&7U)))!=0)) goto LA37_;
										add__yG4AKzsBRS1W4MANDlXQeg(&unionBody, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_166));
									}
									goto LA35_;
									LA37_: ;
									{
										tyArray__qTjAvTvKF9anytN1At69aJMQ T40_;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T41_;
										nimZeroMem((void*)T40_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
										T41_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T41_ = percent___Vcuq0AWiVDndx4UH9cJ9cBRg(T40_, 0);
										add__IM4kcMNkkOLJtqdEqSxR8A(&unionBody, T41_);
									}
									LA35_: ;
								}
								LA30_: ;
								add__IM4kcMNkkOLJtqdEqSxR8A(&unionBody, a);
								nimZeroMem((void*)T42_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
								T42_[0] = structName;
								T43_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
								T43_ = percent___wbZBBJwMkBeW6eH9agO9boag(T42_, 1);
								add__IM4kcMNkkOLJtqdEqSxR8A(&unionBody, T43_);
								{
									NIM_BOOL T46_;
									tyArray__qTjAvTvKF9anytN1At69aJMQ T50_;
									tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T51_;
									T46_ = (NIM_BOOL)0;
									T46_ = (((*rectype).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 23))&63U)))!=0);
									if (!(T46_)) goto LA47_;
									if ((*(*(*m).g).config).cCompiler < 1 || (*(*(*m).g).config).cCompiler > 15){ raiseIndexError3((*(*(*m).g).config).cCompiler, 1, 15); }
									T46_ = !(((CC__78I18QZNZFIv9ah7oETc0jg[((*(*(*m).g).config).cCompiler)- 1].Field21 &(1U<<((NU)(((tyEnum_TInfoCCProp__49cn73TjZ7Rt9b8QCAU8tLNg) 7))&7U)))!=0));
									LA47_: ;
									if (!T46_) goto LA48_;
									nimZeroMem((void*)T50_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
									T51_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
									T51_ = percent___zgEKWXsZtT6lqQ6XlgfrsA(T50_, 0);
									add__IM4kcMNkkOLJtqdEqSxR8A(&unionBody, T51_);
								}
								LA48_: ;
							}
							LA28_: ;
						}
						goto LA16_;
						LA18_: ;
						{
							tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T53_;
							T53_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
							T53_ = genRecordFieldsAux__4Ai9cgO7hu1LuaSdTl5N9anw(m, k, rectype, check, unionPrefix);
							add__IM4kcMNkkOLJtqdEqSxR8A(&unionBody, T53_);
						}
						LA16_: ;
					}
					break;
					default:
					{
						internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_167));
					}
					break;
					}
					if (nimAddInt(i_4, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_168)) { raiseOverflow(); };
					i_4 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_168);
				} LA14: ;
			}
		}
		{
			tyArray__JiWwrsTRC6xqNlGcBthSVA T59_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T60_;
			if (!!((unionBody == NIM_NIL))) goto LA57_;
			nimZeroMem((void*)T59_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
			T59_[0] = unionBody;
			T60_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T60_ = percent___uXZ30k0oJEqGPZW57O3dwg(T59_, 1);
			add__IM4kcMNkkOLJtqdEqSxR8A(&result, T60_);
		}
		LA57_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* field;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* sname;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T66_;
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
		field = (*n)._kind_4.sym;
		{
			if (!((*(*field).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 63))) goto LA64_;
			goto BeforeRet_;
		}
		LA64_: ;
		sname = mangleRecFieldName__HzLa9cY9ad9bp8c63DnHIEfWA(m, field);
		T66_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T66_ = amp___4cYKitaHx6RQ9azRtQsZp6w(unionPrefix, sname);
		fillLoc__o49bXuxJYpCizOgQ54UViIg((&(*field).loc), ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 5), n, T66_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
		{
			tyArray__JiWwrsTRC6xqNlGcBthSVA T71_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T72_;
			if (!(((2622208 &(1U<<((NU)((*field).kind)&31U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_100)); }
			if (!(((NI) 0) < (*field)._kind_4.alignment)) goto LA69_;
			nimZeroMem((void*)T71_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
			if (!(((2622208 &(1U<<((NU)((*field).kind)&31U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_100)); }
			T71_[0] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*field)._kind_4.alignment)));
			T72_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T72_ = percent___iaEKHmIC9bNRZLxBqSNX0Sg(T71_, 1);
			add__IM4kcMNkkOLJtqdEqSxR8A(&result, T72_);
		}
		LA69_: ;
		{
			NIM_BOOL T75_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* fieldType;
			T75_ = (NIM_BOOL)0;
			T75_ = isImportedCppType__IafZhvqpthq9b9c13SFhzAOw(rectype);
			if (!!(T75_)) goto LA76_;
			fieldType = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*field).loc.lode).typ, IL64(36134350135273744));
			{
				tyArray__mrugoXXRZUEeG9bEXo9auBKw T82_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T83_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T84_;
				if (!((*fieldType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 49))) goto LA80_;
				nimZeroMem((void*)T82_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
				T83_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T83_ = elemType__PfgI9ap7WOnsRfFV4znQ27w_2(fieldType);
				T82_[0] = getTypeDescAux__BpNtboTsUfmvl9cmcZf9bOSQ(m, T83_, check);
				T82_[1] = sname;
				T84_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T84_ = percent___tTI9aMQiBZdiEeBIVh7QtYA(T82_, 2);
				add__IM4kcMNkkOLJtqdEqSxR8A(&result, T84_);
			}
			goto LA78_;
			LA80_: ;
			{
				tyArray__mrugoXXRZUEeG9bEXo9auBKw T88_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T89_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T90_;
				if (!((*fieldType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24))) goto LA86_;
				nimZeroMem((void*)T88_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
				T89_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T89_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*field).loc);
				T88_[0] = getTypeDescWeak__zbGAk3tbGBemhAx4n61z3g(m, T89_, check);
				T88_[1] = sname;
				T90_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T90_ = percent___vzbf0XksfaFTXNoTT6BCwA(T88_, 2);
				add__IM4kcMNkkOLJtqdEqSxR8A(&result, T90_);
			}
			goto LA78_;
			LA86_: ;
			{
				tyArray__wqYjTJU9ab2ZgEFMaQc3vNA T94_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T95_;
				NimStringDesc* T96_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T97_;
				if (!(((2622208 &(1U<<((NU)((*field).kind)&31U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_169)); }
				if (!!(((*field)._kind_4.bitsize == ((NI) 0)))) goto LA92_;
				nimZeroMem((void*)T94_, sizeof(tyArray__wqYjTJU9ab2ZgEFMaQc3vNA));
				T95_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T95_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*field).loc);
				T94_[0] = getTypeDescAux__BpNtboTsUfmvl9cmcZf9bOSQ(m, T95_, check);
				T94_[1] = sname;
				if (!(((2622208 &(1U<<((NU)((*field).kind)&31U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_169)); }
				T96_ = (NimStringDesc*)0;
				T96_ = nimIntToStr((*field)._kind_4.bitsize);
				T94_[2] = rope__yShmEg9cffWxI7s5XzEKBow(T96_);
				T97_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T97_ = percent___VJBBlA9aMl5p0yYB1WzSMVg(T94_, 3);
				add__IM4kcMNkkOLJtqdEqSxR8A(&result, T97_);
			}
			goto LA78_;
			LA92_: ;
			{
				tyArray__mrugoXXRZUEeG9bEXo9auBKw T99_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T100_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T101_;
				nimZeroMem((void*)T99_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
				T100_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T100_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*field).loc);
				T99_[0] = getTypeDescAux__BpNtboTsUfmvl9cmcZf9bOSQ(m, T100_, check);
				T99_[1] = sname;
				T101_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T101_ = percent___vzbf0XksfaFTXNoTT6BCwA(T99_, 2);
				add__IM4kcMNkkOLJtqdEqSxR8A(&result, T101_);
			}
			LA78_: ;
		}
		LA76_: ;
	}
	break;
	default:
	{
		internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*m).g).config, (*n).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_170));
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getRecordFields__1Yw0f9bM6njBLDchKVMziZw)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* check) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	result = genRecordFieldsAux__4Ai9cgO7hu1LuaSdTl5N9anw(m, (*typ).n, typ, check, ((NimStringDesc*) NIM_NIL));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, fillObjectFields__4q3XOfd3NI3C8cSNkaF9cWA_2)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg check;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T1_;
	nimZeroMem((void*)(&check), sizeof(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg));
	initIntSet__n8oDZMn19bEdodSnrBQB9a1Q((&check));
	T1_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = getRecordFields__1Yw0f9bM6njBLDchKVMziZw(m, typ, (&check));
	(void)(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___LQ9bGxpANW8yeg5P9c0UYAaQ(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___f8tdlskieCnWysl9c9blzqZg(T14_, 1);
	}
	goto LA1_;
	LA12_: ;
	{
		tyArray__qTjAvTvKF9anytN1At69aJMQ T16_;
		nimZeroMem((void*)T16_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
		result = percent___KbFpNe1pZ7hIuQi7dp1dSQ(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___f8tdlskieCnWysl9c9blzqZg(T5_, 1);
	}
	goto LA1_;
	LA3_: ;
	{
		tyArray__qTjAvTvKF9anytN1At69aJMQ T7_;
		nimZeroMem((void*)T7_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
		result = percent___KbFpNe1pZ7hIuQi7dp1dSQ(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___RkX9btpg5sQIaP8yYXB6tbA(i);
	T1_ = rawNewString((T2_ ? T2_->Sup.len : 0) + 3);
appendString(T1_, T2_);
appendString(T1_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_176));
	result = rope__yShmEg9cffWxI7s5XzEKBow(T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genNilStringLiteral__mf9bJ50BK9auefXIgup7r1CQ)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	NimStringDesc* res;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T5_;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!!(!((m == NIM_NIL)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_30));
	}
	LA3_: ;
	res = rawNewString(((NI) 80));
	res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_178));
	T5_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T5_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_179));
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T5_);
	res = resizeString(res, 11);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_180));
	result = rope__yShmEg9cffWxI7s5XzEKBow(res);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genStringLiteralDataOnlyV1__wg9bxyc8oC9b9ahuYUo9bM4FJQ)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, NimStringDesc* s) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T1_;
	tyArray__wqYjTJU9ab2ZgEFMaQc3vNA T2_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T3_;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_182));
	(void)(T1_);
	result = getTempName__ao6gUnuVfQLtZ89c4kaIKfg(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))));
	T3_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T3_ = percent___mF9aI9b3hDjj53TD2C2gTrHA(T2_, 3);
	add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], T3_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g)(NimStringDesc** result, NI64 value) {
	addInt__mftMOxbyu0h4yByfs3sqjA(result, value);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genStringLiteralV1__SO73hKlDdl5sMaSHTbOJLw_2)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T9_;
		if (!NIM_FALSE) goto LA3_;
		{
			if (!!(!((m == NIM_NIL)))) goto LA7_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_30));
		}
		LA7_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_178));
		T9_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T9_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_179));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T9_);
		res = resizeString(res, 11);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_180));
		result = rope__yShmEg9cffWxI7s5XzEKBow(res);
	}
	goto LA1_;
	LA3_: ;
	{
		NI id;
		id = nodeTableTestOrSet__tWmKJP7glBWLCISQFGGk2Q((&(*m).dataCache), n, ((NI) ((*m).labels)));
		{
			NimStringDesc* res_2;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T19_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T20_;
			if (!(id == ((NI) ((*m).labels)))) goto LA13_;
			{
				if (!!(!((m == NIM_NIL)))) goto LA17_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_30));
			}
			LA17_: ;
			res_2 = rawNewString(((NI) 80));
			res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_178));
			T19_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T19_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_179));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T19_);
			res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_181));
			if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_91[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_92)); }
			T20_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T20_ = genStringLiteralDataOnlyV1__wg9bxyc8oC9b9ahuYUo9bM4FJQ(m, (*n)._kind_3.strVal);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T20_);
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
			result = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
		}
		goto LA11_;
		LA13_: ;
		{
			NimStringDesc* res_3;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T26_;
			{
				if (!!(!((m == NIM_NIL)))) goto LA24_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_30));
			}
			LA24_: ;
			res_3 = rawNewString(((NI) 80));
			res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_178));
			T26_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T26_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_179));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T26_);
			res_3 = resizeString(res_3, 4);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_181));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), (*m).tmpBase);
			cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res_3), ((NI64) (id)));
			res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
			result = rope__yShmEg9cffWxI7s5XzEKBow(res_3);
		}
		LA11_: ;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genStringLiteralDataOnlyV2__vp7GP3wlFybjCJ5ExVrrhg)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, NimStringDesc* s, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result, NIM_BOOL isConst) {
	tyArray__f7nG5LD47BH5K9c6mASit3g T1_;
	NimStringDesc* T2_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T8_;
	nimZeroMem((void*)T1_, sizeof(tyArray__f7nG5LD47BH5K9c6mASit3g));
	T1_[0] = result;
	T1_[1] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((s ? s->Sup.len : 0))));
	T1_[2] = makeCString__vQJydtKy4Nf6bXPYtbmjtg(s);
	T2_ = (NimStringDesc*)0;
	{
		if (!isConst) goto LA5_;
		T2_ = copyString(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_183));
	}
	goto LA3_;
	LA5_: ;
	{
		T2_ = ((NimStringDesc*) NIM_NIL);
	}
	LA3_: ;
	T1_[3] = rope__yShmEg9cffWxI7s5XzEKBow(T2_);
	T8_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T8_ = percent___Q63d9bGPwQ9ae1XrP9b7wHM3w(T1_, 4);
	add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], T8_);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genStringLiteralV2__Cfuh3qIr16gdBtlWztnjAQ)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL isConst) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	NI id;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	id = nodeTableTestOrSet__tWmKJP7glBWLCISQFGGk2Q((&(*m).dataCache), n, ((NI) ((*m).labels)));
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* pureLit;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T5_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T6_;
		tyArray__f7nG5LD47BH5K9c6mASit3g T7_;
		NimStringDesc* T8_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T14_;
		if (!(id == ((NI) ((*m).labels)))) goto LA3_;
		pureLit = getTempName__ao6gUnuVfQLtZ89c4kaIKfg(m);
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_91[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_92)); }
		genStringLiteralDataOnlyV2__vp7GP3wlFybjCJ5ExVrrhg(m, (*n)._kind_3.strVal, pureLit, isConst);
		result = getTempName__ao6gUnuVfQLtZ89c4kaIKfg(m);
		T5_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T5_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_184));
		(void)(T5_);
		T6_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T6_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_185));
		(void)(T6_);
		nimZeroMem((void*)T7_, sizeof(tyArray__f7nG5LD47BH5K9c6mASit3g));
		T7_[0] = result;
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_91[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_92)); }
		T7_[1] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (((*n)._kind_3.strVal ? (*n)._kind_3.strVal->Sup.len : 0))));
		T7_[2] = pureLit;
		T8_ = (NimStringDesc*)0;
		{
			if (!isConst) goto LA11_;
			T8_ = copyString(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_183));
		}
		goto LA9_;
		LA11_: ;
		{
			T8_ = ((NimStringDesc*) NIM_NIL);
		}
		LA9_: ;
		T7_[3] = rope__yShmEg9cffWxI7s5XzEKBow(T8_);
		T14_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = percent___bgV9a1wkKJUW9aAfeUrmhalQ(T7_, 4);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], T14_);
	}
	goto LA1_;
	LA3_: ;
	{
		tyArray__f7nG5LD47BH5K9c6mASit3g T16_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T17_;
		NimStringDesc* T18_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T24_;
		result = getTempName__ao6gUnuVfQLtZ89c4kaIKfg(m);
		nimZeroMem((void*)T16_, sizeof(tyArray__f7nG5LD47BH5K9c6mASit3g));
		T16_[0] = result;
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_91[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_92)); }
		T16_[1] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (((*n)._kind_3.strVal ? (*n)._kind_3.strVal->Sup.len : 0))));
		T17_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T17_ = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (id)));
		T16_[2] = amp___ShdZ6VrAQkY0nWR9a39b9bGdQ((*m).tmpBase, T17_);
		T18_ = (NimStringDesc*)0;
		{
			if (!isConst) goto LA21_;
			T18_ = copyString(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_183));
		}
		goto LA19_;
		LA21_: ;
		{
			T18_ = ((NimStringDesc*) NIM_NIL);
		}
		LA19_: ;
		T16_[3] = rope__yShmEg9cffWxI7s5XzEKBow(T18_);
		T24_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T24_ = percent___bgV9a1wkKJUW9aAfeUrmhalQ(T16_, 4);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], T24_);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genStringLiteral__SO73hKlDdl5sMaSHTbOJLw)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	NI T1_;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = (NI)0;
	T1_ = detectStrVersion__V25kMWfh1jWVNQQI5BNfLg(m);
	switch (T1_) {
	case ((NI) 0):
	case ((NI) 1):
	{
		result = genStringLiteralV1__SO73hKlDdl5sMaSHTbOJLw_2(m, n);
	}
	break;
	case ((NI) 2):
	{
		result = genStringLiteralV2__Cfuh3qIr16gdBtlWztnjAQ(m, n, NIM_TRUE);
	}
	break;
	default:
	{
		localError__NF6kBGchnhQYPbCedyefVA((*(*m).g).config, (*n).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_186));
	}
	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;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15):
	{
		tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag k;
		k = (tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag)0;
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T6_;
			if (!!((ty == NIM_NIL))) goto LA4_;
			T6_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T6_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(ty, IL64(36134350144710928));
			k = (*T6_).kind;
		}
		goto LA2_;
		LA4_: ;
		{
			switch ((*n).kind) {
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5):
			{
				k = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2);
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15):
			{
				k = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44);
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 10):
			{
				k = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35);
			}
			break;
			default:
			{
				k = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5);
			}
			break;
			}
		}
		LA2_: ;
		switch (k) {
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5):
		{
			if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_174[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_175)); }
			result = intLiteral__kQA0lBUvzOSZAw7DHC4Fjg((*n)._kind_1.intVal);
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1):
		{
			{
				tyArray__qTjAvTvKF9anytN1At69aJMQ T18_;
				if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_174[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_175)); }
				if (!!(((*n)._kind_1.intVal == IL64(0)))) goto LA16_;
				nimZeroMem((void*)T18_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
				result = percent___nunbo9aB0HmmYQJ3InIBEzQ(T18_, 0);
			}
			goto LA14_;
			LA16_: ;
			{
				tyArray__qTjAvTvKF9anytN1At69aJMQ T20_;
				nimZeroMem((void*)T20_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
				result = percent___RBxLok7DyUB0aHl9bxPIl9bQ(T20_, 0);
			}
			LA14_: ;
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35):
		{
			if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_174[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_175)); }
			result = int64Literal__kQA0lBUvzOSZAw7DHC4Fjg_2((*n)._kind_1.intVal);
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44):
		{
			if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_174[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_175)); }
			result = uint64Literal__ldwzpLT4KWF9c4XGru9cpC1A(((NU64) ((*n)._kind_1.intVal)));
		}
		break;
		default:
		{
			tyArray__mrugoXXRZUEeG9bEXo9auBKw T24_;
			nimZeroMem((void*)T24_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
			T24_[0] = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, ty);
			if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_174[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_175)); }
			T24_[1] = intLiteral__kQA0lBUvzOSZAw7DHC4Fjg((*n)._kind_1.intVal);
			result = percent___NARRjCd1x5Fr7NTTcoPRrw(T24_, 2);
		}
		break;
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
	{
		tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag k_2;
		{
			if (!(ty == NIM_NIL)) goto LA28_;
			k_2 = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 26);
		}
		goto LA26_;
		LA28_: ;
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T31_;
			T31_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T31_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(ty, IL64(36134350144710928));
			k_2 = (*T31_).kind;
		}
		LA26_: ;
		{
			NIM_BOOL T34_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T36_;
			NI id;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T39_;
			T34_ = (NIM_BOOL)0;
			T34_ = (k_2 == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
			if (!(T34_)) goto LA35_;
			T36_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T36_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(ty, IL64(36134350144710928));
			T34_ = ((*T36_).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 8));
			LA35_: ;
			if (!T34_) goto LA37_;
			id = nodeTableTestOrSet__tWmKJP7glBWLCISQFGGk2Q((&(*(*p).module).dataCache), n, ((NI) ((*(*p).module).labels)));
			T39_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T39_ = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (id)));
			result = amp___ShdZ6VrAQkY0nWR9a39b9bGdQ((*(*p).module).tmpBase, T39_);
			{
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_177;
				tyArray__mrugoXXRZUEeG9bEXo9auBKw T44_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T45_;
				if (!(id == ((NI) ((*(*p).module).labels)))) goto LA42_;
				if (nimAddInt((*(*p).module).labels, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_177)) { raiseOverflow(); };
				if (TM__MQdRN7fpbG7rPm4JpVVAhA_177 < 0 || TM__MQdRN7fpbG7rPm4JpVVAhA_177 > 2147483647){ raiseOverflow(); }
				(*(*p).module).labels = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_177);
				nimZeroMem((void*)T44_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
				T44_[0] = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, ty);
				T44_[1] = result;
				T45_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T45_ = percent___NlLLwmZHOiJUpZfuk00AWA(T44_, 2);
				add__IM4kcMNkkOLJtqdEqSxR8A(&(*(*p).module).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], T45_);
			}
			LA42_: ;
		}
		goto LA32_;
		LA37_: ;
		{
			result = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_127));
		}
		LA32_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22):
	{
		tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag k_3;
		{
			if (!(ty == NIM_NIL)) goto LA50_;
			k_3 = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28);
		}
		goto LA48_;
		LA50_: ;
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T53_;
			T53_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T53_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(ty, IL64(1202566653633669392));
			k_3 = (*T53_).kind;
		}
		LA48_: ;
		switch (k_3) {
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5):
		{
			result = genNilStringLiteral__mf9bJ50BK9auefXIgup7r1CQ((*p).module, (*n).info);
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
		{
			{
				NIM_BOOL T58_;
				NIM_BOOL T59_;
				T58_ = (NIM_BOOL)0;
				T59_ = (NIM_BOOL)0;
				if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_91[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_92)); }
				T59_ = (((*n)._kind_3.strVal ? (*n)._kind_3.strVal->Sup.len : 0) == ((NI) 0));
				if (!(T59_)) goto LA60_;
				T59_ = !((((*p).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 27))&31U)))!=0));
				LA60_: ;
				T58_ = T59_;
				if (!(T58_)) goto LA61_;
				T58_ = !((((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 39))&63U)))!=0));
				LA61_: ;
				if (!T58_) goto LA62_;
				result = genNilStringLiteral__mf9bJ50BK9auefXIgup7r1CQ((*p).module, (*n).info);
			}
			goto LA56_;
			LA62_: ;
			{
				result = genStringLiteral__SO73hKlDdl5sMaSHTbOJLw((*p).module, n);
			}
			LA56_: ;
		}
		break;
		default:
		{
			if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_91[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_92)); }
			result = makeCString__vQJydtKy4Nf6bXPYtbmjtg((*n)._kind_3.strVal);
		}
		break;
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 16):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 18):
	{
		NimStringDesc* T67_;
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_187[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_188)); }
		T67_ = (NimStringDesc*)0;
		T67_ = toStrMaxPrecision__ayHojnbqAtgkZF8TXMNMzg((*n)._kind_2.floatVal, ((NimStringDesc*) NIM_NIL));
		result = rope__yShmEg9cffWxI7s5XzEKBow(T67_);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 17):
	{
		NimStringDesc* T69_;
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_187[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_188)); }
		T69_ = (NimStringDesc*)0;
		T69_ = toStrMaxPrecision__ayHojnbqAtgkZF8TXMNMzg((*n)._kind_2.floatVal, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_189));
		result = rope__yShmEg9cffWxI7s5XzEKBow(T69_);
	}
	break;
	default:
	{
		NimStringDesc* T71_;
		T71_ = (NimStringDesc*)0;
		T71_ = rawNewString((reprEnum((NI)(*n).kind, (&NTI__G4E4Gxe7oI2Cm03rkiOzQw_)) ? reprEnum((NI)(*n).kind, (&NTI__G4E4Gxe7oI2Cm03rkiOzQw_))->Sup.len : 0) + 12);
appendString(T71_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_190));
appendString(T71_, reprEnum((NI)(*n).kind, (&NTI__G4E4Gxe7oI2Cm03rkiOzQw_)));
appendChar(T71_, 41);
		internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, T71_);
		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;
}
static N_INLINE(NIM_BOOL, nimAddInt64)(NI64 a, NI64 b, NI64* res) {
	NIM_BOOL result;
	NI64 r;
	result = (NIM_BOOL)0;
	r = ((NI64) ((NU64)((NU64)(((NU64) (a))) + (NU64)(((NU64) (b))))));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (IL64(0) <= (NI64)(r ^ a));
		if (T3_) goto LA4_;
		T3_ = (IL64(0) <= (NI64)(r ^ b));
		LA4_: ;
		if (!T3_) goto LA5_;
		(*res) = r;
	}
	goto LA1_;
	LA5_: ;
	{
		result = NIM_TRUE;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genCaseRange__KUz7NJSCXeUWRl4foF5zfg)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branch) {
	{
		NI j;
		NI colontmp_;
		NI T2_;
		NI TM__MQdRN7fpbG7rPm4JpVVAhA_173;
		NI i;
		j = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = len__P89cqdlERShb9alU3iC0yj8wast(branch);
		if (nimSubInt(T2_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_173)) { raiseOverflow(); };
		colontmp_ = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_173);
		i = ((NI) 0);
		{
			while (1) {
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_192;
				if (!(i < colontmp_)) goto LA4;
				j = i;
				{
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*branch).kind)>>3] &(1U<<((NU)((*branch).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(j) >= (NU)((*branch)._kind_6.sons ? (*branch)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(j,((*branch)._kind_6.sons ? (*branch)._kind_6.sons->Sup.len : 0)-1); }
					if (!((*(*branch)._kind_6.sons->data[j]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA7_;
					{
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T13_;
						tyArray__mrugoXXRZUEeG9bEXo9auBKw T14_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T15_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T16_;
						if ((*(*(*(*p).module).g).config).cCompiler < 1 || (*(*(*(*p).module).g).config).cCompiler > 15){ raiseIndexError3((*(*(*(*p).module).g).config).cCompiler, 1, 15); }
						if (!((CC__78I18QZNZFIv9ah7oETc0jg[((*(*(*(*p).module).g).config).cCompiler)- 1].Field21 &(1U<<((NU)(((tyEnum_TInfoCCProp__49cn73TjZ7Rt9b8QCAU8tLNg) 0))&7U)))!=0)) goto LA11_;
						T13_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
						T13_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
						nimZeroMem((void*)T14_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*branch).kind)>>3] &(1U<<((NU)((*branch).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if ((NU)(j) >= (NU)((*branch)._kind_6.sons ? (*branch)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(j,((*branch)._kind_6.sons ? (*branch)._kind_6.sons->Sup.len : 0)-1); }
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*branch)._kind_6.sons->data[j]).kind)>>3] &(1U<<((NU)((*(*branch)._kind_6.sons->data[j]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if ((NU)(((NI) 0)) >= (NU)((*(*branch)._kind_6.sons->data[j])._kind_6.sons ? (*(*branch)._kind_6.sons->data[j])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*branch)._kind_6.sons->data[j])._kind_6.sons ? (*(*branch)._kind_6.sons->data[j])._kind_6.sons->Sup.len : 0)-1); }
						T14_[0] = genLiteral__NYI5fC69aIqZGRakncXv9cNQ_2(p, (*(*branch)._kind_6.sons->data[j])._kind_6.sons->data[((NI) 0)]);
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*branch).kind)>>3] &(1U<<((NU)((*branch).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if ((NU)(j) >= (NU)((*branch)._kind_6.sons ? (*branch)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(j,((*branch)._kind_6.sons ? (*branch)._kind_6.sons->Sup.len : 0)-1); }
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*branch)._kind_6.sons->data[j]).kind)>>3] &(1U<<((NU)((*(*branch)._kind_6.sons->data[j]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if ((NU)(((NI) 1)) >= (NU)((*(*branch)._kind_6.sons->data[j])._kind_6.sons ? (*(*branch)._kind_6.sons->data[j])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*(*branch)._kind_6.sons->data[j])._kind_6.sons ? (*(*branch)._kind_6.sons->data[j])._kind_6.sons->Sup.len : 0)-1); }
						T14_[1] = genLiteral__NYI5fC69aIqZGRakncXv9cNQ_2(p, (*(*branch)._kind_6.sons->data[j])._kind_6.sons->data[((NI) 1)]);
						T15_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T15_ = percent___0RQ2PINB4t8FjFlNUM6N9cQ(T14_, 2);
						T16_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T16_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T15_);
						add__IM4kcMNkkOLJtqdEqSxR8A(T13_, T16_);
					}
					goto LA9_;
					LA11_: ;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* v;
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*branch).kind)>>3] &(1U<<((NU)((*branch).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if ((NU)(j) >= (NU)((*branch)._kind_6.sons ? (*branch)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(j,((*branch)._kind_6.sons ? (*branch)._kind_6.sons->Sup.len : 0)-1); }
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*branch)._kind_6.sons->data[j]).kind)>>3] &(1U<<((NU)((*(*branch)._kind_6.sons->data[j]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if ((NU)(((NI) 0)) >= (NU)((*(*branch)._kind_6.sons->data[j])._kind_6.sons ? (*(*branch)._kind_6.sons->data[j])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*branch)._kind_6.sons->data[j])._kind_6.sons ? (*(*branch)._kind_6.sons->data[j])._kind_6.sons->Sup.len : 0)-1); }
						v = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ((*(*branch)._kind_6.sons->data[j])._kind_6.sons->data[((NI) 0)]);
						{
							while (1) {
								tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T20_;
								tyArray__JiWwrsTRC6xqNlGcBthSVA T21_;
								tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T22_;
								tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T23_;
								NI64 TM__MQdRN7fpbG7rPm4JpVVAhA_191;
								if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_174[(NU)((*v).kind)>>3] &(1U<<((NU)((*v).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_175)); }
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*branch).kind)>>3] &(1U<<((NU)((*branch).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(j) >= (NU)((*branch)._kind_6.sons ? (*branch)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(j,((*branch)._kind_6.sons ? (*branch)._kind_6.sons->Sup.len : 0)-1); }
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*branch)._kind_6.sons->data[j]).kind)>>3] &(1U<<((NU)((*(*branch)._kind_6.sons->data[j]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(((NI) 1)) >= (NU)((*(*branch)._kind_6.sons->data[j])._kind_6.sons ? (*(*branch)._kind_6.sons->data[j])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*(*branch)._kind_6.sons->data[j])._kind_6.sons ? (*(*branch)._kind_6.sons->data[j])._kind_6.sons->Sup.len : 0)-1); }
								if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_174[(NU)((*(*(*branch)._kind_6.sons->data[j])._kind_6.sons->data[((NI) 1)]).kind)>>3] &(1U<<((NU)((*(*(*branch)._kind_6.sons->data[j])._kind_6.sons->data[((NI) 1)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_175)); }
								if (!((*v)._kind_1.intVal <= (*(*(*branch)._kind_6.sons->data[j])._kind_6.sons->data[((NI) 1)])._kind_1.intVal)) goto LA19;
								T20_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
								T20_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
								nimZeroMem((void*)T21_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
								T21_[0] = genLiteral__NYI5fC69aIqZGRakncXv9cNQ_2(p, v);
								T22_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
								T22_ = percent___f8NIixSwWrk6SXQ3BFamWw(T21_, 1);
								T23_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
								T23_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T22_);
								add__IM4kcMNkkOLJtqdEqSxR8A(T20_, T23_);
								if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_174[(NU)((*v).kind)>>3] &(1U<<((NU)((*v).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_175)); }
								if (nimAddInt64((*v)._kind_1.intVal, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_191)) { raiseOverflow(); };
								(*v)._kind_1.intVal = (NI64)(TM__MQdRN7fpbG7rPm4JpVVAhA_191);
							} LA19: ;
						}
					}
					LA9_: ;
				}
				goto LA5_;
				LA7_: ;
				{
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T25_;
					tyArray__JiWwrsTRC6xqNlGcBthSVA T26_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T27_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T28_;
					T25_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
					T25_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
					nimZeroMem((void*)T26_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*branch).kind)>>3] &(1U<<((NU)((*branch).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(j) >= (NU)((*branch)._kind_6.sons ? (*branch)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(j,((*branch)._kind_6.sons ? (*branch)._kind_6.sons->Sup.len : 0)-1); }
					T26_[0] = genLiteral__NYI5fC69aIqZGRakncXv9cNQ_2(p, (*branch)._kind_6.sons->data[j]);
					T27_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T27_ = percent___f8NIixSwWrk6SXQ3BFamWw(T26_, 1);
					T28_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T28_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T27_);
					add__IM4kcMNkkOLJtqdEqSxR8A(T25_, T28_);
				}
				LA5_: ;
				if (nimAddInt(i, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_192)) { raiseOverflow(); };
				i = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_192);
			} LA4: ;
		}
	}
}
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 i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_160;
					if (!(i_2 < colontmp_)) goto LA8;
					i = i_2;
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
					genTraverseProc__ZF8ePl9bsRxWXLu7Z2MFifQ(c, accessor, (*n)._kind_6.sons->data[i], typ);
					if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_160)) { raiseOverflow(); };
					i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_160);
				} LA8: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 139):
	{
		tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* disc;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T23_;
		tyArray__mrugoXXRZUEeG9bEXo9auBKw T24_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T25_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T26_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T48_;
		tyArray__qTjAvTvKF9anytN1At69aJMQ T49_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T50_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T51_;
		{
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
			if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA12_;
			internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*(*c.p).module).g).config, (*n).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_161));
		}
		LA12_: ;
		p = c.p;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
		disc = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
		{
			if (!((*disc).loc.r == NIM_NIL)) goto LA16_;
			fillObjectFields__4q3XOfd3NI3C8cSNkaF9cWA_2((*c.p).module, typ);
		}
		LA16_: ;
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T20_;
			T20_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T20_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*disc).loc);
			if (!(T20_ == NIM_NIL)) goto LA21_;
			internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*(*c.p).module).g).config, (*n).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_171));
		}
		LA21_: ;
		T23_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T23_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		nimZeroMem((void*)T24_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
		T24_[0] = accessor;
		T24_[1] = (*disc).loc.r;
		T25_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T25_ = percent___jw4Sb0OSpKH1T5cLz7iyzA(T24_, 2);
		T26_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T26_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T25_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T23_, T26_);
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			i_4 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branch;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T43_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T44_;
					tyArray__qTjAvTvKF9anytN1At69aJMQ T45_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T46_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T47_;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_193;
					if (!(i_4 < colontmp__2)) goto LA29;
					i_3 = i_4;
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i_3) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_3,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
					branch = (*n)._kind_6.sons->data[i_3];
					{
						if (!!(((*branch).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85) || (*branch).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88)))) goto LA32_;
						failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_172));
					}
					LA32_: ;
					{
						if (!((*branch).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA36_;
						genCaseRange__KUz7NJSCXeUWRl4foF5zfg(c.p, branch);
					}
					goto LA34_;
					LA36_: ;
					{
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T39_;
						tyArray__qTjAvTvKF9anytN1At69aJMQ T40_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T41_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T42_;
						T39_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
						T39_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
						nimZeroMem((void*)T40_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
						T41_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T41_ = percent___TTRh79a14hh1gb0owIP1Y6Q(T40_, 0);
						T42_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T42_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T41_);
						add__IM4kcMNkkOLJtqdEqSxR8A(T39_, T42_);
					}
					LA34_: ;
					T43_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T43_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(branch);
					genTraverseProc__ZF8ePl9bsRxWXLu7Z2MFifQ(c, accessor, T43_, typ);
					T44_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
					T44_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
					nimZeroMem((void*)T45_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
					T46_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T46_ = percent___TmeCjGna9cPfiHHcfqmKXjw(T45_, 0);
					T47_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T47_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T46_);
					add__IM4kcMNkkOLJtqdEqSxR8A(T44_, T47_);
					if (nimAddInt(i_4, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_193)) { raiseOverflow(); };
					i_4 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_193);
				} LA29: ;
			}
		}
		T48_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T48_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		nimZeroMem((void*)T49_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
		T50_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T50_ = percent___FsfRVuOOBePjn9cQ9aK7Vh1w(T49_, 0);
		T51_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T51_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T50_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T48_, T51_);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* field;
		tyArray__mrugoXXRZUEeG9bEXo9auBKw T66_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T67_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T68_;
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
		field = (*n)._kind_4.sym;
		{
			if (!((*(*field).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 63))) goto LA55_;
			goto BeforeRet_;
		}
		LA55_: ;
		{
			if (!((*field).loc.r == NIM_NIL)) goto LA59_;
			fillObjectFields__4q3XOfd3NI3C8cSNkaF9cWA_2((*c.p).module, typ);
		}
		LA59_: ;
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T63_;
			T63_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T63_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*field).loc);
			if (!(T63_ == NIM_NIL)) goto LA64_;
			internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*(*c.p).module).g).config, (*n).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_171));
		}
		LA64_: ;
		nimZeroMem((void*)T66_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
		T66_[0] = accessor;
		T66_[1] = (*field).loc.r;
		T67_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T67_ = percent___paA0sar8RKZqiwEaDfWo2A(T66_, 2);
		T68_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T68_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*field).loc);
		genTraverseProc__LXrm7ZbTiXTVtbB5E60yIA_2(c, T67_, T68_);
	}
	break;
	default:
	{
		internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*(*c.p).module).g).config, (*n).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_171));
	}
	break;
	}
	}BeforeRet_: ;
}
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):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T6_;
		T6_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T6_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(typ);
		genTraverseProc__LXrm7ZbTiXTVtbB5E60yIA_2(c, accessor, T6_);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
	{
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA arraySize;
		tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA i;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T8_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* oldCode;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T9_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T10_;
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T19_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T20_;
		NI oldLen;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T21_;
		NimStringDesc* res_2;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T26_;
		if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1); }
		arraySize = lengthOrd__hjogdnp59cMX1rwmjikBhqw_3((*(*(*c.p).module).g).config, (*typ).sons->data[((NI) 0)]);
		nimZeroMem((void*)(&i), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
		T8_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T8_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*(*(*c.p).module).g).graph, TM__MQdRN7fpbG7rPm4JpVVAhA_147, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
		getTemp__VjOFVqypINqQv5C3ECnxbw(p, T8_, (&i), NIM_FALSE);
		T9_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T9_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		oldCode = (*T9_);
		T10_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T10_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA13_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA13_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 5);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_151));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), i.r);
		res = resizeString(res, 6);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_152));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), i.r);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_153));
		cgFormatValue__JXx3ANPSFqQ9c8gmnEaNQ9cA((&res), arraySize);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_154));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), i.r);
		res = resizeString(res, 5);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_155));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA17_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA17_: ;
		T19_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T19_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
		T20_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T20_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T19_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T10_, T20_);
		T21_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T21_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		oldLen = len__9b0YRltzV3kNSE9aQTsG82wg((*T21_));
		{
			if (!!(!(((*c.p).module == NIM_NIL)))) goto LA24_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_156));
		}
		LA24_: ;
		res_2 = rawNewString(((NI) 80));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), accessor);
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_157));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), i.r);
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_158));
		T26_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T26_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
		if ((NU)(((NI) 1)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*typ).sons ? (*typ).sons->Sup.len : 0)-1); }
		genTraverseProc__LXrm7ZbTiXTVtbB5E60yIA_2(c, T26_, (*typ).sons->data[((NI) 1)]);
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T29_;
			NI T30_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T33_;
			T29_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T29_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			T30_ = (NI)0;
			T30_ = len__9b0YRltzV3kNSE9aQTsG82wg((*T29_));
			if (!(T30_ == oldLen)) goto LA31_;
			T33_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T33_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			unsureAsgnRef((void**) (&(*T33_)), oldCode);
		}
		goto LA27_;
		LA31_: ;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T35_;
			tyArray__qTjAvTvKF9anytN1At69aJMQ T36_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T37_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T38_;
			T35_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T35_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			nimZeroMem((void*)T36_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
			T37_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T37_ = percent___BYiowJAm8zF7RBRISElaLg(T36_, 0);
			T38_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T38_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T37_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T35_, T38_);
		}
		LA27_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17):
	{
		{
			NI i_2;
			NI colontmp_;
			NI i_3;
			i_2 = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__5mJADrRYkP3r9auuiuDZN9cQast(typ);
			i_3 = ((NI) 0);
			{
				while (1) {
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* x;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T47_;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_159;
					if (!(i_3 < colontmp_)) goto LA42;
					i_2 = i_3;
					if ((NU)(i_2) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)){ raiseIndexError2(i_2,((*typ).sons ? (*typ).sons->Sup.len : 0)-1); }
					x = (*typ).sons->data[i_2];
					{
						if (!!((x == NIM_NIL))) goto LA45_;
						x = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(x, IL64(36275087638268176));
					}
					LA45_: ;
					T47_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T47_ = parentObj__uBOaBBiKguvub019cPppbOQcgen(accessor, (*c.p).module);
					genTraverseProc__LXrm7ZbTiXTVtbB5E60yIA_2(c, T47_, x);
					if (nimAddInt(i_3, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_159)) { raiseOverflow(); };
					i_3 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_159);
				} LA42: ;
			}
		}
		{
			if (!!(((*typ).n == NIM_NIL))) goto LA50_;
			genTraverseProc__ZF8ePl9bsRxWXLu7Z2MFifQ(c, accessor, (*typ).n, typ);
		}
		LA50_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ_2;
		typ_2 = typ;
		{
			NI i_4;
			NI colontmp__2;
			NI i_5;
			i_4 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__5mJADrRYkP3r9auuiuDZN9cQast(typ_2);
			i_5 = ((NI) 0);
			{
				while (1) {
					NimStringDesc* res_3;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T60_;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_195;
					if (!(i_5 < colontmp__2)) goto LA55;
					i_4 = i_5;
					{
						if (!!(!(((*c.p).module == NIM_NIL)))) goto LA58_;
						failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_156));
					}
					LA58_: ;
					res_3 = rawNewString(((NI) 80));
					cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), accessor);
					res_3 = resizeString(res_3, 6);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_194));
					cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res_3), ((NI64) (i_4)));
					T60_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T60_ = rope__yShmEg9cffWxI7s5XzEKBow(res_3);
					if ((NU)(i_4) >= (NU)((*typ_2).sons ? (*typ_2).sons->Sup.len : 0)){ raiseIndexError2(i_4,((*typ_2).sons ? (*typ_2).sons->Sup.len : 0)-1); }
					genTraverseProc__LXrm7ZbTiXTVtbB5E60yIA_2(c, T60_, (*typ_2).sons->data[i_4]);
					if (nimAddInt(i_5, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_195)) { raiseOverflow(); };
					i_5 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_195);
				} LA55: ;
			}
		}
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22):
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T62_;
		NimStringDesc* res_4;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T67_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T72_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T73_;
		T62_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T62_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA65_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA65_: ;
		res_4 = rawNewString(((NI) 80));
		T67_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T67_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_196));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T67_);
		res_4 = resizeString(res_4, 8);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_111));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), accessor);
		res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
		cgFormatValue__GOaK9aDgu4cLOYhocodpf3Q((&res_4), c.visitorFrmt);
		res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA70_;
			res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA70_: ;
		T72_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T72_ = rope__yShmEg9cffWxI7s5XzEKBow(res_4);
		T73_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T73_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T72_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T62_, T73_);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
	{
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T79_;
			NimStringDesc* res_5;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T84_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T89_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T90_;
			if (!!((((*(*(*(*c.p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 39))&63U)))!=0))) goto LA77_;
			T79_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T79_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA82_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA82_: ;
			res_5 = rawNewString(((NI) 80));
			T84_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T84_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_196));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T84_);
			res_5 = resizeString(res_5, 8);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_111));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), accessor);
			res_5 = resizeString(res_5, 2);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
			cgFormatValue__GOaK9aDgu4cLOYhocodpf3Q((&res_5), c.visitorFrmt);
			res_5 = resizeString(res_5, 2);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA87_;
				res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA87_: ;
			T89_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T89_ = rope__yShmEg9cffWxI7s5XzEKBow(res_5);
			T90_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T90_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T89_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T79_, T90_);
		}
		goto LA75_;
		LA77_: ;
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T92_;
			NIM_BOOL T93_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T96_;
			NimStringDesc* res_6;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T101_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T106_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T107_;
			T92_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T92_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(typ);
			T93_ = (NIM_BOOL)0;
			T93_ = containsGarbageCollectedRef__IVXYI9cxSeivThgKCncHRnA_2(T92_);
			if (!T93_) goto LA94_;
			T96_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T96_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA99_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA99_: ;
			res_6 = rawNewString(((NI) 80));
			T101_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T101_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_198));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T101_);
			res_6 = resizeString(res_6, 8);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_111));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_6), accessor);
			res_6 = resizeString(res_6, 2);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
			cgFormatValue__GOaK9aDgu4cLOYhocodpf3Q((&res_6), c.visitorFrmt);
			res_6 = resizeString(res_6, 2);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA104_;
				res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA104_: ;
			T106_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T106_ = rope__yShmEg9cffWxI7s5XzEKBow(res_6);
			T107_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T107_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T106_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T96_, T107_);
		}
		goto LA75_;
		LA94_: ;
		LA75_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
	{
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T113_;
			NimStringDesc* res_7;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T118_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T123_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T124_;
			if (!!((((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 31))&63U)))!=0))) goto LA111_;
			T113_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T113_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA116_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA116_: ;
			res_7 = rawNewString(((NI) 80));
			T118_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T118_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_196));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_7), T118_);
			res_7 = resizeString(res_7, 8);
appendString(res_7, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_111));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_7), accessor);
			res_7 = resizeString(res_7, 2);
appendString(res_7, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
			cgFormatValue__GOaK9aDgu4cLOYhocodpf3Q((&res_7), c.visitorFrmt);
			res_7 = resizeString(res_7, 2);
appendString(res_7, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA121_;
				res_7 = resizeString(res_7, 1);
appendString(res_7, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA121_: ;
			T123_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T123_ = rope__yShmEg9cffWxI7s5XzEKBow(res_7);
			T124_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T124_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T123_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T113_, T124_);
		}
		LA111_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25):
	{
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T130_;
			NimStringDesc* res_8;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T135_;
			NimStringDesc* res_9;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T140_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T145_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T146_;
			if (!((*typ).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 8))) goto LA128_;
			T130_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T130_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA133_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA133_: ;
			res_8 = rawNewString(((NI) 80));
			T135_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T135_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_196));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_8), T135_);
			res_8 = resizeString(res_8, 8);
appendString(res_8, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_111));
			{
				if (!!(!(((*c.p).module == NIM_NIL)))) goto LA138_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_156));
			}
			LA138_: ;
			res_9 = rawNewString(((NI) 80));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_9), accessor);
			res_9 = resizeString(res_9, 6);
appendString(res_9, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_199));
			T140_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T140_ = rope__yShmEg9cffWxI7s5XzEKBow(res_9);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_8), T140_);
			res_8 = resizeString(res_8, 2);
appendString(res_8, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
			cgFormatValue__GOaK9aDgu4cLOYhocodpf3Q((&res_8), c.visitorFrmt);
			res_8 = resizeString(res_8, 2);
appendString(res_8, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA143_;
				res_8 = resizeString(res_8, 1);
appendString(res_8, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA143_: ;
			T145_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T145_ = rope__yShmEg9cffWxI7s5XzEKBow(res_8);
			T146_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T146_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T145_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T130_, T146_);
		}
		LA128_: ;
	}
	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).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 39))&63U)))!=0)) goto LA3_;
		result = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_200));
	}
	goto LA1_;
	LA3_: ;
	{
		result = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_201));
	}
	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_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T5_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* oldCode;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T6_;
	tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T7_;
	tyArray__mrugoXXRZUEeG9bEXo9auBKw T8_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T9_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T10_;
	NI oldLen;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T11_;
	tyArray__wqYjTJU9ab2ZgEFMaQc3vNA T12_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T13_;
	p = c.p;
	{
		if (!!(((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_144));
	}
	LA3_: ;
	nimZeroMem((void*)(&i), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
	T5_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T5_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*(*(*c.p).module).g).graph, TM__MQdRN7fpbG7rPm4JpVVAhA_147, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
	getTemp__VjOFVqypINqQv5C3ECnxbw(p, T5_, (&i), NIM_FALSE);
	T6_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T6_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
	oldCode = (*T6_);
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
	a.r = accessor;
	T7_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T7_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
	nimZeroMem((void*)T8_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
	T8_[0] = i.r;
	T8_[1] = lenExpr__Xfvxpx3W1zkiCqENsur9ckg(c.p, a);
	T9_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T9_ = percent___xQaqlAwFuwxqBFixw7ewLg(T8_, 2);
	T10_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T10_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T9_);
	add__IM4kcMNkkOLJtqdEqSxR8A(T7_, T10_);
	T11_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T11_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
	oldLen = len__9b0YRltzV3kNSE9aQTsG82wg((*T11_));
	nimZeroMem((void*)T12_, sizeof(tyArray__wqYjTJU9ab2ZgEFMaQc3vNA));
	T12_[0] = accessor;
	T12_[1] = i.r;
	T12_[2] = dataField__3AsTOpq9crZUYBL9aD1lXBng_2(c.p);
	T13_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T13_ = percent___jr9cXNQhhlLDfFJH4RSjeZg(T12_, 3);
	if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1); }
	genTraverseProc__LXrm7ZbTiXTVtbB5E60yIA_2(c, T13_, (*typ).sons->data[((NI) 0)]);
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T16_;
		NI T17_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T20_;
		T16_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T16_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		T17_ = (NI)0;
		T17_ = len__9b0YRltzV3kNSE9aQTsG82wg((*T16_));
		if (!(T17_ == oldLen)) goto LA18_;
		T20_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T20_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		unsureAsgnRef((void**) (&(*T20_)), oldCode);
	}
	goto LA14_;
	LA18_: ;
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T22_;
		tyArray__qTjAvTvKF9anytN1At69aJMQ T23_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T24_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T25_;
		T22_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T22_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		nimZeroMem((void*)T23_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
		T24_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T24_ = percent___BYiowJAm8zF7RBRISElaLg(T23_, 0);
		T25_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T25_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T24_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T22_, T25_);
	}
	LA14_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genTraverseProc__6ja22UmHW9bFsLaOtztGpHQ)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* origTyp, tyArray__qtqsWM5aXmcpMIVmvq3kAA sig) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TTraversalClosure__xQv4a9atAYFpL11GCS9cY9bCg c;
	tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T1_;
	NIM_BOOL hcrOn;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* markerName;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* header;
	tyArray__JiWwrsTRC6xqNlGcBthSVA T7_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* t;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T8_;
	tyArray__JiWwrsTRC6xqNlGcBthSVA T9_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T10_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T11_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T12_;
	tyArray__JiWwrsTRC6xqNlGcBthSVA T13_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T14_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T15_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* generatedProc;
	tyArray__f7nG5LD47BH5K9c6mASit3g T34_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T35_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T36_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T37_;
	tyArray__JiWwrsTRC6xqNlGcBthSVA T38_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T39_;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	nimZeroMem((void*)(&c), sizeof(tyObject_TTraversalClosure__xQv4a9atAYFpL11GCS9cY9bCg));
	p = newProc__r9c9cj4fW68RhY7ht9btSvB8w(NIM_NIL, m);
	T1_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = getTypeName__zLenRlTUJy0Mn9b8JKwzEcQ_3(m, origTyp, sig);
	result = amp___4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_141), T1_);
	hcrOn = hcrOn__a2BRACVCGIuooKjHNmoLsA(m);
	typ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(origTyp, IL64(36134350135273744));
	{
		if (!hcrOn) goto LA4_;
		markerName = amp___Z7W1o5nPSc3ExfO5f7j1Gg(result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_79));
	}
	goto LA2_;
	LA4_: ;
	{
		markerName = result;
	}
	LA2_: ;
	nimZeroMem((void*)T7_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
	T7_[0] = markerName;
	header = percent___0nBiBCva6YS9a9bSV2Vr7Zxw(T7_, 1);
	t = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA(m, typ);
	T8_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T8_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 0));
	nimZeroMem((void*)T9_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
	T9_[0] = t;
	T10_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T10_ = percent___yyhPPkMkLJqWG6p8HGn9aoA(T9_, 1);
	T11_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T11_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T10_);
	add__IM4kcMNkkOLJtqdEqSxR8A(T8_, T11_);
	T12_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T12_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 1));
	nimZeroMem((void*)T13_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
	T13_[0] = t;
	T14_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T14_ = percent___t8gRNGR1flvaCNlBxuLn1A(T13_, 1);
	T15_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T15_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T14_);
	add__IM4kcMNkkOLJtqdEqSxR8A(T12_, T15_);
	c.p = p;
	c.visitorFrmt = copyString(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_142));
	{
		if (!!(!(((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8))))) goto LA18_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_143));
	}
	LA18_: ;
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T24_;
		if (!((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24))) goto LA22_;
		T24_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T24_ = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_202));
		genTraverseProcSeq__LXrm7ZbTiXTVtbB5E60yIA(c, T24_, typ);
	}
	goto LA20_;
	LA22_: ;
	{
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T28_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T31_;
			if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1); }
			T28_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T28_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*typ).sons->data[((NI) 0)], IL64(36134350135273744));
			if (!((*T28_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16))) goto LA29_;
			T31_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T31_ = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_202));
			if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1); }
			genTraverseProc__LXrm7ZbTiXTVtbB5E60yIA_2(c, T31_, (*typ).sons->data[((NI) 0)]);
		}
		goto LA26_;
		LA29_: ;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T33_;
			T33_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T33_ = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_203));
			if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1); }
			genTraverseProc__LXrm7ZbTiXTVtbB5E60yIA_2(c, T33_, (*typ).sons->data[((NI) 0)]);
		}
		LA26_: ;
	}
	LA20_: ;
	nimZeroMem((void*)T34_, sizeof(tyArray__f7nG5LD47BH5K9c6mASit3g));
	T34_[0] = header;
	T35_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T35_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 0));
	T34_[1] = (*T35_);
	T36_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T36_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 1));
	T34_[2] = (*T36_);
	T37_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T37_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
	T34_[3] = (*T37_);
	generatedProc = percent___EnzikEr9bDhOR6GYxWuYSwQ(T34_, 4);
	nimZeroMem((void*)T38_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
	T38_[0] = header;
	T39_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T39_ = percent___QqzUiJcAEZE2azDhIWHrgg(T38_, 1);
	add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], T39_);
	add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0], generatedProc);
	{
		tyArray__JiWwrsTRC6xqNlGcBthSVA T44_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T45_;
		tyArray__wqYjTJU9ab2ZgEFMaQc3vNA T46_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T47_;
		if (!hcrOn) goto LA42_;
		nimZeroMem((void*)T44_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
		T44_[0] = result;
		T45_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T45_ = percent___20ZujjIFPkyqvS2OmenEAA(T44_, 1);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], T45_);
		nimZeroMem((void*)T46_, sizeof(tyArray__wqYjTJU9ab2ZgEFMaQc3vNA));
		T46_[0] = result;
		T46_[1] = markerName;
		T46_[2] = getModuleDllPath__ao6gUnuVfQLtZ89c4kaIKfg_2(m);
		T47_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T47_ = percent___Vxo9ayk1xB18if39aZ1TBnKA(T46_, 3);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 18))- 0], T47_);
	}
	LA42_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genArrayInfo__TiBDnY33G5Ca1p0Z3BOA9bg)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* name, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T1_;
	if ((NU)(((NI) 1)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*typ).sons ? (*typ).sons->Sup.len : 0)-1); }
	T1_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = genTypeInfo__BeEYMOjEPJinzbFpsfTaZg(m, (*typ).sons->data[((NI) 1)], info);
	genTypeInfoAuxBase__7TeHWriUy9a9aRQ1EAhsSN1w(m, typ, typ, name, T1_, info);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, rope__b5mr3rjXEwHVfmNLJr4cBA)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	NimStringDesc* T1_;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = (NimStringDesc*)0;
	T1_ = dollar___W2wbDjPGDCaBwLQM6yLUQg(arg);
	result = rope__yShmEg9cffWxI7s5XzEKBow(T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genSetInfo__TiBDnY33G5Ca1p0Z3BOA9bg_2)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* name, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* tmp;
	tyArray__wqYjTJU9ab2ZgEFMaQc3vNA T5_;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA T6_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T7_;
	{
		if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1); }
		if (!!(!(((*typ).sons->data[((NI) 0)] == NIM_NIL)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_204));
	}
	LA3_: ;
	genTypeInfoAux__DVDUKxJo5CvrWtAaM2iHCw_2(m, typ, typ, name, info);
	tmp = getNimNode__ao6gUnuVfQLtZ89c4kaIKfg_3(m);
	nimZeroMem((void*)T5_, sizeof(tyArray__wqYjTJU9ab2ZgEFMaQc3vNA));
	T5_[0] = tmp;
	T6_ = firstOrd__hjogdnp59cMX1rwmjikBhqw((*(*m).g).config, typ);
	T5_[1] = rope__b5mr3rjXEwHVfmNLJr4cBA(T6_);
	T5_[2] = tiNameForHcr__oXvL9aGYxIh9cO59b845ZGKcA(m, name);
	T7_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T7_ = percent___AKNexo4CH8G2vDeWW34Vpg(T5_, 3);
	add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T7_);
}
N_LIB_PRIVATE N_NIMCALL(void, genEnumInfo__TiBDnY33G5Ca1p0Z3BOA9bg_3)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* name, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* nodePtrs;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T1_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T2_;
	NI T3_;
	NimStringDesc* T4_;
	NI T5_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T6_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* enumNames;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* specialCases;
	NI firstNimNode;
	NIM_BOOL hasHoles;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* enumArray;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* counter;
	tyArray__JiWwrsTRC6xqNlGcBthSVA T34_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T35_;
	tyArray__wqYjTJU9ab2ZgEFMaQc3vNA T36_;
	NI T37_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T38_;
	tyArray__dNfZYyzVYdaWfURv4pxodA T39_;
	NI T40_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T41_;
	tyArray__f7nG5LD47BH5K9c6mASit3g T42_;
	NI T43_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T44_;
	genTypeInfoAux__DVDUKxJo5CvrWtAaM2iHCw_2(m, typ, typ, name, info);
	T1_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = getTempName__ao6gUnuVfQLtZ89c4kaIKfg(m);
	T2_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = amp___Z7W1o5nPSc3ExfO5f7j1Gg(T1_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_3));
	T3_ = (NI)0;
	T3_ = len__P89cqdlERShb9alU3iC0yj8wast((*typ).n);
	T4_ = (NimStringDesc*)0;
	T4_ = nimIntToStr(T3_);
	nodePtrs = amp___Z7W1o5nPSc3ExfO5f7j1Gg(T2_, T4_);
	T5_ = (NI)0;
	T5_ = len__P89cqdlERShb9alU3iC0yj8wast((*typ).n);
	T6_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T6_ = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (T5_)));
	genTNimNodeArray__8W0lvt5dkO9cVIIfffRji9cQ(m, nodePtrs, T6_);
	enumNames = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	specialCases = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	firstNimNode = (*m).typeNodes;
	hasHoles = NIM_FALSE;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast((*typ).n);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* field;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* elemNode;
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_208;
				if (!(i_2 < colontmp_)) goto LA9;
				i = i_2;
				{
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*typ).n).kind)>>3] &(1U<<((NU)((*(*typ).n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i) >= (NU)((*(*typ).n)._kind_6.sons ? (*(*typ).n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*(*typ).n)._kind_6.sons ? (*(*typ).n)._kind_6.sons->Sup.len : 0)-1); }
					if (!!(((*(*(*typ).n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA12_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_205));
				}
				LA12_: ;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*typ).n).kind)>>3] &(1U<<((NU)((*(*typ).n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(i) >= (NU)((*(*typ).n)._kind_6.sons ? (*(*typ).n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*(*typ).n)._kind_6.sons ? (*(*typ).n)._kind_6.sons->Sup.len : 0)-1); }
				if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*(*typ).n)._kind_6.sons->data[i]).kind)>>3] &(1U<<((NU)((*(*(*typ).n)._kind_6.sons->data[i]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
				field = (*(*(*typ).n)._kind_6.sons->data[i])._kind_4.sym;
				elemNode = getNimNode__ao6gUnuVfQLtZ89c4kaIKfg_3(m);
				{
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T18_;
					if (!((*field).ast == NIM_NIL)) goto LA16_;
					T18_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T18_ = makeCString__vQJydtKy4Nf6bXPYtbmjtg((*(*field).name).s);
					add__IM4kcMNkkOLJtqdEqSxR8A(&enumNames, T18_);
				}
				goto LA14_;
				LA16_: ;
				{
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T20_;
					if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_91[(NU)((*(*field).ast).kind)>>3] &(1U<<((NU)((*(*field).ast).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_92)); }
					T20_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T20_ = makeCString__vQJydtKy4Nf6bXPYtbmjtg((*(*field).ast)._kind_3.strVal);
					add__IM4kcMNkkOLJtqdEqSxR8A(&enumNames, T20_);
				}
				LA14_: ;
				{
					NI T23_;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_206;
					T23_ = (NI)0;
					T23_ = len__P89cqdlERShb9alU3iC0yj8wast((*typ).n);
					if (nimSubInt(T23_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_206)) { raiseOverflow(); };
					if (!(i < (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_206))) goto LA24_;
					add__yG4AKzsBRS1W4MANDlXQeg(&enumNames, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_207));
				}
				LA24_: ;
				{
					NIM_BOOL T28_;
					tyArray__mrugoXXRZUEeG9bEXo9auBKw T32_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T33_;
					T28_ = (NIM_BOOL)0;
					T28_ = !(((*field).position == i));
					if (T28_) goto LA29_;
					T28_ = (((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 5))&63U)))!=0);
					LA29_: ;
					if (!T28_) goto LA30_;
					nimZeroMem((void*)T32_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
					T32_[0] = elemNode;
					T32_[1] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*field).position)));
					T33_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T33_ = percent___LE3oWAmB5YDSDHm3LNHhCg(T32_, 2);
					add__IM4kcMNkkOLJtqdEqSxR8A(&specialCases, T33_);
					hasHoles = NIM_TRUE;
				}
				LA30_: ;
				if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_208)) { raiseOverflow(); };
				i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_208);
			} LA9: ;
		}
	}
	enumArray = getTempName__ao6gUnuVfQLtZ89c4kaIKfg(m);
	counter = getTempName__ao6gUnuVfQLtZ89c4kaIKfg(m);
	nimZeroMem((void*)T34_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
	T34_[0] = counter;
	T35_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T35_ = percent___W83I2xs7lC32PrMs9bq4P2w(T34_, 1);
	add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], T35_);
	nimZeroMem((void*)T36_, sizeof(tyArray__wqYjTJU9ab2ZgEFMaQc3vNA));
	T36_[0] = enumArray;
	T37_ = (NI)0;
	T37_ = len__P89cqdlERShb9alU3iC0yj8wast((*typ).n);
	T36_[1] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (T37_)));
	T36_[2] = enumNames;
	T38_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T38_ = percent___JKMGBJtXtDvc0NwxujFmZQ(T36_, 3);
	add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], T38_);
	nimZeroMem((void*)T39_, sizeof(tyArray__dNfZYyzVYdaWfURv4pxodA));
	T39_[0] = counter;
	T40_ = (NI)0;
	T40_ = len__P89cqdlERShb9alU3iC0yj8wast((*typ).n);
	T39_[1] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (T40_)));
	T39_[2] = (*m).typeNodesName;
	T39_[3] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (firstNimNode)));
	T39_[4] = enumArray;
	T39_[5] = nodePtrs;
	T41_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T41_ = percent___TA8WFV49atYpIneJatQWALw(T39_, 6);
	add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T41_);
	add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], specialCases);
	nimZeroMem((void*)T42_, sizeof(tyArray__f7nG5LD47BH5K9c6mASit3g));
	T42_[0] = getNimNode__ao6gUnuVfQLtZ89c4kaIKfg_3(m);
	T43_ = (NI)0;
	T43_ = len__P89cqdlERShb9alU3iC0yj8wast((*typ).n);
	T42_[1] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (T43_)));
	T42_[2] = nodePtrs;
	T42_[3] = tiNameForHcr__oXvL9aGYxIh9cO59b845ZGKcA(m, name);
	T44_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T44_ = percent___nPenDL3j2Q6A1an1Cl3oCA(T42_, 4);
	add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T44_);
	{
		tyArray__JiWwrsTRC6xqNlGcBthSVA T49_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T50_;
		if (!hasHoles) goto LA47_;
		nimZeroMem((void*)T49_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
		T49_[0] = tiNameForHcr__oXvL9aGYxIh9cO59b845ZGKcA(m, name);
		T50_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T50_ = percent___TNkzce2Sd9bck2QRtketc8A(T49_, 1);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T50_);
	}
	LA47_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, discriminatorTableName__WpGsd0DJejVIze0ZXr8L3g)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* 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 = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(objtype, IL64(36275087638309136));
	{
		while (1) {
			tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T3_;
			T3_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
			T3_ = lookupInRecord__gYQxUKQhlRY6yBu3Ll2TYg((*objtype_2).n, (*d).name);
			if (!(T3_ == NIM_NIL)) goto LA2;
			if ((NU)(((NI) 0)) >= (NU)((*objtype_2).sons ? (*objtype_2).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*objtype_2).sons ? (*objtype_2).sons->Sup.len : 0)-1); }
			objtype_2 = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*objtype_2).sons->data[((NI) 0)], IL64(36275087638309136));
		} LA2: ;
	}
	{
		if (!((*objtype_2).sym == NIM_NIL)) goto LA6_;
		internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*m).g).config, (*d).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_211));
	}
	LA6_: ;
	nimZeroMem((void*)T8_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
	nimZeroMem((void*)T9_, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
	hashType__UdooXLclXL8uld7qLI5JRw(objtype_2, 2, T9_);
	T10_ = (NimStringDesc*)0;
	T10_ = dollar___0A9bslyIJ49bWrftLGh13rvg(T9_);
	T8_[0] = rope__yShmEg9cffWxI7s5XzEKBow(T10_);
	T11_ = (NimStringDesc*)0;
	T11_ = mangle__GxzvEIRbrShQbyJNboTw7A((*(*d).name).s);
	T8_[1] = rope__yShmEg9cffWxI7s5XzEKBow(T11_);
	result = percent___BKnrQUIV2xGn2MO0RK09aUw(T8_, 2);
	return result;
}
static N_INLINE(NIM_BOOL, isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (t == NIM_NIL);
	if (T1_) goto LA2_;
	T1_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 63) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7));
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genObjectFields__TSbjDRI5MCd36QpIuSTshg)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* 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 T4_;
			T4_ = (NI)0;
			T4_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (!(T4_ == ((NI) 1))) goto LA5_;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
			genObjectFields__TSbjDRI5MCd36QpIuSTshg(m, typ, origType, (*n)._kind_6.sons->data[((NI) 0)], expr, info);
		}
		goto LA2_;
		LA5_: ;
		{
			NI T8_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* tmp;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T11_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T12_;
			NI T13_;
			NimStringDesc* T14_;
			NI T15_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T16_;
			tyArray__wqYjTJU9ab2ZgEFMaQc3vNA T22_;
			NI T23_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T24_;
			T8_ = (NI)0;
			T8_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (!(((NI) 0) < T8_)) goto LA9_;
			T11_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T11_ = getTempName__ao6gUnuVfQLtZ89c4kaIKfg(m);
			T12_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T12_ = amp___Z7W1o5nPSc3ExfO5f7j1Gg(T11_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_3));
			T13_ = (NI)0;
			T13_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			T14_ = (NimStringDesc*)0;
			T14_ = nimIntToStr(T13_);
			tmp = amp___Z7W1o5nPSc3ExfO5f7j1Gg(T12_, T14_);
			T15_ = (NI)0;
			T15_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			T16_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T16_ = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (T15_)));
			genTNimNodeArray__8W0lvt5dkO9cVIIfffRji9cQ(m, tmp, T16_);
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
				i_2 = ((NI) 0);
				{
					while (1) {
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* tmp2;
						tyArray__wqYjTJU9ab2ZgEFMaQc3vNA T20_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T21_;
						NI TM__MQdRN7fpbG7rPm4JpVVAhA_209;
						if (!(i_2 < colontmp_)) goto LA19;
						i = i_2;
						tmp2 = getNimNode__ao6gUnuVfQLtZ89c4kaIKfg_3(m);
						nimZeroMem((void*)T20_, sizeof(tyArray__wqYjTJU9ab2ZgEFMaQc3vNA));
						T20_[0] = tmp;
						T20_[1] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (i)));
						T20_[2] = tmp2;
						T21_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T21_ = percent___H3xXuIFdbz4MNb5T6BSfcQ(T20_, 3);
						add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T21_);
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if ((NU)(i) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
						genObjectFields__TSbjDRI5MCd36QpIuSTshg(m, typ, origType, (*n)._kind_6.sons->data[i], tmp2, info);
						if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_209)) { raiseOverflow(); };
						i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_209);
					} LA19: ;
				}
			}
			nimZeroMem((void*)T22_, sizeof(tyArray__wqYjTJU9ab2ZgEFMaQc3vNA));
			T22_[0] = expr;
			T23_ = (NI)0;
			T23_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			T22_[1] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (T23_)));
			T22_[2] = tmp;
			T24_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T24_ = percent___9aLrcjgzGJE3f9ab2uR37jog(T22_, 3);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T24_);
		}
		goto LA2_;
		LA9_: ;
		{
			tyArray__mrugoXXRZUEeG9bEXo9auBKw T26_;
			NI T27_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T28_;
			nimZeroMem((void*)T26_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
			T26_[0] = expr;
			T27_ = (NI)0;
			T27_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			T26_[1] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (T27_)));
			T28_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T28_ = percent___3Q9c5iS9btBDBXZVoQktb1XQ(T26_, 2);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T28_);
		}
		LA2_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 139):
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* field;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* tmp_2;
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA L;
		tyArray__YcHYlgE5mhtkt9a3rnoucVg T48_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T49_;
		tyArray__mrugoXXRZUEeG9bEXo9auBKw T50_;
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T51_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T52_;
		{
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
			if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA32_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_210));
		}
		LA32_: ;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
		field = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
		tmp_2 = discriminatorTableName__WpGsd0DJejVIze0ZXr8L3g(m, typ, field);
		L = lengthOrd__hjogdnp59cMX1rwmjikBhqw_3((*(*m).g).config, (*field).typ);
		{
			NIM_BOOL T36_;
			T36_ = (NIM_BOOL)0;
			T36_ = lt___xL5gyZrjbGMarSdRAXOo9ag_3(IL64(0), L);
			if (!!(T36_)) goto LA37_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_212));
		}
		LA37_: ;
		{
			if (!((*field).loc.r == NIM_NIL)) goto LA41_;
			fillObjectFields__4q3XOfd3NI3C8cSNkaF9cWA_2(m, typ);
		}
		LA41_: ;
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T45_;
			T45_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T45_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*field).loc);
			if (!(T45_ == NIM_NIL)) goto LA46_;
			internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*m).g).config, (*n).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_213));
		}
		LA46_: ;
		nimZeroMem((void*)T48_, sizeof(tyArray__YcHYlgE5mhtkt9a3rnoucVg));
		T48_[0] = expr;
		T48_[1] = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA(m, origType);
		T48_[2] = (*field).loc.r;
		T48_[3] = genTypeInfo__BeEYMOjEPJinzbFpsfTaZg(m, (*field).typ, info);
		T48_[4] = makeCString__vQJydtKy4Nf6bXPYtbmjtg((*(*field).name).s);
		T48_[5] = tmp_2;
		T48_[6] = rope__b5mr3rjXEwHVfmNLJr4cBA(L);
		T49_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T49_ = percent___SCyrk9acEm3vLZhXCV1fGNg(T48_, 7);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T49_);
		nimZeroMem((void*)T50_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
		T50_[0] = tmp_2;
		T51_ = plus___hiijuMqvH9aC9aKmwIYuqUAA_2(L, IL64(1));
		T50_[1] = rope__b5mr3rjXEwHVfmNLJr4cBA(T51_);
		T52_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T52_ = percent___erDe9aYc2BNxzH9brKlmtEBg(T50_, 2);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], T52_);
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			i_4 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* tmp2_2;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T56_;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_220;
					if (!(i_4 < colontmp__2)) goto LA55;
					i_3 = i_4;
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i_3) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_3,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
					b = (*n)._kind_6.sons->data[i_3];
					tmp2_2 = getNimNode__ao6gUnuVfQLtZ89c4kaIKfg_3(m);
					T56_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T56_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(b);
					genObjectFields__TSbjDRI5MCd36QpIuSTshg(m, typ, origType, T56_, tmp2_2, info);
					switch ((*b).kind) {
					case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85):
					{
						{
							NI T60_;
							T60_ = (NI)0;
							T60_ = len__P89cqdlERShb9alU3iC0yj8wast(b);
							if (!(T60_ < ((NI) 2))) goto LA61_;
							internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*m).g).config, (*b).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_214));
						}
						LA61_: ;
						{
							NI j;
							NI colontmp__3;
							NI T64_;
							NI TM__MQdRN7fpbG7rPm4JpVVAhA_215;
							NI i_5;
							j = (NI)0;
							colontmp__3 = (NI)0;
							T64_ = (NI)0;
							T64_ = len__P89cqdlERShb9alU3iC0yj8wast(b);
							if (nimSubInt(T64_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_215)) { raiseOverflow(); };
							colontmp__3 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_215);
							i_5 = ((NI) 0);
							{
								while (1) {
									NI TM__MQdRN7fpbG7rPm4JpVVAhA_218;
									if (!(i_5 < colontmp__3)) goto LA66;
									j = i_5;
									{
										NI x;
										tyObject_Int128__9a9axPfb75jdWY25AamJewkA T71_;
										NI y;
										tyObject_Int128__9a9axPfb75jdWY25AamJewkA T72_;
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(j) >= (NU)((*b)._kind_6.sons ? (*b)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(j,((*b)._kind_6.sons ? (*b)._kind_6.sons->Sup.len : 0)-1); }
										if (!((*(*b)._kind_6.sons->data[j]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA69_;
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(j) >= (NU)((*b)._kind_6.sons ? (*b)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(j,((*b)._kind_6.sons ? (*b)._kind_6.sons->Sup.len : 0)-1); }
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*b)._kind_6.sons->data[j]).kind)>>3] &(1U<<((NU)((*(*b)._kind_6.sons->data[j]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(((NI) 0)) >= (NU)((*(*b)._kind_6.sons->data[j])._kind_6.sons ? (*(*b)._kind_6.sons->data[j])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*b)._kind_6.sons->data[j])._kind_6.sons ? (*(*b)._kind_6.sons->data[j])._kind_6.sons->Sup.len : 0)-1); }
										T71_ = getOrdValue__GvVg8kpCh7QA2PDTJnFJlQ((*(*b)._kind_6.sons->data[j])._kind_6.sons->data[((NI) 0)], TM__MQdRN7fpbG7rPm4JpVVAhA_216);
										x = toInt__TIX0sFuRf3uBpOBltYp7bw(T71_);
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(j) >= (NU)((*b)._kind_6.sons ? (*b)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(j,((*b)._kind_6.sons ? (*b)._kind_6.sons->Sup.len : 0)-1); }
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*b)._kind_6.sons->data[j]).kind)>>3] &(1U<<((NU)((*(*b)._kind_6.sons->data[j]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(((NI) 1)) >= (NU)((*(*b)._kind_6.sons->data[j])._kind_6.sons ? (*(*b)._kind_6.sons->data[j])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*(*b)._kind_6.sons->data[j])._kind_6.sons ? (*(*b)._kind_6.sons->data[j])._kind_6.sons->Sup.len : 0)-1); }
										T72_ = getOrdValue__GvVg8kpCh7QA2PDTJnFJlQ((*(*b)._kind_6.sons->data[j])._kind_6.sons->data[((NI) 1)], TM__MQdRN7fpbG7rPm4JpVVAhA_216);
										y = toInt__TIX0sFuRf3uBpOBltYp7bw(T72_);
										{
											while (1) {
												tyArray__wqYjTJU9ab2ZgEFMaQc3vNA T75_;
												tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T76_;
												NI TM__MQdRN7fpbG7rPm4JpVVAhA_217;
												if (!(x <= y)) goto LA74;
												nimZeroMem((void*)T75_, sizeof(tyArray__wqYjTJU9ab2ZgEFMaQc3vNA));
												T75_[0] = tmp_2;
												T75_[1] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (x)));
												T75_[2] = tmp2_2;
												T76_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
												T76_ = percent___H3xXuIFdbz4MNb5T6BSfcQ(T75_, 3);
												add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T76_);
												if (nimAddInt(x, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_217)) { raiseOverflow(); };
												x = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_217);
											} LA74: ;
										}
									}
									goto LA67_;
									LA69_: ;
									{
										tyArray__wqYjTJU9ab2ZgEFMaQc3vNA T78_;
										tyObject_Int128__9a9axPfb75jdWY25AamJewkA T79_;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T80_;
										nimZeroMem((void*)T78_, sizeof(tyArray__wqYjTJU9ab2ZgEFMaQc3vNA));
										T78_[0] = tmp_2;
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(j) >= (NU)((*b)._kind_6.sons ? (*b)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(j,((*b)._kind_6.sons ? (*b)._kind_6.sons->Sup.len : 0)-1); }
										T79_ = getOrdValue__GvVg8kpCh7QA2PDTJnFJlQ((*b)._kind_6.sons->data[j], TM__MQdRN7fpbG7rPm4JpVVAhA_216);
										T78_[1] = rope__b5mr3rjXEwHVfmNLJr4cBA(T79_);
										T78_[2] = tmp2_2;
										T80_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T80_ = percent___H3xXuIFdbz4MNb5T6BSfcQ(T78_, 3);
										add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T80_);
									}
									LA67_: ;
									if (nimAddInt(i_5, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_218)) { raiseOverflow(); };
									i_5 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_218);
								} LA66: ;
							}
						}
					}
					break;
					case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88):
					{
						tyArray__wqYjTJU9ab2ZgEFMaQc3vNA T82_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T83_;
						nimZeroMem((void*)T82_, sizeof(tyArray__wqYjTJU9ab2ZgEFMaQc3vNA));
						T82_[0] = tmp_2;
						T82_[1] = rope__b5mr3rjXEwHVfmNLJr4cBA(L);
						T82_[2] = tmp2_2;
						T83_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T83_ = percent___H3xXuIFdbz4MNb5T6BSfcQ(T82_, 3);
						add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T83_);
					}
					break;
					default:
					{
						internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*m).g).config, (*n).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_219));
					}
					break;
					}
					if (nimAddInt(i_4, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_220)) { raiseOverflow(); };
					i_4 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_220);
				} LA55: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* field_2;
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
		field_2 = (*n)._kind_4.sym;
		{
			NIM_BOOL T88_;
			T88_ = (NIM_BOOL)0;
			T88_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*field_2).typ);
			if (!T88_) goto LA89_;
			goto BeforeRet_;
		}
		LA89_: ;
		{
			tyArray__duFhZXIIlrbrM62cWjNekg T104_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T105_;
			if (!(((2622208 &(1U<<((NU)((*field_2).kind)&31U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_169)); }
			if (!((*field_2)._kind_4.bitsize == ((NI) 0))) goto LA93_;
			{
				if (!((*field_2).loc.r == NIM_NIL)) goto LA97_;
				fillObjectFields__4q3XOfd3NI3C8cSNkaF9cWA_2(m, typ);
			}
			LA97_: ;
			{
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T101_;
				T101_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T101_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*field_2).loc);
				if (!(T101_ == NIM_NIL)) goto LA102_;
				internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*m).g).config, (*n).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_213));
			}
			LA102_: ;
			nimZeroMem((void*)T104_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
			T104_[0] = expr;
			T104_[1] = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA(m, origType);
			T104_[2] = (*field_2).loc.r;
			T104_[3] = genTypeInfo__BeEYMOjEPJinzbFpsfTaZg(m, (*field_2).typ, info);
			T104_[4] = makeCString__vQJydtKy4Nf6bXPYtbmjtg((*(*field_2).name).s);
			T105_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T105_ = percent___HSAgkeH84eiEd8MfKIuBQA(T104_, 5);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T105_);
		}
		LA93_: ;
	}
	break;
	default:
	{
		internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*m).g).config, (*n).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_213));
	}
	break;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genObjectInfo__DVDUKxJo5CvrWtAaM2iHCw_3)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* 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_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T21_;
	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_ = ((1040 & (*(*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_124));
appendString(T11_, T12_);
			localError__NF6kBGchnhQYPbCedyefVA((*(*m).g).config, info, T11_);
		}
		LA9_: ;
		genTypeInfoAux__DVDUKxJo5CvrWtAaM2iHCw_2(m, typ, origType, name, info);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T14_;
		T14_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_138));
		genTypeInfoAuxBase__7TeHWriUy9a9aRQ1EAhsSN1w(m, typ, origType, name, T14_, info);
	}
	LA1_: ;
	tmp = getNimNode__ao6gUnuVfQLtZ89c4kaIKfg_3(m);
	{
		NIM_BOOL T17_;
		T17_ = (NIM_BOOL)0;
		T17_ = isImportedType__IafZhvqpthq9b9c13SFhzAOw_2(typ);
		if (!!(T17_)) goto LA18_;
		genObjectFields__TSbjDRI5MCd36QpIuSTshg(m, typ, origType, (*typ).n, tmp, info);
	}
	LA18_: ;
	nimZeroMem((void*)T20_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
	T20_[0] = tiNameForHcr__oXvL9aGYxIh9cO59b845ZGKcA(m, name);
	T20_[1] = tmp;
	T21_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T21_ = percent___MALQXTKXJv7x9a9c247satLQ(T20_, 2);
	add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T21_);
	if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1); }
	t = (*typ).sons->data[((NI) 0)];
	{
		while (1) {
			if (!!((t == NIM_NIL))) goto LA23;
			t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(36275087638268176));
			(*t).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 5)) & 63);
			if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1); }
			t = (*t).sons->data[((NI) 0)];
		} LA23: ;
	}
}
N_LIB_PRIVATE N_NIMCALL(void, genDeepCopyProc__hi0Gu9bcBd9a9cO4KStt3d7iw)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result) {
	tyArray__mrugoXXRZUEeG9bEXo9auBKw T1_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T2_;
	genProc__HbYPOpwLApFuBkISFGrmEQ(m, s);
	nimZeroMem((void*)T1_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
	T1_[0] = result;
	T1_[1] = (*s).loc.r;
	T2_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = percent___1AD3Wp47Hcdfg6PO2ac0NQ(T1_, 2);
	add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T2_);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genTypeInfo__BeEYMOjEPJinzbFpsfTaZg)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* origType;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t_2;
	NimStringDesc* prefixTI;
	tyArray__qtqsWM5aXmcpMIVmvq3kAA sig;
	tyTuple__Iz0jrTw3w7v6sMzjrqs0nA marker;
	tyArray__JiWwrsTRC6xqNlGcBthSVA T23_;
	NimStringDesc* T24_;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T25_;
	tyTuple__Iz0jrTw3w7v6sMzjrqs0nA T40_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T104_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T105_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T106_;
{	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	origType = t;
	t_2 = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(origType, IL64(1202566653625249296));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = hcrOn__a2BRACVCGIuooKjHNmoLsA(m);
		if (!T3_) goto LA4_;
		prefixTI = copyString(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
	}
	goto LA1_;
	LA4_: ;
	{
		prefixTI = copyString(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_112));
	}
	LA1_: ;
	nimZeroMem((void*)sig, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
	hashType__UdooXLclXL8uld7qLI5JRw(origType, 2, sig);
	result = getOrDefault__tD8SQMueXhdfvpBnagcsKg((*m).typeInfoMarker, sig);
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T11_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T12_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T13_;
		if (!!((result == NIM_NIL))) goto LA9_;
		T11_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T11_ = rope__yShmEg9cffWxI7s5XzEKBow(prefixTI);
		T12_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = amp___ShdZ6VrAQkY0nWR9a39b9bGdQ(T11_, result);
		T13_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T13_ = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
		result = amp___ShdZ6VrAQkY0nWR9a39b9bGdQ(T12_, T13_);
		goto BeforeRet_;
	}
	LA9_: ;
	nimZeroMem((void*)(&marker), sizeof(tyTuple__Iz0jrTw3w7v6sMzjrqs0nA));
	getOrDefault__qISsmXPGy0MStH2gg2BcOA((*(*m).g).typeInfoMarker, sig, (&marker));
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T18_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T19_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T20_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T21_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T22_;
		if (!!((marker.Field0 == NIM_NIL))) goto LA16_;
		T18_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T18_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_117));
		(void)(T18_);
		T19_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T19_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_118));
		(void)(T19_);
		declareNimType__w2jZebce9cvMAGUdQoJVOuA(m, marker.Field0, marker.Field1);
		X5BX5Deq___zhbvOVNN6tTRFgZkPDZOmA((&(*m).typeInfoMarker), sig, marker.Field0);
		T20_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T20_ = rope__yShmEg9cffWxI7s5XzEKBow(prefixTI);
		T21_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T21_ = amp___ShdZ6VrAQkY0nWR9a39b9bGdQ(T20_, marker.Field0);
		T22_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T22_ = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
		result = amp___ShdZ6VrAQkY0nWR9a39b9bGdQ(T21_, T22_);
		goto BeforeRet_;
	}
	LA16_: ;
	nimZeroMem((void*)T23_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
	T24_ = (NimStringDesc*)0;
	T24_ = dollar___0A9bslyIJ49bWrftLGh13rvg(sig);
	T23_[0] = rope__yShmEg9cffWxI7s5XzEKBow(T24_);
	result = percent___nlZFDYB4M9bmBbYqEropRVw(T23_, 1);
	X5BX5Deq___zhbvOVNN6tTRFgZkPDZOmA((&(*m).typeInfoMarker), sig, result);
	T25_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T25_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(t_2, IL64(36275087638309136));
	owner = getModule__xfh8ar7fDxVX2A4OO9b5sqQ((*T25_).owner);
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T34_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T35_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T36_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T37_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T38_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T39_;
		if (!!((owner == (*m).module))) goto LA28_;
		{
			if ((NU)((*owner).position) >= (NU)((*(*m).g).modules ? (*(*m).g).modules->Sup.len : 0)){ raiseIndexError2((*owner).position,((*(*m).g).modules ? (*(*m).g).modules->Sup.len : 0)-1); }
			if (!!(!(((*(*m).g).modules->data[(*owner).position] == NIM_NIL)))) goto LA32_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_123));
		}
		LA32_: ;
		if ((NU)((*owner).position) >= (NU)((*(*m).g).modules ? (*(*m).g).modules->Sup.len : 0)){ raiseIndexError2((*owner).position,((*(*m).g).modules ? (*(*m).g).modules->Sup.len : 0)-1); }
		T34_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T34_ = genTypeInfo__BeEYMOjEPJinzbFpsfTaZg((*(*m).g).modules->data[(*owner).position], origType, info);
		(void)(T34_);
		T35_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T35_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_117));
		(void)(T35_);
		T36_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T36_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_118));
		(void)(T36_);
		declareNimType__w2jZebce9cvMAGUdQoJVOuA(m, result, owner);
		T37_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T37_ = rope__yShmEg9cffWxI7s5XzEKBow(prefixTI);
		T38_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T38_ = amp___ShdZ6VrAQkY0nWR9a39b9bGdQ(T37_, result);
		T39_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T39_ = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
		result = amp___ShdZ6VrAQkY0nWR9a39b9bGdQ(T38_, T39_);
		goto BeforeRet_;
	}
	LA28_: ;
	nimZeroMem((void*)(&T40_), sizeof(tyTuple__Iz0jrTw3w7v6sMzjrqs0nA));
	T40_.Field0 = result;
	T40_.Field1 = owner;
	X5BX5Deq___e9czpY4GXpbU9cznliOfqQ1Q((&(*(*m).g).typeInfoMarker), sig, T40_);
	{
		if (!(((*(*(*m).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 40))&63U)))!=0)) goto LA43_;
		genTypeInfoV2__TDEOLqqwXHVFJ9cWxDq6Nww(m, t_2, origType, result, info);
	}
	goto LA41_;
	LA43_: ;
	{
		switch ((*t_2).kind) {
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 3):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 63):
		{
			result = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_129));
		}
		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* T48_;
			T48_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T48_ = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_129));
			genTypeInfoAuxBase__7TeHWriUy9a9aRQ1EAhsSN1w(m, t_2, t_2, result, T48_, info);
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60):
		{
			{
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T54_;
				if (!!(((*t_2).n == NIM_NIL))) goto LA52_;
				T54_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T54_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(t_2);
				result = genTypeInfo__BeEYMOjEPJinzbFpsfTaZg(m, T54_, info);
			}
			goto LA50_;
			LA52_: ;
			{
				NimStringDesc* T56_;
				T56_ = (NimStringDesc*)0;
				T56_ = rawNewString((reprEnum((NI)(*t_2).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*t_2).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 13);
appendString(T56_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_135));
appendString(T56_, reprEnum((NI)(*t_2).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_)));
appendChar(T56_, 41);
				internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, T56_);
			}
			LA50_: ;
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 53):
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T63_;
			{
				NimStringDesc* T62_;
				if (!!((((*t_2).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 10))&63U)))!=0))) goto LA60_;
				T62_ = (NimStringDesc*)0;
				T62_ = dollar___r38WafKlW80RkvoZTcia4Q(TM__MQdRN7fpbG7rPm4JpVVAhA_136);
				internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, T62_);
			}
			LA60_: ;
			T63_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T63_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(t_2);
			result = genTypeInfo__BeEYMOjEPJinzbFpsfTaZg(m, T63_, info);
			goto BeforeRet_;
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25):
		{
			{
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T69_;
				if (!!(((*t_2).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 8)))) goto LA67_;
				T69_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T69_ = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_129));
				genTypeInfoAuxBase__7TeHWriUy9a9aRQ1EAhsSN1w(m, t_2, t_2, result, T69_, info);
			}
			goto LA65_;
			LA67_: ;
			{
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* x;
				x = fakeClosureType__OVHn4Lx3T69a1BHJ0KreWYw(m, (*t_2).owner);
				genTupleInfo__DVDUKxJo5CvrWtAaM2iHCw(m, x, x, result, info);
			}
			LA65_: ;
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
		{
			genTypeInfoAux__DVDUKxJo5CvrWtAaM2iHCw_2(m, t_2, t_2, result, info);
			{
				if (!!((((*(*(*m).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 39))&63U)))!=0))) goto LA74_;
				{
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* markerProc;
					tyArray__mrugoXXRZUEeG9bEXo9auBKw T80_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T81_;
					if (!(((tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw) 4) <= (*(*(*m).g).config).selectedGC)) goto LA78_;
					markerProc = genTraverseProc__6ja22UmHW9bFsLaOtztGpHQ(m, origType, sig);
					nimZeroMem((void*)T80_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
					T80_[0] = tiNameForHcr__oXvL9aGYxIh9cO59b845ZGKcA(m, result);
					T80_[1] = markerProc;
					T81_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T81_ = percent___NtQEfuK9bXszNTfYU57z19bw(T80_, 2);
					add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T81_);
				}
				LA78_: ;
			}
			LA74_: ;
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22):
		{
			genTypeInfoAux__DVDUKxJo5CvrWtAaM2iHCw_2(m, t_2, t_2, result, info);
			{
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* markerProc_2;
				tyArray__mrugoXXRZUEeG9bEXo9auBKw T87_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T88_;
				if (!(((tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw) 4) <= (*(*(*m).g).config).selectedGC)) goto LA85_;
				markerProc_2 = genTraverseProc__6ja22UmHW9bFsLaOtztGpHQ(m, origType, sig);
				nimZeroMem((void*)T87_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
				T87_[0] = tiNameForHcr__oXvL9aGYxIh9cO59b845ZGKcA(m, result);
				T87_[1] = markerProc_2;
				T88_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T88_ = percent___NtQEfuK9bXszNTfYU57z19bw(T87_, 2);
				add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T88_);
			}
			LA85_: ;
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 49):
		{
			genTypeInfoAux__DVDUKxJo5CvrWtAaM2iHCw_2(m, t_2, t_2, result, info);
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
		{
			genArrayInfo__TiBDnY33G5Ca1p0Z3BOA9bg(m, t_2, result, info);
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19):
		{
			genSetInfo__TiBDnY33G5Ca1p0Z3BOA9bg_2(m, t_2, result, info);
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14):
		{
			genEnumInfo__TiBDnY33G5Ca1p0Z3BOA9bg_3(m, t_2, result, info);
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17):
		{
			genObjectInfo__DVDUKxJo5CvrWtAaM2iHCw_3(m, t_2, origType, result, info);
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
		{
			genTupleInfo__DVDUKxJo5CvrWtAaM2iHCw(m, t_2, origType, result, info);
		}
		break;
		default:
		{
			NimStringDesc* T96_;
			T96_ = (NimStringDesc*)0;
			T96_ = rawNewString((reprEnum((NI)(*t_2).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*t_2).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 13);
appendString(T96_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_135));
appendString(T96_, reprEnum((NI)(*t_2).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_)));
appendChar(T96_, 41);
			internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, T96_);
		}
		break;
		}
	}
	LA41_: ;
	{
		if (!!(((*t_2).attachedOps[(((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 5))- 0] == NIM_NIL))) goto LA99_;
		genDeepCopyProc__hi0Gu9bcBd9a9cO4KStt3d7iw(m, (*t_2).attachedOps[(((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 5))- 0], result);
	}
	goto LA97_;
	LA99_: ;
	{
		if (!!(((*origType).attachedOps[(((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 5))- 0] == NIM_NIL))) goto LA102_;
		genDeepCopyProc__hi0Gu9bcBd9a9cO4KStt3d7iw(m, (*origType).attachedOps[(((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 5))- 0], result);
	}
	goto LA97_;
	LA102_: ;
	LA97_: ;
	T104_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T104_ = rope__yShmEg9cffWxI7s5XzEKBow(prefixTI);
	T105_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T105_ = amp___ShdZ6VrAQkY0nWR9a39b9bGdQ(T104_, result);
	T106_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T106_ = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
	result = amp___ShdZ6VrAQkY0nWR9a39b9bGdQ(T105_, T106_);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NU64, bitSetToWord__7N9cVgZTBxAgp9c0RZ0w0l9cg)(tySequence__6H5Oh5UUvVCLiakt9aTwtUQ* s, NI size) {
	NU64 result;
	result = (NU64)0;
	result = 0ULL;
	{
		NI j;
		NI i;
		j = (NI)0;
		i = ((NI) 0);
		{
			while (1) {
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_232;
				if (!(i < size)) goto LA3;
				j = i;
				{
					NI T6_;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_231;
					T6_ = (s ? s->Sup.len : 0);
					if (!(j < T6_)) goto LA7_;
					if ((NU)(j) >= (NU)(s ? s->Sup.len : 0)){ raiseIndexError2(j,(s ? s->Sup.len : 0)-1); }
					if (nimMulInt(j, ((NI) 8), &TM__MQdRN7fpbG7rPm4JpVVAhA_231)) { raiseOverflow(); };
					result = (NU64)(result | (NU64)((NU64)(((NU64) (s->data[j]))) << (NU64)((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_231))));
				}
				LA7_: ;
				if (nimAddInt(i, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_232)) { raiseOverflow(); };
				i = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_232);
			} LA3: ;
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genRawSetData__P8T6oQDSZlTI5UtVVMB9c9aw)(tySequence__6H5Oh5UUvVCLiakt9aTwtUQ* cs, NI size) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		NimStringDesc* res;
		if (!(((NI) 8) < size)) goto LA3_;
		res = copyString(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_223));
		{
			NI i;
			NI i_2;
			i = (NI)0;
			i_2 = ((NI) 0);
			{
				while (1) {
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_230;
					if (!(i_2 < size)) goto LA7;
					i = i_2;
					res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_224));
					if ((NU)(i) >= (NU)(cs ? cs->Sup.len : 0)){ raiseIndexError2(i,(cs ? cs->Sup.len : 0)-1); }
					if ((NU)((NU8)((NU8)(cs->data[i]) / (NU8)(((NU8) 16)))) >= (NU)(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_225) ? ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_225)->Sup.len : 0)){ raiseIndexError2((NU8)((NU8)(cs->data[i]) / (NU8)(((NU8) 16))),(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_225) ? ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_225)->Sup.len : 0)-1); }
					res = addChar(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_225)->data[(NU8)((NU8)(cs->data[i]) / (NU8)(((NU8) 16)))]);
					if ((NU)(i) >= (NU)(cs ? cs->Sup.len : 0)){ raiseIndexError2(i,(cs ? cs->Sup.len : 0)-1); }
					if ((NU)((NU8)((NU8)(cs->data[i]) % (NU8)(((NU8) 16)))) >= (NU)(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_225) ? ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_225)->Sup.len : 0)){ raiseIndexError2((NU8)((NU8)(cs->data[i]) % (NU8)(((NU8) 16))),(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_225) ? ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_225)->Sup.len : 0)-1); }
					res = addChar(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_225)->data[(NU8)((NU8)(cs->data[i]) % (NU8)(((NU8) 16)))]);
					{
						NI TM__MQdRN7fpbG7rPm4JpVVAhA_226;
						if (nimSubInt(size, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_226)) { raiseOverflow(); };
						if (!(i < (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_226))) goto LA10_;
						{
							NI TM__MQdRN7fpbG7rPm4JpVVAhA_227;
							if (((NI) 8) == 0){ raiseDivByZero(); }
							if (nimModInt(i, ((NI) 8), &TM__MQdRN7fpbG7rPm4JpVVAhA_227)) { raiseOverflow(); };
							if (!((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_227) == ((NI) 7))) goto LA14_;
							res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_228));
						}
						goto LA12_;
						LA14_: ;
						{
							res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
						}
						LA12_: ;
					}
					goto LA8_;
					LA10_: ;
					{
						res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_229));
					}
					LA8_: ;
					if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_230)) { raiseOverflow(); };
					i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_230);
				} LA7: ;
			}
		}
		result = rope__yShmEg9cffWxI7s5XzEKBow(res);
	}
	goto LA1_;
	LA3_: ;
	{
		NU64 T19_;
		T19_ = (NU64)0;
		T19_ = bitSetToWord__7N9cVgZTBxAgp9c0RZ0w0l9cg(cs, size);
		result = intLiteral__kQA0lBUvzOSZAw7DHC4Fjg(((NI64) (T19_)));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getSeqPayloadType__HPYuz9bvVOGBv0EUX9c74xhg_2)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg check;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T1_;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	nimZeroMem((void*)(&check), sizeof(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg));
	initIntSet__n8oDZMn19bEdodSnrBQB9a1Q((&check));
	T1_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = getTypeDescWeak__zbGAk3tbGBemhAx4n61z3g(m, t, (&check));
	result = amp___Z7W1o5nPSc3ExfO5f7j1Gg(T1_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_65));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genConstSeqV2__qmtU7fqvjfQZWR4m4R9aU1g)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, NIM_BOOL isConst) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* data;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* payload;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* base;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T11_;
	NimStringDesc* res;
	NimStringDesc* T16_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T26_;
	NI T27_;
	NI T32_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T37_;
	tyArray__wqYjTJU9ab2ZgEFMaQc3vNA T38_;
	NI T39_;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	data = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_233));
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T10_;
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_234;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					tyArray__qTjAvTvKF9anytN1At69aJMQ T8_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T9_;
					if (!(((NI) 0) < i)) goto LA6_;
					nimZeroMem((void*)T8_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
					T9_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T9_ = percent___rouofEnBX1ok9aMXmOsKdHg(T8_, 0);
					add__IM4kcMNkkOLJtqdEqSxR8A(&data, T9_);
				}
				LA6_: ;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(i) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
				T10_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T10_ = genBracedInit__zuhkXYLhosH9cERvaWpRX2w(p, (*n)._kind_6.sons->data[i], isConst);
				add__IM4kcMNkkOLJtqdEqSxR8A(&data, T10_);
				if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_234)) { raiseOverflow(); };
				i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_234);
			} LA3: ;
		}
	}
	add__yG4AKzsBRS1W4MANDlXQeg(&data, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_235));
	payload = getTempName__ao6gUnuVfQLtZ89c4kaIKfg((*p).module);
	T11_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T11_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(36134350135273744));
	if ((NU)(((NI) 0)) >= (NU)((*T11_).sons ? (*T11_).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*T11_).sons ? (*T11_).sons->Sup.len : 0)-1); }
	base = (*T11_).sons->data[((NI) 0)];
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA14_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
	}
	LA14_: ;
	res = rawNewString(((NI) 80));
	res = resizeString(res, 7);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_43));
	T16_ = (NimStringDesc*)0;
	{
		if (!isConst) goto LA19_;
		T16_ = copyString(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_183));
	}
	goto LA17_;
	LA19_: ;
	{
		T16_ = ((NimStringDesc*) NIM_NIL);
	}
	LA17_: ;
	cgFormatValue__GOaK9aDgu4cLOYhocodpf3Q((&res), T16_);
	res = resizeString(res, 9);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_236));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA24_;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
	}
	LA24_: ;
	res = resizeString(res, 10);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_237));
	T26_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T26_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, base);
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T26_);
	res = resizeString(res, 6);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_238));
	T27_ = (NI)0;
	T27_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
	cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res), ((NI64) (T27_)));
	res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_239));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA30_;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
	}
	LA30_: ;
	res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_240));
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), payload);
	res = resizeString(res, 4);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_241));
	T32_ = (NI)0;
	T32_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
	cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res), ((NI64) (T32_)));
	res = resizeString(res, 20);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_242));
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), data);
	res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_243));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA35_;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
	}
	LA35_: ;
	T37_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T37_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
	add__IM4kcMNkkOLJtqdEqSxR8A(&(*(*p).module).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], T37_);
	nimZeroMem((void*)T38_, sizeof(tyArray__wqYjTJU9ab2ZgEFMaQc3vNA));
	T39_ = (NI)0;
	T39_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
	T38_[0] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (T39_)));
	T38_[1] = getSeqPayloadType__HPYuz9bvVOGBv0EUX9c74xhg_2((*p).module, t);
	T38_[2] = payload;
	result = percent___C3GQZbey70223GyG307UFg(T38_, 3);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genConstSeq__qmtU7fqvjfQZWR4m4R9aU1g_2)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, NIM_BOOL isConst) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* data;
	tyArray__JiWwrsTRC6xqNlGcBthSVA T1_;
	NI T2_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* base;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T18_;
	NimStringDesc* res;
	NimStringDesc* T23_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T33_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T38_;
	NI T39_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T48_;
	tyArray__mrugoXXRZUEeG9bEXo9auBKw T49_;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	nimZeroMem((void*)T1_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
	T2_ = (NI)0;
	T2_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
	T1_[0] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (T2_)));
	data = percent___yxmLIVRKySYknm2wSBp9cpg(T1_, 1);
	{
		NI T5_;
		T5_ = (NI)0;
		T5_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (!(((NI) 0) < T5_)) goto LA6_;
		add__yG4AKzsBRS1W4MANDlXQeg(&data, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_244));
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T17_;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_245;
					if (!(i_2 < colontmp_)) goto LA10;
					i = i_2;
					{
						tyArray__qTjAvTvKF9anytN1At69aJMQ T15_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T16_;
						if (!(((NI) 0) < i)) goto LA13_;
						nimZeroMem((void*)T15_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
						T16_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T16_ = percent___rouofEnBX1ok9aMXmOsKdHg(T15_, 0);
						add__IM4kcMNkkOLJtqdEqSxR8A(&data, T16_);
					}
					LA13_: ;
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
					T17_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T17_ = genBracedInit__zuhkXYLhosH9cERvaWpRX2w(p, (*n)._kind_6.sons->data[i], isConst);
					add__IM4kcMNkkOLJtqdEqSxR8A(&data, T17_);
					if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_245)) { raiseOverflow(); };
					i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_245);
				} LA10: ;
			}
		}
		add__yG4AKzsBRS1W4MANDlXQeg(&data, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_235));
	}
	LA6_: ;
	add__yG4AKzsBRS1W4MANDlXQeg(&data, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_235));
	result = getTempName__ao6gUnuVfQLtZ89c4kaIKfg((*p).module);
	T18_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T18_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(36134350135273744));
	if ((NU)(((NI) 0)) >= (NU)((*T18_).sons ? (*T18_).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*T18_).sons ? (*T18_).sons->Sup.len : 0)-1); }
	base = (*T18_).sons->data[((NI) 0)];
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA21_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
	}
	LA21_: ;
	res = rawNewString(((NI) 80));
	res = resizeString(res, 7);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_43));
	T23_ = (NimStringDesc*)0;
	{
		if (!isConst) goto LA26_;
		T23_ = copyString(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_246));
	}
	goto LA24_;
	LA26_: ;
	{
		T23_ = ((NimStringDesc*) NIM_NIL);
	}
	LA24_: ;
	cgFormatValue__GOaK9aDgu4cLOYhocodpf3Q((&res), T23_);
	res = resizeString(res, 9);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_236));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA31_;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
	}
	LA31_: ;
	res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_247));
	T33_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T33_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_182));
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T33_);
	res = resizeString(res, 5);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_248));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA36_;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
	}
	LA36_: ;
	res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_247));
	T38_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T38_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, base);
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T38_);
	res = resizeString(res, 6);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_238));
	T39_ = (NI)0;
	T39_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
	cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res), ((NI64) (T39_)));
	res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_239));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA42_;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
	}
	LA42_: ;
	res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_240));
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), result);
	res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_103));
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), data);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_104));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA46_;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
	}
	LA46_: ;
	T48_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T48_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
	add__IM4kcMNkkOLJtqdEqSxR8A(&(*(*p).module).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], T48_);
	nimZeroMem((void*)T49_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
	T49_[0] = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, t);
	T49_[1] = result;
	result = percent___8u7UPO7ZpaMkWoJRtZLlYQ(T49_, 2);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* result) {
	initLoc__qlujIAW86QclHYUVxlHRiQ(result, ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0), e, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	expr__8mAL9ckajemzgfLPfeZVNoQ(p, e, result);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getClosureType__lWDfUH9cj8K8DjyEqo9cmP3A)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* 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;
	{
		if (!!(((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_249));
	}
	LA3_: ;
	nimZeroMem((void*)(&check), sizeof(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg));
	initIntSet__n8oDZMn19bEdodSnrBQB9a1Q((&check));
	result = getTempName__ao6gUnuVfQLtZ89c4kaIKfg(m);
	rettype = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	desc = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	genProcParams__uApDq1rn2zPxULBMpTSrxQ(m, t, &rettype, &desc, (&check), !((kind == ((tyEnum_TClosureTypeKind__cLHRMz1vnpSK0uePy2qbWw) 0))), NIM_FALSE);
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = isImportedType__IafZhvqpthq9b9c13SFhzAOw_2(t);
		if (!!(T7_)) goto LA8_;
		{
			NIM_BOOL T12_;
			tyArray__f7nG5LD47BH5K9c6mASit3g T16_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T17_;
			T12_ = (NIM_BOOL)0;
			T12_ = !(((*t).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 8)));
			if (T12_) goto LA13_;
			T12_ = !((kind == ((tyEnum_TClosureTypeKind__cLHRMz1vnpSK0uePy2qbWw) 2)));
			LA13_: ;
			if (!T12_) goto LA14_;
			nimZeroMem((void*)T16_, sizeof(tyArray__f7nG5LD47BH5K9c6mASit3g));
			T16_[0] = rope__yShmEg9cffWxI7s5XzEKBow(CallingConvToStr__A7GdKVVGtI3pvj9cV9adydpw[((*t).callConv)- 0]);
			T16_[1] = rettype;
			T16_[2] = result;
			T16_[3] = desc;
			T17_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T17_ = percent___Msid9awGKVeVe7p3v7WfNQA(T16_, 4);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 4))- 0], T17_);
		}
		goto LA10_;
		LA14_: ;
		{
			tyArray__wqYjTJU9ab2ZgEFMaQc3vNA T19_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T20_;
			nimZeroMem((void*)T19_, sizeof(tyArray__wqYjTJU9ab2ZgEFMaQc3vNA));
			T19_[0] = result;
			T19_[1] = rettype;
			T19_[2] = desc;
			T20_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T20_ = percent___xyRsdWsGY1DVVispyn0Xeg(T19_, 3);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 4))- 0], T20_);
		}
		LA10_: ;
	}
	LA8_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genNamedConstExpr__zuhkXYLhosH9cERvaWpRX2w_3)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL isConst) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA3_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		result = genBracedInit__zuhkXYLhosH9cERvaWpRX2w(p, (*n)._kind_6.sons->data[((NI) 1)], isConst);
	}
	goto LA1_;
	LA3_: ;
	{
		result = genBracedInit__zuhkXYLhosH9cERvaWpRX2w(p, n, isConst);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genConstSimpleList__zuhkXYLhosH9cERvaWpRX2w_2)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL isConst) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	tyArray__qTjAvTvKF9anytN1At69aJMQ T14_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T15_;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	result = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_20));
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI TM__MQdRN7fpbG7rPm4JpVVAhA_250;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (nimSubInt(T2_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_250)) { raiseOverflow(); };
		colontmp_ = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_250);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyArray__JiWwrsTRC6xqNlGcBthSVA T5_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T6_;
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_251;
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				nimZeroMem((void*)T5_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(i) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
				T5_[0] = genNamedConstExpr__zuhkXYLhosH9cERvaWpRX2w_3(p, (*n)._kind_6.sons->data[i], isConst);
				T6_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T6_ = percent___77dMna2dOod5LqwYkRMZGg(T5_, 1);
				add__IM4kcMNkkOLJtqdEqSxR8A(&result, T6_);
				if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_251)) { raiseOverflow(); };
				i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_251);
			} LA4: ;
		}
	}
	{
		NI T9_;
		NI T12_;
		NI TM__MQdRN7fpbG7rPm4JpVVAhA_252;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T13_;
		T9_ = (NI)0;
		T9_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (!(((NI) 0) < T9_)) goto LA10_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		T12_ = (NI)0;
		T12_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (nimSubInt(T12_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_252)) { raiseOverflow(); };
		if ((NU)((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_252)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_252),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		T13_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T13_ = genNamedConstExpr__zuhkXYLhosH9cERvaWpRX2w_3(p, (*n)._kind_6.sons->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_252)], isConst);
		add__IM4kcMNkkOLJtqdEqSxR8A(&result, T13_);
	}
	LA10_: ;
	nimZeroMem((void*)T14_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
	T15_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T15_ = percent___BYiowJAm8zF7RBRISElaLg(T14_, 0);
	add__IM4kcMNkkOLJtqdEqSxR8A(&result, T15_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, caseObjDefaultBranch__E9aJksCVNSVSpIoSEOSPgZQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* obj, tyObject_Int128__9a9axPfb75jdWY25AamJewkA branch) {
	NI result;
{	result = (NI)0;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(obj);
		i_2 = ((NI) 1);
		{
			while (1) {
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_259;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					NI j;
					NI colontmp__2;
					NI T5_;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_257;
					NI res;
					j = (NI)0;
					colontmp__2 = (NI)0;
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*obj).kind)>>3] &(1U<<((NU)((*obj).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i) >= (NU)((*obj)._kind_6.sons ? (*obj)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*obj)._kind_6.sons ? (*obj)._kind_6.sons->Sup.len : 0)-1); }
					T5_ = (NI)0;
					T5_ = len__P89cqdlERShb9alU3iC0yj8wast((*obj)._kind_6.sons->data[i]);
					if (nimSubInt(T5_, ((NI) 2), &TM__MQdRN7fpbG7rPm4JpVVAhA_257)) { raiseOverflow(); };
					colontmp__2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_257);
					res = ((NI) 0);
					{
						while (1) {
							NI TM__MQdRN7fpbG7rPm4JpVVAhA_258;
							if (!(res <= colontmp__2)) goto LA7;
							j = res;
							{
								tyObject_Int128__9a9axPfb75jdWY25AamJewkA x;
								tyObject_Int128__9a9axPfb75jdWY25AamJewkA y;
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*obj).kind)>>3] &(1U<<((NU)((*obj).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(i) >= (NU)((*obj)._kind_6.sons ? (*obj)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*obj)._kind_6.sons ? (*obj)._kind_6.sons->Sup.len : 0)-1); }
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*obj)._kind_6.sons->data[i]).kind)>>3] &(1U<<((NU)((*(*obj)._kind_6.sons->data[i]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(j) >= (NU)((*(*obj)._kind_6.sons->data[i])._kind_6.sons ? (*(*obj)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(j,((*(*obj)._kind_6.sons->data[i])._kind_6.sons ? (*(*obj)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)-1); }
								if (!((*(*(*obj)._kind_6.sons->data[i])._kind_6.sons->data[j]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA10_;
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*obj).kind)>>3] &(1U<<((NU)((*obj).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(i) >= (NU)((*obj)._kind_6.sons ? (*obj)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*obj)._kind_6.sons ? (*obj)._kind_6.sons->Sup.len : 0)-1); }
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*obj)._kind_6.sons->data[i]).kind)>>3] &(1U<<((NU)((*(*obj)._kind_6.sons->data[i]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(j) >= (NU)((*(*obj)._kind_6.sons->data[i])._kind_6.sons ? (*(*obj)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(j,((*(*obj)._kind_6.sons->data[i])._kind_6.sons ? (*(*obj)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)-1); }
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*(*obj)._kind_6.sons->data[i])._kind_6.sons->data[j]).kind)>>3] &(1U<<((NU)((*(*(*obj)._kind_6.sons->data[i])._kind_6.sons->data[j]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(((NI) 0)) >= (NU)((*(*(*obj)._kind_6.sons->data[i])._kind_6.sons->data[j])._kind_6.sons ? (*(*(*obj)._kind_6.sons->data[i])._kind_6.sons->data[j])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*(*obj)._kind_6.sons->data[i])._kind_6.sons->data[j])._kind_6.sons ? (*(*(*obj)._kind_6.sons->data[i])._kind_6.sons->data[j])._kind_6.sons->Sup.len : 0)-1); }
								x = getOrdValue__GvVg8kpCh7QA2PDTJnFJlQ((*(*(*obj)._kind_6.sons->data[i])._kind_6.sons->data[j])._kind_6.sons->data[((NI) 0)], TM__MQdRN7fpbG7rPm4JpVVAhA_216);
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*obj).kind)>>3] &(1U<<((NU)((*obj).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(i) >= (NU)((*obj)._kind_6.sons ? (*obj)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*obj)._kind_6.sons ? (*obj)._kind_6.sons->Sup.len : 0)-1); }
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*obj)._kind_6.sons->data[i]).kind)>>3] &(1U<<((NU)((*(*obj)._kind_6.sons->data[i]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(j) >= (NU)((*(*obj)._kind_6.sons->data[i])._kind_6.sons ? (*(*obj)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(j,((*(*obj)._kind_6.sons->data[i])._kind_6.sons ? (*(*obj)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)-1); }
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*(*obj)._kind_6.sons->data[i])._kind_6.sons->data[j]).kind)>>3] &(1U<<((NU)((*(*(*obj)._kind_6.sons->data[i])._kind_6.sons->data[j]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(((NI) 1)) >= (NU)((*(*(*obj)._kind_6.sons->data[i])._kind_6.sons->data[j])._kind_6.sons ? (*(*(*obj)._kind_6.sons->data[i])._kind_6.sons->data[j])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*(*(*obj)._kind_6.sons->data[i])._kind_6.sons->data[j])._kind_6.sons ? (*(*(*obj)._kind_6.sons->data[i])._kind_6.sons->data[j])._kind_6.sons->Sup.len : 0)-1); }
								y = getOrdValue__GvVg8kpCh7QA2PDTJnFJlQ((*(*(*obj)._kind_6.sons->data[i])._kind_6.sons->data[j])._kind_6.sons->data[((NI) 1)], TM__MQdRN7fpbG7rPm4JpVVAhA_216);
								{
									NIM_BOOL T14_;
									T14_ = (NIM_BOOL)0;
									T14_ = lteq___7c5Zw7H31uJfWmmhZe9aEqw_2(x, branch);
									if (!(T14_)) goto LA15_;
									T14_ = lteq___7c5Zw7H31uJfWmmhZe9aEqw_2(branch, y);
									LA15_: ;
									if (!T14_) goto LA16_;
									result = i;
									goto BeforeRet_;
								}
								LA16_: ;
							}
							goto LA8_;
							LA10_: ;
							{
								tyObject_Int128__9a9axPfb75jdWY25AamJewkA T19_;
								NIM_BOOL T20_;
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*obj).kind)>>3] &(1U<<((NU)((*obj).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(i) >= (NU)((*obj)._kind_6.sons ? (*obj)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*obj)._kind_6.sons ? (*obj)._kind_6.sons->Sup.len : 0)-1); }
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*obj)._kind_6.sons->data[i]).kind)>>3] &(1U<<((NU)((*(*obj)._kind_6.sons->data[i]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(j) >= (NU)((*(*obj)._kind_6.sons->data[i])._kind_6.sons ? (*(*obj)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(j,((*(*obj)._kind_6.sons->data[i])._kind_6.sons ? (*(*obj)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)-1); }
								T19_ = getOrdValue__GvVg8kpCh7QA2PDTJnFJlQ((*(*obj)._kind_6.sons->data[i])._kind_6.sons->data[j], TM__MQdRN7fpbG7rPm4JpVVAhA_216);
								T20_ = (NIM_BOOL)0;
								T20_ = eqeq___7c5Zw7H31uJfWmmhZe9aEqw(T19_, branch);
								if (!T20_) goto LA21_;
								result = i;
								goto BeforeRet_;
							}
							goto LA8_;
							LA21_: ;
							LA8_: ;
							if (nimAddInt(res, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_258)) { raiseOverflow(); };
							res = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_258);
						} LA7: ;
					}
				}
				{
					NI T25_;
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*obj).kind)>>3] &(1U<<((NU)((*obj).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i) >= (NU)((*obj)._kind_6.sons ? (*obj)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*obj)._kind_6.sons ? (*obj)._kind_6.sons->Sup.len : 0)-1); }
					T25_ = (NI)0;
					T25_ = len__P89cqdlERShb9alU3iC0yj8wast((*obj)._kind_6.sons->data[i]);
					if (!(T25_ == ((NI) 1))) goto LA26_;
					result = i;
					goto BeforeRet_;
				}
				LA26_: ;
				if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_259)) { raiseOverflow(); };
				i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_259);
			} LA3: ;
		}
	}
	{
		if (!NIM_TRUE) goto LA30_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_260));
	}
	LA30_: ;
	}BeforeRet_: ;
	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__zsqmUNR5OZrTUna0Y9bdu9bg(typ, IL64(36134350136322064));
	switch ((*t).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1):
	{
		result = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_264));
	}
	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_129));
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39):
	{
		result = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_265));
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 29):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 26):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21):
	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_266));
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
	{
		{
			if (!(((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 39))&63U)))!=0)) goto LA8_;
			result = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_267));
		}
		goto LA6_;
		LA8_: ;
		{
			result = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_266));
		}
		LA6_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25):
	{
		{
			if (!!(((*t).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 8)))) goto LA14_;
			result = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_266));
		}
		goto LA12_;
		LA14_: ;
		{
			result = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_268));
		}
		LA12_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17):
	{
		NI count;
		count = ((NI) 0);
		add__yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_20));
		getNullValueAuxT__Fl6EeAE3i9aDp1Z4U9aU6eLg(p, t, t, (*t).n, NIM_NIL, &result, (&count), NIM_TRUE, info);
		add__yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_235));
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		result = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_233));
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__5mJADrRYkP3r9auuiuDZN9cQast(t);
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T26_;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_269;
					if (!(i_2 < colontmp_)) goto LA21;
					i = i_2;
					{
						if (!(((NI) 0) < i)) goto LA24_;
						add__yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
					}
					LA24_: ;
					if ((NU)(i) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(i,((*t).sons ? (*t).sons->Sup.len : 0)-1); }
					T26_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T26_ = getDefaultValue__6MJ4xodlafi9aSG537L79bpw(p, (*t).sons->data[i], info);
					add__IM4kcMNkkOLJtqdEqSxR8A(&result, T26_);
					if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_269)) { raiseOverflow(); };
					i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_269);
				} LA21: ;
			}
		}
		add__yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_235));
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
	{
		result = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_233));
		{
			NI i_3;
			NI colontmp__2;
			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T29_;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1); }
			T29_ = lengthOrd__hjogdnp59cMX1rwmjikBhqw_3((*(*(*p).module).g).config, (*t).sons->data[((NI) 0)]);
			colontmp__2 = toInt__TIX0sFuRf3uBpOBltYp7bw(T29_);
			i_4 = ((NI) 0);
			{
				while (1) {
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T36_;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_270;
					if (!(i_4 < colontmp__2)) goto LA31;
					i_3 = i_4;
					{
						if (!(((NI) 0) < i_3)) goto LA34_;
						add__yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
					}
					LA34_: ;
					if ((NU)(((NI) 1)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*t).sons ? (*t).sons->Sup.len : 0)-1); }
					T36_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T36_ = getDefaultValue__6MJ4xodlafi9aSG537L79bpw(p, (*t).sons->data[((NI) 1)], info);
					add__IM4kcMNkkOLJtqdEqSxR8A(&result, T36_);
					if (nimAddInt(i_4, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_270)) { raiseOverflow(); };
					i_4 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_270);
				} LA31: ;
			}
		}
		add__yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_235));
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19):
	{
		{
			tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w T40_;
			T40_ = (tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w)0;
			T40_ = mapType__K9aceyVl15zb9aYN9b6YJ8TnA((*(*(*p).module).g).config, t);
			if (!(T40_ == ((tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w) 17))) goto LA41_;
			result = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_271));
		}
		goto LA38_;
		LA41_: ;
		{
			result = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_129));
		}
		LA38_: ;
	}
	break;
	default:
	{
		NimStringDesc* T45_;
		T45_ = (NimStringDesc*)0;
		T45_ = rawNewString((reprEnum((NI)(*t).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*t).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 32);
appendString(T45_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_272));
appendString(T45_, reprEnum((NI)(*t).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_)));
		globalError__NF6kBGchnhQYPbCedyefVA_2((*(*(*p).module).g).config, info, T45_);
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, getNullValueAux__bDGkqDlpSTLF19cHOigiRwA)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* obj, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* constOrNil, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** result, NI* count, NIM_BOOL isConst, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
{	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;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*obj).kind)>>3] &(1U<<((NU)((*obj).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			colontmp_ = (*obj)._kind_6.sons;
			i = ((NI) 0);
			T3_ = (colontmp_ ? colontmp_->Sup.len : 0);
			L = T3_;
			{
				while (1) {
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_254;
					if (!(i < L)) goto LA5;
					if ((NU)(i) >= (NU)(colontmp_ ? colontmp_->Sup.len : 0)){ raiseIndexError2(i,(colontmp_ ? colontmp_->Sup.len : 0)-1); }
					it = colontmp_->data[i];
					getNullValueAux__bDGkqDlpSTLF19cHOigiRwA(p, t, it, constOrNil, result, count, isConst, info);
					if (nimAddInt(i, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_254)) { raiseOverflow(); };
					i = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_254);
					{
						NI T8_;
						T8_ = (colontmp_ ? colontmp_->Sup.len : 0);
						if (!!((T8_ == L))) goto LA9_;
						failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_26));
					}
					LA9_: ;
				} LA5: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 139):
	{
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA branch;
		NI selectedBranch;
		NI countB;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*obj).kind)>>3] &(1U<<((NU)((*obj).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*obj)._kind_6.sons ? (*obj)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*obj)._kind_6.sons ? (*obj)._kind_6.sons->Sup.len : 0)-1); }
		getNullValueAux__bDGkqDlpSTLF19cHOigiRwA(p, t, (*obj)._kind_6.sons->data[((NI) 0)], constOrNil, result, count, isConst, info);
		{
			if (!(((NI) 0) < (*count))) goto LA14_;
			add__yG4AKzsBRS1W4MANDlXQeg(result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
		}
		LA14_: ;
		chckNil((void*)(&branch));
		nimZeroMem((void*)(&branch), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
		nimCopyMem((void*)branch.udata, (NIM_CONST void*)TM__MQdRN7fpbG7rPm4JpVVAhA_255, sizeof(tyArray__FleBT9cC2nxhgiXmSYYnEKA));
		{
			if (!!((constOrNil == NIM_NIL))) goto LA18_;
			{
				NI i_2;
				NI colontmp__2;
				NI i_3;
				i_2 = (NI)0;
				colontmp__2 = (NI)0;
				colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(constOrNil);
				i_3 = ((NI) 1);
				{
					while (1) {
						NI TM__MQdRN7fpbG7rPm4JpVVAhA_256;
						if (!(i_3 < colontmp__2)) goto LA22;
						i_2 = i_3;
						{
							if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*constOrNil).kind)>>3] &(1U<<((NU)((*constOrNil).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
							if ((NU)(i_2) >= (NU)((*constOrNil)._kind_6.sons ? (*constOrNil)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_2,((*constOrNil)._kind_6.sons ? (*constOrNil)._kind_6.sons->Sup.len : 0)-1); }
							if (!((*(*constOrNil)._kind_6.sons->data[i_2]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA25_;
							{
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*constOrNil).kind)>>3] &(1U<<((NU)((*constOrNil).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(i_2) >= (NU)((*constOrNil)._kind_6.sons ? (*constOrNil)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_2,((*constOrNil)._kind_6.sons ? (*constOrNil)._kind_6.sons->Sup.len : 0)-1); }
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*constOrNil)._kind_6.sons->data[i_2]).kind)>>3] &(1U<<((NU)((*(*constOrNil)._kind_6.sons->data[i_2]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(((NI) 0)) >= (NU)((*(*constOrNil)._kind_6.sons->data[i_2])._kind_6.sons ? (*(*constOrNil)._kind_6.sons->data[i_2])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*constOrNil)._kind_6.sons->data[i_2])._kind_6.sons ? (*(*constOrNil)._kind_6.sons->data[i_2])._kind_6.sons->Sup.len : 0)-1); }
								if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*(*constOrNil)._kind_6.sons->data[i_2])._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*(*constOrNil)._kind_6.sons->data[i_2])._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*obj).kind)>>3] &(1U<<((NU)((*obj).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(((NI) 0)) >= (NU)((*obj)._kind_6.sons ? (*obj)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*obj)._kind_6.sons ? (*obj)._kind_6.sons->Sup.len : 0)-1); }
								if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*obj)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*obj)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
								if (!((*(*(*(*(*constOrNil)._kind_6.sons->data[i_2])._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).Sup.id == (*(*(*(*obj)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).Sup.id)) goto LA29_;
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*constOrNil).kind)>>3] &(1U<<((NU)((*constOrNil).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(i_2) >= (NU)((*constOrNil)._kind_6.sons ? (*constOrNil)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_2,((*constOrNil)._kind_6.sons ? (*constOrNil)._kind_6.sons->Sup.len : 0)-1); }
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*constOrNil)._kind_6.sons->data[i_2]).kind)>>3] &(1U<<((NU)((*(*constOrNil)._kind_6.sons->data[i_2]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(((NI) 1)) >= (NU)((*(*constOrNil)._kind_6.sons->data[i_2])._kind_6.sons ? (*(*constOrNil)._kind_6.sons->data[i_2])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*(*constOrNil)._kind_6.sons->data[i_2])._kind_6.sons ? (*(*constOrNil)._kind_6.sons->data[i_2])._kind_6.sons->Sup.len : 0)-1); }
								branch = getOrdValue__GvVg8kpCh7QA2PDTJnFJlQ((*(*constOrNil)._kind_6.sons->data[i_2])._kind_6.sons->data[((NI) 1)], TM__MQdRN7fpbG7rPm4JpVVAhA_216);
								goto LA20;
							}
							LA29_: ;
						}
						goto LA23_;
						LA25_: ;
						{
							if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*obj).kind)>>3] &(1U<<((NU)((*obj).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
							if ((NU)(((NI) 0)) >= (NU)((*obj)._kind_6.sons ? (*obj)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*obj)._kind_6.sons ? (*obj)._kind_6.sons->Sup.len : 0)-1); }
							if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*obj)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*obj)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
							if (!(i_2 == (*(*(*obj)._kind_6.sons->data[((NI) 0)])._kind_4.sym).position)) goto LA32_;
							if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*constOrNil).kind)>>3] &(1U<<((NU)((*constOrNil).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
							if ((NU)(i_2) >= (NU)((*constOrNil)._kind_6.sons ? (*constOrNil)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_2,((*constOrNil)._kind_6.sons ? (*constOrNil)._kind_6.sons->Sup.len : 0)-1); }
							branch = getOrdValue__GvVg8kpCh7QA2PDTJnFJlQ((*constOrNil)._kind_6.sons->data[i_2], TM__MQdRN7fpbG7rPm4JpVVAhA_216);
							goto LA20;
						}
						goto LA23_;
						LA32_: ;
						LA23_: ;
						if (nimAddInt(i_3, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_256)) { raiseOverflow(); };
						i_3 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_256);
					} LA22: ;
				}
			} LA20: ;
		}
		LA18_: ;
		selectedBranch = caseObjDefaultBranch__E9aJksCVNSVSpIoSEOSPgZQ(obj, branch);
		add__yG4AKzsBRS1W4MANDlXQeg(result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_20));
		countB = ((NI) 0);
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*obj).kind)>>3] &(1U<<((NU)((*obj).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(selectedBranch) >= (NU)((*obj)._kind_6.sons ? (*obj)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(selectedBranch,((*obj)._kind_6.sons ? (*obj)._kind_6.sons->Sup.len : 0)-1); }
		b = lastSon__UPSW0jLTX5qJL51YMUAHgw((*obj)._kind_6.sons->data[selectedBranch]);
		{
			NIM_BOOL T36_;
			NI T38_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T41_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T42_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T43_;
			NimStringDesc* T44_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T45_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T46_;
			T36_ = (NIM_BOOL)0;
			T36_ = ((*b).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138));
			if (!(T36_)) goto LA37_;
			T38_ = (NI)0;
			T38_ = len__P89cqdlERShb9alU3iC0yj8wast(b);
			T36_ = (((NI) 0) < T38_);
			LA37_: ;
			if (!T36_) goto LA39_;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*obj).kind)>>3] &(1U<<((NU)((*obj).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*obj)._kind_6.sons ? (*obj)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*obj)._kind_6.sons ? (*obj)._kind_6.sons->Sup.len : 0)-1); }
			if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*obj)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*obj)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
			T41_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T41_ = mangleRecFieldName__HzLa9cY9ad9bp8c63DnHIEfWA((*p).module, (*(*obj)._kind_6.sons->data[((NI) 0)])._kind_4.sym);
			T42_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T42_ = amp___4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_261), T41_);
			T43_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T43_ = amp___Z7W1o5nPSc3ExfO5f7j1Gg(T42_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_3));
			T44_ = (NimStringDesc*)0;
			T44_ = nimIntToStr(selectedBranch);
			T45_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T45_ = amp___Z7W1o5nPSc3ExfO5f7j1Gg(T43_, T44_);
			T46_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T46_ = amp___Z7W1o5nPSc3ExfO5f7j1Gg(T45_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_241));
			add__IM4kcMNkkOLJtqdEqSxR8A(result, T46_);
			getNullValueAux__bDGkqDlpSTLF19cHOigiRwA(p, t, b, constOrNil, result, (&countB), isConst, info);
			add__yG4AKzsBRS1W4MANDlXQeg(result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_235));
		}
		goto LA34_;
		LA39_: ;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T50_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T51_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T52_;
			if (!((*b).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA48_;
			if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
			T50_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T50_ = mangleRecFieldName__HzLa9cY9ad9bp8c63DnHIEfWA((*p).module, (*b)._kind_4.sym);
			T51_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T51_ = amp___4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_126), T50_);
			T52_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T52_ = amp___Z7W1o5nPSc3ExfO5f7j1Gg(T51_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_103));
			add__IM4kcMNkkOLJtqdEqSxR8A(result, T52_);
			getNullValueAux__bDGkqDlpSTLF19cHOigiRwA(p, t, b, constOrNil, result, (&countB), isConst, info);
		}
		goto LA34_;
		LA48_: ;
		LA34_: ;
		add__yG4AKzsBRS1W4MANDlXQeg(result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_235));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		NI TM__MQdRN7fpbG7rPm4JpVVAhA_262;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* field;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T78_;
		{
			if (!(((NI) 0) < (*count))) goto LA56_;
			add__yG4AKzsBRS1W4MANDlXQeg(result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
		}
		LA56_: ;
		if (nimAddInt((*count), ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_262)) { raiseOverflow(); };
		(*count) = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_262);
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*obj).kind)>>3] &(1U<<((NU)((*obj).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
		field = (*obj)._kind_4.sym;
		{
			if (!!((constOrNil == NIM_NIL))) goto LA60_;
			{
				NI i_4;
				NI colontmp__3;
				NI i_5;
				i_4 = (NI)0;
				colontmp__3 = (NI)0;
				colontmp__3 = len__P89cqdlERShb9alU3iC0yj8wast(constOrNil);
				i_5 = ((NI) 1);
				{
					while (1) {
						NI TM__MQdRN7fpbG7rPm4JpVVAhA_263;
						if (!(i_5 < colontmp__3)) goto LA64;
						i_4 = i_5;
						{
							if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*constOrNil).kind)>>3] &(1U<<((NU)((*constOrNil).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
							if ((NU)(i_4) >= (NU)((*constOrNil)._kind_6.sons ? (*constOrNil)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_4,((*constOrNil)._kind_6.sons ? (*constOrNil)._kind_6.sons->Sup.len : 0)-1); }
							if (!((*(*constOrNil)._kind_6.sons->data[i_4]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA67_;
							{
								tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T73_;
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*constOrNil).kind)>>3] &(1U<<((NU)((*constOrNil).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(i_4) >= (NU)((*constOrNil)._kind_6.sons ? (*constOrNil)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_4,((*constOrNil)._kind_6.sons ? (*constOrNil)._kind_6.sons->Sup.len : 0)-1); }
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*constOrNil)._kind_6.sons->data[i_4]).kind)>>3] &(1U<<((NU)((*(*constOrNil)._kind_6.sons->data[i_4]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(((NI) 0)) >= (NU)((*(*constOrNil)._kind_6.sons->data[i_4])._kind_6.sons ? (*(*constOrNil)._kind_6.sons->data[i_4])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*constOrNil)._kind_6.sons->data[i_4])._kind_6.sons ? (*(*constOrNil)._kind_6.sons->data[i_4])._kind_6.sons->Sup.len : 0)-1); }
								if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*(*constOrNil)._kind_6.sons->data[i_4])._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*(*constOrNil)._kind_6.sons->data[i_4])._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
								if (!((*(*(*(*(*constOrNil)._kind_6.sons->data[i_4])._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).Sup.id == (*(*field).name).Sup.id)) goto LA71_;
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*constOrNil).kind)>>3] &(1U<<((NU)((*constOrNil).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(i_4) >= (NU)((*constOrNil)._kind_6.sons ? (*constOrNil)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_4,((*constOrNil)._kind_6.sons ? (*constOrNil)._kind_6.sons->Sup.len : 0)-1); }
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*constOrNil)._kind_6.sons->data[i_4]).kind)>>3] &(1U<<((NU)((*(*constOrNil)._kind_6.sons->data[i_4]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(((NI) 1)) >= (NU)((*(*constOrNil)._kind_6.sons->data[i_4])._kind_6.sons ? (*(*constOrNil)._kind_6.sons->data[i_4])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*(*constOrNil)._kind_6.sons->data[i_4])._kind_6.sons ? (*(*constOrNil)._kind_6.sons->data[i_4])._kind_6.sons->Sup.len : 0)-1); }
								T73_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
								T73_ = genBracedInit__zuhkXYLhosH9cERvaWpRX2w(p, (*(*constOrNil)._kind_6.sons->data[i_4])._kind_6.sons->data[((NI) 1)], isConst);
								add__IM4kcMNkkOLJtqdEqSxR8A(result, T73_);
								goto BeforeRet_;
							}
							LA71_: ;
						}
						goto LA65_;
						LA67_: ;
						{
							tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T77_;
							if (!(i_4 == (*field).position)) goto LA75_;
							if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*constOrNil).kind)>>3] &(1U<<((NU)((*constOrNil).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
							if ((NU)(i_4) >= (NU)((*constOrNil)._kind_6.sons ? (*constOrNil)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_4,((*constOrNil)._kind_6.sons ? (*constOrNil)._kind_6.sons->Sup.len : 0)-1); }
							T77_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
							T77_ = genBracedInit__zuhkXYLhosH9cERvaWpRX2w(p, (*constOrNil)._kind_6.sons->data[i_4], isConst);
							add__IM4kcMNkkOLJtqdEqSxR8A(result, T77_);
							goto BeforeRet_;
						}
						goto LA65_;
						LA75_: ;
						LA65_: ;
						if (nimAddInt(i_5, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_263)) { raiseOverflow(); };
						i_5 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_263);
					} LA64: ;
				}
			}
		}
		LA60_: ;
		T78_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T78_ = getDefaultValue__6MJ4xodlafi9aSG537L79bpw(p, (*field).typ, info);
		add__IM4kcMNkkOLJtqdEqSxR8A(result, T78_);
	}
	break;
	default:
	{
		NimStringDesc* T80_;
		NimStringDesc* T81_;
		T80_ = (NimStringDesc*)0;
		T81_ = (NimStringDesc*)0;
		T81_ = dollar___qX5C9b0n9bOP7jk69amC8dA7A(obj);
		T80_ = rawNewString((T81_ ? T81_->Sup.len : 0) + 32);
appendString(T80_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_272));
appendString(T80_, T81_);
		localError__NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, info, T80_);
	}
	break;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, getNullValueAuxT__Fl6EeAE3i9aDp1Z4U9aU6eLg)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* orig, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* obj, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* constOrNil, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** result, NI* count, NIM_BOOL isConst, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* base;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* oldRes;
	NI oldcount;
	if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1); }
	base = (*t).sons->data[((NI) 0)];
	oldRes = (*result);
	oldcount = (*count);
	{
		if (!!((base == NIM_NIL))) goto LA3_;
		add__yG4AKzsBRS1W4MANDlXQeg(result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_20));
		base = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(base, IL64(36275087638268176));
		getNullValueAuxT__Fl6EeAE3i9aDp1Z4U9aU6eLg(p, orig, base, (*base).n, constOrNil, result, count, isConst, info);
		add__yG4AKzsBRS1W4MANDlXQeg(result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_235));
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T6_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T9_;
		NI TM__MQdRN7fpbG7rPm4JpVVAhA_253;
		T6_ = (NIM_BOOL)0;
		T6_ = isObjLackingTypeField__kS4QQNg40ThwD2ps8HD9aQgcgen(t);
		if (!!(T6_)) goto LA7_;
		T9_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T9_ = genTypeInfo__BeEYMOjEPJinzbFpsfTaZg((*p).module, orig, (*obj).info);
		add__IM4kcMNkkOLJtqdEqSxR8A(result, T9_);
		if (nimAddInt((*count), ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_253)) { raiseOverflow(); };
		(*count) = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_253);
	}
	goto LA1_;
	LA7_: ;
	LA1_: ;
	getNullValueAux__bDGkqDlpSTLF19cHOigiRwA(p, t, obj, constOrNil, result, count, isConst, info);
	{
		if (!(oldcount == (*count))) goto LA12_;
		unsureAsgnRef((void**) (&(*result)), oldRes);
	}
	LA12_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genConstObjConstr__zuhkXYLhosH9cERvaWpRX2w_4)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL isConst) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	NI count;
	tyArray__JiWwrsTRC6xqNlGcBthSVA T5_;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	result = NIM_NIL;
	t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36134350135273744));
	count = ((NI) 0);
	{
		if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17))) goto LA3_;
		getNullValueAuxT__Fl6EeAE3i9aDp1Z4U9aU6eLg(p, t, t, (*t).n, n, &result, (&count), isConst, (*n).info);
	}
	LA3_: ;
	nimZeroMem((void*)T5_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
	T5_[0] = result;
	result = percent___dnB3So2xw9c189c09a9cc9b4hxA(T5_, 1);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genStringLiteralV2Const__Cfuh3qIr16gdBtlWztnjAQ_2)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL isConst) {
	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_;
		pureLit = getTempName__ao6gUnuVfQLtZ89c4kaIKfg(m);
		T5_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T5_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_184));
		(void)(T5_);
		T6_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T6_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_185));
		(void)(T6_);
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_91[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_92)); }
		genStringLiteralDataOnlyV2__vp7GP3wlFybjCJ5ExVrrhg(m, (*n)._kind_3.strVal, pureLit, isConst);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T8_;
		T8_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T8_ = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (id)));
		pureLit = amp___ShdZ6VrAQkY0nWR9a39b9bGdQ((*m).tmpBase, T8_);
	}
	LA1_: ;
	nimZeroMem((void*)T9_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
	if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_91[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_92)); }
	T9_[0] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (((*n)._kind_3.strVal ? (*n)._kind_3.strVal->Sup.len : 0))));
	T9_[1] = pureLit;
	result = percent___r2gXVULKoAtQjkgjf0Z4wg(T9_, 2);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genBracedInit__zuhkXYLhosH9cERvaWpRX2w)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL isConst) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
	{
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		result = genBracedInit__zuhkXYLhosH9cERvaWpRX2w(p, (*n)._kind_6.sons->data[((NI) 1)], isConst);
	}
	break;
	default:
	{
		tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag ty;
		ty = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0);
		{
			if (!((*n).typ == NIM_NIL)) goto LA5_;
			{
				if (!((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22))) goto LA9_;
				ty = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28);
			}
			goto LA7_;
			LA9_: ;
			{
				internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_222));
			}
			LA7_: ;
		}
		goto LA3_;
		LA5_: ;
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T13_;
			T13_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T13_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(1189055854742120720));
			ty = (*T13_).kind;
		}
		LA3_: ;
		switch (ty) {
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19):
		{
			tySequence__6H5Oh5UUvVCLiakt9aTwtUQ* cs;
			NI64 T15_;
			cs = (tySequence__6H5Oh5UUvVCLiakt9aTwtUQ*)0;
			toBitSet__WoVO5FKglpQIWZt87zKYXA((*(*(*p).module).g).config, n, (&cs));
			T15_ = (NI64)0;
			T15_ = getSize__vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, (*n).typ);
			if ((T15_) < ((NI) (-2147483647 -1)) || (T15_) > ((NI) 2147483647)){ raiseRangeErrorI(T15_, ((NI) (-2147483647 -1)), ((NI) 2147483647)); }
			result = genRawSetData__P8T6oQDSZlTI5UtVVMB9c9aw(cs, ((NI) (T15_)));
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
		{
			{
				if (!(((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 39))&63U)))!=0)) goto LA19_;
				result = genConstSeqV2__qmtU7fqvjfQZWR4m4R9aU1g(p, n, (*n).typ, isConst);
			}
			goto LA17_;
			LA19_: ;
			{
				result = genConstSeq__qmtU7fqvjfQZWR4m4R9aU1g_2(p, n, (*n).typ, isConst);
			}
			LA17_: ;
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25):
		{
			{
				NIM_BOOL T25_;
				NIM_BOOL T26_;
				NI T28_;
				T25_ = (NIM_BOOL)0;
				T26_ = (NIM_BOOL)0;
				T26_ = ((*(*n).typ).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 8));
				if (!(T26_)) goto LA27_;
				T28_ = (NI)0;
				T28_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
				T26_ = (((NI) 1) < T28_);
				LA27_: ;
				T25_ = T26_;
				if (!(T25_)) goto LA29_;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
				T25_ = ((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23));
				LA29_: ;
				if (!T25_) goto LA30_;
				{
					tyArray__qTjAvTvKF9anytN1At69aJMQ T36_;
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
					if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA34_;
					nimZeroMem((void*)T36_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
					result = percent___xXT7cKE1NTiL4U2MdlA2yQ(T36_, 0);
				}
				goto LA32_;
				LA34_: ;
				{
					tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA d;
					tyArray__mrugoXXRZUEeG9bEXo9auBKw T38_;
					nimZeroMem((void*)(&d), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
					initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n)._kind_6.sons->data[((NI) 0)], (&d));
					nimZeroMem((void*)T38_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
					T38_[0] = getClosureType__lWDfUH9cj8K8DjyEqo9cmP3A((*p).module, (*n).typ, ((tyEnum_TClosureTypeKind__cLHRMz1vnpSK0uePy2qbWw) 1));
					T38_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(d);
					result = percent___44q9ak51X9b9bmuZ9cK4LsFWOg(T38_, 2);
				}
				LA32_: ;
			}
			goto LA23_;
			LA30_: ;
			{
				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);
			}
			LA23_: ;
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48):
		{
			result = genConstSimpleList__zuhkXYLhosH9cERvaWpRX2w_2(p, n, isConst);
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17):
		{
			result = genConstObjConstr__zuhkXYLhosH9cERvaWpRX2w_4(p, n, isConst);
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 29):
		{
			{
				NIM_BOOL T45_;
				NIM_BOOL T46_;
				T45_ = (NIM_BOOL)0;
				T46_ = (NIM_BOOL)0;
				T46_ = (((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 39))&63U)))!=0);
				if (!(T46_)) goto LA47_;
				T46_ = !(((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23)));
				LA47_: ;
				T45_ = T46_;
				if (!(T45_)) goto LA48_;
				T45_ = (ty == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28));
				LA48_: ;
				if (!T45_) goto LA49_;
				result = genStringLiteralV2Const__Cfuh3qIr16gdBtlWztnjAQ_2((*p).module, n, isConst);
			}
			goto LA43_;
			LA49_: ;
			{
				tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA d_3;
				nimZeroMem((void*)(&d_3), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
				initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, n, (&d_3));
				result = rdLoc__xidyzuHqIciXbQyEOKahDg(d_3);
			}
			LA43_: ;
		}
		break;
		default:
		{
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA d_4;
			nimZeroMem((void*)(&d_4), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, n, (&d_4));
			result = rdLoc__xidyzuHqIciXbQyEOKahDg(d_4);
		}
		break;
		}
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawConstExpr__8mAL9ckajemzgfLPfeZVNoQ_2)(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* T2_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T3_;
	t = (*n).typ;
	T1_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, t);
	(void)(T1_);
	id = nodeTableTestOrSet__tWmKJP7glBWLCISQFGGk2Q((&(*(*p).module).dataCache), n, ((NI) ((*(*p).module).labels)));
	T2_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (id)));
	T3_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T3_ = amp___ShdZ6VrAQkY0nWR9a39b9bGdQ((*(*p).module).tmpBase, T2_);
	fillLoc__o49bXuxJYpCizOgQ54UViIg(d, ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 8), n, T3_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 1));
	{
		NI TM__MQdRN7fpbG7rPm4JpVVAhA_221;
		tyArray__wqYjTJU9ab2ZgEFMaQc3vNA T8_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T9_;
		if (!(id == ((NI) ((*(*p).module).labels)))) goto LA6_;
		if (nimAddInt((*(*p).module).labels, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_221)) { raiseOverflow(); };
		if (TM__MQdRN7fpbG7rPm4JpVVAhA_221 < 0 || TM__MQdRN7fpbG7rPm4JpVVAhA_221 > 2147483647){ raiseOverflow(); }
		(*(*p).module).labels = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_221);
		nimZeroMem((void*)T8_, sizeof(tyArray__wqYjTJU9ab2ZgEFMaQc3vNA));
		T8_[0] = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, t);
		T8_[1] = (*d).r;
		T8_[2] = genBracedInit__zuhkXYLhosH9cERvaWpRX2w(p, n, NIM_TRUE);
		T9_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T9_ = percent___bJpxHYPJaxWBQn6QxwBA4w(T8_, 3);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*(*p).module).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], T9_);
	}
	LA6_: ;
}
static N_INLINE(NIM_BOOL, usesWriteBarrier__TzsgO9bY9cwAf4hwmbs7dTmg_2options)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = (((tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw) 8) <= (*conf).selectedGC);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genRefAssign__jdslQ8TsNpkTt8SvBLJjEA)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA dest, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA src) {
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NIM_BOOL T7_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T10_;
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T15_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T16_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T21_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T22_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = (dest.storage == ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 2));
		if (!(T4_)) goto LA5_;
		T4_ = !(((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw) 10)));
		LA5_: ;
		T3_ = T4_;
		if (T3_) goto LA6_;
		T7_ = (NIM_BOOL)0;
		T7_ = usesWriteBarrier__TzsgO9bY9cwAf4hwmbs7dTmg_2options((*(*(*p).module).g).config);
		T3_ = !(T7_);
		LA6_: ;
		if (!T3_) goto LA8_;
		T10_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T10_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA13_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA13_: ;
		res = rawNewString(((NI) 80));
		T15_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T15_ = rdLoc__xidyzuHqIciXbQyEOKahDg(dest);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T15_);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_103));
		T16_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T16_ = rdLoc__xidyzuHqIciXbQyEOKahDg(src);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T16_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_104));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA19_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA19_: ;
		T21_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T21_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
		T22_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T22_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T21_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T10_, T22_);
	}
	goto LA1_;
	LA8_: ;
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T26_;
		NimStringDesc* res_2;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T31_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T32_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T33_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T38_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T39_;
		if (!(dest.storage == ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 3))) goto LA24_;
		T26_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T26_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA29_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA29_: ;
		res_2 = rawNewString(((NI) 80));
		T31_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T31_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_275));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T31_);
		res_2 = resizeString(res_2, 10);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_276));
		T32_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T32_ = addrLoc__9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, dest);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T32_);
		res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
		T33_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T33_ = rdLoc__xidyzuHqIciXbQyEOKahDg(src);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T33_);
		res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA36_;
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA36_: ;
		T38_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T38_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
		T39_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T39_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T38_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T26_, T39_);
	}
	goto LA1_;
	LA24_: ;
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T41_;
		NimStringDesc* res_3;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T46_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T47_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T48_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T53_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T54_;
		T41_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T41_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA44_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA44_: ;
		res_3 = rawNewString(((NI) 80));
		T46_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T46_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_277));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T46_);
		res_3 = resizeString(res_3, 10);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_276));
		T47_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T47_ = addrLoc__9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, dest);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T47_);
		res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
		T48_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T48_ = rdLoc__xidyzuHqIciXbQyEOKahDg(src);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T48_);
		res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA51_;
			res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA51_: ;
		T53_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T53_ = rope__yShmEg9cffWxI7s5XzEKBow(res_3);
		T54_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T54_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T53_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T41_, T54_);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genGenericAsgn__BtucsTdHw7orsXIL75hNVg_2)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA dest, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA src, tySet_tyEnum_TAssignmentFlag__Kd9aFyBNhxSsWFh1Km9a2hMw flags) {
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T5_;
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T10_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T11_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T16_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T17_;
		if (!(((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 39))&63U)))!=0)) goto LA3_;
		T5_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T5_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA8_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA8_: ;
		res = rawNewString(((NI) 80));
		T10_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T10_ = rdLoc__xidyzuHqIciXbQyEOKahDg(dest);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T10_);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_103));
		T11_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T11_ = rdLoc__xidyzuHqIciXbQyEOKahDg(src);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T11_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_104));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA14_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA14_: ;
		T16_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T16_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
		T17_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T17_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T16_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T5_, T17_);
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T19_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T21_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T22_;
		T19_ = (NIM_BOOL)0;
		T19_ = !(((flags &(1U<<((NU)(((tyEnum_TAssignmentFlag__Kd9aFyBNhxSsWFh1Km9a2hMw) 0))&7U)))!=0));
		if (T19_) goto LA20_;
		T21_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T21_ = t__XNOXh7uniWNgiq58C9bW49awcgen(dest);
		T22_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T22_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(T21_, IL64(36134350144710928));
		T19_ = (((*T22_).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 6))&63U)))!=0);
		LA20_: ;
		if (!T19_) goto LA23_;
		{
			NIM_BOOL T27_;
			NIM_BOOL T28_;
			NIM_BOOL T31_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T34_;
			NimStringDesc* res_2;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T39_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T40_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T41_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T42_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T47_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T48_;
			T27_ = (NIM_BOOL)0;
			T28_ = (NIM_BOOL)0;
			T28_ = (dest.storage == ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 2));
			if (!(T28_)) goto LA29_;
			T28_ = !(((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw) 10)));
			LA29_: ;
			T27_ = T28_;
			if (T27_) goto LA30_;
			T31_ = (NIM_BOOL)0;
			T31_ = usesWriteBarrier__TzsgO9bY9cwAf4hwmbs7dTmg_2options((*(*(*p).module).g).config);
			T27_ = !(T31_);
			LA30_: ;
			if (!T27_) goto LA32_;
			T34_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T34_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA37_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA37_: ;
			res_2 = rawNewString(((NI) 80));
			T39_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T39_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_273));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T39_);
			res_2 = resizeString(res_2, 8);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_111));
			T40_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T40_ = addrLoc__9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, dest);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T40_);
			res_2 = resizeString(res_2, 19);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_278));
			T41_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T41_ = addrLoc__9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, src);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T41_);
			res_2 = resizeString(res_2, 9);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_113));
			T42_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T42_ = rdLoc__xidyzuHqIciXbQyEOKahDg(dest);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T42_);
			res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_114));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA45_;
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA45_: ;
			T47_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T47_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
			T48_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T48_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T47_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T34_, T48_);
		}
		goto LA25_;
		LA32_: ;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T50_;
			NimStringDesc* res_3;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T55_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T56_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T57_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T58_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T59_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T64_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T65_;
			T50_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T50_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA53_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA53_: ;
			res_3 = rawNewString(((NI) 80));
			T55_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T55_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_279));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T55_);
			res_3 = resizeString(res_3, 8);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_111));
			T56_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T56_ = addrLoc__9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, dest);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T56_);
			res_3 = resizeString(res_3, 9);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_280));
			T57_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T57_ = addrLoc__9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, src);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T57_);
			res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
			T58_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T58_ = t__XNOXh7uniWNgiq58C9bW49awcgen(dest);
			T59_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T59_ = genTypeInfo__BeEYMOjEPJinzbFpsfTaZg((*p).module, T58_, (*dest.lode).info);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T59_);
			res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA62_;
				res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA62_: ;
			T64_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T64_ = rope__yShmEg9cffWxI7s5XzEKBow(res_3);
			T65_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T65_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T64_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T50_, T65_);
		}
		LA25_: ;
	}
	goto LA1_;
	LA23_: ;
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T67_;
		NimStringDesc* res_4;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T72_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T73_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T74_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T75_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T76_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T81_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T82_;
		T67_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T67_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA70_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA70_: ;
		res_4 = rawNewString(((NI) 80));
		T72_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T72_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_281));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T72_);
		res_4 = resizeString(res_4, 8);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_111));
		T73_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T73_ = addrLoc__9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, dest);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T73_);
		res_4 = resizeString(res_4, 9);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_280));
		T74_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T74_ = addrLoc__9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, src);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T74_);
		res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
		T75_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T75_ = t__XNOXh7uniWNgiq58C9bW49awcgen(dest);
		T76_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T76_ = genTypeInfo__BeEYMOjEPJinzbFpsfTaZg((*p).module, T75_, (*dest.lode).info);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T76_);
		res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA79_;
			res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA79_: ;
		T81_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T81_ = rope__yShmEg9cffWxI7s5XzEKBow(res_4);
		T82_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T82_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T81_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T67_, T82_);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, canMove__b5Hq2LPdi5DP1QFBXQYNdA)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA dest) {
	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__sjm2oD6Aq9cG39aPE7CTvtmA(n, NIM_FALSE);
			T7_ = !(T8_);
			if (T7_) goto LA9_;
			T10_ = (NI)0;
			T10_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			T7_ = (T10_ == ((NI) 0));
			LA9_: ;
			if (!T7_) goto LA11_;
			{
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T15_;
				T15_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T15_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36134350144710928));
				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) 27))&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_;
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_91[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_92)); }
		T19_ = (((*n)._kind_3.strVal ? (*n)._kind_3.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* T5_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T6_;
	chckNil((void*)Result);
	(*Result).k = 0;
	(*Result).storage = 0;
	unsureAsgnRef((void**)&(*Result).lode, NIM_NIL);
	unsureAsgnRef((void**)&(*Result).r, NIM_NIL);
	{
		if (!!(!((field == NIM_NIL)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_288));
	}
	LA3_: ;
	(*Result).k = ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 5);
	(*Result).storage = a.storage;
	unsureAsgnRef((void**) (&(*Result).lode), lodeTyp__Zo4XKVi6BmwOZE51Yogqwg(t));
	T5_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T5_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
	T6_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T6_ = amp___Z7W1o5nPSc3ExfO5f7j1Gg(T5_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_126));
	unsureAsgnRef((void**) (&(*Result).r), amp___ShdZ6VrAQkY0nWR9a39b9bGdQ(T6_, field));
}
N_LIB_PRIVATE N_NIMCALL(void, genOptAsgnTuple__BtucsTdHw7orsXIL75hNVg_3)(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__XNOXh7uniWNgiq58C9bW49awcgen(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__XNOXh7uniWNgiq58C9bW49awcgen(dest);
	t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(T10_, IL64(36134350135273744));
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__5mJADrRYkP3r9auuiuDZN9cQast(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_;
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_292;
				if (!(i_2 < colontmp_)) goto LA13;
				i = i_2;
				if ((NU)(i) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(i,((*t).sons ? (*t).sons->Sup.len : 0)-1); }
				t_2 = (*t).sons->data[i];
				nimZeroMem((void*)T14_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
				T14_[0] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (i)));
				field = percent___ym0Pr6z8A9ajyOAgotpd9a9bw(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(p, T15_, T16_, newflags);
				if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_292)) { raiseOverflow(); };
				i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_292);
			} LA13: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(NI, asgnComplexity__jQZhYDteQXOIUBRG4iLXPQ)(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__P89cqdlERShb9alU3iC0yj8w_2ast(n);
					i_2 = ((NI) 0);
					{
						while (1) {
							NI T12_;
							NI TM__MQdRN7fpbG7rPm4JpVVAhA_293;
							NI TM__MQdRN7fpbG7rPm4JpVVAhA_294;
							if (!(i_2 < colontmp_)) goto LA11;
							i = i_2;
							if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
							if ((NU)(i) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
							t = (*n)._kind_6.sons->data[i];
							T12_ = (NI)0;
							T12_ = asgnComplexity__jQZhYDteQXOIUBRG4iLXPQ(t);
							if (nimAddInt(result, T12_, &TM__MQdRN7fpbG7rPm4JpVVAhA_293)) { raiseOverflow(); };
							result = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_293);
							if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_294)) { raiseOverflow(); };
							i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_294);
						} 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__XNOXh7uniWNgiq58C9bW49awcgen(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_;
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
		field = (*t)._kind_4.sym;
		{
			if (!((*field).loc.r == NIM_NIL)) goto LA17_;
			fillObjectFields__4q3XOfd3NI3C8cSNkaF9cWA_2((*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(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__P89cqdlERShb9alU3iC0yj8w_2ast(t);
				i_2 = ((NI) 0);
				{
					while (1) {
						NI TM__MQdRN7fpbG7rPm4JpVVAhA_297;
						if (!(i_2 < colontmp_)) goto LA25;
						i = i_2;
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if ((NU)(i) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
						child = (*t)._kind_6.sons->data[i];
						genOptAsgnObject__9aKtDk9aj0NeiT1dC7eBiRKw(p, dest, src, newflags, child, typ);
						if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_297)) { raiseOverflow(); };
						i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_297);
					} LA25: ;
				}
			}
		}
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
}
static N_INLINE(NI, toLinenumber__6D4Rmpw7LpcRI1j7CMqEsAmsgs)(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	NI result;
	result = (NI)0;
	result = ((NI) (info.line));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, safeLineNm__cb5f0VvvxoagMath9ay3UuQ)(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	NI result;
	result = (NI)0;
	result = toLinenumber__6D4Rmpw7LpcRI1j7CMqEsAmsgs(info);
	{
		if (!(result < ((NI) 0))) goto LA3_;
		result = ((NI) 0);
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genAssignment__BtucsTdHw7orsXIL75hNVg)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA dest, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA src, tySet_tyEnum_TAssignmentFlag__Kd9aFyBNhxSsWFh1Km9a2hMw flags) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ty;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T22_;
{	{
		NIM_BOOL T3_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T4_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T6_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T9_;
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T14_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T15_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T20_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T21_;
		T3_ = (NIM_BOOL)0;
		T4_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T4_ = t__XNOXh7uniWNgiq58C9bW49awcgen(src);
		T3_ = !((T4_ == NIM_NIL));
		if (!(T3_)) goto LA5_;
		T6_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T6_ = t__XNOXh7uniWNgiq58C9bW49awcgen(src);
		T3_ = ((*T6_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21));
		LA5_: ;
		if (!T3_) goto LA7_;
		T9_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T9_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA12_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA12_: ;
		res = rawNewString(((NI) 80));
		T14_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = rdLoc__xidyzuHqIciXbQyEOKahDg(dest);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T14_);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_103));
		T15_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T15_ = rdLoc__xidyzuHqIciXbQyEOKahDg(src);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T15_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_104));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA18_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA18_: ;
		T20_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T20_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
		T21_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T21_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T20_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T9_, T21_);
		goto BeforeRet_;
	}
	LA7_: ;
	T22_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T22_ = t__XNOXh7uniWNgiq58C9bW49awcgen(dest);
	ty = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(T22_, IL64(1202566653625280784));
	switch ((*ty).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22):
	{
		genRefAssign__jdslQ8TsNpkTt8SvBLJjEA(p, dest, src);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
	{
		{
			if (!(((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 39))&63U)))!=0)) goto LA27_;
			genGenericAsgn__BtucsTdHw7orsXIL75hNVg_2(p, dest, src, flags);
		}
		goto LA25_;
		LA27_: ;
		{
			NIM_BOOL T30_;
			NIM_BOOL T31_;
			T30_ = (NIM_BOOL)0;
			T31_ = (NIM_BOOL)0;
			T31_ = !(((flags &(1U<<((NU)(((tyEnum_TAssignmentFlag__Kd9aFyBNhxSsWFh1Km9a2hMw) 0))&7U)))!=0));
			if (!(T31_)) goto LA32_;
			T31_ = !((src.storage == ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 1)));
			LA32_: ;
			T30_ = T31_;
			if (T30_) goto LA33_;
			T30_ = canMove__b5Hq2LPdi5DP1QFBXQYNdA(p, src.lode, dest);
			LA33_: ;
			if (!T30_) goto LA34_;
			genRefAssign__jdslQ8TsNpkTt8SvBLJjEA(p, dest, src);
		}
		goto LA25_;
		LA34_: ;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T37_;
			NimStringDesc* res_2;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T42_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T43_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T44_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T45_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T46_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T51_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T52_;
			T37_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T37_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA40_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA40_: ;
			res_2 = rawNewString(((NI) 80));
			T42_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T42_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_282));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T42_);
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
			T43_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T43_ = addrLoc__9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, dest);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T43_);
			res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
			T44_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T44_ = rdLoc__xidyzuHqIciXbQyEOKahDg(src);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T44_);
			res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
			T45_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T45_ = t__XNOXh7uniWNgiq58C9bW49awcgen(dest);
			T46_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T46_ = genTypeInfo__BeEYMOjEPJinzbFpsfTaZg((*p).module, T45_, (*dest.lode).info);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T46_);
			res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA49_;
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA49_: ;
			T51_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T51_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
			T52_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T52_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T51_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T37_, T52_);
		}
		LA25_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
	{
		{
			if (!(((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 39))&63U)))!=0)) goto LA56_;
			genGenericAsgn__BtucsTdHw7orsXIL75hNVg_2(p, dest, src, flags);
		}
		goto LA54_;
		LA56_: ;
		{
			NIM_BOOL T59_;
			NIM_BOOL T60_;
			T59_ = (NIM_BOOL)0;
			T60_ = (NIM_BOOL)0;
			T60_ = !(((flags &(1U<<((NU)(((tyEnum_TAssignmentFlag__Kd9aFyBNhxSsWFh1Km9a2hMw) 0))&7U)))!=0));
			if (!(T60_)) goto LA61_;
			T60_ = !((src.storage == ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 1)));
			LA61_: ;
			T59_ = T60_;
			if (T59_) goto LA62_;
			T59_ = canMove__b5Hq2LPdi5DP1QFBXQYNdA(p, src.lode, dest);
			LA62_: ;
			if (!T59_) goto LA63_;
			genRefAssign__jdslQ8TsNpkTt8SvBLJjEA(p, dest, src);
		}
		goto LA54_;
		LA63_: ;
		{
			{
				NIM_BOOL T68_;
				NIM_BOOL T69_;
				NIM_BOOL T72_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T75_;
				NimStringDesc* res_3;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T80_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T81_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T82_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T87_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T88_;
				T68_ = (NIM_BOOL)0;
				T69_ = (NIM_BOOL)0;
				T69_ = (dest.storage == ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 2));
				if (!(T69_)) goto LA70_;
				T69_ = !(((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw) 10)));
				LA70_: ;
				T68_ = T69_;
				if (T68_) goto LA71_;
				T72_ = (NIM_BOOL)0;
				T72_ = usesWriteBarrier__TzsgO9bY9cwAf4hwmbs7dTmg_2options((*(*(*p).module).g).config);
				T68_ = !(T72_);
				LA71_: ;
				if (!T68_) goto LA73_;
				T75_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T75_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA78_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA78_: ;
				res_3 = rawNewString(((NI) 80));
				T80_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T80_ = rdLoc__xidyzuHqIciXbQyEOKahDg(dest);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T80_);
				res_3 = resizeString(res_3, 3);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_103));
				T81_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T81_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_283));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T81_);
				res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
				T82_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T82_ = rdLoc__xidyzuHqIciXbQyEOKahDg(src);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T82_);
				res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA85_;
					res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA85_: ;
				T87_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T87_ = rope__yShmEg9cffWxI7s5XzEKBow(res_3);
				T88_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T88_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T87_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T75_, T88_);
			}
			goto LA66_;
			LA73_: ;
			{
				tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA tmp;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T92_;
				NimStringDesc* res_4;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T97_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T98_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T99_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T100_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T101_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T106_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T107_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T108_;
				NimStringDesc* res_5;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T113_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T114_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T115_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T120_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T121_;
				if (!(dest.storage == ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 3))) goto LA90_;
				nimZeroMem((void*)(&tmp), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
				getTemp__VjOFVqypINqQv5C3ECnxbw(p, ty, (&tmp), NIM_FALSE);
				T92_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T92_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA95_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA95_: ;
				res_4 = rawNewString(((NI) 80));
				T97_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T97_ = rdLoc__xidyzuHqIciXbQyEOKahDg(tmp);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T97_);
				res_4 = resizeString(res_4, 3);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_103));
				T98_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T98_ = rdLoc__xidyzuHqIciXbQyEOKahDg(dest);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T98_);
				res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_154));
				T99_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T99_ = rdLoc__xidyzuHqIciXbQyEOKahDg(dest);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T99_);
				res_4 = resizeString(res_4, 3);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_103));
				T100_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T100_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_284));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T100_);
				res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
				T101_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T101_ = rdLoc__xidyzuHqIciXbQyEOKahDg(src);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T101_);
				res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA104_;
					res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA104_: ;
				T106_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T106_ = rope__yShmEg9cffWxI7s5XzEKBow(res_4);
				T107_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T107_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T106_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T92_, T107_);
				T108_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T108_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA111_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA111_: ;
				res_5 = rawNewString(((NI) 80));
				res_5 = resizeString(res_5, 4);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_285));
				T113_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T113_ = rdLoc__xidyzuHqIciXbQyEOKahDg(tmp);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T113_);
				res_5 = resizeString(res_5, 2);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_286));
				T114_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T114_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_287));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T114_);
				res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
				T115_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T115_ = rdLoc__xidyzuHqIciXbQyEOKahDg(tmp);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T115_);
				res_5 = resizeString(res_5, 2);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA118_;
					res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA118_: ;
				T120_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T120_ = rope__yShmEg9cffWxI7s5XzEKBow(res_5);
				T121_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T121_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T120_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T108_, T121_);
			}
			goto LA66_;
			LA90_: ;
			{
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T123_;
				NimStringDesc* res_6;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T128_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T129_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T130_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T131_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T136_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T137_;
				T123_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T123_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA126_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA126_: ;
				res_6 = rawNewString(((NI) 80));
				T128_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T128_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_277));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T128_);
				res_6 = resizeString(res_6, 10);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_276));
				T129_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T129_ = addrLoc__9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, dest);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T129_);
				res_6 = resizeString(res_6, 2);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
				T130_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T130_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_283));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T130_);
				res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
				T131_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T131_ = rdLoc__xidyzuHqIciXbQyEOKahDg(src);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T131_);
				res_6 = resizeString(res_6, 3);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_114));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA134_;
					res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA134_: ;
				T136_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T136_ = rope__yShmEg9cffWxI7s5XzEKBow(res_6);
				T137_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T137_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T136_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T123_, T137_);
			}
			LA66_: ;
		}
		LA54_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25):
	{
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T141_;
			NIM_BOOL T142_;
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T145_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T146_;
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA T147_;
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA b;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T148_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T149_;
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA T150_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T151_;
			NimStringDesc* res_7;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T156_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T157_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T162_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T163_;
			T141_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T141_ = t__XNOXh7uniWNgiq58C9bW49awcgen(dest);
			T142_ = (NIM_BOOL)0;
			T142_ = containsGarbageCollectedRef__IVXYI9cxSeivThgKCncHRnA_2(T141_);
			if (!T142_) goto LA143_;
			nimZeroMem((void*)(&a), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			T145_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T145_ = t__XNOXh7uniWNgiq58C9bW49awcgen(dest);
			T146_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T146_ = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_289));
			nimZeroMem((void*)(&T147_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			optAsgnLoc__BudZ9caWLs3siCMYU9bVcDKw(dest, T145_, T146_, (&T147_));
			nimCopyMem((void*)(&a), (NIM_CONST void*)(&T147_), sizeof(a));
			nimZeroMem((void*)(&b), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			T148_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T148_ = t__XNOXh7uniWNgiq58C9bW49awcgen(dest);
			T149_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T149_ = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_289));
			nimZeroMem((void*)(&T150_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			optAsgnLoc__BudZ9caWLs3siCMYU9bVcDKw(src, T148_, T149_, (&T150_));
			nimCopyMem((void*)(&b), (NIM_CONST void*)(&T150_), sizeof(b));
			genRefAssign__jdslQ8TsNpkTt8SvBLJjEA(p, a, b);
			T151_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T151_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA154_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA154_: ;
			res_7 = rawNewString(((NI) 80));
			T156_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T156_ = rdLoc__xidyzuHqIciXbQyEOKahDg(dest);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_7), T156_);
			res_7 = resizeString(res_7, 9);
appendString(res_7, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_290));
			T157_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T157_ = rdLoc__xidyzuHqIciXbQyEOKahDg(src);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_7), T157_);
			res_7 = resizeString(res_7, 7);
appendString(res_7, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_291));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA160_;
				res_7 = resizeString(res_7, 1);
appendString(res_7, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA160_: ;
			T162_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T162_ = rope__yShmEg9cffWxI7s5XzEKBow(res_7);
			T163_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T163_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T162_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T151_, T163_);
		}
		goto LA139_;
		LA143_: ;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T165_;
			NimStringDesc* res_8;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T170_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T171_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T176_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T177_;
			T165_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T165_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA168_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA168_: ;
			res_8 = rawNewString(((NI) 80));
			T170_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T170_ = rdLoc__xidyzuHqIciXbQyEOKahDg(dest);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_8), T170_);
			res_8 = resizeString(res_8, 3);
appendString(res_8, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_103));
			T171_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T171_ = rdLoc__xidyzuHqIciXbQyEOKahDg(src);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_8), T171_);
			res_8 = resizeString(res_8, 1);
appendString(res_8, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_104));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA174_;
				res_8 = resizeString(res_8, 1);
appendString(res_8, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA174_: ;
			T176_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T176_ = rope__yShmEg9cffWxI7s5XzEKBow(res_8);
			T177_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T177_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T176_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T165_, T177_);
		}
		LA139_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T181_;
			NIM_BOOL T182_;
			T181_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T181_ = t__XNOXh7uniWNgiq58C9bW49awcgen(dest);
			T182_ = (NIM_BOOL)0;
			T182_ = containsGarbageCollectedRef__IVXYI9cxSeivThgKCncHRnA_2(T181_);
			if (!T182_) goto LA183_;
			{
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T187_;
				NI T188_;
				T187_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T187_ = t__XNOXh7uniWNgiq58C9bW49awcgen(dest);
				T188_ = (NI)0;
				T188_ = len__5mJADrRYkP3r9auuiuDZN9cQast(T187_);
				if (!(T188_ <= ((NI) 4))) goto LA189_;
				genOptAsgnTuple__BtucsTdHw7orsXIL75hNVg_3(p, dest, src, flags);
			}
			goto LA185_;
			LA189_: ;
			{
				genGenericAsgn__BtucsTdHw7orsXIL75hNVg_2(p, dest, src, flags);
			}
			LA185_: ;
		}
		goto LA179_;
		LA183_: ;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T193_;
			NimStringDesc* res_9;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T198_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T199_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T204_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T205_;
			T193_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T193_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA196_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA196_: ;
			res_9 = rawNewString(((NI) 80));
			T198_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T198_ = rdLoc__xidyzuHqIciXbQyEOKahDg(dest);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_9), T198_);
			res_9 = resizeString(res_9, 3);
appendString(res_9, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_103));
			T199_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T199_ = rdLoc__xidyzuHqIciXbQyEOKahDg(src);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_9), T199_);
			res_9 = resizeString(res_9, 1);
appendString(res_9, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_104));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA202_;
				res_9 = resizeString(res_9, 1);
appendString(res_9, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA202_: ;
			T204_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T204_ = rope__yShmEg9cffWxI7s5XzEKBow(res_9);
			T205_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T205_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T204_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T193_, T205_);
		}
		LA179_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17):
	{
		{
			NIM_BOOL T209_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T212_;
			NimStringDesc* res_10;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T217_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T218_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T223_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T224_;
			T209_ = (NIM_BOOL)0;
			T209_ = isImportedCppType__IafZhvqpthq9b9c13SFhzAOw(ty);
			if (!T209_) goto LA210_;
			T212_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T212_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA215_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA215_: ;
			res_10 = rawNewString(((NI) 80));
			T217_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T217_ = rdLoc__xidyzuHqIciXbQyEOKahDg(dest);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_10), T217_);
			res_10 = resizeString(res_10, 3);
appendString(res_10, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_103));
			T218_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T218_ = rdLoc__xidyzuHqIciXbQyEOKahDg(src);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_10), T218_);
			res_10 = resizeString(res_10, 1);
appendString(res_10, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_104));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA221_;
				res_10 = resizeString(res_10, 1);
appendString(res_10, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA221_: ;
			T223_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T223_ = rope__yShmEg9cffWxI7s5XzEKBow(res_10);
			T224_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T224_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T223_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T212_, T224_);
		}
		goto LA207_;
		LA210_: ;
		{
			NIM_BOOL T226_;
			T226_ = (NIM_BOOL)0;
			T226_ = isObjLackingTypeField__kS4QQNg40ThwD2ps8HD9aQgcgen(ty);
			if (!!(T226_)) goto LA227_;
			genGenericAsgn__BtucsTdHw7orsXIL75hNVg_2(p, dest, src, flags);
		}
		goto LA207_;
		LA227_: ;
		{
			NIM_BOOL T230_;
			T230_ = (NIM_BOOL)0;
			T230_ = containsGarbageCollectedRef__IVXYI9cxSeivThgKCncHRnA_2(ty);
			if (!T230_) goto LA231_;
			{
				NIM_BOOL T235_;
				NI T237_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T240_;
				T235_ = (NIM_BOOL)0;
				if ((NU)(((NI) 0)) >= (NU)((*ty).sons ? (*ty).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*ty).sons ? (*ty).sons->Sup.len : 0)-1); }
				T235_ = ((*ty).sons->data[((NI) 0)] == 0);
				if (!(T235_)) goto LA236_;
				T237_ = (NI)0;
				T237_ = asgnComplexity__jQZhYDteQXOIUBRG4iLXPQ((*ty).n);
				T235_ = (T237_ <= ((NI) 4));
				LA236_: ;
				if (!T235_) goto LA238_;
				T240_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T240_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, ty);
				(void)(T240_);
				{
					NimStringDesc* T245_;
					if (!!(!(((*ty).n == NIM_NIL)))) goto LA243_;
					T245_ = (NimStringDesc*)0;
					T245_ = dollar___r38WafKlW80RkvoZTcia4Q(TM__MQdRN7fpbG7rPm4JpVVAhA_295);
					internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*(*(*p).module).g).config, T245_);
				}
				LA243_: ;
				genOptAsgnObject__9aKtDk9aj0NeiT1dC7eBiRKw(p, dest, src, flags, (*ty).n, ty);
			}
			goto LA233_;
			LA238_: ;
			{
				genGenericAsgn__BtucsTdHw7orsXIL75hNVg_2(p, dest, src, flags);
			}
			LA233_: ;
		}
		goto LA207_;
		LA231_: ;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T248_;
			NimStringDesc* res_11;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T253_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T254_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T259_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T260_;
			T248_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T248_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA251_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA251_: ;
			res_11 = rawNewString(((NI) 80));
			T253_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T253_ = rdLoc__xidyzuHqIciXbQyEOKahDg(dest);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_11), T253_);
			res_11 = resizeString(res_11, 3);
appendString(res_11, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_103));
			T254_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T254_ = rdLoc__xidyzuHqIciXbQyEOKahDg(src);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_11), T254_);
			res_11 = resizeString(res_11, 1);
appendString(res_11, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_104));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA257_;
				res_11 = resizeString(res_11, 1);
appendString(res_11, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA257_: ;
			T259_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T259_ = rope__yShmEg9cffWxI7s5XzEKBow(res_11);
			T260_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T260_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T259_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T248_, T260_);
		}
		LA207_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
	{
		{
			NIM_BOOL T264_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T265_;
			T264_ = (NIM_BOOL)0;
			T265_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T265_ = t__XNOXh7uniWNgiq58C9bW49awcgen(dest);
			T264_ = containsGarbageCollectedRef__IVXYI9cxSeivThgKCncHRnA_2(T265_);
			if (!(T264_)) goto LA266_;
			T264_ = !(((224 &(1U<<((NU)((*(*(*(*p).module).g).config).selectedGC)&15U)))!=0));
			LA266_: ;
			if (!T264_) goto LA267_;
			genGenericAsgn__BtucsTdHw7orsXIL75hNVg_2(p, dest, src, flags);
		}
		goto LA262_;
		LA267_: ;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T270_;
			NimStringDesc* res_12;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T275_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T276_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T277_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T278_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T279_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T284_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T285_;
			T270_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T270_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA273_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA273_: ;
			res_12 = rawNewString(((NI) 80));
			T275_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T275_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_273));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_12), T275_);
			res_12 = resizeString(res_12, 8);
appendString(res_12, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_111));
			T276_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T276_ = rdLoc__xidyzuHqIciXbQyEOKahDg(dest);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_12), T276_);
			res_12 = resizeString(res_12, 19);
appendString(res_12, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_278));
			T277_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T277_ = rdLoc__xidyzuHqIciXbQyEOKahDg(src);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_12), T277_);
			res_12 = resizeString(res_12, 9);
appendString(res_12, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_113));
			T278_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T278_ = t__XNOXh7uniWNgiq58C9bW49awcgen(dest);
			T279_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T279_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, T278_);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_12), T279_);
			res_12 = resizeString(res_12, 3);
appendString(res_12, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_114));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA282_;
				res_12 = resizeString(res_12, 1);
appendString(res_12, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA282_: ;
			T284_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T284_ = rope__yShmEg9cffWxI7s5XzEKBow(res_12);
			T285_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T285_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T284_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T270_, T285_);
		}
		LA262_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48):
	{
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T289_;
			NIM_BOOL T290_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T293_;
			NimStringDesc* res_13;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T298_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T299_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T300_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T301_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T302_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T303_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T308_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T309_;
			T289_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T289_ = t__XNOXh7uniWNgiq58C9bW49awcgen(dest);
			T290_ = (NIM_BOOL)0;
			T290_ = containsGarbageCollectedRef__IVXYI9cxSeivThgKCncHRnA_2(T289_);
			if (!T290_) goto LA291_;
			T293_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T293_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA296_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA296_: ;
			res_13 = rawNewString(((NI) 80));
			T298_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T298_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_298));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_13), T298_);
			res_13 = resizeString(res_13, 8);
appendString(res_13, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_111));
			T299_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T299_ = addrLoc__9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, dest);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_13), T299_);
			res_13 = resizeString(res_13, 9);
appendString(res_13, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_280));
			T300_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T300_ = addrLoc__9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, src);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_13), T300_);
			res_13 = resizeString(res_13, 2);
appendString(res_13, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
			T301_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T301_ = addrLoc__9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, dest);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_13), T301_);
			res_13 = resizeString(res_13, 7);
appendString(res_13, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_299));
			T302_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T302_ = t__XNOXh7uniWNgiq58C9bW49awcgen(dest);
			T303_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T303_ = genTypeInfo__BeEYMOjEPJinzbFpsfTaZg((*p).module, T302_, (*dest.lode).info);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_13), T303_);
			res_13 = resizeString(res_13, 2);
appendString(res_13, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA306_;
				res_13 = resizeString(res_13, 1);
appendString(res_13, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA306_: ;
			T308_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T308_ = rope__yShmEg9cffWxI7s5XzEKBow(res_13);
			T309_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T309_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T308_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T293_, T309_);
		}
		goto LA287_;
		LA291_: ;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T311_;
			NimStringDesc* res_14;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T316_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T317_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T322_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T323_;
			T311_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T311_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA314_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA314_: ;
			res_14 = rawNewString(((NI) 80));
			T316_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T316_ = rdLoc__xidyzuHqIciXbQyEOKahDg(dest);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_14), T316_);
			res_14 = resizeString(res_14, 3);
appendString(res_14, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_103));
			T317_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T317_ = rdLoc__xidyzuHqIciXbQyEOKahDg(src);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_14), T317_);
			res_14 = resizeString(res_14, 1);
appendString(res_14, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_104));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA320_;
				res_14 = resizeString(res_14, 1);
appendString(res_14, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA320_: ;
			T322_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T322_ = rope__yShmEg9cffWxI7s5XzEKBow(res_14);
			T323_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T323_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T322_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T311_, T323_);
		}
		LA287_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19):
	{
		{
			tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w T327_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T330_;
			NimStringDesc* res_15;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T335_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T336_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T337_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T338_;
			NI64 T339_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T344_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T345_;
			T327_ = (tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w)0;
			T327_ = mapType__K9aceyVl15zb9aYN9b6YJ8TnA((*(*(*p).module).g).config, ty);
			if (!(T327_ == ((tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w) 17))) goto LA328_;
			T330_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T330_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA333_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA333_: ;
			res_15 = rawNewString(((NI) 80));
			T335_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T335_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_273));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_15), T335_);
			res_15 = resizeString(res_15, 8);
appendString(res_15, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_111));
			T336_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T336_ = rdLoc__xidyzuHqIciXbQyEOKahDg(dest);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_15), T336_);
			res_15 = resizeString(res_15, 19);
appendString(res_15, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_278));
			T337_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T337_ = rdLoc__xidyzuHqIciXbQyEOKahDg(src);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_15), T337_);
			res_15 = resizeString(res_15, 2);
appendString(res_15, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
			T338_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T338_ = t__XNOXh7uniWNgiq58C9bW49awcgen(dest);
			T339_ = (NI64)0;
			T339_ = getSize__vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, T338_);
			cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res_15), T339_);
			res_15 = resizeString(res_15, 2);
appendString(res_15, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA342_;
				res_15 = resizeString(res_15, 1);
appendString(res_15, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA342_: ;
			T344_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T344_ = rope__yShmEg9cffWxI7s5XzEKBow(res_15);
			T345_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T345_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T344_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T330_, T345_);
		}
		goto LA325_;
		LA328_: ;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T347_;
			NimStringDesc* res_16;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T352_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T353_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T358_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T359_;
			T347_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T347_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA350_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA350_: ;
			res_16 = rawNewString(((NI) 80));
			T352_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T352_ = rdLoc__xidyzuHqIciXbQyEOKahDg(dest);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_16), T352_);
			res_16 = resizeString(res_16, 3);
appendString(res_16, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_103));
			T353_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T353_ = rdLoc__xidyzuHqIciXbQyEOKahDg(src);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_16), T353_);
			res_16 = resizeString(res_16, 1);
appendString(res_16, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_104));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA356_;
				res_16 = resizeString(res_16, 1);
appendString(res_16, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA356_: ;
			T358_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T358_ = rope__yShmEg9cffWxI7s5XzEKBow(res_16);
			T359_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T359_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T358_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T347_, T359_);
		}
		LA325_: ;
	}
	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):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5):
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T361_;
		NimStringDesc* res_17;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T366_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T367_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T372_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T373_;
		T361_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T361_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA364_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA364_: ;
		res_17 = rawNewString(((NI) 80));
		T366_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T366_ = rdLoc__xidyzuHqIciXbQyEOKahDg(dest);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_17), T366_);
		res_17 = resizeString(res_17, 3);
appendString(res_17, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_103));
		T367_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T367_ = rdLoc__xidyzuHqIciXbQyEOKahDg(src);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_17), T367_);
		res_17 = resizeString(res_17, 1);
appendString(res_17, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_104));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA370_;
			res_17 = resizeString(res_17, 1);
appendString(res_17, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA370_: ;
		T372_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T372_ = rope__yShmEg9cffWxI7s5XzEKBow(res_17);
		T373_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T373_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T372_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T361_, T373_);
	}
	break;
	default:
	{
		NimStringDesc* T375_;
		T375_ = (NimStringDesc*)0;
		T375_ = rawNewString((reprEnum((NI)(*ty).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*ty).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 15);
appendString(T375_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_300));
appendString(T375_, reprEnum((NI)(*ty).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_)));
		internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*(*(*p).module).g).config, T375_);
	}
	break;
	}
	{
		NIM_BOOL T378_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T382_;
		NimStringDesc* res_18;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T387_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T388_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T389_;
		NI64 T390_;
		NimStringDesc* T391_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T392_;
		NI T393_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T398_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T399_;
		T378_ = (NIM_BOOL)0;
		T378_ = (((*p).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 25))&31U)))!=0);
		if (!(T378_)) goto LA379_;
		T378_ = ((9 &(1U<<((NU)(dest.storage)&7U)))!=0);
		LA379_: ;
		if (!T378_) goto LA380_;
		T382_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T382_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA385_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA385_: ;
		res_18 = rawNewString(((NI) 80));
		T387_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T387_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_301));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_18), T387_);
		res_18 = resizeString(res_18, 8);
appendString(res_18, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_111));
		T388_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T388_ = addrLoc__9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, dest);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_18), T388_);
		res_18 = resizeString(res_18, 2);
appendString(res_18, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
		T389_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T389_ = t__XNOXh7uniWNgiq58C9bW49awcgen(dest);
		T390_ = (NI64)0;
		T390_ = getSize__vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, T389_);
		cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res_18), T390_);
		res_18 = resizeString(res_18, 2);
appendString(res_18, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
		T391_ = (NimStringDesc*)0;
		T391_ = toFullPath__VW1RaR1l9c9bPnJxr1KuvIrg((*(*(*p).module).g).config, (*p).currLineInfo.fileIndex);
		T392_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T392_ = makeCString__vQJydtKy4Nf6bXPYtbmjtg(T391_);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_18), T392_);
		res_18 = resizeString(res_18, 2);
appendString(res_18, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
		T393_ = (NI)0;
		T393_ = safeLineNm__cb5f0VvvxoagMath9ay3UuQ((*p).currLineInfo);
		cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res_18), ((NI64) (T393_)));
		res_18 = resizeString(res_18, 2);
appendString(res_18, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA396_;
			res_18 = resizeString(res_18, 1);
appendString(res_18, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA396_: ;
		T398_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T398_ = rope__yShmEg9cffWxI7s5XzEKBow(res_18);
		T399_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T399_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T398_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T382_, T399_);
	}
	LA380_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genObjectInit__UANnSFbuKD1BS6RrMbZs2A)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg section, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* a, tyEnum_ObjConstrMode__9agQ3x8C5KfK9c9a3uY9abfUTw mode) {
	tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw T1_;
	T1_ = (tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw)0;
	T1_ = analyseObjectWithTypeField__Pldxz9alDV6810oJzh2Apog(t);
	switch (T1_) {
	case ((tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw) 0):
	{
	}
	break;
	case ((tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw) 1):
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* s;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T19_;
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T24_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T29_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T30_;
		r = rdLoc__xidyzuHqIciXbQyEOKahDg((*a));
		{
			tyArray__JiWwrsTRC6xqNlGcBthSVA T8_;
			if (!(mode == ((tyEnum_ObjConstrMode__9agQ3x8C5KfK9c9a3uY9abfUTw) 1))) goto LA6_;
			nimZeroMem((void*)T8_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
			T8_[0] = r;
			r = percent___TbMwXzwNL7txOQADiTjwKA(T8_, 1);
		}
		LA6_: ;
		s = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(36134350135273744));
		{
			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) 31))&63U)))!=0);
			LA12_: ;
			if (!!(T11_)) goto LA13_;
			{
				while (1) {
					NIM_BOOL T17_;
					T17_ = (NIM_BOOL)0;
					T17_ = ((*s).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17));
					if (!(T17_)) goto LA18_;
					if ((NU)(((NI) 0)) >= (NU)((*s).sons ? (*s).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*s).sons ? (*s).sons->Sup.len : 0)-1); }
					T17_ = !(((*s).sons->data[((NI) 0)] == NIM_NIL));
					LA18_: ;
					if (!T17_) goto LA16;
					add__yG4AKzsBRS1W4MANDlXQeg(&r, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_115));
					if ((NU)(((NI) 0)) >= (NU)((*s).sons ? (*s).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*s).sons ? (*s).sons->Sup.len : 0)-1); }
					s = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*s).sons->data[((NI) 0)], IL64(36275087638268176));
				} LA16: ;
			}
		}
		LA13_: ;
		T19_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T19_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, section);
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA22_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA22_: ;
		res = rawNewString(((NI) 80));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), r);
		res = resizeString(res, 10);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_116));
		T24_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T24_ = genTypeInfo__BeEYMOjEPJinzbFpsfTaZg((*p).module, t, (*(*a).lode).info);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T24_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_104));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA27_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA27_: ;
		T29_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T29_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
		T30_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T30_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T29_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T19_, T30_);
	}
	break;
	case ((tyEnum_TTypeFieldResult__aBXTX9cIKT9b0yNlXSu9aPT9cw) 2):
	{
		{
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA tmp;
			if (!(((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 40))&63U)))!=0)) goto LA34_;
			nimZeroMem((void*)(&tmp), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			{
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* objType;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T40_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T41_;
				NimStringDesc* res_2;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T46_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T47_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T48_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T49_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T54_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T55_;
				if (!(mode == ((tyEnum_ObjConstrMode__9agQ3x8C5KfK9c9a3uY9abfUTw) 1))) goto LA38_;
				objType = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(36134350139468048));
				T40_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T40_ = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4), (*(*a).lode).info, objType);
				rawConstExpr__8mAL9ckajemzgfLPfeZVNoQ_2(p, T40_, (&tmp));
				T41_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T41_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA44_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA44_: ;
				res_2 = rawNewString(((NI) 80));
				T46_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T46_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_273));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T46_);
				res_2 = resizeString(res_2, 8);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_111));
				T47_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T47_ = rdLoc__xidyzuHqIciXbQyEOKahDg((*a));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T47_);
				res_2 = resizeString(res_2, 20);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_274));
				T48_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T48_ = rdLoc__xidyzuHqIciXbQyEOKahDg(tmp);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T48_);
				res_2 = resizeString(res_2, 9);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_113));
				T49_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T49_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, objType);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T49_);
				res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_114));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA52_;
					res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA52_: ;
				T54_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T54_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
				T55_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T55_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T54_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T41_, T55_);
			}
			goto LA36_;
			LA38_: ;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T57_;
				T57_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T57_ = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4), (*(*a).lode).info, t);
				rawConstExpr__8mAL9ckajemzgfLPfeZVNoQ_2(p, T57_, (&tmp));
				genAssignment__BtucsTdHw7orsXIL75hNVg(p, (*a), tmp, 0);
			}
			LA36_: ;
		}
		goto LA32_;
		LA34_: ;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r_2;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T64_;
			NimStringDesc* res_3;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T69_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T70_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T75_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T76_;
			{
				if (!(mode == ((tyEnum_ObjConstrMode__9agQ3x8C5KfK9c9a3uY9abfUTw) 0))) goto LA61_;
				r_2 = addrLoc__9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, (*a));
			}
			goto LA59_;
			LA61_: ;
			{
				r_2 = rdLoc__xidyzuHqIciXbQyEOKahDg((*a));
			}
			LA59_: ;
			T64_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T64_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, section);
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA67_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA67_: ;
			res_3 = rawNewString(((NI) 80));
			T69_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T69_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_302));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T69_);
			res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), r_2);
			res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
			T70_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T70_ = genTypeInfo__BeEYMOjEPJinzbFpsfTaZg((*p).module, t, (*(*a).lode).info);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T70_);
			res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA73_;
				res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA73_: ;
			T75_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T75_ = rope__yShmEg9cffWxI7s5XzEKBow(res_3);
			T76_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T76_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T75_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T64_, T76_);
		}
		LA32_: ;
	}
	break;
	}
	{
		NIM_BOOL T79_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r_3;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* s_2;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T99_;
		NimStringDesc* res_4;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T104_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T105_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T110_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T111_;
		T79_ = (NIM_BOOL)0;
		T79_ = isException__YPjOkGV9axAnGR3UfLeWZ1g_11(t);
		if (!T79_) goto LA80_;
		r_3 = rdLoc__xidyzuHqIciXbQyEOKahDg((*a));
		{
			tyArray__JiWwrsTRC6xqNlGcBthSVA T86_;
			if (!(mode == ((tyEnum_ObjConstrMode__9agQ3x8C5KfK9c9a3uY9abfUTw) 1))) goto LA84_;
			nimZeroMem((void*)T86_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
			T86_[0] = r_3;
			r_3 = percent___TbMwXzwNL7txOQADiTjwKA(T86_, 1);
		}
		LA84_: ;
		s_2 = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(36134350135273744));
		{
			NIM_BOOL T89_;
			T89_ = (NIM_BOOL)0;
			T89_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands__VH3ghgQVwLSg3krOAoXigw) 2));
			if (T89_) goto LA90_;
			T89_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 31))&63U)))!=0);
			LA90_: ;
			if (!!(T89_)) goto LA91_;
			{
				while (1) {
					NIM_BOOL T95_;
					NIM_BOOL T96_;
					T95_ = (NIM_BOOL)0;
					T96_ = (NIM_BOOL)0;
					T96_ = ((*s_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17));
					if (!(T96_)) goto LA97_;
					if ((NU)(((NI) 0)) >= (NU)((*s_2).sons ? (*s_2).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*s_2).sons ? (*s_2).sons->Sup.len : 0)-1); }
					T96_ = !(((*s_2).sons->data[((NI) 0)] == NIM_NIL));
					LA97_: ;
					T95_ = T96_;
					if (!(T95_)) goto LA98_;
					T95_ = !(((*(*s_2).sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 262)));
					LA98_: ;
					if (!T95_) goto LA94;
					add__yG4AKzsBRS1W4MANDlXQeg(&r_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_115));
					if ((NU)(((NI) 0)) >= (NU)((*s_2).sons ? (*s_2).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*s_2).sons ? (*s_2).sons->Sup.len : 0)-1); }
					s_2 = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*s_2).sons->data[((NI) 0)], IL64(36275087638268176));
				} LA94: ;
			}
		}
		LA91_: ;
		T99_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T99_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, section);
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA102_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA102_: ;
		res_4 = rawNewString(((NI) 80));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), r_3);
		res_4 = resizeString(res_4, 8);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_303));
		T104_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T104_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(36134350135273744));
		T105_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T105_ = makeCString__vQJydtKy4Nf6bXPYtbmjtg((*(*(*T104_).sym).name).s);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T105_);
		res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_104));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA108_;
			res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA108_: ;
		T110_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T110_ = rope__yShmEg9cffWxI7s5XzEKBow(res_4);
		T111_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T111_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T110_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T99_, T111_);
	}
	LA80_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, constructLoc__Q4oQMHZIwSi4nGkYAuAC8A)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* loc, NIM_BOOL isTemp) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
	typ = t__XNOXh7uniWNgiq58C9bW49awcgen((*loc));
	{
		NIM_BOOL T3_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T5_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T8_;
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T13_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T14_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T19_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T20_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 39))&63U)))!=0);
		if (!(T3_)) goto LA4_;
		T5_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T5_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(typ, IL64(1189055854742120720));
		T3_ = ((*T5_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28) || (*T5_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24));
		LA4_: ;
		if (!T3_) goto LA6_;
		T8_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T8_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA11_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA11_: ;
		res = rawNewString(((NI) 80));
		T13_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T13_ = rdLoc__xidyzuHqIciXbQyEOKahDg((*loc));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T13_);
		res = resizeString(res, 10);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_106));
		T14_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = rdLoc__xidyzuHqIciXbQyEOKahDg((*loc));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T14_);
		res = resizeString(res, 13);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_107));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA17_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA17_: ;
		T19_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T19_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
		T20_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T20_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T19_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T8_, T20_);
	}
	goto LA1_;
	LA6_: ;
	{
		NIM_BOOL T22_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T25_;
		NimStringDesc* res_2;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T30_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T31_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T36_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T37_;
		T22_ = (NIM_BOOL)0;
		T22_ = isComplexValueType__Fl17jclCP5VEr9a7Ycym1awcgen(typ);
		if (!!(T22_)) goto LA23_;
		T25_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T25_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA28_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA28_: ;
		res_2 = rawNewString(((NI) 80));
		T30_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T30_ = rdLoc__xidyzuHqIciXbQyEOKahDg((*loc));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T30_);
		res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_108));
		T31_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T31_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, typ);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T31_);
		res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_109));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA34_;
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA34_: ;
		T36_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T36_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
		T37_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T37_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T36_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T25_, T37_);
	}
	goto LA1_;
	LA23_: ;
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T65_;
		{
			NIM_BOOL T41_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T43_;
			T41_ = (NIM_BOOL)0;
			T41_ = !(isTemp);
			if (T41_) goto LA42_;
			T43_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T43_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*loc));
			T41_ = containsGarbageCollectedRef__IVXYI9cxSeivThgKCncHRnA_2(T43_);
			LA42_: ;
			if (!T41_) goto LA44_;
			{
				NIM_BOOL T48_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T51_;
				NimStringDesc* res_3;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T56_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T57_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T58_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T63_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T64_;
				T48_ = (NIM_BOOL)0;
				T48_ = isImportedCppType__IafZhvqpthq9b9c13SFhzAOw(typ);
				if (!!(T48_)) goto LA49_;
				T51_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T51_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA54_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA54_: ;
				res_3 = rawNewString(((NI) 80));
				T56_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T56_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_110));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T56_);
				res_3 = resizeString(res_3, 8);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_111));
				T57_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T57_ = addrLoc__9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, (*loc));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T57_);
				res_3 = resizeString(res_3, 9);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_113));
				T58_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T58_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, typ);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T58_);
				res_3 = resizeString(res_3, 3);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_114));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA61_;
					res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA61_: ;
				T63_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T63_ = rope__yShmEg9cffWxI7s5XzEKBow(res_3);
				T64_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T64_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T63_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T51_, T64_);
			}
			LA49_: ;
		}
		LA44_: ;
		T65_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T65_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*loc));
		genObjectInit__UANnSFbuKD1BS6RrMbZs2A(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2), T65_, loc, ((tyEnum_ObjConstrMode__9agQ3x8C5KfK9c9a3uY9abfUTw) 0));
	}
	LA1_: ;
}
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) 14))&63U)))!=0))) goto LA3_;
		{
			if (!!(immediateAsgn)) goto LA7_;
			constructLoc__Q4oQMHZIwSi4nGkYAuAC8A(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;
	if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*param).kind)>>3] &(1U<<((NU)((*param).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
	nimZeroMem((void*)T1_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
	T2_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = percent___T11tCz9bIGT2CcftAwrDXZw(T1_, 0);
	fillLoc__o49bXuxJYpCizOgQ54UViIg((&(*(*param)._kind_4.sym).loc), ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 4), param, T2_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 2));
	if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*param).kind)>>3] &(1U<<((NU)((*param).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
	t = (*(*param)._kind_4.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_;
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*param).kind)>>3] &(1U<<((NU)((*param).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
		(*(*param)._kind_4.sym).loc.flags |= ((NU16)1)<<((((tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA) 0)) & 15);
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*param).kind)>>3] &(1U<<((NU)((*param).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
		(*(*param)._kind_4.sym).loc.storage = ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0);
	}
	LA8_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, scopeMangledParam__8o8k31aDRiyxRXKGzZbQIQ)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* param) {
	NimStringDesc* key;
	key = mangle__GxzvEIRbrShQbyJNboTw7A((*(*param).name).s);
	shallow__cnzwaZQQIa73ryXE31wijQsystem((&key));
	inc__1cI9bkIJF86iCGvJofQDn7g((&(*p).sigConflicts), key, ((NI) 1));
}
N_LIB_PRIVATE N_NIMCALL(void, assignParam__9aFEJaMCg37I5D9b15sgctsw)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* retType) {
	{
		if (!!(!(((*s).loc.r == NIM_NIL)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_305));
	}
	LA3_: ;
	scopeMangledParam__8o8k31aDRiyxRXKGzZbQIQ(p, s);
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_InitResultEnum__9c9csRan2YP9boKbiUR9cP6PNg, allPathsAsgnResult__3E19a9b4Xsk8ypT9b1MEmPyCQ)(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__P89cqdlERShb9alU3iC0yj8w_2ast(n);
				i_2 = ((NI) 0);
				{
					while (1) {
						NI TM__MQdRN7fpbG7rPm4JpVVAhA_306;
						if (!(i_2 < colontmp_)) goto LA5;
						i = i_2;
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if ((NU)(i) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
						it = (*n)._kind_6.sons->data[i];
						result = allPathsAsgnResult__3E19a9b4Xsk8ypT9b1MEmPyCQ(it);
						{
							if (!!((result == ((tyEnum_InitResultEnum__9c9csRan2YP9boKbiUR9cP6PNg) 0)))) goto LA8_;
							goto BeforeRet_;
						}
						LA8_: ;
						if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_306)) { raiseOverflow(); };
						i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_306);
					} LA5: ;
				}
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74):
	{
		{
			NIM_BOOL T13_;
			T13_ = (NIM_BOOL)0;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
			T13_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T13_)) goto LA14_;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
			if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
			T13_ = ((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 11));
			LA14_: ;
			if (!T13_) goto LA15_;
			{
				NIM_BOOL T19_;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
				T19_ = (NIM_BOOL)0;
				T19_ = containsResult__fNMD7OWzxZVWuSQ9cYs2S9ag((*n)._kind_6.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__fNMD7OWzxZVWuSQ9cYs2S9ag(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__P89cqdlERShb9alU3iC0yj8wast(n);
			if (!(((NI) 0) < T30_)) goto LA31_;
			{
				NIM_BOOL T35_;
				T35_ = (NIM_BOOL)0;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
				T35_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
				if (!(T35_)) goto LA36_;
				T35_ = !((result == ((tyEnum_InitResultEnum__9c9csRan2YP9boKbiUR9cP6PNg) 1)));
				LA36_: ;
				if (!T35_) goto LA37_;
				result = ((tyEnum_InitResultEnum__9c9csRan2YP9boKbiUR9cP6PNg) 2);
			}
			goto LA33_;
			LA37_: ;
			{
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
				result = allPathsAsgnResult__3E19a9b4Xsk8ypT9b1MEmPyCQ((*n)._kind_6.sons->data[((NI) 0)]);
			}
			LA33_: ;
		}
		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__P89cqdlERShb9alU3iC0yj8w_2ast(n);
				i_4 = ((NI) 0);
				{
					while (1) {
						tyEnum_InitResultEnum__9c9csRan2YP9boKbiUR9cP6PNg aX60gensym118215011_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T57_;
						NI TM__MQdRN7fpbG7rPm4JpVVAhA_307;
						if (!(i_4 < colontmp__2)) goto LA44;
						i_3 = i_4;
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if ((NU)(i_3) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_3,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
						it_2 = (*n)._kind_6.sons->data[i_3];
						{
							NIM_BOOL T47_;
							NI T48_;
							T47_ = (NIM_BOOL)0;
							T48_ = (NI)0;
							T48_ = len__P89cqdlERShb9alU3iC0yj8wast(it_2);
							T47_ = (T48_ == ((NI) 2));
							if (!(T47_)) goto LA49_;
							if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*it_2).kind)>>3] &(1U<<((NU)((*it_2).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
							if ((NU)(((NI) 0)) >= (NU)((*it_2)._kind_6.sons ? (*it_2)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*it_2)._kind_6.sons ? (*it_2)._kind_6.sons->Sup.len : 0)-1); }
							T47_ = containsResult__fNMD7OWzxZVWuSQ9cYs2S9ag((*it_2)._kind_6.sons->data[((NI) 0)]);
							LA49_: ;
							if (!T47_) goto LA50_;
							result = ((tyEnum_InitResultEnum__9c9csRan2YP9boKbiUR9cP6PNg) 2);
							goto BeforeRet_;
						}
						LA50_: ;
						{
							NI T54_;
							T54_ = (NI)0;
							T54_ = len__P89cqdlERShb9alU3iC0yj8wast(it_2);
							if (!(T54_ == ((NI) 1))) goto LA55_;
							exhaustive = NIM_TRUE;
						}
						LA55_: ;
						T57_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T57_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(it_2);
						aX60gensym118215011_ = allPathsAsgnResult__3E19a9b4Xsk8ypT9b1MEmPyCQ(T57_);
						switch (aX60gensym118215011_) {
						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 (nimAddInt(i_4, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_307)) { raiseOverflow(); };
						i_4 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_307);
					} LA44: ;
				}
			}
		}
		{
			if (!!(exhaustive)) goto LA63_;
			result = ((tyEnum_InitResultEnum__9c9csRan2YP9boKbiUR9cP6PNg) 0);
		}
		LA63_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 97):
	{
		NIM_BOOL exhaustive_2;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T71_;
		{
			NIM_BOOL T68_;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
			T68_ = (NIM_BOOL)0;
			T68_ = containsResult__fNMD7OWzxZVWuSQ9cYs2S9ag((*n)._kind_6.sons->data[((NI) 0)]);
			if (!T68_) goto LA69_;
			result = ((tyEnum_InitResultEnum__9c9csRan2YP9boKbiUR9cP6PNg) 2);
			goto BeforeRet_;
		}
		LA69_: ;
		result = ((tyEnum_InitResultEnum__9c9csRan2YP9boKbiUR9cP6PNg) 1);
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		T71_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T71_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 0)]).typ, IL64(36134350144710672));
		exhaustive_2 = !(((*T71_).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36) && (*T71_).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39) || (*T71_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28)));
		{
			NI i_5;
			NI colontmp__3;
			NI i_6;
			i_5 = (NI)0;
			colontmp__3 = (NI)0;
			colontmp__3 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			i_6 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it_3;
					tyEnum_InitResultEnum__9c9csRan2YP9boKbiUR9cP6PNg aX60gensym118240007_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T75_;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_308;
					if (!(i_6 < colontmp__3)) goto LA74;
					i_5 = i_6;
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i_5) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_5,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
					it_3 = (*n)._kind_6.sons->data[i_5];
					T75_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T75_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(it_3);
					aX60gensym118240007_ = allPathsAsgnResult__3E19a9b4Xsk8ypT9b1MEmPyCQ(T75_);
					switch (aX60gensym118240007_) {
					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 LA81_;
						exhaustive_2 = NIM_TRUE;
					}
					LA81_: ;
					if (nimAddInt(i_6, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_308)) { raiseOverflow(); };
					i_6 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_308);
				} LA74: ;
			}
		}
		{
			if (!!(exhaustive_2)) goto LA85_;
			result = ((tyEnum_InitResultEnum__9c9csRan2YP9boKbiUR9cP6PNg) 0);
		}
		LA85_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 96):
	{
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		result = allPathsAsgnResult__3E19a9b4Xsk8ypT9b1MEmPyCQ((*n)._kind_6.sons->data[((NI) 0)]);
		{
			if (!(result == ((tyEnum_InitResultEnum__9c9csRan2YP9boKbiUR9cP6PNg) 0))) goto LA90_;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
			result = allPathsAsgnResult__3E19a9b4Xsk8ypT9b1MEmPyCQ((*n)._kind_6.sons->data[((NI) 1)]);
			{
				if (!(result == ((tyEnum_InitResultEnum__9c9csRan2YP9boKbiUR9cP6PNg) 1))) goto LA94_;
				result = ((tyEnum_InitResultEnum__9c9csRan2YP9boKbiUR9cP6PNg) 0);
			}
			LA94_: ;
		}
		LA90_: ;
	}
	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 (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
			if (!((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 11))) goto LA101_;
			result = ((tyEnum_InitResultEnum__9c9csRan2YP9boKbiUR9cP6PNg) 2);
		}
		LA101_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 106):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 154):
	{
		tyEnum_InitResultEnum__9c9csRan2YP9boKbiUR9cP6PNg aX60gensym118255017_;
		result = ((tyEnum_InitResultEnum__9c9csRan2YP9boKbiUR9cP6PNg) 1);
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		aX60gensym118255017_ = allPathsAsgnResult__3E19a9b4Xsk8ypT9b1MEmPyCQ((*n)._kind_6.sons->data[((NI) 0)]);
		switch (aX60gensym118255017_) {
		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;
		}
		{
			NI i_7;
			NI colontmp__4;
			NI i_8;
			i_7 = (NI)0;
			colontmp__4 = (NI)0;
			colontmp__4 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			i_8 = ((NI) 1);
			{
				while (1) {
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_309;
					if (!(i_8 < colontmp__4)) goto LA109;
					i_7 = i_8;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T114_;
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if ((NU)(i_7) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_7,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
						if (!((*(*n)._kind_6.sons->data[i_7]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107))) goto LA112_;
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if ((NU)(i_7) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_7,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
						T114_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T114_ = lastSon__UPSW0jLTX5qJL51YMUAHgw((*n)._kind_6.sons->data[i_7]);
						result = allPathsAsgnResult__3E19a9b4Xsk8ypT9b1MEmPyCQ(T114_);
					}
					goto LA110_;
					LA112_: ;
					{
						tyEnum_InitResultEnum__9c9csRan2YP9boKbiUR9cP6PNg aX60gensym118275011_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T116_;
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if ((NU)(i_7) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_7,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
						T116_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T116_ = lastSon__UPSW0jLTX5qJL51YMUAHgw((*n)._kind_6.sons->data[i_7]);
						aX60gensym118275011_ = allPathsAsgnResult__3E19a9b4Xsk8ypT9b1MEmPyCQ(T116_);
						switch (aX60gensym118275011_) {
						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;
						}
					}
					LA110_: ;
					if (nimAddInt(i_8, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_309)) { raiseOverflow(); };
					i_8 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_309);
				} LA109: ;
			}
		}
	}
	break;
	default:
	{
		{
			NI i_9;
			NI colontmp__5;
			NI i_10;
			i_9 = (NI)0;
			colontmp__5 = (NI)0;
			colontmp__5 = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
			i_10 = ((NI) 0);
			{
				while (1) {
					tyEnum_InitResultEnum__9c9csRan2YP9boKbiUR9cP6PNg aX60gensym118285021_;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_310;
					if (!(i_10 < colontmp__5)) goto LA123;
					i_9 = i_10;
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i_9) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_9,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
					aX60gensym118285021_ = allPathsAsgnResult__3E19a9b4Xsk8ypT9b1MEmPyCQ((*n)._kind_6.sons->data[i_9]);
					switch (aX60gensym118285021_) {
					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 (nimAddInt(i_10, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_310)) { raiseOverflow(); };
					i_10 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_310);
				} LA123: ;
			}
		}
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, specializeResetN__a4Eirucy5vgnjUqFNeFEfw)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, 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 i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_315;
					if (!(i_2 < colontmp_)) goto LA8;
					i = i_2;
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
					specializeResetN__a4Eirucy5vgnjUqFNeFEfw(p, accessor, (*n)._kind_6.sons->data[i], typ);
					if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_315)) { raiseOverflow(); };
					i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_315);
				} LA8: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 139):
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* disc;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T23_;
		tyArray__mrugoXXRZUEeG9bEXo9auBKw T24_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T25_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T26_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T48_;
		tyArray__qTjAvTvKF9anytN1At69aJMQ T49_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T50_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T51_;
		tyArray__mrugoXXRZUEeG9bEXo9auBKw T52_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T53_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T54_;
		{
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
			if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA12_;
			internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_316));
		}
		LA12_: ;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
		disc = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
		{
			if (!((*disc).loc.r == NIM_NIL)) goto LA16_;
			fillObjectFields__4q3XOfd3NI3C8cSNkaF9cWA_2((*p).module, typ);
		}
		LA16_: ;
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T20_;
			T20_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T20_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*disc).loc);
			if (!(T20_ == NIM_NIL)) goto LA21_;
			internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_317));
		}
		LA21_: ;
		T23_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T23_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		nimZeroMem((void*)T24_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
		T24_[0] = accessor;
		T24_[1] = (*disc).loc.r;
		T25_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T25_ = percent___jw4Sb0OSpKH1T5cLz7iyzA(T24_, 2);
		T26_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T26_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T25_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T23_, T26_);
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			i_4 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branch;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T43_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T44_;
					tyArray__qTjAvTvKF9anytN1At69aJMQ T45_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T46_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T47_;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_319;
					if (!(i_4 < colontmp__2)) goto LA29;
					i_3 = i_4;
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i_3) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_3,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
					branch = (*n)._kind_6.sons->data[i_3];
					{
						if (!!(((*branch).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85) || (*branch).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88)))) goto LA32_;
						failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_318));
					}
					LA32_: ;
					{
						if (!((*branch).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA36_;
						genCaseRange__KUz7NJSCXeUWRl4foF5zfg(p, branch);
					}
					goto LA34_;
					LA36_: ;
					{
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T39_;
						tyArray__qTjAvTvKF9anytN1At69aJMQ T40_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T41_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T42_;
						T39_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
						T39_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
						nimZeroMem((void*)T40_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
						T41_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T41_ = percent___TTRh79a14hh1gb0owIP1Y6Q(T40_, 0);
						T42_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T42_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T41_);
						add__IM4kcMNkkOLJtqdEqSxR8A(T39_, T42_);
					}
					LA34_: ;
					T43_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T43_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(branch);
					specializeResetN__a4Eirucy5vgnjUqFNeFEfw(p, accessor, T43_, typ);
					T44_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
					T44_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
					nimZeroMem((void*)T45_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
					T46_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T46_ = percent___TmeCjGna9cPfiHHcfqmKXjw(T45_, 0);
					T47_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T47_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T46_);
					add__IM4kcMNkkOLJtqdEqSxR8A(T44_, T47_);
					if (nimAddInt(i_4, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_319)) { raiseOverflow(); };
					i_4 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_319);
				} LA29: ;
			}
		}
		T48_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T48_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		nimZeroMem((void*)T49_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
		T50_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T50_ = percent___FsfRVuOOBePjn9cQ9aK7Vh1w(T49_, 0);
		T51_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T51_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T50_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T48_, T51_);
		nimZeroMem((void*)T52_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
		T52_[0] = accessor;
		T52_[1] = (*disc).loc.r;
		T53_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T53_ = percent___paA0sar8RKZqiwEaDfWo2A(T52_, 2);
		T54_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T54_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*disc).loc);
		specializeResetT__2tWZcLKL9aUNXJnFJbKKN9aQ(p, T53_, T54_);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* field;
		tyArray__mrugoXXRZUEeG9bEXo9auBKw T69_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T70_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T71_;
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
		field = (*n)._kind_4.sym;
		{
			if (!((*(*field).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 63))) goto LA58_;
			goto BeforeRet_;
		}
		LA58_: ;
		{
			if (!((*field).loc.r == NIM_NIL)) goto LA62_;
			fillObjectFields__4q3XOfd3NI3C8cSNkaF9cWA_2((*p).module, typ);
		}
		LA62_: ;
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T66_;
			T66_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T66_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*field).loc);
			if (!(T66_ == NIM_NIL)) goto LA67_;
			internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_317));
		}
		LA67_: ;
		nimZeroMem((void*)T69_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
		T69_[0] = accessor;
		T69_[1] = (*field).loc.r;
		T70_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T70_ = percent___paA0sar8RKZqiwEaDfWo2A(T69_, 2);
		T71_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T71_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*field).loc);
		specializeResetT__2tWZcLKL9aUNXJnFJbKKN9aQ(p, T70_, T71_);
	}
	break;
	default:
	{
		internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_317));
	}
	break;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, specializeResetT__2tWZcLKL9aUNXJnFJbKKN9aQ)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* accessor, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
{	{
		if (!(typ == NIM_NIL)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	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):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T6_;
		T6_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T6_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(typ);
		specializeResetT__2tWZcLKL9aUNXJnFJbKKN9aQ(p, accessor, T6_);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
	{
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA arraySize;
		tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA i;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T8_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T9_;
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T18_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T19_;
		NimStringDesc* res_2;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T24_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T25_;
		tyArray__qTjAvTvKF9anytN1At69aJMQ T26_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T27_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T28_;
		if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1); }
		arraySize = lengthOrd__hjogdnp59cMX1rwmjikBhqw_3((*(*(*p).module).g).config, (*typ).sons->data[((NI) 0)]);
		nimZeroMem((void*)(&i), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
		T8_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T8_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*(*(*p).module).g).graph, TM__MQdRN7fpbG7rPm4JpVVAhA_147, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
		getTemp__VjOFVqypINqQv5C3ECnxbw(p, T8_, (&i), NIM_FALSE);
		T9_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T9_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA12_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA12_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 5);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_151));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), i.r);
		res = resizeString(res, 6);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_152));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), i.r);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_153));
		cgFormatValue__JXx3ANPSFqQ9c8gmnEaNQ9cA((&res), arraySize);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_154));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), i.r);
		res = resizeString(res, 5);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_155));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA16_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA16_: ;
		T18_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T18_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
		T19_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T19_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T18_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T9_, T19_);
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA22_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA22_: ;
		res_2 = rawNewString(((NI) 80));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), accessor);
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_157));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), i.r);
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_158));
		T24_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T24_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
		if ((NU)(((NI) 1)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*typ).sons ? (*typ).sons->Sup.len : 0)-1); }
		specializeResetT__2tWZcLKL9aUNXJnFJbKKN9aQ(p, T24_, (*typ).sons->data[((NI) 1)]);
		T25_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T25_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		nimZeroMem((void*)T26_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
		T27_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T27_ = percent___BYiowJAm8zF7RBRISElaLg(T26_, 0);
		T28_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T28_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T27_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T25_, T28_);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17):
	{
		{
			NI i_2;
			NI colontmp_;
			NI i_3;
			i_2 = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__5mJADrRYkP3r9auuiuDZN9cQast(typ);
			i_3 = ((NI) 0);
			{
				while (1) {
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* x;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T37_;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_314;
					if (!(i_3 < colontmp_)) goto LA32;
					i_2 = i_3;
					if ((NU)(i_2) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)){ raiseIndexError2(i_2,((*typ).sons ? (*typ).sons->Sup.len : 0)-1); }
					x = (*typ).sons->data[i_2];
					{
						if (!!((x == NIM_NIL))) goto LA35_;
						x = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(x, IL64(36275087638268176));
					}
					LA35_: ;
					T37_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T37_ = parentObj__uBOaBBiKguvub019cPppbOQcgen(accessor, (*p).module);
					specializeResetT__2tWZcLKL9aUNXJnFJbKKN9aQ(p, T37_, x);
					if (nimAddInt(i_3, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_314)) { raiseOverflow(); };
					i_3 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_314);
				} LA32: ;
			}
		}
		{
			if (!!(((*typ).n == NIM_NIL))) goto LA40_;
			specializeResetN__a4Eirucy5vgnjUqFNeFEfw(p, accessor, (*typ).n, typ);
		}
		LA40_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ_2;
		typ_2 = typ;
		{
			NI i_4;
			NI colontmp__2;
			NI i_5;
			i_4 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__5mJADrRYkP3r9auuiuDZN9cQast(typ_2);
			i_5 = ((NI) 0);
			{
				while (1) {
					NimStringDesc* res_3;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T50_;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_320;
					if (!(i_5 < colontmp__2)) goto LA45;
					i_4 = i_5;
					{
						if (!!(!(((*p).module == NIM_NIL)))) goto LA48_;
						failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
					}
					LA48_: ;
					res_3 = rawNewString(((NI) 80));
					cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), accessor);
					res_3 = resizeString(res_3, 6);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_194));
					cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res_3), ((NI64) (i_4)));
					T50_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T50_ = rope__yShmEg9cffWxI7s5XzEKBow(res_3);
					if ((NU)(i_4) >= (NU)((*typ_2).sons ? (*typ_2).sons->Sup.len : 0)){ raiseIndexError2(i_4,((*typ_2).sons ? (*typ_2).sons->Sup.len : 0)-1); }
					specializeResetT__2tWZcLKL9aUNXJnFJbKKN9aQ(p, T50_, (*typ_2).sons->data[i_4]);
					if (nimAddInt(i_5, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_320)) { raiseOverflow(); };
					i_5 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_320);
				} LA45: ;
			}
		}
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T52_;
		NimStringDesc* res_4;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T57_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T62_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T63_;
		T52_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T52_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA55_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA55_: ;
		res_4 = rawNewString(((NI) 80));
		T57_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T57_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_277));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T57_);
		res_4 = resizeString(res_4, 10);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_321));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), accessor);
		res_4 = resizeString(res_4, 11);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_322));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA60_;
			res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA60_: ;
		T62_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T62_ = rope__yShmEg9cffWxI7s5XzEKBow(res_4);
		T63_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T63_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T62_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T52_, T63_);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25):
	{
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T69_;
			NimStringDesc* res_5;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T74_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T79_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T80_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T81_;
			NimStringDesc* res_6;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T90_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T91_;
			if (!((*typ).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 8))) goto LA67_;
			T69_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T69_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA72_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA72_: ;
			res_5 = rawNewString(((NI) 80));
			T74_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T74_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_277));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T74_);
			res_5 = resizeString(res_5, 10);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_321));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), accessor);
			res_5 = resizeString(res_5, 17);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_323));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA77_;
				res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA77_: ;
			T79_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T79_ = rope__yShmEg9cffWxI7s5XzEKBow(res_5);
			T80_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T80_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T79_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T69_, T80_);
			T81_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T81_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA84_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA84_: ;
			res_6 = rawNewString(((NI) 80));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_6), accessor);
			res_6 = resizeString(res_6, 17);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_324));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA88_;
				res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA88_: ;
			T90_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T90_ = rope__yShmEg9cffWxI7s5XzEKBow(res_6);
			T91_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T91_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T90_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T81_, T91_);
		}
		goto LA65_;
		LA67_: ;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T93_;
			NimStringDesc* res_7;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T102_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T103_;
			T93_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T93_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA96_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA96_: ;
			res_7 = rawNewString(((NI) 80));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_7), accessor);
			res_7 = resizeString(res_7, 11);
appendString(res_7, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_325));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA100_;
				res_7 = resizeString(res_7, 1);
appendString(res_7, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA100_: ;
			T102_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T102_ = rope__yShmEg9cffWxI7s5XzEKBow(res_7);
			T103_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T103_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T102_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T93_, T103_);
		}
		LA65_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44):
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T105_;
		NimStringDesc* res_8;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T114_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T115_;
		T105_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T105_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA108_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA108_: ;
		res_8 = rawNewString(((NI) 80));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_8), accessor);
		res_8 = resizeString(res_8, 5);
appendString(res_8, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_312));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA112_;
			res_8 = resizeString(res_8, 1);
appendString(res_8, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA112_: ;
		T114_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T114_ = rope__yShmEg9cffWxI7s5XzEKBow(res_8);
		T115_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T115_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T114_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T105_, T115_);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 29):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 26):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47):
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T117_;
		NimStringDesc* res_9;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T126_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T127_;
		T117_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T117_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA120_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA120_: ;
		res_9 = rawNewString(((NI) 80));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_9), accessor);
		res_9 = resizeString(res_9, 11);
appendString(res_9, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_325));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA124_;
			res_9 = resizeString(res_9, 1);
appendString(res_9, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA124_: ;
		T126_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T126_ = rope__yShmEg9cffWxI7s5XzEKBow(res_9);
		T127_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T127_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T126_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T117_, T127_);
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, specializeReset__9cgrUeVA21BOQab6CBAvXRQ)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T1_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T2_;
	T1_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
	T2_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T2_ = t__XNOXh7uniWNgiq58C9bW49awcgen(a);
	specializeResetT__2tWZcLKL9aUNXJnFJbKKN9aQ(p, T1_, T2_);
}
N_LIB_PRIVATE N_NIMCALL(void, resetLoc__B9bNAYVEwjQtkUkvoOVhV2Q)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* loc) {
	NIM_BOOL containsGcRef;
	NIM_BOOL T1_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T3_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T4_;
{	T1_ = (NIM_BOOL)0;
	T1_ = !((((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 39))&63U)))!=0));
	if (!(T1_)) goto LA2_;
	T3_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T3_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*loc));
	T1_ = containsGarbageCollectedRef__IVXYI9cxSeivThgKCncHRnA_2(T3_);
	LA2_: ;
	containsGcRef = T1_;
	T4_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T4_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*loc));
	typ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(T4_, IL64(36134350144710928));
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = isImportedCppType__IafZhvqpthq9b9c13SFhzAOw(typ);
		if (!T7_) goto LA8_;
		goto BeforeRet_;
	}
	LA8_: ;
	{
		NIM_BOOL T12_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T21_;
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T26_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T27_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T32_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T33_;
		T12_ = (NIM_BOOL)0;
		T12_ = (((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 39))&63U)))!=0);
		if (!(T12_)) goto LA13_;
		T12_ = ((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28) || (*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24));
		LA13_: ;
		if (!T12_) goto LA14_;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T18_;
			T18_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T18_ = rdLoc__xidyzuHqIciXbQyEOKahDg((*loc));
			if (!!(!((T18_ == NIM_NIL)))) goto LA19_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_311));
		}
		LA19_: ;
		T21_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T21_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA24_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA24_: ;
		res = rawNewString(((NI) 80));
		T26_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T26_ = rdLoc__xidyzuHqIciXbQyEOKahDg((*loc));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T26_);
		res = resizeString(res, 10);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_106));
		T27_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T27_ = rdLoc__xidyzuHqIciXbQyEOKahDg((*loc));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T27_);
		res = resizeString(res, 13);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_107));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA30_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA30_: ;
		T32_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T32_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
		T33_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T33_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T32_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T21_, T33_);
	}
	goto LA10_;
	LA14_: ;
	{
		NIM_BOOL T35_;
		T35_ = (NIM_BOOL)0;
		T35_ = isComplexValueType__Fl17jclCP5VEr9a7Ycym1awcgen(typ);
		if (!!(T35_)) goto LA36_;
		{
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA nilLoc;
			if (!containsGcRef) goto LA40_;
			nimZeroMem((void*)(&nilLoc), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			initLoc__qlujIAW86QclHYUVxlHRiQ((&nilLoc), ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 1), (*loc).lode, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 2));
			nilLoc.r = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_127));
			genRefAssign__jdslQ8TsNpkTt8SvBLJjEA(p, (*loc), nilLoc);
		}
		goto LA38_;
		LA40_: ;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T43_;
			NimStringDesc* res_2;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T48_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T53_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T54_;
			T43_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T43_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA46_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA46_: ;
			res_2 = rawNewString(((NI) 80));
			T48_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T48_ = rdLoc__xidyzuHqIciXbQyEOKahDg((*loc));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T48_);
			res_2 = resizeString(res_2, 5);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_312));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA51_;
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA51_: ;
			T53_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T53_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
			T54_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T54_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T53_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T43_, T54_);
		}
		LA38_: ;
	}
	goto LA10_;
	LA36_: ;
	{
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T60_;
			NimStringDesc* res_3;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T65_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T66_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T71_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T72_;
			if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 6))&31U)))!=0)) goto LA58_;
			T60_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T60_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA63_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA63_: ;
			res_3 = rawNewString(((NI) 80));
			T65_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T65_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_313));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T65_);
			res_3 = resizeString(res_3, 8);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_111));
			T66_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T66_ = addrLoc__9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, (*loc));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T66_);
			res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA69_;
				res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA69_: ;
			T71_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T71_ = rope__yShmEg9cffWxI7s5XzEKBow(res_3);
			T72_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T72_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T71_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T60_, T72_);
		}
		LA58_: ;
		{
			NIM_BOOL T75_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T79_;
			T75_ = (NIM_BOOL)0;
			T75_ = !(((*loc).storage == ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 2)));
			if (!(T75_)) goto LA76_;
			T75_ = containsGcRef;
			LA76_: ;
			if (!T75_) goto LA77_;
			specializeReset__9cgrUeVA21BOQab6CBAvXRQ(p, (*loc));
			T79_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T79_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*loc));
			genObjectInit__UANnSFbuKD1BS6RrMbZs2A(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2), T79_, loc, ((tyEnum_ObjConstrMode__9agQ3x8C5KfK9c9a3uY9abfUTw) 0));
		}
		goto LA73_;
		LA77_: ;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T81_;
			NimStringDesc* res_4;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T86_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T87_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T88_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T89_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T94_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T95_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T96_;
			T81_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T81_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA84_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA84_: ;
			res_4 = rawNewString(((NI) 80));
			T86_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T86_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_110));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T86_);
			res_4 = resizeString(res_4, 8);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_111));
			T87_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T87_ = addrLoc__9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, (*loc));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T87_);
			res_4 = resizeString(res_4, 9);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_113));
			T88_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T88_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*loc));
			T89_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T89_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, T88_);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T89_);
			res_4 = resizeString(res_4, 3);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_114));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA92_;
				res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA92_: ;
			T94_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T94_ = rope__yShmEg9cffWxI7s5XzEKBow(res_4);
			T95_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T95_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T94_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T81_, T95_);
			T96_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T96_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*loc));
			genObjectInit__UANnSFbuKD1BS6RrMbZs2A(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2), T96_, loc, ((tyEnum_ObjConstrMode__9agQ3x8C5KfK9c9a3uY9abfUTw) 0));
		}
		LA73_: ;
	}
	LA10_: ;
	}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;
{	{
		if (!!((((*(*prc).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 12))&63U)))!=0))) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*prc).ast).kind)>>3] &(1U<<((NU)((*(*prc).ast).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 3)) >= (NU)((*(*prc).ast)._kind_6.sons ? (*(*prc).ast)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 3),((*(*prc).ast)._kind_6.sons ? (*(*prc).ast)._kind_6.sons->Sup.len : 0)-1); }
	ls = lastSon__UPSW0jLTX5qJL51YMUAHgw((*(*prc).ast)._kind_6.sons->data[((NI) 3)]);
	{
		if (!!(((*ls).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA7_;
		internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*prc).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_327));
	}
	LA7_: ;
	if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*ls).kind)>>3] &(1U<<((NU)((*ls).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
	env = (*ls)._kind_4.sym;
	assignLocalVar__UtJx89cn0a8CNSWWmaj6raA(p, ls);
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T13_;
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T18_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T19_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T20_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T25_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T26_;
		if (!((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw) 10))) goto LA11_;
		T13_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T13_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA16_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA16_: ;
		res = rawNewString(((NI) 80));
		T18_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T18_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_277));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T18_);
		res = resizeString(res, 10);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_276));
		T19_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T19_ = addrLoc__9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, (*env).loc);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T19_);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_328));
		T20_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T20_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, (*env).typ);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T20_);
		res = resizeString(res, 9);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_329));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA23_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA23_: ;
		T25_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T25_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
		T26_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T26_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T25_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T13_, T26_);
	}
	goto LA9_;
	LA11_: ;
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T28_;
		NimStringDesc* res_2;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T33_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T34_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T39_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T40_;
		T28_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T28_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA31_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA31_: ;
		res_2 = rawNewString(((NI) 80));
		T33_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T33_ = rdLoc__xidyzuHqIciXbQyEOKahDg((*env).loc);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T33_);
		res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_108));
		T34_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T34_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, (*env).typ);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T34_);
		res_2 = resizeString(res_2, 8);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_330));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA37_;
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA37_: ;
		T39_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T39_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
		T40_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T40_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T39_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T28_, T40_);
	}
	LA9_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genProcBody__IroqGJs3T8by0fVw4XMZJg)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* procBody) {
	genStmts__QrTB5DOwbDX9bKAW7PNbuJA(p, procBody);
	{
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T13_;
		NimStringDesc* res_2;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T18_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T23_;
		if (!((48 & (*p).flags) == 16)) goto LA3_;
		(*p).flags |= ((NU8)1)<<((((tyEnum_TCProcFlag__LgBeaca7tT1nUR7RL1RjPQ) 5)) & 7);
		if ((NU)(((NI) 0)) >= (NU)((*p).blocks ? (*p).blocks->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*p).blocks ? (*p).blocks->Sup.len : 0)-1); }
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA7_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA7_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 18);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_331));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA11_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA11_: ;
		T13_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T13_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*p).blocks->data[((NI) 0)].sections[(((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 0))- 0], T13_);
		if ((NU)(((NI) 0)) >= (NU)((*p).blocks ? (*p).blocks->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*p).blocks ? (*p).blocks->Sup.len : 0)-1); }
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA16_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA16_: ;
		res_2 = rawNewString(((NI) 80));
		res_2 = resizeString(res_2, 10);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_332));
		T18_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T18_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_333));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T18_);
		res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_334));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA21_;
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA21_: ;
		T23_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T23_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*p).blocks->data[((NI) 0)].sections[(((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 1))- 0], T23_);
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genCLineDir__W2V1U5l2z2M9c2i5Phjz9cow)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** r, NimStringDesc* filename, NI line, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf) {
	{
		if (!!((((NI) 0) <= line))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_335));
	}
	LA3_: ;
	{
		tyArray__mrugoXXRZUEeG9bEXo9auBKw T9_;
		NimStringDesc* T10_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T11_;
		if (!(((*conf).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0)) goto LA7_;
		nimZeroMem((void*)T9_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
		T10_ = (NimStringDesc*)0;
		T10_ = makeSingleLineCString__rMRFcrOdLs9cBLwxpf0jLag(filename);
		T9_[0] = rope__yShmEg9cffWxI7s5XzEKBow(T10_);
		T9_[1] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (line)));
		T11_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T11_ = percent___lS9bA1j3Ue6pp7sCliDsT8g(T9_, 2);
		add__IM4kcMNkkOLJtqdEqSxR8A(r, T11_);
	}
	LA7_: ;
}
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__VW1RaR1l9c9bPnJxr1KuvIrg(conf, info.fileIndex);
	T2_ = (NI)0;
	T2_ = safeLineNm__cb5f0VvvxoagMath9ay3UuQ(info);
	genCLineDir__W2V1U5l2z2M9c2i5Phjz9cow(r, T1_, T2_, conf);
}
static N_INLINE(NIM_BOOL, isNoReturn__wKa9aVgc3t9a9atx3OlQKTJyQcgen)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 16))&63U)))!=0);
	if (!(T1_)) goto LA2_;
	T1_ = !(((*(*(*m).g).config).exc == ((tyEnum_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ) 3)));
	LA2_: ;
	result = T1_;
	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* T13_;
	NimStringDesc* res_2;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		NI T3_;
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T10_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T11_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T12_;
		T3_ = (NI)0;
		T3_ = len__9b0YRltzV3kNSE9aQTsG82wg((*(*p).module).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 2))- 0]);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA8_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA8_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_247));
		cgFormatValue__GOaK9aDgu4cLOYhocodpf3Q((&res), ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_340));
		res = resizeString(res, 125);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_341));
		T10_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T10_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_342));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T10_);
		res = resizeString(res, 11);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_343));
		cgFormatValue__GOaK9aDgu4cLOYhocodpf3Q((&res), ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_340));
		res = resizeString(res, 232);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_344));
		T11_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T11_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_342));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T11_);
		res = resizeString(res, 20);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_345));
		cgFormatValue__GOaK9aDgu4cLOYhocodpf3Q((&res), ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_340));
		res = resizeString(res, 70);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_346));
		T12_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*(*p).module).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 2))- 0], T12_);
	}
	LA4_: ;
	T13_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T13_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_342));
	(void)(T13_);
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA16_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
	}
	LA16_: ;
	res_2 = rawNewString(((NI) 80));
	res_2 = resizeString(res_2, 8);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_347));
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), procname);
	res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), filename);
	res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA20_;
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
	}
	LA20_: ;
	result = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, deinitFrame__3AsTOpq9crZUYBL9aD1lXBng_3)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	NimStringDesc* res;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T5_;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
	}
	LA3_: ;
	res = rawNewString(((NI) 80));
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_16));
	T5_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T5_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_349));
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T5_);
	res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_334));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA8_;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
	}
	LA8_: ;
	result = rope__yShmEg9cffWxI7s5XzEKBow(res);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getProcTypeCast__kjPRfLdGk3b78KhSOOjbOA)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* prc) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*prc).loc);
	result = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA(m, T1_);
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* rettype;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* params;
		tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg check;
		tyArray__mrugoXXRZUEeG9bEXo9auBKw T6_;
		if (!((*(*prc).typ).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 8))) goto LA4_;
		rettype = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		params = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		nimZeroMem((void*)(&check), sizeof(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg));
		initIntSet__n8oDZMn19bEdodSnrBQB9a1Q((&check));
		genProcParams__uApDq1rn2zPxULBMpTSrxQ(m, (*prc).typ, &rettype, &params, (&check), NIM_TRUE, NIM_FALSE);
		nimZeroMem((void*)T6_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
		T6_[0] = rettype;
		T6_[1] = params;
		result = percent___tgUnLdPVK0vRqC0pWxMClQ(T6_, 2);
	}
	LA4_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genProcAux__HbYPOpwLApFuBkISFGrmEQ_4)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* prc) {
	tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* header;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* returnStmt;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* procBody;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* generatedProc;
	p = newProc__r9c9cj4fW68RhY7ht9btSvB8w(prc, m);
	header = genProcHeader__OWG529cW3RTHLgDJuQoIH8A(m, prc, NIM_FALSE);
	returnStmt = NIM_NIL;
	{
		if (!!(!(((*prc).ast == NIM_NIL)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_93));
	}
	LA3_: ;
	procBody = transformBody__ocxOgPRHWfivNZELIhOv7w((*(*m).g).graph, prc, NIM_FALSE);
	{
		if (!(((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 41))&63U)))!=0)) goto LA7_;
		procBody = injectDestructorCalls__vFi0WDJke19caFCX1tc1FkQ((*(*m).g).graph, prc, procBody);
	}
	LA7_: ;
	{
		NIM_BOOL T11_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resNode;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* res;
		T11_ = (NIM_BOOL)0;
		T11_ = !((((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 11))&63U)))!=0));
		if (!(T11_)) goto LA12_;
		if ((NU)(((NI) 0)) >= (NU)((*(*prc).typ).sons ? (*(*prc).typ).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*prc).typ).sons ? (*(*prc).typ).sons->Sup.len : 0)-1); }
		T11_ = !(((*(*prc).typ).sons->data[((NI) 0)] == NIM_NIL));
		LA12_: ;
		if (!T11_) goto LA13_;
		{
			NI T17_;
			T17_ = (NI)0;
			T17_ = len__P89cqdlERShb9alU3iC0yj8wast((*prc).ast);
			if (!(T17_ <= ((NI) 7))) goto LA18_;
			internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*m).g).config, (*prc).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_94));
		}
		LA18_: ;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*prc).ast).kind)>>3] &(1U<<((NU)((*(*prc).ast).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 7)) >= (NU)((*(*prc).ast)._kind_6.sons ? (*(*prc).ast)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 7),((*(*prc).ast)._kind_6.sons ? (*(*prc).ast)._kind_6.sons->Sup.len : 0)-1); }
		resNode = (*(*prc).ast)._kind_6.sons->data[((NI) 7)];
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*resNode).kind)>>3] &(1U<<((NU)((*resNode).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
		res = (*resNode)._kind_4.sym;
		{
			NIM_BOOL T22_;
			NimStringDesc* res_3;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T60_;
			if ((NU)(((NI) 0)) >= (NU)((*(*prc).typ).sons ? (*(*prc).typ).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*prc).typ).sons ? (*(*prc).typ).sons->Sup.len : 0)-1); }
			T22_ = (NIM_BOOL)0;
			T22_ = isInvalidReturnType__ugBeCbo3I6LqXHcpCBFN9ag((*(*m).g).config, (*(*prc).typ).sons->data[((NI) 0)]);
			if (!!(T22_)) goto LA23_;
			{
				if (!(((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 14))&63U)))!=0)) goto LA27_;
				(*res).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 14)) & 63);
			}
			LA27_: ;
			{
				NIM_BOOL T31_;
				NIM_BOOL T32_;
				NIM_BOOL T34_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* val;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* decl;
				tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T39_;
				NimStringDesc* res_2;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T44_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T49_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T50_;
				T31_ = (NIM_BOOL)0;
				T32_ = (NIM_BOOL)0;
				T32_ = (((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 14))&63U)))!=0);
				if (!(T32_)) goto LA33_;
				T34_ = (NIM_BOOL)0;
				T34_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands__VH3ghgQVwLSg3krOAoXigw) 2));
				if (T34_) goto LA35_;
				T34_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 31))&63U)))!=0);
				LA35_: ;
				T32_ = T34_;
				LA33_: ;
				T31_ = T32_;
				if (!(T31_)) goto LA36_;
				val = easyResultAsgn__oKhRC9bEKTxG5epdNiNWZ0w(procBody);
				T31_ = !((val == NIM_NIL));
				LA36_: ;
				if (!T31_) goto LA37_;
				decl = localVarDecl__NYI5fC69aIqZGRakncXv9cNQ(p, resNode);
				nimZeroMem((void*)(&a), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
				initLocExprSingleUse__9biTBaXPz9cezuLjjWw9cSEGw(p, val, (&a));
				T39_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T39_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA42_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA42_: ;
				res_2 = rawNewString(((NI) 80));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), decl);
				res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_103));
				T44_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T44_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T44_);
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_104));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA47_;
					res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA47_: ;
				T49_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T49_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
				T50_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T50_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T49_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T39_, T50_);
			}
			goto LA29_;
			LA37_: ;
			{
				assignLocalVar__UtJx89cn0a8CNSWWmaj6raA(p, resNode);
				{
					if (!!(!(((*res).loc.r == NIM_NIL)))) goto LA54_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_105));
				}
				LA54_: ;
				initLocalVar__EpeofNfMJPurx0duaALCaA(p, res, NIM_FALSE);
			}
			LA29_: ;
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA58_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA58_: ;
			res_3 = rawNewString(((NI) 80));
			res_3 = resizeString(res_3, 8);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_304));
			T60_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T60_ = rdLoc__xidyzuHqIciXbQyEOKahDg((*res).loc);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T60_);
			res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_104));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA63_;
				res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA63_: ;
			returnStmt = rope__yShmEg9cffWxI7s5XzEKBow(res_3);
		}
		goto LA20_;
		LA23_: ;
		{
			fillResult__p9cP79bBkRq6WIT5fOHMaTzQ((*(*(*p).module).g).config, resNode);
			if ((NU)(((NI) 0)) >= (NU)((*(*prc).typ).sons ? (*(*prc).typ).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*prc).typ).sons ? (*(*prc).typ).sons->Sup.len : 0)-1); }
			assignParam__9aFEJaMCg37I5D9b15sgctsw(p, res, (*(*prc).typ).sons->data[((NI) 0)]);
			{
				if (!(((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 14))&63U)))!=0)) goto LA68_;
			}
			goto LA66_;
			LA68_: ;
			{
				tyEnum_InitResultEnum__9c9csRan2YP9boKbiUR9cP6PNg T71_;
				T71_ = (tyEnum_InitResultEnum__9c9csRan2YP9boKbiUR9cP6PNg)0;
				T71_ = allPathsAsgnResult__3E19a9b4Xsk8ypT9b1MEmPyCQ(procBody);
				if (!(T71_ == ((tyEnum_InitResultEnum__9c9csRan2YP9boKbiUR9cP6PNg) 1))) goto LA72_;
			}
			goto LA66_;
			LA72_: ;
			{
				resetLoc__B9bNAYVEwjQtkUkvoOVhV2Q(p, (&(*res).loc));
			}
			LA66_: ;
			{
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T77_;
				T77_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T77_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*res).typ, IL64(36134350135273744));
				if (!((*T77_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16))) goto LA78_;
				(*res).loc.storage = ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0);
			}
			LA78_: ;
		}
		LA20_: ;
	}
	LA13_: ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast((*(*prc).typ).n);
		i_2 = ((NI) 1);
		{
			while (1) {
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_326;
				if (!(i_2 < colontmp_)) goto LA82;
				i = i_2;
				{
					tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* param;
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*(*prc).typ).n).kind)>>3] &(1U<<((NU)((*(*(*prc).typ).n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i) >= (NU)((*(*(*prc).typ).n)._kind_6.sons ? (*(*(*prc).typ).n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*(*(*prc).typ).n)._kind_6.sons ? (*(*(*prc).typ).n)._kind_6.sons->Sup.len : 0)-1); }
					if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*(*(*prc).typ).n)._kind_6.sons->data[i]).kind)>>3] &(1U<<((NU)((*(*(*(*prc).typ).n)._kind_6.sons->data[i]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
					param = (*(*(*(*prc).typ).n)._kind_6.sons->data[i])._kind_4.sym;
					{
						NIM_BOOL T86_;
						T86_ = (NIM_BOOL)0;
						T86_ = isCompileTimeOnly__F9ciDIanrWYqbJ4rgLlNAAg_3types((*param).typ);
						if (!T86_) goto LA87_;
						goto LA83;
					}
					LA87_: ;
					if ((NU)(((NI) 0)) >= (NU)((*(*prc).typ).sons ? (*(*prc).typ).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*prc).typ).sons ? (*(*prc).typ).sons->Sup.len : 0)-1); }
					assignParam__9aFEJaMCg37I5D9b15sgctsw(p, param, (*(*prc).typ).sons->data[((NI) 0)]);
				} LA83: ;
				if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_326)) { raiseOverflow(); };
				i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_326);
			} LA82: ;
		}
	}
	closureSetup__PDMGXd7Yn9cB79asQW3arukQ(p, prc);
	genProcBody__IroqGJs3T8by0fVw4XMZJg(p, procBody);
	generatedProc = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	genCLineDir__8gOq38UiI9arVxZ9at35m22Q(&generatedProc, (*prc).info, (*(*m).g).config);
	{
		NIM_BOOL T91_;
		T91_ = (NIM_BOOL)0;
		T91_ = isNoReturn__wKa9aVgc3t9a9atx3OlQKTJyQcgen((*p).module, prc);
		if (!T91_) goto LA92_;
		{
			if ((*(*(*(*p).module).g).config).cCompiler < 1 || (*(*(*(*p).module).g).config).cCompiler > 15){ raiseIndexError3((*(*(*(*p).module).g).config).cCompiler, 1, 15); }
			if (!((CC__78I18QZNZFIv9ah7oETc0jg[((*(*(*(*p).module).g).config).cCompiler)- 1].Field21 &(1U<<((NU)(((tyEnum_TInfoCCProp__49cn73TjZ7Rt9b8QCAU8tLNg) 6))&7U)))!=0)) goto LA96_;
			header = amp___4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_336), header);
		}
		LA96_: ;
	}
	LA92_: ;
	{
		NimStringDesc* res_4;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T114_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T115_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T116_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T117_;
		if (!(((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 11))&63U)))!=0)) goto LA100_;
		{
			if ((*(*(*(*p).module).g).config).cCompiler < 1 || (*(*(*(*p).module).g).config).cCompiler > 15){ raiseIndexError3((*(*(*(*p).module).g).config).cCompiler, 1, 15); }
			if (!((CC__78I18QZNZFIv9ah7oETc0jg[((*(*(*(*p).module).g).config).cCompiler)- 1].Field21 &(1U<<((NU)(((tyEnum_TInfoCCProp__49cn73TjZ7Rt9b8QCAU8tLNg) 6))&7U)))!=0)) goto LA104_;
			header = amp___4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_337), header);
		}
		LA104_: ;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA108_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA108_: ;
		res_4 = rawNewString(((NI) 80));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), header);
		res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_338));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA112_;
			res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA112_: ;
		T114_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T114_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 0));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), (*T114_));
		T115_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T115_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 1));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), (*T115_));
		T116_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T116_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), (*T116_));
		res_4 = resizeString(res_4, 3);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_339));
		T117_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T117_ = rope__yShmEg9cffWxI7s5XzEKBow(res_4);
		add__IM4kcMNkkOLJtqdEqSxR8A(&generatedProc, T117_);
	}
	goto LA98_;
	LA100_: ;
	{
		NimStringDesc* res_5;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T135_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T164_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T165_;
		tyArray__qTjAvTvKF9anytN1At69aJMQ T177_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T178_;
		{
			NIM_BOOL T121_;
			tyArray__JiWwrsTRC6xqNlGcBthSVA T125_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T126_;
			T121_ = (NIM_BOOL)0;
			T121_ = hcrOn__a2BRACVCGIuooKjHNmoLsA(m);
			if (!(T121_)) goto LA122_;
			T121_ = isReloadable__bilAk8nY4d5fxUpVg9bnphQ(m, prc);
			LA122_: ;
			if (!T121_) goto LA123_;
			nimZeroMem((void*)T125_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
			T125_[0] = header;
			T126_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T126_ = percent___QqzUiJcAEZE2azDhIWHrgg(T125_, 1);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], T126_);
		}
		LA123_: ;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA129_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA129_: ;
		res_5 = rawNewString(((NI) 80));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), header);
		res_5 = resizeString(res_5, 2);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_338));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA133_;
			res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA133_: ;
		T135_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T135_ = rope__yShmEg9cffWxI7s5XzEKBow(res_5);
		add__IM4kcMNkkOLJtqdEqSxR8A(&generatedProc, T135_);
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T140_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* procname;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T141_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T142_;
			if (!(((*prc).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 18))&31U)))!=0)) goto LA138_;
			T140_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T140_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 0));
			add__IM4kcMNkkOLJtqdEqSxR8A(&generatedProc, (*T140_));
			procname = makeCString__vQJydtKy4Nf6bXPYtbmjtg((*(*prc).name).s);
			T141_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T141_ = quotedFilename__2Kbe7lBq9cqJa8J9cn4WRepg((*(*(*p).module).g).config, (*prc).info);
			T142_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T142_ = initFrame__hSB0mXJGcFil9bvrhp0Qm5g(p, procname, T141_);
			add__IM4kcMNkkOLJtqdEqSxR8A(&generatedProc, T142_);
		}
		goto LA136_;
		LA138_: ;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T144_;
			T144_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T144_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 0));
			add__IM4kcMNkkOLJtqdEqSxR8A(&generatedProc, (*T144_));
		}
		LA136_: ;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T149_;
			NimStringDesc* res_6;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T154_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T159_;
			if (!(((*prc).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 22))&31U)))!=0)) goto LA147_;
			T149_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T149_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 1));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA152_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA152_: ;
			res_6 = rawNewString(((NI) 80));
			res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_16));
			T154_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T154_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_348));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T154_);
			res_6 = resizeString(res_6, 3);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_334));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA157_;
				res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA157_: ;
			T159_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T159_ = rope__yShmEg9cffWxI7s5XzEKBow(res_6);
			add__IM4kcMNkkOLJtqdEqSxR8A(T149_, T159_);
		}
		LA147_: ;
		{
			if (!(((*p).flags &(1U<<((NU)(((tyEnum_TCProcFlag__LgBeaca7tT1nUR7RL1RjPQ) 0))&7U)))!=0)) goto LA162_;
			add__yG4AKzsBRS1W4MANDlXQeg(&generatedProc, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA162_: ;
		T164_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T164_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 1));
		add__IM4kcMNkkOLJtqdEqSxR8A(&generatedProc, (*T164_));
		T165_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T165_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		add__IM4kcMNkkOLJtqdEqSxR8A(&generatedProc, (*T165_));
		{
			tyArray__qTjAvTvKF9anytN1At69aJMQ T170_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T171_;
			if (!(((*p).flags &(1U<<((NU)(((tyEnum_TCProcFlag__LgBeaca7tT1nUR7RL1RjPQ) 0))&7U)))!=0)) goto LA168_;
			nimZeroMem((void*)T170_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
			T171_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T171_ = percent___BBAyGuVoK6QA7nXfPUIYKA(T170_, 0);
			add__IM4kcMNkkOLJtqdEqSxR8A(&generatedProc, T171_);
		}
		LA168_: ;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T176_;
			if (!(((*prc).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 18))&31U)))!=0)) goto LA174_;
			T176_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T176_ = deinitFrame__3AsTOpq9crZUYBL9aD1lXBng_3(p);
			add__IM4kcMNkkOLJtqdEqSxR8A(&generatedProc, T176_);
		}
		LA174_: ;
		add__IM4kcMNkkOLJtqdEqSxR8A(&generatedProc, returnStmt);
		nimZeroMem((void*)T177_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
		T178_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T178_ = percent___g9b9arp3BWCGRHDe21SJso6w(T177_, 0);
		add__IM4kcMNkkOLJtqdEqSxR8A(&generatedProc, T178_);
	}
	LA98_: ;
	add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0], generatedProc);
	{
		NIM_BOOL T181_;
		tyArray__f7nG5LD47BH5K9c6mASit3g T184_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T185_;
		T181_ = (NIM_BOOL)0;
		T181_ = isReloadable__bilAk8nY4d5fxUpVg9bnphQ(m, prc);
		if (!T181_) goto LA182_;
		nimZeroMem((void*)T184_, sizeof(tyArray__f7nG5LD47BH5K9c6mASit3g));
		T184_[0] = (*prc).loc.r;
		T184_[1] = amp___Z7W1o5nPSc3ExfO5f7j1Gg((*prc).loc.r, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_79));
		T184_[2] = getProcTypeCast__kjPRfLdGk3b78KhSOOjbOA(m, prc);
		T184_[3] = getModuleDllPath__RaNE9b8A430I9bfpgZmdrC1w_3(m, prc);
		T185_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T185_ = percent___09aVguRR64dWfw4b6fKBcqg(T184_, 4);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 18))- 0], T185_);
	}
	LA182_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isGetProcAddr__SYG8r9a6ANje3aBM5rYzaeg)(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_ = ((*(*n).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 26) || (*(*n).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
	LA4_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, loadDynamicLib__Q3RS49c6kF7OS9bmwvFHRQJQ)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA* lib) {
	{
		if (!!(!((lib == NIM_NIL)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_350));
	}
	LA3_: ;
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* tmp;
		tyArray__JiWwrsTRC6xqNlGcBthSVA T13_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T14_;
		if (!!((*lib).generated)) goto LA7_;
		(*lib).generated = NIM_TRUE;
		tmp = getTempName__ao6gUnuVfQLtZ89c4kaIKfg(m);
		{
			if (!!(((*lib).name == NIM_NIL))) goto LA11_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_351));
		}
		LA11_: ;
		asgnRef((void**) (&(*lib).name), tmp);
		nimZeroMem((void*)T13_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
		T13_[0] = tmp;
		T14_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = percent___FBNsdfF5FNrY4P9cYQIfvZQ(T13_, 1);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], T14_);
		{
			tySequence__sM4lkSb7zS6F7OVMvW9cffQ* s;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* loadlib;
			NimStringDesc* res_3;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T42_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T43_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T48_;
			if (!((*(*lib).path).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*(*lib).path).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22))) goto LA17_;
			s = NIM_NIL;
			if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_91[(NU)((*(*lib).path).kind)>>3] &(1U<<((NU)((*(*lib).path).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_92)); }
			libCandidates__TEY9aqiaMWVK2l0NzZy7BwQ((*(*lib).path)._kind_3.strVal, (&s));
			if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_91[(NU)((*(*lib).path).kind)>>3] &(1U<<((NU)((*(*lib).path).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_92)); }
			rawMessage__h30HgTFwbGq0PsyHmRqZ8g((*(*m).g).config, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 70), (*(*lib).path)._kind_3.strVal);
			loadlib = NIM_NIL;
			{
				NI i;
				NI colontmp_;
				NI T20_;
				NI res;
				i = (NI)0;
				colontmp_ = (NI)0;
				T20_ = ((s ? s->Sup.len : 0)-1);
				colontmp_ = T20_;
				res = ((NI) 0);
				{
					while (1) {
						NI TM__MQdRN7fpbG7rPm4JpVVAhA_352;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
						NimStringDesc* res_2;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T31_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T32_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T37_;
						NI TM__MQdRN7fpbG7rPm4JpVVAhA_356;
						if (!(res <= colontmp_)) goto LA22;
						i = res;
						if (nimAddInt((*m).labels, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_352)) { raiseOverflow(); };
						if (TM__MQdRN7fpbG7rPm4JpVVAhA_352 < 0 || TM__MQdRN7fpbG7rPm4JpVVAhA_352 > 2147483647){ raiseOverflow(); }
						(*m).labels = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_352);
						{
							if (!(((NI) 0) < i)) goto LA25_;
							add__yG4AKzsBRS1W4MANDlXQeg(&loadlib, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_353));
						}
						LA25_: ;
						if ((NU)(i) >= (NU)(s ? s->Sup.len : 0)){ raiseIndexError2(i,(s ? s->Sup.len : 0)-1); }
						n = newStrNode__zLcHGdlEbBYFtoCoan9agkg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20), s->data[i]);
						(*n).info = (*(*lib).path).info;
						{
							if (!!(!((m == NIM_NIL)))) goto LA29_;
							failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_30));
						}
						LA29_: ;
						res_2 = rawNewString(((NI) 80));
						res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
						cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), tmp);
						res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_103));
						T31_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T31_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_354));
						cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T31_);
						res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
						T32_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T32_ = genStringLiteral__SO73hKlDdl5sMaSHTbOJLw(m, n);
						cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T32_);
						res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_355));
						{
							if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA35_;
							res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
						}
						LA35_: ;
						T37_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T37_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
						add__IM4kcMNkkOLJtqdEqSxR8A(&loadlib, T37_);
						if (nimAddInt(res, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_356)) { raiseOverflow(); };
						res = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_356);
					} LA22: ;
				}
			}
			{
				if (!!(!((m == NIM_NIL)))) goto LA40_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_30));
			}
			LA40_: ;
			res_3 = rawNewString(((NI) 80));
			res_3 = resizeString(res_3, 6);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_357));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), loadlib);
			res_3 = resizeString(res_3, 3);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_358));
			T42_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T42_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_359));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T42_);
			res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
			T43_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T43_ = genStringLiteral__SO73hKlDdl5sMaSHTbOJLw(m, (*lib).path);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T43_);
			res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
			{
				if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA46_;
				res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA46_: ;
			T48_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T48_ = rope__yShmEg9cffWxI7s5XzEKBow(res_3);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 18))- 0], T48_);
		}
		goto LA15_;
		LA17_: ;
		{
			tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p;
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA dest;
			NimStringDesc* res_4;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T54_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T55_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T60_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T61_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T62_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T63_;
			NimStringDesc* res_5;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T68_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T69_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T70_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T71_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T76_;
			p = newProc__r9c9cj4fW68RhY7ht9btSvB8w(NIM_NIL, m);
			(*p).options = ((*p).options & ~ 262144);
			(*p).flags |= ((NU8)1)<<((((tyEnum_TCProcFlag__LgBeaca7tT1nUR7RL1RjPQ) 6)) & 7);
			nimZeroMem((void*)(&dest), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			initLoc__qlujIAW86QclHYUVxlHRiQ((&dest), ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 1), (*lib).path, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 2));
			dest.r = getTempName__ao6gUnuVfQLtZ89c4kaIKfg(m);
			{
				if (!!(!((m == NIM_NIL)))) goto LA52_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_30));
			}
			LA52_: ;
			res_4 = rawNewString(((NI) 80));
			T54_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T54_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA(m, (*(*lib).path).typ);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T54_);
			res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_33));
			T55_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T55_ = rdLoc__xidyzuHqIciXbQyEOKahDg(dest);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T55_);
			res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_104));
			{
				if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA58_;
				res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA58_: ;
			T60_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T60_ = rope__yShmEg9cffWxI7s5XzEKBow(res_4);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 18))- 0], T60_);
			expr__8mAL9ckajemzgfLPfeZVNoQ(p, (*lib).path, (&dest));
			T61_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T61_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 0));
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], (*T61_));
			T62_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T62_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 1));
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 18))- 0], (*T62_));
			T63_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T63_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 18))- 0], (*T63_));
			{
				if (!!(!((m == NIM_NIL)))) goto LA66_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_30));
			}
			LA66_: ;
			res_5 = rawNewString(((NI) 80));
			res_5 = resizeString(res_5, 6);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_357));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), tmp);
			res_5 = resizeString(res_5, 3);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_103));
			T68_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T68_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_354));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T68_);
			res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
			T69_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T69_ = rdLoc__xidyzuHqIciXbQyEOKahDg(dest);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T69_);
			res_5 = resizeString(res_5, 4);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_360));
			T70_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T70_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_359));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T70_);
			res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
			T71_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T71_ = rdLoc__xidyzuHqIciXbQyEOKahDg(dest);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T71_);
			res_5 = resizeString(res_5, 2);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
			{
				if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA74_;
				res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA74_: ;
			T76_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T76_ = rope__yShmEg9cffWxI7s5XzEKBow(res_5);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 18))- 0], T76_);
		}
		LA15_: ;
	}
	LA7_: ;
	{
		if (!((*lib).name == NIM_NIL)) goto LA79_;
		internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_361));
	}
	LA79_: ;
}
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) 18))&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_362), T6_);
		result = rope__yShmEg9cffWxI7s5XzEKBow(T7_);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, symInDynamicLib__TAVDUakAwQnRHDK9cFe6L7g_3)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym) {
	tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA* lib;
	NIM_BOOL isCall;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* extname;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* tmp;
	NI TM__MQdRN7fpbG7rPm4JpVVAhA_363;
	tyArray__mrugoXXRZUEeG9bEXo9auBKw T52_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T53_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T54_;
	lib = (*sym).annex;
	isCall = isGetProcAddr__SYG8r9a6ANje3aBM5rYzaeg(lib);
	extname = (*sym).loc.r;
	{
		if (!!(isCall)) goto LA3_;
		loadDynamicLib__Q3RS49c6kF7OS9bmwvFHRQJQ(m, lib);
	}
	LA3_: ;
	tmp = mangleDynLibProc__MkmvPNwLUVhzodPsMjdbJw(sym);
	asgnRef((void**) (&(*sym).loc.r), tmp);
	asgnRef((void**) (&(*(*sym).typ).sym), NIM_NIL);
	if (nimAddInt((*m).labels, ((NI) 2), &TM__MQdRN7fpbG7rPm4JpVVAhA_363)) { raiseOverflow(); };
	if (TM__MQdRN7fpbG7rPm4JpVVAhA_363 < 0 || TM__MQdRN7fpbG7rPm4JpVVAhA_363 > 2147483647){ raiseOverflow(); }
	(*m).labels = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_363);
	{
		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));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2((*m).initProc, (*n)._kind_6.sons->data[((NI) 0)], (&a));
		T9_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T9_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		params = amp___Z7W1o5nPSc3ExfO5f7j1Gg(T9_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		{
			NI i;
			NI colontmp_;
			NI T11_;
			NI TM__MQdRN7fpbG7rPm4JpVVAhA_364;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			T11_ = (NI)0;
			T11_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (nimSubInt(T11_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_364)) { raiseOverflow(); };
			colontmp_ = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_364);
			i_2 = ((NI) 1);
			{
				while (1) {
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T14_;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_365;
					if (!(i_2 < colontmp_)) goto LA13;
					i = i_2;
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
					initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2((*m).initProc, (*n)._kind_6.sons->data[i], (&a));
					T14_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T14_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
					add__IM4kcMNkkOLJtqdEqSxR8A(&params, T14_);
					add__yG4AKzsBRS1W4MANDlXQeg(&params, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
					if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_365)) { raiseOverflow(); };
					i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_365);
				} LA13: ;
			}
		}
		nimZeroMem((void*)T15_, sizeof(tyArray__f7nG5LD47BH5K9c6mASit3g));
		T15_[0] = tmp;
		T15_[1] = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA(m, (*sym).typ);
		T15_[2] = params;
		T16_ = (NimStringDesc*)0;
		T16_ = dollar___mZ66tEveFIQokq3arf8Klw(extname);
		T15_[3] = makeCString__vQJydtKy4Nf6bXPYtbmjtg(T16_);
		load = percent___cB7zULPbG5vWWdCukRjdqg(T15_, 4);
		last = lastSon__UPSW0jLTX5qJL51YMUAHgw(n);
		{
			if (!((*last).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58))) goto LA19_;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*last).kind)>>3] &(1U<<((NU)((*last).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 1)) >= (NU)((*last)._kind_6.sons ? (*last)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*last)._kind_6.sons ? (*last)._kind_6.sons->Sup.len : 0)-1); }
			last = (*last)._kind_6.sons->data[((NI) 1)];
		}
		LA19_: ;
		{
			NimStringDesc* T25_;
			if (!!(((*last).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20)))) goto LA23_;
			T25_ = (NimStringDesc*)0;
			T25_ = dollar___r38WafKlW80RkvoZTcia4Q(TM__MQdRN7fpbG7rPm4JpVVAhA_366);
			internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, T25_);
		}
		LA23_: ;
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_91[(NU)((*last).kind)>>3] &(1U<<((NU)((*last).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_92)); }
		idx = (*last)._kind_3.strVal;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T30_;
			if (!((idx ? idx->Sup.len : 0) == ((NI) 0))) goto LA28_;
			T30_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T30_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata((*m).initProc, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			add__IM4kcMNkkOLJtqdEqSxR8A(T30_, load);
		}
		goto LA26_;
		LA28_: ;
		{
			NIM_BOOL T32_;
			T32_ = (NIM_BOOL)0;
			T32_ = ((idx ? idx->Sup.len : 0) == ((NI) 1));
			if (!(T32_)) goto LA33_;
			if ((NU)(((NI) 0)) >= (NU)(idx ? idx->Sup.len : 0)){ raiseIndexError2(((NI) 0),(idx ? idx->Sup.len : 0)-1); }
			T32_ = (((NU8)(idx->data[((NI) 0)])) >= ((NU8)(48)) && ((NU8)(idx->data[((NI) 0)])) <= ((NU8)(57)));
			LA33_: ;
			if (!T32_) goto LA34_;
			if ((NU)(((NI) 0)) >= (NU)(idx ? idx->Sup.len : 0)){ raiseIndexError2(((NI) 0),(idx ? idx->Sup.len : 0)-1); }
			if (((NU8)(idx->data[((NI) 0)])) < 48 || ((NU8)(idx->data[((NI) 0)])) > 57){ raiseIndexError3(((NU8)(idx->data[((NI) 0)])), 48, 57); }
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*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_368));
appendString(T37_, idx);
			internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*m).g).config, (*sym).info, T37_);
		}
		LA26_: ;
	}
	goto LA5_;
	LA7_: ;
	{
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T43_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T44_;
		NimStringDesc* T45_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T46_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T51_;
		{
			if (!!(!((m == NIM_NIL)))) goto LA41_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_30));
		}
		LA41_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_16));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), tmp);
		res = resizeString(res, 4);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_108));
		T43_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T43_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA(m, (*sym).typ);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T43_);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_286));
		T44_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T44_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_369));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T44_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), (*lib).name);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
		T45_ = (NimStringDesc*)0;
		T45_ = dollar___mZ66tEveFIQokq3arf8Klw(extname);
		T46_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T46_ = makeCString__vQJydtKy4Nf6bXPYtbmjtg(T45_);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T46_);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
		{
			if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA49_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA49_: ;
		T51_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T51_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 18))- 0], T51_);
	}
	LA5_: ;
	nimZeroMem((void*)T52_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
	T52_[0] = (*sym).loc.r;
	T53_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T53_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*sym).loc);
	T52_[1] = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA(m, T53_);
	T54_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T54_ = percent___dpzmcz9a6kXbhFacdElIMOw(T52_, 2);
	add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], T54_);
}
N_LIB_PRIVATE N_NIMCALL(void, symInDynamicLibPartial__TAVDUakAwQnRHDK9cFe6L7g_4)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym) {
	asgnRef((void**) (&(*sym).loc.r), mangleDynLibProc__MkmvPNwLUVhzodPsMjdbJw(sym));
	asgnRef((void**) (&(*(*sym).typ).sym), NIM_NIL);
}
N_LIB_PRIVATE N_NIMCALL(void, genProcNoForward__HbYPOpwLApFuBkISFGrmEQ_3)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* prc) {
{	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T5_;
		if (!(((*prc).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA) 7))&15U)))!=0)) goto LA3_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*prc).ast).kind)>>3] &(1U<<((NU)((*(*prc).ast).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*(*prc).ast)._kind_6.sons ? (*(*prc).ast)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*prc).ast)._kind_6.sons ? (*(*prc).ast)._kind_6.sons->Sup.len : 0)-1); }
		fillProcLoc__t9a9a9bxmaOztYOfsfhQUOXXw(m, (*(*prc).ast)._kind_6.sons->data[((NI) 0)]);
		useHeader__TAVDUakAwQnRHDK9cFe6L7g_2(m, prc);
		T5_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T5_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, (*(*prc).name).s);
		(void)(T5_);
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!(((*prc).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA) 3))&15U)))!=0)) goto LA8_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*prc).ast).kind)>>3] &(1U<<((NU)((*(*prc).ast).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*(*prc).ast)._kind_6.sons ? (*(*prc).ast)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*prc).ast)._kind_6.sons ? (*(*prc).ast)._kind_6.sons->Sup.len : 0)-1); }
		fillProcLoc__t9a9a9bxmaOztYOfsfhQUOXXw(m, (*(*prc).ast)._kind_6.sons->data[((NI) 0)]);
		genProcPrototype__TAVDUakAwQnRHDK9cFe6L7g(m, prc);
	}
	goto LA6_;
	LA8_: ;
	{
		if (!((*(*prc).typ).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 5))) goto LA11_;
		{
			NIM_BOOL T15_;
			tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* T18_;
			T15_ = (NIM_BOOL)0;
			T15_ = containsOrIncl__VFt0uM7bgfJ5age9alOsU9cg((&(*m).declaredThings), (*prc).Sup.id);
			if (!!(T15_)) goto LA16_;
			T18_ = (tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow*)0;
			T18_ = findPendingModule__Dhy9cmzSsJkQqlfDq047WUA(m, prc);
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*prc).ast).kind)>>3] &(1U<<((NU)((*(*prc).ast).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*(*prc).ast)._kind_6.sons ? (*(*prc).ast)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*prc).ast)._kind_6.sons ? (*(*prc).ast)._kind_6.sons->Sup.len : 0)-1); }
			fillProcLoc__t9a9a9bxmaOztYOfsfhQUOXXw(T18_, (*(*prc).ast)._kind_6.sons->data[((NI) 0)]);
			genProcPrototype__TAVDUakAwQnRHDK9cFe6L7g(m, prc);
			genProcAux__HbYPOpwLApFuBkISFGrmEQ_4(m, prc);
		}
		LA16_: ;
	}
	goto LA6_;
	LA11_: ;
	{
		tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* q;
		if (!(((*prc).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA) 4))&15U)))!=0)) goto LA20_;
		q = findPendingModule__Dhy9cmzSsJkQqlfDq047WUA(m, prc);
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*prc).ast).kind)>>3] &(1U<<((NU)((*(*prc).ast).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*(*prc).ast)._kind_6.sons ? (*(*prc).ast)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*prc).ast)._kind_6.sons ? (*(*prc).ast)._kind_6.sons->Sup.len : 0)-1); }
		fillProcLoc__t9a9a9bxmaOztYOfsfhQUOXXw(q, (*(*prc).ast)._kind_6.sons->data[((NI) 0)]);
		genProcPrototype__TAVDUakAwQnRHDK9cFe6L7g(m, prc);
		{
			NIM_BOOL T24_;
			NIM_BOOL T26_;
			T24_ = (NIM_BOOL)0;
			T24_ = !((q == NIM_NIL));
			if (!(T24_)) goto LA25_;
			T26_ = (NIM_BOOL)0;
			T26_ = containsOrIncl__VFt0uM7bgfJ5age9alOsU9cg((&(*q).declaredThings), (*prc).Sup.id);
			T24_ = !(T26_);
			LA25_: ;
			if (!T24_) goto LA27_;
			symInDynamicLib__TAVDUakAwQnRHDK9cFe6L7g_3(q, prc);
			{
				NIM_BOOL T31_;
				tyArray__wqYjTJU9ab2ZgEFMaQc3vNA T34_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T35_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T36_;
				T31_ = (NIM_BOOL)0;
				T31_ = isReloadable__bilAk8nY4d5fxUpVg9bnphQ(q, prc);
				if (!T31_) goto LA32_;
				nimZeroMem((void*)T34_, sizeof(tyArray__wqYjTJU9ab2ZgEFMaQc3vNA));
				T34_[0] = (*prc).loc.r;
				T35_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T35_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*prc).loc);
				T34_[1] = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA(q, T35_);
				T34_[2] = getModuleDllPath__RaNE9b8A430I9bfpgZmdrC1w_3(m, (*q).module);
				T36_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T36_ = percent___AWFBEodxoi9a61KDUc9aiw1w(T34_, 3);
				add__IM4kcMNkkOLJtqdEqSxR8A(&(*q).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 18))- 0], T36_);
			}
			LA32_: ;
		}
		goto LA22_;
		LA27_: ;
		{
			symInDynamicLibPartial__TAVDUakAwQnRHDK9cFe6L7g_4(m, prc);
		}
		LA22_: ;
	}
	goto LA6_;
	LA20_: ;
	{
		tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* q_2;
		if (!!((((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 6))&63U)))!=0))) goto LA39_;
		q_2 = findPendingModule__Dhy9cmzSsJkQqlfDq047WUA(m, prc);
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*prc).ast).kind)>>3] &(1U<<((NU)((*(*prc).ast).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*(*prc).ast)._kind_6.sons ? (*(*prc).ast)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*prc).ast)._kind_6.sons ? (*(*prc).ast)._kind_6.sons->Sup.len : 0)-1); }
		fillProcLoc__t9a9a9bxmaOztYOfsfhQUOXXw(q_2, (*(*prc).ast)._kind_6.sons->data[((NI) 0)]);
		{
			NIM_BOOL T43_;
			NIM_BOOL T44_;
			NIM_BOOL T45_;
			NIM_BOOL T47_;
			tyArray__wqYjTJU9ab2ZgEFMaQc3vNA T52_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T53_;
			T43_ = (NIM_BOOL)0;
			T44_ = (NIM_BOOL)0;
			T45_ = (NIM_BOOL)0;
			T45_ = isReloadable__bilAk8nY4d5fxUpVg9bnphQ(m, prc);
			if (!(T45_)) goto LA46_;
			T47_ = (NIM_BOOL)0;
			T47_ = contains__R6uRTGpl30Ofaw4Ni3vawA((&(*m).declaredProtos), (*prc).Sup.id);
			T45_ = !(T47_);
			LA46_: ;
			T44_ = T45_;
			if (!(T44_)) goto LA48_;
			T44_ = !((q_2 == NIM_NIL));
			LA48_: ;
			T43_ = T44_;
			if (!(T43_)) goto LA49_;
			T43_ = !(((*(*q_2).module).Sup.id == (*(*m).module).Sup.id));
			LA49_: ;
			if (!T43_) goto LA50_;
			nimZeroMem((void*)T52_, sizeof(tyArray__wqYjTJU9ab2ZgEFMaQc3vNA));
			T52_[0] = (*prc).loc.r;
			T52_[1] = getProcTypeCast__kjPRfLdGk3b78KhSOOjbOA(m, prc);
			T52_[2] = getModuleDllPath__RaNE9b8A430I9bfpgZmdrC1w_3(m, prc);
			T53_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T53_ = percent___vHbYzYlzLPcurSm0Hu8InQ(T52_, 3);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 18))- 0], T53_);
		}
		LA50_: ;
		genProcPrototype__TAVDUakAwQnRHDK9cFe6L7g(m, prc);
		{
			NIM_BOOL T56_;
			NIM_BOOL T58_;
			T56_ = (NIM_BOOL)0;
			T56_ = !((q_2 == NIM_NIL));
			if (!(T56_)) goto LA57_;
			T58_ = (NIM_BOOL)0;
			T58_ = containsOrIncl__VFt0uM7bgfJ5age9alOsU9cg((&(*q_2).declaredThings), (*prc).Sup.id);
			T56_ = !(T58_);
			LA57_: ;
			if (!T56_) goto LA59_;
			{
				NIM_BOOL T63_;
				T63_ = (NIM_BOOL)0;
				T63_ = isReloadable__bilAk8nY4d5fxUpVg9bnphQ(m, prc);
				if (!T63_) goto LA64_;
				genProcPrototype__TAVDUakAwQnRHDK9cFe6L7g(q_2, prc);
			}
			LA64_: ;
			genProcAux__HbYPOpwLApFuBkISFGrmEQ_4(q_2, prc);
		}
		LA59_: ;
	}
	goto LA6_;
	LA39_: ;
	{
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*prc).ast).kind)>>3] &(1U<<((NU)((*(*prc).ast).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*(*prc).ast)._kind_6.sons ? (*(*prc).ast)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*prc).ast)._kind_6.sons ? (*(*prc).ast)._kind_6.sons->Sup.len : 0)-1); }
		fillProcLoc__t9a9a9bxmaOztYOfsfhQUOXXw(m, (*(*prc).ast)._kind_6.sons->data[((NI) 0)]);
		useHeader__TAVDUakAwQnRHDK9cFe6L7g_2(m, prc);
		{
			if (!!((((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 31))&63U)))!=0))) goto LA69_;
			genProcPrototype__TAVDUakAwQnRHDK9cFe6L7g(m, prc);
		}
		LA69_: ;
	}
	LA6_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genProc__HbYPOpwLApFuBkISFGrmEQ)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* prc) {
{	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 30))&63U)))!=0);
		if (T3_) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = isActivated__FP3Xc9c0yhzvB6NLyfQJkYw(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__HbYPOpwLApFuBkISFGrmEQ_2(m, prc);
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*prc).ast).kind)>>3] &(1U<<((NU)((*(*prc).ast).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*(*prc).ast)._kind_6.sons ? (*(*prc).ast)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*prc).ast)._kind_6.sons ? (*(*prc).ast)._kind_6.sons->Sup.len : 0)-1); }
		fillProcLoc__t9a9a9bxmaOztYOfsfhQUOXXw(m, (*(*prc).ast)._kind_6.sons->data[((NI) 0)]);
	}
	goto LA8_;
	LA10_: ;
	{
		genProcNoForward__HbYPOpwLApFuBkISFGrmEQ_3(m, prc);
		{
			NIM_BOOL T15_;
			NIM_BOOL T16_;
			T15_ = (NIM_BOOL)0;
			T16_ = (NIM_BOOL)0;
			T16_ = ((262272 & (*prc).flags) == 128);
			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__TAVDUakAwQnRHDK9cFe6L7g((*(*m).g).generatedHeader, prc);
			{
				if (!((*(*prc).typ).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 5))) goto LA23_;
				{
					NIM_BOOL T27_;
					T27_ = (NIM_BOOL)0;
					T27_ = containsOrIncl__VFt0uM7bgfJ5age9alOsU9cg((&(*(*(*m).g).generatedHeader).declaredThings), (*prc).Sup.id);
					if (!!(T27_)) goto LA28_;
					genProcAux__HbYPOpwLApFuBkISFGrmEQ_4((*(*m).g).generatedHeader, prc);
				}
				LA28_: ;
			}
			LA23_: ;
		}
		LA19_: ;
	}
	LA8_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, treatGlobalDifferentlyForHCR__AaEyY9c5j7G9bThwkB9ajJ8Pw)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
{	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = hcrOn__a2BRACVCGIuooKjHNmoLsA(m);
	if (!(T2_)) goto LA3_;
	T2_ = ((67108872 & (*s).flags) == 8);
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T1_ = ((72 & (*s).loc.flags) == 0);
	LA4_: ;
	result = T1_;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, emulatedThreadVars__7uEG6ZwO4OOj3nQvIat2mwcgen)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((35651584 & ~ (*conf).globalOptions)==0);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, declareThreadVar__wDT42Iy4l3KGL9cd8rMjKRA)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, NIM_BOOL isExtern) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = emulatedThreadVars__7uEG6ZwO4OOj3nQvIat2mwcgen((*(*m).g).config);
		if (!T3_) goto LA4_;
		{
			NIM_BOOL T8_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T11_;
			NI T12_;
			tyArray__mrugoXXRZUEeG9bEXo9auBKw T13_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T14_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T15_;
			T8_ = (NIM_BOOL)0;
			T8_ = containsOrIncl__VFt0uM7bgfJ5age9alOsU9cg((&(*(*m).g).nimtvDeclared), (*s).Sup.id);
			if (!!(T8_)) goto LA9_;
			T11_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T11_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*s).loc);
			asgnRef((void**) (&(*(*m).g).nimtvDeps), (tySequence__Ef05srmQTDulnBdXR4Ja6Q*) incrSeqV3((TGenericSeq*)((*(*m).g).nimtvDeps), (&NTI__Ef05srmQTDulnBdXR4Ja6Q_)));
			T12_ = (*(*m).g).nimtvDeps->Sup.len++;
			asgnRef((void**) (&(*(*m).g).nimtvDeps->data[T12_]), T11_);
			nimZeroMem((void*)T13_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
			T14_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T14_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*s).loc);
			T13_[0] = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA(m, T14_);
			T13_[1] = (*s).loc.r;
			T15_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T15_ = percent___vzbf0XksfaFTXNoTT6BCwA(T13_, 2);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*(*m).g).nimtv, T15_);
		}
		LA9_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T29_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T30_;
		tyArray__JiWwrsTRC6xqNlGcBthSVA T31_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T32_;
		{
			if (!isExtern) goto LA19_;
			add__yG4AKzsBRS1W4MANDlXQeg(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_371));
		}
		goto LA17_;
		LA19_: ;
		{
			if (!(((*s).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA) 5))&15U)))!=0)) goto LA22_;
			add__yG4AKzsBRS1W4MANDlXQeg(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_372));
		}
		goto LA17_;
		LA22_: ;
		{
			add__yG4AKzsBRS1W4MANDlXQeg(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_44));
		}
		LA17_: ;
		{
			if (!(((*(*(*m).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 21))&63U)))!=0)) goto LA27_;
			add__yG4AKzsBRS1W4MANDlXQeg(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_373));
		}
		LA27_: ;
		T29_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T29_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*s).loc);
		T30_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T30_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA(m, T29_);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], T30_);
		nimZeroMem((void*)T31_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
		T31_[0] = (*s).loc.r;
		T32_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T32_ = percent___nzT6Rke9c7tkW9b3XMmld2LA(T31_, 1);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], T32_);
	}
	LA1_: ;
}
static N_INLINE(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**, procSec__kOyJGmZMM2tMgCKSrvUE3g_2cgendata)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg s) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** result;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	if ((NU)(((NI) 0)) >= (NU)((*p).blocks ? (*p).blocks->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*p).blocks ? (*p).blocks->Sup.len : 0)-1); }
	result = &(*p).blocks->data[((NI) 0)].sections[(s)- 0];
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genVarPrototype__t9a9a9bxmaOztYOfsfhQUOXXw_2)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T1_;
{	if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
	sym = (*n)._kind_4.sym;
	useHeader__TAVDUakAwQnRHDK9cFe6L7g_2(m, sym);
	T1_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = mangleName__RaNE9b8A430I9bfpgZmdrC1w(m, sym);
	fillLoc__o49bXuxJYpCizOgQ54UViIg((&(*sym).loc), ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 3), n, T1_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 3));
	{
		NIM_BOOL T4_;
		T4_ = (NIM_BOOL)0;
		T4_ = treatGlobalDifferentlyForHCR__AaEyY9c5j7G9bThwkB9ajJ8Pw(m, sym);
		if (!T4_) goto LA5_;
		(*sym).loc.flags |= ((NU16)1)<<((((tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA) 0)) & 15);
	}
	LA5_: ;
	{
		NIM_BOOL T9_;
		T9_ = (NIM_BOOL)0;
		T9_ = (((*sym).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA) 3))&15U)))!=0);
		if (T9_) goto LA10_;
		T9_ = contains__R6uRTGpl30Ofaw4Ni3vawA((&(*m).declaredThings), (*sym).Sup.id);
		LA10_: ;
		if (!T9_) goto LA11_;
		goto BeforeRet_;
	}
	LA11_: ;
	{
		if (!!(((*(*sym).owner).Sup.id == (*(*m).module).Sup.id))) goto LA15_;
		{
			if (!!(!(((*sym).loc.r == NIM_NIL)))) goto LA19_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_370));
		}
		LA19_: ;
		{
			if (!(((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 26))&63U)))!=0)) goto LA23_;
			declareThreadVar__wDT42Iy4l3KGL9cd8rMjKRA(m, sym, NIM_TRUE);
		}
		goto LA21_;
		LA23_: ;
		{
			NimStringDesc* T34_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T41_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T42_;
			tyArray__JiWwrsTRC6xqNlGcBthSVA T60_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T61_;
			incl__jENnK9c9bPE73pKmo2vYjpqg((&(*m).declaredThings), (*sym).Sup.id);
			{
				NIM_BOOL T28_;
				tyArray__JiWwrsTRC6xqNlGcBthSVA T32_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T33_;
				T28_ = (NIM_BOOL)0;
				T28_ = ((2622208 &(1U<<((NU)((*sym).kind)&31U)))!=0);
				if (!(T28_)) goto LA29_;
				if (!(((2622208 &(1U<<((NU)((*sym).kind)&31U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_100)); }
				T28_ = (((NI) 0) < (*sym)._kind_4.alignment);
				LA29_: ;
				if (!T28_) goto LA30_;
				nimZeroMem((void*)T32_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
				if (!(((2622208 &(1U<<((NU)((*sym).kind)&31U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_100)); }
				T32_[0] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*sym)._kind_4.alignment)));
				T33_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T33_ = percent___iaEKHmIC9bNRZLxBqSNX0Sg(T32_, 1);
				add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], T33_);
			}
			LA30_: ;
			T34_ = (NimStringDesc*)0;
			{
				NIM_BOOL T37_;
				T37_ = (NIM_BOOL)0;
				T37_ = hcrOn__a2BRACVCGIuooKjHNmoLsA(m);
				if (!T37_) goto LA38_;
				T34_ = copyString(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_43));
			}
			goto LA35_;
			LA38_: ;
			{
				T34_ = copyString(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_371));
			}
			LA35_: ;
			add__yG4AKzsBRS1W4MANDlXQeg(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], T34_);
			T41_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T41_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*sym).loc);
			T42_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T42_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA(m, T41_);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], T42_);
			{
				NIM_BOOL T45_;
				T45_ = (NIM_BOOL)0;
				T45_ = hcrOn__a2BRACVCGIuooKjHNmoLsA(m);
				if (!T45_) goto LA46_;
				add__yG4AKzsBRS1W4MANDlXQeg(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_69));
			}
			LA46_: ;
			{
				if (!(((*sym).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA) 4))&15U)))!=0)) goto LA50_;
				add__yG4AKzsBRS1W4MANDlXQeg(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_69));
			}
			LA50_: ;
			{
				if (!(((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 10))&63U)))!=0)) goto LA54_;
				add__yG4AKzsBRS1W4MANDlXQeg(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_101));
			}
			LA54_: ;
			{
				if (!(((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 9))&63U)))!=0)) goto LA58_;
				add__yG4AKzsBRS1W4MANDlXQeg(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_102));
			}
			LA58_: ;
			nimZeroMem((void*)T60_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
			T60_[0] = (*sym).loc.r;
			T61_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T61_ = percent___nzT6Rke9c7tkW9b3XMmld2LA(T60_, 1);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], T61_);
			{
				NIM_BOOL T64_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T67_;
				tyArray__wqYjTJU9ab2ZgEFMaQc3vNA T68_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T69_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T70_;
				T64_ = (NIM_BOOL)0;
				T64_ = hcrOn__a2BRACVCGIuooKjHNmoLsA(m);
				if (!T64_) goto LA65_;
				T67_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T67_ = procSec__kOyJGmZMM2tMgCKSrvUE3g_2cgendata((*m).initProc, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 0));
				nimZeroMem((void*)T68_, sizeof(tyArray__wqYjTJU9ab2ZgEFMaQc3vNA));
				T68_[0] = (*sym).loc.r;
				T69_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T69_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*sym).loc);
				T68_[1] = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA(m, T69_);
				T68_[2] = getModuleDllPath__RaNE9b8A430I9bfpgZmdrC1w_3(m, sym);
				T70_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T70_ = percent___9cCc2iMcL3MEBZTTL3LCW1w(T68_, 3);
				add__IM4kcMNkkOLJtqdEqSxR8A(T67_, T70_);
			}
			LA65_: ;
		}
		LA21_: ;
	}
	LA15_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, addActualSuffixForHCR__Mns9bHWQy2Dza12fE8Mjw9aw)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** res, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* module, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym) {
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NIM_BOOL T7_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T11_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = (((*sym).flags & IL64(137438953536)) == 0);
		if (!(T4_)) goto LA5_;
		T4_ = ((*sym).loc.k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 7));
		LA5_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA6_;
		T7_ = (NIM_BOOL)0;
		T7_ = ((*(*sym).typ).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 5));
		if (T7_) goto LA8_;
		T7_ = ((*(*sym).owner).Sup.id == (*module).Sup.id);
		LA8_: ;
		T3_ = T7_;
		LA6_: ;
		if (!T3_) goto LA9_;
		T11_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T11_ = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_79));
		unsureAsgnRef((void**) (&(*res)), amp___ShdZ6VrAQkY0nWR9a39b9bGdQ((*res), T11_));
	}
	LA9_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, cgsym__arLmPq9aJc9b7GpWTbo6dvHg)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, NimStringDesc* name) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	sym = getCompilerProc__4qXS5VHrKJ5hq9crvvz8tIA((*(*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__HbYPOpwLApFuBkISFGrmEQ(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__I2DV2TmmOysY1ZEGW19b9bRg(sym);
			genVarPrototype__t9a9a9bxmaOztYOfsfhQUOXXw_2(m, T7_);
		}
		break;
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7):
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T9_;
			T9_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T9_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA(m, (*sym).typ);
			(void)(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_374));
appendString(T11_, name);
appendString(T11_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_375));
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_376));
appendString(T13_, name);
		rawMessage__h30HgTFwbGq0PsyHmRqZ8g((*(*m).g).config, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T13_);
	}
	LA1_: ;
	result = (*sym).loc.r;
	{
		NIM_BOOL T16_;
		NIM_BOOL T17_;
		T16_ = (NIM_BOOL)0;
		T17_ = (NIM_BOOL)0;
		T17_ = hcrOn__a2BRACVCGIuooKjHNmoLsA(m);
		if (!(T17_)) goto LA18_;
		T17_ = !((sym == NIM_NIL));
		LA18_: ;
		T16_ = T17_;
		if (!(T16_)) goto LA19_;
		T16_ = ((61440 &(1U<<((NU)((*sym).kind)&31U)))!=0);
		LA19_: ;
		if (!T16_) goto LA20_;
		addActualSuffixForHCR__Mns9bHWQy2Dza12fE8Mjw9aw(&result, (*m).module, sym);
	}
	LA20_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addAbiCheck__SaA9bA11X42SNop9bW9cVLmng)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* name) {
	{
		NIM_BOOL T3_;
		NI64 size;
		tyArray__mrugoXXRZUEeG9bEXo9auBKw T7_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = isDefined__jkXTnxDf8MX1Pmks3s0XxA((*(*m).g).config, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_396));
		if (!(T3_)) goto LA4_;
		size = getSize__vCG1GF2Iu043oALVyuJfOw((*(*m).g).config, t);
		T3_ = !((size == IL64(-3)));
		LA4_: ;
		if (!T3_) goto LA5_;
		nimZeroMem((void*)T7_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
		T7_[0] = name;
		T7_[1] = rope__KOisMGxcPhz6CcSmxgwEQQ(size);
		T8_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T8_ = percent___ahBYcGrhpPvM5dTdzCQBrQ(T7_, 2);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 7))- 0], T8_);
	}
	LA5_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	switch ((*typ).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 26):
	{
		result = typeNameOrLiteral__HJRyQju7CXfTTxFyPP3IJQ(m, typ, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_39));
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = detectStrVersion__V25kMWfh1jWVNQQI5BNfLg(m);
		switch (T3_) {
		case ((NI) 2):
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T5_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T6_;
			T5_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T5_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_184));
			(void)(T5_);
			T6_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T6_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_185));
			(void)(T6_);
			result = typeNameOrLiteral__HJRyQju7CXfTTxFyPP3IJQ(m, typ, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_185));
		}
		break;
		default:
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T8_;
			T8_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T8_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_179));
			(void)(T8_);
			result = typeNameOrLiteral__HJRyQju7CXfTTxFyPP3IJQ(m, typ, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_377));
		}
		break;
		}
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 29):
	{
		result = typeNameOrLiteral__HJRyQju7CXfTTxFyPP3IJQ(m, typ, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_378));
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1):
	{
		result = typeNameOrLiteral__HJRyQju7CXfTTxFyPP3IJQ(m, typ, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_379));
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2):
	{
		result = typeNameOrLiteral__HJRyQju7CXfTTxFyPP3IJQ(m, typ, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_380));
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5):
	{
		result = typeNameOrLiteral__HJRyQju7CXfTTxFyPP3IJQ(m, typ, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_39));
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44):
	{
		if ((*typ).kind < 31 || (*typ).kind > 44){ raiseIndexError3((*typ).kind, 31, 44); }
		result = typeNameOrLiteral__HJRyQju7CXfTTxFyPP3IJQ(m, typ, NumericalTypeToStr__do7KqFuyalEFiD7s8tBisg[((*typ).kind)- 31]);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 15):
	{
		if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1); }
		result = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2(m, (*typ).sons->data[((NI) 0)]);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60):
	{
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T20_;
			if (!!(((*typ).n == NIM_NIL))) goto LA18_;
			T20_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T20_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(typ);
			result = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2(m, T20_);
		}
		goto LA16_;
		LA18_: ;
		{
			internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_395));
		}
		LA16_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T23_;
		T23_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T23_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(typ);
		result = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2(m, T23_);
	}
	break;
	default:
	{
		result = NIM_NIL;
	}
	break;
	}
	{
		NIM_BOOL T27_;
		tyArray__qtqsWM5aXmcpMIVmvq3kAA sig;
		T27_ = (NIM_BOOL)0;
		T27_ = !((result == NIM_NIL));
		if (!(T27_)) goto LA28_;
		T27_ = isImportedType__IafZhvqpthq9b9c13SFhzAOw_2(typ);
		LA28_: ;
		if (!T27_) goto LA29_;
		nimZeroMem((void*)sig, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
		hashType__UdooXLclXL8uld7qLI5JRw(typ, 2, sig);
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T33_;
			T33_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T33_ = cacheGetType__2wgznvEs9bt7XaKJgVohBCw((*m).typeCache, sig);
			if (!(T33_ == NIM_NIL)) goto LA34_;
			X5BX5Deq___zhbvOVNN6tTRFgZkPDZOmA((&(*m).typeCache), sig, result);
			addAbiCheck__SaA9bA11X42SNop9bW9cVLmng(m, typ, result);
		}
		LA34_: ;
	}
	LA29_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getTypePre__zLenRlTUJy0Mn9b8JKwzEcQ)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* 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_38));
	}
	goto LA1_;
	LA3_: ;
	{
		result = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2(m, typ);
		{
			if (!(result == NIM_NIL)) goto LA8_;
			result = cacheGetType__2wgznvEs9bt7XaKJgVohBCw((*m).typeCache, sig);
		}
		LA8_: ;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, scanCppGenericSlot__YRbO0Zq30XmyAQjpf1Mi6g)(NimStringDesc* pat, NI* cursor, NI* outIdx, NI* outStars) {
	NIM_BOOL result;
	NI TM__MQdRN7fpbG7rPm4JpVVAhA_403;
	NI begin;
{	result = (NIM_BOOL)0;
	if (nimAddInt((*cursor), ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_403)) { raiseOverflow(); };
	(*cursor) = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_403);
	begin = (*cursor);
	{
		while (1) {
			NI TM__MQdRN7fpbG7rPm4JpVVAhA_404;
			if ((NU)((*cursor)) >= (NU)(pat ? pat->Sup.len : 0)){ raiseIndexError2((*cursor),(pat ? pat->Sup.len : 0)-1); }
			if (!((NU8)(pat->data[(*cursor)]) == (NU8)(42))) goto LA2;
			if (nimAddInt((*cursor), ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_404)) { raiseOverflow(); };
			(*cursor) = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_404);
		} LA2: ;
	}
	{
		NI TM__MQdRN7fpbG7rPm4JpVVAhA_405;
		NI TM__MQdRN7fpbG7rPm4JpVVAhA_406;
		NI TM__MQdRN7fpbG7rPm4JpVVAhA_407;
		if ((NU)((*cursor)) >= (NU)(pat ? pat->Sup.len : 0)){ raiseIndexError2((*cursor),(pat ? pat->Sup.len : 0)-1); }
		if (!(((NU8)(pat->data[(*cursor)])) >= ((NU8)(48)) && ((NU8)(pat->data[(*cursor)])) <= ((NU8)(57)))) goto LA5_;
		if ((NU)((*cursor)) >= (NU)(pat ? pat->Sup.len : 0)){ raiseIndexError2((*cursor),(pat ? pat->Sup.len : 0)-1); }
		if (nimSubInt(((NU8)(pat->data[(*cursor)])), ((NI) 48), &TM__MQdRN7fpbG7rPm4JpVVAhA_405)) { raiseOverflow(); };
		(*outIdx) = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_405);
		if (nimSubInt((*cursor), begin, &TM__MQdRN7fpbG7rPm4JpVVAhA_406)) { raiseOverflow(); };
		(*outStars) = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_406);
		if (nimAddInt((*cursor), ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_407)) { raiseOverflow(); };
		(*cursor) = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_407);
		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__dTa9cSuyNlFVdzNe1dV0rag)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, NI idx, NI stars) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__5mJADrRYkP3r9auuiuDZN9cQast(typ);
		if (!(T3_ <= idx)) goto LA4_;
		{
			if (!NIM_TRUE) goto LA8_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_408));
		}
		LA8_: ;
	}
	LA4_: ;
	if ((NU)(idx) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)){ raiseIndexError2(idx,((*typ).sons ? (*typ).sons->Sup.len : 0)-1); }
	result = (*typ).sons->data[idx];
	{
		NI i;
		NI res;
		i = (NI)0;
		res = ((NI) 1);
		{
			while (1) {
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_409;
				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__5mJADrRYkP3r9auuiuDZN9cQast(result);
					T15_ = (((NI) 0) < T17_);
					LA16_: ;
					if (!T15_) goto LA18_;
					{
						if (!((*result).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11))) goto LA22_;
						if ((NU)(((NI) 1)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*result).sons ? (*result).sons->Sup.len : 0)-1); }
						result = (*result).sons->data[((NI) 1)];
					}
					goto LA20_;
					LA22_: ;
					{
						result = elemType__PfgI9ap7WOnsRfFV4znQ27w_2(result);
					}
					LA20_: ;
				}
				LA18_: ;
				if (nimAddInt(res, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_409)) { raiseOverflow(); };
				res = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_409);
			} LA12: ;
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getRecordDesc__HJhu9cCeHNnnn2AMyLicEaw)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* 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) 23))&63U)))!=0)) goto LA3_;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T9_;
			if ((*(*(*m).g).config).cCompiler < 1 || (*(*(*m).g).config).cCompiler > 15){ raiseIndexError3((*(*(*m).g).config).cCompiler, 1, 15); }
			if (!((CC__78I18QZNZFIv9ah7oETc0jg[((*(*(*m).g).config).cCompiler)- 1].Field21 &(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_419));
		}
		goto LA5_;
		LA7_: ;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T11_;
			T11_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T11_ = structOrUnion__TLFDupRCidtMx8175pusWQ(typ);
			result = amp___4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_420), T11_);
		}
		LA5_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		result = structOrUnion__TLFDupRCidtMx8175pusWQ(typ);
	}
	LA1_: ;
	add__yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_33));
	add__IM4kcMNkkOLJtqdEqSxR8A(&result, name);
	{
		if (!((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17))) goto LA15_;
		{
			if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1); }
			if (!((*typ).sons->data[((NI) 0)] == NIM_NIL)) goto LA19_;
			{
				NIM_BOOL T23_;
				NIM_BOOL T24_;
				NimStringDesc* res;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T37_;
				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) 11))&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_;
				{
					if (!!(!((m == NIM_NIL)))) goto LA31_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_30));
				}
				LA31_: ;
				res = rawNewString(((NI) 80));
				res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_338));
				{
					if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA35_;
					res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA35_: ;
				T37_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T37_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
				add__IM4kcMNkkOLJtqdEqSxR8A(&result, T37_);
			}
			goto LA21_;
			LA27_: ;
			{
				NimStringDesc* res_2;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T47_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T52_;
				{
					if (!!(!((m == NIM_NIL)))) goto LA41_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_30));
				}
				LA41_: ;
				res_2 = rawNewString(((NI) 80));
				res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_338));
				{
					if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA45_;
					res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA45_: ;
				T47_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T47_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_117));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T47_);
				res_2 = resizeString(res_2, 9);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_421));
				{
					if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA50_;
					res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA50_: ;
				T52_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T52_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
				add__IM4kcMNkkOLJtqdEqSxR8A(&result, T52_);
				hasField = NIM_TRUE;
			}
			LA21_: ;
		}
		goto LA17_;
		LA19_: ;
		{
			NIM_BOOL T54_;
			NimStringDesc* res_3;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T62_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T63_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T68_;
			T54_ = (NIM_BOOL)0;
			T54_ = ((*(*(*m).g).config).cmd == ((tyEnum_TCommands__VH3ghgQVwLSg3krOAoXigw) 2));
			if (T54_) goto LA55_;
			T54_ = (((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 31))&63U)))!=0);
			LA55_: ;
			if (!T54_) goto LA56_;
			{
				if (!!(!((m == NIM_NIL)))) goto LA60_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_30));
			}
			LA60_: ;
			res_3 = rawNewString(((NI) 80));
			res_3 = resizeString(res_3, 10);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_422));
			if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1); }
			T62_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T62_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*typ).sons->data[((NI) 0)], IL64(36275087638268176));
			T63_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T63_ = getTypeDescAux__BpNtboTsUfmvl9cmcZf9bOSQ(m, T62_, check);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T63_);
			res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_338));
			{
				if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA66_;
				res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA66_: ;
			T68_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T68_ = rope__yShmEg9cffWxI7s5XzEKBow(res_3);
			add__IM4kcMNkkOLJtqdEqSxR8A(&result, T68_);
			{
				NIM_BOOL T71_;
				T71_ = (NIM_BOOL)0;
				T71_ = isException__YPjOkGV9axAnGR3UfLeWZ1g_11(typ);
				if (!(T71_)) goto LA72_;
				T71_ = ((*(*(*m).g).config).exc == ((tyEnum_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ) 2));
				LA72_: ;
				if (!T71_) goto LA73_;
			}
			LA73_: ;
			hasField = NIM_TRUE;
		}
		goto LA17_;
		LA56_: ;
		{
			NimStringDesc* res_4;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T84_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T85_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T90_;
			{
				if (!!(!((m == NIM_NIL)))) goto LA78_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_30));
			}
			LA78_: ;
			res_4 = rawNewString(((NI) 80));
			res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_338));
			{
				if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA82_;
				res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA82_: ;
			res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_247));
			if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1); }
			T84_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T84_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*typ).sons->data[((NI) 0)], IL64(36275087638268176));
			T85_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T85_ = getTypeDescAux__BpNtboTsUfmvl9cmcZf9bOSQ(m, T84_, check);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T85_);
			res_4 = resizeString(res_4, 5);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_248));
			{
				if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA88_;
				res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA88_: ;
			T90_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T90_ = rope__yShmEg9cffWxI7s5XzEKBow(res_4);
			add__IM4kcMNkkOLJtqdEqSxR8A(&result, T90_);
			hasField = NIM_TRUE;
		}
		LA17_: ;
	}
	goto LA13_;
	LA15_: ;
	{
		tyArray__JiWwrsTRC6xqNlGcBthSVA T92_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T93_;
		nimZeroMem((void*)T92_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
		T92_[0] = name;
		T93_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T93_ = percent___0ul9cDZYl7YkH1RhZBTd9c6A(T92_, 1);
		add__IM4kcMNkkOLJtqdEqSxR8A(&result, T93_);
	}
	LA13_: ;
	desc = getRecordFields__1Yw0f9bM6njBLDchKVMziZw(m, typ, check);
	{
		NIM_BOOL T96_;
		tyArray__qTjAvTvKF9anytN1At69aJMQ T100_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T101_;
		T96_ = (NIM_BOOL)0;
		T96_ = (desc == NIM_NIL);
		if (!(T96_)) goto LA97_;
		T96_ = !(hasField);
		LA97_: ;
		if (!T96_) goto LA98_;
		nimZeroMem((void*)T100_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
		T101_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T101_ = percent___QFf4DPoOk6Jy59cL2OASJzw(T100_, 0);
		add__IM4kcMNkkOLJtqdEqSxR8A(&result, T101_);
	}
	goto LA94_;
	LA98_: ;
	{
		add__IM4kcMNkkOLJtqdEqSxR8A(&result, desc);
	}
	LA94_: ;
	add__yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_423));
	{
		NIM_BOOL T105_;
		T105_ = (NIM_BOOL)0;
		T105_ = (((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 23))&63U)))!=0);
		if (!(T105_)) goto LA106_;
		if ((*(*(*m).g).config).cCompiler < 1 || (*(*(*m).g).config).cCompiler > 15){ raiseIndexError3((*(*(*m).g).config).cCompiler, 1, 15); }
		T105_ = !(((CC__78I18QZNZFIv9ah7oETc0jg[((*(*(*m).g).config).cCompiler)- 1].Field21 &(1U<<((NU)(((tyEnum_TInfoCCProp__49cn73TjZ7Rt9b8QCAU8tLNg) 7))&7U)))!=0));
		LA106_: ;
		if (!T105_) goto LA107_;
		add__yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_424));
	}
	LA107_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getTupleDesc__HJhu9cCeHNnnn2AMyLicEaw_2)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* 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___q7DaQZqCe0lRO0rhBWzM0w(T1_, 2);
	desc = NIM_NIL;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__5mJADrRYkP3r9auuiuDZN9cQast(typ);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyArray__mrugoXXRZUEeG9bEXo9auBKw T5_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T6_;
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_426;
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				nimZeroMem((void*)T5_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
				if ((NU)(i) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)){ raiseIndexError2(i,((*typ).sons ? (*typ).sons->Sup.len : 0)-1); }
				T5_[0] = getTypeDescAux__BpNtboTsUfmvl9cmcZf9bOSQ(m, (*typ).sons->data[i], check);
				T5_[1] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (i)));
				T6_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T6_ = percent___hGIvKp3CGssDQ2vSvfksxQ(T5_, 2);
				add__IM4kcMNkkOLJtqdEqSxR8A(&desc, T6_);
				if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_426)) { raiseOverflow(); };
				i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_426);
			} LA4: ;
		}
	}
	{
		if (!(desc == NIM_NIL)) goto LA9_;
		add__yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_427));
	}
	goto LA7_;
	LA9_: ;
	{
		add__IM4kcMNkkOLJtqdEqSxR8A(&result, desc);
	}
	LA7_: ;
	add__yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_423));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getTypeDescAux__BpNtboTsUfmvl9cmcZf9bOSQ)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* 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__zsqmUNR5OZrTUna0Y9bdu9bg(origTyp, IL64(1189020670371048976));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = containsOrIncl__VFt0uM7bgfJ5age9alOsU9cg(check, (*t).Sup.id);
		if (!T3_) goto LA4_;
		{
			NIM_BOOL T8_;
			NimStringDesc* T12_;
			NimStringDesc* T13_;
			T8_ = (NIM_BOOL)0;
			T8_ = isImportedCppType__IafZhvqpthq9b9c13SFhzAOw(origTyp);
			if (T8_) goto LA9_;
			T8_ = isImportedCppType__IafZhvqpthq9b9c13SFhzAOw(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_37));
appendString(T12_, T13_);
			internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, T12_);
		}
		LA10_: ;
	}
	LA4_: ;
	{
		if (!!(((*t).sym == NIM_NIL))) goto LA16_;
		useHeader__TAVDUakAwQnRHDK9cFe6L7g_2(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__TAVDUakAwQnRHDK9cFe6L7g_2(m, (*origTyp).sym);
	}
	LA22_: ;
	nimZeroMem((void*)sig, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
	hashType__UdooXLclXL8uld7qLI5JRw(origTyp, 2, sig);
	result = getTypePre__zLenRlTUJy0Mn9b8JKwzEcQ(m, t, sig);
	{
		if (!!((result == NIM_NIL))) goto LA26_;
		excl__jENnK9c9bPE73pKmo2vYjpqg_2(check, (*t).Sup.id);
		goto BeforeRet_;
	}
	LA26_: ;
	switch ((*t).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22):
	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) 20))&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) 31))&63U)))!=0);
			LA36_: ;
			T31_ = T35_;
			LA34_: ;
			if (!T31_) goto LA37_;
			star = copyString(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_397));
		}
		goto LA29_;
		LA37_: ;
		{
			star = copyString(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_69));
		}
		LA29_: ;
		T40_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T40_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(origTyp, IL64(36134350135273744));
		et = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(T40_);
		etB = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(et, IL64(36134350135273744));
		{
			tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w T43_;
			T43_ = (tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w)0;
			T43_ = mapType__K9aceyVl15zb9aYN9b6YJ8TnA((*(*m).g).config, t);
			if (!(T43_ == ((tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w) 18))) goto LA44_;
			{
				if (!((*etB).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19))) goto LA48_;
				et = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*(*m).g).graph, TM__MQdRN7fpbG7rPm4JpVVAhA_147, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 41));
			}
			goto LA46_;
			LA48_: ;
			{
				et = elemType__PfgI9ap7WOnsRfFV4znQ27w_2(etB);
			}
			LA46_: ;
			etB = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(et, IL64(36134350135273744));
			if ((NU)(((NI) 0)) >= (NU)(star ? star->Sup.len : 0)){ raiseIndexError2(((NI) 0),(star ? star->Sup.len : 0)-1); }
			star->data[((NI) 0)] = 42;
		}
		LA44_: ;
		switch ((*etB).kind) {
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
		{
			{
				NIM_BOOL T54_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T58_;
				T54_ = (NIM_BOOL)0;
				T54_ = isImportedCppType__IafZhvqpthq9b9c13SFhzAOw(etB);
				if (!(T54_)) goto LA55_;
				T54_ = ((*et).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11));
				LA55_: ;
				if (!T54_) goto LA56_;
				T58_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T58_ = getTypeDescAux__BpNtboTsUfmvl9cmcZf9bOSQ(m, et, check);
				result = amp___Z7W1o5nPSc3ExfO5f7j1Gg(T58_, star);
			}
			goto LA52_;
			LA56_: ;
			{
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* name;
				tyArray__qtqsWM5aXmcpMIVmvq3kAA T60_;
				nimZeroMem((void*)T60_, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
				hashType__UdooXLclXL8uld7qLI5JRw(et, 2, T60_);
				name = getTypeForward__zLenRlTUJy0Mn9b8JKwzEcQ_2(m, et, T60_);
				result = amp___Z7W1o5nPSc3ExfO5f7j1Gg(name, star);
				X5BX5Deq___zhbvOVNN6tTRFgZkPDZOmA((&(*m).typeCache), sig, result);
			}
			LA52_: ;
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
		{
			{
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T66_;
				if (!(((*(*(*m).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 39))&63U)))!=0)) goto LA64_;
				T66_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T66_ = getTypeDescWeak__zbGAk3tbGBemhAx4n61z3g(m, et, check);
				result = amp___Z7W1o5nPSc3ExfO5f7j1Gg(T66_, star);
				X5BX5Deq___zhbvOVNN6tTRFgZkPDZOmA((&(*m).typeCache), sig, result);
			}
			goto LA62_;
			LA64_: ;
			{
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* name_2;
				tyArray__qtqsWM5aXmcpMIVmvq3kAA T68_;
				NimStringDesc* T69_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T70_;
				nimZeroMem((void*)T68_, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
				hashType__UdooXLclXL8uld7qLI5JRw(et, 2, T68_);
				name_2 = getTypeForward__zLenRlTUJy0Mn9b8JKwzEcQ_2(m, et, T68_);
				T69_ = (NimStringDesc*)0;
				T69_ = seqStar__hiFj6GH2C6Qv8bI0r9caT5A(m);
				T70_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T70_ = amp___Z7W1o5nPSc3ExfO5f7j1Gg(name_2, T69_);
				result = amp___Z7W1o5nPSc3ExfO5f7j1Gg(T70_, star);
				X5BX5Deq___zhbvOVNN6tTRFgZkPDZOmA((&(*m).typeCache), sig, result);
				pushType__4q3XOfd3NI3C8cSNkaF9cWA(m, et);
			}
			LA62_: ;
		}
		break;
		default:
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T72_;
			T72_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T72_ = getTypeDescAux__BpNtboTsUfmvl9cmcZf9bOSQ(m, et, check);
			result = amp___Z7W1o5nPSc3ExfO5f7j1Gg(T72_, star);
			X5BX5Deq___zhbvOVNN6tTRFgZkPDZOmA((&(*m).typeCache), sig, result);
		}
		break;
		}
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48):
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T74_;
		if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1); }
		T74_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T74_ = getTypeDescWeak__zbGAk3tbGBemhAx4n61z3g(m, (*t).sons->data[((NI) 0)], check);
		result = amp___Z7W1o5nPSc3ExfO5f7j1Gg(T74_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_69));
		X5BX5Deq___zhbvOVNN6tTRFgZkPDZOmA((&(*m).typeCache), sig, result);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14):
	{
		result = cacheGetType__2wgznvEs9bt7XaKJgVohBCw((*m).typeCache, sig);
		{
			if (!(result == NIM_NIL)) goto LA78_;
			result = getTypeName__zLenRlTUJy0Mn9b8JKwzEcQ_3(m, origTyp, sig);
			{
				NIM_BOOL T82_;
				NIM_BOOL T84_;
				NI size;
				T82_ = (NIM_BOOL)0;
				T82_ = isImportedCppType__IafZhvqpthq9b9c13SFhzAOw(t);
				if (T82_) goto LA83_;
				T84_ = (NIM_BOOL)0;
				T84_ = (((*(*t).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 6))&63U)))!=0);
				if (!(T84_)) goto LA85_;
				T84_ = ((*(*t).sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0));
				LA85_: ;
				T82_ = T84_;
				LA83_: ;
				if (!!(T82_)) goto LA86_;
				X5BX5Deq___zhbvOVNN6tTRFgZkPDZOmA((&(*m).typeCache), sig, result);
				size = (NI)0;
				{
					tyObject_Int128__9a9axPfb75jdWY25AamJewkA T90_;
					NIM_BOOL T91_;
					tyArray__JiWwrsTRC6xqNlGcBthSVA T94_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T95_;
					T90_ = firstOrd__hjogdnp59cMX1rwmjikBhqw((*(*m).g).config, t);
					T91_ = (NIM_BOOL)0;
					T91_ = lt___nr9cP9b0OL9cabygV9bo19cJgZA_3(T90_, IL64(0));
					if (!T91_) goto LA92_;
					nimZeroMem((void*)T94_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
					T94_[0] = result;
					T95_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T95_ = percent___XI9awM9a9aQ9cB9bcS7uDRsa1Rw(T94_, 1);
					add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 4))- 0], T95_);
					size = ((NI) 4);
				}
				goto LA88_;
				LA92_: ;
				{
					NI64 T97_;
					T97_ = (NI64)0;
					T97_ = getSize__vCG1GF2Iu043oALVyuJfOw((*(*m).g).config, t);
					if ((T97_) < ((NI) (-2147483647 -1)) || (T97_) > ((NI) 2147483647)){ raiseRangeErrorI(T97_, ((NI) (-2147483647 -1)), ((NI) 2147483647)); }
					size = ((NI) (T97_));
					switch (size) {
					case ((NI) 1):
					{
						tyArray__JiWwrsTRC6xqNlGcBthSVA T99_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T100_;
						nimZeroMem((void*)T99_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
						T99_[0] = result;
						T100_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T100_ = percent___9cWNaGuyEpBbdBlD9b5nY1ug(T99_, 1);
						add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 4))- 0], T100_);
					}
					break;
					case ((NI) 2):
					{
						tyArray__JiWwrsTRC6xqNlGcBthSVA T102_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T103_;
						nimZeroMem((void*)T102_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
						T102_[0] = result;
						T103_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T103_ = percent___6P67I9czJ9aa9aZzVyYWUiGlw(T102_, 1);
						add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 4))- 0], T103_);
					}
					break;
					case ((NI) 4):
					{
						tyArray__JiWwrsTRC6xqNlGcBthSVA T105_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T106_;
						nimZeroMem((void*)T105_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
						T105_[0] = result;
						T106_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T106_ = percent___XI9awM9a9aQ9cB9bcS7uDRsa1Rw(T105_, 1);
						add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 4))- 0], T106_);
					}
					break;
					case ((NI) 8):
					{
						tyArray__JiWwrsTRC6xqNlGcBthSVA T108_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T109_;
						nimZeroMem((void*)T108_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
						T108_[0] = result;
						T109_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T109_ = percent___S4jE5dFDtcCC8ODzxaJk6A(T108_, 1);
						add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 4))- 0], T109_);
					}
					break;
					default:
					{
						internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*m).g).config, (*(*t).sym).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_398));
					}
					break;
					}
				}
				LA88_: ;
			}
			LA86_: ;
		}
		LA78_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25):
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* rettype;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* desc;
		result = getTypeName__zLenRlTUJy0Mn9b8JKwzEcQ_3(m, origTyp, sig);
		X5BX5Deq___zhbvOVNN6tTRFgZkPDZOmA((&(*m).typeCache), sig, result);
		rettype = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		desc = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		genProcParams__uApDq1rn2zPxULBMpTSrxQ(m, t, &rettype, &desc, check, NIM_TRUE, NIM_TRUE);
		{
			NIM_BOOL T114_;
			T114_ = (NIM_BOOL)0;
			T114_ = isImportedType__IafZhvqpthq9b9c13SFhzAOw_2(t);
			if (!!(T114_)) goto LA115_;
			{
				tyArray__f7nG5LD47BH5K9c6mASit3g T121_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T122_;
				if (!!(((*t).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 8)))) goto LA119_;
				nimZeroMem((void*)T121_, sizeof(tyArray__f7nG5LD47BH5K9c6mASit3g));
				T121_[0] = rope__yShmEg9cffWxI7s5XzEKBow(CallingConvToStr__A7GdKVVGtI3pvj9cV9adydpw[((*t).callConv)- 0]);
				T121_[1] = rettype;
				T121_[2] = result;
				T121_[3] = desc;
				T122_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T122_ = percent___Msid9awGKVeVe7p3v7WfNQA(T121_, 4);
				add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 4))- 0], T122_);
			}
			goto LA117_;
			LA119_: ;
			{
				tyArray__wqYjTJU9ab2ZgEFMaQc3vNA T124_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T125_;
				nimZeroMem((void*)T124_, sizeof(tyArray__wqYjTJU9ab2ZgEFMaQc3vNA));
				T124_[0] = result;
				T124_[1] = rettype;
				T124_[2] = desc;
				T125_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T125_ = percent___xyRsdWsGY1DVVispyn0Xeg(T124_, 3);
				add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 4))- 0], T125_);
			}
			LA117_: ;
		}
		LA115_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
	{
		{
			if (!(((*(*(*m).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 39))&63U)))!=0)) goto LA129_;
			result = getTypeDescWeak__zbGAk3tbGBemhAx4n61z3g(m, t, check);
		}
		goto LA127_;
		LA129_: ;
		{
			NimStringDesc* T147_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T148_;
			NimStringDesc* T209_;
			result = cacheGetType__2wgznvEs9bt7XaKJgVohBCw((*m).forwTypeCache, sig);
			{
				if (!(result == NIM_NIL)) goto LA134_;
				result = getTypeName__zLenRlTUJy0Mn9b8JKwzEcQ_3(m, origTyp, sig);
				{
					NIM_BOOL T138_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T141_;
					T138_ = (NIM_BOOL)0;
					T138_ = isImportedType__IafZhvqpthq9b9c13SFhzAOw_2(t);
					if (!!(T138_)) goto LA139_;
					T141_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T141_ = structOrUnion__TLFDupRCidtMx8175pusWQ(t);
					addForwardStructFormat__pzRGCZRDAEWnDSHC2tztFg(m, T141_, result);
				}
				LA139_: ;
				X5BX5Deq___zhbvOVNN6tTRFgZkPDZOmA((&(*m).forwTypeCache), sig, result);
			}
			LA134_: ;
			{
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T144_;
				T144_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T144_ = cacheGetType__2wgznvEs9bt7XaKJgVohBCw((*m).typeCache, sig);
				if (!!((T144_ == NIM_NIL))) goto LA145_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_399));
			}
			LA145_: ;
			T147_ = (NimStringDesc*)0;
			T147_ = seqStar__hiFj6GH2C6Qv8bI0r9caT5A(m);
			T148_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T148_ = amp___Z7W1o5nPSc3ExfO5f7j1Gg(result, T147_);
			X5BX5Deq___zhbvOVNN6tTRFgZkPDZOmA((&(*m).typeCache), sig, T148_);
			{
				NIM_BOOL T151_;
				T151_ = (NIM_BOOL)0;
				T151_ = isImportedType__IafZhvqpthq9b9c13SFhzAOw_2(t);
				if (!!(T151_)) goto LA152_;
				{
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T156_;
					if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1); }
					T156_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T156_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*t).sons->data[((NI) 0)], IL64(36134350135273744));
					if (!!(((*T156_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 3)))) goto LA157_;
					{
						NIM_BOOL T161_;
						NimStringDesc* res;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T169_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T174_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T183_;
						T161_ = (NIM_BOOL)0;
						T161_ = ((*(*(*m).g).config).cmd == ((tyEnum_TCommands__VH3ghgQVwLSg3krOAoXigw) 2));
						if (T161_) goto LA162_;
						T161_ = (((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 31))&63U)))!=0);
						LA162_: ;
						if (!T161_) goto LA163_;
						{
							if (!!(!((m == NIM_NIL)))) goto LA167_;
							failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_30));
						}
						LA167_: ;
						res = rawNewString(((NI) 80));
						res = resizeString(res, 7);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_66));
						cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), result);
						res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_400));
						T169_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T169_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_182));
						cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T169_);
						res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_338));
						{
							if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA172_;
							res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
						}
						LA172_: ;
						res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_247));
						if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1); }
						T174_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T174_ = getTypeDescAux__BpNtboTsUfmvl9cmcZf9bOSQ(m, (*t).sons->data[((NI) 0)], check);
						cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T174_);
						res = resizeString(res, 21);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_401));
						{
							if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA177_;
							res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
						}
						LA177_: ;
						res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_243));
						{
							if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA181_;
							res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
						}
						LA181_: ;
						T183_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T183_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
						add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 5))- 0], T183_);
					}
					goto LA159_;
					LA163_: ;
					{
						NimStringDesc* res_2;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T193_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T198_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T207_;
						{
							if (!!(!((m == NIM_NIL)))) goto LA187_;
							failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_30));
						}
						LA187_: ;
						res_2 = rawNewString(((NI) 80));
						res_2 = resizeString(res_2, 7);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_66));
						cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), result);
						res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_338));
						{
							if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA191_;
							res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
						}
						LA191_: ;
						res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_247));
						T193_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T193_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_182));
						cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T193_);
						res_2 = resizeString(res_2, 5);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_248));
						{
							if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA196_;
							res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
						}
						LA196_: ;
						res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_247));
						if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1); }
						T198_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T198_ = getTypeDescAux__BpNtboTsUfmvl9cmcZf9bOSQ(m, (*t).sons->data[((NI) 0)], check);
						cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T198_);
						res_2 = resizeString(res_2, 21);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_401));
						{
							if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA201_;
							res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
						}
						LA201_: ;
						res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_243));
						{
							if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA205_;
							res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
						}
						LA205_: ;
						T207_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T207_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
						add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 5))- 0], T207_);
					}
					LA159_: ;
				}
				goto LA154_;
				LA157_: ;
				{
					result = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_182));
				}
				LA154_: ;
			}
			LA152_: ;
			T209_ = (NimStringDesc*)0;
			T209_ = seqStar__hiFj6GH2C6Qv8bI0r9caT5A(m);
			add__yG4AKzsBRS1W4MANDlXQeg(&result, T209_);
		}
		LA127_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 49):
	{
		result = getTypeName__zLenRlTUJy0Mn9b8JKwzEcQ_3(m, origTyp, sig);
		X5BX5Deq___zhbvOVNN6tTRFgZkPDZOmA((&(*m).typeCache), sig, result);
		{
			NIM_BOOL T213_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* foo;
			tyArray__mrugoXXRZUEeG9bEXo9auBKw T216_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T217_;
			T213_ = (NIM_BOOL)0;
			T213_ = isImportedType__IafZhvqpthq9b9c13SFhzAOw_2(t);
			if (!!(T213_)) goto LA214_;
			if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1); }
			foo = getTypeDescAux__BpNtboTsUfmvl9cmcZf9bOSQ(m, (*t).sons->data[((NI) 0)], check);
			nimZeroMem((void*)T216_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
			T216_[0] = foo;
			T216_[1] = result;
			T217_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T217_ = percent___EPABzhs2B9atAvHV4CUTw2Q(T216_, 2);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 4))- 0], T217_);
		}
		LA214_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
	{
		NI64 n;
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T219_;
		T219_ = lengthOrd__hjogdnp59cMX1rwmjikBhqw_3((*(*m).g).config, t);
		n = toInt64__1szweXXq3RBN50owrYu2Xw(T219_);
		{
			if (!(n <= IL64(0))) goto LA222_;
			n = IL64(1);
		}
		LA222_: ;
		result = getTypeName__zLenRlTUJy0Mn9b8JKwzEcQ_3(m, origTyp, sig);
		X5BX5Deq___zhbvOVNN6tTRFgZkPDZOmA((&(*m).typeCache), sig, result);
		{
			NIM_BOOL T226_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* foo_2;
			tyArray__wqYjTJU9ab2ZgEFMaQc3vNA T229_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T230_;
			T226_ = (NIM_BOOL)0;
			T226_ = isImportedType__IafZhvqpthq9b9c13SFhzAOw_2(t);
			if (!!(T226_)) goto LA227_;
			if ((NU)(((NI) 1)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*t).sons ? (*t).sons->Sup.len : 0)-1); }
			foo_2 = getTypeDescAux__BpNtboTsUfmvl9cmcZf9bOSQ(m, (*t).sons->data[((NI) 1)], check);
			nimZeroMem((void*)T229_, sizeof(tyArray__wqYjTJU9ab2ZgEFMaQc3vNA));
			T229_[0] = foo_2;
			T229_[1] = result;
			T229_[2] = rope__KOisMGxcPhz6CcSmxgwEQQ(n);
			T230_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T230_ = percent___2MhCcipNmSHgcDtN4cr8ng(T229_, 3);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 4))- 0], T230_);
		}
		goto LA224_;
		LA227_: ;
		{
			addAbiCheck__SaA9bA11X42SNop9bW9cVLmng(m, t, result);
		}
		LA224_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		{
			NIM_BOOL T235_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* cppName;
			NI i;
			NI chunkStart;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T308_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* typedefName;
			tyArray__qTjAvTvKF9anytN1At69aJMQ T309_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T310_;
			NimStringDesc* T311_;
			tyArray__mrugoXXRZUEeG9bEXo9auBKw T312_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T313_;
			T235_ = (NIM_BOOL)0;
			T235_ = isImportedCppType__IafZhvqpthq9b9c13SFhzAOw(t);
			if (!(T235_)) goto LA236_;
			T235_ = ((*origTyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11));
			LA236_: ;
			if (!T235_) goto LA237_;
			cppName = getTypeName__zLenRlTUJy0Mn9b8JKwzEcQ_3(m, t, sig);
			i = ((NI) 0);
			chunkStart = ((NI) 0);
			{
				while (1) {
					if (!(i < ((*cppName).data ? (*cppName).data->Sup.len : 0))) goto LA240;
					{
						NI chunkEnd;
						NI TM__MQdRN7fpbG7rPm4JpVVAhA_402;
						NI idx;
						NI stars;
						if ((NU)(i) >= (NU)((*cppName).data ? (*cppName).data->Sup.len : 0)){ raiseIndexError2(i,((*cppName).data ? (*cppName).data->Sup.len : 0)-1); }
						if (!((NU8)((*cppName).data->data[i]) == (NU8)(39))) goto LA243_;
						if (nimSubInt(i, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_402)) { raiseOverflow(); };
						chunkEnd = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_402);
						idx = (NI)0;
						stars = (NI)0;
						{
							NIM_BOOL T247_;
							NimStringDesc* T250_;
							tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typeInSlot;
							NI TM__MQdRN7fpbG7rPm4JpVVAhA_410;
							T247_ = (NIM_BOOL)0;
							T247_ = scanCppGenericSlot__YRbO0Zq30XmyAQjpf1Mi6g((*cppName).data, (&i), (&idx), (&stars));
							if (!T247_) goto LA248_;
							T250_ = (NimStringDesc*)0;
							T250_ = substr__2yh9cer0ymNRHlOOg8P7IuA((*cppName).data, chunkStart, chunkEnd);
							add__yG4AKzsBRS1W4MANDlXQeg(&result, T250_);
							chunkStart = i;
							if (nimAddInt(idx, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_410)) { raiseOverflow(); };
							typeInSlot = resolveStarsInCppType__dTa9cSuyNlFVdzNe1dV0rag(origTyp, (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_410), stars);
							{
								NIM_BOOL T253_;
								tyArray__qTjAvTvKF9anytN1At69aJMQ T257_;
								tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T258_;
								T253_ = (NIM_BOOL)0;
								T253_ = (typeInSlot == NIM_NIL);
								if (T253_) goto LA254_;
								T253_ = ((*typeInSlot).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 63));
								LA254_: ;
								if (!T253_) goto LA255_;
								nimZeroMem((void*)T257_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
								T258_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
								T258_ = percent___G9aA37gQrW88KHzpCAwhgjQ(T257_, 0);
								add__IM4kcMNkkOLJtqdEqSxR8A(&result, T258_);
							}
							goto LA251_;
							LA255_: ;
							{
								NimStringDesc* T267_;
								if (!((*typeInSlot).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60))) goto LA260_;
								{
									NimStringDesc* T266_;
									if (!!(!(((*typeInSlot).n == NIM_NIL)))) goto LA264_;
									T266_ = (NimStringDesc*)0;
									T266_ = dollar___r38WafKlW80RkvoZTcia4Q(TM__MQdRN7fpbG7rPm4JpVVAhA_411);
									internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, T266_);
								}
								LA264_: ;
								T267_ = (NimStringDesc*)0;
								T267_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA((*typeInSlot).n, 0);
								add__yG4AKzsBRS1W4MANDlXQeg(&result, T267_);
							}
							goto LA251_;
							LA260_: ;
							{
								tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T269_;
								T269_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
								T269_ = getTypeDescAux__BpNtboTsUfmvl9cmcZf9bOSQ(m, typeInSlot, check);
								add__IM4kcMNkkOLJtqdEqSxR8A(&result, T269_);
							}
							LA251_: ;
						}
						LA248_: ;
					}
					goto LA241_;
					LA243_: ;
					{
						NI TM__MQdRN7fpbG7rPm4JpVVAhA_412;
						if (nimAddInt(i, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_412)) { raiseOverflow(); };
						i = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_412);
					}
					LA241_: ;
				} LA240: ;
			}
			{
				NimStringDesc* T275_;
				if (!!((chunkStart == ((NI) 0)))) goto LA273_;
				T275_ = (NimStringDesc*)0;
				T275_ = substr__iGg0RIKceRvsmvq8FUHOEw((*cppName).data, chunkStart);
				add__yG4AKzsBRS1W4MANDlXQeg(&result, T275_);
			}
			goto LA271_;
			LA273_: ;
			{
				result = amp___Z7W1o5nPSc3ExfO5f7j1Gg(cppName, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_413));
				{
					NI i_2;
					NI colontmp_;
					NI T278_;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_414;
					NI i_3;
					i_2 = (NI)0;
					colontmp_ = (NI)0;
					T278_ = (NI)0;
					T278_ = len__5mJADrRYkP3r9auuiuDZN9cQast(origTyp);
					if (nimSubInt(T278_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_414)) { raiseOverflow(); };
					colontmp_ = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_414);
					i_3 = ((NI) 1);
					{
						while (1) {
							NI TM__MQdRN7fpbG7rPm4JpVVAhA_416;
							if (!(i_3 < colontmp_)) goto LA280;
							i_2 = i_3;
							{
								if (!(((NI) 1) < i_2)) goto LA283_;
								add__yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_415));
							}
							LA283_: ;
							{
								NIM_BOOL T287_;
								tyArray__qTjAvTvKF9anytN1At69aJMQ T291_;
								tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T292_;
								T287_ = (NIM_BOOL)0;
								if ((NU)(i_2) >= (NU)((*origTyp).sons ? (*origTyp).sons->Sup.len : 0)){ raiseIndexError2(i_2,((*origTyp).sons ? (*origTyp).sons->Sup.len : 0)-1); }
								T287_ = ((*origTyp).sons->data[i_2] == NIM_NIL);
								if (T287_) goto LA288_;
								if ((NU)(i_2) >= (NU)((*origTyp).sons ? (*origTyp).sons->Sup.len : 0)){ raiseIndexError2(i_2,((*origTyp).sons ? (*origTyp).sons->Sup.len : 0)-1); }
								T287_ = ((*(*origTyp).sons->data[i_2]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 63));
								LA288_: ;
								if (!T287_) goto LA289_;
								nimZeroMem((void*)T291_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
								T292_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
								T292_ = percent___G9aA37gQrW88KHzpCAwhgjQ(T291_, 0);
								add__IM4kcMNkkOLJtqdEqSxR8A(&result, T292_);
							}
							goto LA285_;
							LA289_: ;
							{
								NimStringDesc* T301_;
								if ((NU)(i_2) >= (NU)((*origTyp).sons ? (*origTyp).sons->Sup.len : 0)){ raiseIndexError2(i_2,((*origTyp).sons ? (*origTyp).sons->Sup.len : 0)-1); }
								if (!((*(*origTyp).sons->data[i_2]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60))) goto LA294_;
								{
									NimStringDesc* T300_;
									if ((NU)(i_2) >= (NU)((*origTyp).sons ? (*origTyp).sons->Sup.len : 0)){ raiseIndexError2(i_2,((*origTyp).sons ? (*origTyp).sons->Sup.len : 0)-1); }
									if (!!(!(((*(*origTyp).sons->data[i_2]).n == NIM_NIL)))) goto LA298_;
									T300_ = (NimStringDesc*)0;
									T300_ = dollar___r38WafKlW80RkvoZTcia4Q(TM__MQdRN7fpbG7rPm4JpVVAhA_411);
									internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, T300_);
								}
								LA298_: ;
								if ((NU)(i_2) >= (NU)((*origTyp).sons ? (*origTyp).sons->Sup.len : 0)){ raiseIndexError2(i_2,((*origTyp).sons ? (*origTyp).sons->Sup.len : 0)-1); }
								T301_ = (NimStringDesc*)0;
								T301_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA((*(*origTyp).sons->data[i_2]).n, 0);
								add__yG4AKzsBRS1W4MANDlXQeg(&result, T301_);
							}
							goto LA285_;
							LA294_: ;
							{
								tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T303_;
								if ((NU)(i_2) >= (NU)((*origTyp).sons ? (*origTyp).sons->Sup.len : 0)){ raiseIndexError2(i_2,((*origTyp).sons ? (*origTyp).sons->Sup.len : 0)-1); }
								T303_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
								T303_ = getTypeDescAux__BpNtboTsUfmvl9cmcZf9bOSQ(m, (*origTyp).sons->data[i_2], check);
								add__IM4kcMNkkOLJtqdEqSxR8A(&result, T303_);
							}
							LA285_: ;
							if (nimAddInt(i_3, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_416)) { raiseOverflow(); };
							i_3 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_416);
						} LA280: ;
					}
				}
				add__yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_417));
			}
			LA271_: ;
			{
				if (!!(!(((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18))))) goto LA306_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_418));
			}
			LA306_: ;
			T308_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T308_ = getRecordDesc__HJhu9cCeHNnnn2AMyLicEaw(m, t, result, check);
			(void)(T308_);
			nimZeroMem((void*)T309_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
			T310_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T310_ = percent___7yDHbEsisDNKcqQHIRgOuQ(T309_, 0);
			T311_ = (NimStringDesc*)0;
			T311_ = dollar___0A9bslyIJ49bWrftLGh13rvg(sig);
			typedefName = amp___Z7W1o5nPSc3ExfO5f7j1Gg(T310_, T311_);
			nimZeroMem((void*)T312_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
			T312_[0] = result;
			T312_[1] = typedefName;
			T313_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T313_ = percent___GwVmUG4AZCEAP8dBk4TGHg(T312_, 2);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 4))- 0], T313_);
			X5BX5Deq___zhbvOVNN6tTRFgZkPDZOmA((&(*m).typeCache), sig, typedefName);
			result = typedefName;
		}
		goto LA233_;
		LA237_: ;
		{
			result = cacheGetType__2wgznvEs9bt7XaKJgVohBCw((*m).forwTypeCache, sig);
			{
				if (!(result == NIM_NIL)) goto LA317_;
				result = getTypeName__zLenRlTUJy0Mn9b8JKwzEcQ_3(m, origTyp, sig);
				X5BX5Deq___zhbvOVNN6tTRFgZkPDZOmA((&(*m).forwTypeCache), sig, result);
				{
					NIM_BOOL T321_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T324_;
					T321_ = (NIM_BOOL)0;
					T321_ = isImportedType__IafZhvqpthq9b9c13SFhzAOw_2(t);
					if (!!(T321_)) goto LA322_;
					T324_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T324_ = structOrUnion__TLFDupRCidtMx8175pusWQ(t);
					addForwardStructFormat__pzRGCZRDAEWnDSHC2tztFg(m, T324_, result);
				}
				LA322_: ;
				{
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T327_;
					T327_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
					T327_ = X5BX5D___KricVWBSqqSbgxpQ5up3Ig((&(*m).forwTypeCache), sig);
					if (!!(((*T327_) == result))) goto LA328_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_425));
				}
				LA328_: ;
			}
			LA317_: ;
			X5BX5Deq___zhbvOVNN6tTRFgZkPDZOmA((&(*m).typeCache), sig, result);
			{
				NIM_BOOL T332_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* recdesc;
				T332_ = (NIM_BOOL)0;
				T332_ = !(((*t).sym == NIM_NIL));
				if (!(T332_)) goto LA333_;
				T332_ = ((1040 & (*(*t).sym).flags) == 16);
				LA333_: ;
				if (!!(T332_)) goto LA334_;
				{
					if (!!(((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18)))) goto LA338_;
					recdesc = getRecordDesc__HJhu9cCeHNnnn2AMyLicEaw(m, t, result, check);
				}
				goto LA336_;
				LA338_: ;
				{
					recdesc = getTupleDesc__HJhu9cCeHNnnn2AMyLicEaw_2(m, t, result, check);
				}
				LA336_: ;
				{
					NIM_BOOL T343_;
					T343_ = (NIM_BOOL)0;
					T343_ = isImportedType__IafZhvqpthq9b9c13SFhzAOw_2(t);
					if (!!(T343_)) goto LA344_;
					add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 4))- 0], recdesc);
				}
				goto LA341_;
				LA344_: ;
				{
					if (!!((((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 40))&63U)))!=0))) goto LA347_;
					addAbiCheck__SaA9bA11X42SNop9bW9cVLmng(m, t, result);
				}
				goto LA341_;
				LA347_: ;
				LA341_: ;
			}
			LA334_: ;
		}
		LA233_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19):
	{
		NimStringDesc* T350_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T351_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T352_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T353_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T354_;
		tyArray__qtqsWM5aXmcpMIVmvq3kAA T355_;
		NimStringDesc* T356_;
		T350_ = (NimStringDesc*)0;
		T350_ = rawNewString((reprEnum((NI)(*t).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*t).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 1);
appendString(T350_, reprEnum((NI)(*t).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_)));
appendChar(T350_, 95);
		T351_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T351_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(t);
		T352_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T352_ = typeName__qvCJ9bux56nS82Shxh5hLNg(T351_);
		T353_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T353_ = amp___4cYKitaHx6RQ9azRtQsZp6w(T350_, T352_);
		T354_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T354_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(t);
		nimZeroMem((void*)T355_, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
		hashType__UdooXLclXL8uld7qLI5JRw(T354_, 2, T355_);
		T356_ = (NimStringDesc*)0;
		T356_ = dollar___0A9bslyIJ49bWrftLGh13rvg(T355_);
		result = amp___Z7W1o5nPSc3ExfO5f7j1Gg(T353_, T356_);
		X5BX5Deq___zhbvOVNN6tTRFgZkPDZOmA((&(*m).typeCache), sig, result);
		{
			NIM_BOOL T359_;
			NI s;
			NI64 T362_;
			T359_ = (NIM_BOOL)0;
			T359_ = isImportedType__IafZhvqpthq9b9c13SFhzAOw_2(t);
			if (!!(T359_)) goto LA360_;
			T362_ = (NI64)0;
			T362_ = getSize__vCG1GF2Iu043oALVyuJfOw((*(*m).g).config, t);
			if ((T362_) < ((NI) (-2147483647 -1)) || (T362_) > ((NI) 2147483647)){ raiseRangeErrorI(T362_, ((NI) (-2147483647 -1)), ((NI) 2147483647)); }
			s = ((NI) (T362_));
			switch (s) {
			case ((NI) 1):
			case ((NI) 2):
			case ((NI) 4):
			case ((NI) 8):
			{
				tyArray__mrugoXXRZUEeG9bEXo9auBKw T364_;
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_428;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T365_;
				nimZeroMem((void*)T364_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
				T364_[0] = result;
				if (nimMulInt(s, ((NI) 8), &TM__MQdRN7fpbG7rPm4JpVVAhA_428)) { raiseOverflow(); };
				T364_[1] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_428))));
				T365_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T365_ = percent___9c1P82lz6H9anMKDbz1vYNpg(T364_, 2);
				add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 4))- 0], T365_);
			}
			break;
			default:
			{
				tyArray__mrugoXXRZUEeG9bEXo9auBKw T367_;
				NI64 T368_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T369_;
				nimZeroMem((void*)T367_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
				T367_[0] = result;
				T368_ = (NI64)0;
				T368_ = getSize__vCG1GF2Iu043oALVyuJfOw((*(*m).g).config, t);
				T367_[1] = rope__KOisMGxcPhz6CcSmxgwEQQ(T368_);
				T369_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T369_ = percent___dbg9bsMENUwtF9aO45wEGG3Q(T367_, 2);
				add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 4))- 0], T369_);
			}
			break;
			}
		}
		LA360_: ;
	}
	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) 45):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 53):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 55):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T371_;
		T371_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T371_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(t);
		result = getTypeDescAux__BpNtboTsUfmvl9cmcZf9bOSQ(m, T371_, check);
	}
	break;
	default:
	{
		NimStringDesc* T373_;
		T373_ = (NimStringDesc*)0;
		T373_ = rawNewString((reprEnum((NI)(*t).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*t).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 16);
appendString(T373_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_429));
appendString(T373_, reprEnum((NI)(*t).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_)));
appendChar(T373_, 41);
		internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, T373_);
		result = NIM_NIL;
	}
	break;
	}
	excl__jENnK9c9bPE73pKmo2vYjpqg_2(check, (*t).Sup.id);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getTypeDesc__jXUNYqSX189axAU8O9bJBgpA)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* 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__n8oDZMn19bEdodSnrBQB9a1Q((&check));
	result = getTypeDescAux__BpNtboTsUfmvl9cmcZf9bOSQ(m, typ, (&check));
	return result;
}
static N_INLINE(NIM_BOOL, requiresExternC__axmagSzN10JTkqlmiAFoqQcgen)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* 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_;
	NIM_BOOL T10_;
	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) 31))&63U)))!=0);
	if (!(T3_)) goto LA4_;
	T5_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T5_ = getModule__xfh8ar7fDxVX2A4OO9b5sqQ(sym);
	T3_ = !((((*T5_).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 31))&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;
	T10_ = (NIM_BOOL)0;
	T10_ = (((*sym).flags & IL64(2147746048)) == 0);
	if (!(T10_)) goto LA11_;
	T10_ = !((((*sym).flags & 192) == 0));
	LA11_: ;
	T9_ = T10_;
	if (!(T9_)) goto LA12_;
	T9_ = ((*sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0));
	LA12_: ;
	T8_ = T9_;
	if (!(T8_)) goto LA13_;
	T8_ = ((*(*(*m).g).config).cmd == ((tyEnum_TCommands__VH3ghgQVwLSg3krOAoXigw) 2));
	LA13_: ;
	T1_ = T8_;
	LA7_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genProcPrototype__TAVDUakAwQnRHDK9cFe6L7g)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym) {
{	useHeader__TAVDUakAwQnRHDK9cFe6L7g_2(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_;
			NimStringDesc* res;
			NimStringDesc* T21_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T28_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T29_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T30_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T35_;
			T11_ = (NIM_BOOL)0;
			T12_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
			T12_ = getModule__xfh8ar7fDxVX2A4OO9b5sqQ(sym);
			T11_ = !(((*T12_).Sup.id == (*(*m).module).Sup.id));
			if (!(T11_)) goto LA13_;
			T14_ = (NIM_BOOL)0;
			T14_ = containsOrIncl__VFt0uM7bgfJ5age9alOsU9cg((&(*m).declaredThings), (*sym).Sup.id);
			T11_ = !(T14_);
			LA13_: ;
			if (!T11_) goto LA15_;
			{
				if (!!(!((m == NIM_NIL)))) goto LA19_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_30));
			}
			LA19_: ;
			res = rawNewString(((NI) 80));
			T21_ = (NimStringDesc*)0;
			{
				NIM_BOOL T24_;
				T24_ = (NIM_BOOL)0;
				T24_ = isReloadable__bilAk8nY4d5fxUpVg9bnphQ(m, sym);
				if (!T24_) goto LA25_;
				T21_ = copyString(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_31));
			}
			goto LA22_;
			LA25_: ;
			{
				T21_ = copyString(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_32));
			}
			LA22_: ;
			cgFormatValue__GOaK9aDgu4cLOYhocodpf3Q((&res), T21_);
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_33));
			T28_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T28_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*sym).loc);
			T29_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T29_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA(m, T28_);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T29_);
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_33));
			T30_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T30_ = mangleDynLibProc__MkmvPNwLUVhzodPsMjdbJw(sym);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T30_);
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_104));
			{
				if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA33_;
				res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA33_: ;
			T35_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T35_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], T35_);
			{
				NIM_BOOL T38_;
				tyArray__wqYjTJU9ab2ZgEFMaQc3vNA T41_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T42_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T43_;
				T38_ = (NIM_BOOL)0;
				T38_ = isReloadable__bilAk8nY4d5fxUpVg9bnphQ(m, sym);
				if (!T38_) goto LA39_;
				nimZeroMem((void*)T41_, sizeof(tyArray__wqYjTJU9ab2ZgEFMaQc3vNA));
				T41_[0] = mangleDynLibProc__MkmvPNwLUVhzodPsMjdbJw(sym);
				T42_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T42_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*sym).loc);
				T41_[1] = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA(m, T42_);
				T41_[2] = getModuleDllPath__RaNE9b8A430I9bfpgZmdrC1w_3(m, sym);
				T43_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T43_ = percent___vHbYzYlzLPcurSm0Hu8InQ(T41_, 3);
				add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 18))- 0], T43_);
			}
			LA39_: ;
		}
		LA15_: ;
	}
	goto LA5_;
	LA7_: ;
	{
		NIM_BOOL T45_;
		NIM_BOOL asPtr;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* header;
		NimStringDesc* res_2;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T80_;
		T45_ = (NIM_BOOL)0;
		T45_ = containsOrIncl__VFt0uM7bgfJ5age9alOsU9cg((&(*m).declaredProtos), (*sym).Sup.id);
		if (!!(T45_)) goto LA46_;
		asPtr = isReloadable__bilAk8nY4d5fxUpVg9bnphQ(m, sym);
		header = genProcHeader__OWG529cW3RTHLgDJuQoIH8A(m, sym, asPtr);
		{
			if (!!(asPtr)) goto LA50_;
			{
				NIM_BOOL T54_;
				T54_ = (NIM_BOOL)0;
				T54_ = isNoReturn__wKa9aVgc3t9a9atx3OlQKTJyQcgen(m, sym);
				if (!(T54_)) goto LA55_;
				if ((*(*(*m).g).config).cCompiler < 1 || (*(*(*m).g).config).cCompiler > 15){ raiseIndexError3((*(*(*m).g).config).cCompiler, 1, 15); }
				T54_ = ((CC__78I18QZNZFIv9ah7oETc0jg[((*(*(*m).g).config).cCompiler)- 1].Field21 &(1U<<((NU)(((tyEnum_TInfoCCProp__49cn73TjZ7Rt9b8QCAU8tLNg) 6))&7U)))!=0);
				LA55_: ;
				if (!T54_) goto LA56_;
				header = amp___4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_336), header);
			}
			LA56_: ;
			{
				NIM_BOOL T60_;
				T60_ = (NIM_BOOL)0;
				T60_ = !(((*(*sym).typ).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 5)));
				if (!(T60_)) goto LA61_;
				T60_ = requiresExternC__axmagSzN10JTkqlmiAFoqQcgen(m, sym);
				LA61_: ;
				if (!T60_) goto LA62_;
				header = amp___4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_430), header);
			}
			LA62_: ;
			{
				NIM_BOOL T66_;
				T66_ = (NIM_BOOL)0;
				T66_ = (((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 11))&63U)))!=0);
				if (!(T66_)) goto LA67_;
				if ((*(*(*m).g).config).cCompiler < 1 || (*(*(*m).g).config).cCompiler > 15){ raiseIndexError3((*(*(*m).g).config).cCompiler, 1, 15); }
				T66_ = ((CC__78I18QZNZFIv9ah7oETc0jg[((*(*(*m).g).config).cCompiler)- 1].Field21 &(1U<<((NU)(((tyEnum_TInfoCCProp__49cn73TjZ7Rt9b8QCAU8tLNg) 7))&7U)))!=0);
				LA67_: ;
				if (!T66_) goto LA68_;
				add__yG4AKzsBRS1W4MANDlXQeg(&header, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_431));
			}
			LA68_: ;
			{
				NIM_BOOL T72_;
				T72_ = (NIM_BOOL)0;
				T72_ = isNoReturn__wKa9aVgc3t9a9atx3OlQKTJyQcgen(m, sym);
				if (!(T72_)) goto LA73_;
				if ((*(*(*m).g).config).cCompiler < 1 || (*(*(*m).g).config).cCompiler > 15){ raiseIndexError3((*(*(*m).g).config).cCompiler, 1, 15); }
				T72_ = ((CC__78I18QZNZFIv9ah7oETc0jg[((*(*(*m).g).config).cCompiler)- 1].Field21 &(1U<<((NU)(((tyEnum_TInfoCCProp__49cn73TjZ7Rt9b8QCAU8tLNg) 7))&7U)))!=0);
				LA73_: ;
				if (!T72_) goto LA74_;
				add__yG4AKzsBRS1W4MANDlXQeg(&header, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_432));
			}
			LA74_: ;
		}
		LA50_: ;
		{
			if (!!(!((m == NIM_NIL)))) goto LA78_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_30));
		}
		LA78_: ;
		res_2 = rawNewString(((NI) 80));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), header);
		res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_433));
		T80_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T80_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], T80_);
	}
	goto LA5_;
	LA46_: ;
	LA5_: ;
	}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(p, (*d), s, 0);
		}
		goto LA5_;
		LA7_: ;
		{
			genAssignment__BtucsTdHw7orsXIL75hNVg(p, (*d), s, 1);
		}
		LA5_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		genericAssign((void*)(&(*d)), (void*)(&s), (&NTI__EtHNvCB0bgfu9bFjzx9cb6aA_));
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isSimpleConst__y9bTRtTAknVsv9apXKbpJYJA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	NIM_BOOL result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	result = (NIM_BOOL)0;
	t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(typ, IL64(36275087632017680));
	T1_ = (NIM_BOOL)0;
	T1_ = !(((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24)));
	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__qlujIAW86QclHYUVxlHRiQ((&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(p, (*d), a, 0);
		}
		goto LA5_;
		LA7_: ;
		{
			genAssignment__BtucsTdHw7orsXIL75hNVg(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(void, requestConstImpl__POVv0myAK3ae9cYA55o72Fw)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym) {
	tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m;
	tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* q;
{	m = (*p).module;
	useHeader__TAVDUakAwQnRHDK9cFe6L7g_2(m, sym);
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T5_;
		if (!((*sym).loc.k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0))) goto LA3_;
		T5_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T5_ = mangleName__RaNE9b8A430I9bfpgZmdrC1w((*p).module, sym);
		fillLoc__o49bXuxJYpCizOgQ54UViIg((&(*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__Dhy9cmzSsJkQqlfDq047WUA(m, sym);
	{
		NIM_BOOL T12_;
		NIM_BOOL T14_;
		tyArray__wqYjTJU9ab2ZgEFMaQc3vNA T21_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T22_;
		T12_ = (NIM_BOOL)0;
		T12_ = !((q == NIM_NIL));
		if (!(T12_)) goto LA13_;
		T14_ = (NIM_BOOL)0;
		T14_ = containsOrIncl__VFt0uM7bgfJ5age9alOsU9cg((&(*q).declaredThings), (*sym).Sup.id);
		T12_ = !(T14_);
		LA13_: ;
		if (!T12_) goto LA15_;
		{
			if (!!(((*(*q).initProc).module == q))) goto LA19_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_436));
		}
		LA19_: ;
		nimZeroMem((void*)T21_, sizeof(tyArray__wqYjTJU9ab2ZgEFMaQc3vNA));
		T21_[0] = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA(q, (*sym).typ);
		T21_[1] = (*sym).loc.r;
		T21_[2] = genBracedInit__zuhkXYLhosH9cERvaWpRX2w((*q).initProc, (*sym).ast, NIM_TRUE);
		T22_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T22_ = percent___eMtcjnP5EASsGpHWzVmIXA(T21_, 3);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*q).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], T22_);
	}
	LA15_: ;
	{
		NIM_BOOL T25_;
		NIM_BOOL T27_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* headerDecl;
		tyArray__mrugoXXRZUEeG9bEXo9auBKw T34_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T35_;
		T25_ = (NIM_BOOL)0;
		T25_ = !((q == m));
		if (!(T25_)) goto LA26_;
		T27_ = (NIM_BOOL)0;
		T27_ = containsOrIncl__VFt0uM7bgfJ5age9alOsU9cg((&(*m).declaredThings), (*sym).Sup.id);
		T25_ = !(T27_);
		LA26_: ;
		if (!T25_) goto LA28_;
		{
			if (!!(!(((*sym).loc.r == NIM_NIL)))) goto LA32_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_437));
		}
		LA32_: ;
		nimZeroMem((void*)T34_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
		T35_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T35_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*sym).loc);
		T34_[0] = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA(m, T35_);
		T34_[1] = (*sym).loc.r;
		headerDecl = percent___VsLzrOz1nS9cRBBz9ccZfETQ(T34_, 2);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], headerDecl);
		{
			NIM_BOOL T38_;
			T38_ = (NIM_BOOL)0;
			T38_ = (((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 7))&63U)))!=0);
			if (!(T38_)) goto LA39_;
			T38_ = !(((*(*(*p).module).g).generatedHeader == NIM_NIL));
			LA39_: ;
			if (!T38_) goto LA40_;
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*(*(*(*p).module).g).generatedHeader).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], headerDecl);
		}
		LA40_: ;
	}
	LA28_: ;
	}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);
	{
		NIM_BOOL T3_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*sym).loc.r == NIM_NIL));
		if (!(T3_)) goto LA4_;
		T5_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T5_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*sym).loc);
		T3_ = !((T5_ == NIM_NIL));
		LA4_: ;
		if (!!(T3_)) goto LA6_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_438));
	}
	LA6_: ;
	putLocIntoDest__SkhzpH2DDHJ7pbmCpsHIPg(p, d, (*sym).loc);
}
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_439));
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T6_;
		tyArray__JiWwrsTRC6xqNlGcBthSVA T7_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T8_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T9_;
		T6_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T6_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		nimZeroMem((void*)T7_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_174[(NU)((*value).kind)>>3] &(1U<<((NU)((*value).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_175)); }
		T7_[0] = rope__KOisMGxcPhz6CcSmxgwEQQ((*value)._kind_1.intVal);
		T8_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T8_ = percent___tRSKshYob5uzZE3eBVe59cg(T7_, 1);
		T9_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T9_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T8_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T6_, T9_);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hcrOn__NAlbw3fU59aFdo7L5aQtmkw)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = hcrOn__UhPXgqyDuuU9cKcS8FM883w((*(*(*p).module).g).config);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, potentialValueInit__ZPEw9bE7bf9b89ciOwNlnaiIg)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* v, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* value) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = (((*v).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA) 4))&15U)))!=0);
		if (T4_) goto LA5_;
		T4_ = (((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 26))&63U)))!=0);
		LA5_: ;
		T3_ = T4_;
		if (T3_) goto LA6_;
		T3_ = hcrOn__NAlbw3fU59aFdo7L5aQtmkw(p);
		LA6_: ;
		if (!T3_) goto LA7_;
		result = NIM_NIL;
	}
	goto LA1_;
	LA7_: ;
	{
		NIM_BOOL T10_;
		NIM_BOOL T11_;
		NIM_BOOL T12_;
		NIM_BOOL T13_;
		NIM_BOOL T16_;
		NIM_BOOL T20_;
		T10_ = (NIM_BOOL)0;
		T11_ = (NIM_BOOL)0;
		T12_ = (NIM_BOOL)0;
		T13_ = (NIM_BOOL)0;
		T13_ = (((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0);
		if (!(T13_)) goto LA14_;
		T13_ = !((value == NIM_NIL));
		LA14_: ;
		T12_ = T13_;
		if (!(T12_)) goto LA15_;
		T16_ = (NIM_BOOL)0;
		T16_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands__VH3ghgQVwLSg3krOAoXigw) 2));
		if (T16_) goto LA17_;
		T16_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 31))&63U)))!=0);
		LA17_: ;
		T12_ = isDeepConstExpr__sjm2oD6Aq9cG39aPE7CTvtmA(value, T16_);
		LA15_: ;
		T11_ = T12_;
		if (!(T11_)) goto LA18_;
		T11_ = ((*p).withinLoop == ((NI) 0));
		LA18_: ;
		T10_ = T11_;
		if (!(T10_)) goto LA19_;
		T20_ = (NIM_BOOL)0;
		T20_ = containsGarbageCollectedRef__IVXYI9cxSeivThgKCncHRnA_2((*v).typ);
		T10_ = !(T20_);
		LA19_: ;
		if (!T10_) goto LA21_;
		result = genBracedInit__zuhkXYLhosH9cERvaWpRX2w(p, value, NIM_FALSE);
	}
	goto LA1_;
	LA21_: ;
	{
		result = NIM_NIL;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, varInDynamicLib__TAVDUakAwQnRHDK9cFe6L7g_5)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym) {
	tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA* lib;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* extname;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* tmp;
	NI TM__MQdRN7fpbG7rPm4JpVVAhA_440;
	NimStringDesc* res;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T5_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T6_;
	NimStringDesc* T7_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T8_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T13_;
	tyArray__mrugoXXRZUEeG9bEXo9auBKw T14_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T15_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T16_;
	lib = (*sym).annex;
	extname = (*sym).loc.r;
	loadDynamicLib__Q3RS49c6kF7OS9bmwvFHRQJQ(m, lib);
	(*sym).loc.flags |= ((NU16)1)<<((((tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA) 0)) & 15);
	tmp = mangleDynLibProc__MkmvPNwLUVhzodPsMjdbJw(sym);
	asgnRef((void**) (&(*sym).loc.r), tmp);
	if (nimAddInt((*m).labels, ((NI) 2), &TM__MQdRN7fpbG7rPm4JpVVAhA_440)) { raiseOverflow(); };
	if (TM__MQdRN7fpbG7rPm4JpVVAhA_440 < 0 || TM__MQdRN7fpbG7rPm4JpVVAhA_440 > 2147483647){ raiseOverflow(); }
	(*m).labels = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_440);
	{
		if (!!(!((m == NIM_NIL)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_30));
	}
	LA3_: ;
	res = rawNewString(((NI) 80));
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), tmp);
	res = resizeString(res, 4);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_108));
	T5_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T5_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA(m, (*sym).typ);
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T5_);
	res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_441));
	T6_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T6_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_369));
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T6_);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), (*lib).name);
	res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
	T7_ = (NimStringDesc*)0;
	T7_ = dollar___mZ66tEveFIQokq3arf8Klw(extname);
	T8_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T8_ = makeCString__vQJydtKy4Nf6bXPYtbmjtg(T7_);
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T8_);
	res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
	{
		if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA11_;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
	}
	LA11_: ;
	T13_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T13_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
	add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 18))- 0], T13_);
	nimZeroMem((void*)T14_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
	T14_[0] = (*sym).loc.r;
	T15_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T15_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*sym).loc);
	T14_[1] = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA(m, T15_);
	T16_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T16_ = percent___vcbf2lEZaiSjbAHwgt9aKXw(T14_, 2);
	add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], T16_);
}
N_LIB_PRIVATE N_NIMCALL(void, assignGlobalVar__yX9bZpeKIzp3RLrjnzlc0NQ)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* value) {
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
{	if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
	s = (*n)._kind_4.sym;
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T5_;
		if (!((*s).loc.k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0))) goto LA3_;
		T5_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T5_ = mangleName__RaNE9b8A430I9bfpgZmdrC1w((*p).module, s);
		fillLoc__o49bXuxJYpCizOgQ54UViIg((&(*s).loc), ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 3), n, T5_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 3));
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = treatGlobalDifferentlyForHCR__AaEyY9c5j7G9bThwkB9ajJ8Pw((*p).module, s);
			if (!T8_) goto LA9_;
			(*s).loc.flags |= ((NU16)1)<<((((tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA) 0)) & 15);
		}
		LA9_: ;
	}
	LA3_: ;
	{
		tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* q;
		if (!(((*s).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA) 4))&15U)))!=0)) goto LA13_;
		q = findPendingModule__Dhy9cmzSsJkQqlfDq047WUA((*p).module, s);
		{
			NIM_BOOL T17_;
			NIM_BOOL T19_;
			T17_ = (NIM_BOOL)0;
			T17_ = !((q == NIM_NIL));
			if (!(T17_)) goto LA18_;
			T19_ = (NIM_BOOL)0;
			T19_ = containsOrIncl__VFt0uM7bgfJ5age9alOsU9cg((&(*q).declaredThings), (*s).Sup.id);
			T17_ = !(T19_);
			LA18_: ;
			if (!T17_) goto LA20_;
			varInDynamicLib__TAVDUakAwQnRHDK9cFe6L7g_5(q, s);
		}
		goto LA15_;
		LA20_: ;
		{
			asgnRef((void**) (&(*s).loc.r), mangleDynLibProc__MkmvPNwLUVhzodPsMjdbJw(s));
		}
		LA15_: ;
		{
			if (!!((value == NIM_NIL))) goto LA25_;
			internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_442));
		}
		LA25_: ;
		goto BeforeRet_;
	}
	LA13_: ;
	useHeader__TAVDUakAwQnRHDK9cFe6L7g_2((*p).module, s);
	{
		if (!(((*s).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA) 3))&15U)))!=0)) goto LA29_;
		goto BeforeRet_;
	}
	LA29_: ;
	{
		NIM_BOOL T33_;
		T33_ = (NIM_BOOL)0;
		T33_ = containsOrIncl__VFt0uM7bgfJ5age9alOsU9cg((&(*(*p).module).declaredThings), (*s).Sup.id);
		if (!!(T33_)) goto LA34_;
		{
			if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 26))&63U)))!=0)) goto LA38_;
			declareThreadVar__wDT42Iy4l3KGL9cd8rMjKRA((*p).module, s, (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 6))&63U)))!=0));
			{
				if (!!((value == NIM_NIL))) goto LA42_;
				internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_443));
			}
			LA42_: ;
		}
		goto LA36_;
		LA38_: ;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* decl;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* td;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T45_;
			decl = NIM_NIL;
			T45_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T45_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*s).loc);
			td = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, T45_);
			{
				if (!((*s).constraint == 0)) goto LA48_;
				{
					NIM_BOOL T52_;
					tyArray__JiWwrsTRC6xqNlGcBthSVA T56_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T57_;
					T52_ = (NIM_BOOL)0;
					T52_ = ((2622208 &(1U<<((NU)((*s).kind)&31U)))!=0);
					if (!(T52_)) goto LA53_;
					if (!(((2622208 &(1U<<((NU)((*s).kind)&31U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_100)); }
					T52_ = (((NI) 0) < (*s)._kind_4.alignment);
					LA53_: ;
					if (!T52_) goto LA54_;
					nimZeroMem((void*)T56_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
					if (!(((2622208 &(1U<<((NU)((*s).kind)&31U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_100)); }
					T56_[0] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*s)._kind_4.alignment)));
					T57_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T57_ = percent___iaEKHmIC9bNRZLxBqSNX0Sg(T56_, 1);
					add__IM4kcMNkkOLJtqdEqSxR8A(&decl, T57_);
				}
				LA54_: ;
				{
					NIM_BOOL T60_;
					T60_ = (NIM_BOOL)0;
					T60_ = hcrOn__NAlbw3fU59aFdo7L5aQtmkw(p);
					if (!T60_) goto LA61_;
					add__yG4AKzsBRS1W4MANDlXQeg(&decl, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_43));
				}
				goto LA58_;
				LA61_: ;
				{
					if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 6))&63U)))!=0)) goto LA64_;
					add__yG4AKzsBRS1W4MANDlXQeg(&decl, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_371));
				}
				goto LA58_;
				LA64_: ;
				{
					if (!(((*s).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA) 5))&15U)))!=0)) goto LA67_;
					add__yG4AKzsBRS1W4MANDlXQeg(&decl, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_372));
				}
				goto LA58_;
				LA67_: ;
				{
					add__yG4AKzsBRS1W4MANDlXQeg(&decl, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_44));
				}
				LA58_: ;
				{
					NIM_BOOL T72_;
					T72_ = (NIM_BOOL)0;
					T72_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 9));
					if (!(T72_)) goto LA73_;
					T72_ = !((value == NIM_NIL));
					LA73_: ;
					if (!T72_) goto LA74_;
					add__yG4AKzsBRS1W4MANDlXQeg(&decl, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_444));
				}
				LA74_: ;
				add__IM4kcMNkkOLJtqdEqSxR8A(&decl, td);
				{
					NIM_BOOL T78_;
					T78_ = (NIM_BOOL)0;
					T78_ = hcrOn__NAlbw3fU59aFdo7L5aQtmkw(p);
					if (!T78_) goto LA79_;
					add__yG4AKzsBRS1W4MANDlXQeg(&decl, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_69));
				}
				LA79_: ;
				{
					if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 10))&63U)))!=0)) goto LA83_;
					add__yG4AKzsBRS1W4MANDlXQeg(&decl, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_101));
				}
				LA83_: ;
				{
					if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 9))&63U)))!=0)) goto LA87_;
					add__yG4AKzsBRS1W4MANDlXQeg(&decl, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_102));
				}
				LA87_: ;
				{
					tyArray__mrugoXXRZUEeG9bEXo9auBKw T93_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T94_;
					if (!!((value == NIM_NIL))) goto LA91_;
					nimZeroMem((void*)T93_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
					T93_[0] = (*s).loc.r;
					T93_[1] = value;
					T94_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T94_ = percent___8aeHBTewuDsR3u9akMPiPqQ(T93_, 2);
					add__IM4kcMNkkOLJtqdEqSxR8A(&decl, T94_);
				}
				goto LA89_;
				LA91_: ;
				{
					tyArray__JiWwrsTRC6xqNlGcBthSVA T96_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T97_;
					nimZeroMem((void*)T96_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
					T96_[0] = (*s).loc.r;
					T97_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T97_ = percent___nzT6Rke9c7tkW9b3XMmld2LA(T96_, 1);
					add__IM4kcMNkkOLJtqdEqSxR8A(&decl, T97_);
				}
				LA89_: ;
			}
			goto LA46_;
			LA48_: ;
			{
				{
					NimStringDesc* T103_;
					tyArray__wqYjTJU9ab2ZgEFMaQc3vNA T104_;
					if (!!((value == NIM_NIL))) goto LA101_;
					T103_ = (NimStringDesc*)0;
					if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_91[(NU)((*(*s).constraint).kind)>>3] &(1U<<((NU)((*(*s).constraint).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_92)); }
					T103_ = rawNewString(((*(*s).constraint)._kind_3.strVal ? (*(*s).constraint)._kind_3.strVal->Sup.len : 0) + 8);
appendString(T103_, (*(*s).constraint)._kind_3.strVal);
appendString(T103_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_445));
					nimZeroMem((void*)T104_, sizeof(tyArray__wqYjTJU9ab2ZgEFMaQc3vNA));
					T104_[0] = td;
					T104_[1] = (*s).loc.r;
					T104_[2] = value;
					decl = runtimeFormat__9bvKdnhoYI2ta9agQNm3orMA(T103_, T104_, 3);
				}
				goto LA99_;
				LA101_: ;
				{
					NimStringDesc* T106_;
					tyArray__mrugoXXRZUEeG9bEXo9auBKw T107_;
					T106_ = (NimStringDesc*)0;
					if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_91[(NU)((*(*s).constraint).kind)>>3] &(1U<<((NU)((*(*s).constraint).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_92)); }
					T106_ = rawNewString(((*(*s).constraint)._kind_3.strVal ? (*(*s).constraint)._kind_3.strVal->Sup.len : 0) + 3);
appendString(T106_, (*(*s).constraint)._kind_3.strVal);
appendString(T106_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_446));
					nimZeroMem((void*)T107_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
					T107_[0] = td;
					T107_[1] = (*s).loc.r;
					decl = runtimeFormat__9bvKdnhoYI2ta9agQNm3orMA(T106_, T107_, 2);
				}
				LA99_: ;
			}
			LA46_: ;
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*(*p).module).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], decl);
		}
		LA36_: ;
	}
	LA34_: ;
	{
		NIM_BOOL T110_;
		T110_ = (NIM_BOOL)0;
		T110_ = (((NI) 0) < (*p).withinLoop);
		if (!(T110_)) goto LA111_;
		T110_ = (value == NIM_NIL);
		LA111_: ;
		if (!T110_) goto LA112_;
		resetLoc__B9bNAYVEwjQtkUkvoOVhV2Q(p, (&(*s).loc));
	}
	LA112_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, accessThreadLocalVar__IpGUPLhMYizrVHs0OdHySA)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {
	{
		NIM_BOOL T3_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T7_;
		tyArray__qTjAvTvKF9anytN1At69aJMQ T8_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T9_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T10_;
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T15_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T20_;
		T3_ = (NIM_BOOL)0;
		T3_ = emulatedThreadVars__7uEG6ZwO4OOj3nQvIat2mwcgen((*(*(*p).module).g).config);
		if (!(T3_)) goto LA4_;
		T3_ = !((((*p).flags &(1U<<((NU)(((tyEnum_TCProcFlag__LgBeaca7tT1nUR7RL1RjPQ) 1))&7U)))!=0));
		LA4_: ;
		if (!T3_) goto LA5_;
		(*p).flags |= ((NU8)1)<<((((tyEnum_TCProcFlag__LgBeaca7tT1nUR7RL1RjPQ) 1)) & 7);
		(*(*p).module).flags |= ((NU8)1)<<((((tyEnum_CodegenFlag__9c7EibnXBApMXwrQsaaMb6Q) 1)) & 7);
		T7_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T7_ = procSec__kOyJGmZMM2tMgCKSrvUE3g_2cgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 0));
		nimZeroMem((void*)T8_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
		T9_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T9_ = percent___sb2NV56uvmvOtYkgVsaVQQ(T8_, 0);
		add__IM4kcMNkkOLJtqdEqSxR8A(T7_, T9_);
		T10_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T10_ = procSec__kOyJGmZMM2tMgCKSrvUE3g_2cgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 1));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA13_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA13_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 27);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_447));
		T15_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T15_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_448));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T15_);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_334));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA18_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA18_: ;
		T20_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T20_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
		add__IM4kcMNkkOLJtqdEqSxR8A(T10_, T20_);
	}
	LA5_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genTraverseProcForGlobal__N6PVM8zp2L2vM3WsaTEaJQ)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* 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_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T16_;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*s).loc);
	T2_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = genTypeInfo__BeEYMOjEPJinzbFpsfTaZg(m, T1_, info);
	(void)(T2_);
	nimZeroMem((void*)(&c), sizeof(tyObject_TTraversalClosure__xQv4a9atAYFpL11GCS9cY9bCg));
	p = newProc__r9c9cj4fW68RhY7ht9btSvB8w(NIM_NIL, m);
	sLoc = rdLoc__xidyzuHqIciXbQyEOKahDg((*s).loc);
	result = getTempName__ao6gUnuVfQLtZ89c4kaIKfg(m);
	{
		NIM_BOOL T5_;
		T5_ = (NIM_BOOL)0;
		T5_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 26))&63U)))!=0);
		if (!(T5_)) goto LA6_;
		T5_ = emulatedThreadVars__7uEG6ZwO4OOj3nQvIat2mwcgen((*(*m).g).config);
		LA6_: ;
		if (!T5_) goto LA7_;
		accessThreadLocalVar__IpGUPLhMYizrVHs0OdHySA(p, s);
		sLoc = amp___4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_449), sLoc);
	}
	LA7_: ;
	c.visitorFrmt = copyString(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_138));
	c.p = p;
	nimZeroMem((void*)T9_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
	T9_[0] = result;
	header = percent___7STLi75js8HXlmFg7Abt9bQ(T9_, 1);
	T10_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T10_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*s).loc);
	genTraverseProc__LXrm7ZbTiXTVtbB5E60yIA_2(c, sLoc, T10_);
	nimZeroMem((void*)T11_, sizeof(tyArray__f7nG5LD47BH5K9c6mASit3g));
	T11_[0] = header;
	T12_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T12_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 0));
	T11_[1] = (*T12_);
	T13_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T13_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 1));
	T11_[2] = (*T13_);
	T14_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T14_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
	T11_[3] = (*T14_);
	generatedProc = percent___5O50gePV9adn3wgFGWjlOLQ(T11_, 4);
	nimZeroMem((void*)T15_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
	T15_[0] = header;
	T16_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T16_ = percent___9a3Y7eeGNXkOCLUktwxzN9ag(T15_, 1);
	add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], T16_);
	add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0], generatedProc);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getTraverseProc__V1atRcoAv09bVdrCPNlvW8Q)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* v) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T7_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = ((912 &(1U<<((NU)((*(*(*(*p).module).g).config).selectedGC)&15U)))!=0);
		if (!(T4_)) goto LA5_;
		T4_ = !((((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 41))&63U)))!=0));
		LA5_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA6_;
		T7_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T7_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*v).loc);
		T3_ = containsGarbageCollectedRef__IVXYI9cxSeivThgKCncHRnA_2(T7_);
		LA6_: ;
		if (!T3_) goto LA8_;
		result = genTraverseProcForGlobal__N6PVM8zp2L2vM3WsaTEaJQ((*p).module, v, (*v).info);
	}
	LA8_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, registerTraverseProc__BwxixSWhJWbQ369cJZeckHA)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* v, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* traverseProc) {
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T5_;
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T14_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T23_;
		if (!(((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 26))&63U)))!=0)) goto LA3_;
		T5_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T5_ = procSec__kOyJGmZMM2tMgCKSrvUE3g_2cgendata((*(*p).module).initProc, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 1));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA8_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA8_: ;
		res = rawNewString(((NI) 80));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA12_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA12_: ;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_16));
		T14_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_450));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T14_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), traverseProc);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA17_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA17_: ;
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA21_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA21_: ;
		T23_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T23_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
		add__IM4kcMNkkOLJtqdEqSxR8A(T5_, T23_);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T25_;
		NimStringDesc* res_2;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T34_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T43_;
		T25_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T25_ = procSec__kOyJGmZMM2tMgCKSrvUE3g_2cgendata((*(*p).module).initProc, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 1));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA28_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA28_: ;
		res_2 = rawNewString(((NI) 80));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA32_;
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA32_: ;
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_16));
		T34_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T34_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_451));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T34_);
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), traverseProc);
		res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA37_;
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA37_: ;
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA41_;
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA41_: ;
		T43_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T43_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
		add__IM4kcMNkkOLJtqdEqSxR8A(T25_, T43_);
	}
	LA1_: ;
}
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(NIM_BOOL, freshLineInfo__7ClJaTgavvBeZEMW4B6fYA)(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__cb5f0VvvxoagMath9ay3UuQ((*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) 27))&63U)))!=0)) goto LA3_;
		T5_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T5_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		nimZeroMem((void*)T6_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
		T7_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T7_ = percent___Ng8dczn37bLzoM9bsVdPwjQ(T6_, 0);
		T8_ = (NimStringDesc*)0;
		T8_ = sourceLine__b49bYNvmBdG6RP9cHaZGFhvQ((*(*(*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_21));
		add__IM4kcMNkkOLJtqdEqSxR8A(T5_, T10_);
	}
	LA3_: ;
	T11_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T11_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
	T12_ = (NimStringDesc*)0;
	T12_ = toFullPath__VW1RaR1l9c9bPnJxr1KuvIrg((*(*(*p).module).g).config, (*t).info.fileIndex);
	genCLineDir__W2V1U5l2z2M9c2i5Phjz9cow(T11_, T12_, line, (*(*(*p).module).g).config);
	{
		NIM_BOOL T15_;
		NIM_BOOL T16_;
		NIM_BOOL T18_;
		T15_ = (NIM_BOOL)0;
		T16_ = (NIM_BOOL)0;
		T16_ = ((1310720 & (*p).options) == 1310720);
		if (!(T16_)) goto LA17_;
		T18_ = (NIM_BOOL)0;
		T18_ = ((*p).prc == NIM_NIL);
		if (T18_) goto LA19_;
		T18_ = !((((*(*p).prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 11))&63U)))!=0));
		LA19_: ;
		T16_ = T18_;
		LA17_: ;
		T15_ = T16_;
		if (!(T15_)) goto LA20_;
		T15_ = !(((*t).info.fileIndex == ((NI32) -1)));
		LA20_: ;
		if (!T15_) goto LA21_;
		{
			NIM_BOOL T25_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T28_;
			NimStringDesc* res;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T33_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T38_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T39_;
			T25_ = (NIM_BOOL)0;
			T25_ = freshLineInfo__7ClJaTgavvBeZEMW4B6fYA(p, (*t).info);
			if (!T25_) goto LA26_;
			T28_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T28_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA31_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA31_: ;
			res = rawNewString(((NI) 80));
			res = resizeString(res, 7);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_452));
			cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res), ((NI64) (line)));
			res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
			T33_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T33_ = quotedFilename__2Kbe7lBq9cqJa8J9cn4WRepg((*(*(*p).module).g).config, (*t).info);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T33_);
			res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA36_;
				res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA36_: ;
			T38_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T38_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
			T39_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T39_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T38_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T28_, T39_);
		}
		LA26_: ;
	}
	LA21_: ;
}
static N_INLINE(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genArgStringToCString__yOhPG2oQOpNhI6KfbLI1XQcgen)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a;
	NimStringDesc* res;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T5_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T6_;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n)._kind_6.sons->data[((NI) 0)], (&a));
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
	}
	LA3_: ;
	res = rawNewString(((NI) 80));
	T5_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T5_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_456));
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T5_);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
	T6_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T6_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T6_);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
	result = rope__yShmEg9cffWxI7s5XzEKBow(res);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genArgNoParam__NYI5fC69aIqZGRakncXv9cNQ_3)(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*, 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_ = len__5mJADrRYkP3r9auuiuDZN9cQast(typ);
		if (!(i < T3_)) goto LA4_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*typ).n).kind)>>3] &(1U<<((NU)((*(*typ).n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(i) >= (NU)((*(*typ).n)._kind_6.sons ? (*(*typ).n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*(*typ).n)._kind_6.sons ? (*(*typ).n)._kind_6.sons->Sup.len : 0)-1); }
		paramType = (*(*typ).n)._kind_6.sons->data[i];
		{
			if (!!(((*paramType).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA8_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_455));
		}
		LA8_: ;
		{
			NIM_BOOL T12_;
			T12_ = (NIM_BOOL)0;
			T12_ = isCompileTimeOnly__F9ciDIanrWYqbJ4rgLlNAAg_3types((*paramType).typ);
			if (!T12_) goto LA13_;
			result = NIM_NIL;
		}
		goto LA10_;
		LA13_: ;
		{
			NIM_BOOL T16_;
			T16_ = (NIM_BOOL)0;
			if ((NU)(i) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)){ raiseIndexError2(i,((*typ).sons ? (*typ).sons->Sup.len : 0)-1); }
			T16_ = ((*(*typ).sons->data[i]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23));
			if (!(T16_)) goto LA17_;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(i) >= (NU)((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)-1); }
			T16_ = ((*(*ri)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64));
			LA17_: ;
			if (!T16_) goto LA18_;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(i) >= (NU)((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)-1); }
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*ri)._kind_6.sons->data[i]).kind)>>3] &(1U<<((NU)((*(*ri)._kind_6.sons->data[i]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*(*ri)._kind_6.sons->data[i])._kind_6.sons ? (*(*ri)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*ri)._kind_6.sons->data[i])._kind_6.sons ? (*(*ri)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)-1); }
			result = genArgNoParam__NYI5fC69aIqZGRakncXv9cNQ_3(p, (*(*ri)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)]);
		}
		goto LA10_;
		LA18_: ;
		{
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(i) >= (NU)((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)-1); }
			result = genArgNoParam__NYI5fC69aIqZGRakncXv9cNQ_3(p, (*ri)._kind_6.sons->data[i]);
		}
		LA10_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		{
			if (!!((((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 0))&63U)))!=0))) goto LA24_;
			localError__NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*ri).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_457));
			result = NIM_NIL;
		}
		goto LA22_;
		LA24_: ;
		{
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(i) >= (NU)((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)-1); }
			result = genArgNoParam__NYI5fC69aIqZGRakncXv9cNQ_3(p, (*ri)._kind_6.sons->data[i]);
		}
		LA22_: ;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, raiseInstr__3AsTOpq9crZUYBL9aD1lXBng_4)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		NI L;
		NI T5_;
		if (!((*(*(*(*p).module).g).config).exc == ((tyEnum_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ) 3))) goto LA3_;
		T5_ = ((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0);
		L = T5_;
		{
			NimStringDesc* res;
			if (!(L == ((NI) 0))) goto LA8_;
			(*p).flags |= ((NU8)1)<<((((tyEnum_TCProcFlag__LgBeaca7tT1nUR7RL1RjPQ) 0)) & 7);
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA12_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA12_: ;
			res = rawNewString(((NI) 80));
			res = resizeString(res, 16);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_479));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA16_;
				res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA16_: ;
			result = rope__yShmEg9cffWxI7s5XzEKBow(res);
		}
		goto LA6_;
		LA8_: ;
		{
			NimStringDesc* res_2;
			NI TM__MQdRN7fpbG7rPm4JpVVAhA_481;
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA21_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA21_: ;
			res_2 = rawNewString(((NI) 80));
			res_2 = resizeString(res_2, 7);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_480));
			if (nimSubInt(L, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_481)) { raiseOverflow(); };
			if ((NU)((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_481)) >= (NU)((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0)){ raiseIndexError2((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_481),((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0)-1); }
			cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res_2), ((NI64) ((*p).nestedTryStmts->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_481)].Field2)));
			res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_482));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA25_;
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA25_: ;
			result = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
		}
		LA6_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		result = NIM_NIL;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, intLiteral__0L2LUBpuDvHdOo5Bdh2tRw)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA i) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	NI64 T1_;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = (NI64)0;
	T1_ = toInt64__1szweXXq3RBN50owrYu2Xw(i);
	result = intLiteral__kQA0lBUvzOSZAw7DHC4Fjg(T1_);
	return result;
}
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__XNOXh7uniWNgiq58C9bW49awcgen(a);
		T4_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T4_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(T3_, IL64(36134350136322320));
		if (!((*T4_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2))) goto LA5_;
		nimZeroMem((void*)T7_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
		T7_[0] = result;
		result = percent___TmT2Gs9cB7RN9cmo9c9cBpfKsA(T7_, 1);
	}
	LA5_: ;
	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__XNOXh7uniWNgiq58C9bW49awcgen(arr);
	ty = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(T1_, IL64(36134350144710928));
	switch ((*ty).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48):
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T3_;
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T8_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T9_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T10_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T11_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T12_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T13_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T14_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T15_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T20_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T21_;
		T3_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T3_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA6_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA6_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 4);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_285));
		T8_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T8_ = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T8_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_472));
		T9_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T9_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T9_);
		res = resizeString(res, 16);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_473));
		T10_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T10_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T10_);
		res = resizeString(res, 10);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_474));
		T11_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T11_ = rdLoc__xidyzuHqIciXbQyEOKahDg(arr);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T11_);
		res = resizeString(res, 15);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_475));
		T12_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T12_);
		res = resizeString(res, 10);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_474));
		T13_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T13_ = rdLoc__xidyzuHqIciXbQyEOKahDg(arr);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T13_);
		res = resizeString(res, 10);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_476));
		T14_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_477));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T14_);
		res = resizeString(res, 4);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_478));
		T15_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T15_ = raiseInstr__3AsTOpq9crZUYBL9aD1lXBng_4(p);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T15_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_235));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA18_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA18_: ;
		T20_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T20_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
		T21_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T21_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T20_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T3_, T21_);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* first;
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T23_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T24_;
		NimStringDesc* res_2;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T29_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T30_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T31_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T32_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T33_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T34_;
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T35_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T36_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T37_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T38_;
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T39_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T40_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T41_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T42_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T47_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T48_;
		T23_ = firstOrd__hjogdnp59cMX1rwmjikBhqw((*(*(*p).module).g).config, ty);
		first = intLiteral__0L2LUBpuDvHdOo5Bdh2tRw(T23_);
		T24_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T24_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA27_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA27_: ;
		res_2 = rawNewString(((NI) 80));
		res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_285));
		T29_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T29_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(b);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T29_);
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_472));
		T30_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T30_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(a);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T30_);
		res_2 = resizeString(res_2, 11);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_483));
		T31_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T31_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(b);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T31_);
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_472));
		T32_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T32_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(a);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T32_);
		res_2 = resizeString(res_2, 9);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_484));
		T33_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T33_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(a);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T33_);
		res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_153));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), first);
		res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_485));
		T34_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T34_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(a);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T34_);
		res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_486));
		T35_ = lastOrd__hjogdnp59cMX1rwmjikBhqw_2((*(*(*p).module).g).config, ty);
		T36_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T36_ = intLiteral__0L2LUBpuDvHdOo5Bdh2tRw(T35_);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T36_);
		res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_485));
		T37_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T37_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(b);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T37_);
		res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_153));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), first);
		res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_485));
		T38_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T38_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(b);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T38_);
		res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_486));
		T39_ = lastOrd__hjogdnp59cMX1rwmjikBhqw_2((*(*(*p).module).g).config, ty);
		T40_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T40_ = intLiteral__0L2LUBpuDvHdOo5Bdh2tRw(T39_);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T40_);
		res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_487));
		T41_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T41_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_477));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T41_);
		res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_478));
		T42_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T42_ = raiseInstr__3AsTOpq9crZUYBL9aD1lXBng_4(p);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T42_);
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_235));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA45_;
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA45_: ;
		T47_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T47_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
		T48_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T48_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T47_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T24_, T48_);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T50_;
		NimStringDesc* res_3;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T55_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T56_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T57_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T58_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T59_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T60_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T61_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T62_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T67_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T68_;
		T50_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T50_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA53_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA53_: ;
		res_3 = rawNewString(((NI) 80));
		res_3 = resizeString(res_3, 4);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_285));
		T55_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T55_ = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T55_);
		res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_472));
		T56_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T56_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T56_);
		res_3 = resizeString(res_3, 16);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_473));
		T57_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T57_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T57_);
		res_3 = resizeString(res_3, 9);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_488));
		T58_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T58_ = lenExpr__Xfvxpx3W1zkiCqENsur9ckg(p, arr);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T58_);
		res_3 = resizeString(res_3, 9);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_489));
		T59_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T59_ = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T59_);
		res_3 = resizeString(res_3, 9);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_488));
		T60_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T60_ = lenExpr__Xfvxpx3W1zkiCqENsur9ckg(p, arr);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T60_);
		res_3 = resizeString(res_3, 4);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_487));
		T61_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T61_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_477));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T61_);
		res_3 = resizeString(res_3, 4);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_478));
		T62_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T62_ = raiseInstr__3AsTOpq9crZUYBL9aD1lXBng_4(p);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T62_);
		res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_235));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA65_;
			res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA65_: ;
		T67_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T67_ = rope__yShmEg9cffWxI7s5XzEKBow(res_3);
		T68_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T68_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T67_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T50_, T68_);
	}
	break;
	default:
	{
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, byRefLoc__Xfvxpx3W1zkiCqENsur9ckg_2)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	result = a.r;
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T6_;
		tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w T7_;
		NIM_BOOL T9_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T13_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = !(((a.flags &(1U<<((NU)(((tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA) 0))&15U)))!=0));
		if (!(T4_)) goto LA5_;
		T6_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T6_ = t__XNOXh7uniWNgiq58C9bW49awcgen(a);
		T7_ = (tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w)0;
		T7_ = mapType__K9aceyVl15zb9aYN9b6YJ8TnA((*(*(*p).module).g).config, T6_);
		T4_ = !((T7_ == ((tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w) 17)));
		LA5_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA8_;
		T9_ = (NIM_BOOL)0;
		T9_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands__VH3ghgQVwLSg3krOAoXigw) 2));
		if (T9_) goto LA10_;
		T9_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 31))&63U)))!=0);
		LA10_: ;
		T3_ = !(T9_);
		LA8_: ;
		if (!T3_) goto LA11_;
		T13_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T13_ = amp___4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_112), result);
		result = amp___Z7W1o5nPSc3ExfO5f7j1Gg(T13_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
	}
	LA11_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, openArrayLoc__6mPoivdljN39aZZDBAbjmIw)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* formalType, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* q;
	NIM_BOOL skipped;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
	q = skipConv__BH9abOhPX8pH0DnEWlRxmlw(n);
	skipped = NIM_FALSE;
	{
		while (1) {
			NIM_BOOL T3_;
			NI T5_;
			T3_ = (NIM_BOOL)0;
			T3_ = ((*q).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126));
			if (!(T3_)) goto LA4_;
			T5_ = (NI)0;
			T5_ = len__P89cqdlERShb9alU3iC0yj8wast(q);
			T3_ = (((NI) 0) < T5_);
			LA4_: ;
			if (!T3_) goto LA2;
			skipped = NIM_TRUE;
			q = lastSon__UPSW0jLTX5qJL51YMUAHgw(q);
		} LA2: ;
	}
	{
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T8_;
		tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA b;
		tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA c;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ty;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T28_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* dest;
		T8_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T8_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(q);
		if (!(T8_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 125))) goto LA9_;
		{
			if (!skipped) goto LA13_;
			q = skipConv__BH9abOhPX8pH0DnEWlRxmlw(n);
			{
				while (1) {
					NIM_BOOL T17_;
					NI T19_;
					T17_ = (NIM_BOOL)0;
					T17_ = ((*q).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126));
					if (!(T17_)) goto LA18_;
					T19_ = (NI)0;
					T19_ = len__P89cqdlERShb9alU3iC0yj8wast(q);
					T17_ = (((NI) 0) < T19_);
					LA18_: ;
					if (!T17_) goto LA16;
					{
						NI i;
						NI colontmp_;
						NI T21_;
						NI TM__MQdRN7fpbG7rPm4JpVVAhA_470;
						NI i_2;
						i = (NI)0;
						colontmp_ = (NI)0;
						T21_ = (NI)0;
						T21_ = len__P89cqdlERShb9alU3iC0yj8wast(q);
						if (nimSubInt(T21_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_470)) { raiseOverflow(); };
						colontmp_ = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_470);
						i_2 = ((NI) 0);
						{
							while (1) {
								NI TM__MQdRN7fpbG7rPm4JpVVAhA_471;
								if (!(i_2 < colontmp_)) goto LA23;
								i = i_2;
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*q).kind)>>3] &(1U<<((NU)((*q).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(i) >= (NU)((*q)._kind_6.sons ? (*q)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*q)._kind_6.sons ? (*q)._kind_6.sons->Sup.len : 0)-1); }
								genStmts__QrTB5DOwbDX9bKAW7PNbuJA(p, (*q)._kind_6.sons->data[i]);
								if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_471)) { raiseOverflow(); };
								i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_471);
							} LA23: ;
						}
					}
					q = lastSon__UPSW0jLTX5qJL51YMUAHgw(q);
				} LA16: ;
			}
		}
		LA13_: ;
		nimZeroMem((void*)(&b), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
		nimZeroMem((void*)(&c), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*q).kind)>>3] &(1U<<((NU)((*q).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*q)._kind_6.sons ? (*q)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*q)._kind_6.sons ? (*q)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*q)._kind_6.sons->data[((NI) 1)], (&a));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*q).kind)>>3] &(1U<<((NU)((*q).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 2)) >= (NU)((*q)._kind_6.sons ? (*q)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*q)._kind_6.sons ? (*q)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*q)._kind_6.sons->data[((NI) 2)], (&b));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*q).kind)>>3] &(1U<<((NU)((*q).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 3)) >= (NU)((*q)._kind_6.sons ? (*q)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 3),((*q)._kind_6.sons ? (*q)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*q)._kind_6.sons->data[((NI) 3)], (&c));
		{
			if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 4))&31U)))!=0)) goto LA26_;
			genBoundsCheck__Hw9c2IcxFuX7vhYGTZsoSPA(p, a, b, c);
		}
		LA26_: ;
		T28_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T28_ = t__XNOXh7uniWNgiq58C9bW49awcgen(a);
		ty = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(T28_, IL64(36275087634114832));
		if ((NU)(((NI) 0)) >= (NU)((*(*n).typ).sons ? (*(*n).typ).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*n).typ).sons ? (*(*n).typ).sons->Sup.len : 0)-1); }
		dest = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, (*(*n).typ).sons->data[((NI) 0)]);
		switch ((*ty).kind) {
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
		{
			NI64 first;
			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T30_;
			T30_ = firstOrd__hjogdnp59cMX1rwmjikBhqw((*(*(*p).module).g).config, ty);
			first = toInt64__1szweXXq3RBN50owrYu2Xw(T30_);
			{
				tyArray__f7nG5LD47BH5K9c6mASit3g T35_;
				if (!(first == IL64(0))) goto LA33_;
				nimZeroMem((void*)T35_, sizeof(tyArray__f7nG5LD47BH5K9c6mASit3g));
				T35_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
				T35_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
				T35_[2] = rdLoc__xidyzuHqIciXbQyEOKahDg(c);
				T35_[3] = dest;
				result = percent___RiPFNabSvay09bAW4Jic2ag(T35_, 4);
			}
			goto LA31_;
			LA33_: ;
			{
				tyArray__duFhZXIIlrbrM62cWjNekg T37_;
				nimZeroMem((void*)T37_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
				T37_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
				T37_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
				T37_[2] = rdLoc__xidyzuHqIciXbQyEOKahDg(c);
				T37_[3] = intLiteral__kQA0lBUvzOSZAw7DHC4Fjg(first);
				T37_[4] = dest;
				result = percent___efSHgbCUYoX1lUK7M9aj4Pg(T37_, 5);
			}
			LA31_: ;
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 49):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 29):
		{
			tyArray__f7nG5LD47BH5K9c6mASit3g T39_;
			nimZeroMem((void*)T39_, sizeof(tyArray__f7nG5LD47BH5K9c6mASit3g));
			T39_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
			T39_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
			T39_[2] = rdLoc__xidyzuHqIciXbQyEOKahDg(c);
			T39_[3] = dest;
			result = percent___Vmgih7rhd9cXUC9cEBz2cwXQ(T39_, 4);
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* atyp;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T41_;
			T41_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T41_ = t__XNOXh7uniWNgiq58C9bW49awcgen(a);
			atyp = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(T41_, IL64(36134350135273744));
			{
				NIM_BOOL T44_;
				NIM_BOOL T45_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T46_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T51_;
				NimStringDesc* res;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T56_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T57_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T62_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T63_;
				T44_ = (NIM_BOOL)0;
				T45_ = (NIM_BOOL)0;
				T46_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T46_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(formalType, IL64(36134350135273744));
				T45_ = ((*T46_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23));
				if (!(T45_)) goto LA47_;
				T45_ = ((*atyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28));
				LA47_: ;
				T44_ = T45_;
				if (!(T44_)) goto LA48_;
				T44_ = (((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 39))&63U)))!=0);
				LA48_: ;
				if (!T44_) goto LA49_;
				T51_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T51_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA54_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA54_: ;
				res = rawNewString(((NI) 80));
				T56_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T56_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_490));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T56_);
				res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
				T57_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T57_ = byRefLoc__Xfvxpx3W1zkiCqENsur9ckg_2(p, a);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T57_);
				res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA60_;
					res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA60_: ;
				T62_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T62_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
				T63_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T63_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T62_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T51_, T63_);
			}
			LA49_: ;
			{
				NIM_BOOL T66_;
				NIM_BOOL T68_;
				tyArray__duFhZXIIlrbrM62cWjNekg T72_;
				T66_ = (NIM_BOOL)0;
				T66_ = ((*atyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23));
				if (!(T66_)) goto LA67_;
				T68_ = (NIM_BOOL)0;
				T68_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands__VH3ghgQVwLSg3krOAoXigw) 2));
				if (T68_) goto LA69_;
				T68_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 31))&63U)))!=0);
				LA69_: ;
				T66_ = !(T68_);
				LA67_: ;
				if (!T66_) goto LA70_;
				nimZeroMem((void*)T72_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
				T72_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
				T72_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
				T72_[2] = rdLoc__xidyzuHqIciXbQyEOKahDg(c);
				T72_[3] = dataField__3AsTOpq9crZUYBL9aD1lXBng_2(p);
				T72_[4] = dest;
				result = percent___rB3209aHcqpT39anNUezpSjg(T72_, 5);
			}
			goto LA64_;
			LA70_: ;
			{
				tyArray__duFhZXIIlrbrM62cWjNekg T74_;
				nimZeroMem((void*)T74_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
				T74_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
				T74_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
				T74_[2] = rdLoc__xidyzuHqIciXbQyEOKahDg(c);
				T74_[3] = dataField__3AsTOpq9crZUYBL9aD1lXBng_2(p);
				T74_[4] = dest;
				result = percent___x85Q1O2QUnYbstPlxUCyAQ(T74_, 5);
			}
			LA64_: ;
		}
		break;
		default:
		{
			NimStringDesc* T76_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T77_;
			NimStringDesc* T78_;
			T76_ = (NimStringDesc*)0;
			T77_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T77_ = t__XNOXh7uniWNgiq58C9bW49awcgen(a);
			T78_ = (NimStringDesc*)0;
			T78_ = typeToString__QlvraUan7WbHowhAbvDvdA(T77_, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			T76_ = rawNewString((T78_ ? T78_->Sup.len : 0) + 14);
appendString(T76_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_491));
appendString(T76_, T78_);
			internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*(*(*p).module).g).config, T76_);
		}
		break;
		}
	}
	goto LA6_;
	LA9_: ;
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T80_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T81_;
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, n, (&a));
		T80_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T80_ = t__XNOXh7uniWNgiq58C9bW49awcgen(a);
		T81_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T81_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(T80_, IL64(36275087632017680));
		switch ((*T81_).kind) {
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48):
		{
			tyArray__JiWwrsTRC6xqNlGcBthSVA T83_;
			nimZeroMem((void*)T83_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
			T83_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
			result = percent___L3AeZ1n9aK4C1jsBCeaCmlQ(T83_, 1);
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ntyp;
			ntyp = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36134350135273744));
			{
				NIM_BOOL T87_;
				NIM_BOOL T88_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T89_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T94_;
				NimStringDesc* res_2;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T99_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T100_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T105_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T106_;
				T87_ = (NIM_BOOL)0;
				T88_ = (NIM_BOOL)0;
				T89_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T89_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(formalType, IL64(36134350135273744));
				T88_ = ((*T89_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23));
				if (!(T88_)) goto LA90_;
				T88_ = ((*ntyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28));
				LA90_: ;
				T87_ = T88_;
				if (!(T87_)) goto LA91_;
				T87_ = (((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 39))&63U)))!=0);
				LA91_: ;
				if (!T87_) goto LA92_;
				T94_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T94_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA97_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA97_: ;
				res_2 = rawNewString(((NI) 80));
				T99_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T99_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_490));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T99_);
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
				T100_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T100_ = byRefLoc__Xfvxpx3W1zkiCqENsur9ckg_2(p, a);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T100_);
				res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA103_;
					res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA103_: ;
				T105_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T105_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
				T106_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T106_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T105_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T94_, T106_);
			}
			LA92_: ;
			{
				NIM_BOOL T109_;
				NIM_BOOL T111_;
				tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA t;
				tyArray__JiWwrsTRC6xqNlGcBthSVA T115_;
				tyArray__wqYjTJU9ab2ZgEFMaQc3vNA T116_;
				T109_ = (NIM_BOOL)0;
				T109_ = ((*ntyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23));
				if (!(T109_)) goto LA110_;
				T111_ = (NIM_BOOL)0;
				T111_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands__VH3ghgQVwLSg3krOAoXigw) 2));
				if (T111_) goto LA112_;
				T111_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 31))&63U)))!=0);
				LA112_: ;
				T109_ = !(T111_);
				LA110_: ;
				if (!T109_) goto LA113_;
				nimZeroMem((void*)(&t), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
				nimZeroMem((void*)T115_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
				T115_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
				t.r = percent___TbMwXzwNL7txOQADiTjwKA(T115_, 1);
				nimZeroMem((void*)T116_, sizeof(tyArray__wqYjTJU9ab2ZgEFMaQc3vNA));
				T116_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
				T116_[1] = lenExpr__Xfvxpx3W1zkiCqENsur9ckg(p, t);
				T116_[2] = dataField__3AsTOpq9crZUYBL9aD1lXBng_2(p);
				result = percent___ebmRHYtM9cCbYF6WvKDfQ9cg(T116_, 3);
			}
			goto LA107_;
			LA113_: ;
			{
				tyArray__wqYjTJU9ab2ZgEFMaQc3vNA T118_;
				nimZeroMem((void*)T118_, sizeof(tyArray__wqYjTJU9ab2ZgEFMaQc3vNA));
				T118_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
				T118_[1] = lenExpr__Xfvxpx3W1zkiCqENsur9ckg(p, a);
				T118_[2] = dataField__3AsTOpq9crZUYBL9aD1lXBng_2(p);
				result = percent___qE1JtEDDOvP6J49a9cv9aK1Dg(T118_, 3);
			}
			LA107_: ;
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
		{
			tyArray__mrugoXXRZUEeG9bEXo9auBKw T120_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T121_;
			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T122_;
			nimZeroMem((void*)T120_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
			T120_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
			T121_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T121_ = t__XNOXh7uniWNgiq58C9bW49awcgen(a);
			T122_ = lengthOrd__hjogdnp59cMX1rwmjikBhqw_3((*(*(*p).module).g).config, T121_);
			T120_[1] = rope__b5mr3rjXEwHVfmNLJr4cBA(T122_);
			result = percent___ctvQ2lU9b9bnVVpNP4GhIo2Q(T120_, 2);
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22):
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T124_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T125_;
			T124_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T124_ = t__XNOXh7uniWNgiq58C9bW49awcgen(a);
			T125_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T125_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(T124_);
			switch ((*T125_).kind) {
			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
			{
				tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA t_2;
				tyArray__JiWwrsTRC6xqNlGcBthSVA T127_;
				tyArray__wqYjTJU9ab2ZgEFMaQc3vNA T128_;
				nimZeroMem((void*)(&t_2), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
				nimZeroMem((void*)T127_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
				T127_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
				t_2.r = percent___TbMwXzwNL7txOQADiTjwKA(T127_, 1);
				nimZeroMem((void*)T128_, sizeof(tyArray__wqYjTJU9ab2ZgEFMaQc3vNA));
				T128_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
				T128_[1] = lenExpr__Xfvxpx3W1zkiCqENsur9ckg(p, t_2);
				T128_[2] = dataField__3AsTOpq9crZUYBL9aD1lXBng_2(p);
				result = percent___ebmRHYtM9cCbYF6WvKDfQ9cg(T128_, 3);
			}
			break;
			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
			{
				tyArray__mrugoXXRZUEeG9bEXo9auBKw T130_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T131_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T132_;
				tyObject_Int128__9a9axPfb75jdWY25AamJewkA T133_;
				nimZeroMem((void*)T130_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
				T130_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
				T131_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T131_ = t__XNOXh7uniWNgiq58C9bW49awcgen(a);
				T132_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T132_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(T131_);
				T133_ = lengthOrd__hjogdnp59cMX1rwmjikBhqw_3((*(*(*p).module).g).config, T132_);
				T130_[1] = rope__b5mr3rjXEwHVfmNLJr4cBA(T133_);
				result = percent___ctvQ2lU9b9bnVVpNP4GhIo2Q(T130_, 2);
			}
			break;
			default:
			{
				NimStringDesc* T135_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T136_;
				NimStringDesc* T137_;
				T135_ = (NimStringDesc*)0;
				T136_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T136_ = t__XNOXh7uniWNgiq58C9bW49awcgen(a);
				T137_ = (NimStringDesc*)0;
				T137_ = typeToString__QlvraUan7WbHowhAbvDvdA(T136_, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
				T135_ = rawNewString((T137_ ? T137_->Sup.len : 0) + 14);
appendString(T135_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_491));
appendString(T135_, T137_);
				internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*(*(*p).module).g).config, T135_);
			}
			break;
			}
		}
		break;
		default:
		{
			NimStringDesc* T139_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T140_;
			NimStringDesc* T141_;
			T139_ = (NimStringDesc*)0;
			T140_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T140_ = t__XNOXh7uniWNgiq58C9bW49awcgen(a);
			T141_ = (NimStringDesc*)0;
			T141_ = typeToString__QlvraUan7WbHowhAbvDvdA(T140_, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			T139_ = rawNewString((T141_ ? T141_->Sup.len : 0) + 14);
appendString(T139_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_491));
appendString(T139_, T141_);
			internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*(*(*p).module).g).config, T139_);
		}
		break;
		}
	}
	LA6_: ;
	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__zsqmUNR5OZrTUna0Y9bdu9bg((*param).typ, IL64(36275087632017680));
		if (!((*T6_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27) || (*T6_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48))) goto LA7_;
		{
			if (!!(((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64)))) goto LA11_;
			n_2 = n;
		}
		goto LA9_;
		LA11_: ;
		{
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
			n_2 = (*n)._kind_6.sons->data[((NI) 0)];
		}
		LA9_: ;
		result = openArrayLoc__6mPoivdljN39aZZDBAbjmIw(p, (*param).typ, n_2);
	}
	goto LA1_;
	LA7_: ;
	{
		NIM_BOOL T15_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*call).kind)>>3] &(1U<<((NU)((*call).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*call)._kind_6.sons ? (*call)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*call)._kind_6.sons ? (*call)._kind_6.sons->Sup.len : 0)-1); }
		if ((NU)(((NI) 0)) >= (NU)((*(*(*call)._kind_6.sons->data[((NI) 0)]).typ).sons ? (*(*(*call)._kind_6.sons->data[((NI) 0)]).typ).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*(*call)._kind_6.sons->data[((NI) 0)]).typ).sons ? (*(*(*call)._kind_6.sons->data[((NI) 0)]).typ).sons->Sup.len : 0)-1); }
		T15_ = (NIM_BOOL)0;
		T15_ = ccgIntroducedPtr__W9aw79b629bysnh3DDOpE3OTg((*(*(*p).module).g).config, param, (*(*(*call)._kind_6.sons->data[((NI) 0)]).typ).sons->data[((NI) 0)]);
		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) 31))&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_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		initLocExprSingleUse__9biTBaXPz9cezuLjjWw9cSEGw(p, (*n)._kind_6.sons->data[((NI) 0)], (&a));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*call).kind)>>3] &(1U<<((NU)((*call).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*call)._kind_6.sons ? (*call)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*call)._kind_6.sons ? (*call)._kind_6.sons->Sup.len : 0)-1); }
		callee = (*call)._kind_6.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_;
			if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*callee).kind)>>3] &(1U<<((NU)((*callee).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
			T30_ = ((IL64(2147745856) & (*(*callee)._kind_4.sym).flags) == 64);
			LA31_: ;
			T29_ = T30_;
			if (!(T29_)) goto LA32_;
			if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*callee).kind)>>3] &(1U<<((NU)((*callee).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
			T29_ = !(((72 & (*(*callee)._kind_4.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*, getRawProcType__pQ3A543K4YxeaNh48yoUog)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	result = getClosureType__lWDfUH9cj8K8DjyEqo9cmP3A((*p).module, t, ((tyEnum_TClosureTypeKind__cLHRMz1vnpSK0uePy2qbWw) 0));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, canRaiseDisp__Y9bFh7BmZkh729bS2kZ5kwnQ)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, 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_;
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
		T3_ = !(((IL64(4398046773312) & (*(*n)._kind_4.sym).flags) == 0));
		LA4_: ;
		if (!T3_) goto LA5_;
		result = NIM_FALSE;
	}
	goto LA1_;
	LA5_: ;
	{
		NIM_BOOL T8_;
		NIM_BOOL T10_;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T12_;
		T8_ = (NIM_BOOL)0;
		T8_ = (((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 46))&63U)))!=0);
		if (T8_) goto LA9_;
		T10_ = (NIM_BOOL)0;
		T10_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
		if (!(T10_)) goto LA11_;
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
		T12_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		T12_ = getModule__xfh8ar7fDxVX2A4OO9b5sqQ((*n)._kind_4.sym);
		T10_ = (((*T12_).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 15))&63U)))!=0);
		LA11_: ;
		T8_ = T10_;
		LA9_: ;
		if (!T8_) goto LA13_;
		result = canRaise__qAerQ9bftuf70QDk42UIFXg_2(n);
	}
	goto LA1_;
	LA13_: ;
	{
		result = canRaiseConservative__qAerQ9bftuf70QDk42UIFXg(n);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, locationEscapes__fKz9bDGxeJtVdl9bZW9aX2KFA)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* le, NIM_BOOL inTryStmt) {
	NIM_BOOL result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
{	result = (NIM_BOOL)0;
	n = le;
	{
		while (1) {
			switch ((*n).kind) {
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
			{
				{
					if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
					if (!!(((*(*n)._kind_4.sym).owner == (*p).prc))) goto LA6_;
					result = NIM_TRUE;
					goto BeforeRet_;
				}
				goto LA4_;
				LA6_: ;
				{
					NIM_BOOL T9_;
					T9_ = (NIM_BOOL)0;
					T9_ = inTryStmt;
					if (!(T9_)) goto LA10_;
					if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
					T9_ = (((*(*n)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 43))&63U)))!=0);
					LA10_: ;
					if (!T9_) goto LA11_;
					result = NIM_TRUE;
					goto BeforeRet_;
				}
				goto LA4_;
				LA11_: ;
				LA4_: ;
				result = NIM_FALSE;
				goto BeforeRet_;
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 67):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46):
			{
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
				n = (*n)._kind_6.sons->data[((NI) 0)];
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 60):
			{
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
				n = (*n)._kind_6.sons->data[((NI) 1)];
			}
			break;
			default:
			{
				result = NIM_TRUE;
				goto BeforeRet_;
			}
			break;
			}
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, preventNrvo__VzIhhB7jFivZ9c6NgOwxU1Q)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, 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__P89cqdlERShb9alU3iC0yj8wast(ri);
			i_2 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* r;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_493;
					if (!(i_2 < colontmp_)) goto LA7;
					i = i_2;
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i) >= (NU)((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)-1); }
					r = (*ri)._kind_6.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_: ;
					if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_493)) { raiseOverflow(); };
					i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_493);
				} LA7: ;
			}
		}
		{
			NIM_BOOL T15_;
			NI T17_;
			NimStringDesc* T20_;
			T15_ = (NIM_BOOL)0;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)-1); }
			T15_ = canRaise__qAerQ9bftuf70QDk42UIFXg_2((*ri)._kind_6.sons->data[((NI) 0)]);
			if (!(T15_)) goto LA16_;
			T17_ = ((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0);
			T15_ = locationEscapes__fKz9bDGxeJtVdl9bZW9aX2KFA(p, le, (((NI) 0) < T17_));
			LA16_: ;
			if (!T15_) goto LA18_;
			T20_ = (NimStringDesc*)0;
			T20_ = dollar___qX5C9b0n9bOP7jk69amC8dA7A(le);
			message__mMj7lrOf3zBP9bl69amiKu5g((*(*(*p).module).g).config, (*le).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 48), T20_);
		}
		LA18_: ;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, hasNoInit__XO14mevzEVVwQTyfj9cMewwcgen)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* call) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*call).kind)>>3] &(1U<<((NU)((*call).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*call)._kind_6.sons ? (*call)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*call)._kind_6.sons ? (*call)._kind_6.sons->Sup.len : 0)-1); }
	T1_ = ((*(*call)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
	if (!(T1_)) goto LA2_;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*call).kind)>>3] &(1U<<((NU)((*call).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*call)._kind_6.sons ? (*call)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*call)._kind_6.sons ? (*call)._kind_6.sons->Sup.len : 0)-1); }
	if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*call)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*call)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
	T1_ = (((*(*(*call)._kind_6.sons->data[((NI) 0)])._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 14))&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___PoDv5ydEvGdd9aiIF9cOiAPw(T6_, 0);
		result = amp___ShdZ6VrAQkY0nWR9a39b9bGdQ(r, T7_);
	}
	LA1_: ;
	return result;
}
static N_INLINE(tyTuple__FxkU4d1VDodDMc9ah6Mbagw*, X5BX5D___X6aCqErYyvvzizP8PaBpFQsystem)(tyTuple__FxkU4d1VDodDMc9ah6Mbagw* s, NI sLen_0, NI i) {
	tyTuple__FxkU4d1VDodDMc9ah6Mbagw* result;
	NI TM__MQdRN7fpbG7rPm4JpVVAhA_497;
	result = (tyTuple__FxkU4d1VDodDMc9ah6Mbagw*)0;
	if (nimSubInt(sLen_0, i, &TM__MQdRN7fpbG7rPm4JpVVAhA_497)) { raiseOverflow(); };
	if ((NU)((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_497)) >= (NU)(sLen_0)){ raiseIndexError2((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_497),sLen_0-1); }
	result = (&s[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_497)]);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, raiseExit__0dpuY9coTlraj8JXIe2BzVw_2)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p) {
	{
		if (!!(((*(*(*(*p).module).g).config).exc == ((tyEnum_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ) 3)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_494));
	}
	LA3_: ;
	{
		if (!!((((*p).flags &(1U<<((NU)(((tyEnum_TCProcFlag__LgBeaca7tT1nUR7RL1RjPQ) 6))&7U)))!=0))) goto LA7_;
		(*p).flags |= ((NU8)1)<<((((tyEnum_TCProcFlag__LgBeaca7tT1nUR7RL1RjPQ) 4)) & 7);
		{
			NI T11_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T14_;
			NimStringDesc* res;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T23_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T24_;
			T11_ = ((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0);
			if (!(T11_ == ((NI) 0))) goto LA12_;
			(*p).flags |= ((NU8)1)<<((((tyEnum_TCProcFlag__LgBeaca7tT1nUR7RL1RjPQ) 0)) & 7);
			T14_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T14_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA17_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA17_: ;
			res = rawNewString(((NI) 80));
			res = resizeString(res, 44);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_495));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA21_;
				res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA21_: ;
			T23_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T23_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
			T24_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T24_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T23_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T14_, T24_);
		}
		goto LA9_;
		LA12_: ;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T26_;
			NimStringDesc* res_2;
			tyTuple__FxkU4d1VDodDMc9ah6Mbagw* T31_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T36_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T37_;
			T26_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T26_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA29_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA29_: ;
			res_2 = rawNewString(((NI) 80));
			res_2 = resizeString(res_2, 35);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_496));
			T31_ = (tyTuple__FxkU4d1VDodDMc9ah6Mbagw*)0;
			T31_ = X5BX5D___X6aCqErYyvvzizP8PaBpFQsystem((*p).nestedTryStmts->data, ((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0), ((NI) 1));
			cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res_2), ((NI64) ((*T31_).Field2)));
			res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_482));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA34_;
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA34_: ;
			T36_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T36_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
			T37_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T37_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T36_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T26_, T37_);
		}
		LA9_: ;
	}
	LA7_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isHarmlessStore__4h2Oud7u5jWCpkY1i8QUDg)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, NIM_BOOL canRaise, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA d) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((3 &(1U<<((NU)(d.k)&15U)))!=0);
		if (T3_) goto LA4_;
		T3_ = !(canRaise);
		LA4_: ;
		if (!T3_) goto LA5_;
		result = NIM_TRUE;
	}
	goto LA1_;
	LA5_: ;
	{
		NIM_BOOL T8_;
		T8_ = (NIM_BOOL)0;
		T8_ = (d.k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 2));
		if (!(T8_)) goto LA9_;
		T8_ = ((*p).withinTryWithExcept == ((NI) 0));
		LA9_: ;
		if (!T8_) goto LA10_;
		result = NIM_TRUE;
	}
	goto LA1_;
	LA10_: ;
	{
		result = NIM_FALSE;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genClosureCall__HKkL9adNEIcNHeJ0iZ6uitg_2)(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;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* rawProc;
	NIM_BOOL canRaise;
	NIM_BOOL T43_;
	nimZeroMem((void*)(&op), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*ri)._kind_6.sons->data[((NI) 0)], (&op));
	pl = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)-1); }
	typ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*ri)._kind_6.sons->data[((NI) 0)]).typ, IL64(36134350135273744));
	{
		if (!!(((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_467));
	}
	LA3_: ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(ri);
		i_2 = ((NI) 1);
		{
			while (1) {
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_492;
				if (!(i_2 < colontmp_)) goto LA7;
				i = i_2;
				{
					NI T10_;
					NI T11_;
					T10_ = (NI)0;
					T10_ = len__5mJADrRYkP3r9auuiuDZN9cQast(typ);
					T11_ = (NI)0;
					T11_ = len__P89cqdlERShb9alU3iC0yj8wast((*typ).n);
					if (!!((T10_ == T11_))) goto LA12_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_468));
				}
				LA12_: ;
				{
					NI T16_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* paramType;
					T16_ = (NI)0;
					T16_ = len__5mJADrRYkP3r9auuiuDZN9cQast(typ);
					if (!(i < T16_)) goto LA17_;
					{
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*typ).n).kind)>>3] &(1U<<((NU)((*(*typ).n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if ((NU)(i) >= (NU)((*(*typ).n)._kind_6.sons ? (*(*typ).n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*(*typ).n)._kind_6.sons ? (*(*typ).n)._kind_6.sons->Sup.len : 0)-1); }
						if (!!(((*(*(*typ).n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA21_;
						failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_469));
					}
					LA21_: ;
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*typ).n).kind)>>3] &(1U<<((NU)((*(*typ).n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i) >= (NU)((*(*typ).n)._kind_6.sons ? (*(*typ).n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*(*typ).n)._kind_6.sons ? (*(*typ).n)._kind_6.sons->Sup.len : 0)-1); }
					paramType = (*(*typ).n)._kind_6.sons->data[i];
					{
						NIM_BOOL T25_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T34_;
						T25_ = (NIM_BOOL)0;
						T25_ = isCompileTimeOnly__F9ciDIanrWYqbJ4rgLlNAAg_3types((*paramType).typ);
						if (!!(T25_)) goto LA26_;
						{
							tyArray__qTjAvTvKF9anytN1At69aJMQ T32_;
							tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T33_;
							if (!!((pl == NIM_NIL))) goto LA30_;
							nimZeroMem((void*)T32_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
							T33_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
							T33_ = percent___PoDv5ydEvGdd9aiIF9cOiAPw(T32_, 0);
							add__IM4kcMNkkOLJtqdEqSxR8A(&pl, T33_);
						}
						LA30_: ;
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if ((NU)(i) >= (NU)((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)-1); }
						if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*paramType).kind)>>3] &(1U<<((NU)((*paramType).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
						T34_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T34_ = genArg__DHNxWzRy19cVFA89bbFHabxg(p, (*ri)._kind_6.sons->data[i], (*paramType)._kind_4.sym, ri);
						add__IM4kcMNkkOLJtqdEqSxR8A(&pl, T34_);
					}
					LA26_: ;
				}
				goto LA14_;
				LA17_: ;
				{
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T42_;
					{
						tyArray__qTjAvTvKF9anytN1At69aJMQ T40_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T41_;
						if (!!((pl == NIM_NIL))) goto LA38_;
						nimZeroMem((void*)T40_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
						T41_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T41_ = percent___PoDv5ydEvGdd9aiIF9cOiAPw(T40_, 0);
						add__IM4kcMNkkOLJtqdEqSxR8A(&pl, T41_);
					}
					LA38_: ;
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i) >= (NU)((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)-1); }
					T42_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T42_ = genArgNoParam__NYI5fC69aIqZGRakncXv9cNQ_3(p, (*ri)._kind_6.sons->data[i]);
					add__IM4kcMNkkOLJtqdEqSxR8A(&pl, T42_);
				}
				LA14_: ;
				if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_492)) { raiseOverflow(); };
				i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_492);
			} LA7: ;
		}
	}
	rawProc = getRawProcType__pQ3A543K4YxeaNh48yoUog(p, typ);
	T43_ = (NIM_BOOL)0;
	T43_ = ((*(*(*(*p).module).g).config).exc == ((tyEnum_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ) 3));
	if (!(T43_)) goto LA44_;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)-1); }
	T43_ = canRaiseDisp__Y9bFh7BmZkh729bS2kZ5kwnQ(p, (*ri)._kind_6.sons->data[((NI) 0)]);
	LA44_: ;
	canRaise = T43_;
	{
		if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1); }
		if (!!(((*typ).sons->data[((NI) 0)] == NIM_NIL))) goto LA47_;
		{
			NIM_BOOL T51_;
			if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1); }
			T51_ = (NIM_BOOL)0;
			T51_ = isInvalidReturnType__ugBeCbo3I6LqXHcpCBFN9ag((*(*(*p).module).g).config, (*typ).sons->data[((NI) 0)]);
			if (!T51_) goto LA52_;
			{
				NI T56_;
				tyArray__qTjAvTvKF9anytN1At69aJMQ T59_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T60_;
				T56_ = (NI)0;
				T56_ = len__P89cqdlERShb9alU3iC0yj8wast(ri);
				if (!(((NI) 1) < T56_)) goto LA57_;
				nimZeroMem((void*)T59_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
				T60_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T60_ = percent___PoDv5ydEvGdd9aiIF9cOiAPw(T59_, 0);
				add__IM4kcMNkkOLJtqdEqSxR8A(&pl, T60_);
			}
			LA57_: ;
			{
				NIM_BOOL T63_;
				NIM_BOOL T65_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T78_;
				T63_ = (NIM_BOOL)0;
				T63_ = ((3 &(1U<<((NU)((*d).k)&15U)))!=0);
				if (T63_) goto LA64_;
				T65_ = (NIM_BOOL)0;
				T65_ = preventNrvo__VzIhhB7jFivZ9c6NgOwxU1Q(p, le, ri);
				T63_ = !(T65_);
				LA64_: ;
				if (!T63_) goto LA66_;
				{
					if (!((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0))) goto LA70_;
					if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1); }
					getTemp__VjOFVqypINqQv5C3ECnxbw(p, (*typ).sons->data[((NI) 0)], d, NIM_TRUE);
				}
				goto LA68_;
				LA70_: ;
				{
					NIM_BOOL T73_;
					NIM_BOOL T75_;
					T73_ = (NIM_BOOL)0;
					T73_ = !(((2 &(1U<<((NU)((*d).k)&15U)))!=0));
					if (!(T73_)) goto LA74_;
					T75_ = (NIM_BOOL)0;
					T75_ = hasNoInit__XO14mevzEVVwQTyfj9cMewwcgen(ri);
					T73_ = !(T75_);
					LA74_: ;
					if (!T73_) goto LA76_;
				}
				goto LA68_;
				LA76_: ;
				LA68_: ;
				T78_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T78_ = addrLoc__9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, (*d));
				add__IM4kcMNkkOLJtqdEqSxR8A(&pl, T78_);
				{
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T83_;
					tyArray__f7nG5LD47BH5K9c6mASit3g T84_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T85_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T86_;
					if (!(((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 15))&63U)))!=0)) goto LA81_;
					T83_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
					T83_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
					nimZeroMem((void*)T84_, sizeof(tyArray__f7nG5LD47BH5K9c6mASit3g));
					T84_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(op);
					T84_[1] = pl;
					T84_[2] = addComma__WAlh7NpO6KFA22Kxnp9aoaw(pl);
					T84_[3] = rawProc;
					T85_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T85_ = percent___8bHx2qDxS2yWIId1X52mqg(T84_, 4);
					T86_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T86_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T85_);
					add__IM4kcMNkkOLJtqdEqSxR8A(T83_, T86_);
				}
				goto LA79_;
				LA81_: ;
				{
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T88_;
					tyArray__f7nG5LD47BH5K9c6mASit3g T89_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T90_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T91_;
					T88_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
					T88_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
					nimZeroMem((void*)T89_, sizeof(tyArray__f7nG5LD47BH5K9c6mASit3g));
					T89_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(op);
					T89_[1] = pl;
					T89_[2] = addComma__WAlh7NpO6KFA22Kxnp9aoaw(pl);
					T89_[3] = rawProc;
					T90_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T90_ = percent___kTDR7D9c9aomjcaUQOmKJ9csg(T89_, 4);
					T91_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T91_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T90_);
					add__IM4kcMNkkOLJtqdEqSxR8A(T88_, T91_);
				}
				LA79_: ;
			}
			goto LA61_;
			LA66_: ;
			{
				tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA tmp;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T93_;
				nimZeroMem((void*)(&tmp), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
				if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1); }
				getTemp__VjOFVqypINqQv5C3ECnxbw(p, (*typ).sons->data[((NI) 0)], (&tmp), NIM_TRUE);
				T93_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T93_ = addrLoc__9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, tmp);
				add__IM4kcMNkkOLJtqdEqSxR8A(&pl, T93_);
				{
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T98_;
					tyArray__f7nG5LD47BH5K9c6mASit3g T99_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T100_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T101_;
					if (!(((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 15))&63U)))!=0)) goto LA96_;
					T98_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
					T98_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
					nimZeroMem((void*)T99_, sizeof(tyArray__f7nG5LD47BH5K9c6mASit3g));
					T99_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(op);
					T99_[1] = pl;
					T99_[2] = addComma__WAlh7NpO6KFA22Kxnp9aoaw(pl);
					T99_[3] = rawProc;
					T100_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T100_ = percent___8bHx2qDxS2yWIId1X52mqg(T99_, 4);
					T101_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T101_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T100_);
					add__IM4kcMNkkOLJtqdEqSxR8A(T98_, T101_);
				}
				goto LA94_;
				LA96_: ;
				{
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T103_;
					tyArray__f7nG5LD47BH5K9c6mASit3g T104_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T105_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T106_;
					T103_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
					T103_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
					nimZeroMem((void*)T104_, sizeof(tyArray__f7nG5LD47BH5K9c6mASit3g));
					T104_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(op);
					T104_[1] = pl;
					T104_[2] = addComma__WAlh7NpO6KFA22Kxnp9aoaw(pl);
					T104_[3] = rawProc;
					T105_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T105_ = percent___kTDR7D9c9aomjcaUQOmKJ9csg(T104_, 4);
					T106_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T106_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T105_);
					add__IM4kcMNkkOLJtqdEqSxR8A(T103_, T106_);
				}
				LA94_: ;
				{
					if (!canRaise) goto LA109_;
					raiseExit__0dpuY9coTlraj8JXIe2BzVw_2(p);
				}
				LA109_: ;
				genAssignment__BtucsTdHw7orsXIL75hNVg(p, (*d), tmp, 0);
			}
			LA61_: ;
		}
		goto LA49_;
		LA52_: ;
		{
			NIM_BOOL T112_;
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA list;
			T112_ = (NIM_BOOL)0;
			T112_ = isHarmlessStore__4h2Oud7u5jWCpkY1i8QUDg(p, canRaise, (*d));
			if (!T112_) goto LA113_;
			{
				if (!((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0))) goto LA117_;
				if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1); }
				getTemp__VjOFVqypINqQv5C3ECnxbw(p, (*typ).sons->data[((NI) 0)], d, NIM_FALSE);
			}
			LA117_: ;
			{
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T121_;
				T121_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T121_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*d));
				if (!!(!((T121_ == NIM_NIL)))) goto LA122_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_498));
			}
			LA122_: ;
			nimZeroMem((void*)(&list), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			initLoc__qlujIAW86QclHYUVxlHRiQ((&list), ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 9), (*d).lode, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
			{
				tyArray__f7nG5LD47BH5K9c6mASit3g T128_;
				if (!(((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 15))&63U)))!=0)) goto LA126_;
				nimZeroMem((void*)T128_, sizeof(tyArray__f7nG5LD47BH5K9c6mASit3g));
				T128_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(op);
				T128_[1] = pl;
				T128_[2] = addComma__WAlh7NpO6KFA22Kxnp9aoaw(pl);
				T128_[3] = rawProc;
				list.r = percent___1tj59chZC08k4TWYeZiqDnQ(T128_, 4);
			}
			goto LA124_;
			LA126_: ;
			{
				tyArray__f7nG5LD47BH5K9c6mASit3g T130_;
				nimZeroMem((void*)T130_, sizeof(tyArray__f7nG5LD47BH5K9c6mASit3g));
				T130_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(op);
				T130_[1] = pl;
				T130_[2] = addComma__WAlh7NpO6KFA22Kxnp9aoaw(pl);
				T130_[3] = rawProc;
				list.r = percent___533QKY9a8quvLM1SsLE1JfQ(T130_, 4);
			}
			LA124_: ;
			genAssignment__BtucsTdHw7orsXIL75hNVg(p, (*d), list, 0);
			{
				if (!canRaise) goto LA133_;
				raiseExit__0dpuY9coTlraj8JXIe2BzVw_2(p);
			}
			LA133_: ;
		}
		goto LA49_;
		LA113_: ;
		{
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA tmp_2;
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA list_2;
			nimZeroMem((void*)(&tmp_2), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1); }
			getTemp__VjOFVqypINqQv5C3ECnxbw(p, (*typ).sons->data[((NI) 0)], (&tmp_2), NIM_FALSE);
			{
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T138_;
				T138_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T138_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*d));
				if (!!(!((T138_ == NIM_NIL)))) goto LA139_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_499));
			}
			LA139_: ;
			nimZeroMem((void*)(&list_2), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			initLoc__qlujIAW86QclHYUVxlHRiQ((&list_2), ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 9), (*d).lode, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
			{
				tyArray__f7nG5LD47BH5K9c6mASit3g T145_;
				if (!(((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 15))&63U)))!=0)) goto LA143_;
				nimZeroMem((void*)T145_, sizeof(tyArray__f7nG5LD47BH5K9c6mASit3g));
				T145_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(op);
				T145_[1] = pl;
				T145_[2] = addComma__WAlh7NpO6KFA22Kxnp9aoaw(pl);
				T145_[3] = rawProc;
				list_2.r = percent___1tj59chZC08k4TWYeZiqDnQ(T145_, 4);
			}
			goto LA141_;
			LA143_: ;
			{
				tyArray__f7nG5LD47BH5K9c6mASit3g T147_;
				nimZeroMem((void*)T147_, sizeof(tyArray__f7nG5LD47BH5K9c6mASit3g));
				T147_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(op);
				T147_[1] = pl;
				T147_[2] = addComma__WAlh7NpO6KFA22Kxnp9aoaw(pl);
				T147_[3] = rawProc;
				list_2.r = percent___533QKY9a8quvLM1SsLE1JfQ(T147_, 4);
			}
			LA141_: ;
			genAssignment__BtucsTdHw7orsXIL75hNVg(p, tmp_2, list_2, 0);
			{
				if (!canRaise) goto LA150_;
				raiseExit__0dpuY9coTlraj8JXIe2BzVw_2(p);
			}
			LA150_: ;
			genAssignment__BtucsTdHw7orsXIL75hNVg(p, (*d), tmp_2, 0);
		}
		LA49_: ;
	}
	goto LA45_;
	LA47_: ;
	{
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T157_;
			tyArray__f7nG5LD47BH5K9c6mASit3g T158_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T159_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T160_;
			if (!(((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 15))&63U)))!=0)) goto LA155_;
			T157_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T157_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			nimZeroMem((void*)T158_, sizeof(tyArray__f7nG5LD47BH5K9c6mASit3g));
			T158_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(op);
			T158_[1] = pl;
			T158_[2] = addComma__WAlh7NpO6KFA22Kxnp9aoaw(pl);
			T158_[3] = rawProc;
			T159_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T159_ = percent___8bHx2qDxS2yWIId1X52mqg(T158_, 4);
			T160_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T160_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T159_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T157_, T160_);
		}
		goto LA153_;
		LA155_: ;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T162_;
			tyArray__f7nG5LD47BH5K9c6mASit3g T163_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T164_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T165_;
			T162_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T162_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			nimZeroMem((void*)T163_, sizeof(tyArray__f7nG5LD47BH5K9c6mASit3g));
			T163_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(op);
			T163_[1] = pl;
			T163_[2] = addComma__WAlh7NpO6KFA22Kxnp9aoaw(pl);
			T163_[3] = rawProc;
			T164_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T164_ = percent___kTDR7D9c9aomjcaUQOmKJ9csg(T163_, 4);
			T165_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T165_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T164_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T162_, T165_);
		}
		LA153_: ;
		{
			if (!canRaise) goto LA168_;
			raiseExit__0dpuY9coTlraj8JXIe2BzVw_2(p);
		}
		LA168_: ;
	}
	LA45_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipAddrDeref__vMC9cau6W2PcQ0Z0zO9cDXMA)(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):
	{
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		n = (*n)._kind_6.sons->data[((NI) 0)];
		isAddr = NIM_TRUE;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65):
	{
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		n = (*n)._kind_6.sons->data[((NI) 0)];
	}
	break;
	default:
	{
		result = n;
		goto BeforeRet_;
	}
	break;
	}
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66))) goto LA6_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		n = (*n)._kind_6.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_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		result = (*n)._kind_6.sons->data[((NI) 0)];
	}
	goto LA8_;
	LA12_: ;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 63) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64))) goto LA15_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		result = (*n)._kind_6.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_ = len__5mJADrRYkP3r9auuiuDZN9cQast(typ);
		if (!!((i < T3_))) goto LA4_;
		T6_ = (NimStringDesc*)0;
		T6_ = dollar___r38WafKlW80RkvoZTcia4Q(TM__MQdRN7fpbG7rPm4JpVVAhA_516);
		internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*(*(*p).module).g).config, T6_);
	}
	LA4_: ;
	{
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*typ).n).kind)>>3] &(1U<<((NU)((*(*typ).n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(i) >= (NU)((*(*typ).n)._kind_6.sons ? (*(*typ).n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*(*typ).n)._kind_6.sons ? (*(*typ).n)._kind_6.sons->Sup.len : 0)-1); }
		if (!!(((*(*(*typ).n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA9_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_517));
	}
	LA9_: ;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(i) >= (NU)((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)-1); }
	ri_2 = (*ri)._kind_6.sons->data[i];
	{
		while (1) {
			if (!((*ri_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66))) goto LA12;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri_2).kind)>>3] &(1U<<((NU)((*ri_2).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*ri_2)._kind_6.sons ? (*ri_2)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*ri_2)._kind_6.sons ? (*ri_2)._kind_6.sons->Sup.len : 0)-1); }
			ri_2 = (*ri_2)._kind_6.sons->data[((NI) 0)];
		} LA12: ;
	}
	if ((NU)(i) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)){ raiseIndexError2(i,((*typ).sons ? (*typ).sons->Sup.len : 0)-1); }
	t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*typ).sons->data[i], IL64(70368744179728));
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
		if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23))) goto LA15_;
		{
			if (!((*ri_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64))) goto LA19_;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri_2).kind)>>3] &(1U<<((NU)((*ri_2).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*ri_2)._kind_6.sons ? (*ri_2)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*ri_2)._kind_6.sons ? (*ri_2)._kind_6.sons->Sup.len : 0)-1); }
			x = (*ri_2)._kind_6.sons->data[((NI) 0)];
		}
		goto LA17_;
		LA19_: ;
		{
			x = ri_2;
		}
		LA17_: ;
		{
			if (!((*(*x).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21))) goto LA24_;
			result = genArgNoParam__NYI5fC69aIqZGRakncXv9cNQ_3(p, x);
			add__yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_518));
		}
		goto LA22_;
		LA24_: ;
		{
			NIM_BOOL T27_;
			T27_ = (NIM_BOOL)0;
			T27_ = ((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47));
			if (!(T27_)) goto LA28_;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*x).kind)>>3] &(1U<<((NU)((*x).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*x)._kind_6.sons ? (*x)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*x)._kind_6.sons ? (*x)._kind_6.sons->Sup.len : 0)-1); }
			T27_ = ((*(*(*x)._kind_6.sons->data[((NI) 0)]).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21));
			LA28_: ;
			if (!T27_) goto LA29_;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*x).kind)>>3] &(1U<<((NU)((*x).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*x)._kind_6.sons ? (*x)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*x)._kind_6.sons ? (*x)._kind_6.sons->Sup.len : 0)-1); }
			result = genArgNoParam__NYI5fC69aIqZGRakncXv9cNQ_3(p, (*x)._kind_6.sons->data[((NI) 0)]);
			add__yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_518));
		}
		goto LA22_;
		LA29_: ;
		{
			result = genArgNoParam__NYI5fC69aIqZGRakncXv9cNQ_3(p, x);
			add__yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_126));
		}
		LA22_: ;
	}
	goto LA13_;
	LA15_: ;
	{
		if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21))) goto LA33_;
		{
			if (!((*ri_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 63) || (*ri_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64))) goto LA37_;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri_2).kind)>>3] &(1U<<((NU)((*ri_2).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*ri_2)._kind_6.sons ? (*ri_2)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*ri_2)._kind_6.sons ? (*ri_2)._kind_6.sons->Sup.len : 0)-1); }
			result = genArgNoParam__NYI5fC69aIqZGRakncXv9cNQ_3(p, (*ri_2)._kind_6.sons->data[((NI) 0)]);
			add__yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_126));
		}
		goto LA35_;
		LA37_: ;
		{
			result = genArgNoParam__NYI5fC69aIqZGRakncXv9cNQ_3(p, ri_2);
			add__yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_518));
		}
		LA35_: ;
	}
	goto LA13_;
	LA33_: ;
	{
		ri_2 = skipAddrDeref__vMC9cau6W2PcQ0Z0zO9cDXMA(ri_2);
		{
			if (!((*ri_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 63) || (*ri_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64))) goto LA43_;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri_2).kind)>>3] &(1U<<((NU)((*ri_2).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*ri_2)._kind_6.sons ? (*ri_2)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*ri_2)._kind_6.sons ? (*ri_2)._kind_6.sons->Sup.len : 0)-1); }
			ri_2 = (*ri_2)._kind_6.sons->data[((NI) 0)];
		}
		LA43_: ;
		result = genArgNoParam__NYI5fC69aIqZGRakncXv9cNQ_3(p, ri_2);
		add__yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_126));
	}
	LA13_: ;
	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;
			if ((NU)(i) >= (NU)(pat ? pat->Sup.len : 0)){ raiseIndexError2(i,(pat ? pat->Sup.len : 0)-1); }
			switch (((NU8)(pat->data[i]))) {
			case 64:
			{
				NIM_BOOL first;
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_506;
				first = NIM_TRUE;
				{
					NI k;
					NI colontmp_;
					NI i_2;
					k = (NI)0;
					colontmp_ = (NI)0;
					colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(ri);
					i_2 = j;
					{
						while (1) {
							tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* arg;
							NI TM__MQdRN7fpbG7rPm4JpVVAhA_505;
							if (!(i_2 < colontmp_)) goto LA6;
							k = i_2;
							arg = genOtherArg__9a86z5oGsAZjkB52zPdLZJQ(p, ri, k, typ);
							{
								NI T9_;
								T9_ = (NI)0;
								T9_ = len__9b0YRltzV3kNSE9aQTsG82wg(arg);
								if (!(((NI) 0) < T9_)) goto LA10_;
								{
									tyArray__qTjAvTvKF9anytN1At69aJMQ T16_;
									tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T17_;
									if (!!(first)) goto LA14_;
									nimZeroMem((void*)T16_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
									T17_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
									T17_ = percent___PoDv5ydEvGdd9aiIF9cOiAPw(T16_, 0);
									add__IM4kcMNkkOLJtqdEqSxR8A(&result, T17_);
								}
								LA14_: ;
								first = NIM_FALSE;
								add__IM4kcMNkkOLJtqdEqSxR8A(&result, arg);
							}
							LA10_: ;
							if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_505)) { raiseOverflow(); };
							i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_505);
						} LA6: ;
					}
				}
				if (nimAddInt(i, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_506)) { raiseOverflow(); };
				i = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_506);
			}
			break;
			case 35:
			{
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_522;
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_523;
				{
					NIM_BOOL T21_;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_507;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_508;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri_2;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_513;
					T21_ = (NIM_BOOL)0;
					if (nimAddInt(i, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_507)) { raiseOverflow(); };
					T21_ = ((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_507) < (pat ? pat->Sup.len : 0));
					if (!(T21_)) goto LA22_;
					if (nimAddInt(i, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_508)) { raiseOverflow(); };
					if ((NU)((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_508)) >= (NU)(pat ? pat->Sup.len : 0)){ raiseIndexError2((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_508),(pat ? pat->Sup.len : 0)-1); }
					T21_ = (((NU8)(pat->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_508)])) == ((NU8)(43)) || ((NU8)(pat->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_508)])) == ((NU8)(64)));
					LA22_: ;
					if (!T21_) goto LA23_;
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(j) >= (NU)((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(j,((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)-1); }
					ri_2 = (*ri)._kind_6.sons->data[j];
					{
						tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ_2;
						tyArray__qTjAvTvKF9anytN1At69aJMQ T34_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T35_;
						tyArray__qTjAvTvKF9anytN1At69aJMQ T48_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T49_;
						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 LA27_;
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri_2).kind)>>3] &(1U<<((NU)((*ri_2).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if ((NU)(((NI) 0)) >= (NU)((*ri_2)._kind_6.sons ? (*ri_2)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*ri_2)._kind_6.sons ? (*ri_2)._kind_6.sons->Sup.len : 0)-1); }
						typ_2 = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*ri_2)._kind_6.sons->data[((NI) 0)]).typ, IL64(36134350135273744));
						{
							NI TM__MQdRN7fpbG7rPm4JpVVAhA_509;
							tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T33_;
							if (nimAddInt(i, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_509)) { raiseOverflow(); };
							if ((NU)((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_509)) >= (NU)(pat ? pat->Sup.len : 0)){ raiseIndexError2((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_509),(pat ? pat->Sup.len : 0)-1); }
							if (!((NU8)(pat->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_509)]) == (NU8)(43))) goto LA31_;
							if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri_2).kind)>>3] &(1U<<((NU)((*ri_2).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
							if ((NU)(((NI) 0)) >= (NU)((*ri_2)._kind_6.sons ? (*ri_2)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*ri_2)._kind_6.sons ? (*ri_2)._kind_6.sons->Sup.len : 0)-1); }
							T33_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
							T33_ = genArgNoParam__NYI5fC69aIqZGRakncXv9cNQ_3(p, (*ri_2)._kind_6.sons->data[((NI) 0)]);
							add__IM4kcMNkkOLJtqdEqSxR8A(&result, T33_);
						}
						LA31_: ;
						nimZeroMem((void*)T34_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
						T35_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T35_ = percent___uFJUSitn9c1Tw6cF9cZf6x6Q(T34_, 0);
						add__IM4kcMNkkOLJtqdEqSxR8A(&result, T35_);
						{
							NI T38_;
							tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T41_;
							T38_ = (NI)0;
							T38_ = len__P89cqdlERShb9alU3iC0yj8wast(ri_2);
							if (!(((NI) 1) < T38_)) goto LA39_;
							T41_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
							T41_ = genOtherArg__9a86z5oGsAZjkB52zPdLZJQ(p, ri_2, ((NI) 1), typ_2);
							add__IM4kcMNkkOLJtqdEqSxR8A(&result, T41_);
						}
						LA39_: ;
						{
							NI k_2;
							NI colontmp__2;
							NI colontmp__3;
							NI TM__MQdRN7fpbG7rPm4JpVVAhA_510;
							NI i_3;
							k_2 = (NI)0;
							colontmp__2 = (NI)0;
							colontmp__3 = (NI)0;
							if (nimAddInt(j, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_510)) { raiseOverflow(); };
							colontmp__2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_510);
							colontmp__3 = len__P89cqdlERShb9alU3iC0yj8wast(ri_2);
							i_3 = colontmp__2;
							{
								while (1) {
									tyArray__qTjAvTvKF9anytN1At69aJMQ T45_;
									tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T46_;
									tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T47_;
									NI TM__MQdRN7fpbG7rPm4JpVVAhA_511;
									if (!(i_3 < colontmp__3)) goto LA44;
									k_2 = i_3;
									nimZeroMem((void*)T45_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
									T46_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
									T46_ = percent___PoDv5ydEvGdd9aiIF9cOiAPw(T45_, 0);
									add__IM4kcMNkkOLJtqdEqSxR8A(&result, T46_);
									T47_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
									T47_ = genOtherArg__9a86z5oGsAZjkB52zPdLZJQ(p, ri_2, k_2, typ_2);
									add__IM4kcMNkkOLJtqdEqSxR8A(&result, T47_);
									if (nimAddInt(i_3, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_511)) { raiseOverflow(); };
									i_3 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_511);
								} LA44: ;
							}
						}
						nimZeroMem((void*)T48_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
						T49_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T49_ = percent___G8iCcDovsaw25PkF7wHs0g(T48_, 0);
						add__IM4kcMNkkOLJtqdEqSxR8A(&result, T49_);
					}
					goto LA25_;
					LA27_: ;
					{
						localError__NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*ri_2).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_512));
					}
					LA25_: ;
					if (nimAddInt(i, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_513)) { raiseOverflow(); };
					i = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_513);
				}
				goto LA19_;
				LA23_: ;
				{
					NIM_BOOL T52_;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_514;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_515;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T56_;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_519;
					T52_ = (NIM_BOOL)0;
					if (nimAddInt(i, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_514)) { raiseOverflow(); };
					T52_ = ((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_514) < (pat ? pat->Sup.len : 0));
					if (!(T52_)) goto LA53_;
					if (nimAddInt(i, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_515)) { raiseOverflow(); };
					if ((NU)((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_515)) >= (NU)(pat ? pat->Sup.len : 0)){ raiseIndexError2((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_515),(pat ? pat->Sup.len : 0)-1); }
					T52_ = ((NU8)(pat->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_515)]) == (NU8)(46));
					LA53_: ;
					if (!T52_) goto LA54_;
					T56_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T56_ = genThisArg__9a86z5oGsAZjkB52zPdLZJQ_2(p, ri, j, typ);
					add__IM4kcMNkkOLJtqdEqSxR8A(&result, T56_);
					if (nimAddInt(i, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_519)) { raiseOverflow(); };
					i = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_519);
				}
				goto LA19_;
				LA54_: ;
				{
					NIM_BOOL T58_;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_520;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_521;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg_2;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T64_;
					T58_ = (NIM_BOOL)0;
					if (nimAddInt(i, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_520)) { raiseOverflow(); };
					T58_ = ((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_520) < (pat ? pat->Sup.len : 0));
					if (!(T58_)) goto LA59_;
					if (nimAddInt(i, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_521)) { raiseOverflow(); };
					if ((NU)((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_521)) >= (NU)(pat ? pat->Sup.len : 0)){ raiseIndexError2((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_521),(pat ? pat->Sup.len : 0)-1); }
					T58_ = ((NU8)(pat->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_521)]) == (NU8)(91));
					LA59_: ;
					if (!T58_) goto LA60_;
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(j) >= (NU)((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(j,((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)-1); }
					arg_2 = skipAddrDeref__vMC9cau6W2PcQ0Z0zO9cDXMA((*ri)._kind_6.sons->data[j]);
					{
						while (1) {
							if (!((*arg_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 63) || (*arg_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64) || (*arg_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66))) goto LA63;
							if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*arg_2).kind)>>3] &(1U<<((NU)((*arg_2).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
							if ((NU)(((NI) 0)) >= (NU)((*arg_2)._kind_6.sons ? (*arg_2)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*arg_2)._kind_6.sons ? (*arg_2)._kind_6.sons->Sup.len : 0)-1); }
							arg_2 = (*arg_2)._kind_6.sons->data[((NI) 0)];
						} LA63: ;
					}
					T64_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T64_ = genArgNoParam__NYI5fC69aIqZGRakncXv9cNQ_3(p, arg_2);
					add__IM4kcMNkkOLJtqdEqSxR8A(&result, T64_);
				}
				goto LA19_;
				LA60_: ;
				{
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T66_;
					T66_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T66_ = genOtherArg__9a86z5oGsAZjkB52zPdLZJQ(p, ri, j, typ);
					add__IM4kcMNkkOLJtqdEqSxR8A(&result, T66_);
				}
				LA19_: ;
				if (nimAddInt(j, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_522)) { raiseOverflow(); };
				j = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_522);
				if (nimAddInt(i, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_523)) { raiseOverflow(); };
				i = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_523);
			}
			break;
			case 39:
			{
				NI idx;
				NI stars;
				idx = (NI)0;
				stars = (NI)0;
				{
					NIM_BOOL T70_;
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
					T70_ = (NIM_BOOL)0;
					T70_ = scanCppGenericSlot__YRbO0Zq30XmyAQjpf1Mi6g(pat, (&i), (&idx), (&stars));
					if (!T70_) goto LA71_;
					t = resolveStarsInCppType__dTa9cSuyNlFVdzNe1dV0rag(typ, idx, stars);
					{
						tyArray__qTjAvTvKF9anytN1At69aJMQ T77_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T78_;
						if (!(t == NIM_NIL)) goto LA75_;
						nimZeroMem((void*)T77_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
						T78_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T78_ = percent___G9aA37gQrW88KHzpCAwhgjQ(T77_, 0);
						add__IM4kcMNkkOLJtqdEqSxR8A(&result, T78_);
					}
					goto LA73_;
					LA75_: ;
					{
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T80_;
						T80_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T80_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, t);
						add__IM4kcMNkkOLJtqdEqSxR8A(&result, T80_);
					}
					LA73_: ;
				}
				LA71_: ;
			}
			break;
			default:
			{
				NI start;
				start = i;
				{
					while (1) {
						if (!(i < (pat ? pat->Sup.len : 0))) goto LA83;
						{
							NI TM__MQdRN7fpbG7rPm4JpVVAhA_524;
							if ((NU)(i) >= (NU)(pat ? pat->Sup.len : 0)){ raiseIndexError2(i,(pat ? pat->Sup.len : 0)-1); }
							if (!!((((NU8)(pat->data[i])) == ((NU8)(64)) || ((NU8)(pat->data[i])) == ((NU8)(35)) || ((NU8)(pat->data[i])) == ((NU8)(39))))) goto LA86_;
							if (nimAddInt(i, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_524)) { raiseOverflow(); };
							i = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_524);
						}
						goto LA84_;
						LA86_: ;
						{
							goto LA82;
						}
						LA84_: ;
					} LA83: ;
				} LA82: ;
				{
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_525;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_526;
					NimStringDesc* T93_;
					if (nimSubInt(i, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_525)) { raiseOverflow(); };
					if (!(start <= (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_525))) goto LA91_;
					if (nimSubInt(i, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_526)) { raiseOverflow(); };
					T93_ = (NimStringDesc*)0;
					T93_ = substr__2yh9cer0ymNRHlOOg8P7IuA(pat, start, (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_526));
					add__yG4AKzsBRS1W4MANDlXQeg(&result, T93_);
				}
				LA91_: ;
			}
			break;
			}
		} LA2: ;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, getTempCpp__17YlQRjV7sYeIVr87qv2GA)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* result, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* value) {
	NI TM__MQdRN7fpbG7rPm4JpVVAhA_530;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T1_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T2_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T3_;
	NimStringDesc* res;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T8_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T13_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T14_;
	if (nimAddInt((*p).labels, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_530)) { raiseOverflow(); };
	if (TM__MQdRN7fpbG7rPm4JpVVAhA_530 < 0 || TM__MQdRN7fpbG7rPm4JpVVAhA_530 > 2147483647){ raiseOverflow(); }
	(*p).labels = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_530);
	T1_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).labels)));
	T2_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = amp___4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_146), T1_);
	unsureAsgnRef((void**) (&(*result).r), amp___Z7W1o5nPSc3ExfO5f7j1Gg(T2_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_3)));
	T3_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T3_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA6_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
	}
	LA6_: ;
	res = rawNewString(((NI) 80));
	T8_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T8_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, t);
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T8_);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_33));
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), (*result).r);
	res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_103));
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), value);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_104));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA11_;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
	}
	LA11_: ;
	T13_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T13_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
	T14_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T14_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T13_);
	add__IM4kcMNkkOLJtqdEqSxR8A(T3_, T14_);
	(*result).k = ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 1);
	unsureAsgnRef((void**) (&(*result).lode), lodeTyp__Zo4XKVi6BmwOZE51Yogqwg(t));
	(*result).storage = ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 2);
	(*result).flags = 0;
}
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) {
	NIM_BOOL canRaise;
	NIM_BOOL T1_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* pl;
	tyArray__qTjAvTvKF9anytN1At69aJMQ T3_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T4_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T5_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*(*(*(*p).module).g).config).exc == ((tyEnum_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ) 3));
	if (!(T1_)) goto LA2_;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)-1); }
	T1_ = canRaiseDisp__Y9bFh7BmZkh729bS2kZ5kwnQ(p, (*ri)._kind_6.sons->data[((NI) 0)]);
	LA2_: ;
	canRaise = T1_;
	genLineDir__QrTB5DOwbDX9bKAW7PNbuJA_2(p, ri);
	nimZeroMem((void*)T3_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
	T4_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T4_ = percent___uFJUSitn9c1Tw6cF9cZf6x6Q(T3_, 0);
	T5_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T5_ = amp___ShdZ6VrAQkY0nWR9a39b9bGdQ(callee, T4_);
	pl = amp___ShdZ6VrAQkY0nWR9a39b9bGdQ(T5_, params);
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)-1); }
	typ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*ri)._kind_6.sons->data[((NI) 0)]).typ, IL64(36134350135273744));
	{
		if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1); }
		if (!!(((*typ).sons->data[((NI) 0)] == NIM_NIL))) goto LA8_;
		{
			NIM_BOOL T12_;
			if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1); }
			T12_ = (NIM_BOOL)0;
			T12_ = isInvalidReturnType__ugBeCbo3I6LqXHcpCBFN9ag((*(*(*p).module).g).config, (*typ).sons->data[((NI) 0)]);
			if (!T12_) goto LA13_;
			{
				tyArray__qTjAvTvKF9anytN1At69aJMQ T19_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T20_;
				if (!!((params == NIM_NIL))) goto LA17_;
				nimZeroMem((void*)T19_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
				T20_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T20_ = percent___PoDv5ydEvGdd9aiIF9cOiAPw(T19_, 0);
				add__IM4kcMNkkOLJtqdEqSxR8A(&pl, T20_);
			}
			LA17_: ;
			{
				NIM_BOOL T23_;
				NIM_BOOL T25_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T38_;
				tyArray__qTjAvTvKF9anytN1At69aJMQ T39_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T40_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T41_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T42_;
				T23_ = (NIM_BOOL)0;
				T23_ = ((3 &(1U<<((NU)((*d).k)&15U)))!=0);
				if (T23_) goto LA24_;
				T25_ = (NIM_BOOL)0;
				T25_ = preventNrvo__VzIhhB7jFivZ9c6NgOwxU1Q(p, le, ri);
				T23_ = !(T25_);
				LA24_: ;
				if (!T23_) goto LA26_;
				{
					if (!((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0))) goto LA30_;
					if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1); }
					getTemp__VjOFVqypINqQv5C3ECnxbw(p, (*typ).sons->data[((NI) 0)], d, NIM_TRUE);
				}
				goto LA28_;
				LA30_: ;
				{
					NIM_BOOL T33_;
					NIM_BOOL T35_;
					T33_ = (NIM_BOOL)0;
					T33_ = !(((2 &(1U<<((NU)((*d).k)&15U)))!=0));
					if (!(T33_)) goto LA34_;
					T35_ = (NIM_BOOL)0;
					T35_ = hasNoInit__XO14mevzEVVwQTyfj9cMewwcgen(ri);
					T33_ = !(T35_);
					LA34_: ;
					if (!T33_) goto LA36_;
				}
				goto LA28_;
				LA36_: ;
				LA28_: ;
				T38_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T38_ = addrLoc__9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, (*d));
				add__IM4kcMNkkOLJtqdEqSxR8A(&pl, T38_);
				nimZeroMem((void*)T39_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
				T40_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T40_ = percent___bhkFYKbURxGcJnKpswdr2Q(T39_, 0);
				add__IM4kcMNkkOLJtqdEqSxR8A(&pl, T40_);
				T41_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T41_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				T42_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T42_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, pl);
				add__IM4kcMNkkOLJtqdEqSxR8A(T41_, T42_);
			}
			goto LA21_;
			LA26_: ;
			{
				tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA tmp;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T44_;
				tyArray__qTjAvTvKF9anytN1At69aJMQ T45_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T46_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T47_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T48_;
				nimZeroMem((void*)(&tmp), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
				if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1); }
				getTemp__VjOFVqypINqQv5C3ECnxbw(p, (*typ).sons->data[((NI) 0)], (&tmp), NIM_TRUE);
				T44_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T44_ = addrLoc__9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, tmp);
				add__IM4kcMNkkOLJtqdEqSxR8A(&pl, T44_);
				nimZeroMem((void*)T45_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
				T46_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T46_ = percent___bhkFYKbURxGcJnKpswdr2Q(T45_, 0);
				add__IM4kcMNkkOLJtqdEqSxR8A(&pl, T46_);
				T47_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T47_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				T48_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T48_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, pl);
				add__IM4kcMNkkOLJtqdEqSxR8A(T47_, T48_);
				genAssignment__BtucsTdHw7orsXIL75hNVg(p, (*d), tmp, 0);
			}
			LA21_: ;
			{
				if (!canRaise) goto LA51_;
				raiseExit__0dpuY9coTlraj8JXIe2BzVw_2(p);
			}
			LA51_: ;
		}
		goto LA10_;
		LA13_: ;
		{
			tyArray__qTjAvTvKF9anytN1At69aJMQ T54_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T55_;
			nimZeroMem((void*)T54_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
			T55_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T55_ = percent___G8iCcDovsaw25PkF7wHs0g(T54_, 0);
			add__IM4kcMNkkOLJtqdEqSxR8A(&pl, T55_);
			{
				NIM_BOOL T58_;
				T58_ = (NIM_BOOL)0;
				T58_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands__VH3ghgQVwLSg3krOAoXigw) 2));
				if (T58_) goto LA59_;
				T58_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 31))&63U)))!=0);
				LA59_: ;
				if (!T58_) goto LA60_;
				{
					if (!(((*d).flags &(1U<<((NU)(((tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA) 8))&15U)))!=0)) goto LA64_;
					(*d).k = ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 9);
					unsureAsgnRef((void**) (&(*d).r), pl);
					(*d).flags &= ~(((NU16)1) << ((((tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA) 8)) & 15));
				}
				goto LA62_;
				LA64_: ;
				{
					{
						NIM_BOOL T69_;
						T69_ = (NIM_BOOL)0;
						T69_ = ((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0));
						if (!(T69_)) goto LA70_;
						T69_ = ((*p).splitDecls == ((NI) 0));
						LA70_: ;
						if (!T69_) goto LA71_;
						if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1); }
						getTempCpp__17YlQRjV7sYeIVr87qv2GA(p, (*typ).sons->data[((NI) 0)], d, pl);
					}
					goto LA67_;
					LA71_: ;
					{
						tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA list;
						{
							if (!((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0))) goto LA76_;
							if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1); }
							getTemp__VjOFVqypINqQv5C3ECnxbw(p, (*typ).sons->data[((NI) 0)], d, NIM_FALSE);
						}
						LA76_: ;
						nimZeroMem((void*)(&list), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
						initLoc__qlujIAW86QclHYUVxlHRiQ((&list), ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 9), (*d).lode, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
						list.r = pl;
						genAssignment__BtucsTdHw7orsXIL75hNVg(p, (*d), list, 0);
						{
							if (!canRaise) goto LA80_;
							raiseExit__0dpuY9coTlraj8JXIe2BzVw_2(p);
						}
						LA80_: ;
					}
					LA67_: ;
				}
				LA62_: ;
			}
			goto LA56_;
			LA60_: ;
			{
				NIM_BOOL T83_;
				tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA list_2;
				T83_ = (NIM_BOOL)0;
				T83_ = isHarmlessStore__4h2Oud7u5jWCpkY1i8QUDg(p, canRaise, (*d));
				if (!T83_) goto LA84_;
				{
					if (!((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0))) goto LA88_;
					if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1); }
					getTemp__VjOFVqypINqQv5C3ECnxbw(p, (*typ).sons->data[((NI) 0)], d, NIM_FALSE);
				}
				LA88_: ;
				{
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T92_;
					T92_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T92_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*d));
					if (!!(!((T92_ == NIM_NIL)))) goto LA93_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_531));
				}
				LA93_: ;
				nimZeroMem((void*)(&list_2), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
				initLoc__qlujIAW86QclHYUVxlHRiQ((&list_2), ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 9), (*d).lode, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
				list_2.r = pl;
				genAssignment__BtucsTdHw7orsXIL75hNVg(p, (*d), list_2, 0);
				{
					if (!canRaise) goto LA97_;
					raiseExit__0dpuY9coTlraj8JXIe2BzVw_2(p);
				}
				LA97_: ;
			}
			goto LA56_;
			LA84_: ;
			{
				tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA tmp_2;
				tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA list_3;
				nimZeroMem((void*)(&tmp_2), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
				if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1); }
				getTemp__VjOFVqypINqQv5C3ECnxbw(p, (*typ).sons->data[((NI) 0)], (&tmp_2), NIM_TRUE);
				nimZeroMem((void*)(&list_3), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
				initLoc__qlujIAW86QclHYUVxlHRiQ((&list_3), ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 9), (*d).lode, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
				list_3.r = pl;
				genAssignment__BtucsTdHw7orsXIL75hNVg(p, tmp_2, list_3, 0);
				{
					if (!canRaise) goto LA102_;
					raiseExit__0dpuY9coTlraj8JXIe2BzVw_2(p);
				}
				LA102_: ;
				genAssignment__BtucsTdHw7orsXIL75hNVg(p, (*d), tmp_2, 0);
			}
			LA56_: ;
		}
		LA10_: ;
	}
	goto LA6_;
	LA8_: ;
	{
		tyArray__qTjAvTvKF9anytN1At69aJMQ T105_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T106_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T107_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T108_;
		nimZeroMem((void*)T105_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
		T106_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T106_ = percent___bhkFYKbURxGcJnKpswdr2Q(T105_, 0);
		add__IM4kcMNkkOLJtqdEqSxR8A(&pl, T106_);
		T107_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T107_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		T108_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T108_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, pl);
		add__IM4kcMNkkOLJtqdEqSxR8A(T107_, T108_);
		{
			if (!canRaise) goto LA111_;
			raiseExit__0dpuY9coTlraj8JXIe2BzVw_2(p);
		}
		LA111_: ;
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genInfixCall__HKkL9adNEIcNHeJ0iZ6uitg_3)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA op;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
	NimStringDesc* pat;
	nimZeroMem((void*)(&op), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*ri)._kind_6.sons->data[((NI) 0)], (&op));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)-1); }
	typ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*ri)._kind_6.sons->data[((NI) 0)]).typ, IL64(36134350135273744));
	{
		if (!!(((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_500));
	}
	LA3_: ;
	{
		NI T7_;
		NI T8_;
		T7_ = (NI)0;
		T7_ = len__5mJADrRYkP3r9auuiuDZN9cQast(typ);
		T8_ = (NI)0;
		T8_ = len__P89cqdlERShb9alU3iC0yj8wast((*typ).n);
		if (!!((T7_ == T8_))) goto LA9_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_501));
	}
	LA9_: ;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)-1); }
	if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*ri)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*ri)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
	pat = (*(*(*(*ri)._kind_6.sons->data[((NI) 0)])._kind_4.sym).loc.r).data;
	{
		NimStringDesc* T15_;
		if (!!((((NI) 0) < (pat ? pat->Sup.len : 0)))) goto LA13_;
		T15_ = (NimStringDesc*)0;
		T15_ = dollar___r38WafKlW80RkvoZTcia4Q(TM__MQdRN7fpbG7rPm4JpVVAhA_502);
		internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*(*(*p).module).g).config, T15_);
	}
	LA13_: ;
	{
		NIM_BOOL T18_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* pl;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ_2;
		T18_ = (NIM_BOOL)0;
		T18_ = contains__wAzSnEu9cCHHjvPQlWBZUeQ(pat, TM__MQdRN7fpbG7rPm4JpVVAhA_504);
		if (!T18_) goto LA19_;
		pl = genPatternCall__n9aN0vqKCBL7B9cV6pjBnGNg(p, ri, pat, typ);
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)-1); }
		typ_2 = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*ri)._kind_6.sons->data[((NI) 0)]).typ, IL64(36134350135273744));
		{
			if ((NU)(((NI) 0)) >= (NU)((*typ_2).sons ? (*typ_2).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*typ_2).sons ? (*typ_2).sons->Sup.len : 0)-1); }
			if (!!(((*typ_2).sons->data[((NI) 0)] == NIM_NIL))) goto LA23_;
			{
				NIM_BOOL T27_;
				NIM_BOOL T28_;
				T27_ = (NIM_BOOL)0;
				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) 31))&63U)))!=0);
				LA29_: ;
				T27_ = T28_;
				if (!(T27_)) goto LA30_;
				T27_ = (((*d).flags &(1U<<((NU)(((tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA) 8))&15U)))!=0);
				LA30_: ;
				if (!T27_) goto LA31_;
				(*d).k = ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 9);
				unsureAsgnRef((void**) (&(*d).r), pl);
				(*d).flags &= ~(((NU16)1) << ((((tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA) 8)) & 15));
			}
			goto LA25_;
			LA31_: ;
			{
				tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA list;
				{
					if (!((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0))) goto LA36_;
					if ((NU)(((NI) 0)) >= (NU)((*typ_2).sons ? (*typ_2).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*typ_2).sons ? (*typ_2).sons->Sup.len : 0)-1); }
					getTemp__VjOFVqypINqQv5C3ECnxbw(p, (*typ_2).sons->data[((NI) 0)], d, NIM_FALSE);
				}
				LA36_: ;
				{
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T40_;
					T40_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T40_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*d));
					if (!!(!((T40_ == NIM_NIL)))) goto LA41_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_527));
				}
				LA41_: ;
				nimZeroMem((void*)(&list), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
				initLoc__qlujIAW86QclHYUVxlHRiQ((&list), ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 9), (*d).lode, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
				list.r = pl;
				genAssignment__BtucsTdHw7orsXIL75hNVg(p, (*d), list, 0);
			}
			LA25_: ;
		}
		goto LA21_;
		LA23_: ;
		{
			tyArray__qTjAvTvKF9anytN1At69aJMQ T44_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T45_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T46_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T47_;
			nimZeroMem((void*)T44_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
			T45_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T45_ = percent___SY4U2QvmoQxocaG8MOmyHA(T44_, 0);
			add__IM4kcMNkkOLJtqdEqSxR8A(&pl, T45_);
			T46_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T46_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			T47_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T47_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, pl);
			add__IM4kcMNkkOLJtqdEqSxR8A(T46_, T47_);
		}
		LA21_: ;
	}
	goto LA16_;
	LA19_: ;
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* pl_2;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* params;
		pl_2 = NIM_NIL;
		{
			NI T51_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T54_;
			T51_ = (NI)0;
			T51_ = len__P89cqdlERShb9alU3iC0yj8wast(ri);
			if (!(((NI) 1) < T51_)) goto LA52_;
			T54_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T54_ = genThisArg__9a86z5oGsAZjkB52zPdLZJQ_2(p, ri, ((NI) 1), typ);
			add__IM4kcMNkkOLJtqdEqSxR8A(&pl_2, T54_);
		}
		LA52_: ;
		add__IM4kcMNkkOLJtqdEqSxR8A(&pl_2, op.r);
		params = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(ri);
			i_2 = ((NI) 2);
			{
				while (1) {
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T70_;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_529;
					if (!(i_2 < colontmp_)) goto LA57;
					i = i_2;
					{
						tyArray__qTjAvTvKF9anytN1At69aJMQ T62_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T63_;
						if (!!((params == NIM_NIL))) goto LA60_;
						nimZeroMem((void*)T62_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
						T63_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T63_ = percent___PoDv5ydEvGdd9aiIF9cOiAPw(T62_, 0);
						add__IM4kcMNkkOLJtqdEqSxR8A(&params, T63_);
					}
					LA60_: ;
					{
						NI T66_;
						NI T67_;
						T66_ = (NI)0;
						T66_ = len__5mJADrRYkP3r9auuiuDZN9cQast(typ);
						T67_ = (NI)0;
						T67_ = len__P89cqdlERShb9alU3iC0yj8wast((*typ).n);
						if (!!((T66_ == T67_))) goto LA68_;
						failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_528));
					}
					LA68_: ;
					T70_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T70_ = genOtherArg__9a86z5oGsAZjkB52zPdLZJQ(p, ri, i, typ);
					add__IM4kcMNkkOLJtqdEqSxR8A(&params, T70_);
					if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_529)) { raiseOverflow(); };
					i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_529);
				} LA57: ;
			}
		}
		fixupCall__5AieZFwkpMkLKPnkORd7Cw(p, le, ri, d, pl_2, params);
	}
	LA16_: ;
}
static N_INLINE(NI, find__31wM5Ui9c8jnrQ5QD4oPxOQsystem)(NIM_CHAR* a, NI aLen_0, NIM_CHAR item) {
	NI result;
{	result = (NI)0;
	{
		NIM_CHAR i;
		NI i_2;
		i = (NIM_CHAR)0;
		i_2 = ((NI) 0);
		{
			while (1) {
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_535;
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_536;
				if (!(i_2 < aLen_0)) goto LA3;
				if ((NU)(i_2) >= (NU)(aLen_0)){ raiseIndexError2(i_2,aLen_0-1); }
				i = a[i_2];
				{
					if (!((NU8)(i) == (NU8)(item))) goto LA6_;
					goto BeforeRet_;
				}
				LA6_: ;
				if (nimAddInt(result, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_535)) { raiseOverflow(); };
				result = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_535);
				if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_536)) { raiseOverflow(); };
				i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_536);
			} LA3: ;
		}
	}
	result = ((NI) -1);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, contains__Pa9a8m0kZYH6LC8N1EcZJdQsystem)(NIM_CHAR* a, NI aLen_0, NIM_CHAR item) {
	NIM_BOOL result;
	NI T1_;
{	result = (NIM_BOOL)0;
	T1_ = (NI)0;
	T1_ = find__31wM5Ui9c8jnrQ5QD4oPxOQsystem(a, aLen_0, item);
	result = (((NI) 0) <= T1_);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
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;
	NimStringDesc* pat;
	NI start;
	nimZeroMem((void*)(&op), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*ri)._kind_6.sons->data[((NI) 0)], (&op));
	nimZeroMem((void*)T1_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
	pl = percent___lTsL0bi6njxzDh9c8A32r2w(T1_, 0);
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)-1); }
	typ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*ri)._kind_6.sons->data[((NI) 0)]).typ, IL64(36134350135273744));
	{
		if (!!(((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25)))) goto LA4_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_532));
	}
	LA4_: ;
	{
		NI T8_;
		NI T9_;
		T8_ = (NI)0;
		T8_ = len__5mJADrRYkP3r9auuiuDZN9cQast(typ);
		T9_ = (NI)0;
		T9_ = len__P89cqdlERShb9alU3iC0yj8wast((*typ).n);
		if (!!((T8_ == T9_))) goto LA10_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_533));
	}
	LA10_: ;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)-1); }
	if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*ri)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*ri)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
	pat = (*(*(*(*ri)._kind_6.sons->data[((NI) 0)])._kind_4.sym).loc.r).data;
	{
		NimStringDesc* T16_;
		if (!!((((NI) 0) < (pat ? pat->Sup.len : 0)))) goto LA14_;
		T16_ = (NimStringDesc*)0;
		T16_ = dollar___r38WafKlW80RkvoZTcia4Q(TM__MQdRN7fpbG7rPm4JpVVAhA_534);
		internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*(*(*p).module).g).config, T16_);
	}
	LA14_: ;
	start = ((NI) 3);
	{
		NIM_BOOL T19_;
		T19_ = (NIM_BOOL)0;
		T19_ = contains__Pa9a8m0kZYH6LC8N1EcZJdQsystem(pat->data, (pat ? pat->Sup.len : 0), 32);
		if (!T19_) goto LA20_;
		start = ((NI) 1);
		add__IM4kcMNkkOLJtqdEqSxR8A(&pl, op.r);
		{
			NI T24_;
			tyArray__qTjAvTvKF9anytN1At69aJMQ T27_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T28_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T29_;
			T24_ = (NI)0;
			T24_ = len__P89cqdlERShb9alU3iC0yj8wast(ri);
			if (!(((NI) 1) < T24_)) goto LA25_;
			nimZeroMem((void*)T27_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
			T28_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T28_ = percent___k4VEB3kaBL72FRQN8buzSg(T27_, 0);
			add__IM4kcMNkkOLJtqdEqSxR8A(&pl, T28_);
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 1)) >= (NU)((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)-1); }
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*typ).n).kind)>>3] &(1U<<((NU)((*(*typ).n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 1)) >= (NU)((*(*typ).n)._kind_6.sons ? (*(*typ).n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*(*typ).n)._kind_6.sons ? (*(*typ).n)._kind_6.sons->Sup.len : 0)-1); }
			if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*(*typ).n)._kind_6.sons->data[((NI) 1)]).kind)>>3] &(1U<<((NU)((*(*(*typ).n)._kind_6.sons->data[((NI) 1)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
			T29_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T29_ = genArg__DHNxWzRy19cVFA89bbFHabxg(p, (*ri)._kind_6.sons->data[((NI) 1)], (*(*(*typ).n)._kind_6.sons->data[((NI) 1)])._kind_4.sym, ri);
			add__IM4kcMNkkOLJtqdEqSxR8A(&pl, T29_);
			start = ((NI) 2);
		}
		LA25_: ;
	}
	goto LA17_;
	LA20_: ;
	{
		{
			NI T33_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T36_;
			tyArray__qTjAvTvKF9anytN1At69aJMQ T37_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T38_;
			T33_ = (NI)0;
			T33_ = len__P89cqdlERShb9alU3iC0yj8wast(ri);
			if (!(((NI) 1) < T33_)) goto LA34_;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 1)) >= (NU)((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)-1); }
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*typ).n).kind)>>3] &(1U<<((NU)((*(*typ).n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 1)) >= (NU)((*(*typ).n)._kind_6.sons ? (*(*typ).n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*(*typ).n)._kind_6.sons ? (*(*typ).n)._kind_6.sons->Sup.len : 0)-1); }
			if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*(*typ).n)._kind_6.sons->data[((NI) 1)]).kind)>>3] &(1U<<((NU)((*(*(*typ).n)._kind_6.sons->data[((NI) 1)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
			T36_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T36_ = genArg__DHNxWzRy19cVFA89bbFHabxg(p, (*ri)._kind_6.sons->data[((NI) 1)], (*(*(*typ).n)._kind_6.sons->data[((NI) 1)])._kind_4.sym, ri);
			add__IM4kcMNkkOLJtqdEqSxR8A(&pl, T36_);
			nimZeroMem((void*)T37_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
			T38_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T38_ = percent___gMbiWAc0IjihIq46IYhmAw(T37_, 0);
			add__IM4kcMNkkOLJtqdEqSxR8A(&pl, T38_);
		}
		LA34_: ;
		add__IM4kcMNkkOLJtqdEqSxR8A(&pl, op.r);
		{
			NI T41_;
			tyArray__qTjAvTvKF9anytN1At69aJMQ T44_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T45_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T46_;
			T41_ = (NI)0;
			T41_ = len__P89cqdlERShb9alU3iC0yj8wast(ri);
			if (!(((NI) 2) < T41_)) goto LA42_;
			nimZeroMem((void*)T44_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
			T45_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T45_ = percent___k4VEB3kaBL72FRQN8buzSg(T44_, 0);
			add__IM4kcMNkkOLJtqdEqSxR8A(&pl, T45_);
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 2)) >= (NU)((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)-1); }
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*typ).n).kind)>>3] &(1U<<((NU)((*(*typ).n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 2)) >= (NU)((*(*typ).n)._kind_6.sons ? (*(*typ).n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*(*typ).n)._kind_6.sons ? (*(*typ).n)._kind_6.sons->Sup.len : 0)-1); }
			if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*(*typ).n)._kind_6.sons->data[((NI) 2)]).kind)>>3] &(1U<<((NU)((*(*(*typ).n)._kind_6.sons->data[((NI) 2)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
			T46_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T46_ = genArg__DHNxWzRy19cVFA89bbFHabxg(p, (*ri)._kind_6.sons->data[((NI) 2)], (*(*(*typ).n)._kind_6.sons->data[((NI) 2)])._kind_4.sym, ri);
			add__IM4kcMNkkOLJtqdEqSxR8A(&pl, T46_);
		}
		LA42_: ;
	}
	LA17_: ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(ri);
		i_2 = start;
		{
			while (1) {
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* param;
				tyArray__qTjAvTvKF9anytN1At69aJMQ T65_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T66_;
				tyArray__qTjAvTvKF9anytN1At69aJMQ T67_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T68_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T69_;
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_540;
				if (!(i_2 < colontmp_)) goto LA49;
				i = i_2;
				{
					NI T52_;
					NI T53_;
					T52_ = (NI)0;
					T52_ = len__5mJADrRYkP3r9auuiuDZN9cQast(typ);
					T53_ = (NI)0;
					T53_ = len__P89cqdlERShb9alU3iC0yj8wast((*typ).n);
					if (!!((T52_ == T53_))) goto LA54_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_537));
				}
				LA54_: ;
				{
					NI T58_;
					T58_ = (NI)0;
					T58_ = len__5mJADrRYkP3r9auuiuDZN9cQast(typ);
					if (!(T58_ <= i)) goto LA59_;
					internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*ri).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_538));
				}
				LA59_: ;
				{
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*typ).n).kind)>>3] &(1U<<((NU)((*(*typ).n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i) >= (NU)((*(*typ).n)._kind_6.sons ? (*(*typ).n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*(*typ).n)._kind_6.sons ? (*(*typ).n)._kind_6.sons->Sup.len : 0)-1); }
					if (!!(((*(*(*typ).n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA63_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_539));
				}
				LA63_: ;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*typ).n).kind)>>3] &(1U<<((NU)((*(*typ).n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(i) >= (NU)((*(*typ).n)._kind_6.sons ? (*(*typ).n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*(*typ).n)._kind_6.sons ? (*(*typ).n)._kind_6.sons->Sup.len : 0)-1); }
				if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*(*typ).n)._kind_6.sons->data[i]).kind)>>3] &(1U<<((NU)((*(*(*typ).n)._kind_6.sons->data[i]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
				param = (*(*(*typ).n)._kind_6.sons->data[i])._kind_4.sym;
				nimZeroMem((void*)T65_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
				T66_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T66_ = percent___gMbiWAc0IjihIq46IYhmAw(T65_, 0);
				add__IM4kcMNkkOLJtqdEqSxR8A(&pl, T66_);
				add__yG4AKzsBRS1W4MANDlXQeg(&pl, (*(*param).name).s);
				nimZeroMem((void*)T67_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
				T68_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T68_ = percent___k4VEB3kaBL72FRQN8buzSg(T67_, 0);
				add__IM4kcMNkkOLJtqdEqSxR8A(&pl, T68_);
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(i) >= (NU)((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)-1); }
				T69_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T69_ = genArg__DHNxWzRy19cVFA89bbFHabxg(p, (*ri)._kind_6.sons->data[i], param, ri);
				add__IM4kcMNkkOLJtqdEqSxR8A(&pl, T69_);
				if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_540)) { raiseOverflow(); };
				i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_540);
			} LA49: ;
		}
	}
	{
		if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1); }
		if (!!(((*typ).sons->data[((NI) 0)] == NIM_NIL))) goto LA72_;
		{
			NIM_BOOL T76_;
			if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1); }
			T76_ = (NIM_BOOL)0;
			T76_ = isInvalidReturnType__ugBeCbo3I6LqXHcpCBFN9ag((*(*(*p).module).g).config, (*typ).sons->data[((NI) 0)]);
			if (!T76_) goto LA77_;
			{
				NI T81_;
				tyArray__qTjAvTvKF9anytN1At69aJMQ T84_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T85_;
				T81_ = (NI)0;
				T81_ = len__P89cqdlERShb9alU3iC0yj8wast(ri);
				if (!(((NI) 1) < T81_)) goto LA82_;
				nimZeroMem((void*)T84_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
				T85_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T85_ = percent___gMbiWAc0IjihIq46IYhmAw(T84_, 0);
				add__IM4kcMNkkOLJtqdEqSxR8A(&pl, T85_);
			}
			LA82_: ;
			{
				tyArray__qTjAvTvKF9anytN1At69aJMQ T94_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T95_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T96_;
				tyArray__qTjAvTvKF9anytN1At69aJMQ T97_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T98_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T99_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T100_;
				if (!((3 &(1U<<((NU)((*d).k)&15U)))!=0)) goto LA88_;
				{
					if (!((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0))) goto LA92_;
					if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1); }
					getTemp__VjOFVqypINqQv5C3ECnxbw(p, (*typ).sons->data[((NI) 0)], d, NIM_TRUE);
				}
				LA92_: ;
				nimZeroMem((void*)T94_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
				T95_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T95_ = percent___YbQIA9cHUESCyYT1WEeIVbA(T94_, 0);
				add__IM4kcMNkkOLJtqdEqSxR8A(&pl, T95_);
				T96_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T96_ = addrLoc__9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, (*d));
				add__IM4kcMNkkOLJtqdEqSxR8A(&pl, T96_);
				nimZeroMem((void*)T97_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
				T98_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T98_ = percent___66KauNYQRukYNgmb6bVXEA(T97_, 0);
				add__IM4kcMNkkOLJtqdEqSxR8A(&pl, T98_);
				T99_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T99_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				T100_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T100_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, pl);
				add__IM4kcMNkkOLJtqdEqSxR8A(T99_, T100_);
			}
			goto LA86_;
			LA88_: ;
			{
				tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA tmp;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T102_;
				tyArray__qTjAvTvKF9anytN1At69aJMQ T103_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T104_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T105_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T106_;
				nimZeroMem((void*)(&tmp), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
				if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1); }
				getTemp__VjOFVqypINqQv5C3ECnxbw(p, (*typ).sons->data[((NI) 0)], (&tmp), NIM_TRUE);
				T102_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T102_ = addrLoc__9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, tmp);
				add__IM4kcMNkkOLJtqdEqSxR8A(&pl, T102_);
				nimZeroMem((void*)T103_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
				T104_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T104_ = percent___66KauNYQRukYNgmb6bVXEA(T103_, 0);
				add__IM4kcMNkkOLJtqdEqSxR8A(&pl, T104_);
				T105_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T105_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				T106_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T106_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, pl);
				add__IM4kcMNkkOLJtqdEqSxR8A(T105_, T106_);
				genAssignment__BtucsTdHw7orsXIL75hNVg(p, (*d), tmp, 0);
			}
			LA86_: ;
		}
		goto LA74_;
		LA77_: ;
		{
			tyArray__qTjAvTvKF9anytN1At69aJMQ T108_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T109_;
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA list;
			nimZeroMem((void*)T108_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
			T109_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T109_ = percent___S550SlHmWbDpD7rs0J2lrA(T108_, 0);
			add__IM4kcMNkkOLJtqdEqSxR8A(&pl, T109_);
			{
				if (!((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0))) goto LA112_;
				if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1); }
				getTemp__VjOFVqypINqQv5C3ECnxbw(p, (*typ).sons->data[((NI) 0)], d, NIM_FALSE);
			}
			LA112_: ;
			{
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T116_;
				T116_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T116_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*d));
				if (!!(!((T116_ == NIM_NIL)))) goto LA117_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_541));
			}
			LA117_: ;
			nimZeroMem((void*)(&list), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			initLoc__qlujIAW86QclHYUVxlHRiQ((&list), ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 9), ri, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
			list.r = pl;
			genAssignment__BtucsTdHw7orsXIL75hNVg(p, (*d), list, 0);
		}
		LA74_: ;
	}
	goto LA70_;
	LA72_: ;
	{
		tyArray__qTjAvTvKF9anytN1At69aJMQ T120_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T121_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T122_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T123_;
		nimZeroMem((void*)T120_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
		T121_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T121_ = percent___66KauNYQRukYNgmb6bVXEA(T120_, 0);
		add__IM4kcMNkkOLJtqdEqSxR8A(&pl, T121_);
		T122_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T122_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		T123_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T123_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, pl);
		add__IM4kcMNkkOLJtqdEqSxR8A(T122_, T123_);
	}
	LA70_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genPrefixCall__HKkL9adNEIcNHeJ0iZ6uitg_4)(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;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* callee;
	nimZeroMem((void*)(&op), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*ri)._kind_6.sons->data[((NI) 0)], (&op));
	params = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)-1); }
	typ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*ri)._kind_6.sons->data[((NI) 0)]).typ, IL64(36134350135273744));
	{
		if (!!(((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_542));
	}
	LA3_: ;
	{
		NI T7_;
		NI T8_;
		T7_ = (NI)0;
		T7_ = len__5mJADrRYkP3r9auuiuDZN9cQast(typ);
		T8_ = (NI)0;
		T8_ = len__P89cqdlERShb9alU3iC0yj8wast((*typ).n);
		if (!!((T7_ == T8_))) goto LA9_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_543));
	}
	LA9_: ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(ri);
		i_2 = ((NI) 1);
		{
			while (1) {
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_544;
				if (!(i_2 < colontmp_)) goto LA13;
				i = i_2;
				{
					NI T16_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* paramType;
					T16_ = (NI)0;
					T16_ = len__5mJADrRYkP3r9auuiuDZN9cQast(typ);
					if (!(i < T16_)) goto LA17_;
					{
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*typ).n).kind)>>3] &(1U<<((NU)((*(*typ).n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if ((NU)(i) >= (NU)((*(*typ).n)._kind_6.sons ? (*(*typ).n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*(*typ).n)._kind_6.sons ? (*(*typ).n)._kind_6.sons->Sup.len : 0)-1); }
						if (!!(((*(*(*typ).n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA21_;
						failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_469));
					}
					LA21_: ;
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*typ).n).kind)>>3] &(1U<<((NU)((*(*typ).n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i) >= (NU)((*(*typ).n)._kind_6.sons ? (*(*typ).n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*(*typ).n)._kind_6.sons ? (*(*typ).n)._kind_6.sons->Sup.len : 0)-1); }
					paramType = (*(*typ).n)._kind_6.sons->data[i];
					{
						NIM_BOOL T25_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T34_;
						T25_ = (NIM_BOOL)0;
						T25_ = isCompileTimeOnly__F9ciDIanrWYqbJ4rgLlNAAg_3types((*paramType).typ);
						if (!!(T25_)) goto LA26_;
						{
							tyArray__qTjAvTvKF9anytN1At69aJMQ T32_;
							tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T33_;
							if (!!((params == NIM_NIL))) goto LA30_;
							nimZeroMem((void*)T32_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
							T33_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
							T33_ = percent___PoDv5ydEvGdd9aiIF9cOiAPw(T32_, 0);
							add__IM4kcMNkkOLJtqdEqSxR8A(&params, T33_);
						}
						LA30_: ;
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if ((NU)(i) >= (NU)((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)-1); }
						if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*paramType).kind)>>3] &(1U<<((NU)((*paramType).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
						T34_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T34_ = genArg__DHNxWzRy19cVFA89bbFHabxg(p, (*ri)._kind_6.sons->data[i], (*paramType)._kind_4.sym, ri);
						add__IM4kcMNkkOLJtqdEqSxR8A(&params, T34_);
					}
					LA26_: ;
				}
				goto LA14_;
				LA17_: ;
				{
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T42_;
					{
						tyArray__qTjAvTvKF9anytN1At69aJMQ T40_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T41_;
						if (!!((params == NIM_NIL))) goto LA38_;
						nimZeroMem((void*)T40_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
						T41_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T41_ = percent___PoDv5ydEvGdd9aiIF9cOiAPw(T40_, 0);
						add__IM4kcMNkkOLJtqdEqSxR8A(&params, T41_);
					}
					LA38_: ;
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i) >= (NU)((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)-1); }
					T42_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T42_ = genArgNoParam__NYI5fC69aIqZGRakncXv9cNQ_3(p, (*ri)._kind_6.sons->data[i]);
					add__IM4kcMNkkOLJtqdEqSxR8A(&params, T42_);
				}
				LA14_: ;
				if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_544)) { raiseOverflow(); };
				i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_544);
			} LA13: ;
		}
	}
	callee = rdLoc__xidyzuHqIciXbQyEOKahDg(op);
	{
		NIM_BOOL T45_;
		T45_ = (NIM_BOOL)0;
		T45_ = hcrOn__NAlbw3fU59aFdo7L5aQtmkw(p);
		if (!(T45_)) goto LA46_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)-1); }
		T45_ = ((*(*ri)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
		LA46_: ;
		if (!T45_) goto LA47_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)-1); }
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*ri)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*ri)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
		addActualSuffixForHCR__Mns9bHWQy2Dza12fE8Mjw9aw(&callee, (*(*p).module).module, (*(*ri)._kind_6.sons->data[((NI) 0)])._kind_4.sym);
	}
	LA47_: ;
	fixupCall__5AieZFwkpMkLKPnkORd7Cw(p, le, ri, d, callee, params);
}
static N_INLINE(void, postStmtActions__hU2pQ4yYkske4uOCGEGfMwcgen)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T1_;
	T1_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T1_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
	add__IM4kcMNkkOLJtqdEqSxR8A(T1_, (*(*p).module).injectStmt);
}
N_LIB_PRIVATE N_NIMCALL(void, genAsgnCall__HKkL9adNEIcNHeJ0iZ6uitg)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T3_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)-1); }
		T3_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T3_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*ri)._kind_6.sons->data[((NI) 0)]).typ, IL64(105553116268560));
		if (!((*T3_).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 8))) goto LA4_;
		genClosureCall__HKkL9adNEIcNHeJ0iZ6uitg_2(p, le, ri, d);
	}
	goto LA1_;
	LA4_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)-1); }
		T7_ = ((*(*ri)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
		if (!(T7_)) goto LA8_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)-1); }
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*ri)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*ri)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
		T7_ = (((*(*(*ri)._kind_6.sons->data[((NI) 0)])._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 31))&63U)))!=0);
		LA8_: ;
		if (!T7_) goto LA9_;
		genInfixCall__HKkL9adNEIcNHeJ0iZ6uitg_3(p, le, ri, d);
	}
	goto LA1_;
	LA9_: ;
	{
		NIM_BOOL T12_;
		T12_ = (NIM_BOOL)0;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)-1); }
		T12_ = ((*(*ri)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
		if (!(T12_)) goto LA13_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)-1); }
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*ri)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*ri)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
		T12_ = (((*(*(*ri)._kind_6.sons->data[((NI) 0)])._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 32))&63U)))!=0);
		LA13_: ;
		if (!T12_) goto LA14_;
		genNamedParamCall__9azKdI6vAayTOFEcJtCTo1g(p, ri, d);
	}
	goto LA1_;
	LA14_: ;
	{
		genPrefixCall__HKkL9adNEIcNHeJ0iZ6uitg_4(p, le, ri, d);
	}
	LA1_: ;
	postStmtActions__hU2pQ4yYkske4uOCGEGfMwcgen(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;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)-1); }
		T5_ = !(((*(*ri)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)));
		if (T5_) goto LA6_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*ri)._kind_6.sons ? (*ri)._kind_6.sons->Sup.len : 0)-1); }
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*ri)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*ri)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
		T5_ = ((*(*(*ri)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0));
		LA6_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA7_;
		genAsgnCall__HKkL9adNEIcNHeJ0iZ6uitg(p, le, ri, a);
	}
	goto LA1_;
	LA7_: ;
	{
		(*a).flags |= ((NU16)1)<<((((tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA) 9)) & 15);
		expr__8mAL9ckajemzgfLPfeZVNoQ(p, ri, a);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genSingleVar__T7FeUoHVfLrGm0JydrFabA)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* v, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* vn, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* value) {
	tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* targetProc;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* traverseProc;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* valueAsRope;
	NIM_BOOL forHcr;
{	{
		if (!(((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 34))&63U)))!=0)) goto LA3_;
		genGotoVar__4xOIY9bgIMy9bAzg2ZyIieBw(p, value);
		goto BeforeRet_;
	}
	LA3_: ;
	targetProc = p;
	traverseProc = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	valueAsRope = potentialValueInit__ZPEw9bE7bf9b89ciOwNlnaiIg(p, v, value);
	{
		if (!(((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0)) goto LA7_;
		{
			NIM_BOOL T11_;
			NIM_BOOL T12_;
			T11_ = (NIM_BOOL)0;
			T12_ = (NIM_BOOL)0;
			T12_ = (((*v).flags & 192) == 64);
			if (!(T12_)) goto LA13_;
			T12_ = ((*value).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
			LA13_: ;
			T11_ = T12_;
			if (!(T11_)) goto LA14_;
			T11_ = !((((*v).loc.flags & 72) == 0));
			LA14_: ;
			if (!T11_) goto LA15_;
			goto BeforeRet_;
		}
		LA15_: ;
		{
			if (!(((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 11))&63U)))!=0)) goto LA19_;
			targetProc = (*(*p).module).preInitProc;
		}
		LA19_: ;
		assignGlobalVar__yX9bZpeKIzp3RLrjnzlc0NQ(targetProc, vn, valueAsRope);
		{
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
			if (!(valueAsRope == NIM_NIL)) goto LA23_;
			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) 26))&63U)))!=0);
				if (!(T28_)) goto LA29_;
				T28_ = emulatedThreadVars__7uEG6ZwO4OOj3nQvIat2mwcgen((*(*(*p).module).g).config);
				LA29_: ;
				T27_ = T28_;
				if (!(T27_)) goto LA30_;
				T27_ = isComplexValueType__Fl17jclCP5VEr9a7Ycym1awcgen((*v).typ);
				LA30_: ;
				if (!T27_) goto LA31_;
				initLocExprSingleUse__9biTBaXPz9cezuLjjWw9cSEGw((*(*p).module).preInitProc, vn, (&loc));
			}
			LA31_: ;
			genObjectInit__UANnSFbuKD1BS6RrMbZs2A((*(*p).module).preInitProc, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 1), (*v).typ, (&loc), ((tyEnum_ObjConstrMode__9agQ3x8C5KfK9c9a3uY9abfUTw) 0));
		}
		LA23_: ;
		{
			NIM_BOOL T35_;
			T35_ = (NIM_BOOL)0;
			T35_ = (((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 7))&63U)))!=0);
			if (!(T35_)) goto LA36_;
			T35_ = !(((*(*(*p).module).g).generatedHeader == NIM_NIL));
			LA36_: ;
			if (!T35_) goto LA37_;
			genVarPrototype__t9a9a9bxmaOztYOfsfhQUOXXw_2((*(*(*p).module).g).generatedHeader, vn);
		}
		LA37_: ;
		traverseProc = getTraverseProc__V1atRcoAv09bVdrCPNlvW8Q(p, v);
		{
			NIM_BOOL T41_;
			NIM_BOOL T43_;
			T41_ = (NIM_BOOL)0;
			T41_ = !((traverseProc == NIM_NIL));
			if (!(T41_)) goto LA42_;
			T43_ = (NIM_BOOL)0;
			T43_ = hcrOn__NAlbw3fU59aFdo7L5aQtmkw(p);
			T41_ = !(T43_);
			LA42_: ;
			if (!T41_) goto LA44_;
			registerTraverseProc__BwxixSWhJWbQ369cJZeckHA(p, v, traverseProc);
		}
		LA44_: ;
	}
	goto LA5_;
	LA7_: ;
	{
		NIM_BOOL imm;
		imm = isAssignedImmediately__udBNoPxZaHjsWUNp37jAdwcgen((*(*(*p).module).g).config, value);
		{
			NIM_BOOL T49_;
			NIM_BOOL T50_;
			NIM_BOOL T51_;
			NIM_BOOL T53_;
			NIM_BOOL T57_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* decl;
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA tmp;
			T49_ = (NIM_BOOL)0;
			T50_ = (NIM_BOOL)0;
			T51_ = (NIM_BOOL)0;
			T51_ = imm;
			if (!(T51_)) goto LA52_;
			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) 31))&63U)))!=0);
			LA54_: ;
			T51_ = T53_;
			LA52_: ;
			T50_ = T51_;
			if (!(T50_)) goto LA55_;
			T50_ = ((*p).splitDecls == ((NI) 0));
			LA55_: ;
			T49_ = T50_;
			if (!(T49_)) goto LA56_;
			T57_ = (NIM_BOOL)0;
			T57_ = containsHiddenPointer__IVXYI9cxSeivThgKCncHRnA_4((*v).typ);
			T49_ = !(T57_);
			LA56_: ;
			if (!T49_) goto LA58_;
			genLineDir__QrTB5DOwbDX9bKAW7PNbuJA_2(p, vn);
			decl = localVarDecl__NYI5fC69aIqZGRakncXv9cNQ(p, vn);
			nimZeroMem((void*)(&tmp), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			{
				NIM_BOOL T62_;
				NIM_BOOL T63_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* params;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
				T62_ = (NIM_BOOL)0;
				T63_ = (NIM_BOOL)0;
				T63_ = ((*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 (!(T63_)) goto LA64_;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*value).kind)>>3] &(1U<<((NU)((*value).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 0)) >= (NU)((*value)._kind_6.sons ? (*value)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*value)._kind_6.sons ? (*value)._kind_6.sons->Sup.len : 0)-1); }
				T63_ = ((*(*value)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
				LA64_: ;
				T62_ = T63_;
				if (!(T62_)) goto LA65_;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*value).kind)>>3] &(1U<<((NU)((*value).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 0)) >= (NU)((*value)._kind_6.sons ? (*value)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*value)._kind_6.sons ? (*value)._kind_6.sons->Sup.len : 0)-1); }
				if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*value)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*value)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
				T62_ = (((*(*(*value)._kind_6.sons->data[((NI) 0)])._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
				LA65_: ;
				if (!T62_) goto LA66_;
				params = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*value).kind)>>3] &(1U<<((NU)((*value).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 0)) >= (NU)((*value)._kind_6.sons ? (*value)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*value)._kind_6.sons ? (*value)._kind_6.sons->Sup.len : 0)-1); }
				typ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*value)._kind_6.sons->data[((NI) 0)]).typ, IL64(36134350135273744));
				{
					if (!!(((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25)))) goto LA70_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_453));
				}
				LA70_: ;
				{
					NI i;
					NI colontmp_;
					NI i_2;
					i = (NI)0;
					colontmp_ = (NI)0;
					colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(value);
					i_2 = ((NI) 1);
					{
						while (1) {
							tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T87_;
							NI TM__MQdRN7fpbG7rPm4JpVVAhA_458;
							if (!(i_2 < colontmp_)) goto LA74;
							i = i_2;
							{
								tyArray__qTjAvTvKF9anytN1At69aJMQ T79_;
								tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T80_;
								if (!!((params == NIM_NIL))) goto LA77_;
								nimZeroMem((void*)T79_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
								T80_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
								T80_ = percent___PoDv5ydEvGdd9aiIF9cOiAPw(T79_, 0);
								add__IM4kcMNkkOLJtqdEqSxR8A(&params, T80_);
							}
							LA77_: ;
							{
								NI T83_;
								NI T84_;
								T83_ = (NI)0;
								T83_ = len__5mJADrRYkP3r9auuiuDZN9cQast(typ);
								T84_ = (NI)0;
								T84_ = len__P89cqdlERShb9alU3iC0yj8wast((*typ).n);
								if (!!((T83_ == T84_))) goto LA85_;
								failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_454));
							}
							LA85_: ;
							T87_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
							T87_ = genOtherArg__9a86z5oGsAZjkB52zPdLZJQ(p, value, i, typ);
							add__IM4kcMNkkOLJtqdEqSxR8A(&params, T87_);
							if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_458)) { raiseOverflow(); };
							i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_458);
						} LA74: ;
					}
				}
				{
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T92_;
					tyArray__JiWwrsTRC6xqNlGcBthSVA T93_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T94_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T95_;
					if (!(params == NIM_NIL)) goto LA90_;
					T92_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
					T92_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
					nimZeroMem((void*)T93_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
					T93_[0] = decl;
					T94_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T94_ = percent___boICAAvO1zkTlYDOuEaj6g(T93_, 1);
					T95_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T95_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T94_);
					add__IM4kcMNkkOLJtqdEqSxR8A(T92_, T95_);
				}
				goto LA88_;
				LA90_: ;
				{
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T97_;
					tyArray__mrugoXXRZUEeG9bEXo9auBKw T98_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T99_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T100_;
					T97_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
					T97_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
					nimZeroMem((void*)T98_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
					T98_[0] = decl;
					T98_[1] = params;
					T99_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T99_ = percent___LeuvM3mIc6pSNktpm9cHSVw(T98_, 2);
					T100_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T100_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T99_);
					add__IM4kcMNkkOLJtqdEqSxR8A(T97_, T100_);
				}
				LA88_: ;
			}
			goto LA60_;
			LA66_: ;
			{
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T102_;
				tyArray__mrugoXXRZUEeG9bEXo9auBKw T103_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T104_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T105_;
				initLocExprSingleUse__9biTBaXPz9cezuLjjWw9cSEGw(p, value, (&tmp));
				T102_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T102_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				nimZeroMem((void*)T103_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
				T103_[0] = decl;
				T103_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(tmp);
				T104_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T104_ = percent___mxQQ2vwZhwfDagj5SEXeHA(T103_, 2);
				T105_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T105_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T104_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T102_, T105_);
			}
			LA60_: ;
			goto BeforeRet_;
		}
		LA58_: ;
		assignLocalVar__UtJx89cn0a8CNSWWmaj6raA(p, vn);
		initLocalVar__EpeofNfMJPurx0duaALCaA(p, v, imm);
	}
	LA5_: ;
	{
		tyArray__qTjAvTvKF9anytN1At69aJMQ T110_;
		if (!(traverseProc == NIM_NIL)) goto LA108_;
		nimZeroMem((void*)T110_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
		traverseProc = percent___x2NKZw9brJpylbwEtLfx9a9bg(T110_, 0);
	}
	LA108_: ;
	forHcr = treatGlobalDifferentlyForHCR__AaEyY9c5j7G9bThwkB9ajJ8Pw((*p).module, v);
	{
		NIM_BOOL T113_;
		NIM_BOOL T114_;
		NI T116_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T120_;
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T125_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T126_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T131_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T132_;
		T113_ = (NIM_BOOL)0;
		T114_ = (NIM_BOOL)0;
		T114_ = forHcr;
		if (!(T114_)) goto LA115_;
		T116_ = ((*targetProc).blocks ? (*targetProc).blocks->Sup.len : 0);
		T114_ = (((NI) 3) < T116_);
		LA115_: ;
		T113_ = T114_;
		if (!(T113_)) goto LA117_;
		T113_ = ((*(*v).owner).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6));
		LA117_: ;
		if (!T113_) goto LA118_;
		T120_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T120_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(targetProc, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 0));
		{
			if (!!(!(((*targetProc).module == NIM_NIL)))) goto LA123_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_459));
		}
		LA123_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 18);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_460));
		T125_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T125_ = getModuleDllPath__RaNE9b8A430I9bfpgZmdrC1w_3((*p).module, v);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T125_);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_461));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), (*v).loc.r);
		res = resizeString(res, 10);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_462));
		T126_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T126_ = rdLoc__xidyzuHqIciXbQyEOKahDg((*v).loc);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T126_);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_463));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), traverseProc);
		res = resizeString(res, 11);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_464));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), (*v).loc.r);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
		{
			if (!!((((*(*(*(*targetProc).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA129_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA129_: ;
		T131_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T131_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
		T132_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T132_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(targetProc, T131_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T120_, T132_);
		forHcr = NIM_FALSE;
	}
	LA118_: ;
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T137_;
		NimStringDesc* res_2;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T142_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T143_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T144_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T145_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T146_;
		NimStringDesc* res_3;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T155_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T156_;
		NI T157_;
		if (!forHcr) goto LA135_;
		T137_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T137_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(targetProc, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*targetProc).module == NIM_NIL)))) goto LA140_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_459));
		}
		LA140_: ;
		res_2 = rawNewString(((NI) 80));
		res_2 = resizeString(res_2, 22);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_465));
		T142_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T142_ = getModuleDllPath__RaNE9b8A430I9bfpgZmdrC1w_3((*p).module, v);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T142_);
		res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_461));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), (*v).loc.r);
		res_2 = resizeString(res_2, 10);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_462));
		T143_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T143_ = rdLoc__xidyzuHqIciXbQyEOKahDg((*v).loc);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T143_);
		res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_463));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), traverseProc);
		res_2 = resizeString(res_2, 11);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_464));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), (*v).loc.r);
		res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_466));
		T144_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T144_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
		T145_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T145_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(targetProc, T144_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T137_, T145_);
		T146_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T146_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(targetProc, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*targetProc).module == NIM_NIL)))) goto LA149_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_459));
		}
		LA149_: ;
		res_3 = rawNewString(((NI) 80));
		res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_20));
		{
			if (!!((((*(*(*(*targetProc).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA153_;
			res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA153_: ;
		T155_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T155_ = rope__yShmEg9cffWxI7s5XzEKBow(res_3);
		T156_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T156_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(targetProc, T155_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T146_, T156_);
		T157_ = (NI)0;
		T157_ = startBlockInternal__1ygdb876UM9astcNUXtgUBQ(targetProc);
	}
	LA135_: ;
	{
		NIM_BOOL T160_;
		T160_ = (NIM_BOOL)0;
		T160_ = !(((*value).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)));
		if (!(T160_)) goto LA161_;
		T160_ = (valueAsRope == NIM_NIL);
		LA161_: ;
		if (!T160_) goto LA162_;
		genLineDir__QrTB5DOwbDX9bKAW7PNbuJA_2(targetProc, vn);
		loadInto__vkEx8Dn9aiGOI04WjvQIHIwcgen(targetProc, vn, value, (&(*v).loc));
	}
	LA162_: ;
	{
		if (!forHcr) goto LA166_;
		endBlock__0dpuY9coTlraj8JXIe2BzVw(targetProc);
	}
	LA166_: ;
	}BeforeRet_: ;
}
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__qlujIAW86QclHYUVxlHRiQ((&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(p, (*d), a, 0);
		}
		goto LA5_;
		LA7_: ;
		{
			genAssignment__BtucsTdHw7orsXIL75hNVg(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(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getLabel__3AsTOpq9crZUYBL9aD1lXBng_5)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	NI TM__MQdRN7fpbG7rPm4JpVVAhA_551;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T1_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T2_;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	if (nimAddInt((*p).labels, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_551)) { raiseOverflow(); };
	if (TM__MQdRN7fpbG7rPm4JpVVAhA_551 < 0 || TM__MQdRN7fpbG7rPm4JpVVAhA_551 > 2147483647){ raiseOverflow(); }
	(*p).labels = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_551);
	T1_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).labels)));
	T2_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = amp___4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_552), 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) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T1_;
	tyArray__JiWwrsTRC6xqNlGcBthSVA T2_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T3_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T4_;
	T1_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T1_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
	nimZeroMem((void*)T2_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
	T2_[0] = labl;
	T3_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T3_ = percent___ZpwWwpfBXgcQ6xoLOH4CJw(T2_, 1);
	T4_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T4_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T3_);
	add__IM4kcMNkkOLJtqdEqSxR8A(T1_, T4_);
}
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;
	NI TM__MQdRN7fpbG7rPm4JpVVAhA_550;
	NI TM__MQdRN7fpbG7rPm4JpVVAhA_553;
	L = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	nimZeroMem((void*)(&tmp), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
	getTemp__VjOFVqypINqQv5C3ECnxbw(p, (*e).typ, (&tmp), NIM_FALSE);
	if (nimAddInt((*p).splitDecls, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_550)) { raiseOverflow(); };
	(*p).splitDecls = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_550);
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	expr__8mAL9ckajemzgfLPfeZVNoQ(p, (*e)._kind_6.sons->data[((NI) 1)], (&tmp));
	L = getLabel__3AsTOpq9crZUYBL9aD1lXBng_5(p);
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T5_;
		tyArray__mrugoXXRZUEeG9bEXo9auBKw T6_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T7_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T8_;
		if (!(m == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 109))) goto LA3_;
		T5_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T5_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		nimZeroMem((void*)T6_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
		T6_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(tmp);
		T6_[1] = L;
		T7_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T7_ = percent___sGnLi1DjaBomQ9c9a6MOCA5g(T6_, 2);
		T8_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T8_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T7_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T5_, T8_);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T10_;
		tyArray__mrugoXXRZUEeG9bEXo9auBKw T11_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T12_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T13_;
		T10_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T10_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		nimZeroMem((void*)T11_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
		T11_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(tmp);
		T11_[1] = L;
		T12_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = percent___bEKtSmboScaCP8PPnlOWqw(T11_, 2);
		T13_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T13_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T12_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T10_, T13_);
	}
	LA1_: ;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	expr__8mAL9ckajemzgfLPfeZVNoQ(p, (*e)._kind_6.sons->data[((NI) 2)], (&tmp));
	fixLabel__z1hx9axqa9cHsmY7bMeZVSrQ(p, L);
	{
		if (!((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0))) goto LA16_;
		genericAssign((void*)(&(*d)), (void*)(&tmp), (&NTI__EtHNvCB0bgfu9bFjzx9cb6aA_));
	}
	goto LA14_;
	LA16_: ;
	{
		genAssignment__BtucsTdHw7orsXIL75hNVg(p, (*d), tmp, 0);
	}
	LA14_: ;
	if (nimSubInt((*p).splitDecls, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_553)) { raiseOverflow(); };
	(*p).splitDecls = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_553);
}
static N_INLINE(NF, toBiggestFloat__hTpm9cXKgh17pxyZUsNnUyQsystem)(NI64 i) {
	NF result;
	result = (NF)0;
	result = ((NF) (i));
	return result;
}
static N_INLINE(NIM_BOOL, nimMulInt64)(NI64 a, NI64 b, NI64* res) {
	NIM_BOOL result;
	NI64 r;
	NF floatProd;
	NF T1_;
	NF T2_;
	NF resAsFloat;
	result = (NIM_BOOL)0;
	r = ((NI64) ((NU64)((NU64)(((NU64) (a))) * (NU64)(((NU64) (b))))));
	T1_ = (NF)0;
	T1_ = toBiggestFloat__hTpm9cXKgh17pxyZUsNnUyQsystem(a);
	T2_ = (NF)0;
	T2_ = toBiggestFloat__hTpm9cXKgh17pxyZUsNnUyQsystem(b);
	floatProd = ((NF)(T1_) * (NF)(T2_));
	resAsFloat = toBiggestFloat__hTpm9cXKgh17pxyZUsNnUyQsystem(r);
	{
		if (!(resAsFloat == floatProd)) goto LA5_;
		(*res) = r;
	}
	goto LA3_;
	LA5_: ;
	{
		{
			NF T10_;
			NF T11_;
			T10_ = (NF)0;
			T10_ = abs__BRaAqinz6OWTHkALb4oj6Qsystem(((NF)(resAsFloat) - (NF)(floatProd)));
			T11_ = (NF)0;
			T11_ = abs__BRaAqinz6OWTHkALb4oj6Qsystem(floatProd);
			if (!(((NF)(3.2000000000000000e+01) * (NF)(T10_)) <= T11_)) goto LA12_;
			(*res) = r;
		}
		goto LA8_;
		LA12_: ;
		{
			result = NIM_TRUE;
		}
		LA8_: ;
	}
	LA3_: ;
	return result;
}
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;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
	t = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	{
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		if (!!(!(((*(*e)._kind_6.sons->data[((NI) 1)]).typ == NIM_NIL)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_554));
	}
	LA3_: ;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&a));
	t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*e).typ, IL64(36134350136322320));
	switch (op) {
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 95):
	{
		tyArray__wqYjTJU9ab2ZgEFMaQc3vNA T6_;
		NI64 T7_;
		NI64 TM__MQdRN7fpbG7rPm4JpVVAhA_555;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T8_;
		nimZeroMem((void*)T6_, sizeof(tyArray__wqYjTJU9ab2ZgEFMaQc3vNA));
		T6_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T7_ = (NI64)0;
		T7_ = getSize__vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, t);
		if (nimMulInt64(T7_, IL64(8), &TM__MQdRN7fpbG7rPm4JpVVAhA_555)) { raiseOverflow(); };
		T6_[1] = rope__KOisMGxcPhz6CcSmxgwEQQ((NI64)(TM__MQdRN7fpbG7rPm4JpVVAhA_555));
		T6_[2] = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T8_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T8_ = percent___GHW5yjG8N9c2BQBun6aBJzQ(T6_, 3);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T8_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 96):
	{
		tyArray__wqYjTJU9ab2ZgEFMaQc3vNA T10_;
		NI64 T11_;
		NI64 TM__MQdRN7fpbG7rPm4JpVVAhA_556;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T12_;
		nimZeroMem((void*)T10_, sizeof(tyArray__wqYjTJU9ab2ZgEFMaQc3vNA));
		T10_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T11_ = (NI64)0;
		T11_ = getSize__vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, t);
		if (nimMulInt64(T11_, IL64(8), &TM__MQdRN7fpbG7rPm4JpVVAhA_556)) { raiseOverflow(); };
		T10_[1] = rope__KOisMGxcPhz6CcSmxgwEQQ((NI64)(TM__MQdRN7fpbG7rPm4JpVVAhA_556));
		T10_[2] = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T12_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = percent___QXMcmOst45ThYFLo9cOKDiQ(T10_, 3);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T12_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 97):
	{
		tyArray__wqYjTJU9ab2ZgEFMaQc3vNA T14_;
		NI64 T15_;
		NI64 TM__MQdRN7fpbG7rPm4JpVVAhA_557;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T16_;
		nimZeroMem((void*)T14_, sizeof(tyArray__wqYjTJU9ab2ZgEFMaQc3vNA));
		T14_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T15_ = (NI64)0;
		T15_ = getSize__vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, t);
		if (nimMulInt64(T15_, IL64(8), &TM__MQdRN7fpbG7rPm4JpVVAhA_557)) { raiseOverflow(); };
		T14_[1] = rope__KOisMGxcPhz6CcSmxgwEQQ((NI64)(TM__MQdRN7fpbG7rPm4JpVVAhA_557));
		T14_[2] = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T16_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T16_ = percent___Yup67SPGRVcwMdmZwc9cSag(T14_, 3);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T16_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 98):
	{
		tyArray__wqYjTJU9ab2ZgEFMaQc3vNA T18_;
		NI64 T19_;
		NI64 TM__MQdRN7fpbG7rPm4JpVVAhA_558;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T20_;
		nimZeroMem((void*)T18_, sizeof(tyArray__wqYjTJU9ab2ZgEFMaQc3vNA));
		T18_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T19_ = (NI64)0;
		T19_ = getSize__vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, t);
		if (nimMulInt64(T19_, IL64(8), &TM__MQdRN7fpbG7rPm4JpVVAhA_558)) { raiseOverflow(); };
		T18_[1] = rope__KOisMGxcPhz6CcSmxgwEQQ((NI64)(TM__MQdRN7fpbG7rPm4JpVVAhA_558));
		T18_[2] = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T20_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T20_ = percent___QXMcmOst45ThYFLo9cOKDiQ(T18_, 3);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T20_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 99):
	{
		tyArray__wqYjTJU9ab2ZgEFMaQc3vNA T22_;
		NI64 T23_;
		NI64 TM__MQdRN7fpbG7rPm4JpVVAhA_559;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T24_;
		nimZeroMem((void*)T22_, sizeof(tyArray__wqYjTJU9ab2ZgEFMaQc3vNA));
		T22_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T23_ = (NI64)0;
		T23_ = getSize__vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, t);
		if (nimMulInt64(T23_, IL64(8), &TM__MQdRN7fpbG7rPm4JpVVAhA_559)) { raiseOverflow(); };
		T22_[1] = rope__KOisMGxcPhz6CcSmxgwEQQ((NI64)(TM__MQdRN7fpbG7rPm4JpVVAhA_559));
		T22_[2] = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T24_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T24_ = percent___ec65mR1N7BSL9cmUa3z9czvA(T22_, 3);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T24_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	default:
	{
		{
			NimStringDesc* T30_;
			if (!NIM_TRUE) goto LA28_;
			T30_ = (NimStringDesc*)0;
			T30_ = rawNewString((reprEnum((NI)op, (&NTI__shZhZOdbVC5nnFvcXQAImg_)) ? reprEnum((NI)op, (&NTI__shZhZOdbVC5nnFvcXQAImg_))->Sup.len : 0) + 30);
appendString(T30_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_560));
appendString(T30_, reprEnum((NI)op, (&NTI__shZhZOdbVC5nnFvcXQAImg_)));
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(T30_);
		}
		LA28_: ;
	}
	break;
	}
}
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;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
	t = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	{
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		if (!!(!(((*(*e)._kind_6.sons->data[((NI) 1)]).typ == NIM_NIL)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_561));
	}
	LA3_: ;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&a));
	t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*e).typ, IL64(36134350136322320));
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T9_;
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T14_;
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T15_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T16_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T17_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T18_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T23_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T24_;
		if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 5))&31U)))!=0)) goto LA7_;
		T9_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T9_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA12_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA12_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 4);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_285));
		T14_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T14_);
		res = resizeString(res, 4);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_562));
		T15_ = firstOrd__hjogdnp59cMX1rwmjikBhqw((*(*(*p).module).g).config, t);
		T16_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T16_ = intLiteral__0L2LUBpuDvHdOo5Bdh2tRw(T15_);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T16_);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_563));
		T17_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T17_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_564));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T17_);
		res = resizeString(res, 4);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_478));
		T18_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T18_ = raiseInstr__3AsTOpq9crZUYBL9aD1lXBng_4(p);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T18_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_235));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA21_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA21_: ;
		T23_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T23_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
		T24_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T24_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T23_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T9_, T24_);
	}
	LA7_: ;
	switch (m) {
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 92):
	{
		tyArray__mrugoXXRZUEeG9bEXo9auBKw T26_;
		NI64 T27_;
		NI64 TM__MQdRN7fpbG7rPm4JpVVAhA_565;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T28_;
		nimZeroMem((void*)T26_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
		T26_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T27_ = (NI64)0;
		T27_ = getSize__vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, t);
		if (nimMulInt64(T27_, IL64(8), &TM__MQdRN7fpbG7rPm4JpVVAhA_565)) { raiseOverflow(); };
		T26_[1] = rope__KOisMGxcPhz6CcSmxgwEQQ((NI64)(TM__MQdRN7fpbG7rPm4JpVVAhA_565));
		T28_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T28_ = percent___ibyK70G44kCK9cN8nAkxyGA(T26_, 2);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T28_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 93):
	{
		tyArray__JiWwrsTRC6xqNlGcBthSVA T30_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T31_;
		nimZeroMem((void*)T30_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
		T30_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T31_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T31_ = percent___ec65mR1N7BSL9cmUa3z9czvA(T30_, 1);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T31_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 94):
	{
		tyArray__JiWwrsTRC6xqNlGcBthSVA T33_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T34_;
		nimZeroMem((void*)T33_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
		T33_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T34_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T34_ = percent___H9b69aGZGrLOiKWQdd30yQ9bg(T33_, 1);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T34_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	default:
	{
		{
			NimStringDesc* T40_;
			if (!NIM_TRUE) goto LA38_;
			T40_ = (NimStringDesc*)0;
			T40_ = rawNewString((reprEnum((NI)m, (&NTI__shZhZOdbVC5nnFvcXQAImg_)) ? reprEnum((NI)m, (&NTI__shZhZOdbVC5nnFvcXQAImg_))->Sup.len : 0) + 30);
appendString(T40_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_566));
appendString(T40_, reprEnum((NI)m, (&NTI__shZhZOdbVC5nnFvcXQAImg_)));
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(T40_);
		}
		LA38_: ;
	}
	break;
	}
}
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* T9_;
	NI64 T10_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T11_;
	NI64 T12_;
	NI64 TM__MQdRN7fpbG7rPm4JpVVAhA_581;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T13_;
	NI64 T14_;
	NI64 TM__MQdRN7fpbG7rPm4JpVVAhA_582;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&b), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
	s = (NI64)0;
	k = (NI64)0;
	{
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		if (!!(!(((*(*e)._kind_6.sons->data[((NI) 1)]).typ == NIM_NIL)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_579));
	}
	LA3_: ;
	{
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		if (!!(!(((*(*e)._kind_6.sons->data[((NI) 2)]).typ == NIM_NIL)))) goto LA7_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_580));
	}
	LA7_: ;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&a));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 2)], (&b));
	T9_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T9_ = t__XNOXh7uniWNgiq58C9bW49awcgen(a);
	T10_ = (NI64)0;
	T10_ = getSize__vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, T9_);
	T11_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T11_ = t__XNOXh7uniWNgiq58C9bW49awcgen(b);
	T12_ = (NI64)0;
	T12_ = getSize__vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, T11_);
	if (nimMulInt64(((T10_ >= T12_) ? T10_ : T12_), IL64(8), &TM__MQdRN7fpbG7rPm4JpVVAhA_581)) { raiseOverflow(); };
	s = (NI64)(TM__MQdRN7fpbG7rPm4JpVVAhA_581);
	T13_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T13_ = t__XNOXh7uniWNgiq58C9bW49awcgen(a);
	T14_ = (NI64)0;
	T14_ = getSize__vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, T13_);
	if (nimMulInt64(T14_, IL64(8), &TM__MQdRN7fpbG7rPm4JpVVAhA_582)) { raiseOverflow(); };
	k = (NI64)(TM__MQdRN7fpbG7rPm4JpVVAhA_582);
	switch (op) {
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 52):
	{
		tyArray__duFhZXIIlrbrM62cWjNekg T16_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T17_;
		nimZeroMem((void*)T16_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
		T16_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T16_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		T16_[2] = rope__KOisMGxcPhz6CcSmxgwEQQ(s);
		T16_[3] = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T16_[4] = rope__KOisMGxcPhz6CcSmxgwEQQ(k);
		T17_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T17_ = percent___Te7bvH18PbGe5siNJ9aDTTA(T16_, 5);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T17_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 53):
	{
		tyArray__duFhZXIIlrbrM62cWjNekg T19_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T20_;
		nimZeroMem((void*)T19_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
		T19_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T19_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		T19_[2] = rope__KOisMGxcPhz6CcSmxgwEQQ(s);
		T19_[3] = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T19_[4] = rope__KOisMGxcPhz6CcSmxgwEQQ(k);
		T20_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T20_ = percent___MUaBvSw0MHw3qQi9bYavAmg(T19_, 5);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T20_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 54):
	{
		tyArray__duFhZXIIlrbrM62cWjNekg T22_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T23_;
		nimZeroMem((void*)T22_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
		T22_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T22_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		T22_[2] = rope__KOisMGxcPhz6CcSmxgwEQQ(s);
		T22_[3] = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T22_[4] = rope__KOisMGxcPhz6CcSmxgwEQQ(k);
		T23_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T23_ = percent___bWYxjLMocXEvYgQQcC63rw(T22_, 5);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T23_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 55):
	{
		tyArray__duFhZXIIlrbrM62cWjNekg T25_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T26_;
		nimZeroMem((void*)T25_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
		T25_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T25_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		T25_[2] = rope__KOisMGxcPhz6CcSmxgwEQQ(s);
		T25_[3] = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T25_[4] = rope__KOisMGxcPhz6CcSmxgwEQQ(k);
		T26_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T26_ = percent___ZpcNBrQMfioSvQNxKHhu9aw(T25_, 5);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T26_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 56):
	{
		tyArray__duFhZXIIlrbrM62cWjNekg T28_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T29_;
		nimZeroMem((void*)T28_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
		T28_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T28_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		T28_[2] = rope__KOisMGxcPhz6CcSmxgwEQQ(s);
		T28_[3] = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T28_[4] = rope__KOisMGxcPhz6CcSmxgwEQQ(k);
		T29_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T29_ = percent___gywCjjjPZobIva6liQWNLQ(T28_, 5);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T29_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 57):
	{
		tyArray__duFhZXIIlrbrM62cWjNekg T31_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T32_;
		nimZeroMem((void*)T31_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
		T31_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T31_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		T31_[2] = rope__KOisMGxcPhz6CcSmxgwEQQ(s);
		T31_[3] = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T31_[4] = rope__KOisMGxcPhz6CcSmxgwEQQ(k);
		T32_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T32_ = percent___6PDHoyz05lEjxGNE0k0ikw(T31_, 5);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T32_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 58):
	{
		tyArray__duFhZXIIlrbrM62cWjNekg T34_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T35_;
		nimZeroMem((void*)T34_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
		T34_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T34_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		T34_[2] = rope__KOisMGxcPhz6CcSmxgwEQQ(s);
		T34_[3] = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T34_[4] = rope__KOisMGxcPhz6CcSmxgwEQQ(k);
		T35_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T35_ = percent___AXGsBlGV5DoEOwPJSl9bdJw(T34_, 5);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T35_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 59):
	{
		tyArray__duFhZXIIlrbrM62cWjNekg T37_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T38_;
		nimZeroMem((void*)T37_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
		T37_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T37_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		T37_[2] = rope__KOisMGxcPhz6CcSmxgwEQQ(s);
		T37_[3] = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T37_[4] = rope__KOisMGxcPhz6CcSmxgwEQQ(k);
		T38_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T38_ = percent___ygzR9aJ6oM1bZTq4Z2lNO3Q(T37_, 5);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T38_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 60):
	{
		tyArray__duFhZXIIlrbrM62cWjNekg T40_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T41_;
		nimZeroMem((void*)T40_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
		T40_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T40_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		T40_[2] = rope__KOisMGxcPhz6CcSmxgwEQQ(s);
		T40_[3] = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T40_[4] = rope__KOisMGxcPhz6CcSmxgwEQQ(k);
		T41_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T41_ = percent___uYVc6UX8hcaEdrHosUQAOw(T40_, 5);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T41_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 61):
	{
		tyArray__duFhZXIIlrbrM62cWjNekg T43_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T44_;
		nimZeroMem((void*)T43_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
		T43_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T43_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		T43_[2] = rope__KOisMGxcPhz6CcSmxgwEQQ(s);
		T43_[3] = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T43_[4] = rope__KOisMGxcPhz6CcSmxgwEQQ(k);
		T44_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T44_ = percent___AlV8xJkjCXujAUesHxezgw(T43_, 5);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T44_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 62):
	{
		tyArray__duFhZXIIlrbrM62cWjNekg T46_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T47_;
		nimZeroMem((void*)T46_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
		T46_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T46_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		T46_[2] = rope__KOisMGxcPhz6CcSmxgwEQQ(s);
		T46_[3] = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T46_[4] = rope__KOisMGxcPhz6CcSmxgwEQQ(k);
		T47_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T47_ = percent___L9asecuKwevQN2h9cWzyv6oA(T46_, 5);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T47_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 63):
	{
		tyArray__duFhZXIIlrbrM62cWjNekg T49_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T50_;
		nimZeroMem((void*)T49_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
		T49_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T49_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		T49_[2] = rope__KOisMGxcPhz6CcSmxgwEQQ(s);
		T49_[3] = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T49_[4] = rope__KOisMGxcPhz6CcSmxgwEQQ(k);
		T50_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T50_ = percent___nZD9cadh12dcqTFsXBHbCRg(T49_, 5);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T50_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 64):
	{
		tyArray__duFhZXIIlrbrM62cWjNekg T52_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T53_;
		nimZeroMem((void*)T52_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
		T52_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T52_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		T52_[2] = rope__KOisMGxcPhz6CcSmxgwEQQ(s);
		T52_[3] = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T52_[4] = rope__KOisMGxcPhz6CcSmxgwEQQ(k);
		T53_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T53_ = percent___dz1JHdrf1p9bPB9ad2dZBtYw(T52_, 5);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T53_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 65):
	{
		tyArray__duFhZXIIlrbrM62cWjNekg T55_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T56_;
		nimZeroMem((void*)T55_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
		T55_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T55_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		T55_[2] = rope__KOisMGxcPhz6CcSmxgwEQQ(s);
		T55_[3] = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T55_[4] = rope__KOisMGxcPhz6CcSmxgwEQQ(k);
		T56_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T56_ = percent___0MUu7DVBoaLHTVUZe9bKoIA(T55_, 5);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T56_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 66):
	{
		tyArray__duFhZXIIlrbrM62cWjNekg T58_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T59_;
		nimZeroMem((void*)T58_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
		T58_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T58_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		T58_[2] = rope__KOisMGxcPhz6CcSmxgwEQQ(s);
		T58_[3] = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T58_[4] = rope__KOisMGxcPhz6CcSmxgwEQQ(k);
		T59_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T59_ = percent___29aIWEGnJW0wnITIeSKWfFg(T58_, 5);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T59_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 67):
	{
		tyArray__duFhZXIIlrbrM62cWjNekg T61_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T62_;
		nimZeroMem((void*)T61_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
		T61_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T61_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		T61_[2] = rope__KOisMGxcPhz6CcSmxgwEQQ(s);
		T61_[3] = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T61_[4] = rope__KOisMGxcPhz6CcSmxgwEQQ(k);
		T62_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T62_ = percent___n2CigWG38YNInkiL4n8g7A(T61_, 5);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T62_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 68):
	{
		tyArray__duFhZXIIlrbrM62cWjNekg T64_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T65_;
		nimZeroMem((void*)T64_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
		T64_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T64_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		T64_[2] = rope__KOisMGxcPhz6CcSmxgwEQQ(s);
		T64_[3] = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T64_[4] = rope__KOisMGxcPhz6CcSmxgwEQQ(k);
		T65_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T65_ = percent___bb3v9bDRLv9c9bcQzGH9c5H4Gw(T64_, 5);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T65_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 69):
	{
		tyArray__duFhZXIIlrbrM62cWjNekg T67_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T68_;
		nimZeroMem((void*)T67_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
		T67_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T67_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		T67_[2] = rope__KOisMGxcPhz6CcSmxgwEQQ(s);
		T67_[3] = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T67_[4] = rope__KOisMGxcPhz6CcSmxgwEQQ(k);
		T68_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T68_ = percent___tkJq8W3gQVDjuu9aT3THC6Q(T67_, 5);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T68_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 70):
	{
		tyArray__duFhZXIIlrbrM62cWjNekg T70_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T71_;
		nimZeroMem((void*)T70_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
		T70_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T70_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		T70_[2] = rope__KOisMGxcPhz6CcSmxgwEQQ(s);
		T70_[3] = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T70_[4] = rope__KOisMGxcPhz6CcSmxgwEQQ(k);
		T71_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T71_ = percent___oyQkqbRkRzo43y6iRevkaA(T70_, 5);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T71_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 71):
	{
		tyArray__duFhZXIIlrbrM62cWjNekg T73_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T74_;
		nimZeroMem((void*)T73_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
		T73_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T73_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		T73_[2] = rope__KOisMGxcPhz6CcSmxgwEQQ(s);
		T73_[3] = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T73_[4] = rope__KOisMGxcPhz6CcSmxgwEQQ(k);
		T74_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T74_ = percent___YuphtPwdJHG6BUJOVa9bX3w(T73_, 5);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T74_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 72):
	{
		tyArray__duFhZXIIlrbrM62cWjNekg T76_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T77_;
		nimZeroMem((void*)T76_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
		T76_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T76_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		T76_[2] = rope__KOisMGxcPhz6CcSmxgwEQQ(s);
		T76_[3] = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T76_[4] = rope__KOisMGxcPhz6CcSmxgwEQQ(k);
		T77_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T77_ = percent___tkJq8W3gQVDjuu9aT3THC6Q(T76_, 5);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T77_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 73):
	{
		tyArray__duFhZXIIlrbrM62cWjNekg T79_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T80_;
		nimZeroMem((void*)T79_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
		T79_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T79_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		T79_[2] = rope__KOisMGxcPhz6CcSmxgwEQQ(s);
		T79_[3] = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T79_[4] = rope__KOisMGxcPhz6CcSmxgwEQQ(k);
		T80_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T80_ = percent___oyQkqbRkRzo43y6iRevkaA(T79_, 5);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T80_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 74):
	{
		tyArray__duFhZXIIlrbrM62cWjNekg T82_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T83_;
		nimZeroMem((void*)T82_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
		T82_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T82_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		T82_[2] = rope__KOisMGxcPhz6CcSmxgwEQQ(s);
		T82_[3] = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T82_[4] = rope__KOisMGxcPhz6CcSmxgwEQQ(k);
		T83_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T83_ = percent___YuphtPwdJHG6BUJOVa9bX3w(T82_, 5);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T83_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 75):
	{
		tyArray__duFhZXIIlrbrM62cWjNekg T85_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T86_;
		nimZeroMem((void*)T85_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
		T85_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T85_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		T85_[2] = rope__KOisMGxcPhz6CcSmxgwEQQ(s);
		T85_[3] = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T85_[4] = rope__KOisMGxcPhz6CcSmxgwEQQ(k);
		T86_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T86_ = percent___EQxs5xa4FNWtMfcvmFZ9cMA(T85_, 5);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T86_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 76):
	{
		tyArray__duFhZXIIlrbrM62cWjNekg T88_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T89_;
		nimZeroMem((void*)T88_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
		T88_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T88_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		T88_[2] = rope__KOisMGxcPhz6CcSmxgwEQQ(s);
		T88_[3] = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T88_[4] = rope__KOisMGxcPhz6CcSmxgwEQQ(k);
		T89_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T89_ = percent___5YbjRZxm0g3SrdnL73aQaw(T88_, 5);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T89_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 77):
	{
		tyArray__duFhZXIIlrbrM62cWjNekg T91_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T92_;
		nimZeroMem((void*)T91_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
		T91_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T91_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		T91_[2] = rope__KOisMGxcPhz6CcSmxgwEQQ(s);
		T91_[3] = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T91_[4] = rope__KOisMGxcPhz6CcSmxgwEQQ(k);
		T92_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T92_ = percent___tkJq8W3gQVDjuu9aT3THC6Q(T91_, 5);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T92_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 78):
	{
		tyArray__duFhZXIIlrbrM62cWjNekg T94_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T95_;
		nimZeroMem((void*)T94_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
		T94_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T94_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		T94_[2] = rope__KOisMGxcPhz6CcSmxgwEQQ(s);
		T94_[3] = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T94_[4] = rope__KOisMGxcPhz6CcSmxgwEQQ(k);
		T95_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T95_ = percent___oyQkqbRkRzo43y6iRevkaA(T94_, 5);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T95_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 79):
	{
		tyArray__duFhZXIIlrbrM62cWjNekg T97_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T98_;
		nimZeroMem((void*)T97_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
		T97_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T97_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		T97_[2] = rope__KOisMGxcPhz6CcSmxgwEQQ(s);
		T97_[3] = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T97_[4] = rope__KOisMGxcPhz6CcSmxgwEQQ(k);
		T98_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T98_ = percent___YuphtPwdJHG6BUJOVa9bX3w(T97_, 5);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T98_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 80):
	{
		tyArray__duFhZXIIlrbrM62cWjNekg T100_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T101_;
		nimZeroMem((void*)T100_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
		T100_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T100_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		T100_[2] = rope__KOisMGxcPhz6CcSmxgwEQQ(s);
		T100_[3] = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T100_[4] = rope__KOisMGxcPhz6CcSmxgwEQQ(k);
		T101_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T101_ = percent___4JrnABFfF3UTQ3nO9a6mXzQ(T100_, 5);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T101_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 81):
	{
		tyArray__duFhZXIIlrbrM62cWjNekg T103_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T104_;
		nimZeroMem((void*)T103_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
		T103_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T103_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		T103_[2] = rope__KOisMGxcPhz6CcSmxgwEQQ(s);
		T103_[3] = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T103_[4] = rope__KOisMGxcPhz6CcSmxgwEQQ(k);
		T104_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T104_ = percent___bkAwkKoaz09cAQo9arQjGA0A(T103_, 5);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T104_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 82):
	{
		tyArray__duFhZXIIlrbrM62cWjNekg T106_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T107_;
		nimZeroMem((void*)T106_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
		T106_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T106_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		T106_[2] = rope__KOisMGxcPhz6CcSmxgwEQQ(s);
		T106_[3] = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T106_[4] = rope__KOisMGxcPhz6CcSmxgwEQQ(k);
		T107_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T107_ = percent___7N9bV9cjVBHs9ciAhz7vgdI9aw(T106_, 5);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T107_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 83):
	{
		tyArray__duFhZXIIlrbrM62cWjNekg T109_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T110_;
		nimZeroMem((void*)T109_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
		T109_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T109_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		T109_[2] = rope__KOisMGxcPhz6CcSmxgwEQQ(s);
		T109_[3] = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T109_[4] = rope__KOisMGxcPhz6CcSmxgwEQQ(k);
		T110_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T110_ = percent___tkJq8W3gQVDjuu9aT3THC6Q(T109_, 5);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T110_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 84):
	{
		tyArray__duFhZXIIlrbrM62cWjNekg T112_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T113_;
		nimZeroMem((void*)T112_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
		T112_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T112_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		T112_[2] = rope__KOisMGxcPhz6CcSmxgwEQQ(s);
		T112_[3] = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T112_[4] = rope__KOisMGxcPhz6CcSmxgwEQQ(k);
		T113_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T113_ = percent___oyQkqbRkRzo43y6iRevkaA(T112_, 5);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T113_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 85):
	{
		tyArray__duFhZXIIlrbrM62cWjNekg T115_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T116_;
		nimZeroMem((void*)T115_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
		T115_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T115_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		T115_[2] = rope__KOisMGxcPhz6CcSmxgwEQQ(s);
		T115_[3] = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T115_[4] = rope__KOisMGxcPhz6CcSmxgwEQQ(k);
		T116_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T116_ = percent___YuphtPwdJHG6BUJOVa9bX3w(T115_, 5);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T116_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 86):
	{
		tyArray__duFhZXIIlrbrM62cWjNekg T118_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T119_;
		nimZeroMem((void*)T118_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
		T118_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T118_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		T118_[2] = rope__KOisMGxcPhz6CcSmxgwEQQ(s);
		T118_[3] = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T118_[4] = rope__KOisMGxcPhz6CcSmxgwEQQ(k);
		T119_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T119_ = percent___tkJq8W3gQVDjuu9aT3THC6Q(T118_, 5);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T119_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 87):
	{
		tyArray__duFhZXIIlrbrM62cWjNekg T121_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T122_;
		nimZeroMem((void*)T121_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
		T121_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T121_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		T121_[2] = rope__KOisMGxcPhz6CcSmxgwEQQ(s);
		T121_[3] = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T121_[4] = rope__KOisMGxcPhz6CcSmxgwEQQ(k);
		T122_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T122_ = percent___oyQkqbRkRzo43y6iRevkaA(T121_, 5);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T122_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 88):
	{
		tyArray__duFhZXIIlrbrM62cWjNekg T124_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T125_;
		nimZeroMem((void*)T124_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
		T124_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T124_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		T124_[2] = rope__KOisMGxcPhz6CcSmxgwEQQ(s);
		T124_[3] = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T124_[4] = rope__KOisMGxcPhz6CcSmxgwEQQ(k);
		T125_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T125_ = percent___YuphtPwdJHG6BUJOVa9bX3w(T124_, 5);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T125_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 89):
	{
		tyArray__duFhZXIIlrbrM62cWjNekg T127_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T128_;
		nimZeroMem((void*)T127_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
		T127_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T127_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		T127_[2] = rope__KOisMGxcPhz6CcSmxgwEQQ(s);
		T127_[3] = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T127_[4] = rope__KOisMGxcPhz6CcSmxgwEQQ(k);
		T128_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T128_ = percent___QX9cU2fNK0jJrZNDQKnAycA(T127_, 5);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T128_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	default:
	{
		{
			NimStringDesc* T134_;
			if (!NIM_TRUE) goto LA132_;
			T134_ = (NimStringDesc*)0;
			T134_ = rawNewString((reprEnum((NI)op, (&NTI__shZhZOdbVC5nnFvcXQAImg_)) ? reprEnum((NI)op, (&NTI__shZhZOdbVC5nnFvcXQAImg_))->Sup.len : 0) + 30);
appendString(T134_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_583));
appendString(T134_, reprEnum((NI)op, (&NTI__shZhZOdbVC5nnFvcXQAImg_)));
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(T134_);
		}
		LA132_: ;
	}
	break;
	}
}
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;
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T17_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T18_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T19_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T20_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T21_;
		if (!!(((768 & (*p).options) == 0))) goto LA3_;
		nimZeroMem((void*)(&a), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
		nimZeroMem((void*)(&b), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
		{
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			if (!!(!(((*(*e)._kind_6.sons->data[((NI) 1)]).typ == NIM_NIL)))) goto LA7_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_567));
		}
		LA7_: ;
		{
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			if (!!(!(((*(*e)._kind_6.sons->data[((NI) 2)]).typ == NIM_NIL)))) goto LA11_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_568));
		}
		LA11_: ;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&a));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 2)], (&b));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA15_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA15_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_178));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		T17_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T17_ = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*(*e)._kind_6.sons->data[((NI) 1)]).typ);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T17_);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_569));
		T18_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T18_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T18_);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_286));
		if (m < 52 || m > 55){ raiseIndexError3(m, 52, 55); }
		cgFormatValue__GOaK9aDgu4cLOYhocodpf3Q((&res), opr__jSXnH9c8YRRwSdXyVdSg9acA[(m)- 52]);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_571));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		T19_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T19_ = getSimpleTypeDesc__jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*(*e)._kind_6.sons->data[((NI) 1)]).typ);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T19_);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_569));
		T20_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T20_ = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T20_);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_355));
		T21_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T21_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T21_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T26_;
			NimStringDesc* res_2;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T31_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T32_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T33_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T34_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T39_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T40_;
			if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 8))&31U)))!=0)) goto LA24_;
			T26_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T26_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA29_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA29_: ;
			res_2 = rawNewString(((NI) 80));
			res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_285));
			T31_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T31_ = rdLoc__xidyzuHqIciXbQyEOKahDg((*d));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T31_);
			res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_572));
			T32_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T32_ = rdLoc__xidyzuHqIciXbQyEOKahDg((*d));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T32_);
			res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_563));
			T33_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T33_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_573));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T33_);
			res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_478));
			T34_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T34_ = raiseInstr__3AsTOpq9crZUYBL9aD1lXBng_4(p);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T34_);
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_235));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA37_;
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA37_: ;
			T39_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T39_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
			T40_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T40_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T39_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T26_, T40_);
		}
		LA24_: ;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T45_;
			NimStringDesc* res_3;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T50_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T51_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T52_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T53_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T54_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T55_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T60_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T61_;
			if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 9))&31U)))!=0)) goto LA43_;
			T45_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T45_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA48_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA48_: ;
			res_3 = rawNewString(((NI) 80));
			res_3 = resizeString(res_3, 4);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_285));
			T50_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T50_ = rdLoc__xidyzuHqIciXbQyEOKahDg((*d));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T50_);
			res_3 = resizeString(res_3, 11);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_574));
			T51_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T51_ = rdLoc__xidyzuHqIciXbQyEOKahDg((*d));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T51_);
			res_3 = resizeString(res_3, 8);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_575));
			T52_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T52_ = rdLoc__xidyzuHqIciXbQyEOKahDg((*d));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T52_);
			res_3 = resizeString(res_3, 4);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_576));
			T53_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T53_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_577));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T53_);
			res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
			T54_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T54_ = rdLoc__xidyzuHqIciXbQyEOKahDg((*d));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T54_);
			res_3 = resizeString(res_3, 3);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_578));
			T55_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T55_ = raiseInstr__3AsTOpq9crZUYBL9aD1lXBng_4(p);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T55_);
			res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_235));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA58_;
				res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA58_: ;
			T60_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T60_ = rope__yShmEg9cffWxI7s5XzEKBow(res_3);
			T61_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T61_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T60_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T45_, T61_);
		}
		LA43_: ;
	}
	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));
	{
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		if (!!(!(((*(*e)._kind_6.sons->data[((NI) 1)]).typ == NIM_NIL)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_584));
	}
	LA3_: ;
	{
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		if (!!(!(((*(*e)._kind_6.sons->data[((NI) 2)]).typ == NIM_NIL)))) goto LA7_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_585));
	}
	LA7_: ;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&a));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 2)], (&b));
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T11_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T12_;
		tyArray__mrugoXXRZUEeG9bEXo9auBKw T15_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T16_;
		T11_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T11_ = t__XNOXh7uniWNgiq58C9bW49awcgen(a);
		T12_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T12_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(T11_, IL64(36134350135273744));
		if (!((*T12_).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 8))) goto LA13_;
		nimZeroMem((void*)T15_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
		T15_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T15_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		T16_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T16_ = percent___vTbVjc6faJqdBrTckFLLWQ(T15_, 2);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T16_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	goto LA9_;
	LA13_: ;
	{
		tyArray__mrugoXXRZUEeG9bEXo9auBKw T18_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T19_;
		nimZeroMem((void*)T18_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
		T18_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T18_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		T19_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T19_ = percent___tkJq8W3gQVDjuu9aT3THC6Q(T18_, 2);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T19_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	LA9_: ;
}
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));
	{
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		if (!!(!(((*(*e)._kind_6.sons->data[((NI) 1)]).typ == NIM_NIL)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_586));
	}
	LA3_: ;
	{
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		if (!!(!(((*(*e)._kind_6.sons->data[((NI) 2)]).typ == NIM_NIL)))) goto LA7_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_587));
	}
	LA7_: ;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&a));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 2)], (&b));
	t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*e).typ, IL64(36134350136322320));
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* res;
		tyArray__f7nG5LD47BH5K9c6mASit3g T13_;
		if (!!((((*p).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 5))&31U)))!=0))) goto LA11_;
		nimZeroMem((void*)T13_, sizeof(tyArray__f7nG5LD47BH5K9c6mASit3g));
		T13_[0] = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, (*e).typ);
		T13_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		if (m < 45 || m > 51){ raiseIndexError3(m, 45, 51); }
		T13_[2] = rope__yShmEg9cffWxI7s5XzEKBow(opr__UAWyVnvyQoWbplounFNlGg[(m)- 45]);
		T13_[3] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		res = percent___v4k9cDtOUzGyUHJbnJ7kQKg(T13_, 4);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, res, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	goto LA9_;
	LA11_: ;
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* res_3;
		NI64 sizeX60gensym108465012_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* storageX60gensym108465013_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* resultX60gensym108465014_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T38_;
		NimStringDesc* res_4;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T47_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T48_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T49_;
		NimStringDesc* res_5;
		NimStringDesc* T54_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T60_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T61_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T62_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T63_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T64_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T69_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T70_;
		tyArray__mrugoXXRZUEeG9bEXo9auBKw T94_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T95_;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T19_;
			NimStringDesc* res_2;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T24_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T25_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T26_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T31_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T32_;
			if (!(m == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 48) || m == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 49))) goto LA17_;
			T19_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T19_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA22_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA22_: ;
			res_2 = rawNewString(((NI) 80));
			res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_285));
			T24_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T24_ = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T24_);
			res_2 = resizeString(res_2, 8);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_589));
			T25_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T25_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_590));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T25_);
			res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_478));
			T26_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T26_ = raiseInstr__3AsTOpq9crZUYBL9aD1lXBng_4(p);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T26_);
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_235));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA29_;
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA29_: ;
			T31_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T31_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
			T32_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T32_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T31_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T19_, T32_);
		}
		LA17_: ;
		sizeX60gensym108465012_ = getSize__vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, t);
		{
			if (!(sizeX60gensym108465012_ < ((NI64) ((*(*(*(*p).module).g).config).target.intSize)))) goto LA35_;
			storageX60gensym108465013_ = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_381));
		}
		goto LA33_;
		LA35_: ;
		{
			storageX60gensym108465013_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, t);
		}
		LA33_: ;
		resultX60gensym108465014_ = getTempName__ao6gUnuVfQLtZ89c4kaIKfg((*p).module);
		T38_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T38_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 0));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA41_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA41_: ;
		res_4 = rawNewString(((NI) 80));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), storageX60gensym108465013_);
		res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_33));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), resultX60gensym108465014_);
		res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_104));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA45_;
			res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA45_: ;
		T47_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T47_ = rope__yShmEg9cffWxI7s5XzEKBow(res_4);
		T48_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T48_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T47_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T38_, T48_);
		T49_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T49_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA52_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA52_: ;
		res_5 = rawNewString(((NI) 80));
		res_5 = resizeString(res_5, 4);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_285));
		T54_ = (NimStringDesc*)0;
		{
			if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35))) goto LA57_;
			if (m < 45 || m > 51){ raiseIndexError3(m, 45, 51); }
			T54_ = copyString(prc64__9bTptLAKOOYdunqlEwXM6PQ[(m)- 45]);
		}
		goto LA55_;
		LA57_: ;
		{
			if (m < 45 || m > 51){ raiseIndexError3(m, 45, 51); }
			T54_ = copyString(prc__8UqUr1y9abLbrO1vSUF2CqQ[(m)- 45]);
		}
		LA55_: ;
		T60_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T60_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, T54_);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T60_);
		res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T61_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T61_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(a);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T61_);
		res_5 = resizeString(res_5, 2);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
		T62_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T62_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(b);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T62_);
		res_5 = resizeString(res_5, 3);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_601));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), resultX60gensym108465014_);
		res_5 = resizeString(res_5, 5);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_602));
		T63_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T63_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_564));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T63_);
		res_5 = resizeString(res_5, 4);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_478));
		T64_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T64_ = raiseInstr__3AsTOpq9crZUYBL9aD1lXBng_4(p);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T64_);
		res_5 = resizeString(res_5, 2);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_243));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA67_;
			res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA67_: ;
		T69_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T69_ = rope__yShmEg9cffWxI7s5XzEKBow(res_5);
		T70_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T70_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T69_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T49_, T70_);
		{
			NIM_BOOL T73_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T77_;
			NimStringDesc* res_6;
			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T82_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T83_;
			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T84_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T85_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T86_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T87_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T92_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T93_;
			T73_ = (NIM_BOOL)0;
			T73_ = (sizeX60gensym108465012_ < ((NI64) ((*(*(*(*p).module).g).config).target.intSize)));
			if (T73_) goto LA74_;
			T73_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14));
			LA74_: ;
			if (!T73_) goto LA75_;
			T77_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T77_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA80_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA80_: ;
			res_6 = rawNewString(((NI) 80));
			res_6 = resizeString(res_6, 4);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_285));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_6), resultX60gensym108465014_);
			res_6 = resizeString(res_6, 3);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_153));
			T82_ = firstOrd__hjogdnp59cMX1rwmjikBhqw((*(*(*p).module).g).config, t);
			T83_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T83_ = intLiteral__0L2LUBpuDvHdOo5Bdh2tRw(T82_);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T83_);
			res_6 = resizeString(res_6, 4);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_485));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_6), resultX60gensym108465014_);
			res_6 = resizeString(res_6, 3);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_486));
			T84_ = lastOrd__hjogdnp59cMX1rwmjikBhqw_2((*(*(*p).module).g).config, t);
			T85_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T85_ = intLiteral__0L2LUBpuDvHdOo5Bdh2tRw(T84_);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T85_);
			res_6 = resizeString(res_6, 3);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_563));
			T86_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T86_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_564));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T86_);
			res_6 = resizeString(res_6, 4);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_478));
			T87_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T87_ = raiseInstr__3AsTOpq9crZUYBL9aD1lXBng_4(p);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T87_);
			res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_235));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA90_;
				res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA90_: ;
			T92_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T92_ = rope__yShmEg9cffWxI7s5XzEKBow(res_6);
			T93_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T93_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T92_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T77_, T93_);
		}
		LA75_: ;
		res_3 = resultX60gensym108465014_;
		nimZeroMem((void*)T94_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
		T94_[0] = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, (*e).typ);
		T94_[1] = res_3;
		T95_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T95_ = percent___0ym49cR6ES8k9bYWsnh1fELA(T94_, 2);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T95_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	LA9_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, gcUsage__Faz6su3hXrHmiSECd9c9a6Pg)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	{
		NimStringDesc* T5_;
		if (!((*conf).selectedGC == ((tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw) 1))) goto LA3_;
		T5_ = (NimStringDesc*)0;
		T5_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(n, 0);
		message__mMj7lrOf3zBP9bl69amiKu5g(conf, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 41), 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;
	{
		if (!(((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 40))&63U)))!=0)) goto LA3_;
		localError__NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*e).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_603));
	}
	LA3_: ;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&a));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*e)._kind_6.sons->data[((NI) 1)]).typ, IL64(36134350144710928));
	switch ((*t).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44):
	{
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T10_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T11_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T12_;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA8_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA8_: ;
		res = rawNewString(((NI) 80));
		T10_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T10_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_604));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T10_);
		res = resizeString(res, 7);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_605));
		T11_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T11_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T11_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
		T12_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T12_, a.storage);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39):
	{
		NimStringDesc* res_2;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T18_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T19_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T20_;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA16_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA16_: ;
		res_2 = rawNewString(((NI) 80));
		T18_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T18_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_606));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T18_);
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T19_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T19_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T19_);
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
		T20_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T20_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T20_, a.storage);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1):
	{
		NimStringDesc* res_3;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T26_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T27_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T28_;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA24_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA24_: ;
		res_3 = rawNewString(((NI) 80));
		T26_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T26_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_607));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T26_);
		res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T27_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T27_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T27_);
		res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
		T28_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T28_ = rope__yShmEg9cffWxI7s5XzEKBow(res_3);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T28_, a.storage);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2):
	{
		NimStringDesc* res_4;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T34_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T35_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T36_;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA32_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA32_: ;
		res_4 = rawNewString(((NI) 80));
		T34_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T34_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_608));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T34_);
		res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T35_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T35_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T35_);
		res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
		T36_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T36_ = rope__yShmEg9cffWxI7s5XzEKBow(res_4);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T36_, a.storage);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 15):
	{
		NimStringDesc* res_5;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T42_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T43_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T44_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T45_;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA40_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA40_: ;
		res_5 = rawNewString(((NI) 80));
		T42_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T42_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_609));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T42_);
		res_5 = resizeString(res_5, 5);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_610));
		T43_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T43_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T43_);
		res_5 = resizeString(res_5, 2);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
		T44_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T44_ = genTypeInfo__BeEYMOjEPJinzbFpsfTaZg((*p).module, t, (*e).info);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T44_);
		res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
		T45_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T45_ = rope__yShmEg9cffWxI7s5XzEKBow(res_5);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T45_, a.storage);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
	{
		NimStringDesc* res_6;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T51_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T52_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T53_;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA49_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA49_: ;
		res_6 = rawNewString(((NI) 80));
		T51_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T51_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_611));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T51_);
		res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T52_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T52_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T52_);
		res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
		T53_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T53_ = rope__yShmEg9cffWxI7s5XzEKBow(res_6);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T53_, a.storage);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19):
	{
		NimStringDesc* res_7;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T59_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T60_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T61_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T62_;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA57_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA57_: ;
		res_7 = rawNewString(((NI) 80));
		T59_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T59_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_612));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_7), T59_);
		res_7 = resizeString(res_7, 1);
appendString(res_7, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T60_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T60_ = addrLoc__9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, a);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_7), T60_);
		res_7 = resizeString(res_7, 2);
appendString(res_7, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
		T61_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T61_ = genTypeInfo__BeEYMOjEPJinzbFpsfTaZg((*p).module, t, (*e).info);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_7), T61_);
		res_7 = resizeString(res_7, 1);
appendString(res_7, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
		T62_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T62_ = rope__yShmEg9cffWxI7s5XzEKBow(res_7);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T62_, a.storage);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48):
	{
		tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA b;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T64_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T65_;
		NimStringDesc* res_8;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T82_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T83_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T84_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T85_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T86_;
		nimZeroMem((void*)(&b), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
		T64_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T64_ = t__XNOXh7uniWNgiq58C9bW49awcgen(a);
		T65_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T65_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(T64_, IL64(36134350144710928));
		switch ((*T65_).kind) {
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48):
		{
			tyArray__JiWwrsTRC6xqNlGcBthSVA T67_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T68_;
			nimZeroMem((void*)T67_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
			T67_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
			T68_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T68_ = percent___L3AeZ1n9aK4C1jsBCeaCmlQ(T67_, 1);
			putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, (&b), e, T68_, a.storage);
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
		{
			tyArray__wqYjTJU9ab2ZgEFMaQc3vNA T70_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T71_;
			nimZeroMem((void*)T70_, sizeof(tyArray__wqYjTJU9ab2ZgEFMaQc3vNA));
			T70_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
			T70_[1] = lenExpr__Xfvxpx3W1zkiCqENsur9ckg(p, a);
			T70_[2] = dataField__3AsTOpq9crZUYBL9aD1lXBng_2(p);
			T71_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T71_ = percent___qE1JtEDDOvP6J49a9cv9aK1Dg(T70_, 3);
			putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, (&b), e, T71_, a.storage);
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
		{
			tyArray__mrugoXXRZUEeG9bEXo9auBKw T73_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T74_;
			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T75_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T76_;
			nimZeroMem((void*)T73_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
			T73_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
			T74_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T74_ = t__XNOXh7uniWNgiq58C9bW49awcgen(a);
			T75_ = lengthOrd__hjogdnp59cMX1rwmjikBhqw_3((*(*(*p).module).g).config, T74_);
			T73_[1] = rope__b5mr3rjXEwHVfmNLJr4cBA(T75_);
			T76_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T76_ = percent___ctvQ2lU9b9bnVVpNP4GhIo2Q(T73_, 2);
			putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, (&b), e, T76_, a.storage);
		}
		break;
		default:
		{
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*(*e)._kind_6.sons->data[((NI) 0)]).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_613));
		}
		break;
		}
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA80_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA80_: ;
		res_8 = rawNewString(((NI) 80));
		T82_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T82_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_614));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_8), T82_);
		res_8 = resizeString(res_8, 1);
appendString(res_8, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T83_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T83_ = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_8), T83_);
		res_8 = resizeString(res_8, 2);
appendString(res_8, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
		T84_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T84_ = elemType__PfgI9ap7WOnsRfFV4znQ27w_2(t);
		T85_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T85_ = genTypeInfo__BeEYMOjEPJinzbFpsfTaZg((*p).module, T84_, (*e).info);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_8), T85_);
		res_8 = resizeString(res_8, 1);
appendString(res_8, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
		T86_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T86_ = rope__yShmEg9cffWxI7s5XzEKBow(res_8);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T86_, 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):
	{
		NimStringDesc* res_9;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T92_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T93_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T94_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T95_;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA90_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA90_: ;
		res_9 = rawNewString(((NI) 80));
		T92_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T92_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_615));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_9), T92_);
		res_9 = resizeString(res_9, 1);
appendString(res_9, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T93_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T93_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_9), T93_);
		res_9 = resizeString(res_9, 2);
appendString(res_9, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
		T94_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T94_ = genTypeInfo__BeEYMOjEPJinzbFpsfTaZg((*p).module, t, (*e).info);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_9), T94_);
		res_9 = resizeString(res_9, 1);
appendString(res_9, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
		T95_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T95_ = rope__yShmEg9cffWxI7s5XzEKBow(res_9);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T95_, a.storage);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 3):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 63):
	{
		localError__NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*e).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_616));
	}
	break;
	default:
	{
		NimStringDesc* res_10;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T102_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T103_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T104_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T105_;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA100_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA100_: ;
		res_10 = rawNewString(((NI) 80));
		T102_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T102_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_615));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_10), T102_);
		res_10 = resizeString(res_10, 1);
appendString(res_10, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T103_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T103_ = addrLoc__9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, a);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_10), T103_);
		res_10 = resizeString(res_10, 2);
appendString(res_10, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
		T104_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T104_ = genTypeInfo__BeEYMOjEPJinzbFpsfTaZg((*p).module, t, (*e).info);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_10), T104_);
		res_10 = resizeString(res_10, 1);
appendString(res_10, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
		T105_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T105_ = rope__yShmEg9cffWxI7s5XzEKBow(res_10);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T105_, a.storage);
	}
	break;
	}
	gcUsage__Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, e);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, rdMType__NjNUZn30hQD5ajLFvp2bbA)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** nilCheck) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T18_;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	result = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
	T1_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = t__XNOXh7uniWNgiq58C9bW49awcgen(a);
	t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(T1_, IL64(36134350135273744));
	{
		while (1) {
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T17_;
			if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22))) goto LA3;
			{
				if (!!(((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47)))) goto LA6_;
				unsureAsgnRef((void**) (&(*nilCheck)), result);
			}
			LA6_: ;
			{
				NIM_BOOL T10_;
				NIM_BOOL T12_;
				tyArray__JiWwrsTRC6xqNlGcBthSVA T16_;
				T10_ = (NIM_BOOL)0;
				T10_ = !(((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47)));
				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) 31))&63U)))!=0);
				LA13_: ;
				T10_ = !(T12_);
				LA11_: ;
				if (!T10_) goto LA14_;
				nimZeroMem((void*)T16_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
				T16_[0] = result;
				result = percent___TbMwXzwNL7txOQADiTjwKA(T16_, 1);
			}
			LA14_: ;
			T17_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T17_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(t);
			t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(T17_, IL64(36134350135273744));
		} LA3: ;
	}
	T18_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T18_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, t);
	(void)(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) 31))&63U)))!=0);
		LA22_: ;
		if (!!(T21_)) goto LA23_;
		{
			while (1) {
				NIM_BOOL T27_;
				T27_ = (NIM_BOOL)0;
				T27_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17));
				if (!(T27_)) goto LA28_;
				if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1); }
				T27_ = !(((*t).sons->data[((NI) 0)] == NIM_NIL));
				LA28_: ;
				if (!T27_) goto LA26;
				add__yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_115));
				if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1); }
				t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*t).sons->data[((NI) 0)], IL64(36275087638268176));
			} LA26: ;
		}
	}
	LA23_: ;
	add__yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_618));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genGetTypeInfo__BKdMcfvryaJLplX0oFPcAQ_3)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T1_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	T1_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_117));
	(void)(T1_);
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	t = (*(*e)._kind_6.sons->data[((NI) 1)]).typ;
	{
		NIM_BOOL T4_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T8_;
		T4_ = (NIM_BOOL)0;
		T4_ = isFinal__YPjOkGV9axAnGR3UfLeWZ1g_5(t);
		if (T4_) goto LA5_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*e)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*e)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
		T4_ = !(eqStrings((*(*(*(*e)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_617)));
		LA5_: ;
		if (!T4_) goto LA6_;
		T8_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T8_ = genTypeInfo__BeEYMOjEPJinzbFpsfTaZg((*p).module, t, (*e).info);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T8_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	goto LA2_;
	LA6_: ;
	{
		tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* nilCheck;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T10_;
		nimZeroMem((void*)(&a), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&a));
		nilCheck = NIM_NIL;
		T10_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T10_ = rdMType__NjNUZn30hQD5ajLFvp2bbA(p, a, &nilCheck);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T10_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	LA2_: ;
}
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));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	T1_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*e)._kind_6.sons->data[((NI) 1)]).typ, IL64(36275087632017680));
	getTemp__VjOFVqypINqQv5C3ECnxbw(p, T1_, (&tmp), NIM_FALSE);
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&a));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 2)], (&b));
	genAssignment__BtucsTdHw7orsXIL75hNVg(p, tmp, a, 0);
	genAssignment__BtucsTdHw7orsXIL75hNVg(p, a, b, 0);
	genAssignment__BtucsTdHw7orsXIL75hNVg(p, b, tmp, 0);
}
N_LIB_PRIVATE N_NIMCALL(void, binaryStmt__FWB0HmRDLgoWdgSy9bfL9b5w)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* op) {
	tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T5_;
	NimStringDesc* res;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T10_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T11_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T16_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T17_;
	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_619));
	}
	LA3_: ;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&a));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 2)], (&b));
	T5_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T5_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA8_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
	}
	LA8_: ;
	res = rawNewString(((NI) 80));
	T10_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T10_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T10_);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_33));
	cgFormatValue__GOaK9aDgu4cLOYhocodpf3Q((&res), op);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_33));
	T11_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T11_ = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T11_);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_104));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA14_;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
	}
	LA14_: ;
	T16_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T16_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
	T17_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T17_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T16_);
	add__IM4kcMNkkOLJtqdEqSxR8A(T5_, T17_);
}
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).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 39))&63U)))!=0)) goto LA3_;
		result = byRefLoc__Xfvxpx3W1zkiCqENsur9ckg_2(p, 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;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T41_;
	NimStringDesc* res_3;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T46_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T51_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T52_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T53_;
	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 TM__MQdRN7fpbG7rPm4JpVVAhA_624;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = len__P89cqdlERShb9alU3iC0yj8wast(e);
		if (nimSubInt(T2_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_624)) { raiseOverflow(); };
		colontmp_ = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_624);
		i_2 = ((NI) 0);
		{
			while (1) {
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_625;
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_634;
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if (nimAddInt(i, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_625)) { raiseOverflow(); };
				if ((NU)((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_625)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_625),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_625)], (&a));
				{
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_626;
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T7_;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_627;
					NimStringDesc* res;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T14_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T15_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T16_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T21_;
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if (nimAddInt(i, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_626)) { raiseOverflow(); };
					if ((NU)((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_626)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_626),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
					T7_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T7_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*e)._kind_6.sons->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_626)]).typ, IL64(36134350144710928));
					if (!((*T7_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2))) goto LA8_;
					if (nimAddInt(L, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_627)) { raiseOverflow(); };
					L = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_627);
					{
						if (!!(!(((*p).module == NIM_NIL)))) goto LA12_;
						failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
					}
					LA12_: ;
					res = rawNewString(((NI) 80));
					T14_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T14_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_628));
					cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T14_);
					res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
					T15_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T15_ = strLoc__09c8G9aj7c6ktd6DIBLVcdnw(p, tmp);
					cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T15_);
					res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
					T16_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T16_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
					cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T16_);
					res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
					{
						if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA19_;
						res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
					}
					LA19_: ;
					T21_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T21_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
					add__IM4kcMNkkOLJtqdEqSxR8A(&appends, T21_);
				}
				goto LA5_;
				LA8_: ;
				{
					NimStringDesc* res_2;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T33_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T34_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T35_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T40_;
					{
						NI TM__MQdRN7fpbG7rPm4JpVVAhA_629;
						NI TM__MQdRN7fpbG7rPm4JpVVAhA_630;
						NI TM__MQdRN7fpbG7rPm4JpVVAhA_631;
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if (nimAddInt(i, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_629)) { raiseOverflow(); };
						if ((NU)((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_629)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_629),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
						if (!((*(*e)._kind_6.sons->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_629)]).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*(*e)._kind_6.sons->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_629)]).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22))) goto LA25_;
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if (nimAddInt(i, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_630)) { raiseOverflow(); };
						if ((NU)((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_630)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_630),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
						if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_91[(NU)((*(*e)._kind_6.sons->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_630)]).kind)>>3] &(1U<<((NU)((*(*e)._kind_6.sons->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_630)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_92)); }
						if (nimAddInt(L, ((*(*e)._kind_6.sons->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_630)])._kind_3.strVal ? (*(*e)._kind_6.sons->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_630)])._kind_3.strVal->Sup.len : 0), &TM__MQdRN7fpbG7rPm4JpVVAhA_631)) { raiseOverflow(); };
						L = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_631);
					}
					goto LA23_;
					LA25_: ;
					{
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T28_;
						T28_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T28_ = lenExpr__Xfvxpx3W1zkiCqENsur9ckg(p, a);
						add__IM4kcMNkkOLJtqdEqSxR8A(&lens, T28_);
						add__yG4AKzsBRS1W4MANDlXQeg(&lens, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_632));
					}
					LA23_: ;
					{
						if (!!(!(((*p).module == NIM_NIL)))) goto LA31_;
						failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
					}
					LA31_: ;
					res_2 = rawNewString(((NI) 80));
					T33_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T33_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_633));
					cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T33_);
					res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
					T34_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T34_ = strLoc__09c8G9aj7c6ktd6DIBLVcdnw(p, tmp);
					cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T34_);
					res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
					T35_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T35_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
					cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T35_);
					res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
					{
						if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA38_;
						res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
					}
					LA38_: ;
					T40_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T40_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
					add__IM4kcMNkkOLJtqdEqSxR8A(&appends, T40_);
				}
				LA5_: ;
				if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_634)) { raiseOverflow(); };
				i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_634);
			} LA4: ;
		}
	}
	T41_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T41_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA44_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
	}
	LA44_: ;
	res_3 = rawNewString(((NI) 80));
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), tmp.r);
	res_3 = resizeString(res_3, 3);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_103));
	T46_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T46_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_635));
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T46_);
	res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), lens);
	cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res_3), ((NI64) (L)));
	res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA49_;
		res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
	}
	LA49_: ;
	T51_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T51_ = rope__yShmEg9cffWxI7s5XzEKBow(res_3);
	T52_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T52_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T51_);
	add__IM4kcMNkkOLJtqdEqSxR8A(T41_, T52_);
	T53_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T53_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
	add__IM4kcMNkkOLJtqdEqSxR8A(T53_, appends);
	{
		if (!((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0))) goto LA56_;
		genericAssign((void*)(&(*d)), (void*)(&tmp), (&NTI__EtHNvCB0bgfu9bFjzx9cb6aA_));
	}
	goto LA54_;
	LA56_: ;
	{
		genAssignment__BtucsTdHw7orsXIL75hNVg(p, (*d), tmp, 0);
	}
	LA54_: ;
	gcUsage__Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, e);
}
N_LIB_PRIVATE N_NIMCALL(void, binaryStmtAddr__vxeaiXjty5M8JXT1fo429aQ)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* cpname) {
	tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T5_;
	NimStringDesc* res;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T10_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T11_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T12_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T17_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T18_;
	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_636));
	}
	LA3_: ;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&a));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 2)], (&b));
	T5_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T5_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA8_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
	}
	LA8_: ;
	res = rawNewString(((NI) 80));
	T10_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T10_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, cpname);
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T10_);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
	T11_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T11_ = byRefLoc__Xfvxpx3W1zkiCqENsur9ckg_2(p, a);
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T11_);
	res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
	T12_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T12_ = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T12_);
	res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA15_;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
	}
	LA15_: ;
	T17_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T17_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
	T18_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T18_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T17_);
	add__IM4kcMNkkOLJtqdEqSxR8A(T5_, T18_);
}
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** T69_;
	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;
	{
		if (!!(((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_639));
	}
	LA3_: ;
	L = ((NI) 0);
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&dest));
	{
		NI i;
		NI colontmp_;
		NI T6_;
		NI TM__MQdRN7fpbG7rPm4JpVVAhA_640;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T6_ = (NI)0;
		T6_ = len__P89cqdlERShb9alU3iC0yj8wast(e);
		if (nimSubInt(T6_, ((NI) 2), &TM__MQdRN7fpbG7rPm4JpVVAhA_640)) { raiseOverflow(); };
		colontmp_ = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_640);
		i_2 = ((NI) 0);
		{
			while (1) {
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_641;
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_647;
				if (!(i_2 < colontmp_)) goto LA8;
				i = i_2;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if (nimAddInt(i, ((NI) 2), &TM__MQdRN7fpbG7rPm4JpVVAhA_641)) { raiseOverflow(); };
				if ((NU)((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_641)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_641),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_641)], (&a));
				{
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_642;
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T11_;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_643;
					NimStringDesc* res;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T18_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T19_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T20_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T25_;
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if (nimAddInt(i, ((NI) 2), &TM__MQdRN7fpbG7rPm4JpVVAhA_642)) { raiseOverflow(); };
					if ((NU)((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_642)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_642),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
					T11_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T11_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*e)._kind_6.sons->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_642)]).typ, IL64(36134350144710928));
					if (!((*T11_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2))) goto LA12_;
					if (nimAddInt(L, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_643)) { raiseOverflow(); };
					L = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_643);
					{
						if (!!(!(((*p).module == NIM_NIL)))) goto LA16_;
						failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
					}
					LA16_: ;
					res = rawNewString(((NI) 80));
					T18_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T18_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_628));
					cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T18_);
					res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
					T19_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T19_ = strLoc__09c8G9aj7c6ktd6DIBLVcdnw(p, dest);
					cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T19_);
					res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
					T20_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T20_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
					cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T20_);
					res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
					{
						if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA23_;
						res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
					}
					LA23_: ;
					T25_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T25_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
					add__IM4kcMNkkOLJtqdEqSxR8A(&appends, T25_);
				}
				goto LA9_;
				LA12_: ;
				{
					NimStringDesc* res_2;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T37_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T38_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T39_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T44_;
					{
						NI TM__MQdRN7fpbG7rPm4JpVVAhA_644;
						NI TM__MQdRN7fpbG7rPm4JpVVAhA_645;
						NI TM__MQdRN7fpbG7rPm4JpVVAhA_646;
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if (nimAddInt(i, ((NI) 2), &TM__MQdRN7fpbG7rPm4JpVVAhA_644)) { raiseOverflow(); };
						if ((NU)((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_644)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_644),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
						if (!((*(*e)._kind_6.sons->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_644)]).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*(*e)._kind_6.sons->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_644)]).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22))) goto LA29_;
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if (nimAddInt(i, ((NI) 2), &TM__MQdRN7fpbG7rPm4JpVVAhA_645)) { raiseOverflow(); };
						if ((NU)((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_645)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_645),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
						if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_91[(NU)((*(*e)._kind_6.sons->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_645)]).kind)>>3] &(1U<<((NU)((*(*e)._kind_6.sons->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_645)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_92)); }
						if (nimAddInt(L, ((*(*e)._kind_6.sons->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_645)])._kind_3.strVal ? (*(*e)._kind_6.sons->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_645)])._kind_3.strVal->Sup.len : 0), &TM__MQdRN7fpbG7rPm4JpVVAhA_646)) { raiseOverflow(); };
						L = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_646);
					}
					goto LA27_;
					LA29_: ;
					{
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T32_;
						T32_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T32_ = lenExpr__Xfvxpx3W1zkiCqENsur9ckg(p, a);
						add__IM4kcMNkkOLJtqdEqSxR8A(&lens, T32_);
						add__yG4AKzsBRS1W4MANDlXQeg(&lens, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_632));
					}
					LA27_: ;
					{
						if (!!(!(((*p).module == NIM_NIL)))) goto LA35_;
						failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
					}
					LA35_: ;
					res_2 = rawNewString(((NI) 80));
					T37_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T37_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_633));
					cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T37_);
					res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
					T38_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T38_ = strLoc__09c8G9aj7c6ktd6DIBLVcdnw(p, dest);
					cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T38_);
					res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
					T39_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T39_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
					cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T39_);
					res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
					{
						if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA42_;
						res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
					}
					LA42_: ;
					T44_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T44_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
					add__IM4kcMNkkOLJtqdEqSxR8A(&appends, T44_);
				}
				LA9_: ;
				if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_647)) { raiseOverflow(); };
				i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_647);
			} LA8: ;
		}
	}
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T49_;
		NimStringDesc* res_3;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T54_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T55_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T60_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T61_;
		if (!(((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 39))&63U)))!=0)) goto LA47_;
		T49_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T49_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA52_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA52_: ;
		res_3 = rawNewString(((NI) 80));
		T54_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T54_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_648));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T54_);
		res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T55_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T55_ = byRefLoc__Xfvxpx3W1zkiCqENsur9ckg_2(p, dest);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T55_);
		res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), lens);
		cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res_3), ((NI64) (L)));
		res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA58_;
			res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA58_: ;
		T60_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T60_ = rope__yShmEg9cffWxI7s5XzEKBow(res_3);
		T61_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T61_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T60_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T49_, T61_);
	}
	goto LA45_;
	LA47_: ;
	{
		NimStringDesc* res_4;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T67_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T68_;
		initLoc__qlujIAW86QclHYUVxlHRiQ((&call), ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 9), e, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 3));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA65_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA65_: ;
		res_4 = rawNewString(((NI) 80));
		T67_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T67_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_649));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T67_);
		res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T68_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T68_ = rdLoc__xidyzuHqIciXbQyEOKahDg(dest);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T68_);
		res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), lens);
		cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res_4), ((NI64) (L)));
		res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
		call.r = rope__yShmEg9cffWxI7s5XzEKBow(res_4);
		genAssignment__BtucsTdHw7orsXIL75hNVg(p, dest, call, 0);
		gcUsage__Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, e);
	}
	LA45_: ;
	T69_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T69_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
	add__IM4kcMNkkOLJtqdEqSxR8A(T69_, appends);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, makePtrType__W0UItHZuQBLie8iFE3EjmA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* baseType) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	result = newType__SNqpa06pdVCLFFBR28119aQ(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21), (*baseType).owner);
	addSonSkipIntLit__2IwAMgUJgjdjR7Qyvt9bjCQ(result, baseType);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, makeAddr__oKhRC9bEKTxG5epdNiNWZ0w_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64))) goto LA3_;
		result = n;
	}
	goto LA1_;
	LA3_: ;
	{
		tyArray__jlWPjgtbdjE069arIWHC9c9bg T6_;
		nimZeroMem((void*)T6_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
		T6_[0] = n;
		result = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64), T6_, 1);
		asgnRef((void**) (&(*result).typ), makePtrType__W0UItHZuQBLie8iFE3EjmA((*n).typ));
	}
	LA1_: ;
	return result;
}
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_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		T3_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T3_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*e)._kind_6.sons->data[((NI) 0)]).typ, IL64(105553116268560));
		if (!((*T3_).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 8))) goto LA4_;
		genClosureCall__HKkL9adNEIcNHeJ0iZ6uitg_2(p, NIM_NIL, e, d);
	}
	goto LA1_;
	LA4_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		T7_ = ((*(*e)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
		if (!(T7_)) goto LA8_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*e)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*e)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
		T7_ = (((*(*(*e)._kind_6.sons->data[((NI) 0)])._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 31))&63U)))!=0);
		LA8_: ;
		if (!T7_) goto LA9_;
		genInfixCall__HKkL9adNEIcNHeJ0iZ6uitg_3(p, NIM_NIL, e, d);
	}
	goto LA1_;
	LA9_: ;
	{
		NIM_BOOL T12_;
		T12_ = (NIM_BOOL)0;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		T12_ = ((*(*e)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
		if (!(T12_)) goto LA13_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*e)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*e)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
		T12_ = (((*(*(*e)._kind_6.sons->data[((NI) 0)])._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 32))&63U)))!=0);
		LA13_: ;
		if (!T12_) goto LA14_;
		genNamedParamCall__9azKdI6vAayTOFEcJtCTo1g(p, e, d);
	}
	goto LA1_;
	LA14_: ;
	{
		genPrefixCall__HKkL9adNEIcNHeJ0iZ6uitg_4(p, NIM_NIL, e, d);
	}
	LA1_: ;
	postStmtActions__hU2pQ4yYkske4uOCGEGfMwcgen(p);
}
N_LIB_PRIVATE N_NIMCALL(void, getIntTemp__SrOtkNNSJNR1CbG2n3nFcg)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* result) {
	NI TM__MQdRN7fpbG7rPm4JpVVAhA_652;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T1_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T2_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T3_;
	NimStringDesc* res;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T12_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T13_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T14_;
	if (nimAddInt((*p).labels, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_652)) { raiseOverflow(); };
	if (TM__MQdRN7fpbG7rPm4JpVVAhA_652 < 0 || TM__MQdRN7fpbG7rPm4JpVVAhA_652 > 2147483647){ raiseOverflow(); }
	(*p).labels = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_652);
	T1_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).labels)));
	T2_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = amp___4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_146), T1_);
	unsureAsgnRef((void**) (&(*result).r), amp___Z7W1o5nPSc3ExfO5f7j1Gg(T2_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_3)));
	T3_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T3_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 0));
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA6_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
	}
	LA6_: ;
	res = rawNewString(((NI) 80));
	res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_653));
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), (*result).r);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_104));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA10_;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
	}
	LA10_: ;
	T12_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T12_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
	T13_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T13_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T12_);
	add__IM4kcMNkkOLJtqdEqSxR8A(T3_, T13_);
	(*result).k = ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 1);
	(*result).storage = ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 2);
	T14_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T14_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*(*(*p).module).g).graph, TM__MQdRN7fpbG7rPm4JpVVAhA_147, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
	unsureAsgnRef((void**) (&(*result).lode), lodeTyp__Zo4XKVi6BmwOZE51Yogqwg(T14_));
	(*result).flags = 0;
}
N_LIB_PRIVATE N_NIMCALL(void, genSeqElemAppend__BKdMcfvryaJLplX0oFPcAQ_8)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA dest;
	tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA tmpL;
	tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA call;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* seqType;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T24_;
	NimStringDesc* res_3;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T29_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T30_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T35_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T36_;
	NimStringDesc* res_4;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T41_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T42_;
	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));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&a));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 2)], (&b));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	seqType = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*e)._kind_6.sons->data[((NI) 1)]).typ, 8388608);
	initLoc__qlujIAW86QclHYUVxlHRiQ((&call), ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 9), e, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 3));
	{
		NIM_BOOL T3_;
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T11_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T12_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T13_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T14_;
		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) 31))&63U)))!=0);
		LA4_: ;
		if (!!(T3_)) goto LA5_;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA9_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA9_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		T11_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T11_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, (*(*e)._kind_6.sons->data[((NI) 1)]).typ);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T11_);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_286));
		T12_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_650));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T12_);
		res = resizeString(res, 16);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_651));
		T13_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T13_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T13_);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_463));
		T14_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = genTypeInfo__BeEYMOjEPJinzbFpsfTaZg((*p).module, seqType, (*e).info);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T14_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
		call.r = rope__yShmEg9cffWxI7s5XzEKBow(res);
	}
	goto LA1_;
	LA5_: ;
	{
		NimStringDesc* res_2;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T20_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T21_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T22_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T23_;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA18_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA18_: ;
		res_2 = rawNewString(((NI) 80));
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		T20_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T20_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, (*(*e)._kind_6.sons->data[((NI) 1)]).typ);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T20_);
		res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_286));
		T21_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T21_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_650));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T21_);
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T22_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T22_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T22_);
		res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
		T23_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T23_ = genTypeInfo__BeEYMOjEPJinzbFpsfTaZg((*p).module, seqType, (*e).info);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T23_);
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
		call.r = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
	}
	LA1_: ;
	genRefAssign__jdslQ8TsNpkTt8SvBLJjEA(p, a, call);
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	initLoc__qlujIAW86QclHYUVxlHRiQ((&dest), ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 6), (*e)._kind_6.sons->data[((NI) 2)], ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 3));
	getIntTemp__SrOtkNNSJNR1CbG2n3nFcg(p, (&tmpL));
	T24_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T24_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA27_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
	}
	LA27_: ;
	res_3 = rawNewString(((NI) 80));
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), tmpL.r);
	res_3 = resizeString(res_3, 3);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_103));
	T29_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T29_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T29_);
	res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_518));
	T30_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T30_ = lenField__3AsTOpq9crZUYBL9aD1lXBng(p);
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T30_);
	res_3 = resizeString(res_3, 3);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_654));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA33_;
		res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
	}
	LA33_: ;
	T35_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T35_ = rope__yShmEg9cffWxI7s5XzEKBow(res_3);
	T36_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T36_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T35_);
	add__IM4kcMNkkOLJtqdEqSxR8A(T24_, T36_);
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA39_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
	}
	LA39_: ;
	res_4 = rawNewString(((NI) 80));
	T41_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T41_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T41_);
	T42_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T42_ = dataField__3AsTOpq9crZUYBL9aD1lXBng_2(p);
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T42_);
	res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_157));
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), tmpL.r);
	res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_158));
	dest.r = rope__yShmEg9cffWxI7s5XzEKBow(res_4);
	genAssignment__BtucsTdHw7orsXIL75hNVg(p, dest, b, 1);
	gcUsage__Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, e);
}
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));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	a = (*e)._kind_6.sons->data[((NI) 1)];
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	b = (*e)._kind_6.sons->data[((NI) 2)];
	{
		NIM_BOOL T3_;
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T11_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T12_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*a).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*a).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22));
		if (!(T3_)) goto LA4_;
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_91[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_92)); }
		T3_ = (((*a)._kind_3.strVal ? (*a)._kind_3.strVal->Sup.len : 0) == 0);
		LA4_: ;
		if (!T3_) goto LA5_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 2)], (&x));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA9_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA9_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T11_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T11_ = lenExpr__Xfvxpx3W1zkiCqENsur9ckg(p, x);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T11_);
		res = resizeString(res, 6);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_655));
		T12_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T12_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	goto LA1_;
	LA5_: ;
	{
		NIM_BOOL T14_;
		NimStringDesc* res_2;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T22_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T23_;
		T14_ = (NIM_BOOL)0;
		T14_ = ((*b).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*b).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22));
		if (!(T14_)) goto LA15_;
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_91[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_92)); }
		T14_ = (((*b)._kind_3.strVal ? (*b)._kind_3.strVal->Sup.len : 0) == 0);
		LA15_: ;
		if (!T14_) goto LA16_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&x));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA20_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA20_: ;
		res_2 = rawNewString(((NI) 80));
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T22_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T22_ = lenExpr__Xfvxpx3W1zkiCqENsur9ckg(p, x);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T22_);
		res_2 = resizeString(res_2, 6);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_655));
		T23_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T23_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T23_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	goto LA1_;
	LA16_: ;
	{
		tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA aX60gensym114905203_;
		tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA bX60gensym114905204_;
		NimStringDesc* res_3;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T37_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T38_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T39_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T40_;
		nimZeroMem((void*)(&aX60gensym114905203_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
		nimZeroMem((void*)(&bX60gensym114905204_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
		{
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			if (!!(!(((*(*e)._kind_6.sons->data[((NI) 1)]).typ == NIM_NIL)))) goto LA27_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_656));
		}
		LA27_: ;
		{
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			if (!!(!(((*(*e)._kind_6.sons->data[((NI) 2)]).typ == NIM_NIL)))) goto LA31_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_657));
		}
		LA31_: ;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&aX60gensym114905203_));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 2)], (&bX60gensym114905204_));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA35_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA35_: ;
		res_3 = rawNewString(((NI) 80));
		T37_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T37_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_658));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T37_);
		res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T38_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T38_ = rdLoc__xidyzuHqIciXbQyEOKahDg(aX60gensym114905203_);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T38_);
		res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
		T39_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T39_ = rdLoc__xidyzuHqIciXbQyEOKahDg(bX60gensym114905204_);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T39_);
		res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
		T40_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T40_ = rope__yShmEg9cffWxI7s5XzEKBow(res_3);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T40_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	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;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*e)._kind_6.sons->data[((NI) 1)]).typ, IL64(36134350136322320));
	{
		NIM_BOOL T3_;
		tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA aX60gensym109010017_;
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T11_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T12_;
		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_;
		nimZeroMem((void*)(&aX60gensym109010017_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&aX60gensym109010017_));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA9_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA9_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T11_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T11_ = rdLoc__xidyzuHqIciXbQyEOKahDg(aX60gensym109010017_);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T11_);
		res = resizeString(res, 12);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_662));
		T12_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T12_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	goto LA1_;
	LA5_: ;
	{
		tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA aX60gensym109040203_;
		NimStringDesc* res_2;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T18_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T19_;
		nimZeroMem((void*)(&aX60gensym109040203_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&aX60gensym109040203_));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA16_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA16_: ;
		res_2 = rawNewString(((NI) 80));
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T18_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T18_ = rdLoc__xidyzuHqIciXbQyEOKahDg(aX60gensym109040203_);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T18_);
		res_2 = resizeString(res_2, 6);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_655));
		T19_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T19_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T19_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genEnumToStr__BKdMcfvryaJLplX0oFPcAQ_11)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* toStrProc;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*e)._kind_6.sons->data[((NI) 1)]).typ, IL64(36134350136322320));
	toStrProc = NIM_NIL;
	{
		NI idx;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* p_2;
		NI i;
		NI L;
		NI T2_;
		idx = (NI)0;
		p_2 = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		i = ((NI) 0);
		T2_ = ((*t).methods ? (*t).methods->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_669;
				if (!(i < L)) goto LA4;
				if ((NU)(i) >= (NU)((*t).methods ? (*t).methods->Sup.len : 0)){ raiseIndexError2(i,((*t).methods ? (*t).methods->Sup.len : 0)-1); }
				idx = (*t).methods->data[i].Field0;
				if ((NU)(i) >= (NU)((*t).methods ? (*t).methods->Sup.len : 0)){ raiseIndexError2(i,((*t).methods ? (*t).methods->Sup.len : 0)-1); }
				p_2 = (*t).methods->data[i].Field1;
				{
					if (!(idx == ((NI) -4))) goto LA7_;
					toStrProc = p_2;
					goto LA1;
				}
				LA7_: ;
				if (nimAddInt(i, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_669)) { raiseOverflow(); };
				i = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_669);
				{
					NI T11_;
					T11_ = ((*t).methods ? (*t).methods->Sup.len : 0);
					if (!!((T11_ == L))) goto LA12_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_26));
				}
				LA12_: ;
			} LA4: ;
		}
	} LA1: ;
	{
		tyTuple__zwpS6d6iewrdlBSTNFoyVA T18_;
		NI T19_;
		if (!(toStrProc == NIM_NIL)) goto LA16_;
		toStrProc = genEnumToStrProc__1dNAvAAONCZJhs8N6saOAw(t, (*e).info, (*(*(*p).module).g).graph);
		nimZeroMem((void*)(&T18_), sizeof(tyTuple__zwpS6d6iewrdlBSTNFoyVA));
		T18_.Field0 = ((NI) -4);
		T18_.Field1 = toStrProc;
		asgnRef((void**) (&(*t).methods), (tySequence__MvZmat48bhe9b6x9aUD58D5Q*) incrSeqV3((TGenericSeq*)((*t).methods), (&NTI__MvZmat48bhe9b6x9aUD58D5Q_)));
		T19_ = (*t).methods->Sup.len++;
		(*t).methods->data[T19_].Field0 = T18_.Field0;
		asgnRef((void**) (&(*t).methods->data[T19_].Field1), T18_.Field1);
	}
	LA16_: ;
	n = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ_2(e);
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(toStrProc));
	expr__8mAL9ckajemzgfLPfeZVNoQ(p, n, 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) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T9_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T10_;
		if (!(((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 40))&63U)))!=0)) goto LA3_;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA7_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA7_: ;
		res = rawNewString(((NI) 80));
		T9_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T9_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_672));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T9_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), a);
		res = resizeString(res, 9);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_673));
		T10_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T10_ = genTypeInfo2Name__HPYuz9bvVOGBv0EUX9c74xhg((*p).module, dest);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T10_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
		result = rope__yShmEg9cffWxI7s5XzEKBow(res);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* ti;
		ti = genTypeInfo__BeEYMOjEPJinzbFpsfTaZg((*p).module, dest, info);
		{
			NIM_BOOL T14_;
			NIM_BOOL T16_;
			tyArray__mrugoXXRZUEeG9bEXo9auBKw T20_;
			T14_ = (NIM_BOOL)0;
			T14_ = (((*dest).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 2))&63U)))!=0);
			if (T14_) goto LA15_;
			T16_ = (NIM_BOOL)0;
			T16_ = (((*(*p).module).flags &(1U<<((NU)(((tyEnum_CodegenFlag__9c7EibnXBApMXwrQsaaMb6Q) 5))&7U)))!=0);
			if (!(T16_)) goto LA17_;
			T16_ = !((((*dest).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 5))&63U)))!=0));
			LA17_: ;
			T14_ = T16_;
			LA15_: ;
			if (!T14_) goto LA18_;
			nimZeroMem((void*)T20_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
			T20_[0] = a;
			T20_[1] = ti;
			result = percent___s0lnM9cZDB9bOREa4Fx1leBw(T20_, 2);
		}
		goto LA12_;
		LA18_: ;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T22_;
			NI TM__MQdRN7fpbG7rPm4JpVVAhA_674;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* cache;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T23_;
			tyArray__JiWwrsTRC6xqNlGcBthSVA T24_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T25_;
			NimStringDesc* res_2;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T30_;
			T22_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T22_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_117));
			(void)(T22_);
			if (nimAddInt((*(*p).module).labels, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_674)) { raiseOverflow(); };
			if (TM__MQdRN7fpbG7rPm4JpVVAhA_674 < 0 || TM__MQdRN7fpbG7rPm4JpVVAhA_674 > 2147483647){ raiseOverflow(); }
			(*(*p).module).labels = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_674);
			T23_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T23_ = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*(*p).module).labels)));
			cache = amp___4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_675), T23_);
			nimZeroMem((void*)T24_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
			T24_[0] = cache;
			T25_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T25_ = percent___aT7p9bNEmP3LxrK3OhspnSw(T24_, 1);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*(*p).module).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], T25_);
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA28_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA28_: ;
			res_2 = rawNewString(((NI) 80));
			T30_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T30_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_676));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T30_);
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), a);
			res_2 = resizeString(res_2, 9);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_673));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), ti);
			res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), cache);
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
			result = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
		}
		LA12_: ;
	}
	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* T21_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, x, (&a));
	dest = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(typ, IL64(36275087638309136));
	r = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
	nilCheck = NIM_NIL;
	T1_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = t__XNOXh7uniWNgiq58C9bW49awcgen(a);
	t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(T1_, IL64(36134350135273744));
	{
		while (1) {
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T20_;
			if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22))) goto LA3;
			{
				if (!!(((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47)))) goto LA6_;
				nilCheck = r;
			}
			LA6_: ;
			{
				NIM_BOOL T10_;
				NIM_BOOL T12_;
				NimStringDesc* res;
				T10_ = (NIM_BOOL)0;
				T10_ = !(((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47)));
				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) 31))&63U)))!=0);
				LA13_: ;
				T10_ = !(T12_);
				LA11_: ;
				if (!T10_) goto LA14_;
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA18_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA18_: ;
				res = rawNewString(((NI) 80));
				res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_90));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), r);
				res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
				r = rope__yShmEg9cffWxI7s5XzEKBow(res);
			}
			LA14_: ;
			T20_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T20_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(t);
			t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(T20_, IL64(36134350135273744));
		} LA3: ;
	}
	T21_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T21_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, t);
	(void)(T21_);
	{
		NIM_BOOL T24_;
		T24_ = (NIM_BOOL)0;
		T24_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands__VH3ghgQVwLSg3krOAoXigw) 2));
		if (T24_) goto LA25_;
		T24_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 31))&63U)))!=0);
		LA25_: ;
		if (!!(T24_)) goto LA26_;
		{
			while (1) {
				NIM_BOOL T30_;
				tyArray__qTjAvTvKF9anytN1At69aJMQ T32_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T33_;
				T30_ = (NIM_BOOL)0;
				T30_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17));
				if (!(T30_)) goto LA31_;
				if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1); }
				T30_ = !(((*t).sons->data[((NI) 0)] == NIM_NIL));
				LA31_: ;
				if (!T30_) goto LA29;
				nimZeroMem((void*)T32_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
				T33_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T33_ = percent___Jx78R9a9anGvjjocCaP8YgIg(T32_, 0);
				add__IM4kcMNkkOLJtqdEqSxR8A(&r, T33_);
				if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1); }
				t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*t).sons->data[((NI) 0)], IL64(36275087638268176));
			} LA29: ;
		}
	}
	LA26_: ;
	{
		NIM_BOOL T36_;
		T36_ = (NIM_BOOL)0;
		T36_ = isObjLackingTypeField__kS4QQNg40ThwD2ps8HD9aQgcgen(t);
		if (!T36_) goto LA37_;
		globalError__NF6kBGchnhQYPbCedyefVA_2((*(*(*p).module).g).config, (*x).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_670));
	}
	LA37_: ;
	{
		NimStringDesc* res_2;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T47_;
		if (!!((nilCheck == NIM_NIL))) goto LA41_;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA45_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA45_: ;
		res_2 = rawNewString(((NI) 80));
		res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_178));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), nilCheck);
		res_2 = resizeString(res_2, 6);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_671));
		T47_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T47_ = genOfHelper__syG9ah9cBD4IpDknTLKkLglQ(p, dest, r, (*x).info);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T47_);
		res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_355));
		r = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
	}
	goto LA39_;
	LA41_: ;
	{
		NimStringDesc* res_3;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T53_;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA51_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA51_: ;
		res_3 = rawNewString(((NI) 80));
		res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T53_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T53_ = genOfHelper__syG9ah9cBD4IpDknTLKkLglQ(p, dest, r, (*x).info);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T53_);
		res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
		r = rope__yShmEg9cffWxI7s5XzEKBow(res_3);
	}
	LA39_: ;
	putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, x, r, a.storage);
}
N_LIB_PRIVATE N_NIMCALL(void, genOf__8mAL9ckajemzgfLPfeZVNoQ_3)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 2)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	genOf__uDNhebNf5Eggw4ZZsc4T9cg(p, (*n)._kind_6.sons->data[((NI) 1)], (*(*n)._kind_6.sons->data[((NI) 2)]).typ, d);
}
N_LIB_PRIVATE N_NIMCALL(void, rawGenNew__9cYWmo3ycKMiJEsDvNXZAQg)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* a, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* sizeExpr, NIM_BOOL needsInit) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* sizeExpr_2;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
	tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* refType;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* bt;
	sizeExpr_2 = sizeExpr;
	typ = t__XNOXh7uniWNgiq58C9bW49awcgen((*a));
	nimZeroMem((void*)(&b), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
	initLoc__qlujIAW86QclHYUVxlHRiQ((&b), ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 6), (*a).lode, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 3));
	refType = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(typ, IL64(36134350135273744));
	{
		if (!!(((*refType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_677));
	}
	LA3_: ;
	bt = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(refType);
	{
		tyArray__JiWwrsTRC6xqNlGcBthSVA T9_;
		if (!(sizeExpr_2 == 0)) goto LA7_;
		nimZeroMem((void*)T9_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
		T9_[0] = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, bt);
		sizeExpr_2 = percent___mV75vMLuQ8rrQEUzNz6llA(T9_, 1);
	}
	LA7_: ;
	{
		if (!(((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 40))&63U)))!=0)) goto LA12_;
		{
			NimStringDesc* res;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T22_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T23_;
			if (!needsInit) goto LA16_;
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA20_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA20_: ;
			res = rawNewString(((NI) 80));
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
			T22_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T22_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, typ);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T22_);
			res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_286));
			T23_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T23_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_678));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T23_);
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), sizeExpr_2);
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
			b.r = rope__yShmEg9cffWxI7s5XzEKBow(res);
		}
		goto LA14_;
		LA16_: ;
		{
			NimStringDesc* res_2;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T29_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T30_;
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA27_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA27_: ;
			res_2 = rawNewString(((NI) 80));
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
			T29_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T29_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, typ);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T29_);
			res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_286));
			T30_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T30_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_679));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T30_);
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), sizeExpr_2);
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
			b.r = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
		}
		LA14_: ;
		genAssignment__BtucsTdHw7orsXIL75hNVg(p, (*a), b, 0);
	}
	goto LA10_;
	LA12_: ;
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* ti;
		ti = genTypeInfo__BeEYMOjEPJinzbFpsfTaZg((*p).module, typ, (*(*a).lode).info);
		{
			NIM_BOOL T34_;
			NIM_BOOL T36_;
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA f;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T45_;
			tyArray__mrugoXXRZUEeG9bEXo9auBKw T46_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T47_;
			T34_ = (NIM_BOOL)0;
			T34_ = !(((*bt).attachedOps[(((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0))- 0] == NIM_NIL));
			if (!(T34_)) goto LA35_;
			T36_ = (NIM_BOOL)0;
			T36_ = isTrivialProc__0ARm8KufT2VWgot8ref79bwcgen((*bt).attachedOps[(((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0))- 0]);
			T34_ = !(T36_);
			LA35_: ;
			if (!T34_) goto LA37_;
			{
				NIM_BOOL T41_;
				T41_ = (NIM_BOOL)0;
				T41_ = ((*(*bt).attachedOps[(((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0))- 0]).typ == NIM_NIL);
				if (T41_) goto LA42_;
				T41_ = !(((*(*(*bt).attachedOps[(((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0))- 0]).typ).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 0)));
				LA42_: ;
				if (!T41_) goto LA43_;
				localError__NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*(*a).lode).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_680));
			}
			LA43_: ;
			nimZeroMem((void*)(&f), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			T45_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T45_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*bt).attachedOps[(((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0))- 0]);
			initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, T45_, (&f));
			nimZeroMem((void*)T46_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
			T46_[0] = ti;
			T46_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(f);
			T47_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T47_ = percent___jhVz7tKuf0heLM2D3nL0gw(T46_, 2);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*(*p).module).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T47_);
		}
		LA37_: ;
		{
			NIM_BOOL T50_;
			T50_ = (NIM_BOOL)0;
			T50_ = ((*a).storage == ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 3));
			if (!(T50_)) goto LA51_;
			T50_ = usesWriteBarrier__TzsgO9bY9cwAf4hwmbs7dTmg_2options((*(*(*p).module).g).config);
			LA51_: ;
			if (!T50_) goto LA52_;
			{
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T56_;
				NIM_BOOL T57_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T60_;
				NimStringDesc* res_3;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T65_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T66_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T67_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T68_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T73_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T74_;
				T56_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T56_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*a));
				T57_ = (NIM_BOOL)0;
				T57_ = canFormAcycle__IVXYI9cxSeivThgKCncHRnA_3(T56_);
				if (!T57_) goto LA58_;
				T60_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T60_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA63_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA63_: ;
				res_3 = rawNewString(((NI) 80));
				res_3 = resizeString(res_3, 4);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_285));
				T65_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T65_ = rdLoc__xidyzuHqIciXbQyEOKahDg((*a));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T65_);
				res_3 = resizeString(res_3, 4);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_576));
				T66_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T66_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_681));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T66_);
				res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
				T67_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T67_ = rdLoc__xidyzuHqIciXbQyEOKahDg((*a));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T67_);
				res_3 = resizeString(res_3, 3);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_578));
				T68_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T68_ = rdLoc__xidyzuHqIciXbQyEOKahDg((*a));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T68_);
				res_3 = resizeString(res_3, 13);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_682));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA71_;
					res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA71_: ;
				T73_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T73_ = rope__yShmEg9cffWxI7s5XzEKBow(res_3);
				T74_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T74_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T73_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T60_, T74_);
			}
			goto LA54_;
			LA58_: ;
			{
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T76_;
				NimStringDesc* res_4;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T81_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T82_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T83_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T84_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T89_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T90_;
				T76_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T76_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA79_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA79_: ;
				res_4 = rawNewString(((NI) 80));
				res_4 = resizeString(res_4, 4);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_285));
				T81_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T81_ = rdLoc__xidyzuHqIciXbQyEOKahDg((*a));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T81_);
				res_4 = resizeString(res_4, 4);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_576));
				T82_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T82_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_287));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T82_);
				res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
				T83_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T83_ = rdLoc__xidyzuHqIciXbQyEOKahDg((*a));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T83_);
				res_4 = resizeString(res_4, 3);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_578));
				T84_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T84_ = rdLoc__xidyzuHqIciXbQyEOKahDg((*a));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T84_);
				res_4 = resizeString(res_4, 13);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_682));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA87_;
					res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA87_: ;
				T89_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T89_ = rope__yShmEg9cffWxI7s5XzEKBow(res_4);
				T90_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T90_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T89_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T76_, T90_);
			}
			LA54_: ;
			{
				NimStringDesc* res_5;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T99_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T100_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T101_;
				NimStringDesc* res_6;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T106_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T107_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T108_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T113_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T114_;
				if (!((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw) 10))) goto LA93_;
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA97_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA97_: ;
				res_5 = rawNewString(((NI) 80));
				res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
				T99_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T99_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, typ);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T99_);
				res_5 = resizeString(res_5, 2);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_286));
				T100_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T100_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_683));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T100_);
				res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), ti);
				res_5 = resizeString(res_5, 2);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), sizeExpr_2);
				res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
				b.r = rope__yShmEg9cffWxI7s5XzEKBow(res_5);
				T101_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T101_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA104_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA104_: ;
				res_6 = rawNewString(((NI) 80));
				T106_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T106_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_277));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T106_);
				res_6 = resizeString(res_6, 10);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_276));
				T107_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T107_ = addrLoc__9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, (*a));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T107_);
				res_6 = resizeString(res_6, 2);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
				T108_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T108_ = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T108_);
				res_6 = resizeString(res_6, 2);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA111_;
					res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA111_: ;
				T113_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T113_ = rope__yShmEg9cffWxI7s5XzEKBow(res_6);
				T114_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T114_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T113_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T101_, T114_);
			}
			goto LA91_;
			LA93_: ;
			{
				NimStringDesc* res_7;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T120_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T121_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T122_;
				NimStringDesc* res_8;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T127_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T128_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T133_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T134_;
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA118_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA118_: ;
				res_7 = rawNewString(((NI) 80));
				res_7 = resizeString(res_7, 1);
appendString(res_7, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
				T120_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T120_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, typ);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_7), T120_);
				res_7 = resizeString(res_7, 2);
appendString(res_7, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_286));
				T121_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T121_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_684));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_7), T121_);
				res_7 = resizeString(res_7, 1);
appendString(res_7, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_7), ti);
				res_7 = resizeString(res_7, 2);
appendString(res_7, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_7), sizeExpr_2);
				res_7 = resizeString(res_7, 1);
appendString(res_7, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
				b.r = rope__yShmEg9cffWxI7s5XzEKBow(res_7);
				T122_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T122_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA125_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA125_: ;
				res_8 = rawNewString(((NI) 80));
				T127_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T127_ = rdLoc__xidyzuHqIciXbQyEOKahDg((*a));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_8), T127_);
				res_8 = resizeString(res_8, 3);
appendString(res_8, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_103));
				T128_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T128_ = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_8), T128_);
				res_8 = resizeString(res_8, 1);
appendString(res_8, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_104));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA131_;
					res_8 = resizeString(res_8, 1);
appendString(res_8, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA131_: ;
				T133_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T133_ = rope__yShmEg9cffWxI7s5XzEKBow(res_8);
				T134_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T134_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T133_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T122_, T134_);
			}
			LA91_: ;
		}
		goto LA48_;
		LA52_: ;
		{
			NimStringDesc* res_9;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T140_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T141_;
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA138_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA138_: ;
			res_9 = rawNewString(((NI) 80));
			res_9 = resizeString(res_9, 1);
appendString(res_9, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
			T140_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T140_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, typ);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_9), T140_);
			res_9 = resizeString(res_9, 2);
appendString(res_9, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_286));
			T141_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T141_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_683));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_9), T141_);
			res_9 = resizeString(res_9, 1);
appendString(res_9, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_9), ti);
			res_9 = resizeString(res_9, 2);
appendString(res_9, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_9), sizeExpr_2);
			res_9 = resizeString(res_9, 1);
appendString(res_9, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
			b.r = rope__yShmEg9cffWxI7s5XzEKBow(res_9);
			genAssignment__BtucsTdHw7orsXIL75hNVg(p, (*a), b, 0);
		}
		LA48_: ;
	}
	LA10_: ;
	genObjectInit__UANnSFbuKD1BS6RrMbZs2A(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2), bt, a, ((tyEnum_ObjConstrMode__9agQ3x8C5KfK9c9a3uY9abfUTw) 1));
}
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));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&a));
	{
		NI T3_;
		tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA se;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T6_;
		T3_ = (NI)0;
		T3_ = len__P89cqdlERShb9alU3iC0yj8wast(e);
		if (!(T3_ == ((NI) 3))) goto LA4_;
		nimZeroMem((void*)(&se), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 2)], (&se));
		T6_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T6_ = rdLoc__xidyzuHqIciXbQyEOKahDg(se);
		rawGenNew__9cYWmo3ycKMiJEsDvNXZAQg(p, (&a), T6_, NIM_TRUE);
	}
	goto LA1_;
	LA4_: ;
	{
		rawGenNew__9cYWmo3ycKMiJEsDvNXZAQg(p, (&a), NIM_NIL, NIM_TRUE);
	}
	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_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T2_;
	NimStringDesc* res;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T7_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T8_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T9_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T10_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T11_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T12_;
	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;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	refType = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*e)._kind_6.sons->data[((NI) 1)]).typ, IL64(36134350144710928));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&a));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 2)], (&f));
	initLoc__qlujIAW86QclHYUVxlHRiQ((&b), ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 6), a.lode, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 3));
	ti = genTypeInfo__BeEYMOjEPJinzbFpsfTaZg((*p).module, refType, (*e).info);
	nimZeroMem((void*)T1_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
	T1_[0] = ti;
	T1_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(f);
	T2_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = percent___jhVz7tKuf0heLM2D3nL0gw(T1_, 2);
	add__IM4kcMNkkOLJtqdEqSxR8A(&(*(*p).module).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T2_);
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA5_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
	}
	LA5_: ;
	res = rawNewString(((NI) 80));
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
	T7_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T7_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, refType);
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T7_);
	res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_286));
	T8_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T8_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_683));
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T8_);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), ti);
	res = resizeString(res, 9);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_113));
	T9_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T9_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(refType);
	T10_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T10_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(T9_, IL64(36134350136322320));
	T11_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T11_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, T10_);
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T11_);
	res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_355));
	b.r = rope__yShmEg9cffWxI7s5XzEKBow(res);
	genAssignment__BtucsTdHw7orsXIL75hNVg(p, a, b, 0);
	T12_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T12_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(refType);
	bt = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(T12_, IL64(36134350136322320));
	genObjectInit__UANnSFbuKD1BS6RrMbZs2A(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2), bt, (&a), ((tyEnum_ObjConstrMode__9agQ3x8C5KfK9c9a3uY9abfUTw) 1));
	gcUsage__Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, e);
}
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_;
	tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA call;
	T1_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = t__XNOXh7uniWNgiq58C9bW49awcgen(dest);
	seqtype = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(T1_, IL64(36134350144710928));
	nimZeroMem((void*)(&call), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
	initLoc__qlujIAW86QclHYUVxlHRiQ((&call), ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 6), dest.lode, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 3));
	{
		NIM_BOOL T4_;
		T4_ = (NIM_BOOL)0;
		T4_ = (dest.storage == ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 3));
		if (!(T4_)) goto LA5_;
		T4_ = usesWriteBarrier__TzsgO9bY9cwAf4hwmbs7dTmg_2options((*(*(*p).module).g).config);
		LA5_: ;
		if (!T4_) goto LA6_;
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T10_;
			NIM_BOOL T11_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T14_;
			NimStringDesc* res;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T19_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T20_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T21_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T22_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T27_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T28_;
			T10_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T10_ = t__XNOXh7uniWNgiq58C9bW49awcgen(dest);
			T11_ = (NIM_BOOL)0;
			T11_ = canFormAcycle__IVXYI9cxSeivThgKCncHRnA_3(T10_);
			if (!T11_) goto LA12_;
			T14_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T14_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA17_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA17_: ;
			res = rawNewString(((NI) 80));
			res = resizeString(res, 4);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_285));
			T19_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T19_ = rdLoc__xidyzuHqIciXbQyEOKahDg(dest);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T19_);
			res = resizeString(res, 4);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_576));
			T20_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T20_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_681));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T20_);
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
			T21_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T21_ = rdLoc__xidyzuHqIciXbQyEOKahDg(dest);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T21_);
			res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_578));
			T22_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T22_ = rdLoc__xidyzuHqIciXbQyEOKahDg(dest);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T22_);
			res = resizeString(res, 13);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_682));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA25_;
				res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA25_: ;
			T27_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T27_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
			T28_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T28_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T27_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T14_, T28_);
		}
		goto LA8_;
		LA12_: ;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T30_;
			NimStringDesc* res_2;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T35_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T36_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T37_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T38_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T43_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T44_;
			T30_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T30_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA33_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA33_: ;
			res_2 = rawNewString(((NI) 80));
			res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_285));
			T35_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T35_ = rdLoc__xidyzuHqIciXbQyEOKahDg(dest);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T35_);
			res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_576));
			T36_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T36_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_287));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T36_);
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
			T37_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T37_ = rdLoc__xidyzuHqIciXbQyEOKahDg(dest);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T37_);
			res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_578));
			T38_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T38_ = rdLoc__xidyzuHqIciXbQyEOKahDg(dest);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T38_);
			res_2 = resizeString(res_2, 13);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_682));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA41_;
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA41_: ;
			T43_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T43_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
			T44_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T44_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T43_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T30_, T44_);
		}
		LA8_: ;
		{
			if (!!(lenIsZero)) goto LA47_;
			{
				NimStringDesc* res_3;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T57_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T58_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T59_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T60_;
				NimStringDesc* res_4;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T65_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T66_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T67_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T72_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T73_;
				if (!((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw) 10))) goto LA51_;
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA55_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA55_: ;
				res_3 = rawNewString(((NI) 80));
				res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
				T57_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T57_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, seqtype);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T57_);
				res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_286));
				T58_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T58_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_688));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T58_);
				res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
				T59_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T59_ = genTypeInfo__BeEYMOjEPJinzbFpsfTaZg((*p).module, seqtype, (*dest.lode).info);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T59_);
				res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), length);
				res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
				call.r = rope__yShmEg9cffWxI7s5XzEKBow(res_3);
				T60_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T60_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA63_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA63_: ;
				res_4 = rawNewString(((NI) 80));
				T65_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T65_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_277));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T65_);
				res_4 = resizeString(res_4, 10);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_276));
				T66_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T66_ = addrLoc__9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, dest);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T66_);
				res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
				T67_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T67_ = rdLoc__xidyzuHqIciXbQyEOKahDg(call);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T67_);
				res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA70_;
					res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA70_: ;
				T72_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T72_ = rope__yShmEg9cffWxI7s5XzEKBow(res_4);
				T73_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T73_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T72_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T60_, T73_);
			}
			goto LA49_;
			LA51_: ;
			{
				NimStringDesc* res_5;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T79_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T80_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T81_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T82_;
				NimStringDesc* res_6;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T87_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T88_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T93_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T94_;
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA77_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA77_: ;
				res_5 = rawNewString(((NI) 80));
				res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
				T79_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T79_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, seqtype);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T79_);
				res_5 = resizeString(res_5, 2);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_286));
				T80_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T80_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_689));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T80_);
				res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
				T81_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T81_ = genTypeInfo__BeEYMOjEPJinzbFpsfTaZg((*p).module, seqtype, (*dest.lode).info);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T81_);
				res_5 = resizeString(res_5, 2);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), length);
				res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
				call.r = rope__yShmEg9cffWxI7s5XzEKBow(res_5);
				T82_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T82_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA85_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA85_: ;
				res_6 = rawNewString(((NI) 80));
				T87_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T87_ = rdLoc__xidyzuHqIciXbQyEOKahDg(dest);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T87_);
				res_6 = resizeString(res_6, 3);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_103));
				T88_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T88_ = rdLoc__xidyzuHqIciXbQyEOKahDg(call);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T88_);
				res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_104));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA91_;
					res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA91_: ;
				T93_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T93_ = rope__yShmEg9cffWxI7s5XzEKBow(res_6);
				T94_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T94_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T93_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T82_, T94_);
			}
			LA49_: ;
		}
		LA47_: ;
	}
	goto LA2_;
	LA6_: ;
	{
		{
			if (!lenIsZero) goto LA98_;
			call.r = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_266));
		}
		goto LA96_;
		LA98_: ;
		{
			NimStringDesc* res_7;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T105_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T106_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T107_;
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA103_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA103_: ;
			res_7 = rawNewString(((NI) 80));
			res_7 = resizeString(res_7, 1);
appendString(res_7, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
			T105_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T105_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, seqtype);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_7), T105_);
			res_7 = resizeString(res_7, 2);
appendString(res_7, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_286));
			T106_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T106_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_688));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_7), T106_);
			res_7 = resizeString(res_7, 1);
appendString(res_7, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
			T107_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T107_ = genTypeInfo__BeEYMOjEPJinzbFpsfTaZg((*p).module, seqtype, (*dest.lode).info);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_7), T107_);
			res_7 = resizeString(res_7, 2);
appendString(res_7, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_7), length);
			res_7 = resizeString(res_7, 1);
appendString(res_7, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
			call.r = rope__yShmEg9cffWxI7s5XzEKBow(res_7);
		}
		LA96_: ;
		genAssignment__BtucsTdHw7orsXIL75hNVg(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));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&a));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 2)], (&b));
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* seqtype;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T5_;
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T10_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T11_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T12_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T13_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T14_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T15_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T16_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T17_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T22_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T23_;
		if (!(((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 39))&63U)))!=0)) goto LA3_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		seqtype = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*e)._kind_6.sons->data[((NI) 1)]).typ, IL64(36134350144710928));
		T5_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T5_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA8_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA8_: ;
		res = rawNewString(((NI) 80));
		T10_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T10_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T10_);
		res = resizeString(res, 7);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_685));
		T11_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T11_ = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T11_);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_154));
		T12_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T12_);
		res = resizeString(res, 6);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_686));
		T13_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T13_ = getSeqPayloadType__HPYuz9bvVOGBv0EUX9c74xhg_2((*p).module, seqtype);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T13_);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_441));
		T14_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_687));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T14_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T15_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T15_ = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T15_);
		res = resizeString(res, 9);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_113));
		T16_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T16_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(seqtype);
		T17_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T17_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, T16_);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T17_);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_114));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA20_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA20_: ;
		T22_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T22_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
		T23_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T23_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T22_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T5_, T23_);
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL lenIsZero;
		NIM_BOOL T25_;
		NIM_BOOL T26_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T29_;
		T25_ = (NIM_BOOL)0;
		T26_ = (NIM_BOOL)0;
		T26_ = !((((*p).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 27))&31U)))!=0));
		if (!(T26_)) goto LA27_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		T26_ = ((*(*e)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6));
		LA27_: ;
		T25_ = T26_;
		if (!(T25_)) goto LA28_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_174[(NU)((*(*e)._kind_6.sons->data[((NI) 2)]).kind)>>3] &(1U<<((NU)((*(*e)._kind_6.sons->data[((NI) 2)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_175)); }
		T25_ = ((*(*e)._kind_6.sons->data[((NI) 2)])._kind_1.intVal == IL64(0));
		LA28_: ;
		lenIsZero = T25_;
		T29_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T29_ = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		genNewSeqAux__Ri3gLeBVOaUltgSIU2SrQQ(p, a, T29_, lenIsZero);
		gcUsage__Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, e);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genNewSeqOfCap__BKdMcfvryaJLplX0oFPcAQ_12)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* seqtype;
	tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a;
	seqtype = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*e).typ, IL64(36134350144710928));
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&a));
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T9_;
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T14_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T15_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T16_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T17_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T18_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T19_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T20_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T25_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T26_;
		if (!(((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 39))&63U)))!=0)) goto LA3_;
		{
			if (!((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0))) goto LA7_;
			getTemp__VjOFVqypINqQv5C3ECnxbw(p, (*e).typ, d, NIM_FALSE);
		}
		LA7_: ;
		T9_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T9_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA12_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA12_: ;
		res = rawNewString(((NI) 80));
		T14_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = rdLoc__xidyzuHqIciXbQyEOKahDg((*d));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T14_);
		res = resizeString(res, 10);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_106));
		T15_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T15_ = rdLoc__xidyzuHqIciXbQyEOKahDg((*d));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T15_);
		res = resizeString(res, 6);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_686));
		T16_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T16_ = getSeqPayloadType__HPYuz9bvVOGBv0EUX9c74xhg_2((*p).module, seqtype);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T16_);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_441));
		T17_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T17_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_687));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T17_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T18_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T18_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T18_);
		res = resizeString(res, 9);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_113));
		T19_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T19_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(seqtype);
		T20_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T20_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, T19_);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T20_);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_114));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA23_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA23_: ;
		T25_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T25_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
		T26_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T26_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T25_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T9_, T26_);
	}
	goto LA1_;
	LA3_: ;
	{
		NimStringDesc* res_2;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T32_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T33_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T34_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T35_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T36_;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA30_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA30_: ;
		res_2 = rawNewString(((NI) 80));
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T32_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T32_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, seqtype);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T32_);
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
		T33_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T33_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_690));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T33_);
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T34_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T34_ = genTypeInfo__BeEYMOjEPJinzbFpsfTaZg((*p).module, seqtype, (*e).info);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T34_);
		res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
		T35_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T35_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T35_);
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
		T36_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T36_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T36_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
		gcUsage__Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, e);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genSomeCast__BKdMcfvryaJLplX0oFPcAQ_13)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* etyp;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* srcTyp;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&a));
	etyp = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*e).typ, IL64(36134350136322320));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	srcTyp = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*e)._kind_6.sons->data[((NI) 1)]).typ, IL64(36134350136322320));
	{
		NIM_BOOL T3_;
		tyArray__mrugoXXRZUEeG9bEXo9auBKw T7_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*etyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18) || (*etyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17) || (*etyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16) || (*etyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27) || (*etyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48) || (*etyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 49));
		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__jXUNYqSX189axAU8O9bJBgpA((*p).module, (*e).typ);
		T7_[1] = addrLoc__9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, a);
		T8_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T8_ = percent___duX6hgjmpJtFFdvJVuoafg(T7_, 2);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T8_, a.storage);
	}
	goto LA1_;
	LA5_: ;
	{
		NIM_BOOL T10_;
		NIM_BOOL T11_;
		tyArray__mrugoXXRZUEeG9bEXo9auBKw T16_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T17_;
		T10_ = (NIM_BOOL)0;
		T11_ = (NIM_BOOL)0;
		T11_ = ((*etyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
		if (!(T11_)) goto LA12_;
		T11_ = ((*etyp).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 8));
		LA12_: ;
		T10_ = T11_;
		if (!(T10_)) goto LA13_;
		T10_ = !(((*srcTyp).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 8)));
		LA13_: ;
		if (!T10_) goto LA14_;
		nimZeroMem((void*)T16_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
		T16_[0] = getClosureType__lWDfUH9cj8K8DjyEqo9cmP3A((*p).module, etyp, ((tyEnum_TClosureTypeKind__cLHRMz1vnpSK0uePy2qbWw) 1));
		T16_[1] = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(a);
		T17_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T17_ = percent___GNSb4l0oRsR1gu66azz1LQ(T16_, 2);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T17_, a.storage);
	}
	goto LA1_;
	LA14_: ;
	{
		{
			NIM_BOOL T21_;
			tyArray__mrugoXXRZUEeG9bEXo9auBKw T25_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T26_;
			T21_ = (NIM_BOOL)0;
			T21_ = ((*srcTyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21) || (*srcTyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 26));
			if (!(T21_)) goto LA22_;
			T21_ = ((*etyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1) || (*etyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2) || (*etyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14) || (*etyp).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) && (*etyp).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35) || (*etyp).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36) && (*etyp).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39) || (*etyp).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40) && (*etyp).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44));
			LA22_: ;
			if (!T21_) goto LA23_;
			nimZeroMem((void*)T25_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
			T25_[0] = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, (*e).typ);
			T25_[1] = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(a);
			T26_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T26_ = percent___LGbUtKnsZL8FcQiQN7sWEA(T25_, 2);
			putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T26_, a.storage);
		}
		goto LA19_;
		LA23_: ;
		{
			NIM_BOOL T28_;
			tyArray__mrugoXXRZUEeG9bEXo9auBKw T32_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T33_;
			T28_ = (NIM_BOOL)0;
			T28_ = (((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 39))&63U)))!=0);
			if (!(T28_)) goto LA29_;
			T28_ = ((*etyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24) || (*etyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28));
			LA29_: ;
			if (!T28_) goto LA30_;
			nimZeroMem((void*)T32_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
			T32_[0] = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, (*e).typ);
			T32_[1] = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(a);
			T33_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T33_ = percent___e8Xf9ajw9cRlpuqnFnlEuSpA(T32_, 2);
			putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T33_, a.storage);
		}
		goto LA19_;
		LA30_: ;
		{
			NIM_BOOL T35_;
			tyArray__JiWwrsTRC6xqNlGcBthSVA T39_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T40_;
			T35_ = (NIM_BOOL)0;
			T35_ = ((*etyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1));
			if (!(T35_)) goto LA36_;
			T35_ = ((*srcTyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1) || (*srcTyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2) || (*srcTyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14) || (*srcTyp).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) && (*srcTyp).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35) || (*srcTyp).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36) && (*srcTyp).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39) || (*srcTyp).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40) && (*srcTyp).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44));
			LA36_: ;
			if (!T35_) goto LA37_;
			nimZeroMem((void*)T39_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
			T39_[0] = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(a);
			T40_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T40_ = percent___BDuDfIpocbuOrxKmsugV6Q(T39_, 1);
			putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T40_, a.storage);
		}
		goto LA19_;
		LA37_: ;
		{
			tyArray__mrugoXXRZUEeG9bEXo9auBKw T42_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T43_;
			nimZeroMem((void*)T42_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
			T42_[0] = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, (*e).typ);
			T42_[1] = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(a);
			T43_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T43_ = percent___GNSb4l0oRsR1gu66azz1LQ(T42_, 2);
			putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T43_, a.storage);
		}
		LA19_: ;
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genOrd__BKdMcfvryaJLplX0oFPcAQ_14)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA aX60gensym114520050_;
	NimStringDesc* res;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T5_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T6_;
	nimZeroMem((void*)(&aX60gensym114520050_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&aX60gensym114520050_));
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
	}
	LA3_: ;
	res = rawNewString(((NI) 80));
	T5_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T5_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(aX60gensym114520050_);
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T5_);
	T6_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T6_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
	putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T6_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
}
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;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	a = (*e)._kind_6.sons->data[((NI) 1)];
	{
		if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64))) goto LA3_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)-1); }
		a = (*a)._kind_6.sons->data[((NI) 0)];
	}
	LA3_: ;
	typ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*a).typ, IL64(49785886514129168));
	switch ((*typ).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48):
	{
		{
			NIM_BOOL T8_;
			NIM_BOOL T9_;
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA b;
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA c;
			T8_ = (NIM_BOOL)0;
			T9_ = (NIM_BOOL)0;
			T9_ = ((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32));
			if (!(T9_)) goto LA10_;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)-1); }
			T9_ = ((*(*a)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
			LA10_: ;
			T8_ = T9_;
			if (!(T8_)) goto LA11_;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)-1); }
			if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*a)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*a)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
			T8_ = ((*(*(*a)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 125));
			LA11_: ;
			if (!T8_) goto LA12_;
			nimZeroMem((void*)(&b), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			nimZeroMem((void*)(&c), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 2)) >= (NU)((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)-1); }
			initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*a)._kind_6.sons->data[((NI) 2)], (&b));
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 3)) >= (NU)((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 3),((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)-1); }
			initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*a)._kind_6.sons->data[((NI) 3)], (&c));
			{
				NimStringDesc* res;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T22_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T23_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T24_;
				if (!(op == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 8))) goto LA16_;
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA20_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA20_: ;
				res = rawNewString(((NI) 80));
				res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
				T22_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T22_ = rdLoc__xidyzuHqIciXbQyEOKahDg(c);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T22_);
				res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_694));
				T23_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T23_ = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T23_);
				res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
				T24_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T24_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
				putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T24_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
			}
			goto LA14_;
			LA16_: ;
			{
				NimStringDesc* res_2;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T30_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T31_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T32_;
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA28_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA28_: ;
				res_2 = rawNewString(((NI) 80));
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
				T30_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T30_ = rdLoc__xidyzuHqIciXbQyEOKahDg(c);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T30_);
				res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_694));
				T31_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T31_ = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T31_);
				res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_695));
				T32_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T32_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
				putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T32_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
			}
			LA14_: ;
		}
		goto LA6_;
		LA12_: ;
		{
			{
				tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA aX60gensym112785209_;
				NimStringDesc* res_3;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T42_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T43_;
				if (!(op == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 8))) goto LA36_;
				nimZeroMem((void*)(&aX60gensym112785209_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&aX60gensym112785209_));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA40_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA40_: ;
				res_3 = rawNewString(((NI) 80));
				res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
				T42_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T42_ = rdLoc__xidyzuHqIciXbQyEOKahDg(aX60gensym112785209_);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T42_);
				res_3 = resizeString(res_3, 8);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_696));
				T43_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T43_ = rope__yShmEg9cffWxI7s5XzEKBow(res_3);
				putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T43_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
			}
			goto LA34_;
			LA36_: ;
			{
				tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA aX60gensym112815203_;
				NimStringDesc* res_4;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T49_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T50_;
				nimZeroMem((void*)(&aX60gensym112815203_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&aX60gensym112815203_));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA47_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA47_: ;
				res_4 = rawNewString(((NI) 80));
				T49_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T49_ = rdLoc__xidyzuHqIciXbQyEOKahDg(aX60gensym112815203_);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T49_);
				res_4 = resizeString(res_4, 5);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_697));
				T50_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T50_ = rope__yShmEg9cffWxI7s5XzEKBow(res_4);
				putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T50_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
			}
			LA34_: ;
		}
		LA6_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 29):
	{
		{
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA aX60gensym112845208_;
			NimStringDesc* res_5;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T60_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T61_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T62_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T63_;
			if (!(op == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 8))) goto LA54_;
			nimZeroMem((void*)(&aX60gensym112845208_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&aX60gensym112845208_));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA58_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA58_: ;
			res_5 = rawNewString(((NI) 80));
			res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
			T60_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T60_ = rdLoc__xidyzuHqIciXbQyEOKahDg(aX60gensym112845208_);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T60_);
			res_5 = resizeString(res_5, 4);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_698));
			T61_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T61_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_699));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T61_);
			res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
			T62_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T62_ = rdLoc__xidyzuHqIciXbQyEOKahDg(aX60gensym112845208_);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T62_);
			res_5 = resizeString(res_5, 10);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_700));
			T63_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T63_ = rope__yShmEg9cffWxI7s5XzEKBow(res_5);
			putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T63_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		goto LA52_;
		LA54_: ;
		{
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA aX60gensym112875205_;
			NimStringDesc* res_6;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T69_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T70_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T71_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T72_;
			nimZeroMem((void*)(&aX60gensym112875205_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&aX60gensym112875205_));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA67_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA67_: ;
			res_6 = rawNewString(((NI) 80));
			res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
			T69_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T69_ = rdLoc__xidyzuHqIciXbQyEOKahDg(aX60gensym112875205_);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T69_);
			res_6 = resizeString(res_6, 3);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_701));
			T70_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T70_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_699));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T70_);
			res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
			T71_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T71_ = rdLoc__xidyzuHqIciXbQyEOKahDg(aX60gensym112875205_);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T71_);
			res_6 = resizeString(res_6, 6);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_702));
			T72_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T72_ = rope__yShmEg9cffWxI7s5XzEKBow(res_6);
			putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T72_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		LA52_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
	{
		tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a_2;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* x;
		nimZeroMem((void*)(&a_2), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&a_2));
		x = lenExpr__Xfvxpx3W1zkiCqENsur9ckg(p, a_2);
		{
			tyArray__JiWwrsTRC6xqNlGcBthSVA T78_;
			if (!(op == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 8))) goto LA76_;
			nimZeroMem((void*)T78_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
			T78_[0] = x;
			x = percent___nVQhtKHyPC8pvPbUAUBU7A(T78_, 1);
		}
		LA76_: ;
		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;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T85_;
		NimStringDesc* res_7;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T94_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T95_;
		nimZeroMem((void*)(&a_3), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
		nimZeroMem((void*)(&tmp), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&a_3));
		getIntTemp__SrOtkNNSJNR1CbG2n3nFcg(p, (&tmp));
		x_2 = lenExpr__Xfvxpx3W1zkiCqENsur9ckg(p, a_3);
		{
			tyArray__JiWwrsTRC6xqNlGcBthSVA T84_;
			if (!(op == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 8))) goto LA82_;
			nimZeroMem((void*)T84_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
			T84_[0] = x_2;
			x_2 = percent___nVQhtKHyPC8pvPbUAUBU7A(T84_, 1);
		}
		LA82_: ;
		T85_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T85_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA88_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA88_: ;
		res_7 = rawNewString(((NI) 80));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_7), tmp.r);
		res_7 = resizeString(res_7, 3);
appendString(res_7, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_103));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_7), x_2);
		res_7 = resizeString(res_7, 1);
appendString(res_7, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_104));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA92_;
			res_7 = resizeString(res_7, 1);
appendString(res_7, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA92_: ;
		T94_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T94_ = rope__yShmEg9cffWxI7s5XzEKBow(res_7);
		T95_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T95_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T94_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T85_, T95_);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, tmp.r, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
	{
		{
			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T101_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T102_;
			if (!(op == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 8))) goto LA99_;
			T101_ = lastOrd__hjogdnp59cMX1rwmjikBhqw_2((*(*(*p).module).g).config, typ);
			T102_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T102_ = rope__b5mr3rjXEwHVfmNLJr4cBA(T101_);
			putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T102_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		goto LA97_;
		LA99_: ;
		{
			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T104_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T105_;
			T104_ = lengthOrd__hjogdnp59cMX1rwmjikBhqw_3((*(*(*p).module).g).config, typ);
			T105_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T105_ = rope__b5mr3rjXEwHVfmNLJr4cBA(T104_);
			putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T105_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		LA97_: ;
	}
	break;
	default:
	{
		internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*e).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_703));
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(void, genSetLengthStr__BKdMcfvryaJLplX0oFPcAQ_15)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	{
		if (!(((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 39))&63U)))!=0)) goto LA3_;
		binaryStmtAddr__vxeaiXjty5M8JXT1fo429aQ(p, e, d, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_708));
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a;
		tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA b;
		tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA call;
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T14_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T15_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T16_;
		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_709));
		}
		LA8_: ;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&a));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 2)], (&b));
		initLoc__qlujIAW86QclHYUVxlHRiQ((&call), ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 9), e, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 3));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA12_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA12_: ;
		res = rawNewString(((NI) 80));
		T14_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_710));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T14_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T15_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T15_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T15_);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
		T16_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T16_ = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T16_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
		call.r = rope__yShmEg9cffWxI7s5XzEKBow(res);
		genAssignment__BtucsTdHw7orsXIL75hNVg(p, a, call, 0);
		gcUsage__Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, e);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genSetLengthSeq__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 call;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
{	{
		if (!(((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 39))&63U)))!=0)) goto LA3_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		asgnRef((void**) (&(*e)._kind_6.sons->data[((NI) 1)]), makeAddr__oKhRC9bEKTxG5epdNiNWZ0w_2((*e)._kind_6.sons->data[((NI) 1)]));
		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));
	{
		if (!!(((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA7_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_711));
	}
	LA7_: ;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	x = (*e)._kind_6.sons->data[((NI) 1)];
	{
		if (!((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 63) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64))) goto LA11_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*x).kind)>>3] &(1U<<((NU)((*x).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*x)._kind_6.sons ? (*x)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*x)._kind_6.sons ? (*x)._kind_6.sons->Sup.len : 0)-1); }
		x = (*x)._kind_6.sons->data[((NI) 0)];
	}
	LA11_: ;
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, x, (&a));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 2)], (&b));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*e)._kind_6.sons->data[((NI) 1)]).typ, 8388608);
	initLoc__qlujIAW86QclHYUVxlHRiQ((&call), ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 9), e, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 3));
	{
		NIM_BOOL T15_;
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T23_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T24_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T25_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T26_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T27_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T28_;
		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) 31))&63U)))!=0);
		LA16_: ;
		if (!!(T15_)) goto LA17_;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA21_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA21_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T23_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T23_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, t);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T23_);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_286));
		T24_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T24_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_712));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T24_);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_713));
		T25_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T25_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T25_);
		res = resizeString(res, 8);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_714));
		T26_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T26_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(36134350135273744));
		T27_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T27_ = genTypeInfo__BeEYMOjEPJinzbFpsfTaZg((*p).module, T26_, (*e).info);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T27_);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
		T28_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T28_ = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T28_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
		call.r = rope__yShmEg9cffWxI7s5XzEKBow(res);
	}
	goto LA13_;
	LA17_: ;
	{
		NimStringDesc* res_2;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T34_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T35_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T36_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T37_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T38_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T39_;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA32_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA32_: ;
		res_2 = rawNewString(((NI) 80));
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T34_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T34_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, t);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T34_);
		res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_286));
		T35_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T35_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_712));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T35_);
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T36_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T36_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T36_);
		res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
		T37_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T37_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(36134350135273744));
		T38_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T38_ = genTypeInfo__BeEYMOjEPJinzbFpsfTaZg((*p).module, T37_, (*e).info);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T38_);
		res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
		T39_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T39_ = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T39_);
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
		call.r = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
	}
	LA13_: ;
	genAssignment__BtucsTdHw7orsXIL75hNVg(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__zsqmUNR5OZrTUna0Y9bdu9bg(typ, IL64(36275087638309136));
	{
		if (!!(((*setType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_716));
	}
	LA3_: ;
	{
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T7_;
		NIM_BOOL T8_;
		tyArray__mrugoXXRZUEeG9bEXo9auBKw T11_;
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T12_;
		T7_ = firstOrd__hjogdnp59cMX1rwmjikBhqw(conf, setType);
		T8_ = (NIM_BOOL)0;
		T8_ = eqeq___nr9cP9b0OL9cabygV9bo19cJgZA_2(T7_, IL64(0));
		if (!!(T8_)) goto LA9_;
		nimZeroMem((void*)T11_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
		T11_[0] = result;
		T12_ = firstOrd__hjogdnp59cMX1rwmjikBhqw(conf, setType);
		T11_[1] = rope__b5mr3rjXEwHVfmNLJr4cBA(T12_);
		result = percent___qTicKO8EMC9cWGOyybIz4WQ(T11_, 2);
	}
	LA9_: ;
	return result;
}
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__PfgI9ap7WOnsRfFV4znQ27w_2((*s).typ);
		if (!((*T13_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) || (*T13_).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 33) && (*T13_).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35))) goto LA14_;
		result = NIM_TRUE;
	}
	goto LA5_;
	LA14_: ;
	{
		NI T17_;
		T17_ = (NI)0;
		T17_ = len__P89cqdlERShb9alU3iC0yj8wast(s);
		result = (T17_ <= ((NI) 8));
	}
	LA5_: ;
	}BeforeRet_: ;
	return result;
}
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_;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	T1_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*e)._kind_6.sons->data[((NI) 1)]).typ, IL64(36275087632017680));
	T2_ = (NI64)0;
	T2_ = getSize__vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, T1_);
	if ((T2_) < ((NI) (-2147483647 -1)) || (T2_) > ((NI) 2147483647)){ raiseRangeErrorI(T2_, ((NI) (-2147483647 -1)), ((NI) 2147483647)); }
	switch (((NI) (T2_))) {
	case ((NI) 1):
	{
		tyArray__mrugoXXRZUEeG9bEXo9auBKw T4_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T5_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T6_;
		nimZeroMem((void*)T4_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
		T4_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg((*a));
		T5_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T5_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*a));
		T4_[1] = rdSetElemLoc__yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, (*b), T5_);
		T6_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T6_ = percent___bIZqgQGMIUCBRFFeiRG0aA(T4_, 2);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T6_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((NI) 2):
	{
		tyArray__mrugoXXRZUEeG9bEXo9auBKw T8_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T9_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T10_;
		nimZeroMem((void*)T8_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
		T8_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg((*a));
		T9_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T9_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*a));
		T8_[1] = rdSetElemLoc__yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, (*b), T9_);
		T10_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T10_ = percent___HPctrFzseNT2BeQr9aYVqcg(T8_, 2);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T10_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((NI) 4):
	{
		tyArray__mrugoXXRZUEeG9bEXo9auBKw T12_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T13_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T14_;
		nimZeroMem((void*)T12_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
		T12_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg((*a));
		T13_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T13_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*a));
		T12_[1] = rdSetElemLoc__yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, (*b), T13_);
		T14_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = percent___k5v9c9cMBoWUlAaq59araCfmg(T12_, 2);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T14_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((NI) 8):
	{
		tyArray__mrugoXXRZUEeG9bEXo9auBKw T16_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T17_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T18_;
		nimZeroMem((void*)T16_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
		T16_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg((*a));
		T17_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T17_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*a));
		T16_[1] = rdSetElemLoc__yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, (*b), T17_);
		T18_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T18_ = percent___Py40oiVtYdIelNuiQQjpjw(T16_, 2);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T18_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	default:
	{
		tyArray__mrugoXXRZUEeG9bEXo9auBKw T20_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T21_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T22_;
		nimZeroMem((void*)T20_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
		T20_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg((*a));
		T21_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T21_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*a));
		T20_[1] = rdSetElemLoc__yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, (*b), T21_);
		T22_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T22_ = percent___QzVlk7tEXgagMWC19aLvbkg(T20_, 2);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T22_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(void, genInOp__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 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;
		T3_ = (NIM_BOOL)0;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		T3_ = ((*(*e)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39));
		if (!(T3_)) goto LA4_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		T3_ = fewCmps__vBGSIpCyq29bEZNYsVP3V6w((*(*(*p).module).g).config, (*e)._kind_6.sons->data[((NI) 1)]);
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			if (!((*(*e)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 70) || (*(*e)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 69))) goto LA9_;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*e)._kind_6.sons->data[((NI) 2)]).kind)>>3] &(1U<<((NU)((*(*e)._kind_6.sons->data[((NI) 2)]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*(*e)._kind_6.sons->data[((NI) 2)])._kind_6.sons ? (*(*e)._kind_6.sons->data[((NI) 2)])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*e)._kind_6.sons->data[((NI) 2)])._kind_6.sons ? (*(*e)._kind_6.sons->data[((NI) 2)])._kind_6.sons->Sup.len : 0)-1); }
			ea = (*(*e)._kind_6.sons->data[((NI) 2)])._kind_6.sons->data[((NI) 0)];
		}
		goto LA7_;
		LA9_: ;
		{
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			ea = (*e)._kind_6.sons->data[((NI) 2)];
		}
		LA7_: ;
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, ea, (&a));
		initLoc__qlujIAW86QclHYUVxlHRiQ((&b), ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 6), e, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
		{
			NI T14_;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			T14_ = (NI)0;
			T14_ = len__P89cqdlERShb9alU3iC0yj8wast((*e)._kind_6.sons->data[((NI) 1)]);
			if (!(((NI) 0) < T14_)) goto LA15_;
			b.r = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast((*e)._kind_6.sons->data[((NI) 1)]);
				i_2 = ((NI) 0);
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
						NI TM__MQdRN7fpbG7rPm4JpVVAhA_730;
						if (!(i_2 < colontmp_)) goto LA19;
						i = i_2;
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*e)._kind_6.sons->data[((NI) 1)]).kind)>>3] &(1U<<((NU)((*(*e)._kind_6.sons->data[((NI) 1)]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if ((NU)(i) >= (NU)((*(*e)._kind_6.sons->data[((NI) 1)])._kind_6.sons ? (*(*e)._kind_6.sons->data[((NI) 1)])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*(*e)._kind_6.sons->data[((NI) 1)])._kind_6.sons ? (*(*e)._kind_6.sons->data[((NI) 1)])._kind_6.sons->Sup.len : 0)-1); }
						it = (*(*e)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[i];
						{
							tyArray__wqYjTJU9ab2ZgEFMaQc3vNA T24_;
							tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T25_;
							if (!((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA22_;
							if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
							if ((NU)(((NI) 0)) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
							initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*it)._kind_6.sons->data[((NI) 0)], (&x));
							if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
							if ((NU)(((NI) 1)) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
							initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*it)._kind_6.sons->data[((NI) 1)], (&y));
							nimZeroMem((void*)T24_, sizeof(tyArray__wqYjTJU9ab2ZgEFMaQc3vNA));
							T24_[0] = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(a);
							T24_[1] = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(x);
							T24_[2] = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(y);
							T25_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
							T25_ = percent___nEiBK88oEGnvYfkiei9cyJA(T24_, 3);
							add__IM4kcMNkkOLJtqdEqSxR8A(&b.r, T25_);
						}
						goto LA20_;
						LA22_: ;
						{
							tyArray__mrugoXXRZUEeG9bEXo9auBKw T27_;
							tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T28_;
							initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, it, (&x));
							nimZeroMem((void*)T27_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
							T27_[0] = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(a);
							T27_[1] = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(x);
							T28_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
							T28_ = percent___Psy1qActyEYmIhrRo2KkJA(T27_, 2);
							add__IM4kcMNkkOLJtqdEqSxR8A(&b.r, T28_);
						}
						LA20_: ;
						{
							NI T31_;
							NI TM__MQdRN7fpbG7rPm4JpVVAhA_729;
							if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
							if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
							T31_ = (NI)0;
							T31_ = len__P89cqdlERShb9alU3iC0yj8wast((*e)._kind_6.sons->data[((NI) 1)]);
							if (nimSubInt(T31_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_729)) { raiseOverflow(); };
							if (!(i < (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_729))) goto LA32_;
							add__yG4AKzsBRS1W4MANDlXQeg(&b.r, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_485));
						}
						LA32_: ;
						if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_730)) { raiseOverflow(); };
						i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_730);
					} LA19: ;
				}
			}
			add__yG4AKzsBRS1W4MANDlXQeg(&b.r, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
		}
		goto LA12_;
		LA15_: ;
		{
			b.r = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_138));
		}
		LA12_: ;
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, b.r, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	goto LA1_;
	LA5_: ;
	{
		{
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			if (!!(!(((*(*e)._kind_6.sons->data[((NI) 1)]).typ == NIM_NIL)))) goto LA38_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_731));
		}
		LA38_: ;
		{
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			if (!!(!(((*(*e)._kind_6.sons->data[((NI) 2)]).typ == NIM_NIL)))) goto LA42_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_732));
		}
		LA42_: ;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&a));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.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));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	setType = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*e)._kind_6.sons->data[((NI) 1)]).typ, IL64(36275087632017680));
	T1_ = (NI64)0;
	T1_ = getSize__vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, setType);
	if ((T1_) < ((NI) (-2147483647 -1)) || (T1_) > ((NI) 2147483647)){ raiseRangeErrorI(T1_, ((NI) (-2147483647 -1)), ((NI) 2147483647)); }
	size = ((NI) (T1_));
	switch (size) {
	case ((NI) 1):
	case ((NI) 2):
	case ((NI) 4):
	case ((NI) 8):
	{
		switch (op) {
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 39):
		{
			switch (size) {
			case ((NI) 1):
			{
				tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA aX60gensym113390002_;
				tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA bX60gensym113390003_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T9_;
				tyArray__mrugoXXRZUEeG9bEXo9auBKw T10_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T11_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T12_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T13_;
				nimZeroMem((void*)(&aX60gensym113390002_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
				nimZeroMem((void*)(&bX60gensym113390003_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
				{
					if (!!(((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA7_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_715));
				}
				LA7_: ;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&aX60gensym113390002_));
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 2)], (&bX60gensym113390003_));
				T9_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T9_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				nimZeroMem((void*)T10_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
				T10_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(aX60gensym113390002_);
				T11_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T11_ = t__XNOXh7uniWNgiq58C9bW49awcgen(aX60gensym113390002_);
				T10_[1] = rdSetElemLoc__yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, bX60gensym113390003_, T11_);
				T12_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T12_ = percent___9bI5GhokFUA9bgO9av819cgdBg(T10_, 2);
				T13_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T13_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T12_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T9_, T13_);
			}
			break;
			case ((NI) 2):
			{
				tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA aX60gensym113425021_;
				tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA bX60gensym113425022_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T19_;
				tyArray__mrugoXXRZUEeG9bEXo9auBKw T20_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T21_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T22_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T23_;
				nimZeroMem((void*)(&aX60gensym113425021_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
				nimZeroMem((void*)(&bX60gensym113425022_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
				{
					if (!!(((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA17_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_715));
				}
				LA17_: ;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&aX60gensym113425021_));
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 2)], (&bX60gensym113425022_));
				T19_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T19_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				nimZeroMem((void*)T20_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
				T20_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(aX60gensym113425021_);
				T21_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T21_ = t__XNOXh7uniWNgiq58C9bW49awcgen(aX60gensym113425021_);
				T20_[1] = rdSetElemLoc__yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, bX60gensym113425022_, T21_);
				T22_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T22_ = percent___yZHx0qMqBvbhmZ0fMuAP6A(T20_, 2);
				T23_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T23_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T22_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T19_, T23_);
			}
			break;
			case ((NI) 4):
			{
				tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA aX60gensym113460021_;
				tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA bX60gensym113460022_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T29_;
				tyArray__mrugoXXRZUEeG9bEXo9auBKw T30_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T31_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T32_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T33_;
				nimZeroMem((void*)(&aX60gensym113460021_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
				nimZeroMem((void*)(&bX60gensym113460022_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
				{
					if (!!(((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA27_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_715));
				}
				LA27_: ;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&aX60gensym113460021_));
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 2)], (&bX60gensym113460022_));
				T29_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T29_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				nimZeroMem((void*)T30_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
				T30_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(aX60gensym113460021_);
				T31_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T31_ = t__XNOXh7uniWNgiq58C9bW49awcgen(aX60gensym113460021_);
				T30_[1] = rdSetElemLoc__yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, bX60gensym113460022_, T31_);
				T32_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T32_ = percent___YQzyPnY5vKAqE2RyLX0cew(T30_, 2);
				T33_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T33_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T32_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T29_, T33_);
			}
			break;
			case ((NI) 8):
			{
				tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA aX60gensym113495021_;
				tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA bX60gensym113495022_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T39_;
				tyArray__mrugoXXRZUEeG9bEXo9auBKw T40_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T41_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T42_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T43_;
				nimZeroMem((void*)(&aX60gensym113495021_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
				nimZeroMem((void*)(&bX60gensym113495022_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
				{
					if (!!(((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA37_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_715));
				}
				LA37_: ;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&aX60gensym113495021_));
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 2)], (&bX60gensym113495022_));
				T39_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T39_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				nimZeroMem((void*)T40_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
				T40_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(aX60gensym113495021_);
				T41_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T41_ = t__XNOXh7uniWNgiq58C9bW49awcgen(aX60gensym113495021_);
				T40_[1] = rdSetElemLoc__yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, bX60gensym113495022_, T41_);
				T42_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T42_ = percent___cIILAsA6BeRrvHfloZIscg(T40_, 2);
				T43_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T43_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T42_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T39_, T43_);
			}
			break;
			default:
			{
				{
					NimStringDesc* T49_;
					NimStringDesc* T50_;
					if (!NIM_TRUE) goto LA47_;
					T49_ = (NimStringDesc*)0;
					T50_ = (NimStringDesc*)0;
					T50_ = nimIntToStr(size);
					T49_ = rawNewString((T50_ ? T50_->Sup.len : 0) + 31);
appendString(T49_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_717));
appendString(T49_, T50_);
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(T49_);
				}
				LA47_: ;
			}
			break;
			}
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 40):
		{
			switch (size) {
			case ((NI) 1):
			{
				tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA aX60gensym113540201_;
				tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA bX60gensym113540202_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T57_;
				tyArray__mrugoXXRZUEeG9bEXo9auBKw T58_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T59_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T60_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T61_;
				nimZeroMem((void*)(&aX60gensym113540201_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
				nimZeroMem((void*)(&bX60gensym113540202_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
				{
					if (!!(((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA55_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_715));
				}
				LA55_: ;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&aX60gensym113540201_));
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 2)], (&bX60gensym113540202_));
				T57_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T57_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				nimZeroMem((void*)T58_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
				T58_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(aX60gensym113540201_);
				T59_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T59_ = t__XNOXh7uniWNgiq58C9bW49awcgen(aX60gensym113540201_);
				T58_[1] = rdSetElemLoc__yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, bX60gensym113540202_, T59_);
				T60_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T60_ = percent___IwDTuHqkGn7wW16ga2ktSg(T58_, 2);
				T61_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T61_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T60_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T57_, T61_);
			}
			break;
			case ((NI) 2):
			{
				tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA aX60gensym113575021_;
				tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA bX60gensym113575022_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T67_;
				tyArray__mrugoXXRZUEeG9bEXo9auBKw T68_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T69_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T70_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T71_;
				nimZeroMem((void*)(&aX60gensym113575021_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
				nimZeroMem((void*)(&bX60gensym113575022_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
				{
					if (!!(((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA65_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_715));
				}
				LA65_: ;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&aX60gensym113575021_));
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 2)], (&bX60gensym113575022_));
				T67_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T67_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				nimZeroMem((void*)T68_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
				T68_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(aX60gensym113575021_);
				T69_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T69_ = t__XNOXh7uniWNgiq58C9bW49awcgen(aX60gensym113575021_);
				T68_[1] = rdSetElemLoc__yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, bX60gensym113575022_, T69_);
				T70_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T70_ = percent___lbkoHJP5AIgE86vP7MmlKw(T68_, 2);
				T71_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T71_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T70_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T67_, T71_);
			}
			break;
			case ((NI) 4):
			{
				tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA aX60gensym113610021_;
				tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA bX60gensym113610022_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T77_;
				tyArray__mrugoXXRZUEeG9bEXo9auBKw T78_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T79_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T80_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T81_;
				nimZeroMem((void*)(&aX60gensym113610021_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
				nimZeroMem((void*)(&bX60gensym113610022_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
				{
					if (!!(((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA75_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_715));
				}
				LA75_: ;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&aX60gensym113610021_));
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 2)], (&bX60gensym113610022_));
				T77_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T77_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				nimZeroMem((void*)T78_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
				T78_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(aX60gensym113610021_);
				T79_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T79_ = t__XNOXh7uniWNgiq58C9bW49awcgen(aX60gensym113610021_);
				T78_[1] = rdSetElemLoc__yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, bX60gensym113610022_, T79_);
				T80_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T80_ = percent___9b84wNYrm79cLYfx9bsPNHjPQ(T78_, 2);
				T81_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T81_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T80_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T77_, T81_);
			}
			break;
			case ((NI) 8):
			{
				tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA aX60gensym113645021_;
				tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA bX60gensym113645022_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T87_;
				tyArray__mrugoXXRZUEeG9bEXo9auBKw T88_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T89_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T90_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T91_;
				nimZeroMem((void*)(&aX60gensym113645021_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
				nimZeroMem((void*)(&bX60gensym113645022_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
				{
					if (!!(((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA85_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_715));
				}
				LA85_: ;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&aX60gensym113645021_));
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 2)], (&bX60gensym113645022_));
				T87_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T87_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				nimZeroMem((void*)T88_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
				T88_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(aX60gensym113645021_);
				T89_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T89_ = t__XNOXh7uniWNgiq58C9bW49awcgen(aX60gensym113645021_);
				T88_[1] = rdSetElemLoc__yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, bX60gensym113645022_, T89_);
				T90_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T90_ = percent___K5ihI3kW9cFBh6sKlfEpJwg(T88_, 2);
				T91_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T91_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T90_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T87_, T91_);
			}
			break;
			default:
			{
				{
					NimStringDesc* T97_;
					NimStringDesc* T98_;
					if (!NIM_TRUE) goto LA95_;
					T97_ = (NimStringDesc*)0;
					T98_ = (NimStringDesc*)0;
					T98_ = nimIntToStr(size);
					T97_ = rawNewString((T98_ ? T98_->Sup.len : 0) + 31);
appendString(T97_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_718));
appendString(T97_, T98_);
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(T97_);
				}
				LA95_: ;
			}
			break;
			}
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 41):
		{
			{
				tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA aX60gensym113690201_;
				NimStringDesc* res;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T108_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T109_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T110_;
				if (!(size <= ((NI) 4))) goto LA102_;
				nimZeroMem((void*)(&aX60gensym113690201_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&aX60gensym113690201_));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA106_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA106_: ;
				res = rawNewString(((NI) 80));
				T108_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T108_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_719));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T108_);
				res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
				T109_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T109_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(aX60gensym113690201_);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T109_);
				res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
				T110_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T110_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
				putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T110_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
			}
			goto LA100_;
			LA102_: ;
			{
				tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA aX60gensym113720204_;
				NimStringDesc* res_2;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T116_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T117_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T118_;
				nimZeroMem((void*)(&aX60gensym113720204_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&aX60gensym113720204_));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA114_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA114_: ;
				res_2 = rawNewString(((NI) 80));
				T116_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T116_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_720));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T116_);
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
				T117_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T117_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(aX60gensym113720204_);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T117_);
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
				T118_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T118_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
				putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T118_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
			}
			LA100_: ;
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 120):
		{
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA aX60gensym113750204_;
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA bX60gensym113750205_;
			NimStringDesc* res_3;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T132_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T133_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T134_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T135_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T136_;
			nimZeroMem((void*)(&aX60gensym113750204_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			nimZeroMem((void*)(&bX60gensym113750205_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			{
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				if (!!(!(((*(*e)._kind_6.sons->data[((NI) 1)]).typ == NIM_NIL)))) goto LA122_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_721));
			}
			LA122_: ;
			{
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				if (!!(!(((*(*e)._kind_6.sons->data[((NI) 2)]).typ == NIM_NIL)))) goto LA126_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_722));
			}
			LA126_: ;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&aX60gensym113750204_));
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 2)], (&bX60gensym113750205_));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA130_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA130_: ;
			res_3 = rawNewString(((NI) 80));
			res_3 = resizeString(res_3, 3);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_723));
			T132_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T132_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(aX60gensym113750204_);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T132_);
			res_3 = resizeString(res_3, 5);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_724));
			T133_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T133_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(bX60gensym113750205_);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T133_);
			res_3 = resizeString(res_3, 8);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_725));
			T134_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T134_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(aX60gensym113750204_);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T134_);
			res_3 = resizeString(res_3, 4);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_572));
			T135_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T135_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(bX60gensym113750205_);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T135_);
			res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_355));
			T136_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T136_ = rope__yShmEg9cffWxI7s5XzEKBow(res_3);
			putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T136_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 119):
		{
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA aX60gensym113825206_;
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA bX60gensym113825207_;
			NimStringDesc* res_4;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T150_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T151_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T152_;
			nimZeroMem((void*)(&aX60gensym113825206_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			nimZeroMem((void*)(&bX60gensym113825207_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			{
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				if (!!(!(((*(*e)._kind_6.sons->data[((NI) 1)]).typ == NIM_NIL)))) goto LA140_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_721));
			}
			LA140_: ;
			{
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				if (!!(!(((*(*e)._kind_6.sons->data[((NI) 2)]).typ == NIM_NIL)))) goto LA144_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_722));
			}
			LA144_: ;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&aX60gensym113825206_));
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 2)], (&bX60gensym113825207_));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA148_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA148_: ;
			res_4 = rawNewString(((NI) 80));
			res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_178));
			T150_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T150_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(aX60gensym113825206_);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T150_);
			res_4 = resizeString(res_4, 5);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_724));
			T151_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T151_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(bX60gensym113825207_);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T151_);
			res_4 = resizeString(res_4, 5);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_726));
			T152_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T152_ = rope__yShmEg9cffWxI7s5XzEKBow(res_4);
			putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T152_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 118):
		{
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA aX60gensym113900204_;
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA bX60gensym113900205_;
			NimStringDesc* res_5;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T166_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T167_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T168_;
			nimZeroMem((void*)(&aX60gensym113900204_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			nimZeroMem((void*)(&bX60gensym113900205_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			{
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				if (!!(!(((*(*e)._kind_6.sons->data[((NI) 1)]).typ == NIM_NIL)))) goto LA156_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_656));
			}
			LA156_: ;
			{
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				if (!!(!(((*(*e)._kind_6.sons->data[((NI) 2)]).typ == NIM_NIL)))) goto LA160_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_657));
			}
			LA160_: ;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&aX60gensym113900204_));
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 2)], (&bX60gensym113900205_));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA164_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA164_: ;
			res_5 = rawNewString(((NI) 80));
			res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
			T166_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T166_ = rdLoc__xidyzuHqIciXbQyEOKahDg(aX60gensym113900204_);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T166_);
			res_5 = resizeString(res_5, 4);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_562));
			T167_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T167_ = rdLoc__xidyzuHqIciXbQyEOKahDg(bX60gensym113900205_);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T167_);
			res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
			T168_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T168_ = rope__yShmEg9cffWxI7s5XzEKBow(res_5);
			putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T168_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 121):
		{
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA aX60gensym113975204_;
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA bX60gensym113975205_;
			NimStringDesc* res_6;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T182_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T183_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T184_;
			nimZeroMem((void*)(&aX60gensym113975204_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			nimZeroMem((void*)(&bX60gensym113975205_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			{
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				if (!!(!(((*(*e)._kind_6.sons->data[((NI) 1)]).typ == NIM_NIL)))) goto LA172_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_656));
			}
			LA172_: ;
			{
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				if (!!(!(((*(*e)._kind_6.sons->data[((NI) 2)]).typ == NIM_NIL)))) goto LA176_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_657));
			}
			LA176_: ;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&aX60gensym113975204_));
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 2)], (&bX60gensym113975205_));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA180_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA180_: ;
			res_6 = rawNewString(((NI) 80));
			res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
			T182_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T182_ = rdLoc__xidyzuHqIciXbQyEOKahDg(aX60gensym113975204_);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T182_);
			res_6 = resizeString(res_6, 3);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_727));
			T183_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T183_ = rdLoc__xidyzuHqIciXbQyEOKahDg(bX60gensym113975205_);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T183_);
			res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
			T184_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T184_ = rope__yShmEg9cffWxI7s5XzEKBow(res_6);
			putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T184_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 122):
		{
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA aX60gensym114050204_;
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA bX60gensym114050205_;
			NimStringDesc* res_7;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T198_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T199_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T200_;
			nimZeroMem((void*)(&aX60gensym114050204_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			nimZeroMem((void*)(&bX60gensym114050205_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			{
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				if (!!(!(((*(*e)._kind_6.sons->data[((NI) 1)]).typ == NIM_NIL)))) goto LA188_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_656));
			}
			LA188_: ;
			{
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				if (!!(!(((*(*e)._kind_6.sons->data[((NI) 2)]).typ == NIM_NIL)))) goto LA192_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_657));
			}
			LA192_: ;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&aX60gensym114050204_));
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 2)], (&bX60gensym114050205_));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA196_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA196_: ;
			res_7 = rawNewString(((NI) 80));
			res_7 = resizeString(res_7, 1);
appendString(res_7, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
			T198_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T198_ = rdLoc__xidyzuHqIciXbQyEOKahDg(aX60gensym114050204_);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_7), T198_);
			res_7 = resizeString(res_7, 3);
appendString(res_7, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_728));
			T199_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T199_ = rdLoc__xidyzuHqIciXbQyEOKahDg(bX60gensym114050205_);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_7), T199_);
			res_7 = resizeString(res_7, 1);
appendString(res_7, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
			T200_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T200_ = rope__yShmEg9cffWxI7s5XzEKBow(res_7);
			putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T200_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 123):
		{
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA aX60gensym114125204_;
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA bX60gensym114125205_;
			NimStringDesc* res_8;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T214_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T215_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T216_;
			nimZeroMem((void*)(&aX60gensym114125204_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			nimZeroMem((void*)(&bX60gensym114125205_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			{
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				if (!!(!(((*(*e)._kind_6.sons->data[((NI) 1)]).typ == NIM_NIL)))) goto LA204_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_656));
			}
			LA204_: ;
			{
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				if (!!(!(((*(*e)._kind_6.sons->data[((NI) 2)]).typ == NIM_NIL)))) goto LA208_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_657));
			}
			LA208_: ;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&aX60gensym114125204_));
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 2)], (&bX60gensym114125205_));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA212_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA212_: ;
			res_8 = rawNewString(((NI) 80));
			res_8 = resizeString(res_8, 1);
appendString(res_8, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
			T214_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T214_ = rdLoc__xidyzuHqIciXbQyEOKahDg(aX60gensym114125204_);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_8), T214_);
			res_8 = resizeString(res_8, 5);
appendString(res_8, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_724));
			T215_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T215_ = rdLoc__xidyzuHqIciXbQyEOKahDg(bX60gensym114125205_);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_8), T215_);
			res_8 = resizeString(res_8, 1);
appendString(res_8, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
			T216_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T216_ = rope__yShmEg9cffWxI7s5XzEKBow(res_8);
			putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T216_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 133):
		{
			genInOp__BKdMcfvryaJLplX0oFPcAQ_17(p, e, d);
		}
		break;
		default:
		{
			internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*e).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_733));
		}
		break;
		}
	}
	break;
	default:
	{
		switch (op) {
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 39):
		{
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA aX60gensym114205001_;
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA bX60gensym114205002_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T225_;
			tyArray__mrugoXXRZUEeG9bEXo9auBKw T226_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T227_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T228_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T229_;
			nimZeroMem((void*)(&aX60gensym114205001_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			nimZeroMem((void*)(&bX60gensym114205002_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			{
				if (!!(((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA223_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_715));
			}
			LA223_: ;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&aX60gensym114205001_));
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 2)], (&bX60gensym114205002_));
			T225_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T225_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			nimZeroMem((void*)T226_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
			T226_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(aX60gensym114205001_);
			T227_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T227_ = t__XNOXh7uniWNgiq58C9bW49awcgen(aX60gensym114205001_);
			T226_[1] = rdSetElemLoc__yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, bX60gensym114205002_, T227_);
			T228_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T228_ = percent___qxufH5vUl9aY2l9cFq39bnVwA(T226_, 2);
			T229_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T229_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T228_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T225_, T229_);
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 40):
		{
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA aX60gensym114240021_;
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA bX60gensym114240022_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T235_;
			tyArray__mrugoXXRZUEeG9bEXo9auBKw T236_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T237_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T238_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T239_;
			nimZeroMem((void*)(&aX60gensym114240021_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			nimZeroMem((void*)(&bX60gensym114240022_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			{
				if (!!(((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA233_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_715));
			}
			LA233_: ;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&aX60gensym114240021_));
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 2)], (&bX60gensym114240022_));
			T235_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T235_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			nimZeroMem((void*)T236_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
			T236_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(aX60gensym114240021_);
			T237_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T237_ = t__XNOXh7uniWNgiq58C9bW49awcgen(aX60gensym114240021_);
			T236_[1] = rdSetElemLoc__yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, bX60gensym114240022_, T237_);
			T238_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T238_ = percent___jiTCvQQpgMU0bTrdVuECiw(T236_, 2);
			T239_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T239_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T238_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T235_, T239_);
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 41):
		{
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a_2;
			NimStringDesc* res_9;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T245_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T246_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T247_;
			nimZeroMem((void*)(&a_2), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&a_2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA243_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA243_: ;
			res_9 = rawNewString(((NI) 80));
			T245_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T245_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_734));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_9), T245_);
			res_9 = resizeString(res_9, 1);
appendString(res_9, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
			T246_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T246_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(a_2);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_9), T246_);
			res_9 = resizeString(res_9, 2);
appendString(res_9, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
			cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res_9), ((NI64) (size)));
			res_9 = resizeString(res_9, 1);
appendString(res_9, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
			T247_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T247_ = rope__yShmEg9cffWxI7s5XzEKBow(res_9);
			putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T247_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 120):
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 119):
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T249_;
			T249_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T249_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*(*(*p).module).g).graph, TM__MQdRN7fpbG7rPm4JpVVAhA_147, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
			getTemp__VjOFVqypINqQv5C3ECnxbw(p, T249_, (&i), NIM_FALSE);
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&a));
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 2)], (&b));
			{
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T254_;
				if (!((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0))) goto LA252_;
				T254_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T254_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*(*(*p).module).g).graph, TM__MQdRN7fpbG7rPm4JpVVAhA_147, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1));
				getTemp__VjOFVqypINqQv5C3ECnxbw(p, T254_, d, NIM_FALSE);
			}
			LA252_: ;
			{
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T259_;
				NimStringDesc* res_10;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T264_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T265_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T266_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T271_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T272_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T273_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T274_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T275_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T280_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T285_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T286_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T287_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T288_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T289_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T294_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T295_;
				if (!(op == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 120))) goto LA257_;
				T259_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T259_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA262_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA262_: ;
				res_10 = rawNewString(((NI) 80));
				res_10 = resizeString(res_10, 5);
appendString(res_10, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_151));
				T264_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T264_ = rdLoc__xidyzuHqIciXbQyEOKahDg(i);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_10), T264_);
				res_10 = resizeString(res_10, 6);
appendString(res_10, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_152));
				T265_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T265_ = rdLoc__xidyzuHqIciXbQyEOKahDg(i);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_10), T265_);
				res_10 = resizeString(res_10, 3);
appendString(res_10, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_153));
				cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res_10), ((NI64) (size)));
				res_10 = resizeString(res_10, 2);
appendString(res_10, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_154));
				T266_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T266_ = rdLoc__xidyzuHqIciXbQyEOKahDg(i);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_10), T266_);
				res_10 = resizeString(res_10, 6);
appendString(res_10, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_735));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA269_;
					res_10 = resizeString(res_10, 1);
appendString(res_10, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA269_: ;
				res_10 = resizeString(res_10, 2);
appendString(res_10, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_247));
				T271_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T271_ = rdLoc__xidyzuHqIciXbQyEOKahDg((*d));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_10), T271_);
				res_10 = resizeString(res_10, 5);
appendString(res_10, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_736));
				T272_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T272_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_10), T272_);
				res_10 = resizeString(res_10, 1);
appendString(res_10, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_157));
				T273_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T273_ = rdLoc__xidyzuHqIciXbQyEOKahDg(i);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_10), T273_);
				res_10 = resizeString(res_10, 6);
appendString(res_10, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_737));
				T274_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T274_ = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_10), T274_);
				res_10 = resizeString(res_10, 1);
appendString(res_10, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_157));
				T275_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T275_ = rdLoc__xidyzuHqIciXbQyEOKahDg(i);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_10), T275_);
				res_10 = resizeString(res_10, 9);
appendString(res_10, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_738));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA278_;
					res_10 = resizeString(res_10, 1);
appendString(res_10, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA278_: ;
				res_10 = resizeString(res_10, 7);
appendString(res_10, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_739));
				T280_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T280_ = rdLoc__xidyzuHqIciXbQyEOKahDg((*d));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_10), T280_);
				res_10 = resizeString(res_10, 9);
appendString(res_10, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_740));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA283_;
					res_10 = resizeString(res_10, 1);
appendString(res_10, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA283_: ;
				res_10 = resizeString(res_10, 4);
appendString(res_10, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_285));
				T285_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T285_ = rdLoc__xidyzuHqIciXbQyEOKahDg((*d));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_10), T285_);
				res_10 = resizeString(res_10, 2);
appendString(res_10, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_286));
				T286_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T286_ = rdLoc__xidyzuHqIciXbQyEOKahDg((*d));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_10), T286_);
				res_10 = resizeString(res_10, 4);
appendString(res_10, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_108));
				T287_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T287_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_741));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_10), T287_);
				res_10 = resizeString(res_10, 1);
appendString(res_10, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
				T288_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T288_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_10), T288_);
				res_10 = resizeString(res_10, 2);
appendString(res_10, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
				T289_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T289_ = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_10), T289_);
				res_10 = resizeString(res_10, 2);
appendString(res_10, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
				cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res_10), ((NI64) (size)));
				res_10 = resizeString(res_10, 8);
appendString(res_10, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_742));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA292_;
					res_10 = resizeString(res_10, 1);
appendString(res_10, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA292_: ;
				T294_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T294_ = rope__yShmEg9cffWxI7s5XzEKBow(res_10);
				T295_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T295_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T294_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T259_, T295_);
			}
			goto LA255_;
			LA257_: ;
			{
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T297_;
				NimStringDesc* res_11;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T302_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T303_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T304_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T309_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T310_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T311_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T312_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T313_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T318_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T323_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T324_;
				T297_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T297_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA300_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA300_: ;
				res_11 = rawNewString(((NI) 80));
				res_11 = resizeString(res_11, 5);
appendString(res_11, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_151));
				T302_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T302_ = rdLoc__xidyzuHqIciXbQyEOKahDg(i);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_11), T302_);
				res_11 = resizeString(res_11, 6);
appendString(res_11, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_152));
				T303_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T303_ = rdLoc__xidyzuHqIciXbQyEOKahDg(i);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_11), T303_);
				res_11 = resizeString(res_11, 3);
appendString(res_11, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_153));
				cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res_11), ((NI64) (size)));
				res_11 = resizeString(res_11, 2);
appendString(res_11, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_154));
				T304_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T304_ = rdLoc__xidyzuHqIciXbQyEOKahDg(i);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_11), T304_);
				res_11 = resizeString(res_11, 6);
appendString(res_11, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_735));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA307_;
					res_11 = resizeString(res_11, 1);
appendString(res_11, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA307_: ;
				res_11 = resizeString(res_11, 2);
appendString(res_11, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_247));
				T309_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T309_ = rdLoc__xidyzuHqIciXbQyEOKahDg((*d));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_11), T309_);
				res_11 = resizeString(res_11, 5);
appendString(res_11, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_736));
				T310_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T310_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_11), T310_);
				res_11 = resizeString(res_11, 1);
appendString(res_11, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_157));
				T311_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T311_ = rdLoc__xidyzuHqIciXbQyEOKahDg(i);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_11), T311_);
				res_11 = resizeString(res_11, 6);
appendString(res_11, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_737));
				T312_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T312_ = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_11), T312_);
				res_11 = resizeString(res_11, 1);
appendString(res_11, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_157));
				T313_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T313_ = rdLoc__xidyzuHqIciXbQyEOKahDg(i);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_11), T313_);
				res_11 = resizeString(res_11, 9);
appendString(res_11, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_738));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA316_;
					res_11 = resizeString(res_11, 1);
appendString(res_11, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA316_: ;
				res_11 = resizeString(res_11, 7);
appendString(res_11, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_739));
				T318_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T318_ = rdLoc__xidyzuHqIciXbQyEOKahDg((*d));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_11), T318_);
				res_11 = resizeString(res_11, 9);
appendString(res_11, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_740));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA321_;
					res_11 = resizeString(res_11, 1);
appendString(res_11, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA321_: ;
				T323_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T323_ = rope__yShmEg9cffWxI7s5XzEKBow(res_11);
				T324_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T324_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T323_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T297_, T324_);
			}
			LA255_: ;
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 118):
		{
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a_3;
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA b_2;
			NimStringDesc* res_12;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T338_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T339_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T340_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T341_;
			nimZeroMem((void*)(&a_3), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			nimZeroMem((void*)(&b_2), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			{
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				if (!!(!(((*(*e)._kind_6.sons->data[((NI) 1)]).typ == NIM_NIL)))) goto LA328_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_743));
			}
			LA328_: ;
			{
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				if (!!(!(((*(*e)._kind_6.sons->data[((NI) 2)]).typ == NIM_NIL)))) goto LA332_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_744));
			}
			LA332_: ;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&a_3));
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 2)], (&b_2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA336_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA336_: ;
			res_12 = rawNewString(((NI) 80));
			res_12 = resizeString(res_12, 1);
appendString(res_12, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
			T338_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T338_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_741));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_12), T338_);
			res_12 = resizeString(res_12, 1);
appendString(res_12, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
			T339_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T339_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(a_3);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_12), T339_);
			res_12 = resizeString(res_12, 2);
appendString(res_12, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
			T340_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T340_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(b_2);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_12), T340_);
			res_12 = resizeString(res_12, 2);
appendString(res_12, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
			cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res_12), ((NI64) (size)));
			res_12 = resizeString(res_12, 5);
appendString(res_12, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_726));
			T341_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T341_ = rope__yShmEg9cffWxI7s5XzEKBow(res_12);
			putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T341_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 121):
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 122):
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 123):
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T343_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T348_;
			tyArray__dNfZYyzVYdaWfURv4pxodA T349_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T350_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T351_;
			T343_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T343_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*(*(*p).module).g).graph, TM__MQdRN7fpbG7rPm4JpVVAhA_147, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
			getTemp__VjOFVqypINqQv5C3ECnxbw(p, T343_, (&i), NIM_FALSE);
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&a));
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 2)], (&b));
			{
				if (!((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0))) goto LA346_;
				getTemp__VjOFVqypINqQv5C3ECnxbw(p, setType, d, NIM_FALSE);
			}
			LA346_: ;
			T348_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T348_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			nimZeroMem((void*)T349_, sizeof(tyArray__dNfZYyzVYdaWfURv4pxodA));
			T349_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(i);
			T349_[1] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (size)));
			T349_[2] = rdLoc__xidyzuHqIciXbQyEOKahDg((*d));
			T349_[3] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
			T349_[4] = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
			if (op < 119 || op > 123){ raiseIndexError3(op, 119, 123); }
			T349_[5] = rope__yShmEg9cffWxI7s5XzEKBow(lookupOpr__w7WuexLq9cuXtAtqil9csnVQ[(op)- 119]);
			T350_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T350_ = percent___n4OrLXC1r9a83k5wz2NoWxQ(T349_, 6);
			T351_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T351_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T350_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T348_, T351_);
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 133):
		{
			genInOp__BKdMcfvryaJLplX0oFPcAQ_17(p, e, d);
		}
		break;
		default:
		{
			internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*e).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_748));
		}
		break;
		}
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(void, genDefault__8mAL9ckajemzgfLPfeZVNoQ_4)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	{
		if (!((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0))) goto LA3_;
		getTemp__VjOFVqypINqQv5C3ECnxbw(p, (*n).typ, d, NIM_TRUE);
	}
	goto LA1_;
	LA3_: ;
	{
		resetLoc__B9bNAYVEwjQtkUkvoOVhV2Q(p, d);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genReset__UtJx89cn0a8CNSWWmaj6raA_2)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n)._kind_6.sons->data[((NI) 1)], (&a));
	specializeReset__9cgrUeVA21BOQab6CBAvXRQ(p, a);
}
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___r38WafKlW80RkvoZTcia4Q(TM__MQdRN7fpbG7rPm4JpVVAhA_749);
		internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*(*(*p).module).g).config, T5_);
	}
	LA3_: ;
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* args;
		tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T32_;
		NimStringDesc* res_2;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T41_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T42_;
		if (!((*(*(*(*p).module).g).config).target.targetOS == ((tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ) 25))) 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;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			colontmp_ = (*n)._kind_6.sons;
			i = ((NI) 0);
			T11_ = (colontmp_ ? colontmp_->Sup.len : 0);
			L = T11_;
			{
				while (1) {
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_754;
					if (!(i < L)) goto LA13;
					if ((NU)(i) >= (NU)(colontmp_ ? colontmp_->Sup.len : 0)){ raiseIndexError2(i,(colontmp_ ? colontmp_->Sup.len : 0)-1); }
					it = colontmp_->data[i];
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T16_;
						T16_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T16_ = skipConv__BH9abOhPX8pH0DnEWlRxmlw(it);
						if (!((*T16_).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA17_;
						add__yG4AKzsBRS1W4MANDlXQeg(&args, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_750));
					}
					goto LA14_;
					LA17_: ;
					{
						NimStringDesc* res;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T24_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T25_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T26_;
						initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, it, (&a));
						{
							if (!!(!(((*p).module == NIM_NIL)))) goto LA22_;
							failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
						}
						LA22_: ;
						res = rawNewString(((NI) 80));
						res = resizeString(res, 18);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_751));
						T24_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T24_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
						cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T24_);
						res = resizeString(res, 8);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_752));
						T25_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T25_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
						cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T25_);
						res = resizeString(res, 6);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_753));
						T26_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T26_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
						add__IM4kcMNkkOLJtqdEqSxR8A(&args, T26_);
					}
					LA14_: ;
					if (nimAddInt(i, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_754)) { raiseOverflow(); };
					i = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_754);
					{
						NI T29_;
						T29_ = (colontmp_ ? colontmp_->Sup.len : 0);
						if (!!((T29_ == L))) goto LA30_;
						failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_26));
					}
					LA30_: ;
				} LA13: ;
			}
		}
		includeHeader__G5jzmdnwglHVk5qfDcXonA((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_755));
		includeHeader__G5jzmdnwglHVk5qfDcXonA((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_756));
		T32_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T32_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA35_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA35_: ;
		res_2 = rawNewString(((NI) 80));
		res_2 = resizeString(res_2, 14);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_757));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), args);
		res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA39_;
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA39_: ;
		T41_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T41_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
		T42_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T42_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T41_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T32_, T42_);
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T46_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T49_;
			NimStringDesc* res_3;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T54_;
			NI T55_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T60_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T61_;
			T46_ = (NI)0;
			T46_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (!(T46_ == ((NI) 0))) goto LA47_;
			T49_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T49_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA52_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA52_: ;
			res_3 = rawNewString(((NI) 80));
			T54_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T54_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_758));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T54_);
			res_3 = resizeString(res_3, 10);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_759));
			T55_ = (NI)0;
			T55_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res_3), ((NI64) (T55_)));
			res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA58_;
				res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA58_: ;
			T60_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T60_ = rope__yShmEg9cffWxI7s5XzEKBow(res_3);
			T61_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T61_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T60_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T49_, T61_);
		}
		goto LA44_;
		LA47_: ;
		{
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a_2;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T63_;
			NimStringDesc* res_4;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T68_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T69_;
			NI T70_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T75_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T76_;
			nimZeroMem((void*)(&a_2), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, n, (&a_2));
			T63_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T63_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA66_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA66_: ;
			res_4 = rawNewString(((NI) 80));
			T68_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T68_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_758));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T68_);
			res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
			T69_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T69_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a_2);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T69_);
			res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
			T70_ = (NI)0;
			T70_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res_4), ((NI64) (T70_)));
			res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA73_;
				res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA73_: ;
			T75_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T75_ = rope__yShmEg9cffWxI7s5XzEKBow(res_4);
			T76_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T76_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T75_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T63_, T76_);
		}
		LA44_: ;
	}
	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__P89cqdlERShb9alU3iC0yj8w_2ast(b);
			i_2 = ((NI) 0);
			{
				while (1) {
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_760;
					if (!(i_2 < colontmp_)) goto LA4;
					i = i_2;
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i) >= (NU)((*b)._kind_6.sons ? (*b)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*b)._kind_6.sons ? (*b)._kind_6.sons->Sup.len : 0)-1); }
					y = (*b)._kind_6.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_: ;
					if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_760)) { raiseOverflow(); };
					i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_760);
				} LA4: ;
			}
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genSeqConstr__8mAL9ckajemzgfLPfeZVNoQ_6)(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;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* l;
	NI T13_;
	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_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
	l = intLiteral__kQA0lBUvzOSZAw7DHC4Fjg(((NI64) (T13_)));
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* seqtype;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T18_;
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T23_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T24_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T25_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T26_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T27_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T28_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T33_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T34_;
		if (!(((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 39))&63U)))!=0)) goto LA16_;
		seqtype = (*n).typ;
		T18_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T18_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA21_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA21_: ;
		res = rawNewString(((NI) 80));
		T23_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T23_ = rdLoc__xidyzuHqIciXbQyEOKahDg((*dest));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T23_);
		res = resizeString(res, 7);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_685));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), l);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_154));
		T24_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T24_ = rdLoc__xidyzuHqIciXbQyEOKahDg((*dest));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T24_);
		res = resizeString(res, 6);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_686));
		T25_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T25_ = getSeqPayloadType__HPYuz9bvVOGBv0EUX9c74xhg_2((*p).module, seqtype);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T25_);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_441));
		T26_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T26_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_687));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T26_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), l);
		res = resizeString(res, 9);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_113));
		T27_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T27_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(seqtype);
		T28_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T28_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, T27_);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T28_);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_114));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA31_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA31_: ;
		T33_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T33_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
		T34_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T34_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T33_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T18_, T34_);
	}
	goto LA14_;
	LA16_: ;
	{
		NIM_BOOL T36_;
		NI T38_;
		T36_ = (NIM_BOOL)0;
		T36_ = !((((*p).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 27))&31U)))!=0));
		if (!(T36_)) goto LA37_;
		T38_ = (NI)0;
		T38_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		T36_ = (T38_ == ((NI) 0));
		LA37_: ;
		genNewSeqAux__Ri3gLeBVOaUltgSIU2SrQQ(p, (*dest), l, T36_);
	}
	LA14_: ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				NimStringDesc* res_2;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T46_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T47_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T48_;
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_761;
				if (!(i_2 < colontmp_)) goto LA41;
				i = i_2;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(i) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
				initLoc__qlujIAW86QclHYUVxlHRiQ((&arr), ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 6), (*n)._kind_6.sons->data[i], ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 3));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA44_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA44_: ;
				res_2 = rawNewString(((NI) 80));
				T46_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T46_ = rdLoc__xidyzuHqIciXbQyEOKahDg((*dest));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T46_);
				T47_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T47_ = dataField__3AsTOpq9crZUYBL9aD1lXBng_2(p);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T47_);
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_157));
				T48_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T48_ = intLiteral__kQA0lBUvzOSZAw7DHC4Fjg(((NI64) (i)));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T48_);
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_158));
				arr.r = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
				arr.storage = ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 3);
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(i) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
				expr__8mAL9ckajemzgfLPfeZVNoQ(p, (*n)._kind_6.sons->data[i], (&arr));
				if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_761)) { raiseOverflow(); };
				i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_761);
			} LA41: ;
		}
	}
	gcUsage__Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, n);
	{
		if (!doesAlias) goto LA51_;
		{
			if (!((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0))) goto LA55_;
			genericAssign((void*)(&(*d)), (void*)(&tmp), (&NTI__EtHNvCB0bgfu9bFjzx9cb6aA_));
		}
		goto LA53_;
		LA55_: ;
		{
			genAssignment__BtucsTdHw7orsXIL75hNVg(p, (*d), tmp, 0);
		}
		LA53_: ;
	}
	LA51_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genArrToSeq__8mAL9ckajemzgfLPfeZVNoQ_5)(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;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA T9_;
{	nimZeroMem((void*)(&elem), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&arr), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
	{
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		if (!((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41))) goto LA3_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		asgnRef((void**) (&(*(*n)._kind_6.sons->data[((NI) 1)]).typ), (*n).typ);
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		genSeqConstr__8mAL9ckajemzgfLPfeZVNoQ_6(p, (*n)._kind_6.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_: ;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	T9_ = lengthOrd__hjogdnp59cMX1rwmjikBhqw_3((*(*(*p).module).g).config, (*(*n)._kind_6.sons->data[((NI) 1)]).typ);
	L = toInt__TIX0sFuRf3uBpOBltYp7bw(T9_);
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* seqtype;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T14_;
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T19_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T20_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T21_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T22_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T23_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T24_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T29_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T30_;
		if (!(((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 39))&63U)))!=0)) goto LA12_;
		seqtype = (*n).typ;
		T14_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T14_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA17_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA17_: ;
		res = rawNewString(((NI) 80));
		T19_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T19_ = rdLoc__xidyzuHqIciXbQyEOKahDg((*d));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T19_);
		res = resizeString(res, 7);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_685));
		cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res), ((NI64) (L)));
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_154));
		T20_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T20_ = rdLoc__xidyzuHqIciXbQyEOKahDg((*d));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T20_);
		res = resizeString(res, 6);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_686));
		T21_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T21_ = getSeqPayloadType__HPYuz9bvVOGBv0EUX9c74xhg_2((*p).module, seqtype);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T21_);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_441));
		T22_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T22_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_687));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T22_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res), ((NI64) (L)));
		res = resizeString(res, 9);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_113));
		T23_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T23_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(seqtype);
		T24_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T24_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, T23_);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T24_);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_114));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA27_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA27_: ;
		T29_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T29_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
		T30_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T30_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T29_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T14_, T30_);
	}
	goto LA10_;
	LA12_: ;
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T32_;
		NIM_BOOL T33_;
		T32_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T32_ = intLiteral__kQA0lBUvzOSZAw7DHC4Fjg(((NI64) (L)));
		T33_ = (NIM_BOOL)0;
		T33_ = !((((*p).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 27))&31U)))!=0));
		if (!(T33_)) goto LA34_;
		T33_ = (L == ((NI) 0));
		LA34_: ;
		genNewSeqAux__Ri3gLeBVOaUltgSIU2SrQQ(p, (*d), T32_, T33_);
	}
	LA10_: ;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n)._kind_6.sons->data[((NI) 1)], (&a));
	{
		if (!(L < ((NI) 10))) goto LA37_;
		{
			NI i;
			NI i_2;
			i = (NI)0;
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T42_;
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T43_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T44_;
					NimStringDesc* res_2;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T49_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T50_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T51_;
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T52_;
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T53_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T54_;
					NimStringDesc* res_3;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T59_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T60_;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_762;
					if (!(i_2 < L)) goto LA41;
					i = i_2;
					T42_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T42_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36134350135273744));
					T43_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T43_ = elemType__PfgI9ap7WOnsRfFV4znQ27w_2(T42_);
					T44_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T44_ = lodeTyp__Zo4XKVi6BmwOZE51Yogqwg(T43_);
					initLoc__qlujIAW86QclHYUVxlHRiQ((&elem), ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 6), T44_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 3));
					{
						if (!!(!(((*p).module == NIM_NIL)))) goto LA47_;
						failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
					}
					LA47_: ;
					res_2 = rawNewString(((NI) 80));
					T49_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T49_ = rdLoc__xidyzuHqIciXbQyEOKahDg((*d));
					cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T49_);
					T50_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T50_ = dataField__3AsTOpq9crZUYBL9aD1lXBng_2(p);
					cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T50_);
					res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_157));
					T51_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T51_ = intLiteral__kQA0lBUvzOSZAw7DHC4Fjg(((NI64) (i)));
					cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T51_);
					res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_158));
					elem.r = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
					elem.storage = ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 3);
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
					T52_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T52_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 1)]).typ, IL64(36134350135273744));
					T53_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T53_ = elemType__PfgI9ap7WOnsRfFV4znQ27w_2(T52_);
					T54_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T54_ = lodeTyp__Zo4XKVi6BmwOZE51Yogqwg(T53_);
					initLoc__qlujIAW86QclHYUVxlHRiQ((&arr), ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 6), T54_, a.storage);
					{
						if (!!(!(((*p).module == NIM_NIL)))) goto LA57_;
						failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
					}
					LA57_: ;
					res_3 = rawNewString(((NI) 80));
					T59_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T59_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
					cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T59_);
					res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_157));
					T60_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T60_ = intLiteral__kQA0lBUvzOSZAw7DHC4Fjg(((NI64) (i)));
					cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T60_);
					res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_158));
					arr.r = rope__yShmEg9cffWxI7s5XzEKBow(res_3);
					genAssignment__BtucsTdHw7orsXIL75hNVg(p, elem, arr, 1);
					if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_762)) { raiseOverflow(); };
					i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_762);
				} LA41: ;
			}
		}
	}
	goto LA35_;
	LA37_: ;
	{
		tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA i_3;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T62_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T63_;
		NimStringDesc* res_4;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T72_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T73_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T74_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T75_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T76_;
		NimStringDesc* res_5;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T81_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T82_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T83_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T84_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T85_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T86_;
		NimStringDesc* res_6;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T91_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T92_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T93_;
		tyArray__qTjAvTvKF9anytN1At69aJMQ T94_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T95_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T96_;
		nimZeroMem((void*)(&i_3), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
		T62_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T62_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*(*(*p).module).g).graph, TM__MQdRN7fpbG7rPm4JpVVAhA_147, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
		getTemp__VjOFVqypINqQv5C3ECnxbw(p, T62_, (&i_3), NIM_FALSE);
		T63_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T63_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA66_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA66_: ;
		res_4 = rawNewString(((NI) 80));
		res_4 = resizeString(res_4, 5);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_151));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), i_3.r);
		res_4 = resizeString(res_4, 6);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_152));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), i_3.r);
		res_4 = resizeString(res_4, 3);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_153));
		cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res_4), ((NI64) (L)));
		res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_154));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), i_3.r);
		res_4 = resizeString(res_4, 5);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_155));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA70_;
			res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA70_: ;
		T72_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T72_ = rope__yShmEg9cffWxI7s5XzEKBow(res_4);
		T73_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T73_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T72_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T63_, T73_);
		T74_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T74_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36134350135273744));
		T75_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T75_ = elemType__PfgI9ap7WOnsRfFV4znQ27w_2(T74_);
		T76_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T76_ = lodeTyp__Zo4XKVi6BmwOZE51Yogqwg(T75_);
		initLoc__qlujIAW86QclHYUVxlHRiQ((&elem), ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 6), T76_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 3));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA79_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA79_: ;
		res_5 = rawNewString(((NI) 80));
		T81_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T81_ = rdLoc__xidyzuHqIciXbQyEOKahDg((*d));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T81_);
		T82_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T82_ = dataField__3AsTOpq9crZUYBL9aD1lXBng_2(p);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T82_);
		res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_157));
		T83_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T83_ = rdLoc__xidyzuHqIciXbQyEOKahDg(i_3);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T83_);
		res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_158));
		elem.r = rope__yShmEg9cffWxI7s5XzEKBow(res_5);
		elem.storage = ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 3);
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		T84_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T84_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 1)]).typ, IL64(36134350135273744));
		T85_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T85_ = elemType__PfgI9ap7WOnsRfFV4znQ27w_2(T84_);
		T86_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T86_ = lodeTyp__Zo4XKVi6BmwOZE51Yogqwg(T85_);
		initLoc__qlujIAW86QclHYUVxlHRiQ((&arr), ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 6), T86_, a.storage);
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA89_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA89_: ;
		res_6 = rawNewString(((NI) 80));
		T91_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T91_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T91_);
		res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_157));
		T92_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T92_ = rdLoc__xidyzuHqIciXbQyEOKahDg(i_3);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T92_);
		res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_158));
		arr.r = rope__yShmEg9cffWxI7s5XzEKBow(res_6);
		genAssignment__BtucsTdHw7orsXIL75hNVg(p, elem, arr, 1);
		T93_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T93_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		nimZeroMem((void*)T94_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
		T95_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T95_ = percent___BYiowJAm8zF7RBRISElaLg(T94_, 0);
		T96_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T96_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T95_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T93_, T96_);
	}
	LA35_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genDeepCopy__jdslQ8TsNpkTt8SvBLJjEA_2)(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__XNOXh7uniWNgiq58C9bW49awcgen(dest);
	ty = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(T1_, IL64(1189055854751557904));
	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):
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T3_;
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T8_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T9_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T10_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T17_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T18_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T23_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T24_;
		T3_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T3_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA6_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA6_: ;
		res = rawNewString(((NI) 80));
		T8_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T8_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_764));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T8_);
		res = resizeString(res, 8);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_111));
		T9_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T9_ = addrLoc__9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, dest);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T9_);
		res = resizeString(res, 9);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_280));
		T10_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		{
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA tmpX60gensym107985002_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T15_;
			if (!(src.k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 6))) goto LA13_;
			nimZeroMem((void*)(&tmpX60gensym107985002_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			T15_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T15_ = t__XNOXh7uniWNgiq58C9bW49awcgen(src);
			getTemp__VjOFVqypINqQv5C3ECnxbw(p, T15_, (&tmpX60gensym107985002_), NIM_FALSE);
			genAssignment__BtucsTdHw7orsXIL75hNVg(p, tmpX60gensym107985002_, src, 0);
			T10_ = addrLoc__9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, tmpX60gensym107985002_);
		}
		goto LA11_;
		LA13_: ;
		{
			T10_ = addrLoc__9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, src);
		}
		LA11_: ;
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T10_);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
		T17_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T17_ = t__XNOXh7uniWNgiq58C9bW49awcgen(dest);
		T18_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T18_ = genTypeInfo__BeEYMOjEPJinzbFpsfTaZg((*p).module, T17_, (*dest.lode).info);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T18_);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA21_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA21_: ;
		T23_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T23_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
		T24_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T24_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T23_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T3_, T24_);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T26_;
		NimStringDesc* res_2;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T31_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T32_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T33_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T34_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T35_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T40_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T41_;
		T26_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T26_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA29_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA29_: ;
		res_2 = rawNewString(((NI) 80));
		T31_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T31_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_765));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T31_);
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T32_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T32_ = addrLoc__9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, dest);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T32_);
		res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
		T33_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T33_ = rdLoc__xidyzuHqIciXbQyEOKahDg(src);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T33_);
		res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
		T34_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T34_ = t__XNOXh7uniWNgiq58C9bW49awcgen(dest);
		T35_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T35_ = genTypeInfo__BeEYMOjEPJinzbFpsfTaZg((*p).module, T34_, (*dest.lode).info);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T35_);
		res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA38_;
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA38_: ;
		T40_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T40_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
		T41_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T41_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T40_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T26_, T41_);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48):
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T43_;
		NimStringDesc* res_3;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T48_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T49_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T50_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T57_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T58_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T59_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T64_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T65_;
		T43_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T43_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA46_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA46_: ;
		res_3 = rawNewString(((NI) 80));
		T48_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T48_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_766));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T48_);
		res_3 = resizeString(res_3, 8);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_111));
		T49_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T49_ = addrLoc__9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, dest);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T49_);
		res_3 = resizeString(res_3, 9);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_280));
		T50_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		{
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA tmpX60gensym108080002_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T55_;
			if (!(src.k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 6))) goto LA53_;
			nimZeroMem((void*)(&tmpX60gensym108080002_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			T55_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T55_ = t__XNOXh7uniWNgiq58C9bW49awcgen(src);
			getTemp__VjOFVqypINqQv5C3ECnxbw(p, T55_, (&tmpX60gensym108080002_), NIM_FALSE);
			genAssignment__BtucsTdHw7orsXIL75hNVg(p, tmpX60gensym108080002_, src, 0);
			T50_ = addrLoc__9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, tmpX60gensym108080002_);
		}
		goto LA51_;
		LA53_: ;
		{
			T50_ = addrLoc__9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, src);
		}
		LA51_: ;
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T50_);
		res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
		T57_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T57_ = addrLoc__9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, dest);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T57_);
		res_3 = resizeString(res_3, 7);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_299));
		T58_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T58_ = t__XNOXh7uniWNgiq58C9bW49awcgen(dest);
		T59_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T59_ = genTypeInfo__BeEYMOjEPJinzbFpsfTaZg((*p).module, T58_, (*dest.lode).info);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T59_);
		res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA62_;
			res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA62_: ;
		T64_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T64_ = rope__yShmEg9cffWxI7s5XzEKBow(res_3);
		T65_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T65_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T64_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T43_, T65_);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19):
	{
		{
			tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w T69_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T72_;
			NimStringDesc* res_4;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T77_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T78_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T79_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T80_;
			NI64 T81_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T86_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T87_;
			T69_ = (tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w)0;
			T69_ = mapType__K9aceyVl15zb9aYN9b6YJ8TnA((*(*(*p).module).g).config, ty);
			if (!(T69_ == ((tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w) 17))) goto LA70_;
			T72_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T72_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA75_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA75_: ;
			res_4 = rawNewString(((NI) 80));
			T77_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T77_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_273));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T77_);
			res_4 = resizeString(res_4, 8);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_111));
			T78_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T78_ = rdLoc__xidyzuHqIciXbQyEOKahDg(dest);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T78_);
			res_4 = resizeString(res_4, 19);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_278));
			T79_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T79_ = rdLoc__xidyzuHqIciXbQyEOKahDg(src);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T79_);
			res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
			T80_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T80_ = t__XNOXh7uniWNgiq58C9bW49awcgen(dest);
			T81_ = (NI64)0;
			T81_ = getSize__vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, T80_);
			cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res_4), T81_);
			res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA84_;
				res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA84_: ;
			T86_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T86_ = rope__yShmEg9cffWxI7s5XzEKBow(res_4);
			T87_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T87_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T86_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T72_, T87_);
		}
		goto LA67_;
		LA70_: ;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T89_;
			NimStringDesc* res_5;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T94_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T95_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T100_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T101_;
			T89_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T89_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA92_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA92_: ;
			res_5 = rawNewString(((NI) 80));
			T94_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T94_ = rdLoc__xidyzuHqIciXbQyEOKahDg(dest);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T94_);
			res_5 = resizeString(res_5, 3);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_103));
			T95_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T95_ = rdLoc__xidyzuHqIciXbQyEOKahDg(src);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T95_);
			res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_104));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA98_;
				res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA98_: ;
			T100_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T100_ = rope__yShmEg9cffWxI7s5XzEKBow(res_5);
			T101_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T101_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T100_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T89_, T101_);
		}
		LA67_: ;
	}
	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):
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T103_;
		NimStringDesc* res_6;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T108_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T109_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T114_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T115_;
		T103_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T103_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA106_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA106_: ;
		res_6 = rawNewString(((NI) 80));
		T108_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T108_ = rdLoc__xidyzuHqIciXbQyEOKahDg(dest);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T108_);
		res_6 = resizeString(res_6, 3);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_103));
		T109_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T109_ = rdLoc__xidyzuHqIciXbQyEOKahDg(src);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T109_);
		res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_104));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA112_;
			res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA112_: ;
		T114_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T114_ = rope__yShmEg9cffWxI7s5XzEKBow(res_6);
		T115_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T115_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T114_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T103_, T115_);
	}
	break;
	default:
	{
		NimStringDesc* T117_;
		T117_ = (NimStringDesc*)0;
		T117_ = rawNewString((reprEnum((NI)(*ty).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*ty).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 13);
appendString(T117_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_767));
appendString(T117_, reprEnum((NI)(*ty).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_)));
		internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*(*(*p).module).g).config, T117_);
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipAddr__oKhRC9bEKTxG5epdNiNWZ0w_3)(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_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		result = (*n)._kind_6.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));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = skipAddr__oKhRC9bEKTxG5epdNiNWZ0w_3((*n)._kind_6.sons->data[((NI) 1)]);
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, T1_, (&a));
	resetLoc__B9bNAYVEwjQtkUkvoOVhV2Q(p, (&a));
}
N_LIB_PRIVATE N_NIMCALL(void, genMove__8mAL9ckajemzgfLPfeZVNoQ_7)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = skipAddr__oKhRC9bEKTxG5epdNiNWZ0w_3((*n)._kind_6.sons->data[((NI) 1)]);
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, T1_, (&a));
	{
		NI T4_;
		tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA src;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T7_;
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T12_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T13_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T14_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T15_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T16_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T17_;
		NimStringDesc* res_2;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T26_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T27_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T28_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T29_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T34_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T35_;
		T4_ = (NI)0;
		T4_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (!(T4_ == ((NI) 4))) goto LA5_;
		nimZeroMem((void*)(&src), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 2)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n)._kind_6.sons->data[((NI) 2)], (&src));
		T7_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T7_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA10_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA10_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 4);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_285));
		T12_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T12_);
		res = resizeString(res, 8);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_768));
		T13_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T13_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T13_);
		res = resizeString(res, 6);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_769));
		T14_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = rdLoc__xidyzuHqIciXbQyEOKahDg(src);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T14_);
		res = resizeString(res, 5);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_770));
		T15_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T15_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
		T16_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T16_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T15_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T7_, T16_);
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 3)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 3),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		genStmts__QrTB5DOwbDX9bKAW7PNbuJA(p, (*n)._kind_6.sons->data[((NI) 3)]);
		T17_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T17_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA20_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA20_: ;
		res_2 = rawNewString(((NI) 80));
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_235));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA24_;
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA24_: ;
		T26_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T26_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T26_);
		res_2 = resizeString(res_2, 7);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_685));
		T27_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T27_ = rdLoc__xidyzuHqIciXbQyEOKahDg(src);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T27_);
		res_2 = resizeString(res_2, 6);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_771));
		T28_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T28_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T28_);
		res_2 = resizeString(res_2, 5);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_772));
		T29_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T29_ = rdLoc__xidyzuHqIciXbQyEOKahDg(src);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T29_);
		res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_773));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA32_;
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA32_: ;
		T34_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T34_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
		T35_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T35_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T34_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T17_, T35_);
	}
	goto LA2_;
	LA5_: ;
	{
		{
			if (!((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0))) goto LA39_;
			getTemp__VjOFVqypINqQv5C3ECnxbw(p, (*n).typ, d, NIM_FALSE);
		}
		LA39_: ;
		genAssignment__BtucsTdHw7orsXIL75hNVg(p, (*d), a, 0);
		resetLoc__B9bNAYVEwjQtkUkvoOVhV2Q(p, (&a));
	}
	LA2_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genDestroy__UtJx89cn0a8CNSWWmaj6raA_5)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
		if (!(((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 39))&63U)))!=0)) goto LA3_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		arg = skipAddr__oKhRC9bEKTxG5epdNiNWZ0w_3((*n)._kind_6.sons->data[((NI) 1)]);
		t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*arg).typ, IL64(36134350135273744));
		switch ((*t).kind) {
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
		{
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T6_;
			NimStringDesc* res;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T11_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T12_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T17_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T18_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T23_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T24_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T29_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T30_;
			nimZeroMem((void*)(&a), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, arg, (&a));
			T6_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T6_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA9_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA9_: ;
			res = rawNewString(((NI) 80));
			res = resizeString(res, 4);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_285));
			T11_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T11_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T11_);
			res = resizeString(res, 8);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_774));
			T12_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T12_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T12_);
			res = resizeString(res, 29);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_775));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA15_;
				res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA15_: ;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_33));
			T17_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T17_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_776));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T17_);
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
			T18_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T18_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T18_);
			res = resizeString(res, 4);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_777));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA21_;
				res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA21_: ;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_33));
			T23_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T23_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T23_);
			res = resizeString(res, 14);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_778));
			T24_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T24_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T24_);
			res = resizeString(res, 11);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_779));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA27_;
				res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA27_: ;
			T29_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T29_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
			T30_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T30_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T29_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T6_, T30_);
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
		{
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a_2;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T32_;
			NimStringDesc* res_2;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T37_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T38_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T43_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T44_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T49_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T50_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T55_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T56_;
			nimZeroMem((void*)(&a_2), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, arg, (&a_2));
			T32_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T32_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA35_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA35_: ;
			res_2 = rawNewString(((NI) 80));
			res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_285));
			T37_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T37_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a_2);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T37_);
			res_2 = resizeString(res_2, 8);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_774));
			T38_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T38_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a_2);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T38_);
			res_2 = resizeString(res_2, 29);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_775));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA41_;
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA41_: ;
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_33));
			T43_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T43_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_776));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T43_);
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
			T44_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T44_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a_2);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T44_);
			res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_777));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA47_;
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA47_: ;
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_33));
			T49_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T49_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a_2);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T49_);
			res_2 = resizeString(res_2, 14);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_778));
			T50_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T50_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a_2);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T50_);
			res_2 = resizeString(res_2, 11);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_779));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA53_;
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA53_: ;
			T55_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T55_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
			T56_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T56_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T55_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T32_, T56_);
		}
		break;
		default:
		{
		}
		break;
		}
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t_2;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		t_2 = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 1)]).typ, IL64(36275087632017680));
		{
			NIM_BOOL T61_;
			NI T63_;
			T61_ = (NIM_BOOL)0;
			T61_ = !(((*t_2).attachedOps[(((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0))- 0] == NIM_NIL));
			if (!(T61_)) goto LA62_;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*(*t_2).attachedOps[(((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0))- 0]).ast).kind)>>3] &(1U<<((NU)((*(*(*t_2).attachedOps[(((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0))- 0]).ast).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 6)) >= (NU)((*(*(*t_2).attachedOps[(((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0))- 0]).ast)._kind_6.sons ? (*(*(*t_2).attachedOps[(((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0))- 0]).ast)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 6),((*(*(*t_2).attachedOps[(((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0))- 0]).ast)._kind_6.sons ? (*(*(*t_2).attachedOps[(((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0))- 0]).ast)._kind_6.sons->Sup.len : 0)-1); }
			T63_ = (NI)0;
			T63_ = len__P89cqdlERShb9alU3iC0yj8wast((*(*(*t_2).attachedOps[(((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0))- 0]).ast)._kind_6.sons->data[((NI) 6)]);
			T61_ = !((T63_ == ((NI) 0)));
			LA62_: ;
			if (!T61_) goto LA64_;
			internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_780));
		}
		LA64_: ;
	}
	LA1_: ;
}
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) 109):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 108):
	{
		genAndOr__yX5yxw6c9agMF4ZvIHKAZvg(p, e, d, op);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 95) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 99):
	{
		unaryArith__TU9cJnldbmGa9bZDxaR6I4tg_2(p, e, d, op);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 92) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 94):
	{
		unaryArithOverflow__yX5yxw6c9agMF4ZvIHKAZvg_2(p, e, d, op);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 52) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 55):
	{
		binaryFloatArith__yX5yxw6c9agMF4ZvIHKAZvg_3(p, e, d, op);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 56) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 89):
	{
		binaryArith__TU9cJnldbmGa9bZDxaR6I4tg_3(p, e, d, op);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 91):
	{
		genEqProc__BKdMcfvryaJLplX0oFPcAQ(p, e, d);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 45) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 51):
	{
		binaryArithOverflow__yX5yxw6c9agMF4ZvIHKAZvg_4(p, e, d, op);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 134):
	{
		genRepr__BKdMcfvryaJLplX0oFPcAQ_2(p, e, d);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 256):
	{
		genGetTypeInfo__BKdMcfvryaJLplX0oFPcAQ_3(p, e, d);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 141):
	{
		genSwap__BKdMcfvryaJLplX0oFPcAQ_4(p, e, d);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 28):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 29):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* underlying;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		underlying = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*e)._kind_6.sons->data[((NI) 1)]).typ, IL64(211106241980432));
		{
			NIM_BOOL T14_;
			T14_ = (NIM_BOOL)0;
			T14_ = !((((*p).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 5))&31U)))!=0));
			if (T14_) goto LA15_;
			T14_ = ((*underlying).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40) && (*underlying).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44));
			LA15_: ;
			if (!T14_) goto LA16_;
			if (op < 28 || op > 29){ raiseIndexError3(op, 28, 29); }
			binaryStmt__FWB0HmRDLgoWdgSy9bfL9b5w(p, e, d, opr__O7uP3jzNu3e9auWdRdRa9cJA[(op)- 28]);
		}
		goto LA12_;
		LA16_: ;
		{
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a;
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA b;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ranged;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* res;
			NI64 sizeX60gensym115485013_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* storageX60gensym115485014_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* resultX60gensym115485015_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T32_;
			NimStringDesc* res_2;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T41_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T42_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T43_;
			NimStringDesc* res_3;
			NimStringDesc* T48_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T54_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T55_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T56_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T57_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T58_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T63_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T64_;
			tyArray__mrugoXXRZUEeG9bEXo9auBKw T88_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T89_;
			nimZeroMem((void*)(&a), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			nimZeroMem((void*)(&b), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			{
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				if (!!(!(((*(*e)._kind_6.sons->data[((NI) 1)]).typ == NIM_NIL)))) goto LA21_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_622));
			}
			LA21_: ;
			{
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				if (!!(!(((*(*e)._kind_6.sons->data[((NI) 2)]).typ == NIM_NIL)))) goto LA25_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_623));
			}
			LA25_: ;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&a));
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 2)], (&b));
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			ranged = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*e)._kind_6.sons->data[((NI) 1)]).typ, IL64(211106240923664));
			sizeX60gensym115485013_ = getSize__vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, ranged);
			{
				if (!(sizeX60gensym115485013_ < ((NI64) ((*(*(*(*p).module).g).config).target.intSize)))) goto LA29_;
				storageX60gensym115485014_ = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_381));
			}
			goto LA27_;
			LA29_: ;
			{
				storageX60gensym115485014_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, ranged);
			}
			LA27_: ;
			resultX60gensym115485015_ = getTempName__ao6gUnuVfQLtZ89c4kaIKfg((*p).module);
			T32_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T32_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 0));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA35_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA35_: ;
			res_2 = rawNewString(((NI) 80));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), storageX60gensym115485014_);
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_33));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), resultX60gensym115485015_);
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_104));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA39_;
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA39_: ;
			T41_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T41_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
			T42_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T42_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T41_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T32_, T42_);
			T43_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T43_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA46_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA46_: ;
			res_3 = rawNewString(((NI) 80));
			res_3 = resizeString(res_3, 4);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_285));
			T48_ = (NimStringDesc*)0;
			{
				if (!((*underlying).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35))) goto LA51_;
				if (op < 28 || op > 29){ raiseIndexError3(op, 28, 29); }
				T48_ = copyString(fun64__fjrbodMqcYB619bEDCGfJsA[(op)- 28]);
			}
			goto LA49_;
			LA51_: ;
			{
				if (op < 28 || op > 29){ raiseIndexError3(op, 28, 29); }
				T48_ = copyString(fun__gOe15RXeJ2duD5In6NwLXA[(op)- 28]);
			}
			LA49_: ;
			T54_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T54_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, T48_);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T54_);
			res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
			T55_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T55_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(a);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T55_);
			res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
			T56_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T56_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(b);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T56_);
			res_3 = resizeString(res_3, 3);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_601));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), resultX60gensym115485015_);
			res_3 = resizeString(res_3, 5);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_602));
			T57_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T57_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_564));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T57_);
			res_3 = resizeString(res_3, 4);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_478));
			T58_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T58_ = raiseInstr__3AsTOpq9crZUYBL9aD1lXBng_4(p);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T58_);
			res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_243));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA61_;
				res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA61_: ;
			T63_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T63_ = rope__yShmEg9cffWxI7s5XzEKBow(res_3);
			T64_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T64_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T63_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T43_, T64_);
			{
				NIM_BOOL T67_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T71_;
				NimStringDesc* res_4;
				tyObject_Int128__9a9axPfb75jdWY25AamJewkA T76_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T77_;
				tyObject_Int128__9a9axPfb75jdWY25AamJewkA T78_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T79_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T80_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T81_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T86_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T87_;
				T67_ = (NIM_BOOL)0;
				T67_ = (sizeX60gensym115485013_ < ((NI64) ((*(*(*(*p).module).g).config).target.intSize)));
				if (T67_) goto LA68_;
				T67_ = ((*ranged).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20) || (*ranged).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14));
				LA68_: ;
				if (!T67_) goto LA69_;
				T71_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T71_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA74_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA74_: ;
				res_4 = rawNewString(((NI) 80));
				res_4 = resizeString(res_4, 4);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_285));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), resultX60gensym115485015_);
				res_4 = resizeString(res_4, 3);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_153));
				T76_ = firstOrd__hjogdnp59cMX1rwmjikBhqw((*(*(*p).module).g).config, ranged);
				T77_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T77_ = intLiteral__0L2LUBpuDvHdOo5Bdh2tRw(T76_);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T77_);
				res_4 = resizeString(res_4, 4);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_485));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), resultX60gensym115485015_);
				res_4 = resizeString(res_4, 3);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_486));
				T78_ = lastOrd__hjogdnp59cMX1rwmjikBhqw_2((*(*(*p).module).g).config, ranged);
				T79_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T79_ = intLiteral__0L2LUBpuDvHdOo5Bdh2tRw(T78_);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T79_);
				res_4 = resizeString(res_4, 3);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_563));
				T80_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T80_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_564));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T80_);
				res_4 = resizeString(res_4, 4);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_478));
				T81_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T81_ = raiseInstr__3AsTOpq9crZUYBL9aD1lXBng_4(p);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T81_);
				res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_235));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA84_;
					res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA84_: ;
				T86_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T86_ = rope__yShmEg9cffWxI7s5XzEKBow(res_4);
				T87_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T87_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T86_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T71_, T87_);
			}
			LA69_: ;
			res = resultX60gensym115485015_;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			nimZeroMem((void*)T88_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
			T88_[0] = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, ranged);
			T88_[1] = res;
			T89_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T89_ = percent___0ym49cR6ES8k9bYWsnh1fELA(T88_, 2);
			putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, (&a), (*e)._kind_6.sons->data[((NI) 1)], T89_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		LA12_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 124):
	{
		genStrConcat__BKdMcfvryaJLplX0oFPcAQ_5(p, e, d);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 130):
	{
		{
			if (!(((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 39))&63U)))!=0)) goto LA94_;
			binaryStmtAddr__vxeaiXjty5M8JXT1fo429aQ(p, e, d, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_637));
		}
		goto LA92_;
		LA94_: ;
		{
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA dest;
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA b_2;
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA call;
			NimStringDesc* res_5;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T101_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T102_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T103_;
			nimZeroMem((void*)(&dest), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			nimZeroMem((void*)(&b_2), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			nimZeroMem((void*)(&call), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			initLoc__qlujIAW86QclHYUVxlHRiQ((&call), ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 9), e, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 3));
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&dest));
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 2)], (&b_2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA99_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA99_: ;
			res_5 = rawNewString(((NI) 80));
			T101_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T101_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_638));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T101_);
			res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
			T102_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T102_ = rdLoc__xidyzuHqIciXbQyEOKahDg(dest);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T102_);
			res_5 = resizeString(res_5, 2);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
			T103_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T103_ = rdLoc__xidyzuHqIciXbQyEOKahDg(b_2);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T103_);
			res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
			call.r = rope__yShmEg9cffWxI7s5XzEKBow(res_5);
			genAssignment__BtucsTdHw7orsXIL75hNVg(p, dest, call, 0);
		}
		LA92_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 131):
	{
		genStrAppend__BKdMcfvryaJLplX0oFPcAQ_6(p, e, d);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 132):
	{
		{
			if (!(((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 39))&63U)))!=0)) goto LA108_;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			asgnRef((void**) (&(*e)._kind_6.sons->data[((NI) 1)]), makeAddr__oKhRC9bEKTxG5epdNiNWZ0w_2((*e)._kind_6.sons->data[((NI) 1)]));
			genCall__BKdMcfvryaJLplX0oFPcAQ_7(p, e, d);
		}
		goto LA106_;
		LA108_: ;
		{
			genSeqElemAppend__BKdMcfvryaJLplX0oFPcAQ_8(p, e, d);
		}
		LA106_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 115):
	{
		genStrEquals__BKdMcfvryaJLplX0oFPcAQ_9(p, e, d);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 116):
	{
		tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA aX60gensym115690004_;
		tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA bX60gensym115690005_;
		NimStringDesc* res_6;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T125_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T126_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T127_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T128_;
		nimZeroMem((void*)(&aX60gensym115690004_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
		nimZeroMem((void*)(&bX60gensym115690005_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
		{
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			if (!!(!(((*(*e)._kind_6.sons->data[((NI) 1)]).typ == NIM_NIL)))) goto LA115_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_656));
		}
		LA115_: ;
		{
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			if (!!(!(((*(*e)._kind_6.sons->data[((NI) 2)]).typ == NIM_NIL)))) goto LA119_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_657));
		}
		LA119_: ;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&aX60gensym115690004_));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 2)], (&bX60gensym115690005_));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA123_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA123_: ;
		res_6 = rawNewString(((NI) 80));
		res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T125_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T125_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_659));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T125_);
		res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T126_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T126_ = rdLoc__xidyzuHqIciXbQyEOKahDg(aX60gensym115690004_);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T126_);
		res_6 = resizeString(res_6, 2);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
		T127_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T127_ = rdLoc__xidyzuHqIciXbQyEOKahDg(bX60gensym115690005_);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T127_);
		res_6 = resizeString(res_6, 7);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_660));
		T128_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T128_ = rope__yShmEg9cffWxI7s5XzEKBow(res_6);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T128_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 117):
	{
		tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA aX60gensym115765205_;
		tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA bX60gensym115765206_;
		NimStringDesc* res_7;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T142_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T143_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T144_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T145_;
		nimZeroMem((void*)(&aX60gensym115765205_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
		nimZeroMem((void*)(&bX60gensym115765206_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
		{
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			if (!!(!(((*(*e)._kind_6.sons->data[((NI) 1)]).typ == NIM_NIL)))) goto LA132_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_656));
		}
		LA132_: ;
		{
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			if (!!(!(((*(*e)._kind_6.sons->data[((NI) 2)]).typ == NIM_NIL)))) goto LA136_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_657));
		}
		LA136_: ;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&aX60gensym115765205_));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 2)], (&bX60gensym115765206_));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA140_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA140_: ;
		res_7 = rawNewString(((NI) 80));
		res_7 = resizeString(res_7, 1);
appendString(res_7, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T142_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T142_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_659));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_7), T142_);
		res_7 = resizeString(res_7, 1);
appendString(res_7, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T143_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T143_ = rdLoc__xidyzuHqIciXbQyEOKahDg(aX60gensym115765205_);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_7), T143_);
		res_7 = resizeString(res_7, 2);
appendString(res_7, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
		T144_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T144_ = rdLoc__xidyzuHqIciXbQyEOKahDg(bX60gensym115765206_);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_7), T144_);
		res_7 = resizeString(res_7, 6);
appendString(res_7, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_661));
		T145_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T145_ = rope__yShmEg9cffWxI7s5XzEKBow(res_7);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T145_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 142):
	{
		genIsNil__BKdMcfvryaJLplX0oFPcAQ_10(p, e, d);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 102):
	{
		tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA aX60gensym115840205_;
		NimStringDesc* res_8;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T152_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T153_;
		nimZeroMem((void*)(&aX60gensym115840205_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&aX60gensym115840205_));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA150_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA150_: ;
		res_8 = rawNewString(((NI) 80));
		T152_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T152_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_663));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_8), T152_);
		res_8 = resizeString(res_8, 1);
appendString(res_8, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T153_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T153_ = rdLoc__xidyzuHqIciXbQyEOKahDg(aX60gensym115840205_);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_8), T153_);
		res_8 = resizeString(res_8, 1);
appendString(res_8, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
		aX60gensym115840205_.r = rope__yShmEg9cffWxI7s5XzEKBow(res_8);
		aX60gensym115840205_.flags = (aX60gensym115840205_.flags & ~ 1);
		{
			if (!((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0))) goto LA156_;
			getTemp__VjOFVqypINqQv5C3ECnxbw(p, (*e).typ, d, NIM_FALSE);
		}
		LA156_: ;
		genAssignment__BtucsTdHw7orsXIL75hNVg(p, (*d), aX60gensym115840205_, 0);
		gcUsage__Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, e);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 103):
	{
		tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA aX60gensym115875001_;
		NimStringDesc* res_9;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T163_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T164_;
		nimZeroMem((void*)(&aX60gensym115875001_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&aX60gensym115875001_));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA161_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA161_: ;
		res_9 = rawNewString(((NI) 80));
		T163_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T163_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_664));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_9), T163_);
		res_9 = resizeString(res_9, 1);
appendString(res_9, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T164_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T164_ = rdLoc__xidyzuHqIciXbQyEOKahDg(aX60gensym115875001_);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_9), T164_);
		res_9 = resizeString(res_9, 1);
appendString(res_9, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
		aX60gensym115875001_.r = rope__yShmEg9cffWxI7s5XzEKBow(res_9);
		aX60gensym115875001_.flags = (aX60gensym115875001_.flags & ~ 1);
		{
			if (!((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0))) goto LA167_;
			getTemp__VjOFVqypINqQv5C3ECnxbw(p, (*e).typ, d, NIM_FALSE);
		}
		LA167_: ;
		genAssignment__BtucsTdHw7orsXIL75hNVg(p, (*d), aX60gensym115875001_, 0);
		gcUsage__Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, e);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 101):
	{
		tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA aX60gensym115910001_;
		NimStringDesc* res_10;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T174_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T175_;
		nimZeroMem((void*)(&aX60gensym115910001_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&aX60gensym115910001_));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA172_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA172_: ;
		res_10 = rawNewString(((NI) 80));
		T174_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T174_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_665));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_10), T174_);
		res_10 = resizeString(res_10, 1);
appendString(res_10, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T175_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T175_ = rdLoc__xidyzuHqIciXbQyEOKahDg(aX60gensym115910001_);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_10), T175_);
		res_10 = resizeString(res_10, 1);
appendString(res_10, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
		aX60gensym115910001_.r = rope__yShmEg9cffWxI7s5XzEKBow(res_10);
		aX60gensym115910001_.flags = (aX60gensym115910001_.flags & ~ 1);
		{
			if (!((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0))) goto LA178_;
			getTemp__VjOFVqypINqQv5C3ECnxbw(p, (*e).typ, d, NIM_FALSE);
		}
		LA178_: ;
		genAssignment__BtucsTdHw7orsXIL75hNVg(p, (*d), aX60gensym115910001_, 0);
		gcUsage__Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, e);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 100):
	{
		tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA aX60gensym115945001_;
		NimStringDesc* res_11;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T185_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T186_;
		nimZeroMem((void*)(&aX60gensym115945001_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&aX60gensym115945001_));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA183_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA183_: ;
		res_11 = rawNewString(((NI) 80));
		T185_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T185_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_666));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_11), T185_);
		res_11 = resizeString(res_11, 1);
appendString(res_11, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T186_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T186_ = rdLoc__xidyzuHqIciXbQyEOKahDg(aX60gensym115945001_);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_11), T186_);
		res_11 = resizeString(res_11, 1);
appendString(res_11, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
		aX60gensym115945001_.r = rope__yShmEg9cffWxI7s5XzEKBow(res_11);
		aX60gensym115945001_.flags = (aX60gensym115945001_.flags & ~ 1);
		{
			if (!((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0))) goto LA189_;
			getTemp__VjOFVqypINqQv5C3ECnxbw(p, (*e).typ, d, NIM_FALSE);
		}
		LA189_: ;
		genAssignment__BtucsTdHw7orsXIL75hNVg(p, (*d), aX60gensym115945001_, 0);
		gcUsage__Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, e);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 104):
	{
		tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA aX60gensym115980001_;
		NimStringDesc* res_12;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T196_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T197_;
		nimZeroMem((void*)(&aX60gensym115980001_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&aX60gensym115980001_));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA194_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA194_: ;
		res_12 = rawNewString(((NI) 80));
		T196_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T196_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_667));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_12), T196_);
		res_12 = resizeString(res_12, 1);
appendString(res_12, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T197_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T197_ = rdLoc__xidyzuHqIciXbQyEOKahDg(aX60gensym115980001_);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_12), T197_);
		res_12 = resizeString(res_12, 1);
appendString(res_12, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
		aX60gensym115980001_.r = rope__yShmEg9cffWxI7s5XzEKBow(res_12);
		aX60gensym115980001_.flags = (aX60gensym115980001_.flags & ~ 1);
		{
			if (!((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0))) goto LA200_;
			getTemp__VjOFVqypINqQv5C3ECnxbw(p, (*e).typ, d, NIM_FALSE);
		}
		LA200_: ;
		genAssignment__BtucsTdHw7orsXIL75hNVg(p, (*d), aX60gensym115980001_, 0);
		gcUsage__Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, e);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 105):
	{
		tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA aX60gensym116015001_;
		NimStringDesc* res_13;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T207_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T208_;
		nimZeroMem((void*)(&aX60gensym116015001_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&aX60gensym116015001_));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA205_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA205_: ;
		res_13 = rawNewString(((NI) 80));
		T207_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T207_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_668));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_13), T207_);
		res_13 = resizeString(res_13, 1);
appendString(res_13, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T208_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T208_ = rdLoc__xidyzuHqIciXbQyEOKahDg(aX60gensym116015001_);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_13), T208_);
		res_13 = resizeString(res_13, 1);
appendString(res_13, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
		aX60gensym116015001_.r = rope__yShmEg9cffWxI7s5XzEKBow(res_13);
		aX60gensym116015001_.flags = (aX60gensym116015001_.flags & ~ 1);
		{
			if (!((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0))) goto LA211_;
			getTemp__VjOFVqypINqQv5C3ECnxbw(p, (*e).typ, d, NIM_FALSE);
		}
		LA211_: ;
		genAssignment__BtucsTdHw7orsXIL75hNVg(p, (*d), aX60gensym116015001_, 0);
		gcUsage__Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, e);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 106):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 151):
	{
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		expr__8mAL9ckajemzgfLPfeZVNoQ(p, (*e)._kind_6.sons->data[((NI) 1)], d);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 107):
	{
		{
			if (!(((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 40))&63U)))!=0)) goto LA217_;
			genEnumToStr__BKdMcfvryaJLplX0oFPcAQ_11(p, e, d);
		}
		goto LA215_;
		LA217_: ;
		{
			genRepr__BKdMcfvryaJLplX0oFPcAQ_2(p, e, d);
		}
		LA215_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 14):
	{
		genOf__8mAL9ckajemzgfLPfeZVNoQ_3(p, e, d);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 31):
	{
		genNew__X9cSqNhqEboci9cdmwBMNcBw(p, e);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 32):
	{
		{
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a_2;
			if (!(((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 40))&63U)))!=0)) goto LA225_;
			nimZeroMem((void*)(&a_2), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&a_2));
			rawGenNew__9cYWmo3ycKMiJEsDvNXZAQg(p, (&a_2), NIM_NIL, NIM_TRUE);
			gcUsage__Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, e);
		}
		goto LA223_;
		LA225_: ;
		{
			genNewFinalize__X9cSqNhqEboci9cdmwBMNcBw_2(p, e);
		}
		LA223_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 33):
	{
		genNewSeq__X9cSqNhqEboci9cdmwBMNcBw_3(p, e);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 34):
	{
		genNewSeqOfCap__BKdMcfvryaJLplX0oFPcAQ_12(p, e, d);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 9):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
		tyArray__JiWwrsTRC6xqNlGcBthSVA T231_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T232_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*e)._kind_6.sons->data[((NI) 1)]).typ, 256);
		nimZeroMem((void*)T231_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
		T231_[0] = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, t);
		T232_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T232_ = percent___c4YKWXetPKpaUUF7Qft2gA(T231_, 1);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T232_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 10):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t_2;
		tyArray__JiWwrsTRC6xqNlGcBthSVA T240_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T241_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		t_2 = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*e)._kind_6.sons->data[((NI) 1)]).typ, 256);
		{
			NIM_BOOL T236_;
			T236_ = (NIM_BOOL)0;
			T236_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands__VH3ghgQVwLSg3krOAoXigw) 2));
			if (T236_) goto LA237_;
			T236_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 31))&63U)))!=0);
			LA237_: ;
			if (!!(T236_)) goto LA238_;
			includeHeader__G5jzmdnwglHVk5qfDcXonA((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_691));
		}
		LA238_: ;
		nimZeroMem((void*)T240_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
		T240_[0] = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, t_2);
		T241_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T241_ = percent___rCIIoKC0OrXhpuTFTIZn0g(T240_, 1);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T241_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 11):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dotExpr;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t_3;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* tname;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* member;
		tyArray__mrugoXXRZUEeG9bEXo9auBKw T258_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T259_;
		dotExpr = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		{
			{
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				if (!((*(*e)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45))) goto LA246_;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				dotExpr = (*e)._kind_6.sons->data[((NI) 1)];
			}
			goto LA244_;
			LA246_: ;
			{
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				if (!((*(*e)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46))) goto LA249_;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*e)._kind_6.sons->data[((NI) 1)]).kind)>>3] &(1U<<((NU)((*(*e)._kind_6.sons->data[((NI) 1)]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 0)) >= (NU)((*(*e)._kind_6.sons->data[((NI) 1)])._kind_6.sons ? (*(*e)._kind_6.sons->data[((NI) 1)])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*e)._kind_6.sons->data[((NI) 1)])._kind_6.sons ? (*(*e)._kind_6.sons->data[((NI) 1)])._kind_6.sons->Sup.len : 0)-1); }
				dotExpr = (*(*e)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)];
			}
			goto LA244_;
			LA249_: ;
			{
				internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*e).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_692));
			}
			LA244_: ;
		}
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*dotExpr).kind)>>3] &(1U<<((NU)((*dotExpr).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*dotExpr)._kind_6.sons ? (*dotExpr)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*dotExpr)._kind_6.sons ? (*dotExpr)._kind_6.sons->Sup.len : 0)-1); }
		t_3 = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*dotExpr)._kind_6.sons->data[((NI) 0)]).typ, 256);
		tname = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, t_3);
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T256_;
			if (!((*t_3).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18))) goto LA254_;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*dotExpr).kind)>>3] &(1U<<((NU)((*dotExpr).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 1)) >= (NU)((*dotExpr)._kind_6.sons ? (*dotExpr)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*dotExpr)._kind_6.sons ? (*dotExpr)._kind_6.sons->Sup.len : 0)-1); }
			if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*dotExpr)._kind_6.sons->data[((NI) 1)]).kind)>>3] &(1U<<((NU)((*(*dotExpr)._kind_6.sons->data[((NI) 1)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
			T256_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T256_ = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*(*(*dotExpr)._kind_6.sons->data[((NI) 1)])._kind_4.sym).position)));
			member = amp___4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_693), T256_);
		}
		goto LA252_;
		LA254_: ;
		{
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*dotExpr).kind)>>3] &(1U<<((NU)((*dotExpr).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 1)) >= (NU)((*dotExpr)._kind_6.sons ? (*dotExpr)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*dotExpr)._kind_6.sons ? (*dotExpr)._kind_6.sons->Sup.len : 0)-1); }
			if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*dotExpr)._kind_6.sons->data[((NI) 1)]).kind)>>3] &(1U<<((NU)((*(*dotExpr)._kind_6.sons->data[((NI) 1)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
			member = (*(*(*dotExpr)._kind_6.sons->data[((NI) 1)])._kind_4.sym).loc.r;
		}
		LA252_: ;
		nimZeroMem((void*)T258_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
		T258_[0] = tname;
		T258_[1] = member;
		T259_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T259_ = percent___lXaYcLcHHuQ46VvpH6Qr2A(T258_, 2);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T259_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 42):
	{
		genSomeCast__BKdMcfvryaJLplX0oFPcAQ_13(p, e, d);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 30):
	{
		genOrd__BKdMcfvryaJLplX0oFPcAQ_14(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) 43):
	{
		tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA aX60gensym116155031_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T268_;
		NimStringDesc* res_14;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T273_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T274_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T275_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T280_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T281_;
		nimZeroMem((void*)(&aX60gensym116155031_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
		{
			if (!!(((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA266_;
			internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*e).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_704));
		}
		LA266_: ;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&aX60gensym116155031_));
		T268_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T268_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA271_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA271_: ;
		res_14 = rawNewString(((NI) 80));
		res_14 = resizeString(res_14, 4);
appendString(res_14, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_285));
		T273_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T273_ = rdLoc__xidyzuHqIciXbQyEOKahDg(aX60gensym116155031_);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_14), T273_);
		res_14 = resizeString(res_14, 4);
appendString(res_14, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_576));
		T274_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T274_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_705));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_14), T274_);
		res_14 = resizeString(res_14, 1);
appendString(res_14, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T275_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T275_ = rdLoc__xidyzuHqIciXbQyEOKahDg(aX60gensym116155031_);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_14), T275_);
		res_14 = resizeString(res_14, 4);
appendString(res_14, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_706));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA278_;
			res_14 = resizeString(res_14, 1);
appendString(res_14, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA278_: ;
		T280_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T280_ = rope__yShmEg9cffWxI7s5XzEKBow(res_14);
		T281_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T281_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T280_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T268_, T281_);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 44):
	{
		tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA aX60gensym116210007_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T287_;
		NimStringDesc* res_15;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T292_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T293_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T294_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T299_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T300_;
		nimZeroMem((void*)(&aX60gensym116210007_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
		{
			if (!!(((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA285_;
			internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*e).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_704));
		}
		LA285_: ;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&aX60gensym116210007_));
		T287_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T287_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA290_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA290_: ;
		res_15 = rawNewString(((NI) 80));
		res_15 = resizeString(res_15, 4);
appendString(res_15, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_285));
		T292_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T292_ = rdLoc__xidyzuHqIciXbQyEOKahDg(aX60gensym116210007_);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_15), T292_);
		res_15 = resizeString(res_15, 4);
appendString(res_15, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_576));
		T293_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T293_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_707));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_15), T293_);
		res_15 = resizeString(res_15, 1);
appendString(res_15, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T294_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T294_ = rdLoc__xidyzuHqIciXbQyEOKahDg(aX60gensym116210007_);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_15), T294_);
		res_15 = resizeString(res_15, 4);
appendString(res_15, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_706));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA297_;
			res_15 = resizeString(res_15, 1);
appendString(res_15, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA297_: ;
		T299_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T299_ = rope__yShmEg9cffWxI7s5XzEKBow(res_15);
		T300_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T300_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T299_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T287_, T300_);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 136):
	{
		genSetLengthStr__BKdMcfvryaJLplX0oFPcAQ_15(p, e, d);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 137):
	{
		genSetLengthSeq__BKdMcfvryaJLplX0oFPcAQ_16(p, e, d);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 39):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 40):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 41):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 120):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 119):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 118):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 121):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 122):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 123):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 133):
	{
		genSetOp__TU9cJnldbmGa9bZDxaR6I4tg_5(p, e, d, op);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 144):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 145):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 135):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 146):
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* opr;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*e)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*e)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
		opr = (*(*e)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
		{
			tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* prc;
			NimStringDesc* T309_;
			NIM_BOOL wasDeclared;
			NimStringDesc* T310_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T311_;
			if (!!((((*opr).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA) 3))&15U)))!=0))) goto LA307_;
			T309_ = (NimStringDesc*)0;
			T309_ = dollar___mZ66tEveFIQokq3arf8Klw((*opr).loc.r);
			prc = getCompilerProc__4qXS5VHrKJ5hq9crvvz8tIA((*(*(*p).module).g).graph, T309_);
			wasDeclared = containsOrIncl__VFt0uM7bgfJ5age9alOsU9cg((&(*(*p).module).declaredProtos), (*prc).Sup.id);
			T310_ = (NimStringDesc*)0;
			T310_ = dollar___mZ66tEveFIQokq3arf8Klw((*opr).loc.r);
			T311_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T311_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, T310_);
			(void)(T311_);
			{
				NIM_BOOL T314_;
				tyArray__wqYjTJU9ab2ZgEFMaQc3vNA T318_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T319_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T320_;
				T314_ = (NIM_BOOL)0;
				T314_ = !(wasDeclared);
				if (!(T314_)) goto LA315_;
				T314_ = hcrOn__NAlbw3fU59aFdo7L5aQtmkw(p);
				LA315_: ;
				if (!T314_) goto LA316_;
				nimZeroMem((void*)T318_, sizeof(tyArray__wqYjTJU9ab2ZgEFMaQc3vNA));
				T318_[0] = mangleDynLibProc__MkmvPNwLUVhzodPsMjdbJw(prc);
				T319_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T319_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*prc).loc);
				T318_[1] = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, T319_);
				T318_[2] = getModuleDllPath__RaNE9b8A430I9bfpgZmdrC1w_3((*p).module, prc);
				T320_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T320_ = percent___vHbYzYlzLPcurSm0Hu8InQ(T318_, 3);
				add__IM4kcMNkkOLJtqdEqSxR8A(&(*(*p).module).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 18))- 0], T320_);
			}
			LA316_: ;
		}
		LA307_: ;
		genCall__BKdMcfvryaJLplX0oFPcAQ_7(p, e, d);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 150):
	{
		genDefault__8mAL9ckajemzgfLPfeZVNoQ_4(p, e, d);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 153):
	{
		genReset__UtJx89cn0a8CNSWWmaj6raA_2(p, e);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 19):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T324_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		T324_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T324_ = skipConv__BH9abOhPX8pH0DnEWlRxmlw((*e)._kind_6.sons->data[((NI) 1)]);
		genEcho__UtJx89cn0a8CNSWWmaj6raA_3(p, T324_);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 143):
	{
		genArrToSeq__8mAL9ckajemzgfLPfeZVNoQ_5(p, e, d);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 207) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 254):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 21) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 27):
	{
		NimStringDesc* T327_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*e)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*e)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
		T327_ = (NimStringDesc*)0;
		T327_ = nsuFormatSingleElem(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_763), (*(*(*(*e)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s);
		localError__NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*e).info, T327_);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 193):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
		n = wrapProcForSpawn__9cWXyScktPXvQmRC9aBs0ADw((*(*(*p).module).g).graph, (*(*p).module).module, e, (*e).typ, NIM_NIL, NIM_NIL);
		expr__8mAL9ckajemzgfLPfeZVNoQ(p, n, d);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 140):
	{
		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) 194):
	{
		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 (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			if (!((*(*e)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 63) || (*(*e)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64))) goto LA333_;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*e)._kind_6.sons->data[((NI) 1)]).kind)>>3] &(1U<<((NU)((*(*e)._kind_6.sons->data[((NI) 1)]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*(*e)._kind_6.sons->data[((NI) 1)])._kind_6.sons ? (*(*e)._kind_6.sons->data[((NI) 1)])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*e)._kind_6.sons->data[((NI) 1)])._kind_6.sons ? (*(*e)._kind_6.sons->data[((NI) 1)])._kind_6.sons->Sup.len : 0)-1); }
			x = (*(*e)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)];
		}
		goto LA331_;
		LA333_: ;
		{
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			x = (*e)._kind_6.sons->data[((NI) 1)];
		}
		LA331_: ;
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, x, (&a_3));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 2)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 2)], (&b_3));
		genDeepCopy__jdslQ8TsNpkTt8SvBLJjEA_2(p, a_3, b_3);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 126):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 90):
	{
		genCall__BKdMcfvryaJLplX0oFPcAQ_7(p, e, d);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 148):
	{
		genWasMoved__UtJx89cn0a8CNSWWmaj6raA_4(p, e);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 147):
	{
		genMove__8mAL9ckajemzgfLPfeZVNoQ_7(p, e, d);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 149):
	{
		genDestroy__UtJx89cn0a8CNSWWmaj6raA_5(p, e);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 152):
	{
		tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA aX60gensym116325007_;
		NimStringDesc* res_16;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T345_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T346_;
		nimZeroMem((void*)(&aX60gensym116325007_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 1)], (&aX60gensym116325007_));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA343_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA343_: ;
		res_16 = rawNewString(((NI) 80));
		T345_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T345_ = rdLoc__xidyzuHqIciXbQyEOKahDg(aX60gensym116325007_);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_16), T345_);
		res_16 = resizeString(res_16, 6);
appendString(res_16, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_199));
		T346_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T346_ = rope__yShmEg9cffWxI7s5XzEKBow(res_16);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T346_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 125):
	{
		localError__NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*e).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_781));
	}
	break;
	default:
	{
		NimStringDesc* T349_;
		T349_ = (NimStringDesc*)0;
		T349_ = rawNewString((reprEnum((NI)op, (&NTI__shZhZOdbVC5nnFvcXQAImg_)) ? reprEnum((NI)op, (&NTI__shZhZOdbVC5nnFvcXQAImg_))->Sup.len : 0) + 14);
appendString(T349_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_782));
appendString(T349_, reprEnum((NI)op, (&NTI__shZhZOdbVC5nnFvcXQAImg_)));
		internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*e).info, T349_);
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genSetNode__NYI5fC69aIqZGRakncXv9cNQ_4)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	tySequence__6H5Oh5UUvVCLiakt9aTwtUQ* cs;
	NI size;
	NI64 T1_;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	cs = (tySequence__6H5Oh5UUvVCLiakt9aTwtUQ*)0;
	T1_ = (NI64)0;
	T1_ = getSize__vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, (*n).typ);
	if ((T1_) < ((NI) (-2147483647 -1)) || (T1_) > ((NI) 2147483647)){ raiseRangeErrorI(T1_, ((NI) (-2147483647 -1)), ((NI) 2147483647)); }
	size = ((NI) (T1_));
	toBitSet__WoVO5FKglpQIWZt87zKYXA((*(*(*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___ShdZ6VrAQkY0nWR9a39b9bGdQ((*(*p).module).tmpBase, T6_);
		{
			NI TM__MQdRN7fpbG7rPm4JpVVAhA_783;
			tyArray__wqYjTJU9ab2ZgEFMaQc3vNA T11_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T12_;
			if (!(id == ((NI) ((*(*p).module).labels)))) goto LA9_;
			if (nimAddInt((*(*p).module).labels, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_783)) { raiseOverflow(); };
			if (TM__MQdRN7fpbG7rPm4JpVVAhA_783 < 0 || TM__MQdRN7fpbG7rPm4JpVVAhA_783 > 2147483647){ raiseOverflow(); }
			(*(*p).module).labels = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_783);
			nimZeroMem((void*)T11_, sizeof(tyArray__wqYjTJU9ab2ZgEFMaQc3vNA));
			T11_[0] = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, (*n).typ);
			T11_[1] = result;
			T11_[2] = genRawSetData__P8T6oQDSZlTI5UtVVMB9c9aw(cs, size);
			T12_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T12_ = percent___bJpxHYPJaxWBQn6QxwBA4w(T11_, 3);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*(*p).module).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], T12_);
		}
		LA9_: ;
	}
	goto LA2_;
	LA4_: ;
	{
		result = genRawSetData__P8T6oQDSZlTI5UtVVMB9c9aw(cs, size);
	}
	LA2_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genSetConstr__BKdMcfvryaJLplX0oFPcAQ_18)(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_4(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_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T16_;
			NimStringDesc* res;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T21_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T22_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T23_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T28_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T29_;
			T13_ = (NI64)0;
			T13_ = getSize__vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, (*e).typ);
			if (!(IL64(8) < T13_)) goto LA14_;
			T16_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T16_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA19_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA19_: ;
			res = rawNewString(((NI) 80));
			T21_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T21_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_110));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T21_);
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
			T22_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T22_ = rdLoc__xidyzuHqIciXbQyEOKahDg((*d));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T22_);
			res = resizeString(res, 9);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_113));
			T23_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T23_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, (*e).typ);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T23_);
			res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_114));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA26_;
				res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA26_: ;
			T28_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T28_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
			T29_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T29_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T28_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T16_, T29_);
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
				tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* colontmp_;
				NI i;
				NI L;
				NI T31_;
				it = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				colontmp_ = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*)0;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				colontmp_ = (*e)._kind_6.sons;
				i = ((NI) 0);
				T31_ = (colontmp_ ? colontmp_->Sup.len : 0);
				L = T31_;
				{
					while (1) {
						NI TM__MQdRN7fpbG7rPm4JpVVAhA_784;
						if (!(i < L)) goto LA33;
						if ((NU)(i) >= (NU)(colontmp_ ? colontmp_->Sup.len : 0)){ raiseIndexError2(i,(colontmp_ ? colontmp_->Sup.len : 0)-1); }
						it = colontmp_->data[i];
						{
							tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T38_;
							tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T39_;
							tyArray__f7nG5LD47BH5K9c6mASit3g T40_;
							tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T41_;
							tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T42_;
							if (!((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA36_;
							T38_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
							T38_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*(*(*p).module).g).graph, TM__MQdRN7fpbG7rPm4JpVVAhA_147, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
							getTemp__VjOFVqypINqQv5C3ECnxbw(p, T38_, (&idx), NIM_FALSE);
							if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
							if ((NU)(((NI) 0)) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
							initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*it)._kind_6.sons->data[((NI) 0)], (&a));
							if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
							if ((NU)(((NI) 1)) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
							initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*it)._kind_6.sons->data[((NI) 1)], (&b));
							T39_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
							T39_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
							nimZeroMem((void*)T40_, sizeof(tyArray__f7nG5LD47BH5K9c6mASit3g));
							T40_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(idx);
							T40_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg((*d));
							T40_[2] = rdSetElemLoc__yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, a, (*e).typ);
							T40_[3] = rdSetElemLoc__yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, b, (*e).typ);
							T41_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
							T41_ = percent___fOn9b5Ij3ytw2Ui9a2CPI5zw(T40_, 4);
							T42_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
							T42_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T41_);
							add__IM4kcMNkkOLJtqdEqSxR8A(T39_, T42_);
						}
						goto LA34_;
						LA36_: ;
						{
							tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T44_;
							tyArray__mrugoXXRZUEeG9bEXo9auBKw T45_;
							tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T46_;
							tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T47_;
							initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, it, (&a));
							T44_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
							T44_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
							nimZeroMem((void*)T45_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
							T45_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg((*d));
							T45_[1] = rdSetElemLoc__yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, a, (*e).typ);
							T46_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
							T46_ = percent___zJU3FoYOdJ9bmuODPmqtgdQ(T45_, 2);
							T47_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
							T47_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T46_);
							add__IM4kcMNkkOLJtqdEqSxR8A(T44_, T47_);
						}
						LA34_: ;
						if (nimAddInt(i, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_784)) { raiseOverflow(); };
						i = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_784);
						{
							NI T50_;
							T50_ = (colontmp_ ? colontmp_->Sup.len : 0);
							if (!!((T50_ == L))) goto LA51_;
							failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_26));
						}
						LA51_: ;
					} LA33: ;
				}
			}
		}
		goto LA11_;
		LA14_: ;
		{
			NimStringDesc* ts;
			NimStringDesc* T54_;
			NI64 T55_;
			NI64 TM__MQdRN7fpbG7rPm4JpVVAhA_785;
			NimStringDesc* T56_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T57_;
			tyArray__JiWwrsTRC6xqNlGcBthSVA T58_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T59_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T60_;
			T54_ = (NimStringDesc*)0;
			T55_ = (NI64)0;
			T55_ = getSize__vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, (*e).typ);
			if (nimMulInt64(T55_, IL64(8), &TM__MQdRN7fpbG7rPm4JpVVAhA_785)) { raiseOverflow(); };
			T56_ = (NimStringDesc*)0;
			T56_ = nimInt64ToStr((NI64)(TM__MQdRN7fpbG7rPm4JpVVAhA_785));
			T54_ = rawNewString((T56_ ? T56_->Sup.len : 0) + 2);
appendString(T54_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_390));
appendString(T54_, T56_);
			ts = T54_;
			T57_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T57_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			nimZeroMem((void*)T58_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
			T58_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg((*d));
			T59_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T59_ = percent___1MXpJAdeOMc2XMg5H7t9aSg(T58_, 1);
			T60_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T60_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T59_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T57_, T60_);
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it_2;
				tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* colontmp__2;
				NI i_2;
				NI L_2;
				NI T62_;
				it_2 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				colontmp__2 = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*)0;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				colontmp__2 = (*e)._kind_6.sons;
				i_2 = ((NI) 0);
				T62_ = (colontmp__2 ? colontmp__2->Sup.len : 0);
				L_2 = T62_;
				{
					while (1) {
						NI TM__MQdRN7fpbG7rPm4JpVVAhA_786;
						if (!(i_2 < L_2)) goto LA64;
						if ((NU)(i_2) >= (NU)(colontmp__2 ? colontmp__2->Sup.len : 0)){ raiseIndexError2(i_2,(colontmp__2 ? colontmp__2->Sup.len : 0)-1); }
						it_2 = colontmp__2->data[i_2];
						{
							tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T69_;
							tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T70_;
							tyArray__duFhZXIIlrbrM62cWjNekg T71_;
							tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T72_;
							tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T73_;
							if (!((*it_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA67_;
							T69_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
							T69_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*(*(*p).module).g).graph, TM__MQdRN7fpbG7rPm4JpVVAhA_147, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
							getTemp__VjOFVqypINqQv5C3ECnxbw(p, T69_, (&idx), NIM_FALSE);
							if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*it_2).kind)>>3] &(1U<<((NU)((*it_2).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
							if ((NU)(((NI) 0)) >= (NU)((*it_2)._kind_6.sons ? (*it_2)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*it_2)._kind_6.sons ? (*it_2)._kind_6.sons->Sup.len : 0)-1); }
							initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*it_2)._kind_6.sons->data[((NI) 0)], (&a));
							if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*it_2).kind)>>3] &(1U<<((NU)((*it_2).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
							if ((NU)(((NI) 1)) >= (NU)((*it_2)._kind_6.sons ? (*it_2)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*it_2)._kind_6.sons ? (*it_2)._kind_6.sons->Sup.len : 0)-1); }
							initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*it_2)._kind_6.sons->data[((NI) 1)], (&b));
							T70_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
							T70_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
							nimZeroMem((void*)T71_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
							T71_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(idx);
							T71_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg((*d));
							T71_[2] = rdSetElemLoc__yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, a, (*e).typ);
							T71_[3] = rdSetElemLoc__yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, b, (*e).typ);
							T71_[4] = rope__yShmEg9cffWxI7s5XzEKBow(ts);
							T72_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
							T72_ = percent___VNAv31sqVgxrd9aXeFF5wYw(T71_, 5);
							T73_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
							T73_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T72_);
							add__IM4kcMNkkOLJtqdEqSxR8A(T70_, T73_);
						}
						goto LA65_;
						LA67_: ;
						{
							tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T75_;
							tyArray__wqYjTJU9ab2ZgEFMaQc3vNA T76_;
							tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T77_;
							tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T78_;
							initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, it_2, (&a));
							T75_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
							T75_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
							nimZeroMem((void*)T76_, sizeof(tyArray__wqYjTJU9ab2ZgEFMaQc3vNA));
							T76_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg((*d));
							T76_[1] = rdSetElemLoc__yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, a, (*e).typ);
							T76_[2] = rope__yShmEg9cffWxI7s5XzEKBow(ts);
							T77_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
							T77_ = percent___MULS9c8dKz2mJ1U9a9cMyTCYw(T76_, 3);
							T78_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
							T78_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T77_);
							add__IM4kcMNkkOLJtqdEqSxR8A(T75_, T78_);
						}
						LA65_: ;
						if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_786)) { raiseOverflow(); };
						i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_786);
						{
							NI T81_;
							T81_ = (colontmp__2 ? colontmp__2->Sup.len : 0);
							if (!!((T81_ == L_2))) goto LA82_;
							failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_26));
						}
						LA82_: ;
					} LA64: ;
				}
			}
		}
		LA11_: ;
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, exprComplexConst__8mAL9ckajemzgfLPfeZVNoQ_8)(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__jXUNYqSX189axAU8O9bJBgpA((*p).module, t);
	(void)(T1_);
	id = nodeTableTestOrSet__tWmKJP7glBWLCISQFGGk2Q((&(*(*p).module).dataCache), n, ((NI) ((*(*p).module).labels)));
	T2_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (id)));
	tmp = amp___ShdZ6VrAQkY0nWR9a39b9bGdQ((*(*p).module).tmpBase, T2_);
	{
		NI TM__MQdRN7fpbG7rPm4JpVVAhA_787;
		tyArray__wqYjTJU9ab2ZgEFMaQc3vNA T7_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T8_;
		if (!(id == ((NI) ((*(*p).module).labels)))) goto LA5_;
		if (nimAddInt((*(*p).module).labels, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_787)) { raiseOverflow(); };
		if (TM__MQdRN7fpbG7rPm4JpVVAhA_787 < 0 || TM__MQdRN7fpbG7rPm4JpVVAhA_787 > 2147483647){ raiseOverflow(); }
		(*(*p).module).labels = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_787);
		nimZeroMem((void*)T7_, sizeof(tyArray__wqYjTJU9ab2ZgEFMaQc3vNA));
		T7_[0] = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, t);
		T7_[1] = tmp;
		T7_[2] = genBracedInit__zuhkXYLhosH9cERvaWpRX2w(p, n, NIM_TRUE);
		T8_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T8_ = percent___bJpxHYPJaxWBQn6QxwBA4w(T7_, 3);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*(*p).module).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], T8_);
	}
	LA5_: ;
	{
		if (!((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0))) goto LA11_;
		fillLoc__o49bXuxJYpCizOgQ54UViIg(d, ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 8), n, tmp, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 1));
	}
	goto LA9_;
	LA11_: ;
	{
		putDataIntoDest__fYECstGN5jPehhn5p8Iclg(p, d, n, tmp);
		{
			if (!!(((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28)))) goto LA16_;
			(*d).storage = ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 1);
		}
		LA16_: ;
	}
	LA9_: ;
}
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_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = ((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0));
		if (!(T4_)) goto LA5_;
		T6_ = (NI)0;
		T6_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		T4_ = (((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38)) < T6_);
		LA5_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA7_;
		T3_ = isDeepConstExpr__sjm2oD6Aq9cG39aPE7CTvtmA(n, NIM_FALSE);
		LA7_: ;
		if (!T3_) goto LA8_;
		rawConstExpr__8mAL9ckajemzgfLPfeZVNoQ_2(p, n, d);
		result = NIM_TRUE;
	}
	goto LA1_;
	LA8_: ;
	{
		result = NIM_FALSE;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genArrayConstr__8mAL9ckajemzgfLPfeZVNoQ_9)(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 i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T13_;
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T14_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T15_;
					tyArray__mrugoXXRZUEeG9bEXo9auBKw T16_;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_788;
					if (!(i_2 < colontmp_)) goto LA12;
					i = i_2;
					T13_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T13_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36134350135273744));
					T14_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T14_ = elemType__PfgI9ap7WOnsRfFV4znQ27w_2(T13_);
					T15_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T15_ = lodeTyp__Zo4XKVi6BmwOZE51Yogqwg(T14_);
					initLoc__qlujIAW86QclHYUVxlHRiQ((&arr), ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 6), T15_, (*d).storage);
					nimZeroMem((void*)T16_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
					T16_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg((*d));
					T16_[1] = intLiteral__kQA0lBUvzOSZAw7DHC4Fjg(((NI64) (i)));
					arr.r = percent___jadqNPnY9aM3oxYK6jarLrA(T16_, 2);
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
					expr__8mAL9ckajemzgfLPfeZVNoQ(p, (*n)._kind_6.sons->data[i], (&arr));
					if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_788)) { raiseOverflow(); };
					i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_788);
				} LA12: ;
			}
		}
	}
	LA4_: ;
}
static N_INLINE(NIM_BOOL, isRoutine__Ye2MiAptq3GrXxTQeyXNeAast)(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__4MUa2M7mDMhaGJLAFrkWDwcgen)(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;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	T2_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
	if (!(T2_)) goto LA3_;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
	T2_ = isRoutine__Ye2MiAptq3GrXxTQeyXNeAast((*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym);
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	T1_ = ((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23));
	LA4_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genClosure__8mAL9ckajemzgfLPfeZVNoQ_10)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	{
		if (!!(((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 155)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_789));
	}
	LA3_: ;
	{
		NIM_BOOL T7_;
		NI TM__MQdRN7fpbG7rPm4JpVVAhA_790;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* tmp;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T10_;
		tyArray__wqYjTJU9ab2ZgEFMaQc3vNA T11_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T12_;
		T7_ = (NIM_BOOL)0;
		T7_ = isConstClosure__4MUa2M7mDMhaGJLAFrkWDwcgen(n);
		if (!T7_) goto LA8_;
		if (nimAddInt((*(*p).module).labels, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_790)) { raiseOverflow(); };
		if (TM__MQdRN7fpbG7rPm4JpVVAhA_790 < 0 || TM__MQdRN7fpbG7rPm4JpVVAhA_790 > 2147483647){ raiseOverflow(); }
		(*(*p).module).labels = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_790);
		T10_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T10_ = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*(*p).module).labels)));
		tmp = amp___4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_791), T10_);
		nimZeroMem((void*)T11_, sizeof(tyArray__wqYjTJU9ab2ZgEFMaQc3vNA));
		T11_[0] = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, (*n).typ);
		T11_[1] = tmp;
		T11_[2] = genBracedInit__zuhkXYLhosH9cERvaWpRX2w(p, n, NIM_TRUE);
		T12_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = percent___bJpxHYPJaxWBQn6QxwBA4w(T11_, 3);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*(*p).module).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], T12_);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, n, tmp, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 1));
	}
	goto LA5_;
	LA8_: ;
	{
		tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA tmp_2;
		tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a;
		tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA b;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T19_;
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T24_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T25_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T26_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T27_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T32_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T33_;
		nimZeroMem((void*)(&tmp_2), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
		nimZeroMem((void*)(&a), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
		nimZeroMem((void*)(&b), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n)._kind_6.sons->data[((NI) 0)], (&a));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n)._kind_6.sons->data[((NI) 1)], (&b));
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T16_;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
			T16_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T16_ = skipConv__BH9abOhPX8pH0DnEWlRxmlw((*n)._kind_6.sons->data[((NI) 0)]);
			if (!((*T16_).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 155))) goto LA17_;
			internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_792));
		}
		LA17_: ;
		getTemp__VjOFVqypINqQv5C3ECnxbw(p, (*n).typ, (&tmp_2), NIM_FALSE);
		T19_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T19_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA22_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA22_: ;
		res = rawNewString(((NI) 80));
		T24_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T24_ = rdLoc__xidyzuHqIciXbQyEOKahDg(tmp_2);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T24_);
		res = resizeString(res, 9);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_290));
		T25_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T25_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T25_);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_154));
		T26_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T26_ = rdLoc__xidyzuHqIciXbQyEOKahDg(tmp_2);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T26_);
		res = resizeString(res, 9);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_793));
		T27_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T27_ = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T27_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_104));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA30_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA30_: ;
		T32_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T32_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
		T33_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T33_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T32_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T19_, T33_);
		putLocIntoDest__SkhzpH2DDHJ7pbmCpsHIPg(p, d, tmp_2);
	}
	LA5_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genTupleConstr__8mAL9ckajemzgfLPfeZVNoQ_11)(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__jXUNYqSX189axAU8O9bJBgpA((*p).module, t);
		(void)(T6_);
		{
			if (!((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0))) goto LA9_;
			getTemp__VjOFVqypINqQv5C3ECnxbw(p, t, d, NIM_FALSE);
		}
		LA9_: ;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
					tyArray__mrugoXXRZUEeG9bEXo9auBKw T18_;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_794;
					if (!(i_2 < colontmp_)) goto LA13;
					i = i_2;
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
					it = (*n)._kind_6.sons->data[i];
					{
						if (!((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA16_;
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if ((NU)(((NI) 1)) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
						it = (*it)._kind_6.sons->data[((NI) 1)];
					}
					LA16_: ;
					initLoc__qlujIAW86QclHYUVxlHRiQ((&rec), ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 6), it, (*d).storage);
					nimZeroMem((void*)T18_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
					T18_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg((*d));
					T18_[1] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (i)));
					rec.r = percent___5TB09c2Iz60T0YagbSbI5RQ(T18_, 2);
					rec.flags |= ((NU16)1)<<((((tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA) 9)) & 15);
					expr__8mAL9ckajemzgfLPfeZVNoQ(p, it, (&rec));
					if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_794)) { raiseOverflow(); };
					i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_794);
				} LA13: ;
			}
		}
	}
	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;
	{
		if (!!(!(((*r) == NIM_NIL)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_795));
	}
	LA3_: ;
	{
		while (1) {
			if (!!((ty_2 == NIM_NIL))) goto LA6;
			ty_2 = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(ty_2, IL64(36275087638268176));
			{
				if (!!(((*ty_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18) || (*ty_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17)))) goto LA9_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_796));
			}
			LA9_: ;
			result = lookupInRecord__gYQxUKQhlRY6yBu3Ll2TYg((*ty_2).n, (*field).name);
			{
				if (!!((result == NIM_NIL))) goto LA13_;
				{
					if (!!((resTyp == NIM_NIL))) goto LA17_;
					unsureAsgnRef((void**) (&(*resTyp)), ty_2);
				}
				LA17_: ;
				goto LA5;
			}
			LA13_: ;
			{
				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) 31))&63U)))!=0);
				LA22_: ;
				if (!!(T21_)) goto LA23_;
				add__yG4AKzsBRS1W4MANDlXQeg(r, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_115));
			}
			LA23_: ;
			if ((NU)(((NI) 0)) >= (NU)((*ty_2).sons ? (*ty_2).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*ty_2).sons ? (*ty_2).sons->Sup.len : 0)-1); }
			ty_2 = (*ty_2).sons->data[((NI) 0)];
		} LA6: ;
	} LA5: ;
	{
		if (!(result == NIM_NIL)) goto LA27_;
		internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*field).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_797));
	}
	LA27_: ;
	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 i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(e);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* op;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* disc;
				NimStringDesc* msg;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* strLit;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T20_;
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_803;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(i) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				it = (*e)._kind_6.sons->data[i];
				{
					if (!!(((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32)))) goto LA6_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_799));
				}
				LA6_: ;
				{
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(((NI) 0)) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
					if (!!(((*(*it)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA10_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_800));
				}
				LA10_: ;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 0)) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
				if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*it)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*it)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
				op = (*(*it)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
				{
					if (!((*op).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 95))) goto LA14_;
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(((NI) 1)) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
					it = (*it)._kind_6.sons->data[((NI) 1)];
				}
				LA14_: ;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 2)) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
				disc = skipConv__BH9abOhPX8pH0DnEWlRxmlw((*it)._kind_6.sons->data[((NI) 2)]);
				{
					if (!!(((*disc).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA18_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_801));
				}
				LA18_: ;
				initLoc__qlujIAW86QclHYUVxlHRiQ((&test), ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0), it, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 2));
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 1)) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
				initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*it)._kind_6.sons->data[((NI) 1)], (&u));
				initLoc__qlujIAW86QclHYUVxlHRiQ((&v), ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 6), disc, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
				v.r = obj;
				add__yG4AKzsBRS1W4MANDlXQeg(&v.r, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_126));
				if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*disc).kind)>>3] &(1U<<((NU)((*disc).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
				add__IM4kcMNkkOLJtqdEqSxR8A(&v.r, (*(*disc)._kind_4.sym).loc.r);
				genInExprAux__9cclvr8sbqtJj8irRbQQpqQ(p, it, (&u), (&v), (&test));
				if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*disc).kind)>>3] &(1U<<((NU)((*disc).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
				msg = genFieldError__NFvxltQN2CgyfP8SjDTS1g(field, (*disc)._kind_4.sym);
				T20_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T20_ = newStrNode__zLcHGdlEbBYFtoCoan9agkg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20), msg);
				strLit = genStringLiteral__SO73hKlDdl5sMaSHTbOJLw((*p).module, T20_);
				{
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T25_;
					NimStringDesc* res;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T30_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T31_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T32_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T37_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T38_;
					if (!((*op).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 95))) goto LA23_;
					T25_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
					T25_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
					{
						if (!!(!(((*p).module == NIM_NIL)))) goto LA28_;
						failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
					}
					LA28_: ;
					res = rawNewString(((NI) 80));
					res = resizeString(res, 4);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_285));
					T30_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T30_ = rdLoc__xidyzuHqIciXbQyEOKahDg(test);
					cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T30_);
					res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_563));
					T31_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T31_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_802));
					cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T31_);
					res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
					cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), strLit);
					res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_578));
					T32_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T32_ = raiseInstr__3AsTOpq9crZUYBL9aD1lXBng_4(p);
					cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T32_);
					res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_235));
					{
						if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA35_;
						res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
					}
					LA35_: ;
					T37_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T37_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
					T38_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T38_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T37_);
					add__IM4kcMNkkOLJtqdEqSxR8A(T25_, T38_);
				}
				goto LA21_;
				LA23_: ;
				{
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T40_;
					NimStringDesc* res_2;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T45_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T46_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T47_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T52_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T53_;
					T40_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
					T40_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
					{
						if (!!(!(((*p).module == NIM_NIL)))) goto LA43_;
						failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
					}
					LA43_: ;
					res_2 = rawNewString(((NI) 80));
					res_2 = resizeString(res_2, 6);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_357));
					T45_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T45_ = rdLoc__xidyzuHqIciXbQyEOKahDg(test);
					cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T45_);
					res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_487));
					T46_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T46_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_802));
					cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T46_);
					res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
					cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), strLit);
					res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_578));
					T47_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T47_ = raiseInstr__3AsTOpq9crZUYBL9aD1lXBng_4(p);
					cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T47_);
					res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_235));
					{
						if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA50_;
						res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
					}
					LA50_: ;
					T52_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T52_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
					T53_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T53_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T52_);
					add__IM4kcMNkkOLJtqdEqSxR8A(T40_, T53_);
				}
				LA21_: ;
				if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_803)) { raiseOverflow(); };
				i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_803);
			} LA3: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, genObjConstr__BKdMcfvryaJLplX0oFPcAQ_19)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	NIM_BOOL isRef;
	NIM_BOOL useTemp;
	NIM_BOOL T14_;
	NIM_BOOL T15_;
	tyEnum_TAnalysisResult__p9a9bcrXoRmLT4eUuwrDq9b4w T18_;
	tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA tmp;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T31_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ty;
{	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		T3_ = (NIM_BOOL)0;
		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) 31))&63U)))!=0);
		LA5_: ;
		T3_ = !(T4_);
		if (!(T3_)) goto LA6_;
		T3_ = !((((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 39))&63U)))!=0));
		LA6_: ;
		if (!T3_) goto LA7_;
		{
			NIM_BOOL T11_;
			T11_ = (NIM_BOOL)0;
			T11_ = handleConstExpr__3euU5r9bcG0Rnz4QchCOUyw(p, e, d);
			if (!T11_) goto LA12_;
			goto BeforeRet_;
		}
		LA12_: ;
	}
	LA7_: ;
	t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*e).typ, IL64(36134350135273744));
	isRef = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22));
	T14_ = (NIM_BOOL)0;
	T15_ = (NIM_BOOL)0;
	T15_ = isRef;
	if (T15_) goto LA16_;
	T15_ = !(((62 &(1U<<((NU)((*d).k)&15U)))!=0));
	LA16_: ;
	T14_ = T15_;
	if (T14_) goto LA17_;
	T18_ = (tyEnum_TAnalysisResult__p9a9bcrXoRmLT4eUuwrDq9b4w)0;
	T18_ = isPartOf__1otDDZAmvFsmbqPyFytXFg((*d).lode, e);
	T14_ = !((T18_ == ((tyEnum_TAnalysisResult__p9a9bcrXoRmLT4eUuwrDq9b4w) 0)));
	LA17_: ;
	useTemp = T14_;
	nimZeroMem((void*)(&tmp), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
	r = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!useTemp) goto LA21_;
		getTemp__VjOFVqypINqQv5C3ECnxbw(p, t, (&tmp), NIM_FALSE);
		r = rdLoc__xidyzuHqIciXbQyEOKahDg(tmp);
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T27_;
			tyArray__JiWwrsTRC6xqNlGcBthSVA T28_;
			if (!isRef) goto LA25_;
			rawGenNew__9cYWmo3ycKMiJEsDvNXZAQg(p, (&tmp), NIM_NIL, !((((*e).flags &(1U<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 1))&31U)))!=0)));
			T27_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T27_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(t);
			t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(T27_, IL64(36134350135273744));
			nimZeroMem((void*)T28_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
			T28_[0] = r;
			r = percent___TbMwXzwNL7txOQADiTjwKA(T28_, 1);
			gcUsage__Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, e);
		}
		goto LA23_;
		LA25_: ;
		{
			constructLoc__Q4oQMHZIwSi4nGkYAuAC8A(p, (&tmp), NIM_FALSE);
		}
		LA23_: ;
	}
	goto LA19_;
	LA21_: ;
	{
		resetLoc__B9bNAYVEwjQtkUkvoOVhV2Q(p, d);
		r = rdLoc__xidyzuHqIciXbQyEOKahDg((*d));
	}
	LA19_: ;
	T31_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T31_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, t);
	(void)(T31_);
	ty = t;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(e);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
				tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA tmp2;
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* field;
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_804;
				if (!(i_2 < colontmp_)) goto LA34;
				i = i_2;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(i) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
				it = (*e)._kind_6.sons->data[i];
				nimZeroMem((void*)(&tmp2), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
				tmp2.r = r;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 0)) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
				if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*it)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*it)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
				field = lookupFieldAgain__x9bTneajlTd1ibxrXw5m2Pw(p, ty, (*(*it)._kind_6.sons->data[((NI) 0)])._kind_4.sym, &tmp2.r, NIM_NIL);
				{
					if (!((*field).loc.r == NIM_NIL)) goto LA37_;
					fillObjectFields__4q3XOfd3NI3C8cSNkaF9cWA_2((*p).module, ty);
				}
				LA37_: ;
				{
					if (!((*field).loc.r == NIM_NIL)) goto LA41_;
					internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*e).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_798));
				}
				LA41_: ;
				{
					NIM_BOOL T45_;
					NI T46_;
					T45_ = (NIM_BOOL)0;
					T46_ = (NI)0;
					T46_ = len__P89cqdlERShb9alU3iC0yj8wast(it);
					T45_ = (T46_ == ((NI) 3));
					if (!(T45_)) goto LA47_;
					T45_ = (((*p).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 2))&31U)))!=0);
					LA47_: ;
					if (!T45_) goto LA48_;
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(((NI) 2)) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
					genFieldCheck__9bUUELnkXphPuPspD3YnKHQ(p, (*it)._kind_6.sons->data[((NI) 2)], r, field);
				}
				LA48_: ;
				add__yG4AKzsBRS1W4MANDlXQeg(&tmp2.r, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_126));
				add__IM4kcMNkkOLJtqdEqSxR8A(&tmp2.r, (*field).loc.r);
				{
					if (!useTemp) goto LA52_;
					tmp2.k = ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 1);
					{
						if (!isRef) goto LA56_;
						tmp2.storage = ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 3);
					}
					goto LA54_;
					LA56_: ;
					{
						tmp2.storage = ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 2);
					}
					LA54_: ;
				}
				goto LA50_;
				LA52_: ;
				{
					tmp2.k = (*d).k;
					{
						if (!isRef) goto LA62_;
						tmp2.storage = ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 3);
					}
					goto LA60_;
					LA62_: ;
					{
						tmp2.storage = (*d).storage;
					}
					LA60_: ;
				}
				LA50_: ;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 1)) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
				tmp2.lode = (*it)._kind_6.sons->data[((NI) 1)];
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 1)) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
				expr__8mAL9ckajemzgfLPfeZVNoQ(p, (*it)._kind_6.sons->data[((NI) 1)], (&tmp2));
				if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_804)) { raiseOverflow(); };
				i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_804);
			} LA34: ;
		}
	}
	{
		if (!useTemp) goto LA67_;
		{
			if (!((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0))) goto LA71_;
			genericAssign((void*)(&(*d)), (void*)(&tmp), (&NTI__EtHNvCB0bgfu9bFjzx9cb6aA_));
		}
		goto LA69_;
		LA71_: ;
		{
			genAssignment__BtucsTdHw7orsXIL75hNVg(p, (*d), tmp, 0);
		}
		LA69_: ;
	}
	LA67_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genCast__BKdMcfvryaJLplX0oFPcAQ_20)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* destt;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* srct;
	destt = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*e).typ, IL64(36134350136322320));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	srct = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*e)._kind_6.sons->data[((NI) 1)]).typ, IL64(36134350136322320));
	{
		NIM_BOOL T3_;
		NI TM__MQdRN7fpbG7rPm4JpVVAhA_805;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* lbl;
		tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA tmp;
		tyArray__JiWwrsTRC6xqNlGcBthSVA T7_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T8_;
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T13_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T14_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T19_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T20_;
		tyArray__JiWwrsTRC6xqNlGcBthSVA T21_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T22_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*destt).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36) && (*destt).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39) || (*destt).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18) || (*destt).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17) || (*destt).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16));
		if (T3_) goto LA4_;
		T3_ = ((*srct).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36) && (*srct).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39) || (*srct).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18) || (*srct).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17) || (*srct).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16));
		LA4_: ;
		if (!T3_) goto LA5_;
		if (nimAddInt((*p).labels, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_805)) { raiseOverflow(); };
		if (TM__MQdRN7fpbG7rPm4JpVVAhA_805 < 0 || TM__MQdRN7fpbG7rPm4JpVVAhA_805 > 2147483647){ raiseOverflow(); }
		(*p).labels = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_805);
		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___NIzUqj4Mr1E3EKy0AkJaXQ(T7_, 1);
		T8_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T8_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 0));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA11_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA11_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 8);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_806));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		T13_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T13_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, (*(*e)._kind_6.sons->data[((NI) 1)]).typ);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T13_);
		res = resizeString(res, 9);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_807));
		T14_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, (*e).typ);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T14_);
		res = resizeString(res, 12);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_808));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), lbl);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_104));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA17_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA17_: ;
		T19_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T19_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
		T20_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T20_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T19_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T8_, T20_);
		tmp.k = ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 6);
		tmp.lode = lodeTyp__Zo4XKVi6BmwOZE51Yogqwg(srct);
		tmp.storage = ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 2);
		tmp.flags = 0;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		expr__8mAL9ckajemzgfLPfeZVNoQ(p, (*e)._kind_6.sons->data[((NI) 1)], (&tmp));
		nimZeroMem((void*)T21_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
		T21_[0] = lbl;
		T22_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T22_ = percent___yQdCkIARIVr9aqI8oVxi9cQw(T21_, 1);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T22_, tmp.storage);
	}
	goto LA1_;
	LA5_: ;
	{
		genSomeCast__BKdMcfvryaJLplX0oFPcAQ_13(p, e, d);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genConv__BKdMcfvryaJLplX0oFPcAQ_21)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* destType;
	destType = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*e).typ, IL64(211106240923664));
	{
		NIM_BOOL T3_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		T3_ = (NIM_BOOL)0;
		T3_ = sameBackendType__n70Tq9c0HITdaYm9cT8YLryw(destType, (*(*e)._kind_6.sons->data[((NI) 1)]).typ);
		if (!T3_) goto LA4_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		expr__8mAL9ckajemzgfLPfeZVNoQ(p, (*e)._kind_6.sons->data[((NI) 1)], d);
	}
	goto LA1_;
	LA4_: ;
	{
		genSomeCast__BKdMcfvryaJLplX0oFPcAQ_13(p, e, d);
	}
	LA1_: ;
}
static N_INLINE(NIM_BOOL, isCppRef__Rt7PF9bsOeNWjGFhSpqAlTwcgen)(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) 31))&63U)))!=0);
	LA4_: ;
	T2_ = T3_;
	if (!(T2_)) goto LA5_;
	T6_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T6_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(typ, IL64(36134350135273744));
	T2_ = ((*T6_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23));
	LA5_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA7_;
	T8_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T8_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(typ, IL64(36134350135273744));
	T1_ = !((((*T8_).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 20))&63U)))!=0));
	LA7_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genAddr__BKdMcfvryaJLplX0oFPcAQ_22)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T3_;
		tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T6_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		T3_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T3_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*e)._kind_6.sons->data[((NI) 0)]).typ, IL64(36134350135273744));
		if (!((*T3_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*T3_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21))) goto LA4_;
		nimZeroMem((void*)(&a), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 0)], (&a));
		T6_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T6_ = amp___4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_397), a.r);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, T6_, a.storage);
	}
	goto LA1_;
	LA4_: ;
	{
		NIM_BOOL T8_;
		tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w T9_;
		T8_ = (NIM_BOOL)0;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		T9_ = (tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w)0;
		T9_ = mapType__K9aceyVl15zb9aYN9b6YJ8TnA((*(*(*p).module).g).config, (*(*e)._kind_6.sons->data[((NI) 0)]).typ);
		T8_ = (T9_ == ((tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w) 17));
		if (T8_) goto LA10_;
		T8_ = isCppRef__Rt7PF9bsOeNWjGFhSpqAlTwcgen(p, (*e).typ);
		LA10_: ;
		if (!T8_) goto LA11_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		expr__8mAL9ckajemzgfLPfeZVNoQ(p, (*e)._kind_6.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));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.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, genUncheckedArrayElem__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;
	NimStringDesc* res;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T9_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* 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));
	{
		if (!((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0))) goto LA3_;
		(*d).storage = a.storage;
	}
	LA3_: ;
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA7_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
	}
	LA7_: ;
	res = rawNewString(((NI) 80));
	T9_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T9_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T9_);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_157));
	T10_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T10_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(b);
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T10_);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_158));
	T11_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T11_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
	putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, n, T11_, a.storage);
}
N_LIB_PRIVATE N_NIMCALL(void, genArrayElem__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;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ty;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* first;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA T2_;
	NimStringDesc* res_3;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T104_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T105_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T106_;
	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__XNOXh7uniWNgiq58C9bW49awcgen(a);
	ty = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(T1_, IL64(49785886521469200));
	T2_ = firstOrd__hjogdnp59cMX1rwmjikBhqw((*(*(*p).module).g).config, ty);
	first = intLiteral__0L2LUBpuDvHdOo5Bdh2tRw(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).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 49)));
		LA6_: ;
		if (!T5_) goto LA7_;
		{
			NIM_BOOL T11_;
			T11_ = (NIM_BOOL)0;
			T11_ = isConstExpr__9cP6JNeOKqczaXCI4Zo4SBQ_2(y);
			if (!!(T11_)) goto LA12_;
			{
				tyObject_Int128__9a9axPfb75jdWY25AamJewkA T16_;
				NIM_BOOL T17_;
				T16_ = firstOrd__hjogdnp59cMX1rwmjikBhqw((*(*(*p).module).g).config, ty);
				T17_ = (NIM_BOOL)0;
				T17_ = eqeq___nr9cP9b0OL9cabygV9bo19cJgZA_2(T16_, IL64(0));
				if (!T17_) goto LA18_;
				{
					NIM_BOOL T22_;
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T23_;
					tyObject_Int128__9a9axPfb75jdWY25AamJewkA T24_;
					tyObject_Int128__9a9axPfb75jdWY25AamJewkA T25_;
					tyObject_Int128__9a9axPfb75jdWY25AamJewkA T27_;
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T28_;
					tyObject_Int128__9a9axPfb75jdWY25AamJewkA T29_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T32_;
					NimStringDesc* res;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T37_;
					tyObject_Int128__9a9axPfb75jdWY25AamJewkA T38_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T39_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T40_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T41_;
					tyObject_Int128__9a9axPfb75jdWY25AamJewkA T42_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T43_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T44_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T49_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T50_;
					T22_ = (NIM_BOOL)0;
					T23_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T23_ = t__XNOXh7uniWNgiq58C9bW49awcgen(b);
					T24_ = firstOrd__hjogdnp59cMX1rwmjikBhqw((*(*(*p).module).g).config, T23_);
					T25_ = firstOrd__hjogdnp59cMX1rwmjikBhqw((*(*(*p).module).g).config, ty);
					T22_ = lt___7c5Zw7H31uJfWmmhZe9aEqw_3(T24_, T25_);
					if (T22_) goto LA26_;
					T27_ = lastOrd__hjogdnp59cMX1rwmjikBhqw_2((*(*(*p).module).g).config, ty);
					T28_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T28_ = t__XNOXh7uniWNgiq58C9bW49awcgen(b);
					T29_ = lastOrd__hjogdnp59cMX1rwmjikBhqw_2((*(*(*p).module).g).config, T28_);
					T22_ = lt___7c5Zw7H31uJfWmmhZe9aEqw_3(T27_, T29_);
					LA26_: ;
					if (!T22_) goto LA30_;
					T32_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
					T32_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
					{
						if (!!(!(((*p).module == NIM_NIL)))) goto LA35_;
						failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
					}
					LA35_: ;
					res = rawNewString(((NI) 80));
					res = resizeString(res, 9);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_809));
					T37_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T37_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(b);
					cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T37_);
					res = resizeString(res, 9);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_810));
					T38_ = lastOrd__hjogdnp59cMX1rwmjikBhqw_2((*(*(*p).module).g).config, ty);
					T39_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T39_ = intLiteral__0L2LUBpuDvHdOo5Bdh2tRw(T38_);
					cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T39_);
					res = resizeString(res, 4);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_487));
					T40_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T40_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_811));
					cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T40_);
					res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
					T41_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T41_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(b);
					cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T41_);
					res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
					T42_ = lastOrd__hjogdnp59cMX1rwmjikBhqw_2((*(*(*p).module).g).config, ty);
					T43_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T43_ = intLiteral__0L2LUBpuDvHdOo5Bdh2tRw(T42_);
					cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T43_);
					res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_578));
					T44_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T44_ = raiseInstr__3AsTOpq9crZUYBL9aD1lXBng_4(p);
					cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T44_);
					res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_235));
					{
						if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA47_;
						res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
					}
					LA47_: ;
					T49_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T49_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
					T50_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T50_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T49_);
					add__IM4kcMNkkOLJtqdEqSxR8A(T32_, T50_);
				}
				LA30_: ;
			}
			goto LA14_;
			LA18_: ;
			{
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T52_;
				NimStringDesc* res_2;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T57_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T58_;
				tyObject_Int128__9a9axPfb75jdWY25AamJewkA T59_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T60_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T61_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T62_;
				tyObject_Int128__9a9axPfb75jdWY25AamJewkA T63_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T64_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T65_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T70_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T71_;
				T52_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T52_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA55_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA55_: ;
				res_2 = rawNewString(((NI) 80));
				res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_285));
				T57_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T57_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(b);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T57_);
				res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_153));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), first);
				res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_485));
				T58_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T58_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(b);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T58_);
				res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_486));
				T59_ = lastOrd__hjogdnp59cMX1rwmjikBhqw_2((*(*(*p).module).g).config, ty);
				T60_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T60_ = intLiteral__0L2LUBpuDvHdOo5Bdh2tRw(T59_);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T60_);
				res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_563));
				T61_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T61_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_812));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T61_);
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
				T62_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T62_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(b);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T62_);
				res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), first);
				res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
				T63_ = lastOrd__hjogdnp59cMX1rwmjikBhqw_2((*(*(*p).module).g).config, ty);
				T64_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T64_ = intLiteral__0L2LUBpuDvHdOo5Bdh2tRw(T63_);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T64_);
				res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_578));
				T65_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T65_ = raiseInstr__3AsTOpq9crZUYBL9aD1lXBng_4(p);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T65_);
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_235));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA68_;
					res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA68_: ;
				T70_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T70_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
				T71_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T71_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T70_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T52_, T71_);
			}
			LA14_: ;
		}
		goto LA9_;
		LA12_: ;
		{
			tyObject_Int128__9a9axPfb75jdWY25AamJewkA idx;
			idx = getOrdValue__GvVg8kpCh7QA2PDTJnFJlQ(y, TM__MQdRN7fpbG7rPm4JpVVAhA_216);
			{
				NIM_BOOL T75_;
				tyObject_Int128__9a9axPfb75jdWY25AamJewkA T76_;
				tyObject_Int128__9a9axPfb75jdWY25AamJewkA T78_;
				NimStringDesc* T81_;
				T75_ = (NIM_BOOL)0;
				T76_ = firstOrd__hjogdnp59cMX1rwmjikBhqw((*(*(*p).module).g).config, ty);
				T75_ = lt___7c5Zw7H31uJfWmmhZe9aEqw_3(idx, T76_);
				if (T75_) goto LA77_;
				T78_ = lastOrd__hjogdnp59cMX1rwmjikBhqw_2((*(*(*p).module).g).config, ty);
				T75_ = lt___7c5Zw7H31uJfWmmhZe9aEqw_3(T78_, idx);
				LA77_: ;
				if (!T75_) goto LA79_;
				T81_ = (NimStringDesc*)0;
				{
					tyObject_Int128__9a9axPfb75jdWY25AamJewkA T84_;
					tyObject_Int128__9a9axPfb75jdWY25AamJewkA T85_;
					NIM_BOOL T86_;
					T84_ = lastOrd__hjogdnp59cMX1rwmjikBhqw_2((*(*(*p).module).g).config, ty);
					T85_ = firstOrd__hjogdnp59cMX1rwmjikBhqw((*(*(*p).module).g).config, ty);
					T86_ = (NIM_BOOL)0;
					T86_ = lt___7c5Zw7H31uJfWmmhZe9aEqw_3(T84_, T85_);
					if (!T86_) goto LA87_;
					T81_ = copyString(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_813));
				}
				goto LA82_;
				LA87_: ;
				{
					NimStringDesc* T90_;
					NimStringDesc* T91_;
					tyObject_Int128__9a9axPfb75jdWY25AamJewkA T92_;
					NimStringDesc* T93_;
					tyObject_Int128__9a9axPfb75jdWY25AamJewkA T94_;
					NimStringDesc* T95_;
					T90_ = (NimStringDesc*)0;
					T91_ = (NimStringDesc*)0;
					T91_ = dollar___W2wbDjPGDCaBwLQM6yLUQg(idx);
					T92_ = firstOrd__hjogdnp59cMX1rwmjikBhqw((*(*(*p).module).g).config, ty);
					T93_ = (NimStringDesc*)0;
					T93_ = dollar___W2wbDjPGDCaBwLQM6yLUQg(T92_);
					T94_ = lastOrd__hjogdnp59cMX1rwmjikBhqw_2((*(*(*p).module).g).config, ty);
					T95_ = (NimStringDesc*)0;
					T95_ = dollar___W2wbDjPGDCaBwLQM6yLUQg(T94_);
					T90_ = rawNewString((T91_ ? T91_->Sup.len : 0) + (T93_ ? T93_->Sup.len : 0) + (T95_ ? T95_->Sup.len : 0) + 18);
appendString(T90_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_814));
appendString(T90_, T91_);
appendString(T90_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_815));
appendString(T90_, T93_);
appendString(T90_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_816));
appendString(T90_, T95_);
					T81_ = T90_;
				}
				LA82_: ;
				localError__NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*x).info, T81_);
			}
			LA79_: ;
		}
		LA9_: ;
	}
	LA7_: ;
	{
		if (!((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0))) goto LA98_;
		(*d).storage = a.storage;
	}
	LA98_: ;
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA102_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
	}
	LA102_: ;
	res_3 = rawNewString(((NI) 80));
	T104_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T104_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T104_);
	res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_817));
	T105_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T105_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(b);
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T105_);
	res_3 = resizeString(res_3, 3);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_818));
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), first);
	res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_158));
	T106_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T106_ = rope__yShmEg9cffWxI7s5XzEKBow(res_3);
	putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, n, T106_, a.storage);
}
N_LIB_PRIVATE N_NIMCALL(void, genOpenArrayElem__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;
	NimStringDesc* res_2;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T30_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T31_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T32_;
	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));
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T5_;
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T10_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T11_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T12_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T13_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T14_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T15_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T20_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T21_;
		if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 4))&31U)))!=0)) goto LA3_;
		T5_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T5_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA8_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA8_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 9);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_809));
		T10_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T10_ = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T10_);
		res = resizeString(res, 10);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_474));
		T11_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T11_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T11_);
		res = resizeString(res, 9);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_819));
		T12_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_811));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T12_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T13_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T13_ = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T13_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_820));
		T14_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T14_);
		res = resizeString(res, 10);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_821));
		T15_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T15_ = raiseInstr__3AsTOpq9crZUYBL9aD1lXBng_4(p);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T15_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_235));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA18_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA18_: ;
		T20_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T20_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
		T21_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T21_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T20_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T5_, T21_);
	}
	LA3_: ;
	{
		if (!((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0))) goto LA24_;
		(*d).storage = a.storage;
	}
	LA24_: ;
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA28_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
	}
	LA28_: ;
	res_2 = rawNewString(((NI) 80));
	T30_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T30_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T30_);
	res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_157));
	T31_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T31_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(b);
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T31_);
	res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_158));
	T32_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T32_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
	putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, n, T32_, a.storage);
}
N_LIB_PRIVATE N_NIMCALL(void, genSeqElem__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_;
	NimStringDesc* res_5;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T93_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T94_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T95_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T96_;
	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__XNOXh7uniWNgiq58C9bW49awcgen(a);
	ty = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(T1_, IL64(36134350144710928));
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T6_;
		if (!((*ty).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*ty).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21))) goto LA4_;
		T6_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T6_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(ty);
		ty = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(T6_, IL64(36134350144710928));
	}
	LA4_: ;
	{
		if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 4))&31U)))!=0)) goto LA9_;
		{
			NIM_BOOL T13_;
			NIM_BOOL T15_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T19_;
			NimStringDesc* res;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T24_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T25_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T26_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T27_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T28_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T29_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T34_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T35_;
			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) 26))&31U)))!=0);
			LA16_: ;
			T13_ = T15_;
			LA14_: ;
			if (!T13_) goto LA17_;
			T19_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T19_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA22_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA22_: ;
			res = rawNewString(((NI) 80));
			res = resizeString(res, 9);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_809));
			T24_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T24_ = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T24_);
			res = resizeString(res, 8);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_822));
			T25_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T25_ = lenExpr__Xfvxpx3W1zkiCqENsur9ckg(p, a);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T25_);
			res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_563));
			T26_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T26_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_811));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T26_);
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
			T27_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T27_ = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T27_);
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_820));
			T28_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T28_ = lenExpr__Xfvxpx3W1zkiCqENsur9ckg(p, a);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T28_);
			res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_578));
			T29_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T29_ = raiseInstr__3AsTOpq9crZUYBL9aD1lXBng_4(p);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T29_);
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_235));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA32_;
				res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA32_: ;
			T34_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T34_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
			T35_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T35_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T34_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T19_, T35_);
		}
		goto LA11_;
		LA17_: ;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T37_;
			NimStringDesc* res_2;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T42_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T43_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T44_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T45_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T46_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T47_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T52_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T53_;
			T37_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T37_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA40_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA40_: ;
			res_2 = rawNewString(((NI) 80));
			res_2 = resizeString(res_2, 9);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_809));
			T42_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T42_ = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T42_);
			res_2 = resizeString(res_2, 9);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_488));
			T43_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T43_ = lenExpr__Xfvxpx3W1zkiCqENsur9ckg(p, a);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T43_);
			res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_563));
			T44_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T44_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_811));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T44_);
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
			T45_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T45_ = rdLoc__xidyzuHqIciXbQyEOKahDg(b);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T45_);
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_820));
			T46_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T46_ = lenExpr__Xfvxpx3W1zkiCqENsur9ckg(p, a);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T46_);
			res_2 = resizeString(res_2, 5);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_823));
			T47_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T47_ = raiseInstr__3AsTOpq9crZUYBL9aD1lXBng_4(p);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T47_);
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_235));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA50_;
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA50_: ;
			T52_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T52_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
			T53_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T53_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T52_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T37_, T53_);
		}
		LA11_: ;
	}
	LA9_: ;
	{
		if (!((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0))) goto LA56_;
		(*d).storage = ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 3);
	}
	LA56_: ;
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T60_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T61_;
		NimStringDesc* res_3;
		T60_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T60_ = t__XNOXh7uniWNgiq58C9bW49awcgen(a);
		T61_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T61_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(T60_, IL64(36275087632017680));
		if (!((*T61_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*T61_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21))) goto LA62_;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA66_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA66_: ;
		res_3 = rawNewString(((NI) 80));
		res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_90));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), a.r);
		res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
		a.r = rope__yShmEg9cffWxI7s5XzEKBow(res_3);
	}
	LA62_: ;
	{
		NIM_BOOL T70_;
		NIM_BOOL T71_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T76_;
		NimStringDesc* res_4;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T81_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T82_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T87_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T88_;
		T70_ = (NIM_BOOL)0;
		T71_ = (NIM_BOOL)0;
		T71_ = (((*d).flags &(1U<<((NU)(((tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA) 10))&15U)))!=0);
		if (!(T71_)) goto LA72_;
		T71_ = ((*ty).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28));
		LA72_: ;
		T70_ = T71_;
		if (!(T70_)) goto LA73_;
		T70_ = (((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 39))&63U)))!=0);
		LA73_: ;
		if (!T70_) goto LA74_;
		T76_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T76_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA79_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA79_: ;
		res_4 = rawNewString(((NI) 80));
		T81_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T81_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_490));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T81_);
		res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T82_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T82_ = byRefLoc__Xfvxpx3W1zkiCqENsur9ckg_2(p, a);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T82_);
		res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA85_;
			res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA85_: ;
		T87_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T87_ = rope__yShmEg9cffWxI7s5XzEKBow(res_4);
		T88_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T88_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T87_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T76_, T88_);
	}
	LA74_: ;
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA91_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
	}
	LA91_: ;
	res_5 = rawNewString(((NI) 80));
	T93_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T93_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T93_);
	T94_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T94_ = dataField__3AsTOpq9crZUYBL9aD1lXBng_2(p);
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T94_);
	res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_157));
	T95_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T95_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(b);
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T95_);
	res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_158));
	T96_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T96_ = rope__yShmEg9cffWxI7s5XzEKBow(res_5);
	putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, n, T96_, a.storage);
}
N_LIB_PRIVATE N_NIMCALL(void, genCStringElem__BCJD8YW9ak7zQIm4nTPgpMQ_5)(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;
	NimStringDesc* res;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T9_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* 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));
	{
		if (!((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0))) goto LA3_;
		(*d).storage = a.storage;
	}
	LA3_: ;
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA7_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
	}
	LA7_: ;
	res = rawNewString(((NI) 80));
	T9_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T9_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T9_);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_157));
	T10_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T10_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(b);
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T10_);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_158));
	T11_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T11_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
	putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, n, T11_, a.storage);
}
N_LIB_PRIVATE N_NIMCALL(void, genTupleElem__BKdMcfvryaJLplX0oFPcAQ_23)(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* T10_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T11_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r;
	tyArray__JiWwrsTRC6xqNlGcBthSVA T14_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T15_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
	i = (NI)0;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 0)], (&a));
	T1_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = t__XNOXh7uniWNgiq58C9bW49awcgen(a);
	tupType = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(T1_, IL64(36134350143662352));
	{
		if (!!(((*tupType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18)))) goto LA4_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_824));
	}
	LA4_: ;
	{
		if (!((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0))) goto LA8_;
		(*d).storage = a.storage;
	}
	LA8_: ;
	T10_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T10_ = t__XNOXh7uniWNgiq58C9bW49awcgen(a);
	T11_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T11_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, T10_);
	(void)(T11_);
	r = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	switch ((*(*e)._kind_6.sons->data[((NI) 1)]).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15):
	{
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_174[(NU)((*(*e)._kind_6.sons->data[((NI) 1)]).kind)>>3] &(1U<<((NU)((*(*e)._kind_6.sons->data[((NI) 1)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_175)); }
		if (((*(*e)._kind_6.sons->data[((NI) 1)])._kind_1.intVal) < ((NI) (-2147483647 -1)) || ((*(*e)._kind_6.sons->data[((NI) 1)])._kind_1.intVal) > ((NI) 2147483647)){ raiseRangeErrorI((*(*e)._kind_6.sons->data[((NI) 1)])._kind_1.intVal, ((NI) (-2147483647 -1)), ((NI) 2147483647)); }
		i = ((NI) ((*(*e)._kind_6.sons->data[((NI) 1)])._kind_1.intVal));
	}
	break;
	default:
	{
		internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*e).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_825));
	}
	break;
	}
	nimZeroMem((void*)T14_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
	T14_[0] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (i)));
	T15_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T15_ = percent___WYvjnWcyRjjjI0lasIi1YA(T14_, 1);
	add__IM4kcMNkkOLJtqdEqSxR8A(&r, T15_);
	putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, r, a.storage);
}
N_LIB_PRIVATE N_NIMCALL(void, genBracketExpr__8mAL9ckajemzgfLPfeZVNoQ_12)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ty;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T14_;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	ty = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 0)]).typ, IL64(49645149026822416));
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T5_;
		if (!((*ty).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*ty).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21))) goto LA3_;
		T5_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T5_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(ty);
		ty = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(T5_, IL64(36134350144710928));
	}
	LA3_: ;
	switch ((*ty).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 49):
	{
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		genUncheckedArrayElem__BCJD8YW9ak7zQIm4nTPgpMQ(p, n, (*n)._kind_6.sons->data[((NI) 0)], (*n)._kind_6.sons->data[((NI) 1)], d);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
	{
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		genArrayElem__BCJD8YW9ak7zQIm4nTPgpMQ_2(p, n, (*n)._kind_6.sons->data[((NI) 0)], (*n)._kind_6.sons->data[((NI) 1)], d);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48):
	{
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		genOpenArrayElem__BCJD8YW9ak7zQIm4nTPgpMQ_3(p, n, (*n)._kind_6.sons->data[((NI) 0)], (*n)._kind_6.sons->data[((NI) 1)], d);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
	{
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		genSeqElem__BCJD8YW9ak7zQIm4nTPgpMQ_4(p, n, (*n)._kind_6.sons->data[((NI) 0)], (*n)._kind_6.sons->data[((NI) 1)], d);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 29):
	{
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		genCStringElem__BCJD8YW9ak7zQIm4nTPgpMQ_5(p, n, (*n)._kind_6.sons->data[((NI) 0)], (*n)._kind_6.sons->data[((NI) 1)], d);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		genTupleElem__BKdMcfvryaJLplX0oFPcAQ_23(p, n, d);
	}
	break;
	default:
	{
		NimStringDesc* T13_;
		T13_ = (NimStringDesc*)0;
		T13_ = rawNewString((reprEnum((NI)(*ty).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*ty).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 21);
appendString(T13_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_826));
appendString(T13_, reprEnum((NI)(*ty).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_)));
appendChar(T13_, 41);
		internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, T13_);
	}
	break;
	}
	T14_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T14_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, (*n).typ);
	(void)(T14_);
}
N_LIB_PRIVATE N_NIMCALL(void, genDeref__BKdMcfvryaJLplX0oFPcAQ_24)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w mt;
{	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	mt = mapType__K9aceyVl15zb9aYN9b6YJ8TnA((*(*(*p).module).g).config, (*(*e)._kind_6.sons->data[((NI) 0)]).typ);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((393216 &(1U<<((NU)(mt)&31U)))!=0);
		if (!(T3_)) goto LA4_;
		T3_ = !((((*d).flags &(1U<<((NU)(((tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA) 9))&15U)))!=0));
		LA4_: ;
		if (!T3_) goto LA5_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		expr__8mAL9ckajemzgfLPfeZVNoQ(p, (*e)._kind_6.sons->data[((NI) 0)], d);
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T9_;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			T9_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T9_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*e)._kind_6.sons->data[((NI) 0)]).typ, IL64(36134350135273744));
			if (!((*T9_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22))) goto LA10_;
			(*d).storage = ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 3);
		}
		LA10_: ;
	}
	goto LA1_;
	LA5_: ;
	{
		tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
		nimZeroMem((void*)(&a), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		typ = (*(*e)._kind_6.sons->data[((NI) 0)]).typ;
		{
			NIM_BOOL T15_;
			T15_ = (NIM_BOOL)0;
			T15_ = ((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52) || (*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 53));
			if (!(T15_)) goto LA16_;
			T15_ = (((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 10))&63U)))!=0);
			LA16_: ;
			if (!T15_) goto LA17_;
			typ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ(typ);
		}
		LA17_: ;
		typ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(typ, IL64(36134350135273744));
		{
			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) 20))&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) 31))&63U)))!=0);
			LA27_: ;
			T22_ = T26_;
			LA25_: ;
			T21_ = T22_;
			if (!(T21_)) goto LA28_;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			T21_ = ((*(*e)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64));
			LA28_: ;
			if (!T21_) goto LA29_;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*e)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*e)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*(*e)._kind_6.sons->data[((NI) 0)])._kind_6.sons ? (*(*e)._kind_6.sons->data[((NI) 0)])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*e)._kind_6.sons->data[((NI) 0)])._kind_6.sons ? (*(*e)._kind_6.sons->data[((NI) 0)])._kind_6.sons->Sup.len : 0)-1); }
			initLocExprSingleUse__9biTBaXPz9cezuLjjWw9cSEGw(p, (*(*e)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 0)], d);
			goto BeforeRet_;
		}
		goto LA19_;
		LA29_: ;
		{
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
			initLocExprSingleUse__9biTBaXPz9cezuLjjWw9cSEGw(p, (*e)._kind_6.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) 3);
			}
			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) 20))&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) 31))&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_827));
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) 31))&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) 20))&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_ = (mt == ((tyEnum_TCTypeKind__ceqS9bAmd9bxxuxr8tfIIw5w) 18));
			if (!(T68_)) goto LA69_;
			T68_ = (((*d).flags &(1U<<((NU)(((tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA) 9))&15U)))!=0);
			LA69_: ;
			if (!T68_) goto LA70_;
			T72_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T72_ = t__XNOXh7uniWNgiq58C9bW49awcgen(a);
			if ((NU)(((NI) 0)) >= (NU)((*T72_).sons ? (*T72_).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*T72_).sons ? (*T72_).sons->Sup.len : 0)-1); }
			T73_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T73_ = lodeTyp__Zo4XKVi6BmwOZE51Yogqwg((*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___TbMwXzwNL7txOQADiTjwKA(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_;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 0)], a);
	{
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		if (!!(((*(*e)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA3_;
		internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*e).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_828));
	}
	LA3_: ;
	{
		if (!((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0))) goto LA7_;
		(*d).storage = (*a).storage;
	}
	LA7_: ;
	T9_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T9_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*a));
	T10_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T10_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, T9_);
	(void)(T10_);
}
N_LIB_PRIVATE N_NIMCALL(void, genRecordField__BKdMcfvryaJLplX0oFPcAQ_25)(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);
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*e)._kind_6.sons->data[((NI) 1)]).kind)>>3] &(1U<<((NU)((*(*e)._kind_6.sons->data[((NI) 1)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
	f = (*(*e)._kind_6.sons->data[((NI) 1)])._kind_4.sym;
	T1_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = t__XNOXh7uniWNgiq58C9bW49awcgen(a);
	ty = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(T1_, IL64(49645149017385232));
	{
		tyArray__JiWwrsTRC6xqNlGcBthSVA T6_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T7_;
		if (!((*ty).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18))) goto LA4_;
		nimZeroMem((void*)T6_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
		T6_[0] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*f).position)));
		T7_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T7_ = percent___WYvjnWcyRjjjI0lasIi1YA(T6_, 1);
		add__IM4kcMNkkOLJtqdEqSxR8A(&r, T7_);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, r, a.storage);
	}
	goto LA2_;
	LA4_: ;
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* rtyp;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* field;
		tyArray__JiWwrsTRC6xqNlGcBthSVA T21_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T22_;
		rtyp = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		field = lookupFieldAgain__x9bTneajlTd1ibxrXw5m2Pw(p, ty, f, &r, &rtyp);
		{
			NIM_BOOL T11_;
			T11_ = (NIM_BOOL)0;
			T11_ = ((*field).loc.r == NIM_NIL);
			if (!(T11_)) goto LA12_;
			T11_ = !((rtyp == NIM_NIL));
			LA12_: ;
			if (!T11_) goto LA13_;
			fillObjectFields__4q3XOfd3NI3C8cSNkaF9cWA_2((*p).module, rtyp);
		}
		LA13_: ;
		{
			NimStringDesc* T19_;
			NimStringDesc* T20_;
			if (!((*field).loc.r == NIM_NIL)) goto LA17_;
			T19_ = (NimStringDesc*)0;
			T20_ = (NimStringDesc*)0;
			T20_ = typeToString__QlvraUan7WbHowhAbvDvdA(ty, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			T19_ = rawNewString((T20_ ? T20_->Sup.len : 0) + 17);
appendString(T19_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_829));
appendString(T19_, T20_);
			internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*e).info, T19_);
		}
		LA17_: ;
		nimZeroMem((void*)T21_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
		T21_[0] = (*field).loc.r;
		T22_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T22_ = percent___hR4oq6WdDjEl0JIvQtvUlg(T21_, 1);
		add__IM4kcMNkkOLJtqdEqSxR8A(&r, T22_);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, e, r, a.storage);
	}
	LA2_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genCheckedRecordField__BKdMcfvryaJLplX0oFPcAQ_26)(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;
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T18_;
		if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 2))&31U)))!=0)) goto LA3_;
		nimZeroMem((void*)(&a), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		genRecordFieldAux__O8nIPJbfEFU0FjR77WG5eA(p, (*e)._kind_6.sons->data[((NI) 0)], d, (&a));
		T5_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T5_ = t__XNOXh7uniWNgiq58C9bW49awcgen(a);
		ty = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(T5_, IL64(49645149017385232));
		r = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*e)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*e)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*(*e)._kind_6.sons->data[((NI) 0)])._kind_6.sons ? (*(*e)._kind_6.sons->data[((NI) 0)])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*(*e)._kind_6.sons->data[((NI) 0)])._kind_6.sons ? (*(*e)._kind_6.sons->data[((NI) 0)])._kind_6.sons->Sup.len : 0)-1); }
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*(*e)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)]).kind)>>3] &(1U<<((NU)((*(*(*e)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
		f = (*(*(*e)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)])._kind_4.sym;
		field = lookupFieldAgain__x9bTneajlTd1ibxrXw5m2Pw(p, ty, f, &r, NIM_NIL);
		{
			if (!((*field).loc.r == NIM_NIL)) goto LA8_;
			fillObjectFields__4q3XOfd3NI3C8cSNkaF9cWA_2((*p).module, ty);
		}
		LA8_: ;
		{
			if (!((*field).loc.r == NIM_NIL)) goto LA12_;
			internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*e).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_797));
		}
		LA12_: ;
		genFieldCheck__9bUUELnkXphPuPspD3YnKHQ(p, e, r, field);
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA16_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA16_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_126));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), (*field).loc.r);
		T18_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T18_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
		add__IM4kcMNkkOLJtqdEqSxR8A(&r, T18_);
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, (*e)._kind_6.sons->data[((NI) 0)], r, a.storage);
	}
	goto LA1_;
	LA3_: ;
	{
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		genRecordField__BKdMcfvryaJLplX0oFPcAQ_25(p, (*e)._kind_6.sons->data[((NI) 0)], d);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genBlock__8mAL9ckajemzgfLPfeZVNoQ_13)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	NI oldBreakIdxX60gensym101240044_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T10_;
	NimStringDesc* res;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T19_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T20_;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*n).typ);
		if (!!(T3_)) goto LA4_;
		{
			if (!((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0))) goto LA8_;
			getTemp__VjOFVqypINqQv5C3ECnxbw(p, (*n).typ, d, NIM_FALSE);
		}
		LA8_: ;
		(*d).flags |= ((NU16)1)<<((((tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA) 9)) & 15);
	}
	LA4_: ;
	oldBreakIdxX60gensym101240044_ = (*p).breakIdx;
	T10_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T10_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA13_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
	}
	LA13_: ;
	res = rawNewString(((NI) 80));
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_20));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA17_;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
	}
	LA17_: ;
	T19_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T19_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
	T20_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T20_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T19_);
	add__IM4kcMNkkOLJtqdEqSxR8A(T10_, T20_);
	(*p).breakIdx = startBlockInternal__1ygdb876UM9astcNUXtgUBQ(p);
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym;
		NI TM__MQdRN7fpbG7rPm4JpVVAhA_831;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA23_;
		{
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
			if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA27_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_830));
		}
		LA27_: ;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
		sym = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
		(*sym).loc.k = ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 10);
		if (nimAddInt((*p).breakIdx, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_831)) { raiseOverflow(); };
		(*sym).position = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_831);
	}
	LA23_: ;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	expr__8mAL9ckajemzgfLPfeZVNoQ(p, (*n)._kind_6.sons->data[((NI) 1)], d);
	endBlock__0dpuY9coTlraj8JXIe2BzVw(p);
	(*p).breakIdx = oldBreakIdxX60gensym101240044_;
}
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_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T3_;
	NimStringDesc* res;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_342));
	(void)(T1_);
	if ((NU)(((NI) 0)) >= (NU)((*p).blocks ? (*p).blocks->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*p).blocks ? (*p).blocks->Sup.len : 0)-1); }
	nimZeroMem((void*)T2_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
	T2_[0] = frame;
	T3_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T3_ = percent___84GQPNcrIJtbrzuA7JnMPw(T2_, 1);
	add__IM4kcMNkkOLJtqdEqSxR8A(&(*p).blocks->data[((NI) 0)].sections[(((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 0))- 0], T3_);
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA6_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
	}
	LA6_: ;
	res = rawNewString(((NI) 80));
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_16));
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), frame);
	res = resizeString(res, 12);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_835));
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), procname);
	res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_154));
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), frame);
	res = resizeString(res, 12);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_836));
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), filename);
	res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_837));
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), frame);
	res = resizeString(res, 8);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_838));
	cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res), ((NI64) (line)));
	res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_154));
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), frame);
	res = resizeString(res, 21);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_839));
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), frame);
	res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA10_;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
	}
	LA10_: ;
	result = rope__yShmEg9cffWxI7s5XzEKBow(res);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, deinitFrameNoDebug__i9b8wSa9cUkrnf3r9bmZ8OzfA)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* frame) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	NimStringDesc* res;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T5_;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
	}
	LA3_: ;
	res = rawNewString(((NI) 80));
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_16));
	T5_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T5_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_842));
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T5_);
	res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_112));
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), frame);
	res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA8_;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
	}
	LA8_: ;
	result = rope__yShmEg9cffWxI7s5XzEKBow(res);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genStmtListExpr__8mAL9ckajemzgfLPfeZVNoQ_14)(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) 15))&63U)))!=0));
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T1_ = (((*(*p).prc).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 18))&31U)))!=0);
	LA4_: ;
	hasNimFrame = T1_;
	frameName = NIM_NIL;
	{
		NI i;
		NI colontmp_;
		NI T6_;
		NI TM__MQdRN7fpbG7rPm4JpVVAhA_832;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T6_ = (NI)0;
		T6_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (nimSubInt(T6_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_832)) { raiseOverflow(); };
		colontmp_ = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_832);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_840;
				if (!(i_2 < colontmp_)) goto LA8;
				i = i_2;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(i) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
				it = (*n)._kind_6.sons->data[i];
				{
					if (!((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 24))) goto LA11_;
					{
						NIM_BOOL T15_;
						NI TM__MQdRN7fpbG7rPm4JpVVAhA_833;
						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_;
						if (nimAddInt((*p).labels, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_833)) { raiseOverflow(); };
						if (TM__MQdRN7fpbG7rPm4JpVVAhA_833 < 0 || TM__MQdRN7fpbG7rPm4JpVVAhA_833 > 2147483647){ raiseOverflow(); }
						(*p).labels = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_833);
						T19_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T19_ = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).labels)));
						T20_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T20_ = amp___4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_834), T19_);
						frameName = amp___Z7W1o5nPSc3ExfO5f7j1Gg(T20_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_3));
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if ((NU)(((NI) 0)) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
						if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*it)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*it)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
						theMacro = (*(*it)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
						T21_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
						T21_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
						T22_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T22_ = makeCString__vQJydtKy4Nf6bXPYtbmjtg((*(*theMacro).name).s);
						T23_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T23_ = quotedFilename__2Kbe7lBq9cqJa8J9cn4WRepg((*(*(*p).module).g).config, (*theMacro).info);
						T24_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T24_ = initFrameNoDebug__pzdwBzdMmIm0ZmOmWB6yqA(p, frameName, T22_, T23_, ((NI) ((*it).info.line)));
						add__IM4kcMNkkOLJtqdEqSxR8A(T21_, T24_);
					}
					LA17_: ;
				}
				goto LA9_;
				LA11_: ;
				{
					genStmts__QrTB5DOwbDX9bKAW7PNbuJA(p, it);
				}
				LA9_: ;
				if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_840)) { raiseOverflow(); };
				i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_840);
			} LA8: ;
		}
	}
	{
		NI T28_;
		NI T31_;
		NI TM__MQdRN7fpbG7rPm4JpVVAhA_841;
		T28_ = (NI)0;
		T28_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (!(((NI) 0) < T28_)) goto LA29_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		T31_ = (NI)0;
		T31_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (nimSubInt(T31_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_841)) { raiseOverflow(); };
		if ((NU)((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_841)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_841),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		expr__8mAL9ckajemzgfLPfeZVNoQ(p, (*n)._kind_6.sons->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_841)], d);
	}
	LA29_: ;
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T36_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T37_;
		if (!!((frameName == NIM_NIL))) goto LA34_;
		T36_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T36_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		T37_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T37_ = deinitFrameNoDebug__i9b8wSa9cUkrnf3r9bmZ8OzfA(p, frameName);
		add__IM4kcMNkkOLJtqdEqSxR8A(T36_, T37_);
	}
	LA34_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genStmtList__UtJx89cn0a8CNSWWmaj6raA_6)(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) 15))&63U)))!=0));
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T1_ = (((*(*p).prc).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 18))&31U)))!=0);
	LA4_: ;
	hasNimFrame = T1_;
	frameName = NIM_NIL;
	{
		NI i;
		NI colontmp_;
		NI T6_;
		NI TM__MQdRN7fpbG7rPm4JpVVAhA_843;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T6_ = (NI)0;
		T6_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (nimSubInt(T6_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_843)) { raiseOverflow(); };
		colontmp_ = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_843);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_845;
				if (!(i_2 < colontmp_)) goto LA8;
				i = i_2;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(i) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
				it = (*n)._kind_6.sons->data[i];
				{
					if (!((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 24))) goto LA11_;
					{
						NIM_BOOL T15_;
						NI TM__MQdRN7fpbG7rPm4JpVVAhA_844;
						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_;
						if (nimAddInt((*p).labels, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_844)) { raiseOverflow(); };
						if (TM__MQdRN7fpbG7rPm4JpVVAhA_844 < 0 || TM__MQdRN7fpbG7rPm4JpVVAhA_844 > 2147483647){ raiseOverflow(); }
						(*p).labels = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_844);
						T19_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T19_ = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).labels)));
						T20_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T20_ = amp___4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_834), T19_);
						frameName = amp___Z7W1o5nPSc3ExfO5f7j1Gg(T20_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_3));
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if ((NU)(((NI) 0)) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
						if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*it)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*it)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
						theMacro = (*(*it)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
						T21_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
						T21_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
						T22_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T22_ = makeCString__vQJydtKy4Nf6bXPYtbmjtg((*(*theMacro).name).s);
						T23_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T23_ = quotedFilename__2Kbe7lBq9cqJa8J9cn4WRepg((*(*(*p).module).g).config, (*theMacro).info);
						T24_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T24_ = initFrameNoDebug__pzdwBzdMmIm0ZmOmWB6yqA(p, frameName, T22_, T23_, ((NI) ((*it).info.line)));
						add__IM4kcMNkkOLJtqdEqSxR8A(T21_, T24_);
					}
					LA17_: ;
				}
				goto LA9_;
				LA11_: ;
				{
					genStmts__QrTB5DOwbDX9bKAW7PNbuJA(p, it);
				}
				LA9_: ;
				if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_845)) { raiseOverflow(); };
				i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_845);
			} LA8: ;
		}
	}
	{
		NI T28_;
		NI T31_;
		NI TM__MQdRN7fpbG7rPm4JpVVAhA_846;
		T28_ = (NI)0;
		T28_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (!(((NI) 0) < T28_)) goto LA29_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		T31_ = (NI)0;
		T31_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (nimSubInt(T31_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_846)) { raiseOverflow(); };
		if ((NU)((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_846)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_846),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		genStmts__QrTB5DOwbDX9bKAW7PNbuJA(p, (*n)._kind_6.sons->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_846)]);
	}
	LA29_: ;
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T36_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T37_;
		if (!!((frameName == NIM_NIL))) goto LA34_;
		T36_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T36_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		T37_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T37_ = deinitFrameNoDebug__i9b8wSa9cUkrnf3r9bmZ8OzfA(p, frameName);
		add__IM4kcMNkkOLJtqdEqSxR8A(T36_, T37_);
	}
	LA34_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genIf__8mAL9ckajemzgfLPfeZVNoQ_15)(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__nPImuPGZIdcrAfCNyf4oxA_2ast((*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_5(p);
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
		tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* colontmp_;
		NI i;
		NI L;
		NI T9_;
		it = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		colontmp_ = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*)0;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		colontmp_ = (*n)._kind_6.sons;
		i = ((NI) 0);
		T9_ = (colontmp_ ? colontmp_->Sup.len : 0);
		L = T9_;
		{
			while (1) {
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_849;
				if (!(i < L)) goto LA11;
				if ((NU)(i) >= (NU)(colontmp_ ? colontmp_->Sup.len : 0)){ raiseIndexError2(i,(colontmp_ ? colontmp_->Sup.len : 0)-1); }
				it = colontmp_->data[i];
				{
					NIM_BOOL T14_;
					T14_ = (NIM_BOOL)0;
					T14_ = ((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 1));
					if (!(T14_)) goto LA15_;
					T14_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*n).typ);
					LA15_: ;
					if (!T14_) goto LA16_;
					(*d).k = ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0);
				}
				LA16_: ;
				{
					NI T20_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T23_;
					NimStringDesc* res;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T32_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T33_;
					NI T34_;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_847;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T35_;
					tyArray__mrugoXXRZUEeG9bEXo9auBKw T36_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T37_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T38_;
					T20_ = (NI)0;
					T20_ = len__P89cqdlERShb9alU3iC0yj8wast(it);
					if (!(T20_ == ((NI) 2))) goto LA21_;
					T23_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
					T23_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
					{
						if (!!(!(((*p).module == NIM_NIL)))) goto LA26_;
						failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
					}
					LA26_: ;
					res = rawNewString(((NI) 80));
					res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_20));
					{
						if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA30_;
						res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
					}
					LA30_: ;
					T32_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T32_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
					T33_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T33_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T32_);
					add__IM4kcMNkkOLJtqdEqSxR8A(T23_, T33_);
					T34_ = (NI)0;
					T34_ = startBlockInternal__1ygdb876UM9astcNUXtgUBQ(p);
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(((NI) 0)) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
					initLocExprSingleUse__9biTBaXPz9cezuLjjWw9cSEGw(p, (*it)._kind_6.sons->data[((NI) 0)], (&a));
					lelse = getLabel__3AsTOpq9crZUYBL9aD1lXBng_5(p);
					if (nimAddInt((*p).labels, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_847)) { raiseOverflow(); };
					if (TM__MQdRN7fpbG7rPm4JpVVAhA_847 < 0 || TM__MQdRN7fpbG7rPm4JpVVAhA_847 > 2147483647){ raiseOverflow(); }
					(*p).labels = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_847);
					T35_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
					T35_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
					nimZeroMem((void*)T36_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
					T36_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
					T36_[1] = lelse;
					T37_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T37_ = percent___SqZEI7bxySjmJX4GsXyvKw(T36_, 2);
					T38_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T38_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T37_);
					add__IM4kcMNkkOLJtqdEqSxR8A(T35_, T38_);
					{
						NIM_BOOL T41_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T45_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T46_;
						T41_ = (NIM_BOOL)0;
						T41_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands__VH3ghgQVwLSg3krOAoXigw) 2));
						if (T41_) goto LA42_;
						T41_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 31))&63U)))!=0);
						LA42_: ;
						if (!T41_) goto LA43_;
						T45_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
						T45_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
						add__yG4AKzsBRS1W4MANDlXQeg(T45_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_20));
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if ((NU)(((NI) 1)) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
						expr__8mAL9ckajemzgfLPfeZVNoQ(p, (*it)._kind_6.sons->data[((NI) 1)], d);
						T46_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
						T46_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
						add__yG4AKzsBRS1W4MANDlXQeg(T46_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_235));
					}
					goto LA39_;
					LA43_: ;
					{
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if ((NU)(((NI) 1)) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
						expr__8mAL9ckajemzgfLPfeZVNoQ(p, (*it)._kind_6.sons->data[((NI) 1)], d);
					}
					LA39_: ;
					endBlock__0dpuY9coTlraj8JXIe2BzVw(p);
					{
						NI T50_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T53_;
						tyArray__JiWwrsTRC6xqNlGcBthSVA T54_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T55_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T56_;
						T50_ = (NI)0;
						T50_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
						if (!(((NI) 1) < T50_)) goto LA51_;
						T53_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
						T53_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
						nimZeroMem((void*)T54_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
						T54_[0] = lend;
						T55_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T55_ = percent___c1f569aWpTd825BTnv9bq4Xg(T54_, 1);
						T56_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T56_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T55_);
						add__IM4kcMNkkOLJtqdEqSxR8A(T53_, T56_);
					}
					LA51_: ;
					fixLabel__z1hx9axqa9cHsmY7bMeZVSrQ(p, lelse);
				}
				goto LA18_;
				LA21_: ;
				{
					NI T58_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T61_;
					NimStringDesc* res_2;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T70_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T71_;
					NI T72_;
					T58_ = (NI)0;
					T58_ = len__P89cqdlERShb9alU3iC0yj8wast(it);
					if (!(T58_ == ((NI) 1))) goto LA59_;
					T61_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
					T61_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
					{
						if (!!(!(((*p).module == NIM_NIL)))) goto LA64_;
						failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
					}
					LA64_: ;
					res_2 = rawNewString(((NI) 80));
					res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_20));
					{
						if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA68_;
						res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
					}
					LA68_: ;
					T70_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T70_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
					T71_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T71_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T70_);
					add__IM4kcMNkkOLJtqdEqSxR8A(T61_, T71_);
					T72_ = (NI)0;
					T72_ = startBlockInternal__1ygdb876UM9astcNUXtgUBQ(p);
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(((NI) 0)) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
					expr__8mAL9ckajemzgfLPfeZVNoQ(p, (*it)._kind_6.sons->data[((NI) 0)], d);
					endBlock__0dpuY9coTlraj8JXIe2BzVw(p);
				}
				goto LA18_;
				LA59_: ;
				{
					internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_848));
				}
				LA18_: ;
				if (nimAddInt(i, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_849)) { raiseOverflow(); };
				i = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_849);
				{
					NI T76_;
					T76_ = (colontmp_ ? colontmp_->Sup.len : 0);
					if (!!((T76_ == L))) goto LA77_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_26));
				}
				LA77_: ;
			} LA11: ;
		}
	}
	{
		NI T81_;
		T81_ = (NI)0;
		T81_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (!(((NI) 1) < T81_)) goto LA82_;
		fixLabel__z1hx9axqa9cHsmY7bMeZVSrQ(p, lend);
	}
	LA82_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, downConv__8mAL9ckajemzgfLPfeZVNoQ_16)(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) 31))&63U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		T7_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T7_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 0)]).typ, IL64(36275087638309136));
		T8_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T8_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, T7_);
		(void)(T8_);
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		expr__8mAL9ckajemzgfLPfeZVNoQ(p, (*n)._kind_6.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__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36275087638309136));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		arg = (*n)._kind_6.sons->data[((NI) 0)];
		{
			while (1) {
				if (!((*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66))) goto LA11;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*arg).kind)>>3] &(1U<<((NU)((*arg).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 0)) >= (NU)((*arg)._kind_6.sons ? (*arg)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*arg)._kind_6.sons ? (*arg)._kind_6.sons->Sup.len : 0)-1); }
				arg = (*arg)._kind_6.sons->data[((NI) 0)];
			} LA11: ;
		}
		src = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*arg).typ, IL64(36275087638309136));
		T12_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, src);
		(void)(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__zsqmUNR5OZrTUna0Y9bdu9bg((*arg).typ, IL64(36134350135273744));
		isRef = ((*T13_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*T13_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21) || (*T13_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*T13_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47));
		{
			if (!isRef) goto LA16_;
			add__yG4AKzsBRS1W4MANDlXQeg(&r, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_850));
		}
		goto LA14_;
		LA16_: ;
		{
			add__yG4AKzsBRS1W4MANDlXQeg(&r, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_115));
		}
		LA14_: ;
		{
			NI i;
			NI colontmp_;
			NI T20_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T20_ = (NI)0;
			T20_ = inheritanceDiff__1dM2iQB5qStJfnn3684ijQ_2(dest, src);
			if (T20_ == (-2147483647 -1)){ raiseOverflow(); }
			colontmp_ = (T20_ > 0? (T20_) : -(T20_));
			res = ((NI) 2);
			{
				while (1) {
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_851;
					if (!(res <= colontmp_)) goto LA22;
					i = res;
					add__yG4AKzsBRS1W4MANDlXQeg(&r, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_115));
					if (nimAddInt(res, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_851)) { raiseOverflow(); };
					res = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_851);
				} LA22: ;
			}
		}
		{
			if (!isRef) goto LA25_;
			{
				NIM_BOOL T29_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T31_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T34_;
				NimStringDesc* res_2;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T39_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T44_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T45_;
				T29_ = (NIM_BOOL)0;
				T29_ = ((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0));
				if (!(T29_)) goto LA30_;
				T31_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T31_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36134350135273744));
				T29_ = ((*T31_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*T31_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21) || (*T31_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*T31_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47));
				LA30_: ;
				if (!T29_) goto LA32_;
				getTemp__VjOFVqypINqQv5C3ECnxbw(p, (*n).typ, d, NIM_FALSE);
				T34_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T34_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA37_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA37_: ;
				res_2 = rawNewString(((NI) 80));
				T39_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T39_ = rdLoc__xidyzuHqIciXbQyEOKahDg((*d));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T39_);
				res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_852));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), r);
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_104));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA42_;
					res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA42_: ;
				T44_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T44_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
				T45_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T45_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T44_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T34_, T45_);
			}
			goto LA27_;
			LA32_: ;
			{
				r = amp___4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_397), 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_17)(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));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n)._kind_6.sons->data[((NI) 0)], (&a));
	dest = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36275087638309136));
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* nilCheck;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* checkFor;
		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__kS4QQNg40ThwD2ps8HD9aQgcgen(dest);
		T3_ = !(T5_);
		LA4_: ;
		if (!T3_) goto LA6_;
		nilCheck = NIM_NIL;
		r = rdMType__NjNUZn30hQD5ajLFvp2bbA(p, a, &nilCheck);
		{
			if (!(((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 40))&63U)))!=0)) goto LA10_;
			checkFor = genTypeInfo2Name__HPYuz9bvVOGBv0EUX9c74xhg((*p).module, dest);
		}
		goto LA8_;
		LA10_: ;
		{
			checkFor = genTypeInfo__BeEYMOjEPJinzbFpsfTaZg((*p).module, dest, (*n).info);
		}
		LA8_: ;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T17_;
			NimStringDesc* res;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T22_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T23_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T24_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T29_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T30_;
			if (!!((nilCheck == NIM_NIL))) goto LA15_;
			T17_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T17_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA20_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA20_: ;
			res = rawNewString(((NI) 80));
			res = resizeString(res, 4);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_285));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), nilCheck);
			res = resizeString(res, 5);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_853));
			T22_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T22_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_672));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T22_);
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), r);
			res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), checkFor);
			res = resizeString(res, 4);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_487));
			T23_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T23_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_854));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T23_);
			res = resizeString(res, 4);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_478));
			T24_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T24_ = raiseInstr__3AsTOpq9crZUYBL9aD1lXBng_4(p);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T24_);
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_235));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA27_;
				res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA27_: ;
			T29_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T29_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
			T30_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T30_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T29_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T17_, T30_);
		}
		goto LA13_;
		LA15_: ;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T32_;
			NimStringDesc* res_2;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T37_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T38_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T39_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T44_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T45_;
			T32_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T32_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA35_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA35_: ;
			res_2 = rawNewString(((NI) 80));
			res_2 = resizeString(res_2, 5);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_855));
			T37_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T37_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_672));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T37_);
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), r);
			res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), checkFor);
			res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_487));
			T38_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T38_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_854));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T38_);
			res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_478));
			T39_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T39_ = raiseInstr__3AsTOpq9crZUYBL9aD1lXBng_4(p);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T39_);
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_235));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA42_;
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA42_: ;
			T44_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T44_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
			T45_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T45_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T44_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T32_, T45_);
		}
		LA13_: ;
	}
	LA6_: ;
	{
		tyArray__mrugoXXRZUEeG9bEXo9auBKw T50_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T51_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		if (!!(((*(*(*n)._kind_6.sons->data[((NI) 0)]).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17)))) goto LA48_;
		nimZeroMem((void*)T50_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
		T50_[0] = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, (*n).typ);
		T50_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		T51_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T51_ = percent___GNSb4l0oRsR1gu66azz1LQ(T50_, 2);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, n, T51_, a.storage);
	}
	goto LA46_;
	LA48_: ;
	{
		tyArray__mrugoXXRZUEeG9bEXo9auBKw T53_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T54_;
		nimZeroMem((void*)T53_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
		T53_[0] = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, dest);
		T53_[1] = addrLoc__9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, a);
		T54_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T54_ = percent___duX6hgjmpJtFFdvJVuoafg(T53_, 2);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, n, T54_, a.storage);
	}
	LA46_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genRangeChck__8mAL9ckajemzgfLPfeZVNoQ_18)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* dest;
	tyArray__mrugoXXRZUEeG9bEXo9auBKw T46_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T47_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
	dest = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36275087632017680));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n)._kind_6.sons->data[((NI) 0)], (&a));
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = !((((*p).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 3))&31U)))!=0));
		if (T3_) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*dest).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40) && (*dest).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44));
		if (!(T5_)) goto LA6_;
		T5_ = !((((*(*(*(*p).module).g).config).legacyFeatures &(1U<<((NU)(((tyEnum_LegacyFeature__hGCD9aOrxPvpXn4Ne6W6OVA) 1))&7U)))!=0));
		LA6_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA7_;
	}
	goto LA1_;
	LA7_: ;
	{
		NimStringDesc* raiser;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T10_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T14_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* n0t;
		NimStringDesc* boundaryCast;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T27_;
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T32_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T33_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T34_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T35_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T36_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T37_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T38_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T39_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T44_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T45_;
		T10_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T10_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36134350144710928));
		switch ((*T10_).kind) {
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2):
		{
			raiser = copyString(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_856));
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39):
		{
			raiser = copyString(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_857));
		}
		break;
		default:
		{
			raiser = copyString(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_858));
		}
		break;
		}
		T14_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, raiser);
		(void)(T14_);
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		n0t = (*(*n)._kind_6.sons->data[((NI) 0)]).typ;
		{
			NIM_BOOL T17_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T18_;
			NIM_BOOL T20_;
			NIM_BOOL T21_;
			T17_ = (NIM_BOOL)0;
			T18_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T18_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(n0t, IL64(36134350144710928));
			T17_ = ((*T18_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40) || (*T18_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 43) || (*T18_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44));
			if (T17_) goto LA19_;
			T20_ = (NIM_BOOL)0;
			T21_ = (NIM_BOOL)0;
			T21_ = !(((*n0t).sym == NIM_NIL));
			if (!(T21_)) goto LA22_;
			T21_ = (((*(*(*n0t).sym).owner).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 15))&63U)))!=0);
			LA22_: ;
			T20_ = T21_;
			if (!(T20_)) goto LA23_;
			T20_ = eqStrings((*(*(*n0t).sym).name).s, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_859));
			LA23_: ;
			T17_ = T20_;
			LA19_: ;
			if (!T17_) goto LA24_;
			boundaryCast = copyString(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_860));
		}
		goto LA15_;
		LA24_: ;
		{
			boundaryCast = ((NimStringDesc*) NIM_NIL);
		}
		LA15_: ;
		T27_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T27_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA30_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA30_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 4);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_285));
		cgFormatValue__GOaK9aDgu4cLOYhocodpf3Q((&res), boundaryCast);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T32_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T32_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(a);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T32_);
		res = resizeString(res, 4);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_861));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		T33_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T33_ = genLiteral__qifZy01sZ5OX01eT5FP76w(p, (*n)._kind_6.sons->data[((NI) 1)], dest);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T33_);
		res = resizeString(res, 4);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_485));
		cgFormatValue__GOaK9aDgu4cLOYhocodpf3Q((&res), boundaryCast);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T34_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T34_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(a);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T34_);
		res = resizeString(res, 4);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_862));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 2)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		T35_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T35_ = genLiteral__qifZy01sZ5OX01eT5FP76w(p, (*n)._kind_6.sons->data[((NI) 2)], dest);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T35_);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_563));
		cgFormatValue__GOaK9aDgu4cLOYhocodpf3Q((&res), raiser);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T36_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T36_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(a);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T36_);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		T37_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T37_ = genLiteral__qifZy01sZ5OX01eT5FP76w(p, (*n)._kind_6.sons->data[((NI) 1)], dest);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T37_);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 2)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		T38_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T38_ = genLiteral__qifZy01sZ5OX01eT5FP76w(p, (*n)._kind_6.sons->data[((NI) 2)], dest);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T38_);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_578));
		T39_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T39_ = raiseInstr__3AsTOpq9crZUYBL9aD1lXBng_4(p);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T39_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_235));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA42_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA42_: ;
		T44_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T44_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
		T45_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T45_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T44_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T27_, T45_);
	}
	LA1_: ;
	nimZeroMem((void*)T46_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
	T46_[0] = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, dest);
	T46_[1] = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(a);
	T47_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T47_ = percent___GNSb4l0oRsR1gu66azz1LQ(T46_, 2);
	putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, n, T47_, a.storage);
}
N_LIB_PRIVATE N_NIMCALL(void, convStrToCStr__8mAL9ckajemzgfLPfeZVNoQ_19)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a;
	NimStringDesc* res;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T5_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T6_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T7_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n)._kind_6.sons->data[((NI) 0)], (&a));
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
	}
	LA3_: ;
	res = rawNewString(((NI) 80));
	T5_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T5_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_456));
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T5_);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
	T6_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T6_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T6_);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
	T7_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T7_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
	putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, n, T7_, a.storage);
}
N_LIB_PRIVATE N_NIMCALL(void, convCStrToStr__8mAL9ckajemzgfLPfeZVNoQ_20)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a;
	NimStringDesc* res;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T5_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T6_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T7_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n)._kind_6.sons->data[((NI) 0)], (&a));
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
	}
	LA3_: ;
	res = rawNewString(((NI) 80));
	T5_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T5_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_668));
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T5_);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
	T6_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T6_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T6_);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
	T7_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T7_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
	putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, n, T7_, a.storage);
	gcUsage__Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, n);
}
N_LIB_PRIVATE N_NIMCALL(void, genComputedGoto__UtJx89cn0a8CNSWWmaj6raA_7)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n_2;
	NI casePos;
	NI arraySize;
	NI id;
	NI TM__MQdRN7fpbG7rPm4JpVVAhA_871;
	NI TM__MQdRN7fpbG7rPm4JpVVAhA_872;
	NI TM__MQdRN7fpbG7rPm4JpVVAhA_873;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* tmp;
	tyArray__JiWwrsTRC6xqNlGcBthSVA T33_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* gotoArray;
	tyArray__mrugoXXRZUEeG9bEXo9auBKw T34_;
	tyArray__JiWwrsTRC6xqNlGcBthSVA T40_;
	NI TM__MQdRN7fpbG7rPm4JpVVAhA_877;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T41_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T42_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T43_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* caseStmt;
	tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T47_;
	tyArray__mrugoXXRZUEeG9bEXo9auBKw T48_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T49_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T50_;
{	n_2 = flattenStmts__qsyX8NJX39ctdwAi4rC8W1g(n);
	casePos = ((NI) -1);
	arraySize = (NI)0;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n_2);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_869;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n_2).kind)>>3] &(1U<<((NU)((*n_2).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(i) >= (NU)((*n_2)._kind_6.sons ? (*n_2)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*n_2)._kind_6.sons ? (*n_2)._kind_6.sons->Sup.len : 0)-1); }
				it = (*n_2)._kind_6.sons->data[i];
				{
					tyObject_Int128__9a9axPfb75jdWY25AamJewkA aSize;
					if (!((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 97))) goto LA6_;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T10_;
						T10_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T10_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(it);
						if (!!(((*T10_).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85)))) goto LA11_;
						localError__NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*it).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_865));
						goto BeforeRet_;
					}
					LA11_: ;
					casePos = i;
					{
						NIM_BOOL T15_;
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if ((NU)(((NI) 0)) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
						T15_ = (NIM_BOOL)0;
						T15_ = enumHasHoles__YPjOkGV9axAnGR3UfLeWZ1g_3((*(*it)._kind_6.sons->data[((NI) 0)]).typ);
						if (!T15_) goto LA16_;
						localError__NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*it).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_866));
						goto BeforeRet_;
					}
					LA16_: ;
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(((NI) 0)) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
					aSize = lengthOrd__hjogdnp59cMX1rwmjikBhqw_3((*(*(*p).module).g).config, (*(*it)._kind_6.sons->data[((NI) 0)]).typ);
					{
						NIM_BOOL T20_;
						T20_ = (NIM_BOOL)0;
						T20_ = lt___xL5gyZrjbGMarSdRAXOo9ag_3(IL64(10000), aSize);
						if (!T20_) goto LA21_;
						localError__NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*it).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_867));
						goto BeforeRet_;
					}
					LA21_: ;
					arraySize = toInt__TIX0sFuRf3uBpOBltYp7bw(aSize);
					{
						tyObject_Int128__9a9axPfb75jdWY25AamJewkA T25_;
						NIM_BOOL T26_;
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if ((NU)(((NI) 0)) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
						T25_ = firstOrd__hjogdnp59cMX1rwmjikBhqw((*(*(*p).module).g).config, (*(*it)._kind_6.sons->data[((NI) 0)]).typ);
						T26_ = (NIM_BOOL)0;
						T26_ = eqeq___nr9cP9b0OL9cabygV9bo19cJgZA_2(T25_, IL64(0));
						if (!!(T26_)) goto LA27_;
						localError__NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*it).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_868));
						goto BeforeRet_;
					}
					LA27_: ;
				}
				LA6_: ;
				if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_869)) { raiseOverflow(); };
				i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_869);
			} LA3: ;
		}
	}
	{
		if (!(casePos < ((NI) 0))) goto LA31_;
		localError__NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*n_2).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_870));
		goto BeforeRet_;
	}
	LA31_: ;
	if (nimAddInt(((NI) ((*p).labels)), ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_871)) { raiseOverflow(); };
	id = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_871);
	if (nimAddInt(arraySize, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_872)) { raiseOverflow(); };
	if (nimAddInt((*p).labels, (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_872), &TM__MQdRN7fpbG7rPm4JpVVAhA_873)) { raiseOverflow(); };
	if (TM__MQdRN7fpbG7rPm4JpVVAhA_873 < 0 || TM__MQdRN7fpbG7rPm4JpVVAhA_873 > 2147483647){ raiseOverflow(); }
	(*p).labels = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_873);
	nimZeroMem((void*)T33_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
	T33_[0] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (id)));
	tmp = percent___ibl3qMPOrpGT2x8X7vmbeQ(T33_, 1);
	nimZeroMem((void*)T34_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
	T34_[0] = tmp;
	T34_[1] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (arraySize)));
	gotoArray = percent___bBcuDHMXr6Kz1tr7BzD9aKw(T34_, 2);
	{
		NI i_3;
		NI colontmp__2;
		NI TM__MQdRN7fpbG7rPm4JpVVAhA_874;
		NI res;
		i_3 = (NI)0;
		colontmp__2 = (NI)0;
		if (nimSubInt(arraySize, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_874)) { raiseOverflow(); };
		colontmp__2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_874);
		res = ((NI) 1);
		{
			while (1) {
				tyArray__JiWwrsTRC6xqNlGcBthSVA T38_;
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_875;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T39_;
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_876;
				if (!(res <= colontmp__2)) goto LA37;
				i_3 = res;
				nimZeroMem((void*)T38_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
				if (nimAddInt(id, i_3, &TM__MQdRN7fpbG7rPm4JpVVAhA_875)) { raiseOverflow(); };
				T38_[0] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_875))));
				T39_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T39_ = percent___aDvifvZOUmduC6Unfm69bKA(T38_, 1);
				add__IM4kcMNkkOLJtqdEqSxR8A(&gotoArray, T39_);
				if (nimAddInt(res, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_876)) { raiseOverflow(); };
				res = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_876);
			} LA37: ;
		}
	}
	nimZeroMem((void*)T40_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
	if (nimAddInt(id, arraySize, &TM__MQdRN7fpbG7rPm4JpVVAhA_877)) { raiseOverflow(); };
	T40_[0] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_877))));
	T41_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T41_ = percent___5kuxCbMO8PVJc9aJbXScUOQ(T40_, 1);
	add__IM4kcMNkkOLJtqdEqSxR8A(&gotoArray, T41_);
	T42_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T42_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 0));
	T43_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T43_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, gotoArray);
	add__IM4kcMNkkOLJtqdEqSxR8A(T42_, T43_);
	{
		NI j;
		NI i_4;
		j = (NI)0;
		i_4 = ((NI) 0);
		{
			while (1) {
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_878;
				if (!(i_4 < casePos)) goto LA46;
				j = i_4;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n_2).kind)>>3] &(1U<<((NU)((*n_2).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(j) >= (NU)((*n_2)._kind_6.sons ? (*n_2)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(j,((*n_2)._kind_6.sons ? (*n_2)._kind_6.sons->Sup.len : 0)-1); }
				genStmts__QrTB5DOwbDX9bKAW7PNbuJA(p, (*n_2)._kind_6.sons->data[j]);
				if (nimAddInt(i_4, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_878)) { raiseOverflow(); };
				i_4 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_878);
			} LA46: ;
		}
	}
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n_2).kind)>>3] &(1U<<((NU)((*n_2).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(casePos) >= (NU)((*n_2)._kind_6.sons ? (*n_2)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(casePos,((*n_2)._kind_6.sons ? (*n_2)._kind_6.sons->Sup.len : 0)-1); }
	caseStmt = (*n_2)._kind_6.sons->data[casePos];
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*caseStmt).kind)>>3] &(1U<<((NU)((*caseStmt).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*caseStmt)._kind_6.sons ? (*caseStmt)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*caseStmt)._kind_6.sons ? (*caseStmt)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*caseStmt)._kind_6.sons->data[((NI) 0)], (&a));
	T47_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T47_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
	nimZeroMem((void*)T48_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
	T48_[0] = tmp;
	T48_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
	T49_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T49_ = percent___Uu9cBz7dxPVDFhF9aLzWecyQ(T48_, 2);
	T50_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T50_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T49_);
	add__IM4kcMNkkOLJtqdEqSxR8A(T47_, T50_);
	{
		NI i_5;
		NI colontmp__3;
		NI i_6;
		i_5 = (NI)0;
		colontmp__3 = (NI)0;
		colontmp__3 = len__P89cqdlERShb9alU3iC0yj8wast(caseStmt);
		i_6 = ((NI) 1);
		{
			while (1) {
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T54_;
				NimStringDesc* res_2;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T63_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T64_;
				NI T65_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it_2;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T79_;
				tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a_2;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T113_;
				tyArray__mrugoXXRZUEeG9bEXo9auBKw T114_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T115_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T116_;
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_892;
				if (!(i_6 < colontmp__3)) goto LA53;
				i_5 = i_6;
				T54_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T54_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA57_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA57_: ;
				res_2 = rawNewString(((NI) 80));
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_20));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA61_;
					res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA61_: ;
				T63_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T63_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
				T64_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T64_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T63_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T54_, T64_);
				T65_ = (NI)0;
				T65_ = startBlockInternal__1ygdb876UM9astcNUXtgUBQ(p);
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*caseStmt).kind)>>3] &(1U<<((NU)((*caseStmt).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(i_5) >= (NU)((*caseStmt)._kind_6.sons ? (*caseStmt)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_5,((*caseStmt)._kind_6.sons ? (*caseStmt)._kind_6.sons->Sup.len : 0)-1); }
				it_2 = (*caseStmt)._kind_6.sons->data[i_5];
				{
					NI j_2;
					NI colontmp__4;
					NI T67_;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_879;
					NI i_7;
					j_2 = (NI)0;
					colontmp__4 = (NI)0;
					T67_ = (NI)0;
					T67_ = len__P89cqdlERShb9alU3iC0yj8wast(it_2);
					if (nimSubInt(T67_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_879)) { raiseOverflow(); };
					colontmp__4 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_879);
					i_7 = ((NI) 0);
					{
						while (1) {
							tyObject_Int128__9a9axPfb75jdWY25AamJewkA val;
							tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T74_;
							tyArray__JiWwrsTRC6xqNlGcBthSVA T75_;
							NI64 T76_;
							NI64 TM__MQdRN7fpbG7rPm4JpVVAhA_881;
							NI64 TM__MQdRN7fpbG7rPm4JpVVAhA_882;
							tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T77_;
							tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T78_;
							NI TM__MQdRN7fpbG7rPm4JpVVAhA_883;
							if (!(i_7 < colontmp__4)) goto LA69;
							j_2 = i_7;
							{
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*it_2).kind)>>3] &(1U<<((NU)((*it_2).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(j_2) >= (NU)((*it_2)._kind_6.sons ? (*it_2)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(j_2,((*it_2)._kind_6.sons ? (*it_2)._kind_6.sons->Sup.len : 0)-1); }
								if (!((*(*it_2)._kind_6.sons->data[j_2]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA72_;
								localError__NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*it_2).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_880));
								goto BeforeRet_;
							}
							LA72_: ;
							if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*it_2).kind)>>3] &(1U<<((NU)((*it_2).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
							if ((NU)(j_2) >= (NU)((*it_2)._kind_6.sons ? (*it_2)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(j_2,((*it_2)._kind_6.sons ? (*it_2)._kind_6.sons->Sup.len : 0)-1); }
							val = getOrdValue__GvVg8kpCh7QA2PDTJnFJlQ((*it_2)._kind_6.sons->data[j_2], TM__MQdRN7fpbG7rPm4JpVVAhA_216);
							T74_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
							T74_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
							nimZeroMem((void*)T75_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
							T76_ = (NI64)0;
							T76_ = toInt64__1szweXXq3RBN50owrYu2Xw(val);
							if (nimAddInt64(T76_, ((NI64) (id)), &TM__MQdRN7fpbG7rPm4JpVVAhA_881)) { raiseOverflow(); };
							if (nimAddInt64((NI64)(TM__MQdRN7fpbG7rPm4JpVVAhA_881), IL64(1), &TM__MQdRN7fpbG7rPm4JpVVAhA_882)) { raiseOverflow(); };
							T75_[0] = intLiteral__kQA0lBUvzOSZAw7DHC4Fjg((NI64)(TM__MQdRN7fpbG7rPm4JpVVAhA_882));
							T77_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
							T77_ = percent___WWt3il4CHPiYP10KdNLrWw(T75_, 1);
							T78_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
							T78_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T77_);
							add__IM4kcMNkkOLJtqdEqSxR8A(T74_, T78_);
							if (nimAddInt(i_7, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_883)) { raiseOverflow(); };
							i_7 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_883);
						} LA69: ;
					}
				}
				T79_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T79_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(it_2);
				genStmts__QrTB5DOwbDX9bKAW7PNbuJA(p, T79_);
				{
					NI j_3;
					NI colontmp__5;
					NI colontmp__6;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_884;
					NI i_8;
					j_3 = (NI)0;
					colontmp__5 = (NI)0;
					colontmp__6 = (NI)0;
					if (nimAddInt(casePos, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_884)) { raiseOverflow(); };
					colontmp__5 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_884);
					colontmp__6 = len__P89cqdlERShb9alU3iC0yj8wast(n_2);
					i_8 = colontmp__5;
					{
						while (1) {
							NI TM__MQdRN7fpbG7rPm4JpVVAhA_885;
							if (!(i_8 < colontmp__6)) goto LA82;
							j_3 = i_8;
							if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n_2).kind)>>3] &(1U<<((NU)((*n_2).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
							if ((NU)(j_3) >= (NU)((*n_2)._kind_6.sons ? (*n_2)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(j_3,((*n_2)._kind_6.sons ? (*n_2)._kind_6.sons->Sup.len : 0)-1); }
							genStmts__QrTB5DOwbDX9bKAW7PNbuJA(p, (*n_2)._kind_6.sons->data[j_3]);
							if (nimAddInt(i_8, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_885)) { raiseOverflow(); };
							i_8 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_885);
						} LA82: ;
					}
				}
				{
					NI j_4;
					NI i_9;
					j_4 = (NI)0;
					i_9 = ((NI) 0);
					{
						while (1) {
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it_3;
							NI TM__MQdRN7fpbG7rPm4JpVVAhA_891;
							if (!(i_9 < casePos)) goto LA85;
							j_4 = i_9;
							if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n_2).kind)>>3] &(1U<<((NU)((*n_2).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
							if ((NU)(j_4) >= (NU)((*n_2)._kind_6.sons ? (*n_2)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(j_4,((*n_2)._kind_6.sons ? (*n_2)._kind_6.sons->Sup.len : 0)-1); }
							it_3 = (*n_2)._kind_6.sons->data[j_4];
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* asgn;
								if (!((*it_3).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 100) || (*it_3).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99))) goto LA88_;
								asgn = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ(it_3);
								transitionSonsKind__uOUBEXn0RV9b64TOM9ajIDag(asgn, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 73));
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*asgn).kind)>>3] &(1U<<((NU)((*asgn).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								asgnRef((void**) (&(*asgn)._kind_6.sons), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) setLengthSeqV2(&((*asgn)._kind_6.sons)->Sup, (&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_), ((NI) 2)));
								{
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* sym;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* value;
									sym = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									value = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									{
										if (!!(((*it_3).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 100) || (*it_3).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99)))) goto LA93_;
										failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_886));
									}
									LA93_: ;
									{
										tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* identDefs;
										identDefs = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
										{
											NI i_10;
											NI colontmp__7;
											NI i_11;
											i_10 = (NI)0;
											colontmp__7 = (NI)0;
											colontmp__7 = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(it_3);
											i_11 = ((NI) 0);
											{
												while (1) {
													NI TM__MQdRN7fpbG7rPm4JpVVAhA_890;
													if (!(i_11 < colontmp__7)) goto LA98;
													i_10 = i_11;
													if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*it_3).kind)>>3] &(1U<<((NU)((*it_3).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
													if ((NU)(i_10) >= (NU)((*it_3)._kind_6.sons ? (*it_3)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_10,((*it_3)._kind_6.sons ? (*it_3)._kind_6.sons->Sup.len : 0)-1); }
													identDefs = (*it_3)._kind_6.sons->data[i_10];
													{
														tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* valueSym;
														NI T103_;
														NI TM__MQdRN7fpbG7rPm4JpVVAhA_887;
														if (!((*identDefs).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35))) goto LA101_;
														if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*identDefs).kind)>>3] &(1U<<((NU)((*identDefs).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
														T103_ = (NI)0;
														T103_ = len__P89cqdlERShb9alU3iC0yj8wast(identDefs);
														if (nimSubInt(T103_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_887)) { raiseOverflow(); };
														if ((NU)((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_887)) >= (NU)((*identDefs)._kind_6.sons ? (*identDefs)._kind_6.sons->Sup.len : 0)){ raiseIndexError2((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_887),((*identDefs)._kind_6.sons ? (*identDefs)._kind_6.sons->Sup.len : 0)-1); }
														valueSym = (*identDefs)._kind_6.sons->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_887)];
														{
															NI i_12;
															NI colontmp__8;
															NI T105_;
															NI TM__MQdRN7fpbG7rPm4JpVVAhA_888;
															NI i_13;
															i_12 = (NI)0;
															colontmp__8 = (NI)0;
															T105_ = (NI)0;
															T105_ = len__P89cqdlERShb9alU3iC0yj8wast(identDefs);
															if (nimSubInt(T105_, ((NI) 2), &TM__MQdRN7fpbG7rPm4JpVVAhA_888)) { raiseOverflow(); };
															colontmp__8 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_888);
															i_13 = ((NI) 0);
															{
																while (1) {
																	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* memberSym;
																	NI TM__MQdRN7fpbG7rPm4JpVVAhA_889;
																	if (!(i_13 < colontmp__8)) goto LA107;
																	i_12 = i_13;
																	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*identDefs).kind)>>3] &(1U<<((NU)((*identDefs).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
																	if ((NU)(i_12) >= (NU)((*identDefs)._kind_6.sons ? (*identDefs)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_12,((*identDefs)._kind_6.sons ? (*identDefs)._kind_6.sons->Sup.len : 0)-1); }
																	memberSym = (*identDefs)._kind_6.sons->data[i_12];
																	sym = memberSym;
																	value = valueSym;
																	{
																		if (!!(((*value).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA110_;
																		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*asgn).kind)>>3] &(1U<<((NU)((*asgn).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
																		if ((NU)(((NI) 0)) >= (NU)((*asgn)._kind_6.sons ? (*asgn)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*asgn)._kind_6.sons ? (*asgn)._kind_6.sons->Sup.len : 0)-1); }
																		asgnRef((void**) (&(*asgn)._kind_6.sons->data[((NI) 0)]), sym);
																		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*asgn).kind)>>3] &(1U<<((NU)((*asgn).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
																		if ((NU)(((NI) 1)) >= (NU)((*asgn)._kind_6.sons ? (*asgn)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*asgn)._kind_6.sons ? (*asgn)._kind_6.sons->Sup.len : 0)-1); }
																		asgnRef((void**) (&(*asgn)._kind_6.sons->data[((NI) 1)]), value);
																		genStmts__QrTB5DOwbDX9bKAW7PNbuJA(p, asgn);
																	}
																	LA110_: ;
																	if (nimAddInt(i_13, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_889)) { raiseOverflow(); };
																	i_13 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_889);
																} LA107: ;
															}
														}
													}
													LA101_: ;
													if (nimAddInt(i_11, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_890)) { raiseOverflow(); };
													i_11 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_890);
												} LA98: ;
											}
										}
									}
								}
							}
							goto LA86_;
							LA88_: ;
							{
								genStmts__QrTB5DOwbDX9bKAW7PNbuJA(p, it_3);
							}
							LA86_: ;
							if (nimAddInt(i_9, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_891)) { raiseOverflow(); };
							i_9 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_891);
						} LA85: ;
					}
				}
				nimZeroMem((void*)(&a_2), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*caseStmt).kind)>>3] &(1U<<((NU)((*caseStmt).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 0)) >= (NU)((*caseStmt)._kind_6.sons ? (*caseStmt)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*caseStmt)._kind_6.sons ? (*caseStmt)._kind_6.sons->Sup.len : 0)-1); }
				initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*caseStmt)._kind_6.sons->data[((NI) 0)], (&a_2));
				T113_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T113_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				nimZeroMem((void*)T114_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
				T114_[0] = tmp;
				T114_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(a_2);
				T115_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T115_ = percent___Uu9cBz7dxPVDFhF9aLzWecyQ(T114_, 2);
				T116_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T116_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T115_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T113_, T116_);
				endBlock__0dpuY9coTlraj8JXIe2BzVw(p);
				if (nimAddInt(i_6, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_892)) { raiseOverflow(); };
				i_6 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_892);
			} LA53: ;
		}
	}
	{
		NI j_5;
		NI colontmp__9;
		NI colontmp__10;
		NI TM__MQdRN7fpbG7rPm4JpVVAhA_893;
		NI i_14;
		j_5 = (NI)0;
		colontmp__9 = (NI)0;
		colontmp__10 = (NI)0;
		if (nimAddInt(casePos, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_893)) { raiseOverflow(); };
		colontmp__9 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_893);
		colontmp__10 = len__P89cqdlERShb9alU3iC0yj8wast(n_2);
		i_14 = colontmp__9;
		{
			while (1) {
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_894;
				if (!(i_14 < colontmp__10)) goto LA119;
				j_5 = i_14;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n_2).kind)>>3] &(1U<<((NU)((*n_2).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(j_5) >= (NU)((*n_2)._kind_6.sons ? (*n_2)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(j_5,((*n_2)._kind_6.sons ? (*n_2)._kind_6.sons->Sup.len : 0)-1); }
				genStmts__QrTB5DOwbDX9bKAW7PNbuJA(p, (*n_2)._kind_6.sons->data[j_5]);
				if (nimAddInt(i_14, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_894)) { raiseOverflow(); };
				i_14 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_894);
			} LA119: ;
		}
	}
	}BeforeRet_: ;
}
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_552), T1_));
	result = (*b).label;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genWhileStmt__QrTB5DOwbDX9bKAW7PNbuJA_3)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* t) {
	tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a;
	NI TM__MQdRN7fpbG7rPm4JpVVAhA_864;
	NI oldBreakIdxX60gensym101105207_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* loopBody;
	NI TM__MQdRN7fpbG7rPm4JpVVAhA_896;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__P89cqdlERShb9alU3iC0yj8wast(t);
		if (!!((T3_ == ((NI) 2)))) goto LA4_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_863));
	}
	LA4_: ;
	if (nimAddInt((*p).withinLoop, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_864)) { raiseOverflow(); };
	(*p).withinLoop = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_864);
	genLineDir__QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
	oldBreakIdxX60gensym101105207_ = (*p).breakIdx;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
	loopBody = (*t)._kind_6.sons->data[((NI) 1)];
	{
		NIM_BOOL T8_;
		T8_ = (NIM_BOOL)0;
		T8_ = stmtsContainPragma__QPJXGOVirAPBlaL8RY5bwA(loopBody, ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 198));
		if (!(T8_)) goto LA9_;
		if ((*(*(*(*p).module).g).config).cCompiler < 1 || (*(*(*(*p).module).g).config).cCompiler > 15){ raiseIndexError3((*(*(*(*p).module).g).config).cCompiler, 1, 15); }
		T8_ = ((CC__78I18QZNZFIv9ah7oETc0jg[((*(*(*(*p).module).g).config).cCompiler)- 1].Field21 &(1U<<((NU)(((tyEnum_TInfoCCProp__49cn73TjZ7Rt9b8QCAU8tLNg) 1))&7U)))!=0);
		LA9_: ;
		if (!T8_) goto LA10_;
		{
			NIM_BOOL T14_;
			NI T15_;
			T14_ = (NIM_BOOL)0;
			T15_ = (NI)0;
			T15_ = len__P89cqdlERShb9alU3iC0yj8wast(loopBody);
			T14_ = (T15_ == ((NI) 2));
			if (!(T14_)) goto LA16_;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*loopBody).kind)>>3] &(1U<<((NU)((*loopBody).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*loopBody)._kind_6.sons ? (*loopBody)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*loopBody)._kind_6.sons ? (*loopBody)._kind_6.sons->Sup.len : 0)-1); }
			T14_ = ((*(*loopBody)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
			LA16_: ;
			if (!T14_) goto LA17_;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*loopBody).kind)>>3] &(1U<<((NU)((*loopBody).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 1)) >= (NU)((*loopBody)._kind_6.sons ? (*loopBody)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*loopBody)._kind_6.sons ? (*loopBody)._kind_6.sons->Sup.len : 0)-1); }
			loopBody = (*loopBody)._kind_6.sons->data[((NI) 1)];
		}
		LA17_: ;
		genComputedGoto__UtJx89cn0a8CNSWWmaj6raA_7(p, loopBody);
	}
	goto LA6_;
	LA10_: ;
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T20_;
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T29_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T30_;
		T20_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T20_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA23_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA23_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 11);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_895));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA27_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA27_: ;
		T29_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T29_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
		T30_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T30_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T29_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T20_, T30_);
		(*p).breakIdx = startBlockInternal__1ygdb876UM9astcNUXtgUBQ(p);
		if ((NU)((*p).breakIdx) >= (NU)((*p).blocks ? (*p).blocks->Sup.len : 0)){ raiseIndexError2((*p).breakIdx,((*p).blocks ? (*p).blocks->Sup.len : 0)-1); }
		(*p).blocks->data[(*p).breakIdx].isLoop = NIM_TRUE;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*t)._kind_6.sons->data[((NI) 0)], (&a));
		{
			NIM_BOOL T33_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* label;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T37_;
			tyArray__mrugoXXRZUEeG9bEXo9auBKw T38_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T39_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T40_;
			T33_ = (NIM_BOOL)0;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
			T33_ = !(((*(*t)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6)));
			if (T33_) goto LA34_;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
			if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_174[(NU)((*(*t)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_175)); }
			T33_ = ((*(*t)._kind_6.sons->data[((NI) 0)])._kind_1.intVal == IL64(0));
			LA34_: ;
			if (!T33_) goto LA35_;
			if ((NU)((*p).breakIdx) >= (NU)((*p).blocks ? (*p).blocks->Sup.len : 0)){ raiseIndexError2((*p).breakIdx,((*p).blocks ? (*p).blocks->Sup.len : 0)-1); }
			label = assignLabel__mIFKIo7g6Echd7EokLhQegcgen((&(*p).blocks->data[(*p).breakIdx]));
			T37_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T37_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			nimZeroMem((void*)T38_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
			T38_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
			T38_[1] = label;
			T39_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T39_ = percent___SqZEI7bxySjmJX4GsXyvKw(T38_, 2);
			T40_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T40_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T39_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T37_, T40_);
		}
		LA35_: ;
		genStmts__QrTB5DOwbDX9bKAW7PNbuJA(p, loopBody);
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T45_;
			NimStringDesc* res_2;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T50_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T55_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T56_;
			if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 22))&31U)))!=0)) goto LA43_;
			T45_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T45_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA48_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA48_: ;
			res_2 = rawNewString(((NI) 80));
			T50_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T50_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_348));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T50_);
			res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_334));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA53_;
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA53_: ;
			T55_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T55_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
			T56_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T56_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T55_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T45_, T56_);
		}
		LA43_: ;
		endBlock__0dpuY9coTlraj8JXIe2BzVw(p);
	}
	LA6_: ;
	(*p).breakIdx = oldBreakIdxX60gensym101105207_;
	if (nimSubInt((*p).withinLoop, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_896)) { raiseOverflow(); };
	(*p).withinLoop = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_896);
}
N_LIB_PRIVATE N_NIMCALL(void, genSingleVar__9c6v9b6B8RZkui111YH4cbEw)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a) {
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* v;
{	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)-1); }
	if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*a)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*a)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
	v = (*(*a)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
	{
		if (!(((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 27))&63U)))!=0)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)-1); }
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 2)) >= (NU)((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)-1); }
	genSingleVar__T7FeUoHVfLrGm0JydrFabA(p, v, (*a)._kind_6.sons->data[((NI) 0)], (*a)._kind_6.sons->data[((NI) 2)]);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genClosureVar__9c6v9b6B8RZkui111YH4cbEw_2)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a) {
	NIM_BOOL immediateAsgn;
	tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA v;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 2)) >= (NU)((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)-1); }
	immediateAsgn = !(((*(*a)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)));
	nimZeroMem((void*)(&v), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*a)._kind_6.sons->data[((NI) 0)], (&v));
	genLineDir__QrTB5DOwbDX9bKAW7PNbuJA_2(p, a);
	{
		if (!immediateAsgn) goto LA3_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)-1); }
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 2)) >= (NU)((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)-1); }
		loadInto__vkEx8Dn9aiGOI04WjvQIHIwcgen(p, (*a)._kind_6.sons->data[((NI) 0)], (*a)._kind_6.sons->data[((NI) 2)], (&v));
	}
	goto LA1_;
	LA3_: ;
	{
		constructLoc__Q4oQMHZIwSi4nGkYAuAC8A(p, (&v), NIM_FALSE);
	}
	LA1_: ;
}
static N_NIMCALL(void, Marker_tySequence__sno9c9bXUVS2CqhtWOJadaCw)(void* p, NI op) {
	tySequence__sno9c9bXUVS2CqhtWOJadaCw* a;
	NI T1_;
	a = (tySequence__sno9c9bXUVS2CqhtWOJadaCw*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_].Field0.lode, op);
	nimGCvisit((void*)a->data[T1_].Field0.r, op);
	nimGCvisit((void*)a->data[T1_].Field1, op);
	}
}
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;
	NIM_BOOL forHcr;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* hcrCond;
	tySequence__sno9c9bXUVS2CqhtWOJadaCw* hcrGlobals;
	NIM_BOOL isGlobalInBlock;
	NIM_BOOL T19_;
	NI T21_;
	NIM_BOOL T22_;
	NI T51_;
	NI TM__MQdRN7fpbG7rPm4JpVVAhA_900;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T52_;
{	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_897));
	}
	LA3_: ;
	{
		NI i;
		NI colontmp_;
		NI T6_;
		NI TM__MQdRN7fpbG7rPm4JpVVAhA_898;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T6_ = (NI)0;
		T6_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (nimSubInt(T6_, ((NI) 2), &TM__MQdRN7fpbG7rPm4JpVVAhA_898)) { raiseOverflow(); };
		colontmp_ = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_898);
		i_2 = ((NI) 0);
		{
			while (1) {
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_899;
				if (!(i_2 < colontmp_)) goto LA8;
				i = i_2;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T13_;
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
					if (!!(((*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA11_;
					T13_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T13_ = lowerTupleUnpacking__8A4G64HByteFanrMUexmNw_2((*(*(*p).module).g).graph, n, (*p).prc);
					genStmts__QrTB5DOwbDX9bKAW7PNbuJA(p, T13_);
					goto BeforeRet_;
				}
				LA11_: ;
				if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_899)) { raiseOverflow(); };
				i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_899);
			} LA8: ;
		}
	}
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
	forHcr = treatGlobalDifferentlyForHCR__AaEyY9c5j7G9bThwkB9ajJ8Pw((*p).module, (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym);
	{
		if (!forHcr) goto LA16_;
		hcrCond = getTempName__ao6gUnuVfQLtZ89c4kaIKfg((*p).module);
	}
	goto LA14_;
	LA16_: ;
	{
		hcrCond = NIM_NIL;
	}
	LA14_: ;
	hcrGlobals = (tySequence__sno9c9bXUVS2CqhtWOJadaCw*)0;
	T19_ = (NIM_BOOL)0;
	T19_ = forHcr;
	if (!(T19_)) goto LA20_;
	T21_ = ((*p).blocks ? (*p).blocks->Sup.len : 0);
	T19_ = (((NI) 2) < T21_);
	LA20_: ;
	isGlobalInBlock = T19_;
	T22_ = (NIM_BOOL)0;
	T22_ = forHcr;
	if (!(T22_)) goto LA23_;
	T22_ = !(isGlobalInBlock);
	LA23_: ;
	forHcr = T22_;
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T28_;
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T37_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T38_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T39_;
		NimStringDesc* res_2;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T48_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T49_;
		NI T50_;
		if (!forHcr) goto LA26_;
		T28_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T28_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA31_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA31_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 4);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_285));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), hcrCond);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA35_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA35_: ;
		T37_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T37_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
		T38_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T38_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T37_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T28_, T38_);
		T39_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T39_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA42_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA42_: ;
		res_2 = rawNewString(((NI) 80));
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_20));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA46_;
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA46_: ;
		T48_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T48_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
		T49_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T49_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T48_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T39_, T49_);
		T50_ = (NI)0;
		T50_ = startBlockInternal__1ygdb876UM9astcNUXtgUBQ(p);
	}
	LA26_: ;
	genLineDir__QrTB5DOwbDX9bKAW7PNbuJA_2(p, n);
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	T51_ = (NI)0;
	T51_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
	if (nimSubInt(T51_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_900)) { raiseOverflow(); };
	if ((NU)((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_900)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_900),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n)._kind_6.sons->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_900)], (&tup));
	T52_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T52_ = t__XNOXh7uniWNgiq58C9bW49awcgen(tup);
	t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(T52_, IL64(36134350135273744));
	{
		NI i_3;
		NI colontmp__2;
		NI T54_;
		NI TM__MQdRN7fpbG7rPm4JpVVAhA_901;
		NI i_4;
		i_3 = (NI)0;
		colontmp__2 = (NI)0;
		T54_ = (NI)0;
		T54_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (nimSubInt(T54_, ((NI) 2), &TM__MQdRN7fpbG7rPm4JpVVAhA_901)) { raiseOverflow(); };
		colontmp__2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_901);
		i_4 = ((NI) 0);
		{
			while (1) {
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_904;
				if (!(i_4 < colontmp__2)) goto LA56;
				i_3 = i_4;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* vn;
					tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* v;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* traverseProc;
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i_3) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_3,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
					vn = (*n)._kind_6.sons->data[i_3];
					if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*vn).kind)>>3] &(1U<<((NU)((*vn).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
					v = (*vn)._kind_4.sym;
					{
						if (!(((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 27))&63U)))!=0)) goto LA60_;
						goto LA57;
					}
					LA60_: ;
					traverseProc = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					{
						if (!(((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0)) goto LA64_;
						assignGlobalVar__yX9bZpeKIzp3RLrjnzlc0NQ(p, vn, NIM_NIL);
						genObjectInit__UANnSFbuKD1BS6RrMbZs2A(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 1), (*v).typ, (&(*v).loc), ((tyEnum_ObjConstrMode__9agQ3x8C5KfK9c9a3uY9abfUTw) 0));
						traverseProc = getTraverseProc__V1atRcoAv09bVdrCPNlvW8Q(p, v);
						{
							NIM_BOOL T68_;
							NIM_BOOL T70_;
							T68_ = (NIM_BOOL)0;
							T68_ = !((traverseProc == NIM_NIL));
							if (!(T68_)) goto LA69_;
							T70_ = (NIM_BOOL)0;
							T70_ = hcrOn__NAlbw3fU59aFdo7L5aQtmkw(p);
							T68_ = !(T70_);
							LA69_: ;
							if (!T68_) goto LA71_;
							registerTraverseProc__BwxixSWhJWbQ369cJZeckHA(p, v, traverseProc);
						}
						LA71_: ;
					}
					goto LA62_;
					LA64_: ;
					{
						NI T74_;
						NI TM__MQdRN7fpbG7rPm4JpVVAhA_902;
						NIM_BOOL T75_;
						assignLocalVar__UtJx89cn0a8CNSWWmaj6raA(p, vn);
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						T74_ = (NI)0;
						T74_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
						if (nimSubInt(T74_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_902)) { raiseOverflow(); };
						if ((NU)((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_902)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_902),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
						T75_ = (NIM_BOOL)0;
						T75_ = isAssignedImmediately__udBNoPxZaHjsWUNp37jAdwcgen((*(*(*p).module).g).config, (*n)._kind_6.sons->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_902)]);
						initLocalVar__EpeofNfMJPurx0duaALCaA(p, v, T75_);
					}
					LA62_: ;
					initLoc__qlujIAW86QclHYUVxlHRiQ((&field), ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 6), vn, tup.storage);
					{
						tyArray__mrugoXXRZUEeG9bEXo9auBKw T80_;
						if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18))) goto LA78_;
						nimZeroMem((void*)T80_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
						T80_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(tup);
						T80_[1] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (i_3)));
						field.r = percent___5TB09c2Iz60T0YagbSbI5RQ(T80_, 2);
					}
					goto LA76_;
					LA78_: ;
					{
						tyArray__mrugoXXRZUEeG9bEXo9auBKw T86_;
						{
							if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t).n).kind)>>3] &(1U<<((NU)((*(*t).n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
							if ((NU)(i_3) >= (NU)((*(*t).n)._kind_6.sons ? (*(*t).n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_3,((*(*t).n)._kind_6.sons ? (*(*t).n)._kind_6.sons->Sup.len : 0)-1); }
							if (!!(((*(*(*t).n)._kind_6.sons->data[i_3]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA84_;
							internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_897));
						}
						LA84_: ;
						nimZeroMem((void*)T86_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
						T86_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(tup);
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t).n).kind)>>3] &(1U<<((NU)((*(*t).n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if ((NU)(i_3) >= (NU)((*(*t).n)._kind_6.sons ? (*(*t).n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_3,((*(*t).n)._kind_6.sons ? (*(*t).n)._kind_6.sons->Sup.len : 0)-1); }
						if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*(*t).n)._kind_6.sons->data[i_3]).kind)>>3] &(1U<<((NU)((*(*(*t).n)._kind_6.sons->data[i_3]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
						T86_[1] = mangleRecFieldName__HzLa9cY9ad9bp8c63DnHIEfWA((*p).module, (*(*(*t).n)._kind_6.sons->data[i_3])._kind_4.sym);
						field.r = percent___paA0sar8RKZqiwEaDfWo2A(T86_, 2);
					}
					LA76_: ;
					putLocIntoDest__SkhzpH2DDHJ7pbmCpsHIPg(p, (&(*v).loc), field);
					{
						NIM_BOOL T89_;
						tyTuple__9cSd9cjH9cnPQaBRO0ioKSxRA T93_;
						NI T100_;
						T89_ = (NIM_BOOL)0;
						T89_ = forHcr;
						if (T89_) goto LA90_;
						T89_ = isGlobalInBlock;
						LA90_: ;
						if (!T89_) goto LA91_;
						nimZeroMem((void*)(&T93_), sizeof(tyTuple__9cSd9cjH9cnPQaBRO0ioKSxRA));
						genericAssign((void*)(&T93_.Field0), (void*)(&(*v).loc), (&NTI__EtHNvCB0bgfu9bFjzx9cb6aA_));
						{
							tyArray__qTjAvTvKF9anytN1At69aJMQ T98_;
							if (!(traverseProc == NIM_NIL)) goto LA96_;
							nimZeroMem((void*)T98_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
							T93_.Field1 = percent___x2NKZw9brJpylbwEtLfx9a9bg(T98_, 0);
						}
						goto LA94_;
						LA96_: ;
						{
							T93_.Field1 = traverseProc;
						}
						LA94_: ;
						hcrGlobals = (tySequence__sno9c9bXUVS2CqhtWOJadaCw*) incrSeqV3((TGenericSeq*)(hcrGlobals), (&NTI__sno9c9bXUVS2CqhtWOJadaCw_));
						T100_ = hcrGlobals->Sup.len++;
						genericAssign((void*)(&hcrGlobals->data[T100_].Field0), (void*)(&T93_.Field0), (&NTI__EtHNvCB0bgfu9bFjzx9cb6aA_));
						asgnRef((void**) (&hcrGlobals->data[T100_].Field1), T93_.Field1);
					}
					LA91_: ;
				} LA57: ;
				if (nimAddInt(i_4, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_904)) { raiseOverflow(); };
				i_4 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_904);
			} LA56: ;
		}
	}
	{
		if (!forHcr) goto LA103_;
		endBlock__0dpuY9coTlraj8JXIe2BzVw(p);
	}
	LA103_: ;
	{
		NIM_BOOL T107_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T111_;
		NimStringDesc* res_3;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T120_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T121_;
		T107_ = (NIM_BOOL)0;
		T107_ = forHcr;
		if (T107_) goto LA108_;
		T107_ = isGlobalInBlock;
		LA108_: ;
		if (!T107_) goto LA109_;
		T111_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T111_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 0));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA114_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA114_: ;
		res_3 = rawNewString(((NI) 80));
		res_3 = resizeString(res_3, 9);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_905));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), hcrCond);
		res_3 = resizeString(res_3, 13);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_906));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA118_;
			res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA118_: ;
		T120_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T120_ = rope__yShmEg9cffWxI7s5XzEKBow(res_3);
		T121_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T121_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T120_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T111_, T121_);
		{
			tyTuple__9cSd9cjH9cnPQaBRO0ioKSxRA curr;
			NI i_5;
			NI L;
			NI T123_;
			nimZeroMem((void*)(&curr), sizeof(tyTuple__9cSd9cjH9cnPQaBRO0ioKSxRA));
			i_5 = ((NI) 0);
			T123_ = (hcrGlobals ? hcrGlobals->Sup.len : 0);
			L = T123_;
			{
				while (1) {
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T126_;
					NimStringDesc* res_4;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T131_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T132_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T133_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T134_;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_909;
					if (!(i_5 < L)) goto LA125;
					if ((NU)(i_5) >= (NU)(hcrGlobals ? hcrGlobals->Sup.len : 0)){ raiseIndexError2(i_5,(hcrGlobals ? hcrGlobals->Sup.len : 0)-1); }
					nimCopyMem((void*)(&curr.Field0), (NIM_CONST void*)(&hcrGlobals->data[i_5].Field0), sizeof(curr.Field0));
					curr.Field1 = hcrGlobals->data[i_5].Field1;
					T126_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
					T126_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 0));
					{
						if (!!(!(((*p).module == NIM_NIL)))) goto LA129_;
						failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
					}
					LA129_: ;
					res_4 = rawNewString(((NI) 80));
					cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), hcrCond);
					res_4 = resizeString(res_4, 22);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_907));
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
					if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
					T131_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T131_ = getModuleDllPath__RaNE9b8A430I9bfpgZmdrC1w_3((*p).module, (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym);
					cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T131_);
					res_4 = resizeString(res_4, 3);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_461));
					cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), curr.Field0.r);
					res_4 = resizeString(res_4, 10);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_462));
					T132_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T132_ = rdLoc__xidyzuHqIciXbQyEOKahDg(curr.Field0);
					cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T132_);
					res_4 = resizeString(res_4, 3);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_463));
					cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), curr.Field1);
					res_4 = resizeString(res_4, 11);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_464));
					cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), curr.Field0.r);
					res_4 = resizeString(res_4, 3);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_908));
					T133_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T133_ = rope__yShmEg9cffWxI7s5XzEKBow(res_4);
					T134_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T134_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T133_);
					add__IM4kcMNkkOLJtqdEqSxR8A(T126_, T134_);
					if (nimAddInt(i_5, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_909)) { raiseOverflow(); };
					i_5 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_909);
					{
						NI T137_;
						T137_ = (hcrGlobals ? hcrGlobals->Sup.len : 0);
						if (!!((T137_ == L))) goto LA138_;
						failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_26));
					}
					LA138_: ;
				} LA125: ;
			}
		}
	}
	LA109_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genVarStmt__UtJx89cn0a8CNSWWmaj6raA_8)(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;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		colontmp_ = (*n)._kind_6.sons;
		i = ((NI) 0);
		T2_ = (colontmp_ ? colontmp_->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_910;
				if (!(i < L)) goto LA4;
				if ((NU)(i) >= (NU)(colontmp_ ? colontmp_->Sup.len : 0)){ raiseIndexError2(i,(colontmp_ ? colontmp_->Sup.len : 0)-1); }
				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 (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
							if ((NU)(((NI) 0)) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
							if (!((*(*it)._kind_6.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: ;
				if (nimAddInt(i, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_910)) { raiseOverflow(); };
				i = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_910);
				{
					NI T22_;
					T22_ = (colontmp_ ? colontmp_->Sup.len : 0);
					if (!!((T22_ == L))) goto LA23_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_26));
				}
				LA23_: ;
			} 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;
	nimZeroMem((void*)(&x), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI TM__MQdRN7fpbG7rPm4JpVVAhA_918;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = len__P89cqdlERShb9alU3iC0yj8wast(b);
		if (nimSubInt(T2_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_918)) { raiseOverflow(); };
		colontmp_ = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_918);
		i_2 = ((NI) 0);
		{
			while (1) {
				NI j;
				NI64 T13_;
				NimStringDesc* res;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T18_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T19_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T20_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T25_;
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_922;
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				{
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i) >= (NU)((*b)._kind_6.sons ? (*b)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*b)._kind_6.sons ? (*b)._kind_6.sons->Sup.len : 0)-1); }
					if (!!(!(((*(*b)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44))))) goto LA7_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_919));
				}
				LA7_: ;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(i) >= (NU)((*b)._kind_6.sons ? (*b)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*b)._kind_6.sons ? (*b)._kind_6.sons->Sup.len : 0)-1); }
				initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*b)._kind_6.sons->data[i], (&x));
				{
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i) >= (NU)((*b)._kind_6.sons ? (*b)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*b)._kind_6.sons ? (*b)._kind_6.sons->Sup.len : 0)-1); }
					if (!!(((*(*b)._kind_6.sons->data[i]).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*(*b)._kind_6.sons->data[i]).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22)))) goto LA11_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_920));
				}
				LA11_: ;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(i) >= (NU)((*b)._kind_6.sons ? (*b)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*b)._kind_6.sons ? (*b)._kind_6.sons->Sup.len : 0)-1); }
				if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_91[(NU)((*(*b)._kind_6.sons->data[i]).kind)>>3] &(1U<<((NU)((*(*b)._kind_6.sons->data[i]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_92)); }
				T13_ = (NI64)0;
				T13_ = hashString__9acplCwsZ5kwBbm0f7S7DNw((*(*(*p).module).g).config, (*(*b)._kind_6.sons->data[i])._kind_3.strVal);
				if (((NI64)(T13_ & ((NI64) ((branchesLen_0-1))))) < ((NI) (-2147483647 -1)) || ((NI64)(T13_ & ((NI64) ((branchesLen_0-1))))) > ((NI) 2147483647)){ raiseRangeErrorI((NI64)(T13_ & ((NI64) ((branchesLen_0-1)))), ((NI) (-2147483647 -1)), ((NI) 2147483647)); }
				j = ((NI) ((NI64)(T13_ & ((NI64) ((branchesLen_0-1))))));
				if ((NU)(j) >= (NU)(branchesLen_0)){ raiseIndexError2(j,branchesLen_0-1); }
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA16_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA16_: ;
				res = rawNewString(((NI) 80));
				res = resizeString(res, 4);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_285));
				T18_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T18_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_658));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T18_);
				res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
				T19_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T19_ = rdLoc__xidyzuHqIciXbQyEOKahDg(e);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T19_);
				res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
				T20_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T20_ = rdLoc__xidyzuHqIciXbQyEOKahDg(x);
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T20_);
				res = resizeString(res, 8);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_921));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), labl);
				res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_104));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA23_;
					res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA23_: ;
				T25_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T25_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
				add__IM4kcMNkkOLJtqdEqSxR8A(&branches[j], T25_);
				if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_922)) { raiseOverflow(); };
				i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_922);
			} LA4: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, exprBlock__8mAL9ckajemzgfLPfeZVNoQ_21)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T1_;
	NimStringDesc* res;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T10_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T11_;
	NI T12_;
	T1_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T1_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA4_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
	}
	LA4_: ;
	res = rawNewString(((NI) 80));
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_20));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA8_;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
	}
	LA8_: ;
	T10_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T10_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
	T11_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T11_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T10_);
	add__IM4kcMNkkOLJtqdEqSxR8A(T1_, T11_);
	T12_ = (NI)0;
	T12_ = startBlockInternal__1ygdb876UM9astcNUXtgUBQ(p);
	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_5(p);
	{
		NI i;
		NI res;
		i = (NI)0;
		res = ((NI) 1);
		{
			while (1) {
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T10_;
				tyArray__JiWwrsTRC6xqNlGcBthSVA T11_;
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_930;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T12_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T13_;
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_932;
				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__nPImuPGZIdcrAfCNyf4oxA_2ast((*t).typ);
					LA7_: ;
					if (!T6_) goto LA8_;
					(*d).k = ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0);
				}
				LA8_: ;
				T10_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T10_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				nimZeroMem((void*)T11_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
				if (nimAddInt(labId, i, &TM__MQdRN7fpbG7rPm4JpVVAhA_930)) { raiseOverflow(); };
				T11_[0] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_930))));
				T12_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T12_ = percent___Au81R9a68Rv3gwlPtvDarPg(T11_, 1);
				T13_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T13_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T12_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T10_, T13_);
				{
					NI T18_;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_931;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T19_;
					tyArray__JiWwrsTRC6xqNlGcBthSVA T20_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T21_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T22_;
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
					if (!((*(*t)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA16_;
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t)._kind_6.sons->data[i]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[i]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
					T18_ = (NI)0;
					T18_ = len__P89cqdlERShb9alU3iC0yj8wast((*t)._kind_6.sons->data[i]);
					if (nimSubInt(T18_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_931)) { raiseOverflow(); };
					if ((NU)((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_931)) >= (NU)((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)){ raiseIndexError2((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_931),((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)-1); }
					exprBlock__8mAL9ckajemzgfLPfeZVNoQ_21(p, (*(*t)._kind_6.sons->data[i])._kind_6.sons->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_931)], d);
					T19_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
					T19_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
					nimZeroMem((void*)T20_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
					T20_[0] = lend;
					T21_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T21_ = percent___c1f569aWpTd825BTnv9bq4Xg(T20_, 1);
					T22_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T22_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T21_);
					add__IM4kcMNkkOLJtqdEqSxR8A(T19_, T22_);
				}
				goto LA14_;
				LA16_: ;
				{
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t)._kind_6.sons->data[i]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[i]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(((NI) 0)) >= (NU)((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)-1); }
					exprBlock__8mAL9ckajemzgfLPfeZVNoQ_21(p, (*(*t)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)], d);
				}
				LA14_: ;
				if (nimAddInt(res, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_932)) { raiseOverflow(); };
				res = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_932);
			} LA3: ;
		}
	}
	result = lend;
	return result;
}
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 i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(t);
		i_2 = ((NI) 1);
		{
			while (1) {
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_914;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					NI T8_;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_912;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_913;
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
					if (!((*(*t)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA6_;
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
					T8_ = (NI)0;
					T8_ = len__P89cqdlERShb9alU3iC0yj8wast((*t)._kind_6.sons->data[i]);
					if (nimSubInt(T8_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_912)) { raiseOverflow(); };
					if (nimAddInt(strings, (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_912), &TM__MQdRN7fpbG7rPm4JpVVAhA_913)) { raiseOverflow(); };
					strings = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_913);
				}
				LA6_: ;
				if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_914)) { raiseOverflow(); };
				i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_914);
			} LA3: ;
		}
	}
	{
		NI bitMask;
		NI T13_;
		NI TM__MQdRN7fpbG7rPm4JpVVAhA_915;
		tySequence__WwUFq9cJ2xKRlsAWVEHyPRg* branches;
		NI TM__MQdRN7fpbG7rPm4JpVVAhA_916;
		tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a;
		NI labId;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T25_;
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T30_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T31_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T36_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T37_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T50_;
		tyArray__qTjAvTvKF9anytN1At69aJMQ T51_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T52_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T53_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* lend;
		NI T63_;
		NI TM__MQdRN7fpbG7rPm4JpVVAhA_933;
		if (!(((NI) 8) < strings)) goto LA11_;
		T13_ = (NI)0;
		T13_ = nextPowerOfTwo__v2qC0V55wqa9bmqc7eHTz8A(strings);
		if (nimSubInt(T13_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_915)) { raiseOverflow(); };
		bitMask = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_915);
		branches = (tySequence__WwUFq9cJ2xKRlsAWVEHyPRg*)0;
		if (nimAddInt(bitMask, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_916)) { raiseOverflow(); };
		if (((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_916)) < ((NI) 0) || ((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_916)) > ((NI) 2147483647)){ raiseRangeErrorI((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_916), ((NI) 0), ((NI) 2147483647)); }
		branches = (tySequence__WwUFq9cJ2xKRlsAWVEHyPRg*) newSeq((&NTI__WwUFq9cJ2xKRlsAWVEHyPRg_), ((NI) ((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_916))));
		nimZeroMem((void*)(&a), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*t)._kind_6.sons->data[((NI) 0)], (&a));
		labId = (*p).labels;
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(t);
			i_4 = ((NI) 1);
			{
				while (1) {
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_917;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_923;
					if (!(i_4 < colontmp__2)) goto LA16;
					i_3 = i_4;
					if (nimAddInt((*p).labels, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_917)) { raiseOverflow(); };
					if (TM__MQdRN7fpbG7rPm4JpVVAhA_917 < 0 || TM__MQdRN7fpbG7rPm4JpVVAhA_917 > 2147483647){ raiseOverflow(); }
					(*p).labels = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_917);
					{
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T21_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T22_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T23_;
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if ((NU)(i_3) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_3,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
						if (!((*(*t)._kind_6.sons->data[i_3]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA19_;
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if ((NU)(i_3) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_3,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
						T21_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T21_ = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).labels)));
						T22_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T22_ = amp___4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_552), T21_);
						T23_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T23_ = amp___Z7W1o5nPSc3ExfO5f7j1Gg(T22_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_3));
						genCaseStringBranch__P8OJ6tb5bbr0Tp2llps5Rw(p, (*t)._kind_6.sons->data[i_3], a, T23_, branches->data, (branches ? branches->Sup.len : 0));
					}
					goto LA17_;
					LA19_: ;
					{
					}
					LA17_: ;
					if (nimAddInt(i_4, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_923)) { raiseOverflow(); };
					i_4 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_923);
				} LA16: ;
			}
		}
		T25_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T25_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA28_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA28_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 8);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_924));
		T30_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T30_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_925));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T30_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
		T31_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T31_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T31_);
		res = resizeString(res, 4);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_926));
		cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res), ((NI64) (bitMask)));
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_927));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA34_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA34_: ;
		T36_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T36_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
		T37_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T37_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T36_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T25_, T37_);
		{
			NI j;
			NI colontmp__3;
			NI T39_;
			NI res_2;
			j = (NI)0;
			colontmp__3 = (NI)0;
			T39_ = ((branches ? branches->Sup.len : 0)-1);
			colontmp__3 = T39_;
			res_2 = ((NI) 0);
			{
				while (1) {
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_928;
					if (!(res_2 <= colontmp__3)) goto LA41;
					j = res_2;
					{
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T46_;
						tyArray__mrugoXXRZUEeG9bEXo9auBKw T47_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T48_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T49_;
						if ((NU)(j) >= (NU)(branches ? branches->Sup.len : 0)){ raiseIndexError2(j,(branches ? branches->Sup.len : 0)-1); }
						if (!!((branches->data[j] == NIM_NIL))) goto LA44_;
						T46_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
						T46_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
						nimZeroMem((void*)T47_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
						T47_[0] = intLiteral__kQA0lBUvzOSZAw7DHC4Fjg(((NI64) (j)));
						if ((NU)(j) >= (NU)(branches ? branches->Sup.len : 0)){ raiseIndexError2(j,(branches ? branches->Sup.len : 0)-1); }
						T47_[1] = branches->data[j];
						T48_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T48_ = percent___hc7hMh137dtaNdd3qw28EQ(T47_, 2);
						T49_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T49_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T48_);
						add__IM4kcMNkkOLJtqdEqSxR8A(T46_, T49_);
					}
					LA44_: ;
					if (nimAddInt(res_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_928)) { raiseOverflow(); };
					res_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_928);
				} LA41: ;
			}
		}
		T50_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T50_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		nimZeroMem((void*)T51_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
		T52_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T52_ = percent___BYiowJAm8zF7RBRISElaLg(T51_, 0);
		T53_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T53_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T52_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T50_, T53_);
		{
			NI T56_;
			NI TM__MQdRN7fpbG7rPm4JpVVAhA_929;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T59_;
			tyArray__JiWwrsTRC6xqNlGcBthSVA T60_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T61_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T62_;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			T56_ = (NI)0;
			T56_ = len__P89cqdlERShb9alU3iC0yj8wast(t);
			if (nimSubInt(T56_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_929)) { raiseOverflow(); };
			if ((NU)((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_929)) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_929),((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
			if (!!(((*(*t)._kind_6.sons->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_929)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85)))) goto LA57_;
			T59_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T59_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			nimZeroMem((void*)T60_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
			T60_[0] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).labels)));
			T61_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T61_ = percent___XWz49cQA2QiZaLkqHBU5L3g(T60_, 1);
			T62_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T62_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T61_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T59_, T62_);
		}
		LA57_: ;
		T63_ = (NI)0;
		T63_ = len__P89cqdlERShb9alU3iC0yj8wast(t);
		if (nimSubInt(T63_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_933)) { raiseOverflow(); };
		lend = genCaseSecondPass__4DRiNj9aN6Z9aXL9bqOB79czGw(p, t, d, ((NI) (labId)), (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_933));
		fixLabel__z1hx9axqa9cHsmY7bMeZVSrQ(p, lend);
	}
	goto LA9_;
	LA11_: ;
	{
		tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA aX60gensym102120029_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* lendX60gensym102120030_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* resX60gensym102130012_;
		NI labIdX60gensym102130013_;
		nimZeroMem((void*)(&aX60gensym102120029_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*t)._kind_6.sons->data[((NI) 0)], (&aX60gensym102120029_));
		resX60gensym102130012_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		labIdX60gensym102130013_ = (*p).labels;
		{
			NI iX60gensym102130014_;
			NI colontmp__4;
			NI T66_;
			NI TM__MQdRN7fpbG7rPm4JpVVAhA_934;
			NI res_3;
			iX60gensym102130014_ = (NI)0;
			colontmp__4 = (NI)0;
			T66_ = (NI)0;
			T66_ = len__P89cqdlERShb9alU3iC0yj8wast(t);
			if (nimSubInt(T66_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_934)) { raiseOverflow(); };
			colontmp__4 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_934);
			res_3 = ((NI) 1);
			{
				while (1) {
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_935;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_938;
					if (!(res_3 <= colontmp__4)) goto LA68;
					iX60gensym102130014_ = res_3;
					if (nimAddInt((*p).labels, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_935)) { raiseOverflow(); };
					if (TM__MQdRN7fpbG7rPm4JpVVAhA_935 < 0 || TM__MQdRN7fpbG7rPm4JpVVAhA_935 > 2147483647){ raiseOverflow(); }
					(*p).labels = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_935);
					{
						tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA xX60gensym102145006_;
						tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA yX60gensym102145007_;
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if ((NU)(iX60gensym102130014_) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(iX60gensym102130014_,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
						if (!((*(*t)._kind_6.sons->data[iX60gensym102130014_]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA71_;
						nimZeroMem((void*)(&xX60gensym102145006_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
						nimZeroMem((void*)(&yX60gensym102145007_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
						{
							NI iX60gensym102145008_;
							NI colontmp__5;
							NI T74_;
							NI TM__MQdRN7fpbG7rPm4JpVVAhA_936;
							NI i_5;
							iX60gensym102145008_ = (NI)0;
							colontmp__5 = (NI)0;
							if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
							if ((NU)(iX60gensym102130014_) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(iX60gensym102130014_,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
							T74_ = (NI)0;
							T74_ = len__P89cqdlERShb9alU3iC0yj8wast((*t)._kind_6.sons->data[iX60gensym102130014_]);
							if (nimSubInt(T74_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_936)) { raiseOverflow(); };
							colontmp__5 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_936);
							i_5 = ((NI) 0);
							{
								while (1) {
									NI TM__MQdRN7fpbG7rPm4JpVVAhA_937;
									if (!(i_5 < colontmp__5)) goto LA76;
									iX60gensym102145008_ = i_5;
									{
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T81_;
										NimStringDesc* res_4;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T86_;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T87_;
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(iX60gensym102130014_) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(iX60gensym102130014_,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t)._kind_6.sons->data[iX60gensym102130014_]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[iX60gensym102130014_]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(iX60gensym102145008_) >= (NU)((*(*t)._kind_6.sons->data[iX60gensym102130014_])._kind_6.sons ? (*(*t)._kind_6.sons->data[iX60gensym102130014_])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(iX60gensym102145008_,((*(*t)._kind_6.sons->data[iX60gensym102130014_])._kind_6.sons ? (*(*t)._kind_6.sons->data[iX60gensym102130014_])._kind_6.sons->Sup.len : 0)-1); }
										if (!((*(*(*t)._kind_6.sons->data[iX60gensym102130014_])._kind_6.sons->data[iX60gensym102145008_]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA79_;
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(iX60gensym102130014_) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(iX60gensym102130014_,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t)._kind_6.sons->data[iX60gensym102130014_]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[iX60gensym102130014_]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(iX60gensym102145008_) >= (NU)((*(*t)._kind_6.sons->data[iX60gensym102130014_])._kind_6.sons ? (*(*t)._kind_6.sons->data[iX60gensym102130014_])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(iX60gensym102145008_,((*(*t)._kind_6.sons->data[iX60gensym102130014_])._kind_6.sons ? (*(*t)._kind_6.sons->data[iX60gensym102130014_])._kind_6.sons->Sup.len : 0)-1); }
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*(*t)._kind_6.sons->data[iX60gensym102130014_])._kind_6.sons->data[iX60gensym102145008_]).kind)>>3] &(1U<<((NU)((*(*(*t)._kind_6.sons->data[iX60gensym102130014_])._kind_6.sons->data[iX60gensym102145008_]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(((NI) 0)) >= (NU)((*(*(*t)._kind_6.sons->data[iX60gensym102130014_])._kind_6.sons->data[iX60gensym102145008_])._kind_6.sons ? (*(*(*t)._kind_6.sons->data[iX60gensym102130014_])._kind_6.sons->data[iX60gensym102145008_])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*(*t)._kind_6.sons->data[iX60gensym102130014_])._kind_6.sons->data[iX60gensym102145008_])._kind_6.sons ? (*(*(*t)._kind_6.sons->data[iX60gensym102130014_])._kind_6.sons->data[iX60gensym102145008_])._kind_6.sons->Sup.len : 0)-1); }
										initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*(*(*t)._kind_6.sons->data[iX60gensym102130014_])._kind_6.sons->data[iX60gensym102145008_])._kind_6.sons->data[((NI) 0)], (&xX60gensym102145006_));
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(iX60gensym102130014_) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(iX60gensym102130014_,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t)._kind_6.sons->data[iX60gensym102130014_]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[iX60gensym102130014_]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(iX60gensym102145008_) >= (NU)((*(*t)._kind_6.sons->data[iX60gensym102130014_])._kind_6.sons ? (*(*t)._kind_6.sons->data[iX60gensym102130014_])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(iX60gensym102145008_,((*(*t)._kind_6.sons->data[iX60gensym102130014_])._kind_6.sons ? (*(*t)._kind_6.sons->data[iX60gensym102130014_])._kind_6.sons->Sup.len : 0)-1); }
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*(*t)._kind_6.sons->data[iX60gensym102130014_])._kind_6.sons->data[iX60gensym102145008_]).kind)>>3] &(1U<<((NU)((*(*(*t)._kind_6.sons->data[iX60gensym102130014_])._kind_6.sons->data[iX60gensym102145008_]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(((NI) 1)) >= (NU)((*(*(*t)._kind_6.sons->data[iX60gensym102130014_])._kind_6.sons->data[iX60gensym102145008_])._kind_6.sons ? (*(*(*t)._kind_6.sons->data[iX60gensym102130014_])._kind_6.sons->data[iX60gensym102145008_])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*(*(*t)._kind_6.sons->data[iX60gensym102130014_])._kind_6.sons->data[iX60gensym102145008_])._kind_6.sons ? (*(*(*t)._kind_6.sons->data[iX60gensym102130014_])._kind_6.sons->data[iX60gensym102145008_])._kind_6.sons->Sup.len : 0)-1); }
										initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*(*(*t)._kind_6.sons->data[iX60gensym102130014_])._kind_6.sons->data[iX60gensym102145008_])._kind_6.sons->data[((NI) 1)], (&yX60gensym102145007_));
										T81_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
										T81_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
										{
											if (!!(!(((*p).module == NIM_NIL)))) goto LA84_;
											failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
										}
										LA84_: ;
										res_4 = rawNewString(((NI) 80));
										T86_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T86_ = rope__yShmEg9cffWxI7s5XzEKBow(res_4);
										T87_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T87_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T86_);
										add__IM4kcMNkkOLJtqdEqSxR8A(T81_, T87_);
									}
									goto LA77_;
									LA79_: ;
									{
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T89_;
										NimStringDesc* res_5;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T94_;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T95_;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T96_;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T97_;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T98_;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T99_;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T104_;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T105_;
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(iX60gensym102130014_) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(iX60gensym102130014_,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t)._kind_6.sons->data[iX60gensym102130014_]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[iX60gensym102130014_]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(iX60gensym102145008_) >= (NU)((*(*t)._kind_6.sons->data[iX60gensym102130014_])._kind_6.sons ? (*(*t)._kind_6.sons->data[iX60gensym102130014_])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(iX60gensym102145008_,((*(*t)._kind_6.sons->data[iX60gensym102130014_])._kind_6.sons ? (*(*t)._kind_6.sons->data[iX60gensym102130014_])._kind_6.sons->Sup.len : 0)-1); }
										initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*(*t)._kind_6.sons->data[iX60gensym102130014_])._kind_6.sons->data[iX60gensym102145008_], (&xX60gensym102145006_));
										T89_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
										T89_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
										{
											if (!!(!(((*p).module == NIM_NIL)))) goto LA92_;
											failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
										}
										LA92_: ;
										res_5 = rawNewString(((NI) 80));
										res_5 = resizeString(res_5, 4);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_285));
										T94_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T94_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_658));
										cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T94_);
										res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
										T95_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T95_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(aX60gensym102120029_);
										cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T95_);
										res_5 = resizeString(res_5, 2);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
										T96_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T96_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(xX60gensym102145006_);
										cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T96_);
										res_5 = resizeString(res_5, 8);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_921));
										T97_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T97_ = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).labels)));
										T98_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T98_ = amp___4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_552), T97_);
										T99_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T99_ = amp___Z7W1o5nPSc3ExfO5f7j1Gg(T98_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_3));
										cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T99_);
										res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_104));
										{
											if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA102_;
											res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
										}
										LA102_: ;
										T104_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T104_ = rope__yShmEg9cffWxI7s5XzEKBow(res_5);
										T105_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T105_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T104_);
										add__IM4kcMNkkOLJtqdEqSxR8A(T89_, T105_);
									}
									LA77_: ;
									if (nimAddInt(i_5, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_937)) { raiseOverflow(); };
									i_5 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_937);
								} LA76: ;
							}
						}
					}
					goto LA69_;
					LA71_: ;
					{
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T107_;
						tyArray__JiWwrsTRC6xqNlGcBthSVA T108_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T109_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T110_;
						T107_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
						T107_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
						nimZeroMem((void*)T108_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
						T108_[0] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).labels)));
						T109_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T109_ = percent___XWz49cQA2QiZaLkqHBU5L3g(T108_, 1);
						T110_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T110_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T109_);
						add__IM4kcMNkkOLJtqdEqSxR8A(T107_, T110_);
					}
					LA69_: ;
					if (nimAddInt(res_3, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_938)) { raiseOverflow(); };
					res_3 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_938);
				} LA68: ;
			}
		}
		{
			NI T113_;
			NI TM__MQdRN7fpbG7rPm4JpVVAhA_939;
			NI T114_;
			NI TM__MQdRN7fpbG7rPm4JpVVAhA_940;
			NI TM__MQdRN7fpbG7rPm4JpVVAhA_941;
			NI gotoTargetX60gensym102130015_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T117_;
			tyArray__JiWwrsTRC6xqNlGcBthSVA T118_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T119_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T120_;
			NI T121_;
			NI TM__MQdRN7fpbG7rPm4JpVVAhA_942;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T122_;
			tyArray__JiWwrsTRC6xqNlGcBthSVA T123_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T124_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T125_;
			T113_ = (NI)0;
			T113_ = len__P89cqdlERShb9alU3iC0yj8wast(t);
			if (nimSubInt(T113_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_939)) { raiseOverflow(); };
			T114_ = (NI)0;
			T114_ = len__P89cqdlERShb9alU3iC0yj8wast(t);
			if (nimSubInt(T114_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_940)) { raiseOverflow(); };
			if (!((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_939) < (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_940))) goto LA115_;
			if (nimAddInt((*p).labels, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_941)) { raiseOverflow(); };
			if (TM__MQdRN7fpbG7rPm4JpVVAhA_941 < 0 || TM__MQdRN7fpbG7rPm4JpVVAhA_941 > 2147483647){ raiseOverflow(); }
			(*p).labels = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_941);
			gotoTargetX60gensym102130015_ = (*p).labels;
			T117_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T117_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			nimZeroMem((void*)T118_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
			T118_[0] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (gotoTargetX60gensym102130015_)));
			T119_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T119_ = percent___XWz49cQA2QiZaLkqHBU5L3g(T118_, 1);
			T120_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T120_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T119_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T117_, T120_);
			T121_ = (NI)0;
			T121_ = len__P89cqdlERShb9alU3iC0yj8wast(t);
			if (nimSubInt(T121_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_942)) { raiseOverflow(); };
			resX60gensym102130012_ = genCaseSecondPass__4DRiNj9aN6Z9aXL9bqOB79czGw(p, t, d, ((NI) (labIdX60gensym102130013_)), (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_942));
			T122_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T122_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			nimZeroMem((void*)T123_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
			T123_[0] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (gotoTargetX60gensym102130015_)));
			T124_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T124_ = percent___Au81R9a68Rv3gwlPtvDarPg(T123_, 1);
			T125_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T125_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T124_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T122_, T125_);
		}
		goto LA111_;
		LA115_: ;
		{
			NI T127_;
			NI TM__MQdRN7fpbG7rPm4JpVVAhA_943;
			T127_ = (NI)0;
			T127_ = len__P89cqdlERShb9alU3iC0yj8wast(t);
			if (nimSubInt(T127_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_943)) { raiseOverflow(); };
			resX60gensym102130012_ = genCaseSecondPass__4DRiNj9aN6Z9aXL9bqOB79czGw(p, t, d, ((NI) (labIdX60gensym102130013_)), (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_943));
		}
		LA111_: ;
		lendX60gensym102120030_ = resX60gensym102130012_;
		fixLabel__z1hx9axqa9cHsmY7bMeZVSrQ(p, lendX60gensym102120030_);
	}
	LA9_: ;
}
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__P89cqdlERShb9alU3iC0yj8wast(caseStmt);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T4_;
				NimStringDesc* res;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T13_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T14_;
				NI T15_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T28_;
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_960;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				T4_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T4_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA7_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA7_: ;
				res = rawNewString(((NI) 80));
				res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_20));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA11_;
					res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA11_: ;
				T13_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T13_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
				T14_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T14_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T13_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T4_, T14_);
				T15_ = (NI)0;
				T15_ = startBlockInternal__1ygdb876UM9astcNUXtgUBQ(p);
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*caseStmt).kind)>>3] &(1U<<((NU)((*caseStmt).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(i) >= (NU)((*caseStmt)._kind_6.sons ? (*caseStmt)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*caseStmt)._kind_6.sons ? (*caseStmt)._kind_6.sons->Sup.len : 0)-1); }
				it = (*caseStmt)._kind_6.sons->data[i];
				{
					NI j;
					NI colontmp__2;
					NI T17_;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_958;
					NI i_3;
					j = (NI)0;
					colontmp__2 = (NI)0;
					T17_ = (NI)0;
					T17_ = len__P89cqdlERShb9alU3iC0yj8wast(it);
					if (nimSubInt(T17_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_958)) { raiseOverflow(); };
					colontmp__2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_958);
					i_3 = ((NI) 0);
					{
						while (1) {
							tyObject_Int128__9a9axPfb75jdWY25AamJewkA val;
							tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T24_;
							tyArray__JiWwrsTRC6xqNlGcBthSVA T25_;
							tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T26_;
							tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T27_;
							NI TM__MQdRN7fpbG7rPm4JpVVAhA_959;
							if (!(i_3 < colontmp__2)) goto LA19;
							j = i_3;
							{
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(j) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(j,((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
								if (!((*(*it)._kind_6.sons->data[j]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA22_;
								localError__NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*it).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_880));
								goto BeforeRet_;
							}
							LA22_: ;
							if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
							if ((NU)(j) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(j,((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
							val = getOrdValue__GvVg8kpCh7QA2PDTJnFJlQ((*it)._kind_6.sons->data[j], TM__MQdRN7fpbG7rPm4JpVVAhA_216);
							T24_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
							T24_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
							nimZeroMem((void*)T25_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
							T25_[0] = rope__b5mr3rjXEwHVfmNLJr4cBA(val);
							T26_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
							T26_ = percent___Yw741acxvsUs9cOX9cuiDj9bw(T25_, 1);
							T27_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
							T27_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T26_);
							add__IM4kcMNkkOLJtqdEqSxR8A(T24_, T27_);
							if (nimAddInt(i_3, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_959)) { raiseOverflow(); };
							i_3 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_959);
						} LA19: ;
					}
				}
				T28_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T28_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(it);
				genStmts__QrTB5DOwbDX9bKAW7PNbuJA(p, T28_);
				endBlock__0dpuY9coTlraj8JXIe2BzVw(p);
				if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_960)) { raiseOverflow(); };
				i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_960);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
}
static N_INLINE(NIM_BOOL, nimSubInt64)(NI64 a, NI64 b, NI64* res) {
	NIM_BOOL result;
	NI64 r;
	result = (NIM_BOOL)0;
	r = ((NI64) ((NU64)((NU64)(((NU64) (a))) - (NU64)(((NU64) (b))))));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (IL64(0) <= (NI64)(r ^ a));
		if (T3_) goto LA4_;
		T3_ = (IL64(0) <= (NI64)(r ^ (NI64)((NU64) ~(b))));
		LA4_: ;
		if (!T3_) goto LA5_;
		(*res) = r;
	}
	goto LA1_;
	LA5_: ;
	{
		result = NIM_TRUE;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, branchHasTooBigRange__FtWqvDVdWg4sJ9aFlt4ZdKg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI TM__MQdRN7fpbG7rPm4JpVVAhA_961;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = len__P89cqdlERShb9alU3iC0yj8wast(b);
		if (nimSubInt(T2_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_961)) { raiseOverflow(); };
		colontmp_ = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_961);
		i_2 = ((NI) 0);
		{
			while (1) {
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_963;
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				{
					NIM_BOOL T7_;
					NI64 TM__MQdRN7fpbG7rPm4JpVVAhA_962;
					T7_ = (NIM_BOOL)0;
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i) >= (NU)((*b)._kind_6.sons ? (*b)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*b)._kind_6.sons ? (*b)._kind_6.sons->Sup.len : 0)-1); }
					T7_ = ((*(*b)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44));
					if (!(T7_)) goto LA8_;
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i) >= (NU)((*b)._kind_6.sons ? (*b)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*b)._kind_6.sons ? (*b)._kind_6.sons->Sup.len : 0)-1); }
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*b)._kind_6.sons->data[i]).kind)>>3] &(1U<<((NU)((*(*b)._kind_6.sons->data[i]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(((NI) 1)) >= (NU)((*(*b)._kind_6.sons->data[i])._kind_6.sons ? (*(*b)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*(*b)._kind_6.sons->data[i])._kind_6.sons ? (*(*b)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)-1); }
					if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_174[(NU)((*(*(*b)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)]).kind)>>3] &(1U<<((NU)((*(*(*b)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_175)); }
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i) >= (NU)((*b)._kind_6.sons ? (*b)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*b)._kind_6.sons ? (*b)._kind_6.sons->Sup.len : 0)-1); }
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*b)._kind_6.sons->data[i]).kind)>>3] &(1U<<((NU)((*(*b)._kind_6.sons->data[i]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(((NI) 0)) >= (NU)((*(*b)._kind_6.sons->data[i])._kind_6.sons ? (*(*b)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*b)._kind_6.sons->data[i])._kind_6.sons ? (*(*b)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)-1); }
					if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_174[(NU)((*(*(*b)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*(*b)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_175)); }
					if (nimSubInt64((*(*(*b)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)])._kind_1.intVal, (*(*(*b)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)])._kind_1.intVal, &TM__MQdRN7fpbG7rPm4JpVVAhA_962)) { raiseOverflow(); };
					T7_ = (IL64(256) < (NI64)(TM__MQdRN7fpbG7rPm4JpVVAhA_962));
					LA8_: ;
					if (!T7_) goto LA9_;
					result = NIM_TRUE;
					goto BeforeRet_;
				}
				LA9_: ;
				if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_963)) { raiseOverflow(); };
				i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_963);
			} LA4: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, ifSwitchSplitPoint__sCIDQrEETdL3XXbX8Uzgrg)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	result = (NI)0;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branch;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* stmtBlock;
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_964;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(i) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
				branch = (*n)._kind_6.sons->data[i];
				stmtBlock = lastSon__UPSW0jLTX5qJL51YMUAHgw(branch);
				{
					NIM_BOOL T6_;
					T6_ = (NIM_BOOL)0;
					T6_ = stmtsContainPragma__QPJXGOVirAPBlaL8RY5bwA(stmtBlock, ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 197));
					if (!T6_) goto LA7_;
					result = i;
				}
				goto LA4_;
				LA7_: ;
				{
					if ((*(*(*(*p).module).g).config).cCompiler < 1 || (*(*(*(*p).module).g).config).cCompiler > 15){ raiseIndexError3((*(*(*(*p).module).g).config).cCompiler, 1, 15); }
					if (!!(((CC__78I18QZNZFIv9ah7oETc0jg[((*(*(*(*p).module).g).config).cCompiler)- 1].Field21 &(1U<<((NU)(((tyEnum_TInfoCCProp__49cn73TjZ7Rt9b8QCAU8tLNg) 0))&7U)))!=0))) goto LA10_;
					{
						NIM_BOOL T14_;
						T14_ = (NIM_BOOL)0;
						T14_ = ((*branch).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85));
						if (!(T14_)) goto LA15_;
						T14_ = branchHasTooBigRange__FtWqvDVdWg4sJ9aFlt4ZdKg(branch);
						LA15_: ;
						if (!T14_) goto LA16_;
						result = i;
					}
					LA16_: ;
				}
				goto LA4_;
				LA10_: ;
				LA4_: ;
				if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_964)) { raiseOverflow(); };
				i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_964);
			} LA3: ;
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genOrdinalCase__8mAL9ckajemzgfLPfeZVNoQ_22)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	NI splitPoint;
	tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* lend;
	splitPoint = ifSwitchSplitPoint__sCIDQrEETdL3XXbX8Uzgrg(p, n);
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n)._kind_6.sons->data[((NI) 0)], (&a));
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* resX60gensym102385001_;
		NI labIdX60gensym102385002_;
		if (!(((NI) 0) < splitPoint)) goto LA3_;
		resX60gensym102385001_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		labIdX60gensym102385002_ = (*p).labels;
		{
			NI iX60gensym102385003_;
			NI res;
			iX60gensym102385003_ = (NI)0;
			res = ((NI) 1);
			{
				while (1) {
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_965;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_968;
					if (!(res <= splitPoint)) goto LA7;
					iX60gensym102385003_ = res;
					if (nimAddInt((*p).labels, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_965)) { raiseOverflow(); };
					if (TM__MQdRN7fpbG7rPm4JpVVAhA_965 < 0 || TM__MQdRN7fpbG7rPm4JpVVAhA_965 > 2147483647){ raiseOverflow(); }
					(*p).labels = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_965);
					{
						tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA xX60gensym102400006_;
						tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA yX60gensym102400007_;
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if ((NU)(iX60gensym102385003_) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(iX60gensym102385003_,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
						if (!((*(*n)._kind_6.sons->data[iX60gensym102385003_]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA10_;
						nimZeroMem((void*)(&xX60gensym102400006_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
						nimZeroMem((void*)(&yX60gensym102400007_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
						{
							NI iX60gensym102400008_;
							NI colontmp_;
							NI T13_;
							NI TM__MQdRN7fpbG7rPm4JpVVAhA_966;
							NI i;
							iX60gensym102400008_ = (NI)0;
							colontmp_ = (NI)0;
							if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
							if ((NU)(iX60gensym102385003_) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(iX60gensym102385003_,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
							T13_ = (NI)0;
							T13_ = len__P89cqdlERShb9alU3iC0yj8wast((*n)._kind_6.sons->data[iX60gensym102385003_]);
							if (nimSubInt(T13_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_966)) { raiseOverflow(); };
							colontmp_ = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_966);
							i = ((NI) 0);
							{
								while (1) {
									NI TM__MQdRN7fpbG7rPm4JpVVAhA_967;
									if (!(i < colontmp_)) goto LA15;
									iX60gensym102400008_ = i;
									{
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T20_;
										NimStringDesc* res_2;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T25_;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T26_;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T27_;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T28_;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T29_;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T30_;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T31_;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T36_;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T37_;
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(iX60gensym102385003_) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(iX60gensym102385003_,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*n)._kind_6.sons->data[iX60gensym102385003_]).kind)>>3] &(1U<<((NU)((*(*n)._kind_6.sons->data[iX60gensym102385003_]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(iX60gensym102400008_) >= (NU)((*(*n)._kind_6.sons->data[iX60gensym102385003_])._kind_6.sons ? (*(*n)._kind_6.sons->data[iX60gensym102385003_])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(iX60gensym102400008_,((*(*n)._kind_6.sons->data[iX60gensym102385003_])._kind_6.sons ? (*(*n)._kind_6.sons->data[iX60gensym102385003_])._kind_6.sons->Sup.len : 0)-1); }
										if (!((*(*(*n)._kind_6.sons->data[iX60gensym102385003_])._kind_6.sons->data[iX60gensym102400008_]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA18_;
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(iX60gensym102385003_) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(iX60gensym102385003_,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*n)._kind_6.sons->data[iX60gensym102385003_]).kind)>>3] &(1U<<((NU)((*(*n)._kind_6.sons->data[iX60gensym102385003_]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(iX60gensym102400008_) >= (NU)((*(*n)._kind_6.sons->data[iX60gensym102385003_])._kind_6.sons ? (*(*n)._kind_6.sons->data[iX60gensym102385003_])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(iX60gensym102400008_,((*(*n)._kind_6.sons->data[iX60gensym102385003_])._kind_6.sons ? (*(*n)._kind_6.sons->data[iX60gensym102385003_])._kind_6.sons->Sup.len : 0)-1); }
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*(*n)._kind_6.sons->data[iX60gensym102385003_])._kind_6.sons->data[iX60gensym102400008_]).kind)>>3] &(1U<<((NU)((*(*(*n)._kind_6.sons->data[iX60gensym102385003_])._kind_6.sons->data[iX60gensym102400008_]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(((NI) 0)) >= (NU)((*(*(*n)._kind_6.sons->data[iX60gensym102385003_])._kind_6.sons->data[iX60gensym102400008_])._kind_6.sons ? (*(*(*n)._kind_6.sons->data[iX60gensym102385003_])._kind_6.sons->data[iX60gensym102400008_])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*(*n)._kind_6.sons->data[iX60gensym102385003_])._kind_6.sons->data[iX60gensym102400008_])._kind_6.sons ? (*(*(*n)._kind_6.sons->data[iX60gensym102385003_])._kind_6.sons->data[iX60gensym102400008_])._kind_6.sons->Sup.len : 0)-1); }
										initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*(*(*n)._kind_6.sons->data[iX60gensym102385003_])._kind_6.sons->data[iX60gensym102400008_])._kind_6.sons->data[((NI) 0)], (&xX60gensym102400006_));
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(iX60gensym102385003_) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(iX60gensym102385003_,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*n)._kind_6.sons->data[iX60gensym102385003_]).kind)>>3] &(1U<<((NU)((*(*n)._kind_6.sons->data[iX60gensym102385003_]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(iX60gensym102400008_) >= (NU)((*(*n)._kind_6.sons->data[iX60gensym102385003_])._kind_6.sons ? (*(*n)._kind_6.sons->data[iX60gensym102385003_])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(iX60gensym102400008_,((*(*n)._kind_6.sons->data[iX60gensym102385003_])._kind_6.sons ? (*(*n)._kind_6.sons->data[iX60gensym102385003_])._kind_6.sons->Sup.len : 0)-1); }
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*(*n)._kind_6.sons->data[iX60gensym102385003_])._kind_6.sons->data[iX60gensym102400008_]).kind)>>3] &(1U<<((NU)((*(*(*n)._kind_6.sons->data[iX60gensym102385003_])._kind_6.sons->data[iX60gensym102400008_]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(((NI) 1)) >= (NU)((*(*(*n)._kind_6.sons->data[iX60gensym102385003_])._kind_6.sons->data[iX60gensym102400008_])._kind_6.sons ? (*(*(*n)._kind_6.sons->data[iX60gensym102385003_])._kind_6.sons->data[iX60gensym102400008_])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*(*(*n)._kind_6.sons->data[iX60gensym102385003_])._kind_6.sons->data[iX60gensym102400008_])._kind_6.sons ? (*(*(*n)._kind_6.sons->data[iX60gensym102385003_])._kind_6.sons->data[iX60gensym102400008_])._kind_6.sons->Sup.len : 0)-1); }
										initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*(*(*n)._kind_6.sons->data[iX60gensym102385003_])._kind_6.sons->data[iX60gensym102400008_])._kind_6.sons->data[((NI) 1)], (&yX60gensym102400007_));
										T20_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
										T20_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
										{
											if (!!(!(((*p).module == NIM_NIL)))) goto LA23_;
											failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
										}
										LA23_: ;
										res_2 = rawNewString(((NI) 80));
										res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_285));
										T25_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T25_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(a);
										cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T25_);
										res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_947));
										T26_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T26_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(xX60gensym102400006_);
										cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T26_);
										res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_948));
										T27_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T27_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(a);
										cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T27_);
										res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_949));
										T28_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T28_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(yX60gensym102400007_);
										cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T28_);
										res_2 = resizeString(res_2, 7);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_950));
										T29_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T29_ = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).labels)));
										T30_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T30_ = amp___4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_552), T29_);
										T31_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T31_ = amp___Z7W1o5nPSc3ExfO5f7j1Gg(T30_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_3));
										cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T31_);
										res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_104));
										{
											if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA34_;
											res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
										}
										LA34_: ;
										T36_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T36_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
										T37_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T37_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T36_);
										add__IM4kcMNkkOLJtqdEqSxR8A(T20_, T37_);
									}
									goto LA16_;
									LA18_: ;
									{
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T39_;
										NimStringDesc* res_3;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T44_;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T45_;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T46_;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T47_;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T48_;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T53_;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T54_;
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(iX60gensym102385003_) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(iX60gensym102385003_,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*n)._kind_6.sons->data[iX60gensym102385003_]).kind)>>3] &(1U<<((NU)((*(*n)._kind_6.sons->data[iX60gensym102385003_]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(iX60gensym102400008_) >= (NU)((*(*n)._kind_6.sons->data[iX60gensym102385003_])._kind_6.sons ? (*(*n)._kind_6.sons->data[iX60gensym102385003_])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(iX60gensym102400008_,((*(*n)._kind_6.sons->data[iX60gensym102385003_])._kind_6.sons ? (*(*n)._kind_6.sons->data[iX60gensym102385003_])._kind_6.sons->Sup.len : 0)-1); }
										initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*(*n)._kind_6.sons->data[iX60gensym102385003_])._kind_6.sons->data[iX60gensym102400008_], (&xX60gensym102400006_));
										T39_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
										T39_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
										{
											if (!!(!(((*p).module == NIM_NIL)))) goto LA42_;
											failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
										}
										LA42_: ;
										res_3 = rawNewString(((NI) 80));
										res_3 = resizeString(res_3, 4);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_285));
										T44_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T44_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(a);
										cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T44_);
										res_3 = resizeString(res_3, 4);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_562));
										T45_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T45_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(xX60gensym102400006_);
										cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T45_);
										res_3 = resizeString(res_3, 7);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_950));
										T46_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T46_ = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).labels)));
										T47_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T47_ = amp___4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_552), T46_);
										T48_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T48_ = amp___Z7W1o5nPSc3ExfO5f7j1Gg(T47_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_3));
										cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T48_);
										res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_104));
										{
											if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA51_;
											res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
										}
										LA51_: ;
										T53_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T53_ = rope__yShmEg9cffWxI7s5XzEKBow(res_3);
										T54_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T54_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T53_);
										add__IM4kcMNkkOLJtqdEqSxR8A(T39_, T54_);
									}
									LA16_: ;
									if (nimAddInt(i, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_967)) { raiseOverflow(); };
									i = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_967);
								} LA15: ;
							}
						}
					}
					goto LA8_;
					LA10_: ;
					{
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T56_;
						tyArray__JiWwrsTRC6xqNlGcBthSVA T57_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T58_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T59_;
						T56_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
						T56_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
						nimZeroMem((void*)T57_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
						T57_[0] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).labels)));
						T58_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T58_ = percent___XWz49cQA2QiZaLkqHBU5L3g(T57_, 1);
						T59_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T59_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T58_);
						add__IM4kcMNkkOLJtqdEqSxR8A(T56_, T59_);
					}
					LA8_: ;
					if (nimAddInt(res, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_968)) { raiseOverflow(); };
					res = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_968);
				} LA7: ;
			}
		}
		{
			NI T62_;
			NI TM__MQdRN7fpbG7rPm4JpVVAhA_969;
			NI TM__MQdRN7fpbG7rPm4JpVVAhA_970;
			NI gotoTargetX60gensym102385004_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T65_;
			tyArray__JiWwrsTRC6xqNlGcBthSVA T66_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T67_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T68_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T69_;
			tyArray__JiWwrsTRC6xqNlGcBthSVA T70_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T71_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T72_;
			T62_ = (NI)0;
			T62_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (nimSubInt(T62_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_969)) { raiseOverflow(); };
			if (!(splitPoint < (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_969))) goto LA63_;
			if (nimAddInt((*p).labels, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_970)) { raiseOverflow(); };
			if (TM__MQdRN7fpbG7rPm4JpVVAhA_970 < 0 || TM__MQdRN7fpbG7rPm4JpVVAhA_970 > 2147483647){ raiseOverflow(); }
			(*p).labels = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_970);
			gotoTargetX60gensym102385004_ = (*p).labels;
			T65_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T65_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			nimZeroMem((void*)T66_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
			T66_[0] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (gotoTargetX60gensym102385004_)));
			T67_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T67_ = percent___XWz49cQA2QiZaLkqHBU5L3g(T66_, 1);
			T68_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T68_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T67_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T65_, T68_);
			resX60gensym102385001_ = genCaseSecondPass__4DRiNj9aN6Z9aXL9bqOB79czGw(p, n, d, ((NI) (labIdX60gensym102385002_)), splitPoint);
			T69_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T69_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			nimZeroMem((void*)T70_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
			T70_[0] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (gotoTargetX60gensym102385004_)));
			T71_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T71_ = percent___Au81R9a68Rv3gwlPtvDarPg(T70_, 1);
			T72_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T72_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T71_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T69_, T72_);
		}
		goto LA60_;
		LA63_: ;
		{
			resX60gensym102385001_ = genCaseSecondPass__4DRiNj9aN6Z9aXL9bqOB79czGw(p, n, d, ((NI) (labIdX60gensym102385002_)), splitPoint);
		}
		LA60_: ;
		lend = resX60gensym102385001_;
	}
	goto LA1_;
	LA3_: ;
	{
		lend = NIM_NIL;
	}
	LA1_: ;
	{
		NI TM__MQdRN7fpbG7rPm4JpVVAhA_971;
		NI T77_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T80_;
		tyArray__JiWwrsTRC6xqNlGcBthSVA T81_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T82_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T83_;
		NIM_BOOL hasDefault;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T117_;
		tyArray__qTjAvTvKF9anytN1At69aJMQ T118_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T119_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T120_;
		if (nimAddInt(splitPoint, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_971)) { raiseOverflow(); };
		T77_ = (NI)0;
		T77_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (!((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_971) < T77_)) goto LA78_;
		T80_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T80_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		nimZeroMem((void*)T81_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
		T81_[0] = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(a);
		T82_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T82_ = percent___T9caGByKkBhaXSZ6fCJLIdQ(T81_, 1);
		T83_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T83_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T82_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T80_, T83_);
		hasDefault = NIM_FALSE;
		{
			NI i_2;
			NI colontmp__2;
			NI colontmp__3;
			NI TM__MQdRN7fpbG7rPm4JpVVAhA_972;
			NI i_3;
			i_2 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__3 = (NI)0;
			if (nimAddInt(splitPoint, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_972)) { raiseOverflow(); };
			colontmp__2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_972);
			colontmp__3 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			i_3 = colontmp__2;
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branch;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T102_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T103_;
					tyArray__qTjAvTvKF9anytN1At69aJMQ T104_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T105_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T106_;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_973;
					if (!(i_3 < colontmp__3)) goto LA86;
					i_2 = i_3;
					{
						NIM_BOOL T89_;
						T89_ = (NIM_BOOL)0;
						T89_ = ((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 1));
						if (!(T89_)) goto LA90_;
						T89_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*n).typ);
						LA90_: ;
						if (!T89_) goto LA91_;
						(*d).k = ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0);
					}
					LA91_: ;
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i_2) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_2,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
					branch = (*n)._kind_6.sons->data[i_2];
					{
						if (!((*branch).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA95_;
						genCaseRange__KUz7NJSCXeUWRl4foF5zfg(p, branch);
					}
					goto LA93_;
					LA95_: ;
					{
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T98_;
						tyArray__qTjAvTvKF9anytN1At69aJMQ T99_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T100_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T101_;
						T98_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
						T98_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
						nimZeroMem((void*)T99_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
						T100_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T100_ = percent___TTRh79a14hh1gb0owIP1Y6Q(T99_, 0);
						T101_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T101_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T100_);
						add__IM4kcMNkkOLJtqdEqSxR8A(T98_, T101_);
						hasDefault = NIM_TRUE;
					}
					LA93_: ;
					T102_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T102_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(branch);
					exprBlock__8mAL9ckajemzgfLPfeZVNoQ_21(p, T102_, d);
					T103_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
					T103_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
					nimZeroMem((void*)T104_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
					T105_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T105_ = percent___TmeCjGna9cPfiHHcfqmKXjw(T104_, 0);
					T106_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T106_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T105_);
					add__IM4kcMNkkOLJtqdEqSxR8A(T103_, T106_);
					if (nimAddInt(i_3, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_973)) { raiseOverflow(); };
					i_3 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_973);
				} LA86: ;
			}
		}
		{
			NIM_BOOL T109_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T113_;
			tyArray__qTjAvTvKF9anytN1At69aJMQ T114_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T115_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T116_;
			T109_ = (NIM_BOOL)0;
			if ((*(*(*(*p).module).g).config).cCompiler < 1 || (*(*(*(*p).module).g).config).cCompiler > 15){ raiseIndexError3((*(*(*(*p).module).g).config).cCompiler, 1, 15); }
			T109_ = ((CC__78I18QZNZFIv9ah7oETc0jg[((*(*(*(*p).module).g).config).cCompiler)- 1].Field21 &(1U<<((NU)(((tyEnum_TInfoCCProp__49cn73TjZ7Rt9b8QCAU8tLNg) 3))&7U)))!=0);
			if (!(T109_)) goto LA110_;
			T109_ = !(hasDefault);
			LA110_: ;
			if (!T109_) goto LA111_;
			T113_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T113_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			nimZeroMem((void*)T114_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
			T115_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T115_ = percent___JmTWN8YiVKTZuvCYW2XNZA(T114_, 0);
			T116_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T116_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T115_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T113_, T116_);
		}
		LA111_: ;
		T117_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T117_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		nimZeroMem((void*)T118_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
		T119_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T119_ = percent___BYiowJAm8zF7RBRISElaLg(T118_, 0);
		T120_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T120_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T119_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T117_, T120_);
	}
	LA78_: ;
	{
		if (!!((lend == NIM_NIL))) goto LA123_;
		fixLabel__z1hx9axqa9cHsmY7bMeZVSrQ(p, lend);
	}
	LA123_: ;
}
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__nPImuPGZIdcrAfCNyf4oxA_2ast((*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_: ;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
	T8_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T8_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*t)._kind_6.sons->data[((NI) 0)]).typ, IL64(36134350144710928));
	switch ((*T8_).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
	{
		genStringCase__re1pwmyeR32ikwnOC3vvzQ_2(p, t, d);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39):
	{
		tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA aX60gensym102570006_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* lendX60gensym102570007_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* resX60gensym102580012_;
		NI labIdX60gensym102580013_;
		nimZeroMem((void*)(&aX60gensym102570006_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*t)._kind_6.sons->data[((NI) 0)], (&aX60gensym102570006_));
		resX60gensym102580012_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		labIdX60gensym102580013_ = (*p).labels;
		{
			NI iX60gensym102580014_;
			NI colontmp_;
			NI T12_;
			NI TM__MQdRN7fpbG7rPm4JpVVAhA_944;
			NI res;
			iX60gensym102580014_ = (NI)0;
			colontmp_ = (NI)0;
			T12_ = (NI)0;
			T12_ = len__P89cqdlERShb9alU3iC0yj8wast(t);
			if (nimSubInt(T12_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_944)) { raiseOverflow(); };
			colontmp_ = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_944);
			res = ((NI) 1);
			{
				while (1) {
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_945;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_952;
					if (!(res <= colontmp_)) goto LA14;
					iX60gensym102580014_ = res;
					if (nimAddInt((*p).labels, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_945)) { raiseOverflow(); };
					if (TM__MQdRN7fpbG7rPm4JpVVAhA_945 < 0 || TM__MQdRN7fpbG7rPm4JpVVAhA_945 > 2147483647){ raiseOverflow(); }
					(*p).labels = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_945);
					{
						tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA xX60gensym102595006_;
						tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA yX60gensym102595007_;
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if ((NU)(iX60gensym102580014_) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(iX60gensym102580014_,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
						if (!((*(*t)._kind_6.sons->data[iX60gensym102580014_]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA17_;
						nimZeroMem((void*)(&xX60gensym102595006_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
						nimZeroMem((void*)(&yX60gensym102595007_), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
						{
							NI iX60gensym102595008_;
							NI colontmp__2;
							NI T20_;
							NI TM__MQdRN7fpbG7rPm4JpVVAhA_946;
							NI i;
							iX60gensym102595008_ = (NI)0;
							colontmp__2 = (NI)0;
							if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
							if ((NU)(iX60gensym102580014_) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(iX60gensym102580014_,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
							T20_ = (NI)0;
							T20_ = len__P89cqdlERShb9alU3iC0yj8wast((*t)._kind_6.sons->data[iX60gensym102580014_]);
							if (nimSubInt(T20_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_946)) { raiseOverflow(); };
							colontmp__2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_946);
							i = ((NI) 0);
							{
								while (1) {
									NI TM__MQdRN7fpbG7rPm4JpVVAhA_951;
									if (!(i < colontmp__2)) goto LA22;
									iX60gensym102595008_ = i;
									{
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T27_;
										NimStringDesc* res_2;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T32_;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T33_;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T34_;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T35_;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T36_;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T37_;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T38_;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T43_;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T44_;
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(iX60gensym102580014_) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(iX60gensym102580014_,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t)._kind_6.sons->data[iX60gensym102580014_]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[iX60gensym102580014_]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(iX60gensym102595008_) >= (NU)((*(*t)._kind_6.sons->data[iX60gensym102580014_])._kind_6.sons ? (*(*t)._kind_6.sons->data[iX60gensym102580014_])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(iX60gensym102595008_,((*(*t)._kind_6.sons->data[iX60gensym102580014_])._kind_6.sons ? (*(*t)._kind_6.sons->data[iX60gensym102580014_])._kind_6.sons->Sup.len : 0)-1); }
										if (!((*(*(*t)._kind_6.sons->data[iX60gensym102580014_])._kind_6.sons->data[iX60gensym102595008_]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA25_;
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(iX60gensym102580014_) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(iX60gensym102580014_,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t)._kind_6.sons->data[iX60gensym102580014_]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[iX60gensym102580014_]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(iX60gensym102595008_) >= (NU)((*(*t)._kind_6.sons->data[iX60gensym102580014_])._kind_6.sons ? (*(*t)._kind_6.sons->data[iX60gensym102580014_])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(iX60gensym102595008_,((*(*t)._kind_6.sons->data[iX60gensym102580014_])._kind_6.sons ? (*(*t)._kind_6.sons->data[iX60gensym102580014_])._kind_6.sons->Sup.len : 0)-1); }
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*(*t)._kind_6.sons->data[iX60gensym102580014_])._kind_6.sons->data[iX60gensym102595008_]).kind)>>3] &(1U<<((NU)((*(*(*t)._kind_6.sons->data[iX60gensym102580014_])._kind_6.sons->data[iX60gensym102595008_]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(((NI) 0)) >= (NU)((*(*(*t)._kind_6.sons->data[iX60gensym102580014_])._kind_6.sons->data[iX60gensym102595008_])._kind_6.sons ? (*(*(*t)._kind_6.sons->data[iX60gensym102580014_])._kind_6.sons->data[iX60gensym102595008_])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*(*t)._kind_6.sons->data[iX60gensym102580014_])._kind_6.sons->data[iX60gensym102595008_])._kind_6.sons ? (*(*(*t)._kind_6.sons->data[iX60gensym102580014_])._kind_6.sons->data[iX60gensym102595008_])._kind_6.sons->Sup.len : 0)-1); }
										initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*(*(*t)._kind_6.sons->data[iX60gensym102580014_])._kind_6.sons->data[iX60gensym102595008_])._kind_6.sons->data[((NI) 0)], (&xX60gensym102595006_));
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(iX60gensym102580014_) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(iX60gensym102580014_,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t)._kind_6.sons->data[iX60gensym102580014_]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[iX60gensym102580014_]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(iX60gensym102595008_) >= (NU)((*(*t)._kind_6.sons->data[iX60gensym102580014_])._kind_6.sons ? (*(*t)._kind_6.sons->data[iX60gensym102580014_])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(iX60gensym102595008_,((*(*t)._kind_6.sons->data[iX60gensym102580014_])._kind_6.sons ? (*(*t)._kind_6.sons->data[iX60gensym102580014_])._kind_6.sons->Sup.len : 0)-1); }
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*(*t)._kind_6.sons->data[iX60gensym102580014_])._kind_6.sons->data[iX60gensym102595008_]).kind)>>3] &(1U<<((NU)((*(*(*t)._kind_6.sons->data[iX60gensym102580014_])._kind_6.sons->data[iX60gensym102595008_]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(((NI) 1)) >= (NU)((*(*(*t)._kind_6.sons->data[iX60gensym102580014_])._kind_6.sons->data[iX60gensym102595008_])._kind_6.sons ? (*(*(*t)._kind_6.sons->data[iX60gensym102580014_])._kind_6.sons->data[iX60gensym102595008_])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*(*(*t)._kind_6.sons->data[iX60gensym102580014_])._kind_6.sons->data[iX60gensym102595008_])._kind_6.sons ? (*(*(*t)._kind_6.sons->data[iX60gensym102580014_])._kind_6.sons->data[iX60gensym102595008_])._kind_6.sons->Sup.len : 0)-1); }
										initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*(*(*t)._kind_6.sons->data[iX60gensym102580014_])._kind_6.sons->data[iX60gensym102595008_])._kind_6.sons->data[((NI) 1)], (&yX60gensym102595007_));
										T27_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
										T27_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
										{
											if (!!(!(((*p).module == NIM_NIL)))) goto LA30_;
											failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
										}
										LA30_: ;
										res_2 = rawNewString(((NI) 80));
										res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_285));
										T32_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T32_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(aX60gensym102570006_);
										cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T32_);
										res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_947));
										T33_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T33_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(xX60gensym102595006_);
										cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T33_);
										res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_948));
										T34_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T34_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(aX60gensym102570006_);
										cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T34_);
										res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_949));
										T35_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T35_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(yX60gensym102595007_);
										cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T35_);
										res_2 = resizeString(res_2, 7);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_950));
										T36_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T36_ = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).labels)));
										T37_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T37_ = amp___4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_552), T36_);
										T38_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T38_ = amp___Z7W1o5nPSc3ExfO5f7j1Gg(T37_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_3));
										cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T38_);
										res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_104));
										{
											if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA41_;
											res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
										}
										LA41_: ;
										T43_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T43_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
										T44_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T44_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T43_);
										add__IM4kcMNkkOLJtqdEqSxR8A(T27_, T44_);
									}
									goto LA23_;
									LA25_: ;
									{
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T46_;
										NimStringDesc* res_3;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T51_;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T52_;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T53_;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T54_;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T55_;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T60_;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T61_;
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(iX60gensym102580014_) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(iX60gensym102580014_,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t)._kind_6.sons->data[iX60gensym102580014_]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[iX60gensym102580014_]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(iX60gensym102595008_) >= (NU)((*(*t)._kind_6.sons->data[iX60gensym102580014_])._kind_6.sons ? (*(*t)._kind_6.sons->data[iX60gensym102580014_])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(iX60gensym102595008_,((*(*t)._kind_6.sons->data[iX60gensym102580014_])._kind_6.sons ? (*(*t)._kind_6.sons->data[iX60gensym102580014_])._kind_6.sons->Sup.len : 0)-1); }
										initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*(*t)._kind_6.sons->data[iX60gensym102580014_])._kind_6.sons->data[iX60gensym102595008_], (&xX60gensym102595006_));
										T46_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
										T46_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
										{
											if (!!(!(((*p).module == NIM_NIL)))) goto LA49_;
											failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
										}
										LA49_: ;
										res_3 = rawNewString(((NI) 80));
										res_3 = resizeString(res_3, 4);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_285));
										T51_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T51_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(aX60gensym102570006_);
										cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T51_);
										res_3 = resizeString(res_3, 4);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_562));
										T52_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T52_ = rdCharLoc__xidyzuHqIciXbQyEOKahDg_2(xX60gensym102595006_);
										cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T52_);
										res_3 = resizeString(res_3, 7);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_950));
										T53_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T53_ = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).labels)));
										T54_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T54_ = amp___4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_552), T53_);
										T55_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T55_ = amp___Z7W1o5nPSc3ExfO5f7j1Gg(T54_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_3));
										cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T55_);
										res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_104));
										{
											if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA58_;
											res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
										}
										LA58_: ;
										T60_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T60_ = rope__yShmEg9cffWxI7s5XzEKBow(res_3);
										T61_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T61_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T60_);
										add__IM4kcMNkkOLJtqdEqSxR8A(T46_, T61_);
									}
									LA23_: ;
									if (nimAddInt(i, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_951)) { raiseOverflow(); };
									i = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_951);
								} LA22: ;
							}
						}
					}
					goto LA15_;
					LA17_: ;
					{
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T63_;
						tyArray__JiWwrsTRC6xqNlGcBthSVA T64_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T65_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T66_;
						T63_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
						T63_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
						nimZeroMem((void*)T64_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
						T64_[0] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).labels)));
						T65_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T65_ = percent___XWz49cQA2QiZaLkqHBU5L3g(T64_, 1);
						T66_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T66_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T65_);
						add__IM4kcMNkkOLJtqdEqSxR8A(T63_, T66_);
					}
					LA15_: ;
					if (nimAddInt(res, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_952)) { raiseOverflow(); };
					res = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_952);
				} LA14: ;
			}
		}
		{
			NI T69_;
			NI TM__MQdRN7fpbG7rPm4JpVVAhA_953;
			NI T70_;
			NI TM__MQdRN7fpbG7rPm4JpVVAhA_954;
			NI TM__MQdRN7fpbG7rPm4JpVVAhA_955;
			NI gotoTargetX60gensym102580015_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T73_;
			tyArray__JiWwrsTRC6xqNlGcBthSVA T74_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T75_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T76_;
			NI T77_;
			NI TM__MQdRN7fpbG7rPm4JpVVAhA_956;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T78_;
			tyArray__JiWwrsTRC6xqNlGcBthSVA T79_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T80_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T81_;
			T69_ = (NI)0;
			T69_ = len__P89cqdlERShb9alU3iC0yj8wast(t);
			if (nimSubInt(T69_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_953)) { raiseOverflow(); };
			T70_ = (NI)0;
			T70_ = len__P89cqdlERShb9alU3iC0yj8wast(t);
			if (nimSubInt(T70_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_954)) { raiseOverflow(); };
			if (!((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_953) < (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_954))) goto LA71_;
			if (nimAddInt((*p).labels, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_955)) { raiseOverflow(); };
			if (TM__MQdRN7fpbG7rPm4JpVVAhA_955 < 0 || TM__MQdRN7fpbG7rPm4JpVVAhA_955 > 2147483647){ raiseOverflow(); }
			(*p).labels = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_955);
			gotoTargetX60gensym102580015_ = (*p).labels;
			T73_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T73_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			nimZeroMem((void*)T74_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
			T74_[0] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (gotoTargetX60gensym102580015_)));
			T75_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T75_ = percent___XWz49cQA2QiZaLkqHBU5L3g(T74_, 1);
			T76_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T76_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T75_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T73_, T76_);
			T77_ = (NI)0;
			T77_ = len__P89cqdlERShb9alU3iC0yj8wast(t);
			if (nimSubInt(T77_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_956)) { raiseOverflow(); };
			resX60gensym102580012_ = genCaseSecondPass__4DRiNj9aN6Z9aXL9bqOB79czGw(p, t, d, ((NI) (labIdX60gensym102580013_)), (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_956));
			T78_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T78_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			nimZeroMem((void*)T79_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
			T79_[0] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (gotoTargetX60gensym102580015_)));
			T80_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T80_ = percent___Au81R9a68Rv3gwlPtvDarPg(T79_, 1);
			T81_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T81_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T80_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T78_, T81_);
		}
		goto LA67_;
		LA71_: ;
		{
			NI T83_;
			NI TM__MQdRN7fpbG7rPm4JpVVAhA_957;
			T83_ = (NI)0;
			T83_ = len__P89cqdlERShb9alU3iC0yj8wast(t);
			if (nimSubInt(T83_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_957)) { raiseOverflow(); };
			resX60gensym102580012_ = genCaseSecondPass__4DRiNj9aN6Z9aXL9bqOB79czGw(p, t, d, ((NI) (labIdX60gensym102580013_)), (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_957));
		}
		LA67_: ;
		lendX60gensym102570007_ = resX60gensym102580012_;
		fixLabel__z1hx9axqa9cHsmY7bMeZVSrQ(p, lendX60gensym102570007_);
	}
	break;
	default:
	{
		{
			NIM_BOOL T87_;
			T87_ = (NIM_BOOL)0;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
			T87_ = ((*(*t)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T87_)) goto LA88_;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
			if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*t)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
			T87_ = (((*(*(*t)._kind_6.sons->data[((NI) 0)])._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 34))&63U)))!=0);
			LA88_: ;
			if (!T87_) goto LA89_;
			genGotoForCase__ACGHJp9bbmHaRpjqO8LXrqA(p, t);
		}
		goto LA85_;
		LA89_: ;
		{
			genOrdinalCase__8mAL9ckajemzgfLPfeZVNoQ_22(p, t, d);
		}
		LA85_: ;
	}
	break;
	}
}
static N_INLINE(void, pop__Y36bTNxSoXinCwCTSTCSTgsystem)(tySequence__KjgUMUjT3LUKOFIK4xt5ug** s, tyTuple__FxkU4d1VDodDMc9ah6Mbagw* Result) {
	NI L;
	NI T1_;
	NI TM__MQdRN7fpbG7rPm4JpVVAhA_974;
	T1_ = ((*s) ? (*s)->Sup.len : 0);
	if (nimSubInt(T1_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_974)) { raiseOverflow(); };
	L = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_974);
	if ((NU)(L) >= (NU)((*s) ? (*s)->Sup.len : 0)){ raiseIndexError2(L,((*s) ? (*s)->Sup.len : 0)-1); }
	unsureAsgnRef((void**) (&(*Result).Field0), (*s)->data[L].Field0);
	(*Result).Field1 = (*s)->data[L].Field1;
	(*Result).Field2 = (*s)->data[L].Field2;
	if ((L) < ((NI) 0) || (L) > ((NI) 2147483647)){ raiseRangeErrorI(L, ((NI) 0), ((NI) 2147483647)); }
	unsureAsgnRef((void**) (&(*s)), (tySequence__KjgUMUjT3LUKOFIK4xt5ug*) setLengthSeqV2(&((*s))->Sup, (&NTI__KjgUMUjT3LUKOFIK4xt5ug_), ((NI) (L))));
}
N_LIB_PRIVATE N_NIMCALL(void, blockLeaveActions__e09bgD1fQnMSV07ItnToC3Q)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, NI howManyTrys, NI howManyExcepts) {
	tySequence__KjgUMUjT3LUKOFIK4xt5ug* stack;
	stack = newSeq__uReleM9aRnQZRzdaRfwc5xQ(((NI) 0));
	{
		NI i;
		NI res;
		i = (NI)0;
		res = ((NI) 1);
		{
			while (1) {
				tyTuple__FxkU4d1VDodDMc9ah6Mbagw tryStmt;
				NI T24_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finallyStmt;
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_976;
				if (!(res <= howManyTrys)) goto LA3;
				i = res;
				nimZeroMem((void*)(&tryStmt), sizeof(tyTuple__FxkU4d1VDodDMc9ah6Mbagw));
				pop__Y36bTNxSoXinCwCTSTCSTgsystem((&(*p).nestedTryStmts), (&tryStmt));
				{
					if (!((*(*(*(*p).module).g).config).exc == ((tyEnum_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ) 1))) goto LA6_;
					{
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T12_;
						NimStringDesc* res_2;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T17_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T22_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T23_;
						if (!!(tryStmt.Field1)) goto LA10_;
						T12_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
						T12_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
						{
							if (!!(!(((*p).module == NIM_NIL)))) goto LA15_;
							failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
						}
						LA15_: ;
						res_2 = rawNewString(((NI) 80));
						T17_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T17_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_975));
						cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T17_);
						res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_334));
						{
							if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA20_;
							res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
						}
						LA20_: ;
						T22_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T22_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
						T23_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T23_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T22_);
						add__IM4kcMNkkOLJtqdEqSxR8A(T12_, T23_);
					}
					LA10_: ;
				}
				LA6_: ;
				stack = (tySequence__KjgUMUjT3LUKOFIK4xt5ug*) incrSeqV3((TGenericSeq*)(stack), (&NTI__KjgUMUjT3LUKOFIK4xt5ug_));
				T24_ = stack->Sup.len++;
				asgnRef((void**) (&stack->data[T24_].Field0), tryStmt.Field0);
				stack->data[T24_].Field1 = tryStmt.Field1;
				stack->data[T24_].Field2 = tryStmt.Field2;
				finallyStmt = tryStmt.Field0;
				{
					if (!!((finallyStmt == NIM_NIL))) goto LA27_;
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*finallyStmt).kind)>>3] &(1U<<((NU)((*finallyStmt).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(((NI) 0)) >= (NU)((*finallyStmt)._kind_6.sons ? (*finallyStmt)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*finallyStmt)._kind_6.sons ? (*finallyStmt)._kind_6.sons->Sup.len : 0)-1); }
					genStmts__QrTB5DOwbDX9bKAW7PNbuJA(p, (*finallyStmt)._kind_6.sons->data[((NI) 0)]);
				}
				LA27_: ;
				if (nimAddInt(res, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_976)) { raiseOverflow(); };
				res = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_976);
			} LA3: ;
		}
	}
	{
		NI i_2;
		NI colontmp_;
		NI TM__MQdRN7fpbG7rPm4JpVVAhA_977;
		NI res_3;
		i_2 = (NI)0;
		colontmp_ = (NI)0;
		if (nimSubInt(howManyTrys, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_977)) { raiseOverflow(); };
		colontmp_ = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_977);
		res_3 = colontmp_;
		{
			while (1) {
				NI T32_;
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_978;
				if (!(((NI) 0) <= res_3)) goto LA31;
				i_2 = res_3;
				if ((NU)(i_2) >= (NU)(stack ? stack->Sup.len : 0)){ raiseIndexError2(i_2,(stack ? stack->Sup.len : 0)-1); }
				asgnRef((void**) (&(*p).nestedTryStmts), (tySequence__KjgUMUjT3LUKOFIK4xt5ug*) incrSeqV3((TGenericSeq*)((*p).nestedTryStmts), (&NTI__KjgUMUjT3LUKOFIK4xt5ug_)));
				T32_ = (*p).nestedTryStmts->Sup.len++;
				asgnRef((void**) (&(*p).nestedTryStmts->data[T32_].Field0), stack->data[i_2].Field0);
				(*p).nestedTryStmts->data[T32_].Field1 = stack->data[i_2].Field1;
				(*p).nestedTryStmts->data[T32_].Field2 = stack->data[i_2].Field2;
				if (nimSubInt(res_3, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_978)) { raiseOverflow(); };
				res_3 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_978);
			} LA31: ;
		}
	}
	{
		if (!!((((*p).flags &(1U<<((NU)(((tyEnum_TCProcFlag__LgBeaca7tT1nUR7RL1RjPQ) 3))&7U)))!=0))) goto LA35_;
		{
			NI i_3;
			NI colontmp__2;
			NI TM__MQdRN7fpbG7rPm4JpVVAhA_979;
			NI res_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			if (nimSubInt(howManyExcepts, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_979)) { raiseOverflow(); };
			colontmp__2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_979);
			res_4 = colontmp__2;
			{
				while (1) {
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T40_;
					NimStringDesc* res_5;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T45_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T50_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T51_;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_981;
					if (!(((NI) 0) <= res_4)) goto LA39;
					i_3 = res_4;
					T40_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
					T40_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
					{
						if (!!(!(((*p).module == NIM_NIL)))) goto LA43_;
						failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
					}
					LA43_: ;
					res_5 = rawNewString(((NI) 80));
					T45_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T45_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_980));
					cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T45_);
					res_5 = resizeString(res_5, 3);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_334));
					{
						if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA48_;
						res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
					}
					LA48_: ;
					T50_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T50_ = rope__yShmEg9cffWxI7s5XzEKBow(res_5);
					T51_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T51_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T50_);
					add__IM4kcMNkkOLJtqdEqSxR8A(T40_, T51_);
					if (nimSubInt(res_4, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_981)) { raiseOverflow(); };
					res_4 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_981);
				} LA39: ;
			}
		}
	}
	LA35_: ;
}
static N_INLINE(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**, X5BX5D___TZRG9c19bQX0slkSQAmDzJZAsystem)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** s, NI sLen_0, NI i) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** result;
	NI TM__MQdRN7fpbG7rPm4JpVVAhA_982;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	if (nimSubInt(sLen_0, i, &TM__MQdRN7fpbG7rPm4JpVVAhA_982)) { raiseOverflow(); };
	if ((NU)((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_982)) >= (NU)(sLen_0)){ raiseIndexError2((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_982),sLen_0-1); }
	result = &s[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_982)];
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genReturnStmt__QrTB5DOwbDX9bKAW7PNbuJA_4)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* t) {
	NI T9_;
	NI T10_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T31_;
	tyArray__qTjAvTvKF9anytN1At69aJMQ T32_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T33_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T34_;
{	{
		if (!(((*t).flags &(1U<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 15))&31U)))!=0)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	(*p).flags |= ((NU8)1)<<((((tyEnum_TCProcFlag__LgBeaca7tT1nUR7RL1RjPQ) 0)) & 7);
	genLineDir__QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
	{
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
		if (!!(((*(*t)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA7_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
		genStmts__QrTB5DOwbDX9bKAW7PNbuJA(p, (*t)._kind_6.sons->data[((NI) 0)]);
	}
	LA7_: ;
	T9_ = ((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0);
	T10_ = (NI)0;
	T10_ = inExceptBlockLen__1ygdb876UM9astcNUXtgUBQ_2(p);
	blockLeaveActions__e09bgD1fQnMSV07ItnToC3Q(p, T9_, T10_);
	{
		NIM_BOOL T13_;
		NI T14_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* safePoint;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T18_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T19_;
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T24_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T29_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T30_;
		T13_ = (NIM_BOOL)0;
		T14_ = ((*p).finallySafePoints ? (*p).finallySafePoints->Sup.len : 0);
		T13_ = (((NI) 0) < T14_);
		if (!(T13_)) goto LA15_;
		T13_ = !((((*p).flags &(1U<<((NU)(((tyEnum_TCProcFlag__LgBeaca7tT1nUR7RL1RjPQ) 3))&7U)))!=0));
		LA15_: ;
		if (!T13_) goto LA16_;
		T18_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T18_ = X5BX5D___TZRG9c19bQX0slkSQAmDzJZAsystem((*p).finallySafePoints->data, ((*p).finallySafePoints ? (*p).finallySafePoints->Sup.len : 0), ((NI) 1));
		safePoint = (*T18_);
		T19_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T19_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA22_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA22_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 4);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_285));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), safePoint);
		res = resizeString(res, 14);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_983));
		T24_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T24_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_980));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T24_);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_334));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA27_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA27_: ;
		T29_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T29_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
		T30_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T30_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T29_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T19_, T30_);
	}
	LA16_: ;
	T31_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T31_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
	nimZeroMem((void*)T32_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
	T33_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T33_ = percent___Kbv8OIo8zpawh7SNMbfgkA(T32_, 0);
	T34_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T34_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T33_);
	add__IM4kcMNkkOLJtqdEqSxR8A(T31_, T34_);
	}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 T24_;
	NI TM__MQdRN7fpbG7rPm4JpVVAhA_989;
	NI T25_;
	NI TM__MQdRN7fpbG7rPm4JpVVAhA_990;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T26_;
	tyArray__JiWwrsTRC6xqNlGcBthSVA T27_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T28_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T29_;
	idx = (*p).breakIdx;
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym;
		NI TM__MQdRN7fpbG7rPm4JpVVAhA_986;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
		if (!!(((*(*t)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA3_;
		{
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
			if (!!(((*(*t)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA7_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_984));
		}
		LA7_: ;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*t)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
		sym = (*(*t)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
		{
			if (!!(((*sym).loc.k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 10)))) goto LA11_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_985));
		}
		LA11_: ;
		if (nimSubInt((*sym).position, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_986)) { raiseOverflow(); };
		idx = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_986);
	}
	goto LA1_;
	LA3_: ;
	{
		{
			while (1) {
				NIM_BOOL T16_;
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_987;
				T16_ = (NIM_BOOL)0;
				T16_ = (((NI) 0) <= idx);
				if (!(T16_)) goto LA17_;
				if ((NU)(idx) >= (NU)((*p).blocks ? (*p).blocks->Sup.len : 0)){ raiseIndexError2(idx,((*p).blocks ? (*p).blocks->Sup.len : 0)-1); }
				T16_ = !((*p).blocks->data[idx].isLoop);
				LA17_: ;
				if (!T16_) goto LA15;
				if (nimSubInt(idx, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_987)) { raiseOverflow(); };
				idx = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_987);
			} LA15: ;
		}
		{
			NIM_BOOL T20_;
			T20_ = (NIM_BOOL)0;
			T20_ = (idx < ((NI) 0));
			if (T20_) goto LA21_;
			if ((NU)(idx) >= (NU)((*p).blocks ? (*p).blocks->Sup.len : 0)){ raiseIndexError2(idx,((*p).blocks ? (*p).blocks->Sup.len : 0)-1); }
			T20_ = !((*p).blocks->data[idx].isLoop);
			LA21_: ;
			if (!T20_) goto LA22_;
			internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*t).info, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_988));
		}
		LA22_: ;
	}
	LA1_: ;
	if ((NU)(idx) >= (NU)((*p).blocks ? (*p).blocks->Sup.len : 0)){ raiseIndexError2(idx,((*p).blocks ? (*p).blocks->Sup.len : 0)-1); }
	label = assignLabel__mIFKIo7g6Echd7EokLhQegcgen((&(*p).blocks->data[idx]));
	T24_ = ((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0);
	if ((NU)(idx) >= (NU)((*p).blocks ? (*p).blocks->Sup.len : 0)){ raiseIndexError2(idx,((*p).blocks ? (*p).blocks->Sup.len : 0)-1); }
	if (nimSubInt(T24_, ((NI) ((*p).blocks->data[idx].nestedTryStmts)), &TM__MQdRN7fpbG7rPm4JpVVAhA_989)) { raiseOverflow(); };
	T25_ = (NI)0;
	T25_ = inExceptBlockLen__1ygdb876UM9astcNUXtgUBQ_2(p);
	if ((NU)(idx) >= (NU)((*p).blocks ? (*p).blocks->Sup.len : 0)){ raiseIndexError2(idx,((*p).blocks ? (*p).blocks->Sup.len : 0)-1); }
	if (nimSubInt(T25_, ((NI) ((*p).blocks->data[idx].nestedExceptStmts)), &TM__MQdRN7fpbG7rPm4JpVVAhA_990)) { raiseOverflow(); };
	blockLeaveActions__e09bgD1fQnMSV07ItnToC3Q(p, (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_989), (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_990));
	genLineDir__QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
	T26_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T26_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
	nimZeroMem((void*)T27_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
	T27_[0] = label;
	T28_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T28_ = percent___c1f569aWpTd825BTnv9bq4Xg(T27_, 1);
	T29_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T29_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T28_);
	add__IM4kcMNkkOLJtqdEqSxR8A(T26_, T29_);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, discriminatorTableDecl__WpGsd0DJejVIze0ZXr8L3g_2)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* objtype, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* d) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T1_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* tmp;
	tyArray__mrugoXXRZUEeG9bEXo9auBKw T2_;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA T3_;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA T4_;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_118));
	(void)(T1_);
	tmp = discriminatorTableName__WpGsd0DJejVIze0ZXr8L3g(m, objtype, d);
	nimZeroMem((void*)T2_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
	T2_[0] = tmp;
	T3_ = lengthOrd__hjogdnp59cMX1rwmjikBhqw_3((*(*m).g).config, (*d).typ);
	T4_ = plus___hiijuMqvH9aC9aKmwIYuqUAA_2(T3_, IL64(1));
	T2_[1] = rope__b5mr3rjXEwHVfmNLJr4cBA(T4_);
	result = percent___erDe9aYc2BNxzH9brKlmtEBg(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* T5_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T17_;
	NimStringDesc* res_2;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T22_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T23_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T24_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T25_;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA T26_;
	NI64 T27_;
	NI64 TM__MQdRN7fpbG7rPm4JpVVAhA_995;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T28_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T33_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T34_;
	t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(objtype, IL64(36275087632017680));
	{
		if (!!(((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_991));
	}
	LA3_: ;
	T5_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T5_ = genTypeInfo__BeEYMOjEPJinzbFpsfTaZg((*p).module, t, (*a.lode).info);
	(void)(T5_);
	{
		NIM_BOOL T8_;
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T15_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T16_;
		T8_ = (NIM_BOOL)0;
		T8_ = containsOrIncl__VFt0uM7bgfJ5age9alOsU9cg((&(*(*p).module).declaredThings), (*field).Sup.id);
		if (!!(T8_)) goto LA9_;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA13_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA13_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 7);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_371));
		T15_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T15_ = discriminatorTableDecl__WpGsd0DJejVIze0ZXr8L3g_2((*p).module, t, field);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T15_);
		T16_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T16_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*(*p).module).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], T16_);
	}
	LA9_: ;
	T17_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T17_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA20_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
	}
	LA20_: ;
	res_2 = rawNewString(((NI) 80));
	T22_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T22_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_992));
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T22_);
	res_2 = resizeString(res_2, 10);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_993));
	T23_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T23_ = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T23_);
	res_2 = resizeString(res_2, 12);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_994));
	T24_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T24_ = rdLoc__xidyzuHqIciXbQyEOKahDg(tmp);
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T24_);
	res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_463));
	T25_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T25_ = discriminatorTableName__WpGsd0DJejVIze0ZXr8L3g((*p).module, t, field);
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T25_);
	res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
	T26_ = lengthOrd__hjogdnp59cMX1rwmjikBhqw_3((*(*(*p).module).g).config, (*field).typ);
	T27_ = (NI64)0;
	T27_ = toInt64__1szweXXq3RBN50owrYu2Xw(T26_);
	if (nimAddInt64(T27_, IL64(1), &TM__MQdRN7fpbG7rPm4JpVVAhA_995)) { raiseOverflow(); };
	T28_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T28_ = intLiteral__kQA0lBUvzOSZAw7DHC4Fjg((NI64)(TM__MQdRN7fpbG7rPm4JpVVAhA_995));
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T28_);
	res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA31_;
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
	}
	LA31_: ;
	T33_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T33_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
	T34_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T34_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T33_);
	add__IM4kcMNkkOLJtqdEqSxR8A(T17_, T34_);
}
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));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	dotExpr = (*e)._kind_6.sons->data[((NI) 0)];
	{
		if (!((*dotExpr).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46))) goto LA3_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*dotExpr).kind)>>3] &(1U<<((NU)((*dotExpr).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*dotExpr)._kind_6.sons ? (*dotExpr)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*dotExpr)._kind_6.sons ? (*dotExpr)._kind_6.sons->Sup.len : 0)-1); }
		dotExpr = (*dotExpr)._kind_6.sons->data[((NI) 0)];
	}
	LA3_: ;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e)._kind_6.sons->data[((NI) 0)], (&a));
	T5_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T5_ = t__XNOXh7uniWNgiq58C9bW49awcgen(a);
	getTemp__VjOFVqypINqQv5C3ECnxbw(p, T5_, (&tmp), NIM_FALSE);
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
	expr__8mAL9ckajemzgfLPfeZVNoQ(p, (*e)._kind_6.sons->data[((NI) 1)], (&tmp));
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* field;
		if (!!((((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 40))&63U)))!=0))) goto LA8_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*dotExpr).kind)>>3] &(1U<<((NU)((*dotExpr).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*dotExpr)._kind_6.sons ? (*dotExpr)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*dotExpr)._kind_6.sons ? (*dotExpr)._kind_6.sons->Sup.len : 0)-1); }
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*dotExpr)._kind_6.sons->data[((NI) 1)]).kind)>>3] &(1U<<((NU)((*(*dotExpr)._kind_6.sons->data[((NI) 1)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
		field = (*(*dotExpr)._kind_6.sons->data[((NI) 1)])._kind_4.sym;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*dotExpr).kind)>>3] &(1U<<((NU)((*dotExpr).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*dotExpr)._kind_6.sons ? (*dotExpr)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*dotExpr)._kind_6.sons ? (*dotExpr)._kind_6.sons->Sup.len : 0)-1); }
		genDiscriminantCheck__c1s9cEnyLNclmLP8bBuHmDg(p, a, tmp, (*(*dotExpr)._kind_6.sons->data[((NI) 0)]).typ, field);
		message__mMj7lrOf3zBP9bl69amiKu5g((*(*(*p).module).g).config, (*e).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 46), ((NimStringDesc*) NIM_NIL));
	}
	LA8_: ;
	genAssignment__BtucsTdHw7orsXIL75hNVg(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;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		T3_ = ((*(*e)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
		if (!(T3_)) goto LA4_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*e)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*e)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
		T3_ = (((*(*(*e)._kind_6.sons->data[((NI) 0)])._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 34))&63U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		genLineDir__QrTB5DOwbDX9bKAW7PNbuJA_2(p, e);
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		genGotoVar__4xOIY9bgIMy9bAzg2ZyIieBw(p, (*e)._kind_6.sons->data[((NI) 1)]);
	}
	goto LA1_;
	LA5_: ;
	{
		NIM_BOOL T8_;
		T8_ = (NIM_BOOL)0;
		T8_ = (((*p).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 2))&31U)))!=0);
		if (!(T8_)) goto LA9_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		T8_ = isDiscriminantField__OTZyO2oJpdYpHVBZuRXuRQ_2((*e)._kind_6.sons->data[((NI) 0)]);
		LA9_: ;
		if (!T8_) goto LA10_;
		genLineDir__QrTB5DOwbDX9bKAW7PNbuJA_2(p, e);
		asgnFieldDiscriminant__X9cSqNhqEboci9cdmwBMNcBw_4(p, e);
	}
	goto LA1_;
	LA10_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* le;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri;
		tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T13_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T14_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		le = (*e)._kind_6.sons->data[((NI) 0)];
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*e)._kind_6.sons ? (*e)._kind_6.sons->Sup.len : 0)-1); }
		ri = (*e)._kind_6.sons->data[((NI) 1)];
		nimZeroMem((void*)(&a), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
		T13_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T13_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*le).typ, IL64(36275087638268176));
		T14_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, T13_);
		(void)(T14_);
		initLoc__qlujIAW86QclHYUVxlHRiQ((&a), ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0), le, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
		a.flags |= ((NU16)1)<<((((tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA) 9)) & 15);
		a.flags |= ((NU16)1)<<((((tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA) 10)) & 15);
		expr__8mAL9ckajemzgfLPfeZVNoQ(p, le, (&a));
		a.flags &= ~(((NU16)1) << ((((tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA) 10)) & 15));
		{
			if (!fastAsgn) goto LA17_;
			a.flags |= ((NU16)1)<<((((tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA) 2)) & 15);
		}
		LA17_: ;
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T21_;
			T21_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T21_ = t__XNOXh7uniWNgiq58C9bW49awcgen(a);
			if (!!(!((T21_ == NIM_NIL)))) goto LA22_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_996));
		}
		LA22_: ;
		genLineDir__QrTB5DOwbDX9bKAW7PNbuJA_2(p, ri);
		loadInto__vkEx8Dn9aiGOI04WjvQIHIwcgen(p, le, ri, (&a));
	}
	LA1_: ;
}
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;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		colontmp_ = (*t)._kind_6.sons;
		i = ((NI) 0);
		T2_ = (colontmp_ ? colontmp_->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_999;
				if (!(i < L)) goto LA4;
				if ((NU)(i) >= (NU)(colontmp_ ? colontmp_->Sup.len : 0)){ raiseIndexError2(i,(colontmp_ ? colontmp_->Sup.len : 0)-1); }
				it = colontmp_->data[i];
				switch ((*it).kind) {
				case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22):
				{
					if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_91[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_92)); }
					res = resizeString(res, ((*it)._kind_3.strVal ? (*it)._kind_3.strVal->Sup.len : 0) + 0);
appendString(res, (*it)._kind_3.strVal);
				}
				break;
				case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
				{
					tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym;
					if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
					sym = (*it)._kind_4.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___mZ66tEveFIQokq3arf8Klw(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__jXUNYqSX189axAU8O9bJBgpA((*p).module, (*sym).typ);
						T17_ = (NimStringDesc*)0;
						T17_ = dollar___mZ66tEveFIQokq3arf8Klw(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__zsqmUNR5OZrTUna0Y9bdu9bg((*sym).typ, IL64(36275087638309136));
						T20_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T20_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, T19_);
						(void)(T20_);
						r = (*sym).loc.r;
						{
							if (!(r == NIM_NIL)) goto LA23_;
							r = mangleName__RaNE9b8A430I9bfpgZmdrC1w((*p).module, sym);
							asgnRef((void**) (&(*sym).loc.r), r);
						}
						LA23_: ;
						T25_ = (NimStringDesc*)0;
						T25_ = dollar___mZ66tEveFIQokq3arf8Klw(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__jXUNYqSX189axAU8O9bJBgpA((*p).module, (*it).typ);
					T28_ = (NimStringDesc*)0;
					T28_ = dollar___mZ66tEveFIQokq3arf8Klw(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__zsqmUNR5OZrTUna0Y9bdu9bg((*it).typ, IL64(36275087638309136));
					T31_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T31_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, T30_);
					(void)(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___mZ66tEveFIQokq3arf8Klw(T32_);
					res = resizeString(res, (T33_ ? T33_->Sup.len : 0) + 0);
appendString(res, T33_);
				}
				break;
				}
				if (nimAddInt(i, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_999)) { raiseOverflow(); };
				i = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_999);
				{
					NI T36_;
					T36_ = (colontmp_ ? colontmp_->Sup.len : 0);
					if (!!((T36_ == L))) goto LA37_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_26));
				}
				LA37_: ;
			} LA4: ;
		}
	}
	{
		NIM_BOOL T41_;
		T41_ = (NIM_BOOL)0;
		T41_ = isAsmStmt;
		if (!(T41_)) goto LA42_;
		if ((*(*(*(*p).module).g).config).cCompiler < 1 || (*(*(*(*p).module).g).config).cCompiler > 15){ raiseIndexError3((*(*(*(*p).module).g).config).cCompiler, 1, 15); }
		T41_ = ((CC__78I18QZNZFIv9ah7oETc0jg[((*(*(*(*p).module).g).config).cCompiler)- 1].Field21 &(1U<<((NU)(((tyEnum_TInfoCCProp__49cn73TjZ7Rt9b8QCAU8tLNg) 5))&7U)))!=0);
		LA42_: ;
		if (!T41_) goto LA43_;
		{
			NimStringDesc* x;
			NI first;
			NI last;
			NI eolpos;
			x = (NimStringDesc*)0;
			first = ((NI) 0);
			last = ((NI) 0);
			eolpos = ((NI) 0);
			{
				while (1) {
					NI T69_;
					NI j;
					{
						while (1) {
							NIM_BOOL T50_;
							NI TM__MQdRN7fpbG7rPm4JpVVAhA_1000;
							T50_ = (NIM_BOOL)0;
							T50_ = (last < (res ? res->Sup.len : 0));
							if (!(T50_)) goto LA51_;
							if ((NU)(last) >= (NU)(res ? res->Sup.len : 0)){ raiseIndexError2(last,(res ? res->Sup.len : 0)-1); }
							T50_ = !((((NU8)(res->data[last])) == ((NU8)(13)) || ((NU8)(res->data[last])) == ((NU8)(10))));
							LA51_: ;
							if (!T50_) goto LA49;
							if (nimAddInt(last, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1000)) { raiseOverflow(); };
							last = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1000);
						} LA49: ;
					}
					eolpos = last;
					{
						if (!(last < (res ? res->Sup.len : 0))) goto LA54_;
						{
							NI TM__MQdRN7fpbG7rPm4JpVVAhA_1001;
							if ((NU)(last) >= (NU)(res ? res->Sup.len : 0)){ raiseIndexError2(last,(res ? res->Sup.len : 0)-1); }
							if (!((NU8)(res->data[last]) == (NU8)(10))) goto LA58_;
							if (nimAddInt(last, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1001)) { raiseOverflow(); };
							last = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1001);
						}
						goto LA56_;
						LA58_: ;
						{
							NI TM__MQdRN7fpbG7rPm4JpVVAhA_1002;
							if ((NU)(last) >= (NU)(res ? res->Sup.len : 0)){ raiseIndexError2(last,(res ? res->Sup.len : 0)-1); }
							if (!((NU8)(res->data[last]) == (NU8)(13))) goto LA61_;
							if (nimAddInt(last, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1002)) { raiseOverflow(); };
							last = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1002);
							{
								NIM_BOOL T65_;
								NI TM__MQdRN7fpbG7rPm4JpVVAhA_1003;
								T65_ = (NIM_BOOL)0;
								T65_ = (last < (res ? res->Sup.len : 0));
								if (!(T65_)) goto LA66_;
								if ((NU)(last) >= (NU)(res ? res->Sup.len : 0)){ raiseIndexError2(last,(res ? res->Sup.len : 0)-1); }
								T65_ = ((NU8)(res->data[last]) == (NU8)(10));
								LA66_: ;
								if (!T65_) goto LA67_;
								if (nimAddInt(last, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1003)) { raiseOverflow(); };
								last = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1003);
							}
							LA67_: ;
						}
						goto LA56_;
						LA61_: ;
						LA56_: ;
					}
					LA54_: ;
					T69_ = (NI)0;
					{
						NI TM__MQdRN7fpbG7rPm4JpVVAhA_1004;
						if (!NIM_FALSE) goto LA72_;
						if (nimSubInt(last, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1004)) { raiseOverflow(); };
						T69_ = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1004);
					}
					goto LA70_;
					LA72_: ;
					{
						NI TM__MQdRN7fpbG7rPm4JpVVAhA_1005;
						if (nimSubInt(eolpos, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1005)) { raiseOverflow(); };
						T69_ = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1005);
					}
					LA70_: ;
					x = substr__2yh9cer0ymNRHlOOg8P7IuA(res, first, T69_);
					j = ((NI) 0);
					{
						while (1) {
							NIM_BOOL T77_;
							NI TM__MQdRN7fpbG7rPm4JpVVAhA_1006;
							T77_ = (NIM_BOOL)0;
							T77_ = (j < (x ? x->Sup.len : 0));
							if (!(T77_)) goto LA78_;
							if ((NU)(j) >= (NU)(x ? x->Sup.len : 0)){ raiseIndexError2(j,(x ? x->Sup.len : 0)-1); }
							T77_ = (((NU8)(x->data[j])) == ((NU8)(32)) || ((NU8)(x->data[j])) == ((NU8)(9)));
							LA78_: ;
							if (!T77_) goto LA76;
							if (nimAddInt(j, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1006)) { raiseOverflow(); };
							j = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1006);
						} LA76: ;
					}
					{
						if (!(j < (x ? x->Sup.len : 0))) goto LA81_;
						{
							if ((NU)(j) >= (NU)(x ? x->Sup.len : 0)){ raiseIndexError2(j,(x ? x->Sup.len : 0)-1); }
							if (!(((NU8)(x->data[j])) == ((NU8)(34)) || ((NU8)(x->data[j])) == ((NU8)(58)))) goto LA85_;
							add__yG4AKzsBRS1W4MANDlXQeg(&result, x);
							add__yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
						}
						goto LA83_;
						LA85_: ;
						{
							add__yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1007));
							add__yG4AKzsBRS1W4MANDlXQeg(&result, x);
							add__yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1008));
						}
						LA83_: ;
					}
					LA81_: ;
					{
						if (!(eolpos == last)) goto LA90_;
						goto LA46;
					}
					LA90_: ;
					first = last;
				}
			} LA46: ;
		}
	}
	goto LA39_;
	LA43_: ;
	{
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		result = rope__yShmEg9cffWxI7s5XzEKBow(res);
	}
	LA39_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genAsmStmt__QrTB5DOwbDX9bKAW7PNbuJA_6)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* t) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* s;
	{
		if (!!(((*t).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 89)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_998));
	}
	LA3_: ;
	genLineDir__QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
	s = genAsmOrEmitStmt__53Pwv51Dxuia7o9bQN4K9agw(p, t, NIM_TRUE);
	{
		tyArray__JiWwrsTRC6xqNlGcBthSVA T9_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T10_;
		if (!((*p).prc == NIM_NIL)) goto LA7_;
		if ((*(*(*(*p).module).g).config).cCompiler < 1 || (*(*(*(*p).module).g).config).cCompiler > 15){ raiseIndexError3((*(*(*(*p).module).g).config).cCompiler, 1, 15); }
		nimZeroMem((void*)T9_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
		T9_[0] = s;
		T10_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T10_ = runtimeFormat__9bvKdnhoYI2ta9agQNm3orMA(CC__78I18QZNZFIv9ah7oETc0jg[((*(*(*(*p).module).g).config).cCompiler)- 1].Field17, T9_, 1);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*(*p).module).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], T10_);
	}
	goto LA5_;
	LA7_: ;
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T12_;
		tyArray__JiWwrsTRC6xqNlGcBthSVA T13_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T14_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T15_;
		T12_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T12_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		if ((*(*(*(*p).module).g).config).cCompiler < 1 || (*(*(*(*p).module).g).config).cCompiler > 15){ raiseIndexError3((*(*(*(*p).module).g).config).cCompiler, 1, 15); }
		nimZeroMem((void*)T13_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
		T13_[0] = s;
		T14_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = runtimeFormat__9bvKdnhoYI2ta9agQNm3orMA(CC__78I18QZNZFIv9ah7oETc0jg[((*(*(*(*p).module).g).config).cCompiler)- 1].Field17, T13_, 1);
		T15_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T15_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T14_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T12_, T15_);
	}
	LA5_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, bodyCanRaise__Y9bFh7BmZkh729bS2kZ5kwnQ_2)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32):
	{
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		result = canRaiseDisp__Y9bFh7BmZkh729bS2kZ5kwnQ(p, (*n)._kind_6.sons->data[((NI) 0)]);
		{
			if (!!(result)) goto LA4_;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
				i_2 = ((NI) 1);
				{
					while (1) {
						NI TM__MQdRN7fpbG7rPm4JpVVAhA_1027;
						if (!(i_2 < colontmp_)) goto LA8;
						i = i_2;
						{
							NIM_BOOL T11_;
							if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
							if ((NU)(i) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
							T11_ = (NIM_BOOL)0;
							T11_ = bodyCanRaise__Y9bFh7BmZkh729bS2kZ5kwnQ_2(p, (*n)._kind_6.sons->data[i]);
							if (!T11_) goto LA12_;
							result = NIM_TRUE;
							goto BeforeRet_;
						}
						LA12_: ;
						if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1027)) { raiseOverflow(); };
						i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1027);
					} LA8: ;
				}
			}
		}
		LA4_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 108):
	{
		result = NIM_TRUE;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 81):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 80):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 82):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 83):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159):
	{
		result = NIM_FALSE;
	}
	break;
	default:
	{
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
			i_4 = ((NI) 0);
			{
				while (1) {
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_1028;
					if (!(i_4 < colontmp__2)) goto LA19;
					i_3 = i_4;
					{
						NIM_BOOL T22_;
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if ((NU)(i_3) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_3,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
						T22_ = (NIM_BOOL)0;
						T22_ = bodyCanRaise__Y9bFh7BmZkh729bS2kZ5kwnQ_2(p, (*n)._kind_6.sons->data[i_3]);
						if (!T22_) goto LA23_;
						result = NIM_TRUE;
						goto BeforeRet_;
					}
					LA23_: ;
					if (nimAddInt(i_4, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1028)) { raiseOverflow(); };
					i_4 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1028);
				} LA19: ;
			}
		}
		result = NIM_FALSE;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genTryGoto__re1pwmyeR32ikwnOC3vvzQ_3)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fin;
	NI TM__MQdRN7fpbG7rPm4JpVVAhA_1011;
	NI lab;
	NIM_BOOL hasExcept;
	tyTuple__FxkU4d1VDodDMc9ah6Mbagw T12_;
	NI T13_;
	NI T14_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T45_;
	NimStringDesc* res_3;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T54_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T55_;
	tyTuple__FxkU4d1VDodDMc9ah6Mbagw* T56_;
	NI i;
	tyTuple__FxkU4d1VDodDMc9ah6Mbagw T191_;
	{
		NI T3_;
		NI TM__MQdRN7fpbG7rPm4JpVVAhA_1009;
		NI T6_;
		NI TM__MQdRN7fpbG7rPm4JpVVAhA_1010;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		T3_ = (NI)0;
		T3_ = len__P89cqdlERShb9alU3iC0yj8wast(t);
		if (nimSubInt(T3_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1009)) { raiseOverflow(); };
		if ((NU)((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1009)) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1009),((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
		if (!((*(*t)._kind_6.sons->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1009)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107))) goto LA4_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		T6_ = (NI)0;
		T6_ = len__P89cqdlERShb9alU3iC0yj8wast(t);
		if (nimSubInt(T6_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1010)) { raiseOverflow(); };
		if ((NU)((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1010)) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1010),((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
		fin = (*t)._kind_6.sons->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1010)];
	}
	goto LA1_;
	LA4_: ;
	{
		fin = NIM_NIL;
	}
	LA1_: ;
	if (nimAddInt((*p).labels, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1011)) { raiseOverflow(); };
	if (TM__MQdRN7fpbG7rPm4JpVVAhA_1011 < 0 || TM__MQdRN7fpbG7rPm4JpVVAhA_1011 > 2147483647){ raiseOverflow(); }
	(*p).labels = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1011);
	lab = (*p).labels;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
	hasExcept = ((*(*t)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 87));
	{
		NI TM__MQdRN7fpbG7rPm4JpVVAhA_1012;
		if (!hasExcept) goto LA10_;
		if (nimAddInt((*p).withinTryWithExcept, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1012)) { raiseOverflow(); };
		(*p).withinTryWithExcept = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1012);
	}
	LA10_: ;
	nimZeroMem((void*)(&T12_), sizeof(tyTuple__FxkU4d1VDodDMc9ah6Mbagw));
	T12_.Field0 = fin;
	T12_.Field1 = NIM_FALSE;
	T12_.Field2 = lab;
	asgnRef((void**) (&(*p).nestedTryStmts), (tySequence__KjgUMUjT3LUKOFIK4xt5ug*) incrSeqV3((TGenericSeq*)((*p).nestedTryStmts), (&NTI__KjgUMUjT3LUKOFIK4xt5ug_)));
	T13_ = (*p).nestedTryStmts->Sup.len++;
	asgnRef((void**) (&(*p).nestedTryStmts->data[T13_].Field0), T12_.Field0);
	(*p).nestedTryStmts->data[T13_].Field1 = T12_.Field1;
	(*p).nestedTryStmts->data[T13_].Field2 = T12_.Field2;
	(*p).flags |= ((NU8)1)<<((((tyEnum_TCProcFlag__LgBeaca7tT1nUR7RL1RjPQ) 4)) & 7);
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
	expr__8mAL9ckajemzgfLPfeZVNoQ(p, (*t)._kind_6.sons->data[((NI) 0)], d);
	T14_ = (NI)0;
	{
		NIM_BOOL T17_;
		NI T18_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T22_;
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T31_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T32_;
		T17_ = (NIM_BOOL)0;
		T18_ = (NI)0;
		T18_ = len__P89cqdlERShb9alU3iC0yj8wast(t);
		T17_ = (((NI) 1) < T18_);
		if (!(T17_)) goto LA19_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
		T17_ = ((*(*t)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 87));
		LA19_: ;
		if (!T17_) goto LA20_;
		T22_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T22_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA25_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA25_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 29);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1013));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA29_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA29_: ;
		T31_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T31_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
		T32_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T32_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T31_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T22_, T32_);
		T14_ = startBlockInternal__1ygdb876UM9astcNUXtgUBQ(p);
	}
	goto LA15_;
	LA20_: ;
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T34_;
		NimStringDesc* res_2;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T43_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T44_;
		T34_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T34_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA37_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA37_: ;
		res_2 = rawNewString(((NI) 80));
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_20));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA41_;
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA41_: ;
		T43_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T43_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
		T44_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T44_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T43_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T34_, T44_);
		T14_ = startBlockInternal__1ygdb876UM9astcNUXtgUBQ(p);
	}
	LA15_: ;
	T45_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T45_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA48_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
	}
	LA48_: ;
	res_3 = rawNewString(((NI) 80));
	res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_552));
	cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res_3), ((NI64) (lab)));
	res_3 = resizeString(res_3, 3);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1014));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA52_;
		res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
	}
	LA52_: ;
	T54_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T54_ = rope__yShmEg9cffWxI7s5XzEKBow(res_3);
	T55_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T55_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T54_);
	add__IM4kcMNkkOLJtqdEqSxR8A(T45_, T55_);
	T56_ = (tyTuple__FxkU4d1VDodDMc9ah6Mbagw*)0;
	T56_ = X5BX5D___X6aCqErYyvvzizP8PaBpFQsystem((*p).nestedTryStmts->data, ((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0), ((NI) 1));
	(*T56_).Field1 = NIM_TRUE;
	i = ((NI) 1);
	{
		while (1) {
			NIM_BOOL T59_;
			NI T60_;
			NI TM__MQdRN7fpbG7rPm4JpVVAhA_1015;
			NI nextExcept;
			tyTuple__FxkU4d1VDodDMc9ah6Mbagw* T62_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T168_;
			NimStringDesc* res_9;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T173_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T178_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T179_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T180_;
			NimStringDesc* res_10;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T189_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T190_;
			NI TM__MQdRN7fpbG7rPm4JpVVAhA_1026;
			T59_ = (NIM_BOOL)0;
			T60_ = (NI)0;
			T60_ = len__P89cqdlERShb9alU3iC0yj8wast(t);
			T59_ = (i < T60_);
			if (!(T59_)) goto LA61_;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(i) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
			T59_ = ((*(*t)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 87));
			LA61_: ;
			if (!T59_) goto LA58;
			if (nimAddInt((*p).labels, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1015)) { raiseOverflow(); };
			if (TM__MQdRN7fpbG7rPm4JpVVAhA_1015 < 0 || TM__MQdRN7fpbG7rPm4JpVVAhA_1015 > 2147483647){ raiseOverflow(); }
			(*p).labels = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1015);
			nextExcept = (*p).labels;
			T62_ = (tyTuple__FxkU4d1VDodDMc9ah6Mbagw*)0;
			T62_ = X5BX5D___X6aCqErYyvvzizP8PaBpFQsystem((*p).nestedTryStmts->data, ((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0), ((NI) 1));
			(*T62_).Field2 = nextExcept;
			{
				NIM_BOOL T65_;
				T65_ = (NIM_BOOL)0;
				T65_ = ((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 1));
				if (!(T65_)) goto LA66_;
				T65_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*t).typ);
				LA66_: ;
				if (!T65_) goto LA67_;
				(*d).k = ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0);
			}
			LA67_: ;
			{
				NI T71_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T82_;
				NimStringDesc* res_4;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T91_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T92_;
				NI T93_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T94_;
				NimStringDesc* res_5;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T103_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T104_;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(i) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
				T71_ = (NI)0;
				T71_ = len__P89cqdlERShb9alU3iC0yj8wast((*t)._kind_6.sons->data[i]);
				if (!(T71_ == ((NI) 1))) goto LA72_;
				{
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T78_;
					tyArray__qTjAvTvKF9anytN1At69aJMQ T79_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T80_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T81_;
					if (!(((NI) 1) < i)) goto LA76_;
					T78_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
					T78_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
					nimZeroMem((void*)T79_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
					T80_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T80_ = percent___22ELRKd9bDuNug6qvIihS3A(T79_, 0);
					T81_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T81_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T80_);
					add__IM4kcMNkkOLJtqdEqSxR8A(T78_, T81_);
				}
				LA76_: ;
				T82_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T82_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA85_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA85_: ;
				res_4 = rawNewString(((NI) 80));
				res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_20));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA89_;
					res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA89_: ;
				T91_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T91_ = rope__yShmEg9cffWxI7s5XzEKBow(res_4);
				T92_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T92_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T91_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T82_, T92_);
				T93_ = (NI)0;
				T93_ = startBlockInternal__1ygdb876UM9astcNUXtgUBQ(p);
				T94_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T94_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA97_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA97_: ;
				res_5 = rawNewString(((NI) 80));
				res_5 = resizeString(res_5, 21);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1016));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA101_;
					res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA101_: ;
				T103_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T103_ = rope__yShmEg9cffWxI7s5XzEKBow(res_5);
				T104_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T104_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T103_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T94_, T104_);
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(i) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t)._kind_6.sons->data[i]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[i]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 0)) >= (NU)((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)-1); }
				expr__8mAL9ckajemzgfLPfeZVNoQ(p, (*(*t)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)], d);
			}
			goto LA69_;
			LA72_: ;
			{
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* orExpr;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T144_;
				NimStringDesc* res_7;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T153_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T154_;
				NI T155_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T156_;
				NimStringDesc* res_8;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T165_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T166_;
				NI T167_;
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_1025;
				orExpr = NIM_NIL;
				{
					NI j;
					NI colontmp_;
					NI T107_;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_1017;
					NI i_2;
					j = (NI)0;
					colontmp_ = (NI)0;
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
					T107_ = (NI)0;
					T107_ = len__P89cqdlERShb9alU3iC0yj8wast((*t)._kind_6.sons->data[i]);
					if (nimSubInt(T107_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1017)) { raiseOverflow(); };
					colontmp_ = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1017);
					i_2 = ((NI) 0);
					{
						while (1) {
							tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* checkFor;
							NimStringDesc* memberName;
							NimStringDesc* res_6;
							tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T134_;
							tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T135_;
							tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T136_;
							NI TM__MQdRN7fpbG7rPm4JpVVAhA_1023;
							if (!(i_2 < colontmp_)) goto LA109;
							j = i_2;
							{
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(i) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t)._kind_6.sons->data[i]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[i]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(j) >= (NU)((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(j,((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)-1); }
								if (!!(((*(*(*t)._kind_6.sons->data[i])._kind_6.sons->data[j]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4)))) goto LA112_;
								failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1018));
							}
							LA112_: ;
							{
								if (!!((orExpr == NIM_NIL))) goto LA116_;
								add__yG4AKzsBRS1W4MANDlXQeg(&orExpr, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_353));
							}
							LA116_: ;
							{
								if (!(((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 40))&63U)))!=0)) goto LA120_;
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(i) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t)._kind_6.sons->data[i]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[i]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(j) >= (NU)((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(j,((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)-1); }
								checkFor = genTypeInfo2Name__HPYuz9bvVOGBv0EUX9c74xhg((*p).module, (*(*(*t)._kind_6.sons->data[i])._kind_6.sons->data[j]).typ);
							}
							goto LA118_;
							LA120_: ;
							{
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(i) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t)._kind_6.sons->data[i]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[i]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(j) >= (NU)((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(j,((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)-1); }
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(i) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t)._kind_6.sons->data[i]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[i]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(j) >= (NU)((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(j,((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)-1); }
								checkFor = genTypeInfo__BeEYMOjEPJinzbFpsfTaZg((*p).module, (*(*(*t)._kind_6.sons->data[i])._kind_6.sons->data[j]).typ, (*(*(*t)._kind_6.sons->data[i])._kind_6.sons->data[j]).info);
							}
							LA118_: ;
							{
								NIM_BOOL T125_;
								T125_ = (NIM_BOOL)0;
								T125_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands__VH3ghgQVwLSg3krOAoXigw) 2));
								if (T125_) goto LA126_;
								T125_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 31))&63U)))!=0);
								LA126_: ;
								if (!T125_) goto LA127_;
								memberName = copyString(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1019));
							}
							goto LA123_;
							LA127_: ;
							{
								memberName = copyString(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1020));
							}
							LA123_: ;
							{
								if (!!(!(((*p).module == NIM_NIL)))) goto LA132_;
								failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
							}
							LA132_: ;
							res_6 = rawNewString(((NI) 80));
							T134_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
							T134_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_672));
							cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T134_);
							res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
							T135_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
							T135_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1021));
							cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T135_);
							res_6 = resizeString(res_6, 4);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1022));
							cgFormatValue__GOaK9aDgu4cLOYhocodpf3Q((&res_6), memberName);
							res_6 = resizeString(res_6, 2);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
							cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_6), checkFor);
							res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
							T136_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
							T136_ = rope__yShmEg9cffWxI7s5XzEKBow(res_6);
							add__IM4kcMNkkOLJtqdEqSxR8A(&orExpr, T136_);
							if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1023)) { raiseOverflow(); };
							i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1023);
						} LA109: ;
					}
				}
				{
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T141_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T142_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T143_;
					if (!(((NI) 1) < i)) goto LA139_;
					T141_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
					T141_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
					T142_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T142_ = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1024));
					T143_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T143_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T142_);
					add__IM4kcMNkkOLJtqdEqSxR8A(T141_, T143_);
				}
				LA139_: ;
				T144_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T144_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA147_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA147_: ;
				res_7 = rawNewString(((NI) 80));
				res_7 = resizeString(res_7, 4);
appendString(res_7, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_285));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_7), orExpr);
				res_7 = resizeString(res_7, 3);
appendString(res_7, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_927));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA151_;
					res_7 = resizeString(res_7, 1);
appendString(res_7, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA151_: ;
				T153_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T153_ = rope__yShmEg9cffWxI7s5XzEKBow(res_7);
				T154_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T154_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T153_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T144_, T154_);
				T155_ = (NI)0;
				T155_ = startBlockInternal__1ygdb876UM9astcNUXtgUBQ(p);
				T156_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T156_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA159_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA159_: ;
				res_8 = rawNewString(((NI) 80));
				res_8 = resizeString(res_8, 21);
appendString(res_8, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1016));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA163_;
					res_8 = resizeString(res_8, 1);
appendString(res_8, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA163_: ;
				T165_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T165_ = rope__yShmEg9cffWxI7s5XzEKBow(res_8);
				T166_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T166_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T165_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T156_, T166_);
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(i) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t)._kind_6.sons->data[i]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[i]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(i) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
				T167_ = (NI)0;
				T167_ = len__P89cqdlERShb9alU3iC0yj8wast((*t)._kind_6.sons->data[i]);
				if (nimSubInt(T167_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1025)) { raiseOverflow(); };
				if ((NU)((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1025)) >= (NU)((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)){ raiseIndexError2((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1025),((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)-1); }
				expr__8mAL9ckajemzgfLPfeZVNoQ(p, (*(*t)._kind_6.sons->data[i])._kind_6.sons->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1025)], d);
			}
			LA69_: ;
			T168_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T168_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA171_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA171_: ;
			res_9 = rawNewString(((NI) 80));
			T173_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T173_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_980));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_9), T173_);
			res_9 = resizeString(res_9, 3);
appendString(res_9, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_334));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA176_;
				res_9 = resizeString(res_9, 1);
appendString(res_9, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA176_: ;
			T178_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T178_ = rope__yShmEg9cffWxI7s5XzEKBow(res_9);
			T179_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T179_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T178_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T168_, T179_);
			T180_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T180_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA183_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA183_: ;
			res_10 = rawNewString(((NI) 80));
			res_10 = resizeString(res_10, 2);
appendString(res_10, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_552));
			cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res_10), ((NI64) (nextExcept)));
			res_10 = resizeString(res_10, 3);
appendString(res_10, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1014));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA187_;
				res_10 = resizeString(res_10, 1);
appendString(res_10, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA187_: ;
			T189_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T189_ = rope__yShmEg9cffWxI7s5XzEKBow(res_10);
			T190_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T190_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T189_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T180_, T190_);
			endBlock__0dpuY9coTlraj8JXIe2BzVw(p);
			if (nimAddInt(i, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1026)) { raiseOverflow(); };
			i = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1026);
		} LA58: ;
	}
	nimZeroMem((void*)(&T191_), sizeof(tyTuple__FxkU4d1VDodDMc9ah6Mbagw));
	pop__Y36bTNxSoXinCwCTSTCSTgsystem((&(*p).nestedTryStmts), (&T191_));
	(void)(T191_);
	endBlock__0dpuY9coTlraj8JXIe2BzVw(p);
	{
		NIM_BOOL T194_;
		NI T195_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T199_;
		NimStringDesc* res_11;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T208_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T209_;
		NI T210_;
		T194_ = (NIM_BOOL)0;
		T195_ = (NI)0;
		T195_ = len__P89cqdlERShb9alU3iC0yj8wast(t);
		T194_ = (i < T195_);
		if (!(T194_)) goto LA196_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(i) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
		T194_ = ((*(*t)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107));
		LA196_: ;
		if (!T194_) goto LA197_;
		T199_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T199_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA202_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA202_: ;
		res_11 = rawNewString(((NI) 80));
		res_11 = resizeString(res_11, 1);
appendString(res_11, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_20));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA206_;
			res_11 = resizeString(res_11, 1);
appendString(res_11, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA206_: ;
		T208_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T208_ = rope__yShmEg9cffWxI7s5XzEKBow(res_11);
		T209_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T209_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T208_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T199_, T209_);
		T210_ = (NI)0;
		T210_ = startBlockInternal__1ygdb876UM9astcNUXtgUBQ(p);
		{
			NIM_BOOL T213_;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(i) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t)._kind_6.sons->data[i]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[i]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)-1); }
			T213_ = (NIM_BOOL)0;
			T213_ = bodyCanRaise__Y9bFh7BmZkh729bS2kZ5kwnQ_2(p, (*(*t)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)]);
			if (!!(T213_)) goto LA214_;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(i) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t)._kind_6.sons->data[i]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[i]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)-1); }
			genStmts__QrTB5DOwbDX9bKAW7PNbuJA(p, (*(*t)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)]);
		}
		goto LA211_;
		LA214_: ;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T217_;
			NimStringDesc* res_12;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T226_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T227_;
			NimStringDesc* res_13;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T236_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T237_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T238_;
			NimStringDesc* res_14;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T247_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T248_;
			T217_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T217_ = procSec__kOyJGmZMM2tMgCKSrvUE3g_2cgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 0));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA220_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA220_: ;
			res_12 = rawNewString(((NI) 80));
			res_12 = resizeString(res_12, 21);
appendString(res_12, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1029));
			cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res_12), ((NI64) (lab)));
			res_12 = resizeString(res_12, 2);
appendString(res_12, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_482));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA224_;
				res_12 = resizeString(res_12, 1);
appendString(res_12, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA224_: ;
			T226_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T226_ = rope__yShmEg9cffWxI7s5XzEKBow(res_12);
			add__IM4kcMNkkOLJtqdEqSxR8A(T217_, T226_);
			T227_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T227_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA230_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA230_: ;
			res_13 = rawNewString(((NI) 80));
			res_13 = resizeString(res_13, 12);
appendString(res_13, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1030));
			cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res_13), ((NI64) (lab)));
			res_13 = resizeString(res_13, 35);
appendString(res_13, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1031));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA234_;
				res_13 = resizeString(res_13, 1);
appendString(res_13, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA234_: ;
			T236_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T236_ = rope__yShmEg9cffWxI7s5XzEKBow(res_13);
			T237_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T237_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T236_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T227_, T237_);
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(i) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t)._kind_6.sons->data[i]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[i]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)-1); }
			genStmts__QrTB5DOwbDX9bKAW7PNbuJA(p, (*(*t)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)]);
			T238_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T238_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA241_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA241_: ;
			res_14 = rawNewString(((NI) 80));
			res_14 = resizeString(res_14, 23);
appendString(res_14, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1032));
			cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res_14), ((NI64) (lab)));
			res_14 = resizeString(res_14, 2);
appendString(res_14, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_482));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA245_;
				res_14 = resizeString(res_14, 1);
appendString(res_14, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA245_: ;
			T247_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T247_ = rope__yShmEg9cffWxI7s5XzEKBow(res_14);
			T248_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T248_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T247_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T238_, T248_);
		}
		LA211_: ;
		endBlock__0dpuY9coTlraj8JXIe2BzVw(p);
	}
	LA197_: ;
	{
		if (!!(((*p).prc == NIM_NIL))) goto LA251_;
		raiseExit__0dpuY9coTlraj8JXIe2BzVw_2(p);
	}
	LA251_: ;
	{
		NI TM__MQdRN7fpbG7rPm4JpVVAhA_1033;
		if (!hasExcept) goto LA255_;
		if (nimAddInt((*p).withinTryWithExcept, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1033)) { raiseOverflow(); };
		(*p).withinTryWithExcept = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1033);
	}
	LA255_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genRestoreFrameAfterException__0dpuY9coTlraj8JXIe2BzVw_3)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p) {
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T30_;
		NimStringDesc* res_3;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T35_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T40_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T41_;
		if (!(((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 18))&31U)))!=0)) goto LA3_;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T9_;
			NimStringDesc* res;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T18_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T19_;
			NimStringDesc* res_2;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T24_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T29_;
			if (!!((((*p).flags &(1U<<((NU)(((tyEnum_TCProcFlag__LgBeaca7tT1nUR7RL1RjPQ) 2))&7U)))!=0))) goto LA7_;
			(*p).flags |= ((NU8)1)<<((((tyEnum_TCProcFlag__LgBeaca7tT1nUR7RL1RjPQ) 2)) & 7);
			T9_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T9_ = procSec__kOyJGmZMM2tMgCKSrvUE3g_2cgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 0));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA12_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA12_: ;
			res = rawNewString(((NI) 80));
			res = resizeString(res, 22);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1046));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA16_;
				res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA16_: ;
			T18_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T18_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
			add__IM4kcMNkkOLJtqdEqSxR8A(T9_, T18_);
			T19_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T19_ = procSec__kOyJGmZMM2tMgCKSrvUE3g_2cgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 1));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA22_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA22_: ;
			res_2 = rawNewString(((NI) 80));
			res_2 = resizeString(res_2, 16);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1047));
			T24_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T24_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1048));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T24_);
			res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_334));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA27_;
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA27_: ;
			T29_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T29_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
			add__IM4kcMNkkOLJtqdEqSxR8A(T19_, T29_);
		}
		LA7_: ;
		T30_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T30_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA33_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA33_: ;
		res_3 = rawNewString(((NI) 80));
		T35_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T35_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1049));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T35_);
		res_3 = resizeString(res_3, 15);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1050));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA38_;
			res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA38_: ;
		T40_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T40_ = rope__yShmEg9cffWxI7s5XzEKBow(res_3);
		T41_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T41_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T40_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T30_, T41_);
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genTryCpp__re1pwmyeR32ikwnOC3vvzQ_4)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	NI TM__MQdRN7fpbG7rPm4JpVVAhA_1035;
	NI etmp;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T8_;
	NimStringDesc* res;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T13_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fin;
	tyTuple__FxkU4d1VDodDMc9ah6Mbagw T21_;
	NI T22_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T23_;
	NimStringDesc* res_2;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T32_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T33_;
	NI T34_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T35_;
	NimStringDesc* res_3;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T40_;
	NI TM__MQdRN7fpbG7rPm4JpVVAhA_1044;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T45_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T46_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T47_;
	NimStringDesc* res_4;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T56_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T57_;
	tyTuple__FxkU4d1VDodDMc9ah6Mbagw* T58_;
	NIM_BOOL hasImportedCppExceptions;
	NI i;
	NIM_BOOL hasIf;
	NIM_BOOL hasElse;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T254_;
	NimStringDesc* res_15;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T263_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T264_;
	NIM_BOOL catchAllPresent;
	tyTuple__FxkU4d1VDodDMc9ah6Mbagw T344_;
	includeHeader__G5jzmdnwglHVk5qfDcXonA((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1034));
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*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);
	if (nimAddInt((*p).labels, ((NI) 2), &TM__MQdRN7fpbG7rPm4JpVVAhA_1035)) { raiseOverflow(); };
	if (TM__MQdRN7fpbG7rPm4JpVVAhA_1035 < 0 || TM__MQdRN7fpbG7rPm4JpVVAhA_1035 > 2147483647){ raiseOverflow(); }
	(*p).labels = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1035);
	etmp = (*p).labels;
	T8_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T8_ = procSec__kOyJGmZMM2tMgCKSrvUE3g_2cgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 1));
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA11_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
	}
	LA11_: ;
	res = rawNewString(((NI) 80));
	res = resizeString(res, 21);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1036));
	cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res), ((NI64) (etmp)));
	res = resizeString(res, 12);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1037));
	T13_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T13_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
	add__IM4kcMNkkOLJtqdEqSxR8A(T8_, T13_);
	{
		NI T16_;
		NI TM__MQdRN7fpbG7rPm4JpVVAhA_1038;
		NI T19_;
		NI TM__MQdRN7fpbG7rPm4JpVVAhA_1039;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		T16_ = (NI)0;
		T16_ = len__P89cqdlERShb9alU3iC0yj8wast(t);
		if (nimSubInt(T16_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1038)) { raiseOverflow(); };
		if ((NU)((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1038)) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1038),((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
		if (!((*(*t)._kind_6.sons->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1038)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107))) goto LA17_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		T19_ = (NI)0;
		T19_ = len__P89cqdlERShb9alU3iC0yj8wast(t);
		if (nimSubInt(T19_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1039)) { raiseOverflow(); };
		if ((NU)((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1039)) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1039),((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
		fin = (*t)._kind_6.sons->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1039)];
	}
	goto LA14_;
	LA17_: ;
	{
		fin = NIM_NIL;
	}
	LA14_: ;
	nimZeroMem((void*)(&T21_), sizeof(tyTuple__FxkU4d1VDodDMc9ah6Mbagw));
	T21_.Field0 = fin;
	T21_.Field1 = NIM_FALSE;
	T21_.Field2 = ((NI) 0);
	asgnRef((void**) (&(*p).nestedTryStmts), (tySequence__KjgUMUjT3LUKOFIK4xt5ug*) incrSeqV3((TGenericSeq*)((*p).nestedTryStmts), (&NTI__KjgUMUjT3LUKOFIK4xt5ug_)));
	T22_ = (*p).nestedTryStmts->Sup.len++;
	asgnRef((void**) (&(*p).nestedTryStmts->data[T22_].Field0), T21_.Field0);
	(*p).nestedTryStmts->data[T22_].Field1 = T21_.Field1;
	(*p).nestedTryStmts->data[T22_].Field2 = T21_.Field2;
	T23_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T23_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA26_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
	}
	LA26_: ;
	res_2 = rawNewString(((NI) 80));
	res_2 = resizeString(res_2, 5);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1040));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA30_;
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
	}
	LA30_: ;
	T32_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T32_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
	T33_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T33_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T32_);
	add__IM4kcMNkkOLJtqdEqSxR8A(T23_, T33_);
	T34_ = (NI)0;
	T34_ = startBlockInternal__1ygdb876UM9astcNUXtgUBQ(p);
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
	expr__8mAL9ckajemzgfLPfeZVNoQ(p, (*t)._kind_6.sons->data[((NI) 0)], d);
	endBlock__0dpuY9coTlraj8JXIe2BzVw(p);
	T35_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T35_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA38_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
	}
	LA38_: ;
	res_3 = rawNewString(((NI) 80));
	res_3 = resizeString(res_3, 7);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1041));
	T40_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T40_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1042));
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T40_);
	res_3 = resizeString(res_3, 3);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1043));
	if (nimAddInt(((NI) (etmp)), ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1044)) { raiseOverflow(); };
	cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res_3), ((NI64) ((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1044))));
	res_3 = resizeString(res_3, 4);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1045));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA43_;
		res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
	}
	LA43_: ;
	T45_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T45_ = rope__yShmEg9cffWxI7s5XzEKBow(res_3);
	T46_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T46_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T45_);
	add__IM4kcMNkkOLJtqdEqSxR8A(T35_, T46_);
	genRestoreFrameAfterException__0dpuY9coTlraj8JXIe2BzVw_3(p);
	T47_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T47_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA50_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
	}
	LA50_: ;
	res_4 = rawNewString(((NI) 80));
	res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_146));
	cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res_4), ((NI64) (etmp)));
	res_4 = resizeString(res_4, 29);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1051));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA54_;
		res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
	}
	LA54_: ;
	T56_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T56_ = rope__yShmEg9cffWxI7s5XzEKBow(res_4);
	T57_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T57_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T56_);
	add__IM4kcMNkkOLJtqdEqSxR8A(T47_, T57_);
	T58_ = (tyTuple__FxkU4d1VDodDMc9ah6Mbagw*)0;
	T58_ = X5BX5D___X6aCqErYyvvzizP8PaBpFQsystem((*p).nestedTryStmts->data, ((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0), ((NI) 1));
	(*T58_).Field1 = NIM_TRUE;
	hasImportedCppExceptions = NIM_FALSE;
	i = ((NI) 1);
	hasIf = NIM_FALSE;
	hasElse = NIM_FALSE;
	{
		while (1) {
			NIM_BOOL T61_;
			NI T62_;
			NI TM__MQdRN7fpbG7rPm4JpVVAhA_1059;
			T61_ = (NIM_BOOL)0;
			T62_ = (NI)0;
			T62_ = len__P89cqdlERShb9alU3iC0yj8wast(t);
			T61_ = (i < T62_);
			if (!(T61_)) goto LA63_;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(i) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
			T61_ = ((*(*t)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 87));
			LA63_: ;
			if (!T61_) goto LA60;
			{
				NIM_BOOL T66_;
				T66_ = (NIM_BOOL)0;
				T66_ = ((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 1));
				if (!(T66_)) goto LA67_;
				T66_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*t).typ);
				LA67_: ;
				if (!T66_) goto LA68_;
				(*d).k = ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0);
			}
			LA68_: ;
			{
				NI T72_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T83_;
				NimStringDesc* res_5;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T92_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T93_;
				NI T94_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T95_;
				NimStringDesc* res_6;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T104_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T105_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T106_;
				NimStringDesc* res_7;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T111_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T116_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T117_;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(i) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
				T72_ = (NI)0;
				T72_ = len__P89cqdlERShb9alU3iC0yj8wast((*t)._kind_6.sons->data[i]);
				if (!(T72_ == ((NI) 1))) goto LA73_;
				hasImportedCppExceptions = NIM_TRUE;
				hasElse = NIM_TRUE;
				{
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T79_;
					tyArray__qTjAvTvKF9anytN1At69aJMQ T80_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T81_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T82_;
					if (!hasIf) goto LA77_;
					T79_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
					T79_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
					nimZeroMem((void*)T80_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
					T81_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T81_ = percent___xr7e1yaPtCde5qS79c5DFzg(T80_, 0);
					T82_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T82_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T81_);
					add__IM4kcMNkkOLJtqdEqSxR8A(T79_, T82_);
				}
				LA77_: ;
				T83_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T83_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA86_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA86_: ;
				res_5 = rawNewString(((NI) 80));
				res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_20));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA90_;
					res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA90_: ;
				T92_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T92_ = rope__yShmEg9cffWxI7s5XzEKBow(res_5);
				T93_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T93_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T92_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T83_, T93_);
				T94_ = (NI)0;
				T94_ = startBlockInternal__1ygdb876UM9astcNUXtgUBQ(p);
				T95_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T95_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA98_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA98_: ;
				res_6 = rawNewString(((NI) 80));
				res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_146));
				cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res_6), ((NI64) (etmp)));
				res_6 = resizeString(res_6, 12);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1037));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA102_;
					res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA102_: ;
				T104_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T104_ = rope__yShmEg9cffWxI7s5XzEKBow(res_6);
				T105_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T105_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T104_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T95_, T105_);
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(i) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t)._kind_6.sons->data[i]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[i]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 0)) >= (NU)((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)-1); }
				expr__8mAL9ckajemzgfLPfeZVNoQ(p, (*(*t)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)], d);
				T106_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T106_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA109_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA109_: ;
				res_7 = rawNewString(((NI) 80));
				T111_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T111_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_980));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_7), T111_);
				res_7 = resizeString(res_7, 3);
appendString(res_7, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_334));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA114_;
					res_7 = resizeString(res_7, 1);
appendString(res_7, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA114_: ;
				T116_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T116_ = rope__yShmEg9cffWxI7s5XzEKBow(res_7);
				T117_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T117_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T116_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T106_, T117_);
				endBlock__0dpuY9coTlraj8JXIe2BzVw(p);
			}
			goto LA70_;
			LA73_: ;
			{
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* orExpr;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* exvar;
				orExpr = NIM_NIL;
				exvar = NIM_NIL;
				{
					NI j;
					NI colontmp_;
					NI T120_;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_1052;
					NI i_2;
					j = (NI)0;
					colontmp_ = (NI)0;
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
					T120_ = (NI)0;
					T120_ = len__P89cqdlERShb9alU3iC0yj8wast((*t)._kind_6.sons->data[i]);
					if (nimSubInt(T120_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1052)) { raiseOverflow(); };
					colontmp_ = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1052);
					i_2 = ((NI) 0);
					{
						while (1) {
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* typeNode;
							NI TM__MQdRN7fpbG7rPm4JpVVAhA_1054;
							if (!(i_2 < colontmp_)) goto LA122;
							j = i_2;
							if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
							if ((NU)(i) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
							if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t)._kind_6.sons->data[i]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[i]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
							if ((NU)(j) >= (NU)((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(j,((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)-1); }
							typeNode = (*(*t)._kind_6.sons->data[i])._kind_6.sons->data[j];
							{
								NIM_BOOL T125_;
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(i) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t)._kind_6.sons->data[i]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[i]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(j) >= (NU)((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(j,((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)-1); }
								T125_ = (NIM_BOOL)0;
								T125_ = isInfixAs__CZaoTkWCFI9acor4BmYF3Yw((*(*t)._kind_6.sons->data[i])._kind_6.sons->data[j]);
								if (!T125_) goto LA126_;
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(i) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t)._kind_6.sons->data[i]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[i]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(j) >= (NU)((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(j,((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)-1); }
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*(*t)._kind_6.sons->data[i])._kind_6.sons->data[j]).kind)>>3] &(1U<<((NU)((*(*(*t)._kind_6.sons->data[i])._kind_6.sons->data[j]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(((NI) 1)) >= (NU)((*(*(*t)._kind_6.sons->data[i])._kind_6.sons->data[j])._kind_6.sons ? (*(*(*t)._kind_6.sons->data[i])._kind_6.sons->data[j])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*(*(*t)._kind_6.sons->data[i])._kind_6.sons->data[j])._kind_6.sons ? (*(*(*t)._kind_6.sons->data[i])._kind_6.sons->data[j])._kind_6.sons->Sup.len : 0)-1); }
								typeNode = (*(*(*t)._kind_6.sons->data[i])._kind_6.sons->data[j])._kind_6.sons->data[((NI) 1)];
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(i) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t)._kind_6.sons->data[i]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[i]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(j) >= (NU)((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(j,((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)-1); }
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*(*t)._kind_6.sons->data[i])._kind_6.sons->data[j]).kind)>>3] &(1U<<((NU)((*(*(*t)._kind_6.sons->data[i])._kind_6.sons->data[j]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(((NI) 2)) >= (NU)((*(*(*t)._kind_6.sons->data[i])._kind_6.sons->data[j])._kind_6.sons ? (*(*(*t)._kind_6.sons->data[i])._kind_6.sons->data[j])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*(*(*t)._kind_6.sons->data[i])._kind_6.sons->data[j])._kind_6.sons ? (*(*(*t)._kind_6.sons->data[i])._kind_6.sons->data[j])._kind_6.sons->Sup.len : 0)-1); }
								exvar = (*(*(*t)._kind_6.sons->data[i])._kind_6.sons->data[j])._kind_6.sons->data[((NI) 2)];
							}
							LA126_: ;
							{
								if (!!(((*typeNode).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4)))) goto LA130_;
								failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1053));
							}
							LA130_: ;
							{
								NIM_BOOL T134_;
								T134_ = (NIM_BOOL)0;
								T134_ = isImportedException__dZW9czpRSiiVl9cyT6tyk84A((*typeNode).typ, (*(*(*p).module).g).config);
								if (!T134_) goto LA135_;
								hasImportedCppExceptions = NIM_TRUE;
							}
							goto LA132_;
							LA135_: ;
							{
								tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* checkFor;
								NimStringDesc* memberName;
								NimStringDesc* res_8;
								tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T158_;
								tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T159_;
								tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T160_;
								{
									if (!!((orExpr == NIM_NIL))) goto LA140_;
									add__yG4AKzsBRS1W4MANDlXQeg(&orExpr, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_353));
								}
								LA140_: ;
								{
									if (!(((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 40))&63U)))!=0)) goto LA144_;
									checkFor = genTypeInfo2Name__HPYuz9bvVOGBv0EUX9c74xhg((*p).module, (*typeNode).typ);
								}
								goto LA142_;
								LA144_: ;
								{
									checkFor = genTypeInfo__BeEYMOjEPJinzbFpsfTaZg((*p).module, (*typeNode).typ, (*typeNode).info);
								}
								LA142_: ;
								{
									NIM_BOOL T149_;
									T149_ = (NIM_BOOL)0;
									T149_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands__VH3ghgQVwLSg3krOAoXigw) 2));
									if (T149_) goto LA150_;
									T149_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 31))&63U)))!=0);
									LA150_: ;
									if (!T149_) goto LA151_;
									memberName = copyString(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1019));
								}
								goto LA147_;
								LA151_: ;
								{
									memberName = copyString(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1020));
								}
								LA147_: ;
								{
									if (!!(!(((*p).module == NIM_NIL)))) goto LA156_;
									failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
								}
								LA156_: ;
								res_8 = rawNewString(((NI) 80));
								T158_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
								T158_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_672));
								cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_8), T158_);
								res_8 = resizeString(res_8, 1);
appendString(res_8, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
								T159_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
								T159_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1021));
								cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_8), T159_);
								res_8 = resizeString(res_8, 4);
appendString(res_8, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1022));
								cgFormatValue__GOaK9aDgu4cLOYhocodpf3Q((&res_8), memberName);
								res_8 = resizeString(res_8, 2);
appendString(res_8, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
								cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_8), checkFor);
								res_8 = resizeString(res_8, 1);
appendString(res_8, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
								T160_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
								T160_ = rope__yShmEg9cffWxI7s5XzEKBow(res_8);
								add__IM4kcMNkkOLJtqdEqSxR8A(&orExpr, T160_);
							}
							LA132_: ;
							if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1054)) { raiseOverflow(); };
							i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1054);
						} LA122: ;
					}
				}
				{
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T213_;
					NimStringDesc* res_12;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T222_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T223_;
					NI T224_;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_1058;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T225_;
					NimStringDesc* res_13;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T230_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T235_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T236_;
					if (!!((orExpr == NIM_NIL))) goto LA163_;
					{
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T169_;
						NimStringDesc* res_9;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T178_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T179_;
						NI T180_;
						if (!hasIf) goto LA167_;
						T169_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
						T169_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
						{
							if (!!(!(((*p).module == NIM_NIL)))) goto LA172_;
							failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
						}
						LA172_: ;
						res_9 = rawNewString(((NI) 80));
						res_9 = resizeString(res_9, 9);
appendString(res_9, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1055));
						cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_9), orExpr);
						res_9 = resizeString(res_9, 3);
appendString(res_9, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_927));
						{
							if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA176_;
							res_9 = resizeString(res_9, 1);
appendString(res_9, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
						}
						LA176_: ;
						T178_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T178_ = rope__yShmEg9cffWxI7s5XzEKBow(res_9);
						T179_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T179_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T178_);
						add__IM4kcMNkkOLJtqdEqSxR8A(T169_, T179_);
						T180_ = (NI)0;
						T180_ = startBlockInternal__1ygdb876UM9astcNUXtgUBQ(p);
					}
					goto LA165_;
					LA167_: ;
					{
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T182_;
						NimStringDesc* res_10;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T191_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T192_;
						NI T193_;
						T182_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
						T182_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
						{
							if (!!(!(((*p).module == NIM_NIL)))) goto LA185_;
							failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
						}
						LA185_: ;
						res_10 = rawNewString(((NI) 80));
						res_10 = resizeString(res_10, 4);
appendString(res_10, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_285));
						cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_10), orExpr);
						res_10 = resizeString(res_10, 3);
appendString(res_10, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_927));
						{
							if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA189_;
							res_10 = resizeString(res_10, 1);
appendString(res_10, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
						}
						LA189_: ;
						T191_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T191_ = rope__yShmEg9cffWxI7s5XzEKBow(res_10);
						T192_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T192_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T191_);
						add__IM4kcMNkkOLJtqdEqSxR8A(T182_, T192_);
						T193_ = (NI)0;
						T193_ = startBlockInternal__1ygdb876UM9astcNUXtgUBQ(p);
						hasIf = NIM_TRUE;
					}
					LA165_: ;
					{
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T198_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T199_;
						NimStringDesc* res_11;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T204_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T205_;
						NI TM__MQdRN7fpbG7rPm4JpVVAhA_1057;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T206_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T211_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T212_;
						if (!!((exvar == NIM_NIL))) goto LA196_;
						if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*exvar).kind)>>3] &(1U<<((NU)((*exvar).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
						if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*exvar).kind)>>3] &(1U<<((NU)((*exvar).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
						T198_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T198_ = mangleLocalName__VpV5Cmis02zaNlTmLYJNfQ(p, (*exvar)._kind_4.sym);
						fillLoc__o49bXuxJYpCizOgQ54UViIg((&(*(*exvar)._kind_4.sym).loc), ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 1), exvar, T198_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 2));
						T199_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
						T199_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
						{
							if (!!(!(((*p).module == NIM_NIL)))) goto LA202_;
							failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
						}
						LA202_: ;
						res_11 = rawNewString(((NI) 80));
						if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*exvar).kind)>>3] &(1U<<((NU)((*exvar).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
						T204_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T204_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, (*(*exvar)._kind_4.sym).typ);
						cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_11), T204_);
						res_11 = resizeString(res_11, 1);
appendString(res_11, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_33));
						if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*exvar).kind)>>3] &(1U<<((NU)((*exvar).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
						T205_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T205_ = rdLoc__xidyzuHqIciXbQyEOKahDg((*(*exvar)._kind_4.sym).loc);
						cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_11), T205_);
						res_11 = resizeString(res_11, 4);
appendString(res_11, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1056));
						if (nimAddInt(((NI) (etmp)), ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1057)) { raiseOverflow(); };
						T206_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T206_ = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1057))));
						cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_11), T206_);
						res_11 = resizeString(res_11, 2);
appendString(res_11, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_482));
						{
							if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA209_;
							res_11 = resizeString(res_11, 1);
appendString(res_11, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
						}
						LA209_: ;
						T211_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T211_ = rope__yShmEg9cffWxI7s5XzEKBow(res_11);
						T212_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T212_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T211_);
						add__IM4kcMNkkOLJtqdEqSxR8A(T199_, T212_);
					}
					LA196_: ;
					T213_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
					T213_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
					{
						if (!!(!(((*p).module == NIM_NIL)))) goto LA216_;
						failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
					}
					LA216_: ;
					res_12 = rawNewString(((NI) 80));
					res_12 = resizeString(res_12, 1);
appendString(res_12, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_146));
					cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res_12), ((NI64) (etmp)));
					res_12 = resizeString(res_12, 12);
appendString(res_12, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1037));
					{
						if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA220_;
						res_12 = resizeString(res_12, 1);
appendString(res_12, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
					}
					LA220_: ;
					T222_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T222_ = rope__yShmEg9cffWxI7s5XzEKBow(res_12);
					T223_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T223_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T222_);
					add__IM4kcMNkkOLJtqdEqSxR8A(T213_, T223_);
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t)._kind_6.sons->data[i]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[i]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
					T224_ = (NI)0;
					T224_ = len__P89cqdlERShb9alU3iC0yj8wast((*t)._kind_6.sons->data[i]);
					if (nimSubInt(T224_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1058)) { raiseOverflow(); };
					if ((NU)((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1058)) >= (NU)((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)){ raiseIndexError2((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1058),((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)-1); }
					expr__8mAL9ckajemzgfLPfeZVNoQ(p, (*(*t)._kind_6.sons->data[i])._kind_6.sons->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1058)], d);
					T225_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
					T225_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
					{
						if (!!(!(((*p).module == NIM_NIL)))) goto LA228_;
						failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
					}
					LA228_: ;
					res_13 = rawNewString(((NI) 80));
					T230_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T230_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_980));
					cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_13), T230_);
					res_13 = resizeString(res_13, 3);
appendString(res_13, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_334));
					{
						if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA233_;
						res_13 = resizeString(res_13, 1);
appendString(res_13, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
					}
					LA233_: ;
					T235_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T235_ = rope__yShmEg9cffWxI7s5XzEKBow(res_13);
					T236_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T236_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T235_);
					add__IM4kcMNkkOLJtqdEqSxR8A(T225_, T236_);
					endBlock__0dpuY9coTlraj8JXIe2BzVw(p);
				}
				LA163_: ;
			}
			LA70_: ;
			if (nimAddInt(i, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1059)) { raiseOverflow(); };
			i = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1059);
		} LA60: ;
	}
	{
		NIM_BOOL T239_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T243_;
		NimStringDesc* res_14;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T252_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T253_;
		T239_ = (NIM_BOOL)0;
		T239_ = hasIf;
		if (!(T239_)) goto LA240_;
		T239_ = !(hasElse);
		LA240_: ;
		if (!T239_) goto LA241_;
		T243_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T243_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA246_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA246_: ;
		res_14 = rawNewString(((NI) 80));
		res_14 = resizeString(res_14, 11);
appendString(res_14, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1060));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA250_;
			res_14 = resizeString(res_14, 1);
appendString(res_14, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA250_: ;
		T252_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T252_ = rope__yShmEg9cffWxI7s5XzEKBow(res_14);
		T253_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T253_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T252_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T243_, T253_);
	}
	LA241_: ;
	T254_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T254_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA257_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
	}
	LA257_: ;
	res_15 = rawNewString(((NI) 80));
	res_15 = resizeString(res_15, 1);
appendString(res_15, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_235));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA261_;
		res_15 = resizeString(res_15, 1);
appendString(res_15, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
	}
	LA261_: ;
	T263_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T263_ = rope__yShmEg9cffWxI7s5XzEKBow(res_15);
	T264_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T264_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T263_);
	add__IM4kcMNkkOLJtqdEqSxR8A(T254_, T264_);
	catchAllPresent = NIM_FALSE;
	(*p).flags |= ((NU8)1)<<((((tyEnum_TCProcFlag__LgBeaca7tT1nUR7RL1RjPQ) 3)) & 7);
	{
		if (!hasImportedCppExceptions) goto LA267_;
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(t);
			i_4 = ((NI) 1);
			{
				while (1) {
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_1068;
					if (!(i_4 < colontmp__2)) goto LA271;
					i_3 = i_4;
					{
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if ((NU)(i_3) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_3,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
						if (!!(((*(*t)._kind_6.sons->data[i_3]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 87)))) goto LA274_;
						goto LA269;
					}
					LA274_: ;
					{
						NIM_BOOL T278_;
						T278_ = (NIM_BOOL)0;
						T278_ = ((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 1));
						if (!(T278_)) goto LA279_;
						T278_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*t).typ);
						LA279_: ;
						if (!T278_) goto LA280_;
						(*d).k = ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0);
					}
					LA280_: ;
					{
						NI T284_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T287_;
						NimStringDesc* res_16;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T292_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T293_;
						NI T294_;
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if ((NU)(i_3) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_3,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
						T284_ = (NI)0;
						T284_ = len__P89cqdlERShb9alU3iC0yj8wast((*t)._kind_6.sons->data[i_3]);
						if (!(T284_ == ((NI) 1))) goto LA285_;
						T287_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
						T287_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
						{
							if (!!(!(((*p).module == NIM_NIL)))) goto LA290_;
							failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
						}
						LA290_: ;
						res_16 = rawNewString(((NI) 80));
						res_16 = resizeString(res_16, 13);
appendString(res_16, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1061));
						T292_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T292_ = rope__yShmEg9cffWxI7s5XzEKBow(res_16);
						T293_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T293_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T292_);
						add__IM4kcMNkkOLJtqdEqSxR8A(T287_, T293_);
						T294_ = (NI)0;
						T294_ = startBlockInternal__1ygdb876UM9astcNUXtgUBQ(p);
						genRestoreFrameAfterException__0dpuY9coTlraj8JXIe2BzVw_3(p);
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if ((NU)(i_3) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_3,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t)._kind_6.sons->data[i_3]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[i_3]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if ((NU)(((NI) 0)) >= (NU)((*(*t)._kind_6.sons->data[i_3])._kind_6.sons ? (*(*t)._kind_6.sons->data[i_3])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*t)._kind_6.sons->data[i_3])._kind_6.sons ? (*(*t)._kind_6.sons->data[i_3])._kind_6.sons->Sup.len : 0)-1); }
						expr__8mAL9ckajemzgfLPfeZVNoQ(p, (*(*t)._kind_6.sons->data[i_3])._kind_6.sons->data[((NI) 0)], d);
						endBlock__0dpuY9coTlraj8JXIe2BzVw(p);
						catchAllPresent = NIM_TRUE;
					}
					goto LA282_;
					LA285_: ;
					{
						{
							NI j_2;
							NI colontmp__3;
							NI T297_;
							NI TM__MQdRN7fpbG7rPm4JpVVAhA_1062;
							NI i_5;
							j_2 = (NI)0;
							colontmp__3 = (NI)0;
							if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
							if ((NU)(i_3) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_3,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
							T297_ = (NI)0;
							T297_ = len__P89cqdlERShb9alU3iC0yj8wast((*t)._kind_6.sons->data[i_3]);
							if (nimSubInt(T297_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1062)) { raiseOverflow(); };
							colontmp__3 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1062);
							i_5 = ((NI) 0);
							{
								while (1) {
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* typeNode_2;
									NI TM__MQdRN7fpbG7rPm4JpVVAhA_1067;
									if (!(i_5 < colontmp__3)) goto LA299;
									j_2 = i_5;
									if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
									if ((NU)(i_3) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_3,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
									if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t)._kind_6.sons->data[i_3]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[i_3]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
									if ((NU)(j_2) >= (NU)((*(*t)._kind_6.sons->data[i_3])._kind_6.sons ? (*(*t)._kind_6.sons->data[i_3])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(j_2,((*(*t)._kind_6.sons->data[i_3])._kind_6.sons ? (*(*t)._kind_6.sons->data[i_3])._kind_6.sons->Sup.len : 0)-1); }
									typeNode_2 = (*(*t)._kind_6.sons->data[i_3])._kind_6.sons->data[j_2];
									{
										NIM_BOOL T302_;
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(i_3) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_3,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t)._kind_6.sons->data[i_3]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[i_3]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(j_2) >= (NU)((*(*t)._kind_6.sons->data[i_3])._kind_6.sons ? (*(*t)._kind_6.sons->data[i_3])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(j_2,((*(*t)._kind_6.sons->data[i_3])._kind_6.sons ? (*(*t)._kind_6.sons->data[i_3])._kind_6.sons->Sup.len : 0)-1); }
										T302_ = (NIM_BOOL)0;
										T302_ = isInfixAs__CZaoTkWCFI9acor4BmYF3Yw((*(*t)._kind_6.sons->data[i_3])._kind_6.sons->data[j_2]);
										if (!T302_) goto LA303_;
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(i_3) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_3,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t)._kind_6.sons->data[i_3]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[i_3]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(j_2) >= (NU)((*(*t)._kind_6.sons->data[i_3])._kind_6.sons ? (*(*t)._kind_6.sons->data[i_3])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(j_2,((*(*t)._kind_6.sons->data[i_3])._kind_6.sons ? (*(*t)._kind_6.sons->data[i_3])._kind_6.sons->Sup.len : 0)-1); }
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*(*t)._kind_6.sons->data[i_3])._kind_6.sons->data[j_2]).kind)>>3] &(1U<<((NU)((*(*(*t)._kind_6.sons->data[i_3])._kind_6.sons->data[j_2]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(((NI) 1)) >= (NU)((*(*(*t)._kind_6.sons->data[i_3])._kind_6.sons->data[j_2])._kind_6.sons ? (*(*(*t)._kind_6.sons->data[i_3])._kind_6.sons->data[j_2])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*(*(*t)._kind_6.sons->data[i_3])._kind_6.sons->data[j_2])._kind_6.sons ? (*(*(*t)._kind_6.sons->data[i_3])._kind_6.sons->data[j_2])._kind_6.sons->Sup.len : 0)-1); }
										typeNode_2 = (*(*(*t)._kind_6.sons->data[i_3])._kind_6.sons->data[j_2])._kind_6.sons->data[((NI) 1)];
										{
											NIM_BOOL T307_;
											tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* exvar_2;
											tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T310_;
											tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T311_;
											NimStringDesc* res_17;
											tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T316_;
											tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T317_;
											tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T322_;
											tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T323_;
											NI T324_;
											NI T325_;
											NI TM__MQdRN7fpbG7rPm4JpVVAhA_1064;
											T307_ = (NIM_BOOL)0;
											T307_ = isImportedException__dZW9czpRSiiVl9cyT6tyk84A((*typeNode_2).typ, (*(*(*p).module).g).config);
											if (!T307_) goto LA308_;
											if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
											if ((NU)(i_3) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_3,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
											if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t)._kind_6.sons->data[i_3]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[i_3]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
											if ((NU)(j_2) >= (NU)((*(*t)._kind_6.sons->data[i_3])._kind_6.sons ? (*(*t)._kind_6.sons->data[i_3])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(j_2,((*(*t)._kind_6.sons->data[i_3])._kind_6.sons ? (*(*t)._kind_6.sons->data[i_3])._kind_6.sons->Sup.len : 0)-1); }
											if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*(*t)._kind_6.sons->data[i_3])._kind_6.sons->data[j_2]).kind)>>3] &(1U<<((NU)((*(*(*t)._kind_6.sons->data[i_3])._kind_6.sons->data[j_2]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
											if ((NU)(((NI) 2)) >= (NU)((*(*(*t)._kind_6.sons->data[i_3])._kind_6.sons->data[j_2])._kind_6.sons ? (*(*(*t)._kind_6.sons->data[i_3])._kind_6.sons->data[j_2])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*(*(*t)._kind_6.sons->data[i_3])._kind_6.sons->data[j_2])._kind_6.sons ? (*(*(*t)._kind_6.sons->data[i_3])._kind_6.sons->data[j_2])._kind_6.sons->Sup.len : 0)-1); }
											exvar_2 = (*(*(*t)._kind_6.sons->data[i_3])._kind_6.sons->data[j_2])._kind_6.sons->data[((NI) 2)];
											if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*exvar_2).kind)>>3] &(1U<<((NU)((*exvar_2).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
											if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*exvar_2).kind)>>3] &(1U<<((NU)((*exvar_2).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
											T310_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
											T310_ = mangleLocalName__VpV5Cmis02zaNlTmLYJNfQ(p, (*exvar_2)._kind_4.sym);
											fillLoc__o49bXuxJYpCizOgQ54UViIg((&(*(*exvar_2)._kind_4.sym).loc), ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 1), exvar_2, T310_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 2));
											T311_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
											T311_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
											{
												if (!!(!(((*p).module == NIM_NIL)))) goto LA314_;
												failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
											}
											LA314_: ;
											res_17 = rawNewString(((NI) 80));
											res_17 = resizeString(res_17, 7);
appendString(res_17, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1041));
											T316_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
											T316_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, (*typeNode_2).typ);
											cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_17), T316_);
											res_17 = resizeString(res_17, 2);
appendString(res_17, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1063));
											if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*exvar_2).kind)>>3] &(1U<<((NU)((*exvar_2).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
											T317_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
											T317_ = rdLoc__xidyzuHqIciXbQyEOKahDg((*(*exvar_2)._kind_4.sym).loc);
											cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_17), T317_);
											res_17 = resizeString(res_17, 3);
appendString(res_17, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_927));
											{
												if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA320_;
												res_17 = resizeString(res_17, 1);
appendString(res_17, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
											}
											LA320_: ;
											T322_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
											T322_ = rope__yShmEg9cffWxI7s5XzEKBow(res_17);
											T323_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
											T323_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T322_);
											add__IM4kcMNkkOLJtqdEqSxR8A(T311_, T323_);
											T324_ = (NI)0;
											T324_ = startBlockInternal__1ygdb876UM9astcNUXtgUBQ(p);
											genRestoreFrameAfterException__0dpuY9coTlraj8JXIe2BzVw_3(p);
											if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
											if ((NU)(i_3) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_3,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
											if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t)._kind_6.sons->data[i_3]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[i_3]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
											if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
											if ((NU)(i_3) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_3,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
											T325_ = (NI)0;
											T325_ = len__P89cqdlERShb9alU3iC0yj8wast((*t)._kind_6.sons->data[i_3]);
											if (nimSubInt(T325_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1064)) { raiseOverflow(); };
											if ((NU)((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1064)) >= (NU)((*(*t)._kind_6.sons->data[i_3])._kind_6.sons ? (*(*t)._kind_6.sons->data[i_3])._kind_6.sons->Sup.len : 0)){ raiseIndexError2((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1064),((*(*t)._kind_6.sons->data[i_3])._kind_6.sons ? (*(*t)._kind_6.sons->data[i_3])._kind_6.sons->Sup.len : 0)-1); }
											expr__8mAL9ckajemzgfLPfeZVNoQ(p, (*(*t)._kind_6.sons->data[i_3])._kind_6.sons->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1064)], d);
											endBlock__0dpuY9coTlraj8JXIe2BzVw(p);
										}
										LA308_: ;
									}
									goto LA300_;
									LA303_: ;
									{
										NIM_BOOL T327_;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T330_;
										NimStringDesc* res_18;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T335_;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T340_;
										tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T341_;
										NI T342_;
										NI T343_;
										NI TM__MQdRN7fpbG7rPm4JpVVAhA_1066;
										T327_ = (NIM_BOOL)0;
										T327_ = isImportedException__dZW9czpRSiiVl9cyT6tyk84A((*typeNode_2).typ, (*(*(*p).module).g).config);
										if (!T327_) goto LA328_;
										T330_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
										T330_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
										{
											if (!!(!(((*p).module == NIM_NIL)))) goto LA333_;
											failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
										}
										LA333_: ;
										res_18 = rawNewString(((NI) 80));
										res_18 = resizeString(res_18, 7);
appendString(res_18, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1041));
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(i_3) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_3,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t)._kind_6.sons->data[i_3]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[i_3]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(j_2) >= (NU)((*(*t)._kind_6.sons->data[i_3])._kind_6.sons ? (*(*t)._kind_6.sons->data[i_3])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(j_2,((*(*t)._kind_6.sons->data[i_3])._kind_6.sons ? (*(*t)._kind_6.sons->data[i_3])._kind_6.sons->Sup.len : 0)-1); }
										T335_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T335_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA((*p).module, (*(*(*t)._kind_6.sons->data[i_3])._kind_6.sons->data[j_2]).typ);
										cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_18), T335_);
										res_18 = resizeString(res_18, 4);
appendString(res_18, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1065));
										{
											if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA338_;
											res_18 = resizeString(res_18, 1);
appendString(res_18, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
										}
										LA338_: ;
										T340_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T340_ = rope__yShmEg9cffWxI7s5XzEKBow(res_18);
										T341_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
										T341_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T340_);
										add__IM4kcMNkkOLJtqdEqSxR8A(T330_, T341_);
										T342_ = (NI)0;
										T342_ = startBlockInternal__1ygdb876UM9astcNUXtgUBQ(p);
										genRestoreFrameAfterException__0dpuY9coTlraj8JXIe2BzVw_3(p);
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(i_3) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_3,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t)._kind_6.sons->data[i_3]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[i_3]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
										if ((NU)(i_3) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_3,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
										T343_ = (NI)0;
										T343_ = len__P89cqdlERShb9alU3iC0yj8wast((*t)._kind_6.sons->data[i_3]);
										if (nimSubInt(T343_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1066)) { raiseOverflow(); };
										if ((NU)((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1066)) >= (NU)((*(*t)._kind_6.sons->data[i_3])._kind_6.sons ? (*(*t)._kind_6.sons->data[i_3])._kind_6.sons->Sup.len : 0)){ raiseIndexError2((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1066),((*(*t)._kind_6.sons->data[i_3])._kind_6.sons ? (*(*t)._kind_6.sons->data[i_3])._kind_6.sons->Sup.len : 0)-1); }
										expr__8mAL9ckajemzgfLPfeZVNoQ(p, (*(*t)._kind_6.sons->data[i_3])._kind_6.sons->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1066)], d);
										endBlock__0dpuY9coTlraj8JXIe2BzVw(p);
									}
									goto LA300_;
									LA328_: ;
									LA300_: ;
									if (nimAddInt(i_5, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1067)) { raiseOverflow(); };
									i_5 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1067);
								} LA299: ;
							}
						}
					}
					LA282_: ;
					if (nimAddInt(i_4, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1068)) { raiseOverflow(); };
					i_4 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1068);
				} LA271: ;
			}
		} LA269: ;
	}
	LA267_: ;
	(*p).flags &= ~(((NU8)1) << ((((tyEnum_TCProcFlag__LgBeaca7tT1nUR7RL1RjPQ) 3)) & 7));
	nimZeroMem((void*)(&T344_), sizeof(tyTuple__FxkU4d1VDodDMc9ah6Mbagw));
	pop__Y36bTNxSoXinCwCTSTCSTgsystem((&(*p).nestedTryStmts), (&T344_));
	(void)(T344_);
	{
		NIM_BOOL T347_;
		NI T348_;
		NI T350_;
		NI TM__MQdRN7fpbG7rPm4JpVVAhA_1069;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T376_;
		NimStringDesc* res_21;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T385_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T386_;
		NI T387_;
		NI T388_;
		NI TM__MQdRN7fpbG7rPm4JpVVAhA_1070;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T389_;
		NimStringDesc* res_22;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T398_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T399_;
		T347_ = (NIM_BOOL)0;
		T348_ = (NI)0;
		T348_ = len__P89cqdlERShb9alU3iC0yj8wast(t);
		T347_ = (((NI) 0) < T348_);
		if (!(T347_)) goto LA349_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		T350_ = (NI)0;
		T350_ = len__P89cqdlERShb9alU3iC0yj8wast(t);
		if (nimSubInt(T350_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1069)) { raiseOverflow(); };
		if ((NU)((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1069)) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1069),((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
		T347_ = ((*(*t)._kind_6.sons->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1069)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107));
		LA349_: ;
		if (!T347_) goto LA351_;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T357_;
			NimStringDesc* res_19;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T362_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T363_;
			NI T364_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T365_;
			NimStringDesc* res_20;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T374_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T375_;
			if (!!(catchAllPresent)) goto LA355_;
			T357_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T357_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA360_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA360_: ;
			res_19 = rawNewString(((NI) 80));
			res_19 = resizeString(res_19, 13);
appendString(res_19, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1061));
			T362_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T362_ = rope__yShmEg9cffWxI7s5XzEKBow(res_19);
			T363_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T363_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T362_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T357_, T363_);
			T364_ = (NI)0;
			T364_ = startBlockInternal__1ygdb876UM9astcNUXtgUBQ(p);
			genRestoreFrameAfterException__0dpuY9coTlraj8JXIe2BzVw_3(p);
			T365_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T365_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA368_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA368_: ;
			res_20 = rawNewString(((NI) 80));
			res_20 = resizeString(res_20, 1);
appendString(res_20, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_146));
			cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res_20), ((NI64) (etmp)));
			res_20 = resizeString(res_20, 29);
appendString(res_20, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1051));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA372_;
				res_20 = resizeString(res_20, 1);
appendString(res_20, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA372_: ;
			T374_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T374_ = rope__yShmEg9cffWxI7s5XzEKBow(res_20);
			T375_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T375_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T374_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T365_, T375_);
			endBlock__0dpuY9coTlraj8JXIe2BzVw(p);
		}
		LA355_: ;
		T376_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T376_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA379_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA379_: ;
		res_21 = rawNewString(((NI) 80));
		res_21 = resizeString(res_21, 1);
appendString(res_21, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_20));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA383_;
			res_21 = resizeString(res_21, 1);
appendString(res_21, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA383_: ;
		T385_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T385_ = rope__yShmEg9cffWxI7s5XzEKBow(res_21);
		T386_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T386_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T385_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T376_, T386_);
		T387_ = (NI)0;
		T387_ = startBlockInternal__1ygdb876UM9astcNUXtgUBQ(p);
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		T388_ = (NI)0;
		T388_ = len__P89cqdlERShb9alU3iC0yj8wast(t);
		if (nimSubInt(T388_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1070)) { raiseOverflow(); };
		if ((NU)((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1070)) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1070),((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t)._kind_6.sons->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1070)]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1070)]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*(*t)._kind_6.sons->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1070)])._kind_6.sons ? (*(*t)._kind_6.sons->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1070)])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*t)._kind_6.sons->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1070)])._kind_6.sons ? (*(*t)._kind_6.sons->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1070)])._kind_6.sons->Sup.len : 0)-1); }
		genStmts__QrTB5DOwbDX9bKAW7PNbuJA(p, (*(*t)._kind_6.sons->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1070)])._kind_6.sons->data[((NI) 0)]);
		T389_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T389_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA392_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA392_: ;
		res_22 = rawNewString(((NI) 80));
		res_22 = resizeString(res_22, 5);
appendString(res_22, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1071));
		cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res_22), ((NI64) (etmp)));
		res_22 = resizeString(res_22, 27);
appendString(res_22, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1072));
		cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res_22), ((NI64) (etmp)));
		res_22 = resizeString(res_22, 3);
appendString(res_22, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1073));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA396_;
			res_22 = resizeString(res_22, 1);
appendString(res_22, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA396_: ;
		T398_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T398_ = rope__yShmEg9cffWxI7s5XzEKBow(res_22);
		T399_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T399_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T398_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T389_, T399_);
		endBlock__0dpuY9coTlraj8JXIe2BzVw(p);
	}
	LA351_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genTrySetjmp__re1pwmyeR32ikwnOC3vvzQ_5)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	NIM_BOOL quirkyExceptions;
	NIM_BOOL T8_;
	NIM_BOOL T10_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T17_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* safePoint;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fin;
	tyTuple__FxkU4d1VDodDMc9ah6Mbagw T123_;
	NI T124_;
	tyTuple__FxkU4d1VDodDMc9ah6Mbagw* T197_;
	NI i;
	tyTuple__FxkU4d1VDodDMc9ah6Mbagw T340_;
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*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_ = (NIM_BOOL)0;
	T8_ = ((*(*(*(*p).module).g).config).exc == ((tyEnum_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ) 4));
	if (T8_) goto LA9_;
	T10_ = (NIM_BOOL)0;
	T10_ = ((*t).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 154));
	if (!(T10_)) goto LA11_;
	T10_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 15))&63U)))!=0);
	LA11_: ;
	T8_ = T10_;
	LA9_: ;
	quirkyExceptions = T8_;
	{
		if (!!(quirkyExceptions)) goto LA14_;
		includeHeader__G5jzmdnwglHVk5qfDcXonA((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1074));
	}
	goto LA12_;
	LA14_: ;
	{
		(*p).flags |= ((NU8)1)<<((((tyEnum_TCProcFlag__LgBeaca7tT1nUR7RL1RjPQ) 3)) & 7);
	}
	LA12_: ;
	genLineDir__QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
	T17_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T17_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1042));
	(void)(T17_);
	safePoint = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T22_;
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T27_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T32_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T33_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T34_;
		NimStringDesc* res_2;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T39_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T44_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T45_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T104_;
		NimStringDesc* res_7;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T113_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T114_;
		NI T115_;
		if (!!(quirkyExceptions)) goto LA20_;
		safePoint = getTempName__ao6gUnuVfQLtZ89c4kaIKfg((*p).module);
		T22_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T22_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 0));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA25_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA25_: ;
		res = rawNewString(((NI) 80));
		T27_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T27_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1075));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T27_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_33));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), safePoint);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_104));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA30_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA30_: ;
		T32_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T32_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
		T33_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T33_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T32_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T22_, T33_);
		T34_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T34_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA37_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA37_: ;
		res_2 = rawNewString(((NI) 80));
		T39_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T39_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1076));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T39_);
		res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_112));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), safePoint);
		res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA42_;
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA42_: ;
		T44_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T44_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
		T45_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T45_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T44_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T34_, T45_);
		{
			NIM_BOOL T48_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T51_;
			NimStringDesc* res_3;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T60_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T61_;
			T48_ = (NIM_BOOL)0;
			T48_ = isDefined__jkXTnxDf8MX1Pmks3s0XxA((*(*(*p).module).g).config, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1077));
			if (!T48_) goto LA49_;
			T51_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T51_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA54_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA54_: ;
			res_3 = rawNewString(((NI) 80));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), safePoint);
			res_3 = resizeString(res_3, 17);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1078));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), safePoint);
			res_3 = resizeString(res_3, 10);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1079));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA58_;
				res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA58_: ;
			T60_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T60_ = rope__yShmEg9cffWxI7s5XzEKBow(res_3);
			T61_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T61_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T60_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T51_, T61_);
		}
		goto LA46_;
		LA49_: ;
		{
			NIM_BOOL T63_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T66_;
			NimStringDesc* res_4;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T75_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T76_;
			T63_ = (NIM_BOOL)0;
			T63_ = isDefined__jkXTnxDf8MX1Pmks3s0XxA((*(*(*p).module).g).config, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1080));
			if (!T63_) goto LA64_;
			T66_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T66_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA69_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA69_: ;
			res_4 = rawNewString(((NI) 80));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), safePoint);
			res_4 = resizeString(res_4, 20);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1081));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), safePoint);
			res_4 = resizeString(res_4, 13);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1082));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA73_;
				res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA73_: ;
			T75_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T75_ = rope__yShmEg9cffWxI7s5XzEKBow(res_4);
			T76_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T76_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T75_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T66_, T76_);
		}
		goto LA46_;
		LA64_: ;
		{
			NIM_BOOL T78_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T81_;
			NimStringDesc* res_5;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T90_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T91_;
			T78_ = (NIM_BOOL)0;
			T78_ = isDefined__jkXTnxDf8MX1Pmks3s0XxA((*(*(*p).module).g).config, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1083));
			if (!T78_) goto LA79_;
			T81_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T81_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA84_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA84_: ;
			res_5 = rawNewString(((NI) 80));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), safePoint);
			res_5 = resizeString(res_5, 18);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1084));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), safePoint);
			res_5 = resizeString(res_5, 10);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1079));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA88_;
				res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA88_: ;
			T90_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T90_ = rope__yShmEg9cffWxI7s5XzEKBow(res_5);
			T91_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T91_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T90_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T81_, T91_);
		}
		goto LA46_;
		LA79_: ;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T93_;
			NimStringDesc* res_6;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T102_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T103_;
			T93_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T93_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA96_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA96_: ;
			res_6 = rawNewString(((NI) 80));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_6), safePoint);
			res_6 = resizeString(res_6, 17);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1078));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_6), safePoint);
			res_6 = resizeString(res_6, 10);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1079));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA100_;
				res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA100_: ;
			T102_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T102_ = rope__yShmEg9cffWxI7s5XzEKBow(res_6);
			T103_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T103_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T102_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T93_, T103_);
		}
		LA46_: ;
		T104_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T104_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA107_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA107_: ;
		res_7 = rawNewString(((NI) 80));
		res_7 = resizeString(res_7, 4);
appendString(res_7, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_285));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_7), safePoint);
		res_7 = resizeString(res_7, 15);
appendString(res_7, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1085));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA111_;
			res_7 = resizeString(res_7, 1);
appendString(res_7, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA111_: ;
		T113_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T113_ = rope__yShmEg9cffWxI7s5XzEKBow(res_7);
		T114_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T114_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T113_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T104_, T114_);
		T115_ = (NI)0;
		T115_ = startBlockInternal__1ygdb876UM9astcNUXtgUBQ(p);
	}
	LA20_: ;
	{
		NI T118_;
		NI TM__MQdRN7fpbG7rPm4JpVVAhA_1086;
		NI T121_;
		NI TM__MQdRN7fpbG7rPm4JpVVAhA_1087;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		T118_ = (NI)0;
		T118_ = len__P89cqdlERShb9alU3iC0yj8wast(t);
		if (nimSubInt(T118_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1086)) { raiseOverflow(); };
		if ((NU)((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1086)) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1086),((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
		if (!((*(*t)._kind_6.sons->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1086)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107))) goto LA119_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		T121_ = (NI)0;
		T121_ = len__P89cqdlERShb9alU3iC0yj8wast(t);
		if (nimSubInt(T121_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1087)) { raiseOverflow(); };
		if ((NU)((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1087)) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1087),((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
		fin = (*t)._kind_6.sons->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1087)];
	}
	goto LA116_;
	LA119_: ;
	{
		fin = NIM_NIL;
	}
	LA116_: ;
	nimZeroMem((void*)(&T123_), sizeof(tyTuple__FxkU4d1VDodDMc9ah6Mbagw));
	T123_.Field0 = fin;
	T123_.Field1 = quirkyExceptions;
	T123_.Field2 = ((NI) 0);
	asgnRef((void**) (&(*p).nestedTryStmts), (tySequence__KjgUMUjT3LUKOFIK4xt5ug*) incrSeqV3((TGenericSeq*)((*p).nestedTryStmts), (&NTI__KjgUMUjT3LUKOFIK4xt5ug_)));
	T124_ = (*p).nestedTryStmts->Sup.len++;
	asgnRef((void**) (&(*p).nestedTryStmts->data[T124_].Field0), T123_.Field0);
	(*p).nestedTryStmts->data[T124_].Field1 = T123_.Field1;
	(*p).nestedTryStmts->data[T124_].Field2 = T123_.Field2;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
	expr__8mAL9ckajemzgfLPfeZVNoQ(p, (*t)._kind_6.sons->data[((NI) 0)], d);
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T129_;
		NimStringDesc* res_8;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T134_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T139_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T140_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T141_;
		NimStringDesc* res_9;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T150_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T151_;
		NI T152_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T153_;
		NimStringDesc* res_10;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T158_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T163_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T164_;
		if (!!(quirkyExceptions)) goto LA127_;
		T129_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T129_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA132_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA132_: ;
		res_8 = rawNewString(((NI) 80));
		T134_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T134_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_975));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_8), T134_);
		res_8 = resizeString(res_8, 3);
appendString(res_8, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_334));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA137_;
			res_8 = resizeString(res_8, 1);
appendString(res_8, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA137_: ;
		T139_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T139_ = rope__yShmEg9cffWxI7s5XzEKBow(res_8);
		T140_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T140_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T139_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T129_, T140_);
		endBlock__0dpuY9coTlraj8JXIe2BzVw(p);
		T141_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T141_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA144_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA144_: ;
		res_9 = rawNewString(((NI) 80));
		res_9 = resizeString(res_9, 6);
appendString(res_9, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1088));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA148_;
			res_9 = resizeString(res_9, 1);
appendString(res_9, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA148_: ;
		T150_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T150_ = rope__yShmEg9cffWxI7s5XzEKBow(res_9);
		T151_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T151_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T150_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T141_, T151_);
		T152_ = (NI)0;
		T152_ = startBlockInternal__1ygdb876UM9astcNUXtgUBQ(p);
		T153_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T153_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA156_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA156_: ;
		res_10 = rawNewString(((NI) 80));
		T158_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T158_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_975));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_10), T158_);
		res_10 = resizeString(res_10, 3);
appendString(res_10, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_334));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA161_;
			res_10 = resizeString(res_10, 1);
appendString(res_10, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA161_: ;
		T163_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T163_ = rope__yShmEg9cffWxI7s5XzEKBow(res_10);
		T164_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T164_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T163_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T153_, T164_);
		genRestoreFrameAfterException__0dpuY9coTlraj8JXIe2BzVw_3(p);
	}
	goto LA125_;
	LA127_: ;
	{
		NIM_BOOL T166_;
		NI T167_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T171_;
		NimStringDesc* res_11;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T176_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T181_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T182_;
		NI T183_;
		T166_ = (NIM_BOOL)0;
		T167_ = (NI)0;
		T167_ = len__P89cqdlERShb9alU3iC0yj8wast(t);
		T166_ = (((NI) 1) < T167_);
		if (!(T166_)) goto LA168_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
		T166_ = ((*(*t)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 87));
		LA168_: ;
		if (!T166_) goto LA169_;
		T171_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T171_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA174_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA174_: ;
		res_11 = rawNewString(((NI) 80));
		res_11 = resizeString(res_11, 4);
appendString(res_11, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_285));
		T176_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T176_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1021));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_11), T176_);
		res_11 = resizeString(res_11, 5);
appendString(res_11, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1089));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA179_;
			res_11 = resizeString(res_11, 1);
appendString(res_11, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA179_: ;
		T181_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T181_ = rope__yShmEg9cffWxI7s5XzEKBow(res_11);
		T182_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T182_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T181_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T171_, T182_);
		T183_ = (NI)0;
		T183_ = startBlockInternal__1ygdb876UM9astcNUXtgUBQ(p);
	}
	goto LA125_;
	LA169_: ;
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T185_;
		NimStringDesc* res_12;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T194_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T195_;
		NI T196_;
		T185_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T185_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA188_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA188_: ;
		res_12 = rawNewString(((NI) 80));
		res_12 = resizeString(res_12, 1);
appendString(res_12, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_20));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA192_;
			res_12 = resizeString(res_12, 1);
appendString(res_12, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA192_: ;
		T194_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T194_ = rope__yShmEg9cffWxI7s5XzEKBow(res_12);
		T195_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T195_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T194_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T185_, T195_);
		T196_ = (NI)0;
		T196_ = startBlockInternal__1ygdb876UM9astcNUXtgUBQ(p);
	}
	LA125_: ;
	T197_ = (tyTuple__FxkU4d1VDodDMc9ah6Mbagw*)0;
	T197_ = X5BX5D___X6aCqErYyvvzizP8PaBpFQsystem((*p).nestedTryStmts->data, ((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0), ((NI) 1));
	(*T197_).Field1 = NIM_TRUE;
	i = ((NI) 1);
	{
		while (1) {
			NIM_BOOL T200_;
			NI T201_;
			NI TM__MQdRN7fpbG7rPm4JpVVAhA_1095;
			T200_ = (NIM_BOOL)0;
			T201_ = (NI)0;
			T201_ = len__P89cqdlERShb9alU3iC0yj8wast(t);
			T200_ = (i < T201_);
			if (!(T200_)) goto LA202_;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(i) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
			T200_ = ((*(*t)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 87));
			LA202_: ;
			if (!T200_) goto LA199;
			{
				NIM_BOOL T205_;
				T205_ = (NIM_BOOL)0;
				T205_ = ((*d).k == ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 1));
				if (!(T205_)) goto LA206_;
				T205_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*t).typ);
				LA206_: ;
				if (!T205_) goto LA207_;
				(*d).k = ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 0);
			}
			LA207_: ;
			{
				NI T211_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T222_;
				NimStringDesc* res_13;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T231_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T232_;
				NI T233_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T249_;
				NimStringDesc* res_15;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T254_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T259_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T260_;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(i) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
				T211_ = (NI)0;
				T211_ = len__P89cqdlERShb9alU3iC0yj8wast((*t)._kind_6.sons->data[i]);
				if (!(T211_ == ((NI) 1))) goto LA212_;
				{
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T218_;
					tyArray__qTjAvTvKF9anytN1At69aJMQ T219_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T220_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T221_;
					if (!(((NI) 1) < i)) goto LA216_;
					T218_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
					T218_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
					nimZeroMem((void*)T219_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
					T220_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T220_ = percent___22ELRKd9bDuNug6qvIihS3A(T219_, 0);
					T221_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T221_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T220_);
					add__IM4kcMNkkOLJtqdEqSxR8A(T218_, T221_);
				}
				LA216_: ;
				T222_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T222_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA225_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA225_: ;
				res_13 = rawNewString(((NI) 80));
				res_13 = resizeString(res_13, 1);
appendString(res_13, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_20));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA229_;
					res_13 = resizeString(res_13, 1);
appendString(res_13, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA229_: ;
				T231_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T231_ = rope__yShmEg9cffWxI7s5XzEKBow(res_13);
				T232_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T232_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T231_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T222_, T232_);
				T233_ = (NI)0;
				T233_ = startBlockInternal__1ygdb876UM9astcNUXtgUBQ(p);
				{
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T238_;
					NimStringDesc* res_14;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T247_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T248_;
					if (!!(quirkyExceptions)) goto LA236_;
					T238_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
					T238_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
					{
						if (!!(!(((*p).module == NIM_NIL)))) goto LA241_;
						failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
					}
					LA241_: ;
					res_14 = rawNewString(((NI) 80));
					cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_14), safePoint);
					res_14 = resizeString(res_14, 12);
appendString(res_14, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1090));
					{
						if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA245_;
						res_14 = resizeString(res_14, 1);
appendString(res_14, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
					}
					LA245_: ;
					T247_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T247_ = rope__yShmEg9cffWxI7s5XzEKBow(res_14);
					T248_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T248_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T247_);
					add__IM4kcMNkkOLJtqdEqSxR8A(T238_, T248_);
				}
				LA236_: ;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(i) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t)._kind_6.sons->data[i]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[i]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(((NI) 0)) >= (NU)((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)-1); }
				expr__8mAL9ckajemzgfLPfeZVNoQ(p, (*(*t)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)], d);
				T249_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T249_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA252_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA252_: ;
				res_15 = rawNewString(((NI) 80));
				T254_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T254_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_980));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_15), T254_);
				res_15 = resizeString(res_15, 3);
appendString(res_15, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_334));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA257_;
					res_15 = resizeString(res_15, 1);
appendString(res_15, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA257_: ;
				T259_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T259_ = rope__yShmEg9cffWxI7s5XzEKBow(res_15);
				T260_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T260_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T259_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T249_, T260_);
				endBlock__0dpuY9coTlraj8JXIe2BzVw(p);
			}
			goto LA209_;
			LA212_: ;
			{
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* orExpr;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T300_;
				NimStringDesc* res_17;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T309_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T310_;
				NI T311_;
				NI T327_;
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_1094;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T328_;
				NimStringDesc* res_19;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T333_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T338_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T339_;
				orExpr = NIM_NIL;
				{
					NI j;
					NI colontmp_;
					NI T263_;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_1091;
					NI i_2;
					j = (NI)0;
					colontmp_ = (NI)0;
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(i) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
					T263_ = (NI)0;
					T263_ = len__P89cqdlERShb9alU3iC0yj8wast((*t)._kind_6.sons->data[i]);
					if (nimSubInt(T263_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1091)) { raiseOverflow(); };
					colontmp_ = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1091);
					i_2 = ((NI) 0);
					{
						while (1) {
							tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* checkFor;
							NimStringDesc* memberName;
							NimStringDesc* res_16;
							tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T290_;
							tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T291_;
							tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T292_;
							NI TM__MQdRN7fpbG7rPm4JpVVAhA_1093;
							if (!(i_2 < colontmp_)) goto LA265;
							j = i_2;
							{
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(i) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t)._kind_6.sons->data[i]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[i]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(j) >= (NU)((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(j,((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)-1); }
								if (!!(((*(*(*t)._kind_6.sons->data[i])._kind_6.sons->data[j]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4)))) goto LA268_;
								failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1092));
							}
							LA268_: ;
							{
								if (!!((orExpr == NIM_NIL))) goto LA272_;
								add__yG4AKzsBRS1W4MANDlXQeg(&orExpr, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_353));
							}
							LA272_: ;
							{
								if (!(((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 40))&63U)))!=0)) goto LA276_;
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(i) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t)._kind_6.sons->data[i]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[i]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(j) >= (NU)((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(j,((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)-1); }
								checkFor = genTypeInfo2Name__HPYuz9bvVOGBv0EUX9c74xhg((*p).module, (*(*(*t)._kind_6.sons->data[i])._kind_6.sons->data[j]).typ);
							}
							goto LA274_;
							LA276_: ;
							{
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(i) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t)._kind_6.sons->data[i]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[i]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(j) >= (NU)((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(j,((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)-1); }
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(i) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
								if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t)._kind_6.sons->data[i]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[i]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
								if ((NU)(j) >= (NU)((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(j,((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)-1); }
								checkFor = genTypeInfo__BeEYMOjEPJinzbFpsfTaZg((*p).module, (*(*(*t)._kind_6.sons->data[i])._kind_6.sons->data[j]).typ, (*(*(*t)._kind_6.sons->data[i])._kind_6.sons->data[j]).info);
							}
							LA274_: ;
							{
								NIM_BOOL T281_;
								T281_ = (NIM_BOOL)0;
								T281_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands__VH3ghgQVwLSg3krOAoXigw) 2));
								if (T281_) goto LA282_;
								T281_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 31))&63U)))!=0);
								LA282_: ;
								if (!T281_) goto LA283_;
								memberName = copyString(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1019));
							}
							goto LA279_;
							LA283_: ;
							{
								memberName = copyString(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1020));
							}
							LA279_: ;
							{
								if (!!(!(((*p).module == NIM_NIL)))) goto LA288_;
								failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
							}
							LA288_: ;
							res_16 = rawNewString(((NI) 80));
							T290_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
							T290_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_672));
							cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_16), T290_);
							res_16 = resizeString(res_16, 1);
appendString(res_16, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
							T291_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
							T291_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1021));
							cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_16), T291_);
							res_16 = resizeString(res_16, 4);
appendString(res_16, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1022));
							cgFormatValue__GOaK9aDgu4cLOYhocodpf3Q((&res_16), memberName);
							res_16 = resizeString(res_16, 2);
appendString(res_16, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
							cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_16), checkFor);
							res_16 = resizeString(res_16, 1);
appendString(res_16, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_76));
							T292_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
							T292_ = rope__yShmEg9cffWxI7s5XzEKBow(res_16);
							add__IM4kcMNkkOLJtqdEqSxR8A(&orExpr, T292_);
							if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1093)) { raiseOverflow(); };
							i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1093);
						} LA265: ;
					}
				}
				{
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T297_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T298_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T299_;
					if (!(((NI) 1) < i)) goto LA295_;
					T297_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
					T297_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
					T298_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T298_ = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1024));
					T299_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T299_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T298_);
					add__IM4kcMNkkOLJtqdEqSxR8A(T297_, T299_);
				}
				LA295_: ;
				T300_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T300_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA303_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA303_: ;
				res_17 = rawNewString(((NI) 80));
				res_17 = resizeString(res_17, 4);
appendString(res_17, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_285));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_17), orExpr);
				res_17 = resizeString(res_17, 3);
appendString(res_17, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_927));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA307_;
					res_17 = resizeString(res_17, 1);
appendString(res_17, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA307_: ;
				T309_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T309_ = rope__yShmEg9cffWxI7s5XzEKBow(res_17);
				T310_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T310_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T309_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T300_, T310_);
				T311_ = (NI)0;
				T311_ = startBlockInternal__1ygdb876UM9astcNUXtgUBQ(p);
				{
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T316_;
					NimStringDesc* res_18;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T325_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T326_;
					if (!!(quirkyExceptions)) goto LA314_;
					T316_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
					T316_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
					{
						if (!!(!(((*p).module == NIM_NIL)))) goto LA319_;
						failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
					}
					LA319_: ;
					res_18 = rawNewString(((NI) 80));
					cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_18), safePoint);
					res_18 = resizeString(res_18, 12);
appendString(res_18, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1090));
					{
						if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA323_;
						res_18 = resizeString(res_18, 1);
appendString(res_18, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
					}
					LA323_: ;
					T325_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T325_ = rope__yShmEg9cffWxI7s5XzEKBow(res_18);
					T326_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T326_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T325_);
					add__IM4kcMNkkOLJtqdEqSxR8A(T316_, T326_);
				}
				LA314_: ;
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(i) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t)._kind_6.sons->data[i]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[i]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
				if ((NU)(i) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
				T327_ = (NI)0;
				T327_ = len__P89cqdlERShb9alU3iC0yj8wast((*t)._kind_6.sons->data[i]);
				if (nimSubInt(T327_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1094)) { raiseOverflow(); };
				if ((NU)((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1094)) >= (NU)((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)){ raiseIndexError2((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1094),((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)-1); }
				expr__8mAL9ckajemzgfLPfeZVNoQ(p, (*(*t)._kind_6.sons->data[i])._kind_6.sons->data[(NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1094)], d);
				T328_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T328_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA331_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA331_: ;
				res_19 = rawNewString(((NI) 80));
				T333_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T333_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_980));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_19), T333_);
				res_19 = resizeString(res_19, 3);
appendString(res_19, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_334));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA336_;
					res_19 = resizeString(res_19, 1);
appendString(res_19, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA336_: ;
				T338_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T338_ = rope__yShmEg9cffWxI7s5XzEKBow(res_19);
				T339_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T339_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T338_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T328_, T339_);
				endBlock__0dpuY9coTlraj8JXIe2BzVw(p);
			}
			LA209_: ;
			if (nimAddInt(i, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1095)) { raiseOverflow(); };
			i = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1095);
		} LA199: ;
	}
	nimZeroMem((void*)(&T340_), sizeof(tyTuple__FxkU4d1VDodDMc9ah6Mbagw));
	pop__Y36bTNxSoXinCwCTSTCSTgsystem((&(*p).nestedTryStmts), (&T340_));
	(void)(T340_);
	endBlock__0dpuY9coTlraj8JXIe2BzVw(p);
	{
		NIM_BOOL T343_;
		NI T344_;
		NI T348_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T349_;
		NimStringDesc* res_20;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T358_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T359_;
		NI T360_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T380_;
		T343_ = (NIM_BOOL)0;
		T344_ = (NI)0;
		T344_ = len__P89cqdlERShb9alU3iC0yj8wast(t);
		T343_ = (i < T344_);
		if (!(T343_)) goto LA345_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(i) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
		T343_ = ((*(*t)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107));
		LA345_: ;
		if (!T343_) goto LA346_;
		asgnRef((void**) (&(*p).finallySafePoints), (tySequence__WwUFq9cJ2xKRlsAWVEHyPRg*) incrSeqV3((TGenericSeq*)((*p).finallySafePoints), (&NTI__WwUFq9cJ2xKRlsAWVEHyPRg_)));
		T348_ = (*p).finallySafePoints->Sup.len++;
		asgnRef((void**) (&(*p).finallySafePoints->data[T348_]), safePoint);
		T349_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T349_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA352_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA352_: ;
		res_20 = rawNewString(((NI) 80));
		res_20 = resizeString(res_20, 1);
appendString(res_20, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_20));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA356_;
			res_20 = resizeString(res_20, 1);
appendString(res_20, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA356_: ;
		T358_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T358_ = rope__yShmEg9cffWxI7s5XzEKBow(res_20);
		T359_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T359_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T358_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T349_, T359_);
		T360_ = (NI)0;
		T360_ = startBlockInternal__1ygdb876UM9astcNUXtgUBQ(p);
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(i) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*t)._kind_6.sons->data[i]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[i]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*t)._kind_6.sons->data[i])._kind_6.sons ? (*(*t)._kind_6.sons->data[i])._kind_6.sons->Sup.len : 0)-1); }
		genStmts__QrTB5DOwbDX9bKAW7PNbuJA(p, (*(*t)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)]);
		{
			NIM_BOOL T363_;
			tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T365_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T368_;
			NimStringDesc* res_21;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T373_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T378_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T379_;
			T363_ = (NIM_BOOL)0;
			T363_ = !(quirkyExceptions);
			if (!(T363_)) goto LA364_;
			T365_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
			T365_ = getCompilerProc__4qXS5VHrKJ5hq9crvvz8tIA((*(*(*p).module).g).graph, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1096));
			T363_ = !((T365_ == NIM_NIL));
			LA364_: ;
			if (!T363_) goto LA366_;
			T368_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T368_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA371_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA371_: ;
			res_21 = rawNewString(((NI) 80));
			res_21 = resizeString(res_21, 4);
appendString(res_21, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_285));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_21), safePoint);
			res_21 = resizeString(res_21, 14);
appendString(res_21, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_983));
			T373_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T373_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1096));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_21), T373_);
			res_21 = resizeString(res_21, 3);
appendString(res_21, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_334));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA376_;
				res_21 = resizeString(res_21, 1);
appendString(res_21, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA376_: ;
			T378_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T378_ = rope__yShmEg9cffWxI7s5XzEKBow(res_21);
			T379_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T379_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T378_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T368_, T379_);
		}
		LA366_: ;
		endBlock__0dpuY9coTlraj8JXIe2BzVw(p);
		T380_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T380_ = pop__9c4Y4hTtvRqjj2EC8KP9aqDAsystem((&(*p).finallySafePoints));
		(void)(T380_);
	}
	LA346_: ;
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T385_;
		NimStringDesc* res_22;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T390_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T395_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T396_;
		if (!!(quirkyExceptions)) goto LA383_;
		T385_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T385_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA388_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA388_: ;
		res_22 = rawNewString(((NI) 80));
		res_22 = resizeString(res_22, 4);
appendString(res_22, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_285));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_22), safePoint);
		res_22 = resizeString(res_22, 14);
appendString(res_22, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_983));
		T390_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T390_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1097));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_22), T390_);
		res_22 = resizeString(res_22, 3);
appendString(res_22, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_334));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA393_;
			res_22 = resizeString(res_22, 1);
appendString(res_22, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA393_: ;
		T395_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T395_ = rope__yShmEg9cffWxI7s5XzEKBow(res_22);
		T396_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T396_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T395_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T385_, T396_);
	}
	LA383_: ;
}
static N_INLINE(void, genSimpleBlock__RH6PUsmPRE4ftBMagpWhBQcgen)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* stmts) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T1_;
	NimStringDesc* res;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T10_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T11_;
	NI T12_;
	T1_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T1_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA4_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
	}
	LA4_: ;
	res = rawNewString(((NI) 80));
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_20));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA8_;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
	}
	LA8_: ;
	T10_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T10_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
	T11_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T11_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T10_);
	add__IM4kcMNkkOLJtqdEqSxR8A(T1_, T11_);
	T12_ = (NI)0;
	T12_ = startBlockInternal__1ygdb876UM9astcNUXtgUBQ(p);
	genStmts__QrTB5DOwbDX9bKAW7PNbuJA(p, stmts);
	endBlock__0dpuY9coTlraj8JXIe2BzVw(p);
}
N_LIB_PRIVATE N_NIMCALL(void, finallyActions__0dpuY9coTlraj8JXIe2BzVw_4)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p) {
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NI T6_;
		tyTuple__FxkU4d1VDodDMc9ah6Mbagw* T8_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finallyBlock;
		tyTuple__FxkU4d1VDodDMc9ah6Mbagw* T11_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = !(((*(*(*(*p).module).g).config).exc == ((tyEnum_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ) 3)));
		if (!(T4_)) goto LA5_;
		T6_ = ((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0);
		T4_ = (((NI) 0) < T6_);
		LA5_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA7_;
		T8_ = (tyTuple__FxkU4d1VDodDMc9ah6Mbagw*)0;
		T8_ = X5BX5D___X6aCqErYyvvzizP8PaBpFQsystem((*p).nestedTryStmts->data, ((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0), ((NI) 1));
		T3_ = (*T8_).Field1;
		LA7_: ;
		if (!T3_) goto LA9_;
		T11_ = (tyTuple__FxkU4d1VDodDMc9ah6Mbagw*)0;
		T11_ = X5BX5D___X6aCqErYyvvzizP8PaBpFQsystem((*p).nestedTryStmts->data, ((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0), ((NI) 1));
		finallyBlock = (*T11_).Field0;
		{
			if (!!((finallyBlock == NIM_NIL))) goto LA14_;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*finallyBlock).kind)>>3] &(1U<<((NU)((*finallyBlock).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*finallyBlock)._kind_6.sons ? (*finallyBlock)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*finallyBlock)._kind_6.sons ? (*finallyBlock)._kind_6.sons->Sup.len : 0)-1); }
			genSimpleBlock__RH6PUsmPRE4ftBMagpWhBQcgen(p, (*finallyBlock)._kind_6.sons->data[((NI) 0)]);
		}
		LA14_: ;
	}
	LA9_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genRaiseStmt__QrTB5DOwbDX9bKAW7PNbuJA_7)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* t) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* gotoInstr;
	{
		tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* e;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
		if (!!(((*(*t)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA3_;
		nimZeroMem((void*)(&a), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
		initLocExprSingleUse__9biTBaXPz9cezuLjjWw9cSEGw(p, (*t)._kind_6.sons->data[((NI) 0)], (&a));
		finallyActions__0dpuY9coTlraj8JXIe2BzVw_4(p);
		e = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
		typ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*t)._kind_6.sons->data[((NI) 0)]).typ, IL64(36275087638309136));
		{
			NI T9_;
			if (!((*(*(*(*p).module).g).config).exc == ((tyEnum_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ) 2))) goto LA7_;
			T9_ = (NI)0;
			T9_ = inExceptBlockLen__1ygdb876UM9astcNUXtgUBQ_2(p);
			blockLeaveActions__e09bgD1fQnMSV07ItnToC3Q(p, ((NI) 0), T9_);
		}
		LA7_: ;
		genLineDir__QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
		{
			NIM_BOOL T12_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T15_;
			tyArray__JiWwrsTRC6xqNlGcBthSVA T16_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T17_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T18_;
			T12_ = (NIM_BOOL)0;
			T12_ = isImportedException__dZW9czpRSiiVl9cyT6tyk84A(typ, (*(*(*p).module).g).config);
			if (!T12_) goto LA13_;
			T15_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T15_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			nimZeroMem((void*)T16_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
			T16_[0] = e;
			T17_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T17_ = percent___ddrHnMlEhcHznkXv27msmQ(T16_, 1);
			T18_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T18_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T17_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T15_, T18_);
		}
		goto LA10_;
		LA13_: ;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T20_;
			NimStringDesc* res;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T25_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T26_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T27_;
			NimStringDesc* T28_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T34_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T35_;
			NI T36_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T41_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T42_;
			T20_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T20_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA23_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA23_: ;
			res = rawNewString(((NI) 80));
			T25_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T25_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1098));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T25_);
			res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_178));
			T26_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T26_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1042));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T26_);
			res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1099));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), e);
			res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
			T27_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T27_ = makeCString__vQJydtKy4Nf6bXPYtbmjtg((*(*(*typ).sym).name).s);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T27_);
			res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
			T28_ = (NimStringDesc*)0;
			{
				if (!!(((*p).prc == NIM_NIL))) goto LA31_;
				T28_ = copyString((*(*(*p).prc).name).s);
			}
			goto LA29_;
			LA31_: ;
			{
				T28_ = copyString((*(*(*(*p).module).module).name).s);
			}
			LA29_: ;
			T34_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T34_ = makeCString__vQJydtKy4Nf6bXPYtbmjtg(T28_);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T34_);
			res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
			T35_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T35_ = quotedFilename__2Kbe7lBq9cqJa8J9cn4WRepg((*(*(*p).module).g).config, (*t).info);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T35_);
			res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_72));
			T36_ = (NI)0;
			T36_ = toLinenumber__6D4Rmpw7LpcRI1j7CMqEsAmsgs((*t).info);
			cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res), ((NI64) (T36_)));
			res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_197));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA39_;
				res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA39_: ;
			T41_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T41_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
			T42_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T42_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T41_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T20_, T42_);
			{
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T47_;
				NimStringDesc* res_2;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T56_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T57_;
				if (!(((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 41))&63U)))!=0)) goto LA45_;
				T47_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T47_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA50_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA50_: ;
				res_2 = rawNewString(((NI) 80));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), e);
				res_2 = resizeString(res_2, 11);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_325));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA54_;
					res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA54_: ;
				T56_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T56_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
				T57_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T57_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T56_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T47_, T57_);
			}
			LA45_: ;
		}
		LA10_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		finallyActions__0dpuY9coTlraj8JXIe2BzVw_4(p);
		genLineDir__QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T63_;
			tyArray__qTjAvTvKF9anytN1At69aJMQ T64_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T65_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T66_;
			if (!((*(*(*(*p).module).g).config).exc == ((tyEnum_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ) 2))) goto LA61_;
			T63_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T63_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			nimZeroMem((void*)T64_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
			T65_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T65_ = percent___B0OBOTOJQENvDd71LJ9b19bw(T64_, 0);
			T66_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T66_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T65_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T63_, T66_);
		}
		goto LA59_;
		LA61_: ;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T68_;
			NimStringDesc* res_3;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T73_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T78_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T79_;
			T68_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T68_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA71_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
			}
			LA71_: ;
			res_3 = rawNewString(((NI) 80));
			T73_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T73_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1097));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T73_);
			res_3 = resizeString(res_3, 3);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_334));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA76_;
				res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA76_: ;
			T78_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T78_ = rope__yShmEg9cffWxI7s5XzEKBow(res_3);
			T79_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T79_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T78_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T68_, T79_);
		}
		LA59_: ;
	}
	LA1_: ;
	gotoInstr = raiseInstr__3AsTOpq9crZUYBL9aD1lXBng_4(p);
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T84_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T85_;
		if (!!((gotoInstr == NIM_NIL))) goto LA82_;
		T84_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T84_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		T85_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T85_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, gotoInstr);
		add__IM4kcMNkkOLJtqdEqSxR8A(T84_, T85_);
	}
	LA82_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genTypeSection__t9a9a9bxmaOztYOfsfhQUOXXw_3)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg, determineSection__3f2MBweHSQI3C7jDZiYA2Q)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg result;
	result = (tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg)0;
	result = ((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 8);
	{
		NIM_BOOL T3_;
		NI T4_;
		NimStringDesc* sec;
		T3_ = (NIM_BOOL)0;
		T4_ = (NI)0;
		T4_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		T3_ = (((NI) 1) <= T4_);
		if (!(T3_)) goto LA5_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		T3_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*(*n)._kind_6.sons->data[((NI) 0)]).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22));
		LA5_: ;
		if (!T3_) goto LA6_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_91[(NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_92)); }
		sec = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_3.strVal;
		{
			NIM_BOOL T10_;
			T10_ = (NIM_BOOL)0;
			T10_ = nsuStartsWith(sec, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1100));
			if (!T10_) goto LA11_;
			result = ((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 4);
		}
		goto LA8_;
		LA11_: ;
		{
			NIM_BOOL T14_;
			T14_ = (NIM_BOOL)0;
			T14_ = nsuStartsWith(sec, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1101));
			if (!T14_) goto LA15_;
			result = ((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 10);
		}
		goto LA8_;
		LA15_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = nsuStartsWith(sec, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1102));
			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;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
	s = genAsmOrEmitStmt__53Pwv51Dxuia7o9bQN4K9agw(p, (*t)._kind_6.sons->data[((NI) 1)], NIM_FALSE);
	{
		tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg section;
		if (!((*p).prc == NIM_NIL)) goto LA3_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
		section = determineSection__3f2MBweHSQI3C7jDZiYA2Q((*t)._kind_6.sons->data[((NI) 1)]);
		genCLineDir__8gOq38UiI9arVxZ9at35m22Q(&(*(*p).module).s[(section)- 0], (*t).info, (*(*(*p).module).g).config);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*(*p).module).s[(section)- 0], s);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T6_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T7_;
		genLineDir__QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
		T6_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T6_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		T7_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T7_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, s);
		add__IM4kcMNkkOLJtqdEqSxR8A(T6_, T7_);
	}
	LA1_: ;
}
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;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		colontmp_ = (*n)._kind_6.sons;
		i = ((NI) 0);
		T2_ = (colontmp_ ? colontmp_->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw T5_;
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_1103;
				if (!(i < L)) goto LA4;
				if ((NU)(i) >= (NU)(colontmp_ ? colontmp_->Sup.len : 0)){ raiseIndexError2(i,(colontmp_ ? colontmp_->Sup.len : 0)-1); }
				it = colontmp_->data[i];
				T5_ = (tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw)0;
				T5_ = whichPragma__Pjztiiq9bHmTTxDuLd39cNRw(it);
				switch (T5_) {
				case ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 207):
				{
					genEmit__QrTB5DOwbDX9bKAW7PNbuJA_8(p, it);
				}
				break;
				case ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 199):
				{
					tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p_2;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T8_;
					p_2 = newProc__r9c9cj4fW68RhY7ht9btSvB8w(NIM_NIL, (*p).module);
					(*p_2).options = ((*p_2).options & ~ 1310720);
					if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
					if ((NU)(((NI) 1)) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
					genStmts__QrTB5DOwbDX9bKAW7PNbuJA(p_2, (*it)._kind_6.sons->data[((NI) 1)]);
					T8_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
					T8_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p_2, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
					asgnRef((void**) (&(*(*p_2).module).injectStmt), (*T8_));
				}
				break;
				default:
				{
				}
				break;
				}
				if (nimAddInt(i, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1103)) { raiseOverflow(); };
				i = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1103);
				{
					NI T12_;
					T12_ = (colontmp_ ? colontmp_->Sup.len : 0);
					if (!!((T12_ == L))) goto LA13_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_26));
				}
				LA13_: ;
			} LA4: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, genParForStmt__QrTB5DOwbDX9bKAW7PNbuJA_9)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* t) {
	NI TM__MQdRN7fpbG7rPm4JpVVAhA_1105;
	NI oldBreakIdxX60gensym101330207_;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* forLoopVar;
	tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA rangeA;
	tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA rangeB;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* call;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T27_;
	NimStringDesc* res;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T36_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T37_;
	NI TM__MQdRN7fpbG7rPm4JpVVAhA_1107;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__P89cqdlERShb9alU3iC0yj8wast(t);
		if (!!((T3_ == ((NI) 3)))) goto LA4_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1104));
	}
	LA4_: ;
	if (nimAddInt((*p).withinLoop, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1105)) { raiseOverflow(); };
	(*p).withinLoop = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1105);
	genLineDir__QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
	oldBreakIdxX60gensym101330207_ = (*p).breakIdx;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
	if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*t)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*t)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
	forLoopVar = (*(*t)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
	nimZeroMem((void*)(&rangeA), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&rangeB), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
	assignLocalVar__UtJx89cn0a8CNSWWmaj6raA(p, (*t)._kind_6.sons->data[((NI) 0)]);
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
	call = (*t)._kind_6.sons->data[((NI) 1)];
	{
		NI T8_;
		T8_ = (NI)0;
		T8_ = len__P89cqdlERShb9alU3iC0yj8wast(call);
		if (!!((T8_ == ((NI) 4) || T8_ == ((NI) 5)))) goto LA9_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1106));
	}
	LA9_: ;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*call).kind)>>3] &(1U<<((NU)((*call).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 1)) >= (NU)((*call)._kind_6.sons ? (*call)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*call)._kind_6.sons ? (*call)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*call)._kind_6.sons->data[((NI) 1)], (&rangeA));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*call).kind)>>3] &(1U<<((NU)((*call).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 2)) >= (NU)((*call)._kind_6.sons ? (*call)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*call)._kind_6.sons ? (*call)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*call)._kind_6.sons->data[((NI) 2)], (&rangeB));
	{
		NI T13_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T16_;
		tyArray__f7nG5LD47BH5K9c6mASit3g T17_;
		NimStringDesc* T18_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T19_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T20_;
		T13_ = (NI)0;
		T13_ = len__P89cqdlERShb9alU3iC0yj8wast(call);
		if (!(T13_ == ((NI) 4))) goto LA14_;
		T16_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T16_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		nimZeroMem((void*)T17_, sizeof(tyArray__f7nG5LD47BH5K9c6mASit3g));
		T17_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg((*forLoopVar).loc);
		T17_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(rangeA);
		T17_[2] = rdLoc__xidyzuHqIciXbQyEOKahDg(rangeB);
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*call).kind)>>3] &(1U<<((NU)((*call).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 3)) >= (NU)((*call)._kind_6.sons ? (*call)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 3),((*call)._kind_6.sons ? (*call)._kind_6.sons->Sup.len : 0)-1); }
		T18_ = (NimStringDesc*)0;
		T18_ = getStr__P2DOsHG6Jk4Siab3L2qwUg((*call)._kind_6.sons->data[((NI) 3)]);
		T17_[3] = rope__yShmEg9cffWxI7s5XzEKBow(T18_);
		T19_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T19_ = percent___yhJ9aDxHfJqHvWO0i6N9bukQ(T17_, 4);
		T20_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T20_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T19_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T16_, T20_);
	}
	goto LA11_;
	LA14_: ;
	{
		tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA step;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T22_;
		tyArray__duFhZXIIlrbrM62cWjNekg T23_;
		NimStringDesc* T24_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T25_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T26_;
		nimZeroMem((void*)(&step), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*call).kind)>>3] &(1U<<((NU)((*call).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 3)) >= (NU)((*call)._kind_6.sons ? (*call)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 3),((*call)._kind_6.sons ? (*call)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*call)._kind_6.sons->data[((NI) 3)], (&step));
		T22_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T22_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		nimZeroMem((void*)T23_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
		T23_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg((*forLoopVar).loc);
		T23_[1] = rdLoc__xidyzuHqIciXbQyEOKahDg(rangeA);
		T23_[2] = rdLoc__xidyzuHqIciXbQyEOKahDg(rangeB);
		T23_[3] = rdLoc__xidyzuHqIciXbQyEOKahDg(step);
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*call).kind)>>3] &(1U<<((NU)((*call).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 4)) >= (NU)((*call)._kind_6.sons ? (*call)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 4),((*call)._kind_6.sons ? (*call)._kind_6.sons->Sup.len : 0)-1); }
		T24_ = (NimStringDesc*)0;
		T24_ = getStr__P2DOsHG6Jk4Siab3L2qwUg((*call)._kind_6.sons->data[((NI) 4)]);
		T23_[4] = rope__yShmEg9cffWxI7s5XzEKBow(T24_);
		T25_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T25_ = percent___MLJpsW0DAZYB8lAgq09cUjg(T23_, 5);
		T26_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T26_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T25_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T22_, T26_);
	}
	LA11_: ;
	T27_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T27_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA30_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
	}
	LA30_: ;
	res = rawNewString(((NI) 80));
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_20));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA34_;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
	}
	LA34_: ;
	T36_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T36_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
	T37_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T37_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T36_);
	add__IM4kcMNkkOLJtqdEqSxR8A(T27_, T37_);
	(*p).breakIdx = startBlockInternal__1ygdb876UM9astcNUXtgUBQ(p);
	if ((NU)((*p).breakIdx) >= (NU)((*p).blocks ? (*p).blocks->Sup.len : 0)){ raiseIndexError2((*p).breakIdx,((*p).blocks ? (*p).blocks->Sup.len : 0)-1); }
	(*p).blocks->data[(*p).breakIdx].isLoop = NIM_TRUE;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 2)) >= (NU)((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*t)._kind_6.sons ? (*t)._kind_6.sons->Sup.len : 0)-1); }
	genStmts__QrTB5DOwbDX9bKAW7PNbuJA(p, (*t)._kind_6.sons->data[((NI) 2)]);
	endBlock__0dpuY9coTlraj8JXIe2BzVw(p);
	(*p).breakIdx = oldBreakIdxX60gensym101330207_;
	if (nimSubInt((*p).withinLoop, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1107)) { raiseOverflow(); };
	(*p).withinLoop = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1107);
}
N_LIB_PRIVATE N_NIMCALL(void, genState__UtJx89cn0a8CNSWWmaj6raA_11)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n0;
	{
		NI T3_;
		NimStringDesc* T6_;
		T3_ = (NI)0;
		T3_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (!!((T3_ == ((NI) 1)))) goto LA4_;
		T6_ = (NimStringDesc*)0;
		T6_ = dollar___r38WafKlW80RkvoZTcia4Q(TM__MQdRN7fpbG7rPm4JpVVAhA_1108);
		internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*(*(*p).module).g).config, T6_);
	}
	LA4_: ;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	n0 = (*n)._kind_6.sons->data[((NI) 0)];
	{
		NI64 idx;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T11_;
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T20_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T21_;
		if (!((*n0).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6))) goto LA9_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_174[(NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_175)); }
		idx = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_1.intVal;
		T11_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T11_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA14_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA14_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 5);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1110));
		cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res), idx);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1111));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA18_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA18_: ;
		T20_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T20_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
		T21_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T21_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T20_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T11_, T21_);
	}
	goto LA7_;
	LA9_: ;
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T25_;
		NimStringDesc* res_2;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T34_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T35_;
		if (!((*n0).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20))) goto LA23_;
		T25_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T25_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA28_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA28_: ;
		res_2 = rawNewString(((NI) 80));
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_91[(NU)((*n0).kind)>>3] &(1U<<((NU)((*n0).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_92)); }
		cgFormatValue__GOaK9aDgu4cLOYhocodpf3Q((&res_2), (*n0)._kind_3.strVal);
		res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1111));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA32_;
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA32_: ;
		T34_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T34_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
		T35_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T35_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T34_);
		add__IM4kcMNkkOLJtqdEqSxR8A(T25_, T35_);
	}
	goto LA7_;
	LA23_: ;
	LA7_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genGotoState__UtJx89cn0a8CNSWWmaj6raA_12)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T1_;
	tyArray__JiWwrsTRC6xqNlGcBthSVA T2_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T3_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T4_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T5_;
	tyArray__qTjAvTvKF9anytN1At69aJMQ T6_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T7_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T8_;
	NI T9_;
	NI T10_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T11_;
	tyArray__qTjAvTvKF9anytN1At69aJMQ T12_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T13_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T14_;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA statesCounter;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* prefix;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T37_;
	tyArray__qTjAvTvKF9anytN1At69aJMQ T38_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T39_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T40_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n)._kind_6.sons->data[((NI) 0)], (&a));
	T1_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T1_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
	nimZeroMem((void*)T2_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
	T2_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
	T3_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T3_ = percent___T9caGByKkBhaXSZ6fCJLIdQ(T2_, 1);
	T4_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T4_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T3_);
	add__IM4kcMNkkOLJtqdEqSxR8A(T1_, T4_);
	(*p).flags |= ((NU8)1)<<((((tyEnum_TCProcFlag__LgBeaca7tT1nUR7RL1RjPQ) 0)) & 7);
	T5_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T5_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
	nimZeroMem((void*)T6_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
	T7_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T7_ = percent___8tWfSjtTOlDafxpQPvChAA(T6_, 0);
	T8_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T8_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T7_);
	add__IM4kcMNkkOLJtqdEqSxR8A(T5_, T8_);
	T9_ = ((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0);
	T10_ = (NI)0;
	T10_ = inExceptBlockLen__1ygdb876UM9astcNUXtgUBQ_2(p);
	blockLeaveActions__e09bgD1fQnMSV07ItnToC3Q(p, T9_, T10_);
	T11_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T11_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
	nimZeroMem((void*)T12_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
	T13_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T13_ = percent___xKLwwPkFSVy2Dtn9cuJ78xw(T12_, 0);
	T14_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T14_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T13_);
	add__IM4kcMNkkOLJtqdEqSxR8A(T11_, T14_);
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	statesCounter = lastOrd__hjogdnp59cMX1rwmjikBhqw_2((*(*(*p).module).g).config, (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
	{
		NIM_BOOL T17_;
		NI T18_;
		T17_ = (NIM_BOOL)0;
		T18_ = (NI)0;
		T18_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		T17_ = (((NI) 2) <= T18_);
		if (!(T17_)) goto LA19_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		T17_ = ((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6));
		LA19_: ;
		if (!T17_) goto LA20_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		statesCounter = getInt__Ml9bTZ5dXYSLBfnGRkErokw((*n)._kind_6.sons->data[((NI) 1)]);
	}
	LA20_: ;
	{
		NIM_BOOL T24_;
		NI T25_;
		T24_ = (NIM_BOOL)0;
		T25_ = (NI)0;
		T25_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		T24_ = (T25_ == ((NI) 3));
		if (!(T24_)) goto LA26_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 2)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		T24_ = ((*(*n)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20));
		LA26_: ;
		if (!T24_) goto LA27_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 2)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_91[(NU)((*(*n)._kind_6.sons->data[((NI) 2)]).kind)>>3] &(1U<<((NU)((*(*n)._kind_6.sons->data[((NI) 2)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_92)); }
		prefix = rope__yShmEg9cffWxI7s5XzEKBow((*(*n)._kind_6.sons->data[((NI) 2)])._kind_3.strVal);
	}
	goto LA22_;
	LA27_: ;
	{
		prefix = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1113));
	}
	LA22_: ;
	{
		NI64 i;
		NI64 colontmp_;
		NI64 res;
		i = (NI64)0;
		colontmp_ = (NI64)0;
		colontmp_ = toInt64__1szweXXq3RBN50owrYu2Xw(statesCounter);
		res = IL64(0);
		{
			while (1) {
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T33_;
				tyArray__mrugoXXRZUEeG9bEXo9auBKw T34_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T35_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T36_;
				NI64 TM__MQdRN7fpbG7rPm4JpVVAhA_1114;
				if (!(res <= colontmp_)) goto LA32;
				i = res;
				T33_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T33_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				nimZeroMem((void*)T34_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
				T34_[0] = prefix;
				T34_[1] = rope__KOisMGxcPhz6CcSmxgwEQQ(i);
				T35_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T35_ = percent___hdRijZdoPR3UGq9aUw2zFDQ(T34_, 2);
				T36_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T36_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T35_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T33_, T36_);
				if (nimAddInt64(res, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1114)) { raiseOverflow(); };
				res = (NI64)(TM__MQdRN7fpbG7rPm4JpVVAhA_1114);
			} LA32: ;
		}
	}
	T37_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	T37_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
	nimZeroMem((void*)T38_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
	T39_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T39_ = percent___BYiowJAm8zF7RBRISElaLg(T38_, 0);
	T40_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T40_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T39_);
	add__IM4kcMNkkOLJtqdEqSxR8A(T37_, T40_);
}
N_LIB_PRIVATE N_NIMCALL(void, genBreakState__8mAL9ckajemzgfLPfeZVNoQ_23)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
	initLoc__qlujIAW86QclHYUVxlHRiQ(d, ((tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg) 6), n, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
	{
		tyArray__JiWwrsTRC6xqNlGcBthSVA T5_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 155))) goto LA3_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons ? (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons ? (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)], (&a));
		nimZeroMem((void*)T5_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
		T5_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		unsureAsgnRef((void**) (&(*d).r), percent___ZjQc8bFVF8ePFYxjN0iVVg(T5_, 1));
	}
	goto LA1_;
	LA3_: ;
	{
		tyArray__JiWwrsTRC6xqNlGcBthSVA T7_;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		initLocExpr__9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n)._kind_6.sons->data[((NI) 0)], (&a));
		nimZeroMem((void*)T7_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
		T7_[0] = rdLoc__xidyzuHqIciXbQyEOKahDg(a);
		unsureAsgnRef((void**) (&(*d).r), percent___SiqB8gWmdYKb4vtgqYrrMA(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;
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
		sym = (*n)._kind_4.sym;
		switch ((*sym).kind) {
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 14):
		{
			{
				if (!!(((536870928 & (*sym).flags) == 0))) goto LA5_;
				fillProcLoc__t9a9a9bxmaOztYOfsfhQUOXXw((*p).module, n);
				genProcPrototype__TAVDUakAwQnRHDK9cFe6L7g((*p).module, sym);
			}
			goto LA3_;
			LA5_: ;
			{
				genProc__HbYPOpwLApFuBkISFGrmEQ((*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) 27))&63U)))!=0)) goto LA11_;
				T13_ = (NimStringDesc*)0;
				T13_ = rawNewString(((*(*sym).name).s ? (*(*sym).name).s->Sup.len : 0) + 48);
appendString(T13_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_434));
appendString(T13_, (*(*sym).name).s);
				localError__NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*n).info, T13_);
			}
			LA11_: ;
			genProc__HbYPOpwLApFuBkISFGrmEQ((*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_435));
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__y9bTRtTAknVsv9apXKbpJYJA((*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 (!!(((67108872 & (*sym).flags) == 0))) goto LA34_;
				genVarPrototype__t9a9a9bxmaOztYOfsfhQUOXXw_2((*p).module, n);
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T40_;
					if (!(((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 27))&63U)))!=0)) goto LA38_;
					T40_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T40_ = astdef__PBkjYIaAGbtrZ8DiUArHcw(sym);
					genSingleVar__T7FeUoHVfLrGm0JydrFabA(p, sym, n, T40_);
				}
				LA38_: ;
			}
			LA34_: ;
			{
				NIM_BOOL T43_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T45_;
				NimStringDesc* T48_;
				NimStringDesc* T49_;
				T43_ = (NIM_BOOL)0;
				T43_ = ((*sym).loc.r == NIM_NIL);
				if (T43_) goto LA44_;
				T45_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T45_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*sym).loc);
				T43_ = (T45_ == NIM_NIL);
				LA44_: ;
				if (!T43_) goto LA46_;
				T48_ = (NimStringDesc*)0;
				T49_ = (NimStringDesc*)0;
				T49_ = nimIntToStr((*sym).Sup.id);
				T48_ = rawNewString(((*(*sym).name).s ? (*(*sym).name).s->Sup.len : 0) + (T49_ ? T49_->Sup.len : 0) + 20);
appendString(T48_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_545));
appendString(T48_, (*(*sym).name).s);
appendString(T48_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_3));
appendString(T48_, T49_);
				internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, T48_);
			}
			LA46_: ;
			{
				if (!(((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 26))&63U)))!=0)) goto LA52_;
				accessThreadLocalVar__IpGUPLhMYizrVHs0OdHySA(p, sym);
				{
					NIM_BOOL T56_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T59_;
					T56_ = (NIM_BOOL)0;
					T56_ = emulatedThreadVars__7uEG6ZwO4OOj3nQvIat2mwcgen((*(*(*p).module).g).config);
					if (!T56_) goto LA57_;
					T59_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T59_ = amp___4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_449), (*sym).loc.r);
					putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, (*sym).loc.lode, T59_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
				}
				goto LA54_;
				LA57_: ;
				{
					putLocIntoDest__SkhzpH2DDHJ7pbmCpsHIPg(p, d, (*sym).loc);
				}
				LA54_: ;
			}
			goto LA50_;
			LA52_: ;
			{
				putLocIntoDest__SkhzpH2DDHJ7pbmCpsHIPg(p, d, (*sym).loc);
			}
			LA50_: ;
		}
		break;
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 5):
		{
			{
				if (!((*sym).loc.r == NIM_NIL)) goto LA65_;
				assignLocalVar__UtJx89cn0a8CNSWWmaj6raA(p, n);
			}
			LA65_: ;
			{
				NIM_BOOL T69_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T71_;
				NimStringDesc* T74_;
				NimStringDesc* T75_;
				T69_ = (NIM_BOOL)0;
				T69_ = ((*sym).loc.r == NIM_NIL);
				if (T69_) goto LA70_;
				T71_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T71_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*sym).loc);
				T69_ = (T71_ == NIM_NIL);
				LA70_: ;
				if (!T69_) goto LA72_;
				T74_ = (NimStringDesc*)0;
				T75_ = (NimStringDesc*)0;
				T75_ = nimIntToStr((*sym).Sup.id);
				T74_ = rawNewString(((*(*sym).name).s ? (*(*sym).name).s->Sup.len : 0) + (T75_ ? T75_->Sup.len : 0) + 21);
appendString(T74_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_546));
appendString(T74_, (*(*sym).name).s);
appendString(T74_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_3));
appendString(T74_, T75_);
				internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, T74_);
			}
			LA72_: ;
			putLocIntoDest__SkhzpH2DDHJ7pbmCpsHIPg(p, d, (*sym).loc);
		}
		break;
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3):
		{
			{
				NIM_BOOL T79_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T81_;
				NimStringDesc* T84_;
				NimStringDesc* T85_;
				T79_ = (NIM_BOOL)0;
				T79_ = ((*sym).loc.r == NIM_NIL);
				if (T79_) goto LA80_;
				T81_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T81_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*sym).loc);
				T79_ = (T81_ == NIM_NIL);
				LA80_: ;
				if (!T79_) goto LA82_;
				T84_ = (NimStringDesc*)0;
				T85_ = (NimStringDesc*)0;
				T85_ = nimIntToStr((*sym).Sup.id);
				T84_ = rawNewString(((*(*sym).name).s ? (*(*sym).name).s->Sup.len : 0) + (T85_ ? T85_->Sup.len : 0) + 22);
appendString(T84_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_547));
appendString(T84_, (*(*sym).name).s);
appendString(T84_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_3));
appendString(T84_, T85_);
				internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, T84_);
			}
			LA82_: ;
			putLocIntoDest__SkhzpH2DDHJ7pbmCpsHIPg(p, d, (*sym).loc);
		}
		break;
		default:
		{
			NimStringDesc* T87_;
			T87_ = (NimStringDesc*)0;
			T87_ = rawNewString((reprEnum((NI)(*sym).kind, (&NTI__cNCW9acsSznmEccl1fgQwkw_)) ? reprEnum((NI)(*sym).kind, (&NTI__cNCW9acsSznmEccl1fgQwkw_))->Sup.len : 0) + 22);
appendString(T87_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_548));
appendString(T87_, reprEnum((NI)(*sym).kind, (&NTI__cNCW9acsSznmEccl1fgQwkw_)));
appendString(T87_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_549));
			internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, T87_);
		}
		break;
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
	{
		{
			NIM_BOOL T91_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T94_;
			T91_ = (NIM_BOOL)0;
			T91_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*n).typ);
			if (!!(T91_)) goto LA92_;
			T94_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T94_ = genLiteral__NYI5fC69aIqZGRakncXv9cNQ_2(p, n);
			putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, n, T94_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		LA92_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22):
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T96_;
		T96_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T96_ = genLiteral__NYI5fC69aIqZGRakncXv9cNQ_2(p, n);
		putDataIntoDest__fYECstGN5jPehhn5p8Iclg(p, d, n, T96_);
	}
	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* T98_;
		T98_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T98_ = genLiteral__NYI5fC69aIqZGRakncXv9cNQ_2(p, n);
		putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, n, T98_, ((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);
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		op = (*n)._kind_6.sons->data[((NI) 0)];
		{
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a;
			if (!((*n).typ == 0)) goto LA102_;
			nimZeroMem((void*)(&a), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			{
				NIM_BOOL T106_;
				T106_ = (NIM_BOOL)0;
				T106_ = ((*op).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
				if (!(T106_)) goto LA107_;
				if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*op).kind)>>3] &(1U<<((NU)((*op).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
				T106_ = !(((*(*op)._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0)));
				LA107_: ;
				if (!T106_) goto LA108_;
				if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*op).kind)>>3] &(1U<<((NU)((*op).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
				genMagicExpr__TU9cJnldbmGa9bZDxaR6I4tg(p, n, (&a), (*(*op)._kind_4.sym).magic);
			}
			goto LA104_;
			LA108_: ;
			{
				genCall__BKdMcfvryaJLplX0oFPcAQ_7(p, n, (&a));
			}
			LA104_: ;
		}
		goto LA100_;
		LA102_: ;
		{
			{
				NIM_BOOL T114_;
				T114_ = (NIM_BOOL)0;
				T114_ = ((*op).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
				if (!(T114_)) goto LA115_;
				if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*op).kind)>>3] &(1U<<((NU)((*op).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
				T114_ = !(((*(*op)._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0)));
				LA115_: ;
				if (!T114_) goto LA116_;
				if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*op).kind)>>3] &(1U<<((NU)((*op).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
				genMagicExpr__TU9cJnldbmGa9bZDxaR6I4tg(p, n, d, (*(*op)._kind_4.sym).magic);
			}
			goto LA112_;
			LA116_: ;
			{
				genCall__BKdMcfvryaJLplX0oFPcAQ_7(p, n, d);
			}
			LA112_: ;
		}
		LA100_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39):
	{
		{
			NIM_BOOL T122_;
			NI T124_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T127_;
			T122_ = (NIM_BOOL)0;
			T122_ = isDeepConstExpr__sjm2oD6Aq9cG39aPE7CTvtmA(n, NIM_FALSE);
			if (!(T122_)) goto LA123_;
			T124_ = (NI)0;
			T124_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			T122_ = !((T124_ == ((NI) 0)));
			LA123_: ;
			if (!T122_) goto LA125_;
			T127_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T127_ = genSetNode__NYI5fC69aIqZGRakncXv9cNQ_4(p, n);
			putIntoDest__6NyA5DzsDGY17BhjidN65Q(p, d, n, T127_, ((tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		goto LA120_;
		LA125_: ;
		{
			genSetConstr__BKdMcfvryaJLplX0oFPcAQ_18(p, n, d);
		}
		LA120_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41):
	{
		{
			NIM_BOOL T132_;
			NI T134_;
			T132_ = (NIM_BOOL)0;
			T132_ = isDeepConstExpr__sjm2oD6Aq9cG39aPE7CTvtmA(n, NIM_FALSE);
			if (!(T132_)) goto LA133_;
			T134_ = (NI)0;
			T134_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			T132_ = !((T134_ == ((NI) 0)));
			LA133_: ;
			if (!T132_) goto LA135_;
			exprComplexConst__8mAL9ckajemzgfLPfeZVNoQ_8(p, n, d);
		}
		goto LA130_;
		LA135_: ;
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T138_;
			T138_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T138_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36134350144710928));
			if (!((*T138_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24))) goto LA139_;
			genSeqConstr__8mAL9ckajemzgfLPfeZVNoQ_6(p, n, d);
		}
		goto LA130_;
		LA139_: ;
		{
			genArrayConstr__8mAL9ckajemzgfLPfeZVNoQ_9(p, n, d);
		}
		LA130_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160):
	{
		{
			NIM_BOOL T145_;
			NIM_BOOL T146_;
			NI T149_;
			T145_ = (NIM_BOOL)0;
			T146_ = (NIM_BOOL)0;
			T146_ = !(((*n).typ == NIM_NIL));
			if (!(T146_)) goto LA147_;
			T146_ = ((*(*n).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
			LA147_: ;
			T145_ = T146_;
			if (!(T145_)) goto LA148_;
			T149_ = (NI)0;
			T149_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			T145_ = (T149_ == ((NI) 2));
			LA148_: ;
			if (!T145_) goto LA150_;
			genClosure__8mAL9ckajemzgfLPfeZVNoQ_10(p, n, d);
		}
		goto LA143_;
		LA150_: ;
		{
			NIM_BOOL T153_;
			NI T155_;
			T153_ = (NIM_BOOL)0;
			T153_ = isDeepConstExpr__sjm2oD6Aq9cG39aPE7CTvtmA(n, NIM_FALSE);
			if (!(T153_)) goto LA154_;
			T155_ = (NI)0;
			T155_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			T153_ = !((T155_ == ((NI) 0)));
			LA154_: ;
			if (!T153_) goto LA156_;
			exprComplexConst__8mAL9ckajemzgfLPfeZVNoQ_8(p, n, d);
		}
		goto LA143_;
		LA156_: ;
		{
			genTupleConstr__8mAL9ckajemzgfLPfeZVNoQ_11(p, n, d);
		}
		LA143_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38):
	{
		genObjConstr__BKdMcfvryaJLplX0oFPcAQ_19(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 61):
	{
		genCast__BKdMcfvryaJLplX0oFPcAQ_20(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 60):
	{
		genConv__BKdMcfvryaJLplX0oFPcAQ_21(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 63):
	{
		genAddr__BKdMcfvryaJLplX0oFPcAQ_22(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
	{
		genBracketExpr__8mAL9ckajemzgfLPfeZVNoQ_12(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65):
	{
		genDeref__BKdMcfvryaJLplX0oFPcAQ_24(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
	{
		genRecordField__BKdMcfvryaJLplX0oFPcAQ_25(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46):
	{
		genCheckedRecordField__BKdMcfvryaJLplX0oFPcAQ_26(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 127):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 112):
	{
		genBlock__8mAL9ckajemzgfLPfeZVNoQ_13(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126):
	{
		genStmtListExpr__8mAL9ckajemzgfLPfeZVNoQ_14(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115):
	{
		genStmtList__UtJx89cn0a8CNSWWmaj6raA_6(p, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 48):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92):
	{
		genIf__8mAL9ckajemzgfLPfeZVNoQ_15(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 93):
	{
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*n)._kind_6.sons->data[((NI) 1)]).kind)>>3] &(1U<<((NU)((*(*n)._kind_6.sons->data[((NI) 1)]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*(*n)._kind_6.sons->data[((NI) 1)])._kind_6.sons ? (*(*n)._kind_6.sons->data[((NI) 1)])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*n)._kind_6.sons->data[((NI) 1)])._kind_6.sons ? (*(*n)._kind_6.sons->data[((NI) 1)])._kind_6.sons->Sup.len : 0)-1); }
		expr__8mAL9ckajemzgfLPfeZVNoQ(p, (*(*n)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)], d);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66):
	{
		downConv__8mAL9ckajemzgfLPfeZVNoQ_16(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 67):
	{
		upConv__8mAL9ckajemzgfLPfeZVNoQ_17(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 68):
	{
		genRangeChck__8mAL9ckajemzgfLPfeZVNoQ_18(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 69):
	{
		genRangeChck__8mAL9ckajemzgfLPfeZVNoQ_18(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 70):
	{
		genRangeChck__8mAL9ckajemzgfLPfeZVNoQ_18(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 71):
	{
		convStrToCStr__8mAL9ckajemzgfLPfeZVNoQ_19(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 72):
	{
		convCStrToStr__8mAL9ckajemzgfLPfeZVNoQ_20(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym_2;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
		sym_2 = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
		genProc__HbYPOpwLApFuBkISFGrmEQ((*p).module, sym_2);
		{
			NIM_BOOL T182_;
			NimStringDesc* T186_;
			T182_ = (NIM_BOOL)0;
			T182_ = ((*sym_2).loc.r == NIM_NIL);
			if (T182_) goto LA183_;
			T182_ = ((*sym_2).loc.lode == NIM_NIL);
			LA183_: ;
			if (!T182_) goto LA184_;
			T186_ = (NimStringDesc*)0;
			T186_ = rawNewString(((*(*sym_2).name).s ? (*(*sym_2).name).s->Sup.len : 0) + 20);
appendString(T186_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_435));
appendString(T186_, (*(*sym_2).name).s);
			internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, T186_);
		}
		LA184_: ;
		putLocIntoDest__SkhzpH2DDHJ7pbmCpsHIPg(p, d, (*sym_2).loc);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 155):
	{
		genClosure__8mAL9ckajemzgfLPfeZVNoQ_10(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_8(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_911));
	}
	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) 15))&31U)))!=0))) goto LA199_;
			genAsgn__9ap9b3IFVLSL9b9akVbfMyRxlA(p, n, NIM_FALSE);
		}
		LA199_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74):
	{
		{
			if (!!((((*n).flags &(1U<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 15))&31U)))!=0))) goto LA204_;
			genAsgn__9ap9b3IFVLSL9b9akVbfMyRxlA(p, n, !(((*p).prc == NIM_NIL)));
		}
		LA204_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 114):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ex;
		if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		ex = (*n)._kind_6.sons->data[((NI) 0)];
		{
			tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA a_2;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T211_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T212_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T213_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T214_;
			if (!!(((*ex).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA209_;
			genLineDir__QrTB5DOwbDX9bKAW7PNbuJA_2(p, n);
			nimZeroMem((void*)(&a_2), sizeof(tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA));
			initLocExprSingleUse__9biTBaXPz9cezuLjjWw9cSEGw(p, ex, (&a_2));
			T211_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T211_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			T212_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T212_ = amp___4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_997), a_2.r);
			T213_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T213_ = amp___Z7W1o5nPSc3ExfO5f7j1Gg(T212_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_908));
			T214_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T214_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T213_);
			add__IM4kcMNkkOLJtqdEqSxR8A(T211_, T214_);
		}
		LA209_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 89):
	{
		genAsmStmt__QrTB5DOwbDX9bKAW7PNbuJA_6(p, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 106):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 154):
	{
		switch ((*(*(*(*p).module).g).config).exc) {
		case ((tyEnum_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ) 3):
		{
			genTryGoto__re1pwmyeR32ikwnOC3vvzQ_3(p, n, d);
		}
		break;
		case ((tyEnum_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ) 2):
		{
			genTryCpp__re1pwmyeR32ikwnOC3vvzQ_4(p, n, d);
		}
		break;
		default:
		{
			genTrySetjmp__re1pwmyeR32ikwnOC3vvzQ_5(p, n, d);
		}
		break;
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 108):
	{
		genRaiseStmt__QrTB5DOwbDX9bKAW7PNbuJA_7(p, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98):
	{
		genTypeSection__t9a9a9bxmaOztYOfsfhQUOXXw_3((*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* T225_;
		T225_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T225_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(n);
		expr__8mAL9ckajemzgfLPfeZVNoQ(p, T225_, 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 (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 2)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
			if (!((*(*n)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA229_;
			if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
			if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
			if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
			prc = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
			{
				NIM_BOOL T233_;
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T234_;
				T233_ = (NIM_BOOL)0;
				T234_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
				T234_ = skipGenericOwner__lIu8wX6Beq6dBJgESOFFjg_3(prc);
				T233_ = ((*T234_).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6));
				if (!(T233_)) goto LA235_;
				T233_ = !((((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 27))&63U)))!=0));
				LA235_: ;
				if (!T233_) goto LA236_;
				{
					NIM_BOOL T240_;
					NIM_BOOL T241_;
					NIM_BOOL T243_;
					T240_ = (NIM_BOOL)0;
					T241_ = (NIM_BOOL)0;
					T241_ = ((262272 & (*prc).flags) == 128);
					if (T241_) goto LA242_;
					T243_ = (NIM_BOOL)0;
					T243_ = (((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 7))&63U)))!=0);
					if (!(T243_)) goto LA244_;
					T243_ = (((*prc).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA) 5))&15U)))!=0);
					LA244_: ;
					T241_ = T243_;
					LA242_: ;
					T240_ = T241_;
					if (T240_) goto LA245_;
					T240_ = ((*prc).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 14));
					LA245_: ;
					if (!T240_) goto LA246_;
					genProc__HbYPOpwLApFuBkISFGrmEQ((*p).module, prc);
				}
				LA246_: ;
			}
			LA236_: ;
		}
		LA229_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 95):
	{
		genParForStmt__QrTB5DOwbDX9bKAW7PNbuJA_9(p, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 157):
	{
		genState__UtJx89cn0a8CNSWWmaj6raA_11(p, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 156):
	{
		NI TM__MQdRN7fpbG7rPm4JpVVAhA_1112;
		if (nimAddInt((*p).splitDecls, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1112)) { raiseOverflow(); };
		(*p).splitDecls = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1112);
		genGotoState__UtJx89cn0a8CNSWWmaj6raA_12(p, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 158):
	{
		genBreakState__8mAL9ckajemzgfLPfeZVNoQ_23(p, n, d);
	}
	break;
	default:
	{
		NimStringDesc* T253_;
		T253_ = (NimStringDesc*)0;
		T253_ = rawNewString((reprEnum((NI)(*n).kind, (&NTI__G4E4Gxe7oI2Cm03rkiOzQw_)) ? reprEnum((NI)(*n).kind, (&NTI__G4E4Gxe7oI2Cm03rkiOzQw_))->Sup.len : 0) + 25);
appendString(T253_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_548));
appendString(T253_, reprEnum((NI)(*n).kind, (&NTI__G4E4Gxe7oI2Cm03rkiOzQw_)));
appendString(T253_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1115));
		internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, T253_);
	}
	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 = hasHint__nhq3WvyhDl20egvbLwYMMw_2((*(*(*p).module).g).config, ((tyEnum_TMsgKind__9aTDTIqNJIW9bjpBdW7rixiA) 79));
	{
		if (!isPush) goto LA3_;
		pushInfoContext__uDLK9aoAOWwwFTev4NOwF7Q((*(*(*p).module).g).config, (*t).info, ((NimStringDesc*) NIM_NIL));
	}
	LA3_: ;
	expr__8mAL9ckajemzgfLPfeZVNoQ(p, t, (&a));
	{
		if (!isPush) goto LA7_;
		popInfoContext__O9arH9bYenXLOr27ZSmcQnEw_3((*(*(*p).module).g).config);
	}
	LA7_: ;
	{
		NimStringDesc* T13_;
		if (!!(((71 &(1U<<((NU)(a.k)&15U)))!=0))) goto LA11_;
		T13_ = (NimStringDesc*)0;
		T13_ = dollar___r38WafKlW80RkvoZTcia4Q(TM__MQdRN7fpbG7rPm4JpVVAhA_1116);
		internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*(*(*p).module).g).config, T13_);
	}
	LA11_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, addHcrInitGuards__fTdzF9aUiQk4rKtSH3doafQ)(tyObject_TCProc__g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL* inInitGuard) {
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115))) goto LA3_;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* child;
			child = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
				i_2 = ((NI) 0);
				{
					while (1) {
						NI TM__MQdRN7fpbG7rPm4JpVVAhA_11;
						if (!(i_2 < colontmp_)) goto LA8;
						i = i_2;
						if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
						if ((NU)(i) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
						child = (*n)._kind_6.sons->data[i];
						addHcrInitGuards__fTdzF9aUiQk4rKtSH3doafQ(p, child, inInitGuard);
						if (nimAddInt(i_2, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_11)) { raiseOverflow(); };
						i_2 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_11);
					} LA8: ;
				}
			}
		}
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL stmtShouldExecute;
		NIM_BOOL T10_;
		T10_ = (NIM_BOOL)0;
		T10_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 100));
		if (T10_) goto LA11_;
		T10_ = (((*n).flags &(1U<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 20))&31U)))!=0);
		LA11_: ;
		stmtShouldExecute = T10_;
		{
			if (!(*inInitGuard)) goto LA14_;
			{
				if (!stmtShouldExecute) goto LA18_;
				endBlock__0dpuY9coTlraj8JXIe2BzVw(p);
				(*inInitGuard) = NIM_FALSE;
			}
			LA18_: ;
		}
		goto LA12_;
		LA14_: ;
		{
			{
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T25_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T26_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T27_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T28_;
				NimStringDesc* res;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T37_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T38_;
				NI T39_;
				if (!!(stmtShouldExecute)) goto LA23_;
				T25_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T25_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				T26_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T26_ = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_18));
				T27_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T27_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T26_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T25_, T27_);
				T28_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
				T28_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA31_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_19));
				}
				LA31_: ;
				res = rawNewString(((NI) 80));
				res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_20));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA35_;
					res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA35_: ;
				T37_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T37_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
				T38_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T38_ = indentLine__5PupwEBrKjp65kTtpnAp9bQ(p, T37_);
				add__IM4kcMNkkOLJtqdEqSxR8A(T28_, T38_);
				T39_ = (NI)0;
				T39_ = startBlockInternal__1ygdb876UM9astcNUXtgUBQ(p);
				(*inInitGuard) = NIM_TRUE;
			}
			LA23_: ;
		}
		LA12_: ;
		genStmts__QrTB5DOwbDX9bKAW7PNbuJA(p, n);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, myProcess__mtin0JSWMFuuGt6GFCQvbg)(tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w* b, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* transformedN;
{	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	{
		if (!(b == NIM_NIL)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	if (b && !isObj((*b).Sup.m_type, (&NTI__9cG6VsX22pOhho6kxyhFVow_))){ raiseObjectConversionError(); }
	m = ((tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow*) (b));
	{
		NIM_BOOL T7_;
		NIM_BOOL T9_;
		T7_ = (NIM_BOOL)0;
		T7_ = skipCodegen__nwSFZweO0MiC1cK59cLXWvgpasses((*(*m).g).config, n);
		if (T7_) goto LA8_;
		T9_ = (NIM_BOOL)0;
		T9_ = moduleHasChanged__nJ9czoaD1xFoTuiaDFAAiaApasses((*(*m).g).graph, (*m).module);
		T7_ = !(T9_);
		LA8_: ;
		if (!T7_) goto LA10_;
		goto BeforeRet_;
	}
	LA10_: ;
	(*(*m).initProc).options = initProcOptions__qttThLa3xHNEeApwU61sZA(m);
	transformedN = transformStmt__o9bTtoSsaDmuiyVzV15dOyg_2((*(*m).g).graph, (*m).module, n);
	{
		if (!(((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 41))&63U)))!=0)) goto LA14_;
		transformedN = injectDestructorCalls__vFi0WDJke19caFCX1tc1FkQ((*(*m).g).graph, (*m).module, transformedN);
	}
	LA14_: ;
	{
		NIM_BOOL T18_;
		T18_ = (NIM_BOOL)0;
		T18_ = hcrOn__a2BRACVCGIuooKjHNmoLsA(m);
		if (!T18_) goto LA19_;
		addHcrInitGuards__fTdzF9aUiQk4rKtSH3doafQ((*m).initProc, transformedN, (&(*m).inHcrInitGuard));
	}
	goto LA16_;
	LA19_: ;
	{
		genProcBody__IroqGJs3T8by0fVw4XMZJg((*m).initProc, transformedN);
	}
	LA16_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, myClose__f8dWe5MYj8ZjDSubo9c6jOg)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w* b, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m;
	NI T86_;
{	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	{
		if (!(b == NIM_NIL)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	if (b && !isObj((*b).Sup.m_type, (&NTI__9cG6VsX22pOhho6kxyhFVow_))){ raiseObjectConversionError(); }
	m = ((tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow*) (b));
	{
		if (!(((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 14))&63U)))!=0)) goto LA7_;
		{
			NIM_BOOL T11_;
			tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T13_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T16_;
			T11_ = (NIM_BOOL)0;
			T11_ = ((*(*(*m).g).config).exc == ((tyEnum_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ) 3));
			if (!(T11_)) goto LA12_;
			T13_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
			T13_ = getCompilerProc__4qXS5VHrKJ5hq9crvvz8tIA(graph, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1117));
			T11_ = !((T13_ == NIM_NIL));
			LA12_: ;
			if (!T11_) goto LA14_;
			T16_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T16_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1117));
			(void)(T16_);
		}
		LA14_: ;
		{
			if (!((384 & (*(*(*m).g).config).globalOptions) == 0)) goto LA19_;
			{
				NI i;
				NI colontmp_;
				NI T22_;
				NI res;
				i = (NI)0;
				colontmp_ = (NI)0;
				T22_ = (((*graph).globalDestructors ? (*graph).globalDestructors->Sup.len : 0)-1);
				colontmp_ = T22_;
				res = colontmp_;
				{
					while (1) {
						NI TM__MQdRN7fpbG7rPm4JpVVAhA_1118;
						if (!(((NI) 0) <= res)) goto LA24;
						i = res;
						if ((NU)(i) >= (NU)((*graph).globalDestructors ? (*graph).globalDestructors->Sup.len : 0)){ raiseIndexError2(i,((*graph).globalDestructors ? (*graph).globalDestructors->Sup.len : 0)-1); }
						add__P8dDSotTW25BkfbyspojGg(n, (*graph).globalDestructors->data[i]);
						if (nimSubInt(res, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1118)) { raiseOverflow(); };
						res = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1118);
					} LA24: ;
				}
			}
		}
		LA19_: ;
	}
	LA7_: ;
	{
		NIM_BOOL T27_;
		T27_ = (NIM_BOOL)0;
		T27_ = skipCodegen__nwSFZweO0MiC1cK59cLXWvgpasses((*(*m).g).config, n);
		if (!T27_) goto LA28_;
		goto BeforeRet_;
	}
	LA28_: ;
	{
		NIM_BOOL T32_;
		T32_ = (NIM_BOOL)0;
		T32_ = moduleHasChanged__nJ9czoaD1xFoTuiaDFAAiaApasses(graph, (*m).module);
		if (!T32_) goto LA33_;
		{
			if (!!((n == NIM_NIL))) goto LA37_;
			(*(*m).initProc).options = initProcOptions__qttThLa3xHNEeApwU61sZA(m);
			genProcBody__IroqGJs3T8by0fVw4XMZJg((*m).initProc, n);
		}
		LA37_: ;
		{
			NIM_BOOL T41_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T44_;
			T41_ = (NIM_BOOL)0;
			T41_ = hcrOn__a2BRACVCGIuooKjHNmoLsA(m);
			if (!T41_) goto LA42_;
			T44_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T44_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1119));
			(void)(T44_);
			{
				if (!(*m).inHcrInitGuard) goto LA47_;
				endBlock__0dpuY9coTlraj8JXIe2BzVw((*m).initProc);
			}
			LA47_: ;
		}
		LA42_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* disp;
			if (!(((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 14))&63U)))!=0)) goto LA51_;
			{
				NIM_BOOL T55_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T58_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T59_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T60_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T61_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T62_;
				T55_ = (NIM_BOOL)0;
				T55_ = hcrOn__a2BRACVCGIuooKjHNmoLsA(m);
				if (!T55_) goto LA56_;
				T58_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T58_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_354));
				(void)(T58_);
				T59_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T59_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_359));
				(void)(T59_);
				T60_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T60_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_369));
				(void)(T60_);
				T61_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T61_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1120));
				(void)(T61_);
				T62_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T62_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1121));
				(void)(T62_);
			}
			LA56_: ;
			{
				NIM_BOOL T65_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T69_;
				T65_ = (NIM_BOOL)0;
				T65_ = !(((*(*(*m).g).config).target.targetOS == ((tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ) 28)));
				if (!(T65_)) goto LA66_;
				T65_ = !(((*(*(*m).g).config).selectedGC == ((tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw) 1)));
				LA66_: ;
				if (!T65_) goto LA67_;
				T69_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T69_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1122));
				(void)(T69_);
			}
			LA67_: ;
			{
				NIM_BOOL T72_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T76_;
				T72_ = (NIM_BOOL)0;
				T72_ = emulatedThreadVars__7uEG6ZwO4OOj3nQvIat2mwcgen((*(*m).g).config);
				if (!(T72_)) goto LA73_;
				T72_ = !(((*(*(*m).g).config).target.targetOS == ((tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ) 28)));
				LA73_: ;
				if (!T72_) goto LA74_;
				T76_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T76_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1123));
				(void)(T76_);
			}
			LA74_: ;
			{
				NI T79_;
				T79_ = ((*(*m).g).forwardedProcs ? (*(*m).g).forwardedProcs->Sup.len : 0);
				if (!(T79_ == ((NI) 0))) goto LA80_;
				(*m).flags |= ((NU8)1)<<((((tyEnum_CodegenFlag__9c7EibnXBApMXwrQsaaMb6Q) 5)) & 7);
			}
			LA80_: ;
			disp = generateMethodDispatchers__7t0GJlNQwZyLt0Kz3RhRdw(graph);
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
				x = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				{
					NI i_2;
					NI colontmp__2;
					NI i_3;
					i_2 = (NI)0;
					colontmp__2 = (NI)0;
					colontmp__2 = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(disp);
					i_3 = ((NI) 0);
					{
						while (1) {
							NI TM__MQdRN7fpbG7rPm4JpVVAhA_1124;
							if (!(i_3 < colontmp__2)) goto LA85;
							i_2 = i_3;
							if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*disp).kind)>>3] &(1U<<((NU)((*disp).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
							if ((NU)(i_2) >= (NU)((*disp)._kind_6.sons ? (*disp)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_2,((*disp)._kind_6.sons ? (*disp)._kind_6.sons->Sup.len : 0)-1); }
							x = (*disp)._kind_6.sons->data[i_2];
							if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_27[(NU)((*x).kind)>>3] &(1U<<((NU)((*x).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_28)); }
							genProcAux__HbYPOpwLApFuBkISFGrmEQ_4(m, (*x)._kind_4.sym);
							if (nimAddInt(i_3, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1124)) { raiseOverflow(); };
							i_3 = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1124);
						} LA85: ;
					}
				}
			}
		}
		LA51_: ;
	}
	LA33_: ;
	asgnRef((void**) (&(*(*m).g).modulesClosed), (tySequence__SHVxAqOYtIy7teT1q4s0zQ*) incrSeqV3((TGenericSeq*)((*(*m).g).modulesClosed), (&NTI__SHVxAqOYtIy7teT1q4s0zQ_)));
	T86_ = (*(*m).g).modulesClosed->Sup.len++;
	asgnRef((void**) (&(*(*m).g).modulesClosed->data[T86_]), m);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, pop__sJkHMuFHoY5Elz2ZDxz78Asystem)(tySequence__DfgJFJEYoj4YBAHLZPl5lQ** s) {
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* result;
	NI L;
	NI T1_;
	NI TM__MQdRN7fpbG7rPm4JpVVAhA_1125;
	result = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T1_ = ((*s) ? (*s)->Sup.len : 0);
	if (nimSubInt(T1_, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1125)) { raiseOverflow(); };
	L = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1125);
	if ((NU)(L) >= (NU)((*s) ? (*s)->Sup.len : 0)){ raiseIndexError2(L,((*s) ? (*s)->Sup.len : 0)-1); }
	result = (*s)->data[L];
	if ((L) < ((NI) 0) || (L) > ((NI) 2147483647)){ raiseRangeErrorI(L, ((NI) 0), ((NI) 2147483647)); }
	unsureAsgnRef((void**) (&(*s)), (tySequence__DfgJFJEYoj4YBAHLZPl5lQ*) setLengthSeqV2(&((*s))->Sup, (&NTI__DfgJFJEYoj4YBAHLZPl5lQ_), ((NI) (L))));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genForwardedProcs__PBGOqkExHgxzX6Rn0nJkYg)(tyObject_BModuleListcolonObjectType___CpP4eJLbv5ZwofQXpESuGA* g) {
	{
		while (1) {
			NI T3_;
			tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* prc;
			tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* ms;
			tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m;
			T3_ = ((*g).forwardedProcs ? (*g).forwardedProcs->Sup.len : 0);
			if (!(((NI) 0) < T3_)) goto LA2;
			prc = pop__sJkHMuFHoY5Elz2ZDxz78Asystem((&(*g).forwardedProcs));
			ms = getModule__xfh8ar7fDxVX2A4OO9b5sqQ(prc);
			if ((NU)((*ms).position) >= (NU)((*g).modules ? (*g).modules->Sup.len : 0)){ raiseIndexError2((*ms).position,((*g).modules ? (*g).modules->Sup.len : 0)-1); }
			m = (*g).modules->data[(*ms).position];
			{
				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_1126));
appendString(T8_, (*(*prc).name).s);
				internalError__yTu5SGHF0j0P9cQrqN7YylA((*(*m).g).config, (*prc).info, T8_);
			}
			LA6_: ;
			genProcNoForward__HbYPOpwLApFuBkISFGrmEQ_3(m, prc);
		} LA2: ;
	}
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getSomeNameForModule__JBd7XGjgK9ab0QMtKIFvb8Q)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* m) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	NimStringDesc* T14_;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!!(((*m).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1128));
	}
	LA3_: ;
	{
		if (!!(((*(*m).owner).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 24)))) goto LA7_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1129));
	}
	LA7_: ;
	{
		NimStringDesc* T13_;
		if (!((49152 & (*m).flags) == 0)) goto LA11_;
		T13_ = (NimStringDesc*)0;
		T13_ = mangle__GxzvEIRbrShQbyJNboTw7A((*(*(*m).owner).name).s);
		result = rope__yShmEg9cffWxI7s5XzEKBow(T13_);
		add__yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_3));
	}
	LA11_: ;
	T14_ = (NimStringDesc*)0;
	T14_ = mangle__GxzvEIRbrShQbyJNboTw7A((*(*m).name).s);
	add__yG4AKzsBRS1W4MANDlXQeg(&result, T14_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getSomeInitName__E8VUcJLPfNp8S9aZKgHijew)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, NimStringDesc* suffix) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = hcrOn__a2BRACVCGIuooKjHNmoLsA(m);
		if (!!(T3_)) goto LA4_;
		result = getSomeNameForModule__JBd7XGjgK9ab0QMtKIFvb8Q((*m).module);
	}
	LA4_: ;
	add__yG4AKzsBRS1W4MANDlXQeg(&result, suffix);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getInitName__ao6gUnuVfQLtZ89c4kaIKfg_4)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!(((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 14))&63U)))!=0)) goto LA3_;
		result = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1127));
	}
	goto LA1_;
	LA3_: ;
	{
		result = getSomeInitName__E8VUcJLPfNp8S9aZKgHijew(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1130));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getHcrInitName__ao6gUnuVfQLtZ89c4kaIKfg_5)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	result = getSomeInitName__E8VUcJLPfNp8S9aZKgHijew(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1146));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, hcrGetProcLoadCode__uWPA1lTRrPufWdliMF9aGrg)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, NimStringDesc* sym, NimStringDesc* prefix, NimStringDesc* handle, NimStringDesc* getProcFunc) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* prc;
	NimStringDesc* extname;
	NimStringDesc* T5_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* tmp;
	tyArray__duFhZXIIlrbrM62cWjNekg T14_;
	NimStringDesc* T15_;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	prc = getCompilerProc__4qXS5VHrKJ5hq9crvvz8tIA((*(*m).g).graph, sym);
	{
		if (!!(!((prc == NIM_NIL)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1149));
	}
	LA3_: ;
	if (((TM__MQdRN7fpbG7rPm4JpVVAhA_9[(NU)((*(*prc).ast).kind)>>3] &(1U<<((NU)((*(*prc).ast).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_10)); }
	if ((NU)(((NI) 0)) >= (NU)((*(*prc).ast)._kind_6.sons ? (*(*prc).ast)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*prc).ast)._kind_6.sons ? (*(*prc).ast)._kind_6.sons->Sup.len : 0)-1); }
	fillProcLoc__t9a9a9bxmaOztYOfsfhQUOXXw(m, (*(*prc).ast)._kind_6.sons->data[((NI) 0)]);
	T5_ = (NimStringDesc*)0;
	T5_ = rawNewString((prefix ? prefix->Sup.len : 0) + (sym ? sym->Sup.len : 0) + 0);
appendString(T5_, prefix);
appendString(T5_, sym);
	extname = T5_;
	tmp = mangleDynLibProc__MkmvPNwLUVhzodPsMjdbJw(prc);
	asgnRef((void**) (&(*prc).loc.r), tmp);
	asgnRef((void**) (&(*(*prc).typ).sym), NIM_NIL);
	{
		NIM_BOOL T8_;
		tyArray__mrugoXXRZUEeG9bEXo9auBKw T11_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T12_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T13_;
		T8_ = (NIM_BOOL)0;
		T8_ = containsOrIncl__VFt0uM7bgfJ5age9alOsU9cg((&(*m).declaredThings), (*prc).Sup.id);
		if (!!(T8_)) goto LA9_;
		nimZeroMem((void*)T11_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
		T11_[0] = (*prc).loc.r;
		T12_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T12_ = t__XNOXh7uniWNgiq58C9bW49awcgen((*prc).loc);
		T11_[1] = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA(m, T12_);
		T13_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T13_ = percent___E9bSTz8DQ4tgiLV9avQjFgFA(T11_, 2);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], T13_);
	}
	LA9_: ;
	nimZeroMem((void*)T14_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
	T14_[0] = tmp;
	T14_[1] = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA(m, (*prc).typ);
	T14_[2] = rope__yShmEg9cffWxI7s5XzEKBow(getProcFunc);
	T14_[3] = rope__yShmEg9cffWxI7s5XzEKBow(handle);
	T15_ = (NimStringDesc*)0;
	T15_ = rawNewString((prefix ? prefix->Sup.len : 0) + (sym ? sym->Sup.len : 0) + 0);
appendString(T15_, prefix);
appendString(T15_, sym);
	T14_[4] = makeCString__vQJydtKy4Nf6bXPYtbmjtg(T15_);
	result = percent___3CQpPXVDiNqC3jKO8Juliw(T14_, 5);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getDatInitName__ao6gUnuVfQLtZ89c4kaIKfg_6)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	result = getSomeInitName__E8VUcJLPfNp8S9aZKgHijew(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1155));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genDatInitCode__7ll08CGQoDzh9cxhZCroU4w_2)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m) {
	NIM_BOOL moduleDatInitRequired;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* prc;
	tyArray__mrugoXXRZUEeG9bEXo9auBKw T1_;
	NimStringDesc* T2_;
	tyArray__qTjAvTvKF9anytN1At69aJMQ T19_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T20_;
	moduleDatInitRequired = hcrOn__a2BRACVCGIuooKjHNmoLsA(m);
	nimZeroMem((void*)T1_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
	T2_ = (NimStringDesc*)0;
	{
		NIM_BOOL T5_;
		T5_ = (NIM_BOOL)0;
		T5_ = hcrOn__a2BRACVCGIuooKjHNmoLsA(m);
		if (!T5_) goto LA6_;
		T2_ = copyString(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1131));
	}
	goto LA3_;
	LA6_: ;
	{
		T2_ = copyString(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1132));
	}
	LA3_: ;
	T1_[0] = rope__yShmEg9cffWxI7s5XzEKBow(T2_);
	T1_[1] = getDatInitName__ao6gUnuVfQLtZ89c4kaIKfg_6(m);
	prc = percent___2Ixv9aZ9bvpNaVAVzYBJlUPg(T1_, 2);
	genCLineDir__W2V1U5l2z2M9c2i5Phjz9cow(&prc, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1133), ((NI) 999999), (*(*m).g).config);
	{
		tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg i;
		NI res;
		i = (tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg)0;
		res = ((NI) 14);
		{
			while (1) {
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_1156;
				if (!(res <= ((NI) 18))) goto LA11;
				if ((res) < ((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 0) || (res) > ((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 19)){ raiseRangeErrorI(res, ((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 0), ((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 19)); }
				i = ((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) (res));
				{
					NI T14_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T17_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T18_;
					T14_ = (NI)0;
					T14_ = len__9b0YRltzV3kNSE9aQTsG82wg((*m).s[(i)- 0]);
					if (!!((T14_ == ((NI) 0)))) goto LA15_;
					moduleDatInitRequired = NIM_TRUE;
					T17_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T17_ = genSectionStart__KYNwN8RXzjqIkzxFSwHsxw(i, (*(*m).g).config);
					add__IM4kcMNkkOLJtqdEqSxR8A(&prc, T17_);
					add__IM4kcMNkkOLJtqdEqSxR8A(&prc, (*m).s[(i)- 0]);
					T18_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T18_ = genSectionEnd__KYNwN8RXzjqIkzxFSwHsxw_2(i, (*(*m).g).config);
					add__IM4kcMNkkOLJtqdEqSxR8A(&prc, T18_);
				}
				LA15_: ;
				if (nimAddInt(res, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1156)) { raiseOverflow(); };
				res = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1156);
			} LA11: ;
		}
	}
	nimZeroMem((void*)T19_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
	T20_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T20_ = percent___4L62Yp9bLO2ZDcvBG9bSvP9bw(T19_, 0);
	add__IM4kcMNkkOLJtqdEqSxR8A(&prc, T20_);
	{
		if (!moduleDatInitRequired) goto LA23_;
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 13))- 0], prc);
	}
	LA23_: ;
}
static N_INLINE(NI, hash__ixIcN23Rzgwj4rjH9cMHDWQhashes)(NI32 x) {
	NI result;
	result = (NI)0;
	result = ((NI) (x));
	return result;
}
static N_INLINE(NIM_BOOL, isFilled__5Qpmu5QqwDY0esVXn6wf7wtables)(NI hcode) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = !((hcode == ((NI) 0)));
	return result;
}
static N_INLINE(NI, nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables)(NI h, NI maxHash) {
	NI result;
	NI TM__MQdRN7fpbG7rPm4JpVVAhA_1157;
	result = (NI)0;
	if (nimAddInt(h, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1157)) { raiseOverflow(); };
	result = (NI)((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1157) & maxHash);
	return result;
}
static N_INLINE(NI, rawGet__QnNqXOulpiE3rTDm0rj6bgtables)(tyObject_Table__fdKWDDO1P17zvuQPReVgRA t, NI32 key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
	NI TM__MQdRN7fpbG7rPm4JpVVAhA_1158;
{	result = (NI)0;
	(*hc) = hash__ixIcN23Rzgwj4rjH9cMHDWQhashes(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)){ raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1); }
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)){ raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1); }
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)){ raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1); }
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(h, T20_);
		} LA12: ;
	}
	if (nimSubInt(((NI) -1), h, &TM__MQdRN7fpbG7rPm4JpVVAhA_1158)) { raiseOverflow(); };
	result = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1158);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, registerModuleToMain__9aldr9cciNpmwLn9bc4Nq2PGQ)(tyObject_BModuleListcolonObjectType___CpP4eJLbv5ZwofQXpESuGA* g, tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* init;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* datInit;
{	init = getInitName__ao6gUnuVfQLtZ89c4kaIKfg_4(m);
	datInit = getDatInitName__ao6gUnuVfQLtZ89c4kaIKfg_6(m);
	{
		NIM_BOOL T3_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* hcrModuleMeta;
		tyArray__qTjAvTvKF9anytN1At69aJMQ T6_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* systemModulePath;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* mainModulePath;
		NI hcX60gensym119720025_;
		NI indexX60gensym119720026_;
		NIM_BOOL hasKeyX60gensym119720027_;
		tyArray__qTjAvTvKF9anytN1At69aJMQ T28_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T29_;
		tyArray__qTjAvTvKF9anytN1At69aJMQ T30_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T31_;
		tyArray__JiWwrsTRC6xqNlGcBthSVA T32_;
		tyArray__qtqsWM5aXmcpMIVmvq3kAA T33_;
		NimStringDesc* T34_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T35_;
		T3_ = (NIM_BOOL)0;
		T3_ = hcrOn__a2BRACVCGIuooKjHNmoLsA(m);
		if (!T3_) goto LA4_;
		nimZeroMem((void*)T6_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
		hcrModuleMeta = percent___k9bgPIs43oLgxnk1l4TNQaw(T6_, 0);
		if ((NU)((*(*(*g).graph).config).m.systemFileIdx) >= (NU)((*g).modules ? (*g).modules->Sup.len : 0)){ raiseIndexError2((*(*(*g).graph).config).m.systemFileIdx,((*g).modules ? (*g).modules->Sup.len : 0)-1); }
		systemModulePath = getModuleDllPath__RaNE9b8A430I9bfpgZmdrC1w_3(m, (*(*g).modules->data[(*(*(*g).graph).config).m.systemFileIdx]).module);
		mainModulePath = getModuleDllPath__RaNE9b8A430I9bfpgZmdrC1w_3(m, (*m).module);
		{
			tyArray__JiWwrsTRC6xqNlGcBthSVA T11_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T12_;
			if (!(((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 14))&63U)))!=0)) goto LA9_;
			nimZeroMem((void*)T11_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
			T11_[0] = systemModulePath;
			T12_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T12_ = percent___5MqeIopvDuA9aozxL79cQ88g(T11_, 1);
			add__IM4kcMNkkOLJtqdEqSxR8A(&hcrModuleMeta, T12_);
		}
		LA9_: ;
		hcX60gensym119720025_ = (NI)0;
		indexX60gensym119720026_ = rawGet__QnNqXOulpiE3rTDm0rj6bgtables((*(*g).graph).importDeps, ((NI32) ((*(*m).module).position)), (&hcX60gensym119720025_));
		hasKeyX60gensym119720027_ = (((NI) 0) <= indexX60gensym119720026_);
		{
			tySequence__48JTohSgTy339bRxHzUD8KA** deps;
			if (!hasKeyX60gensym119720027_) goto LA15_;
			if ((NU)(indexX60gensym119720026_) >= (NU)((*(*g).graph).importDeps.data ? (*(*g).graph).importDeps.data->Sup.len : 0)){ raiseIndexError2(indexX60gensym119720026_,((*(*g).graph).importDeps.data ? (*(*g).graph).importDeps.data->Sup.len : 0)-1); }
			deps = (&(*(*g).graph).importDeps.data->data[indexX60gensym119720026_].Field2);
			{
				NI32 curr;
				NI i;
				NI L;
				NI T18_;
				curr = (NI32)0;
				i = ((NI) 0);
				T18_ = ((*deps) ? (*deps)->Sup.len : 0);
				L = T18_;
				{
					while (1) {
						tyArray__JiWwrsTRC6xqNlGcBthSVA T21_;
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T22_;
						NI TM__MQdRN7fpbG7rPm4JpVVAhA_1159;
						if (!(i < L)) goto LA20;
						if ((NU)(i) >= (NU)((*deps) ? (*deps)->Sup.len : 0)){ raiseIndexError2(i,((*deps) ? (*deps)->Sup.len : 0)-1); }
						curr = (*deps)->data[i];
						nimZeroMem((void*)T21_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
						if ((NU)(curr) >= (NU)((*g).modules ? (*g).modules->Sup.len : 0)){ raiseIndexError2(curr,((*g).modules ? (*g).modules->Sup.len : 0)-1); }
						T21_[0] = getModuleDllPath__RaNE9b8A430I9bfpgZmdrC1w_3(m, (*(*g).modules->data[curr]).module);
						T22_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
						T22_ = percent___5MqeIopvDuA9aozxL79cQ88g(T21_, 1);
						add__IM4kcMNkkOLJtqdEqSxR8A(&hcrModuleMeta, T22_);
						if (nimAddInt(i, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1159)) { raiseOverflow(); };
						i = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1159);
						{
							NI T25_;
							T25_ = ((*deps) ? (*deps)->Sup.len : 0);
							if (!!((T25_ == L))) goto LA26_;
							failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_26));
						}
						LA26_: ;
					} LA20: ;
				}
			}
		}
		LA15_: ;
		nimZeroMem((void*)T28_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
		T29_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T29_ = percent___Zp9bMZDO5tEkvVLTxiKsBkA(T28_, 0);
		add__IM4kcMNkkOLJtqdEqSxR8A(&hcrModuleMeta, T29_);
		nimZeroMem((void*)T30_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
		T31_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T31_ = percent___j5FZyaqnqjc2dcsUkAp28Q(T30_, 0);
		add__IM4kcMNkkOLJtqdEqSxR8A(&hcrModuleMeta, T31_);
		nimZeroMem((void*)T32_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
		nimZeroMem((void*)T33_, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
		sigHash__mSn9a9aX0NBzWqerwPW0qRww_2((*m).module, T33_);
		T34_ = (NimStringDesc*)0;
		T34_ = dollar___0A9bslyIJ49bWrftLGh13rvg(T33_);
		T32_[0] = rope__yShmEg9cffWxI7s5XzEKBow(T34_);
		T35_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T35_ = percent___EbvvG9awBeRKzx8xuBIb7TA(T32_, 1);
		add__IM4kcMNkkOLJtqdEqSxR8A(&hcrModuleMeta, T35_);
		{
			tyArray__qTjAvTvKF9anytN1At69aJMQ T40_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T41_;
			tyArray__JiWwrsTRC6xqNlGcBthSVA T42_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T43_;
			tyArray__JiWwrsTRC6xqNlGcBthSVA T44_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T45_;
			tyArray__JiWwrsTRC6xqNlGcBthSVA T46_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T47_;
			tyArray__qTjAvTvKF9anytN1At69aJMQ T48_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T49_;
			tyArray__JiWwrsTRC6xqNlGcBthSVA T50_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T51_;
			tyArray__wqYjTJU9ab2ZgEFMaQc3vNA T52_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T53_;
			tyArray__JiWwrsTRC6xqNlGcBthSVA T54_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T55_;
			tyArray__JiWwrsTRC6xqNlGcBthSVA T56_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T57_;
			tyArray__qTjAvTvKF9anytN1At69aJMQ T58_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T59_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* osModulePath;
			NimStringDesc* T60_;
			NimStringDesc* T61_;
			tyArray__JiWwrsTRC6xqNlGcBthSVA T62_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T63_;
			tyArray__JiWwrsTRC6xqNlGcBthSVA T64_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T65_;
			tyArray__JiWwrsTRC6xqNlGcBthSVA T66_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T67_;
			if (!(((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 14))&63U)))!=0)) goto LA38_;
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*g).mainModProcs, hcrModuleMeta);
			nimZeroMem((void*)T40_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
			T41_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T41_ = percent___9a8besSQa09cOOt9b9cgdVwY9aQ(T40_, 0);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*g).mainModProcs, T41_);
			nimZeroMem((void*)T42_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
			T42_[0] = init;
			T43_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T43_ = percent___oVKF7oq59cRGAaMpvWzNWbw(T42_, 1);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*g).mainModProcs, T43_);
			nimZeroMem((void*)T44_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
			T44_[0] = datInit;
			T45_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T45_ = percent___oVKF7oq59cRGAaMpvWzNWbw(T44_, 1);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*g).mainModProcs, T45_);
			nimZeroMem((void*)T46_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
			T46_[0] = getHcrInitName__ao6gUnuVfQLtZ89c4kaIKfg_5(m);
			T47_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T47_ = percent___7ru3bwKuSx4Sc8ilsBmX3g(T46_, 1);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*g).mainModProcs, T47_);
			nimZeroMem((void*)T48_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
			T49_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T49_ = percent___MDIdJXTVckPj57aO7LMVgw(T48_, 0);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*g).mainModProcs, T49_);
			nimZeroMem((void*)T50_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
			T50_[0] = init;
			T51_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T51_ = percent___vQDE0VOBftnrpkVsM9cme4w(T50_, 1);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*g).mainModInit, T51_);
			nimZeroMem((void*)T52_, sizeof(tyArray__wqYjTJU9ab2ZgEFMaQc3vNA));
			T52_[0] = mainModulePath;
			T52_[1] = systemModulePath;
			T52_[2] = datInit;
			T53_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T53_ = percent___9bmR9bM9b0qqEqU0QJKnmLQnA(T52_, 3);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*g).otherModsInit, T53_);
			nimZeroMem((void*)T54_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
			T54_[0] = getHcrInitName__ao6gUnuVfQLtZ89c4kaIKfg_5(m);
			T55_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T55_ = percent___88tWbH31SmOWJjgJ7RnfHA(T54_, 1);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*g).mainDatInit, T55_);
			nimZeroMem((void*)T56_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
			T56_[0] = mainModulePath;
			T57_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T57_ = percent___t1CB59bEwlxfHZhNwNNz1bw(T56_, 1);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*g).mainDatInit, T57_);
			nimZeroMem((void*)T58_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
			T59_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T59_ = percent___YbLM7ZajsWOFLl4iSo0Krg(T58_, 0);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*g).mainDatInit, T59_);
			T60_ = (NimStringDesc*)0;
			T60_ = dollar___mZ66tEveFIQokq3arf8Klw(systemModulePath);
			T61_ = (NimStringDesc*)0;
			T61_ = nsuReplaceStr(T60_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1160), ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1161));
			osModulePath = rope__yShmEg9cffWxI7s5XzEKBow(T61_);
			nimZeroMem((void*)T62_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
			T62_[0] = osModulePath;
			T63_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T63_ = percent___t1CB59bEwlxfHZhNwNNz1bw(T62_, 1);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*g).mainDatInit, T63_);
			add__yG4AKzsBRS1W4MANDlXQeg(&(*g).mainDatInit, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1162));
			add__yG4AKzsBRS1W4MANDlXQeg(&(*g).mainDatInit, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1163));
			nimZeroMem((void*)T64_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
			T64_[0] = osModulePath;
			T65_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T65_ = percent___rH7Ns9bqAnnfkukwBIlz9bKg(T64_, 1);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*g).mainDatInit, T65_);
			nimZeroMem((void*)T66_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
			T66_[0] = osModulePath;
			T67_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T67_ = percent___zx9ctq3Ffe9aysjoWhZOzevQ(T66_, 1);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*g).mainDatInit, T67_);
			add__yG4AKzsBRS1W4MANDlXQeg(&(*g).mainDatInit, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1164));
			add__yG4AKzsBRS1W4MANDlXQeg(&(*g).mainDatInit, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1165));
		}
		goto LA36_;
		LA38_: ;
		{
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 12))- 0], hcrModuleMeta);
		}
		LA36_: ;
		goto BeforeRet_;
	}
	LA4_: ;
	{
		NI T71_;
		tyArray__JiWwrsTRC6xqNlGcBthSVA T74_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T75_;
		tyArray__JiWwrsTRC6xqNlGcBthSVA T76_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T77_;
		T71_ = (NI)0;
		T71_ = len__9b0YRltzV3kNSE9aQTsG82wg((*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 13))- 0]);
		if (!(((NI) 0) < T71_)) goto LA72_;
		nimZeroMem((void*)T74_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
		T74_[0] = datInit;
		T75_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T75_ = percent___T9a21DAzFCa3OqRooKKtkqw(T74_, 1);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*g).mainModProcs, T75_);
		nimZeroMem((void*)T76_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
		T76_[0] = datInit;
		T77_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T77_ = percent___vQDE0VOBftnrpkVsM9cme4w(T76_, 1);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*g).mainDatInit, T77_);
	}
	LA72_: ;
	{
		if (!(((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 15))&63U)))!=0)) goto LA80_;
		{
			NIM_BOOL T84_;
			NimStringDesc* res;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T92_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T93_;
			T84_ = (NIM_BOOL)0;
			T84_ = emulatedThreadVars__7uEG6ZwO4OOj3nQvIat2mwcgen((*(*m).g).config);
			if (!(T84_)) goto LA85_;
			T84_ = !(((*(*(*m).g).config).target.targetOS == ((tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ) 28)));
			LA85_: ;
			if (!T84_) goto LA86_;
			{
				if (!!(!((m == NIM_NIL)))) goto LA90_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_30));
			}
			LA90_: ;
			res = rawNewString(((NI) 80));
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_16));
			T92_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T92_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1123));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T92_);
			res = resizeString(res, 4);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1166));
			T93_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T93_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*g).mainDatInit, T93_);
		}
		LA86_: ;
		{
			NIM_BOOL T96_;
			NimStringDesc* res_2;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T104_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T105_;
			T96_ = (NIM_BOOL)0;
			T96_ = !(((*(*(*m).g).config).target.targetOS == ((tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ) 28)));
			if (!(T96_)) goto LA97_;
			T96_ = !(((*(*(*m).g).config).selectedGC == ((tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw) 1)));
			LA97_: ;
			if (!T96_) goto LA98_;
			{
				if (!!(!((m == NIM_NIL)))) goto LA102_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_30));
			}
			LA102_: ;
			res_2 = rawNewString(((NI) 80));
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_16));
			T104_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T104_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1122));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T104_);
			res_2 = resizeString(res_2, 18);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1167));
			T105_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T105_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*g).mainDatInit, T105_);
		}
		LA98_: ;
	}
	LA80_: ;
	{
		NI T108_;
		tyArray__JiWwrsTRC6xqNlGcBthSVA T111_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T112_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* initCall;
		tyArray__JiWwrsTRC6xqNlGcBthSVA T113_;
		T108_ = (NI)0;
		T108_ = len__9b0YRltzV3kNSE9aQTsG82wg((*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 12))- 0]);
		if (!(((NI) 0) < T108_)) goto LA109_;
		nimZeroMem((void*)T111_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
		T111_[0] = init;
		T112_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T112_ = percent___T9a21DAzFCa3OqRooKKtkqw(T111_, 1);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*g).mainModProcs, T112_);
		nimZeroMem((void*)T113_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
		T113_[0] = init;
		initCall = percent___vQDE0VOBftnrpkVsM9cme4w(T113_, 1);
		{
			if (!(((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 14))&63U)))!=0)) goto LA116_;
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*g).mainModInit, initCall);
		}
		goto LA114_;
		LA116_: ;
		{
			if (!(((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 15))&63U)))!=0)) goto LA119_;
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*g).mainDatInit, initCall);
		}
		goto LA114_;
		LA119_: ;
		{
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*g).otherModsInit, initCall);
		}
		LA114_: ;
	}
	LA109_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genInitCode__7ll08CGQoDzh9cxhZCroU4w)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m) {
	NIM_BOOL moduleInitRequired;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* initname;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* prc;
	tyArray__mrugoXXRZUEeG9bEXo9auBKw T1_;
	NimStringDesc* T2_;
	tyArray__qTjAvTvKF9anytN1At69aJMQ T131_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T132_;
	tyArray__qTjAvTvKF9anytN1At69aJMQ T245_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T246_;
	tyArray__qTjAvTvKF9anytN1At69aJMQ T247_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T248_;
	moduleInitRequired = hcrOn__a2BRACVCGIuooKjHNmoLsA(m);
	initname = getInitName__ao6gUnuVfQLtZ89c4kaIKfg_4(m);
	nimZeroMem((void*)T1_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
	T2_ = (NimStringDesc*)0;
	{
		NIM_BOOL T5_;
		T5_ = (NIM_BOOL)0;
		T5_ = hcrOn__a2BRACVCGIuooKjHNmoLsA(m);
		if (!T5_) goto LA6_;
		T2_ = copyString(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1131));
	}
	goto LA3_;
	LA6_: ;
	{
		T2_ = copyString(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1132));
	}
	LA3_: ;
	T1_[0] = rope__yShmEg9cffWxI7s5XzEKBow(T2_);
	T1_[1] = initname;
	prc = percent___2Ixv9aZ9bvpNaVAVzYBJlUPg(T1_, 2);
	genCLineDir__W2V1U5l2z2M9c2i5Phjz9cow(&prc, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1133), ((NI) 999999), (*(*m).g).config);
	{
		if (!(((NI) 0) < (*m).typeNodes)) goto LA11_;
		{
			NIM_BOOL T15_;
			NimStringDesc* res;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T22_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T23_;
			NimStringDesc* res_2;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T28_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T29_;
			T15_ = (NIM_BOOL)0;
			T15_ = hcrOn__a2BRACVCGIuooKjHNmoLsA(m);
			if (!T15_) goto LA16_;
			{
				if (!!(!((m == NIM_NIL)))) goto LA20_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_30));
			}
			LA20_: ;
			res = rawNewString(((NI) 80));
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_16));
			T22_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T22_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_118));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T22_);
			res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1134));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), (*m).typeNodesName);
			res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_433));
			T23_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T23_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], T23_);
			{
				if (!!(!((m == NIM_NIL)))) goto LA26_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_30));
			}
			LA26_: ;
			res_2 = rawNewString(((NI) 80));
			res_2 = resizeString(res_2, 19);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1135));
			T28_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T28_ = getModuleDllPath__RaNE9b8A430I9bfpgZmdrC1w_3(m, (*m).module);
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T28_);
			res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_461));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), (*m).typeNodesName);
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_3));
			cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res_2), ((NI64) ((*m).typeNodes)));
			res_2 = resizeString(res_2, 22);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1136));
			cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res_2), ((NI64) ((*m).typeNodes)));
			res_2 = resizeString(res_2, 17);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1137));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), (*m).typeNodesName);
			res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_908));
			T29_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T29_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], T29_);
		}
		goto LA13_;
		LA16_: ;
		{
			NimStringDesc* res_3;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T35_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T40_;
			{
				if (!!(!((m == NIM_NIL)))) goto LA33_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_30));
			}
			LA33_: ;
			res_3 = rawNewString(((NI) 80));
			res_3 = resizeString(res_3, 7);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_43));
			T35_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T35_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_118));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T35_);
			res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_33));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), (*m).typeNodesName);
			res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_157));
			cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res_3), ((NI64) ((*m).typeNodes)));
			res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_239));
			{
				if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA38_;
				res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
			}
			LA38_: ;
			T40_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T40_ = rope__yShmEg9cffWxI7s5XzEKBow(res_3);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], T40_);
		}
		LA13_: ;
	}
	LA11_: ;
	{
		NimStringDesc* res_4;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T49_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T54_;
		if (!(((NI) 0) < (*m).nimTypes)) goto LA43_;
		{
			if (!!(!((m == NIM_NIL)))) goto LA47_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_30));
		}
		LA47_: ;
		res_4 = rawNewString(((NI) 80));
		res_4 = resizeString(res_4, 7);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_43));
		T49_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T49_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_117));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T49_);
		res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_33));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), (*m).nimTypesName);
		res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_157));
		cgFormatValue__RNvA2HiiC5vvtIhzsLpc8g((&res_4), ((NI64) ((*m).nimTypes)));
		res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_239));
		{
			if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA52_;
			res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA52_: ;
		T54_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T54_ = rope__yShmEg9cffWxI7s5XzEKBow(res_4);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], T54_);
	}
	LA43_: ;
	{
		NIM_BOOL T57_;
		tyArray__JiWwrsTRC6xqNlGcBthSVA T60_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T61_;
		T57_ = (NIM_BOOL)0;
		T57_ = hcrOn__a2BRACVCGIuooKjHNmoLsA(m);
		if (!T57_) goto LA58_;
		nimZeroMem((void*)T60_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
		T60_[0] = getModuleDllPath__RaNE9b8A430I9bfpgZmdrC1w_3(m, (*m).module);
		T61_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T61_ = percent___HoXSbgR7plMG7Fef0fcy9aw(T60_, 1);
		add__IM4kcMNkkOLJtqdEqSxR8A(&prc, T61_);
	}
	LA58_: ;
	{
		NIM_BOOL T64_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T65_;
		NI T66_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T68_;
		NI T69_;
		tyArray__qTjAvTvKF9anytN1At69aJMQ T72_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T73_;
		tyArray__qTjAvTvKF9anytN1At69aJMQ T74_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T75_;
		tyArray__qTjAvTvKF9anytN1At69aJMQ T129_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T130_;
		T64_ = (NIM_BOOL)0;
		T65_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T65_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata((*m).preInitProc, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 1));
		T66_ = (NI)0;
		T66_ = len__9b0YRltzV3kNSE9aQTsG82wg((*T65_));
		T64_ = (((NI) 0) < T66_);
		if (T64_) goto LA67_;
		T68_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T68_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata((*m).preInitProc, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		T69_ = (NI)0;
		T69_ = len__9b0YRltzV3kNSE9aQTsG82wg((*T68_));
		T64_ = (((NI) 0) < T69_);
		LA67_: ;
		if (!T64_) goto LA70_;
		nimZeroMem((void*)T72_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
		T73_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T73_ = percent___H1Ma2EXqegHnMqzJZ4SA1g(T72_, 0);
		add__IM4kcMNkkOLJtqdEqSxR8A(&prc, T73_);
		nimZeroMem((void*)T74_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
		T75_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T75_ = percent___jpXTCDNVjIi5r4hbHN5SVQ(T74_, 0);
		add__IM4kcMNkkOLJtqdEqSxR8A(&prc, T75_);
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T78_;
			NI T79_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T86_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T87_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T88_;
			T78_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T78_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata((*m).preInitProc, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 0));
			T79_ = (NI)0;
			T79_ = len__9b0YRltzV3kNSE9aQTsG82wg((*T78_));
			if (!(((NI) 0) < T79_)) goto LA80_;
			moduleInitRequired = NIM_TRUE;
			{
				if (!NIM_FALSE) goto LA84_;
				add__yG4AKzsBRS1W4MANDlXQeg(&prc, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1138));
			}
			LA84_: ;
			T86_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T86_ = genSectionStart__otaTb0ytiYCWgsXTIvijfg(((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 0), (*(*m).g).config);
			add__IM4kcMNkkOLJtqdEqSxR8A(&prc, T86_);
			T87_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T87_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata((*m).preInitProc, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 0));
			add__IM4kcMNkkOLJtqdEqSxR8A(&prc, (*T87_));
			T88_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T88_ = genSectionEnd__otaTb0ytiYCWgsXTIvijfg_2(((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 0), (*(*m).g).config);
			add__IM4kcMNkkOLJtqdEqSxR8A(&prc, T88_);
			{
				if (!NIM_FALSE) goto LA91_;
				add__yG4AKzsBRS1W4MANDlXQeg(&prc, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1139));
			}
			LA91_: ;
		}
		LA80_: ;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T95_;
			NI T96_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T104_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T105_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T106_;
			T95_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T95_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata((*m).preInitProc, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 1));
			T96_ = (NI)0;
			T96_ = len__9b0YRltzV3kNSE9aQTsG82wg((*T95_));
			if (!(((NI) 0) < T96_)) goto LA97_;
			moduleInitRequired = NIM_TRUE;
			{
				NIM_BOOL T101_;
				T101_ = (NIM_BOOL)0;
				T101_ = hcrOn__a2BRACVCGIuooKjHNmoLsA(m);
				if (!T101_) goto LA102_;
				add__yG4AKzsBRS1W4MANDlXQeg(&prc, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1138));
			}
			LA102_: ;
			T104_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T104_ = genSectionStart__otaTb0ytiYCWgsXTIvijfg(((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 1), (*(*m).g).config);
			add__IM4kcMNkkOLJtqdEqSxR8A(&prc, T104_);
			T105_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T105_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata((*m).preInitProc, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 1));
			add__IM4kcMNkkOLJtqdEqSxR8A(&prc, (*T105_));
			T106_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T106_ = genSectionEnd__otaTb0ytiYCWgsXTIvijfg_2(((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 1), (*(*m).g).config);
			add__IM4kcMNkkOLJtqdEqSxR8A(&prc, T106_);
			{
				NIM_BOOL T109_;
				T109_ = (NIM_BOOL)0;
				T109_ = hcrOn__a2BRACVCGIuooKjHNmoLsA(m);
				if (!T109_) goto LA110_;
				add__yG4AKzsBRS1W4MANDlXQeg(&prc, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1139));
			}
			LA110_: ;
		}
		LA97_: ;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T114_;
			NI T115_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T122_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T123_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T124_;
			T114_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T114_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata((*m).preInitProc, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			T115_ = (NI)0;
			T115_ = len__9b0YRltzV3kNSE9aQTsG82wg((*T114_));
			if (!(((NI) 0) < T115_)) goto LA116_;
			moduleInitRequired = NIM_TRUE;
			{
				if (!NIM_FALSE) goto LA120_;
				add__yG4AKzsBRS1W4MANDlXQeg(&prc, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1138));
			}
			LA120_: ;
			T122_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T122_ = genSectionStart__otaTb0ytiYCWgsXTIvijfg(((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2), (*(*m).g).config);
			add__IM4kcMNkkOLJtqdEqSxR8A(&prc, T122_);
			T123_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T123_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata((*m).preInitProc, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			add__IM4kcMNkkOLJtqdEqSxR8A(&prc, (*T123_));
			T124_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T124_ = genSectionEnd__otaTb0ytiYCWgsXTIvijfg_2(((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2), (*(*m).g).config);
			add__IM4kcMNkkOLJtqdEqSxR8A(&prc, T124_);
			{
				if (!NIM_FALSE) goto LA127_;
				add__yG4AKzsBRS1W4MANDlXQeg(&prc, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1139));
			}
			LA127_: ;
		}
		LA116_: ;
		nimZeroMem((void*)T129_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
		T130_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T130_ = percent___g9b9arp3BWCGRHDe21SJso6w(T129_, 0);
		add__IM4kcMNkkOLJtqdEqSxR8A(&prc, T130_);
	}
	LA70_: ;
	nimZeroMem((void*)T131_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
	T132_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T132_ = percent___H1Ma2EXqegHnMqzJZ4SA1g(T131_, 0);
	add__IM4kcMNkkOLJtqdEqSxR8A(&prc, T132_);
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T135_;
		NI T136_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T143_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T144_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T145_;
		T135_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T135_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata((*m).initProc, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 0));
		T136_ = (NI)0;
		T136_ = len__9b0YRltzV3kNSE9aQTsG82wg((*T135_));
		if (!(((NI) 0) < T136_)) goto LA137_;
		moduleInitRequired = NIM_TRUE;
		{
			if (!NIM_FALSE) goto LA141_;
			add__yG4AKzsBRS1W4MANDlXQeg(&prc, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1138));
		}
		LA141_: ;
		T143_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T143_ = genSectionStart__otaTb0ytiYCWgsXTIvijfg(((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 0), (*(*m).g).config);
		add__IM4kcMNkkOLJtqdEqSxR8A(&prc, T143_);
		T144_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T144_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata((*m).initProc, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 0));
		add__IM4kcMNkkOLJtqdEqSxR8A(&prc, (*T144_));
		T145_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T145_ = genSectionEnd__otaTb0ytiYCWgsXTIvijfg_2(((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 0), (*(*m).g).config);
		add__IM4kcMNkkOLJtqdEqSxR8A(&prc, T145_);
		{
			if (!NIM_FALSE) goto LA148_;
			add__yG4AKzsBRS1W4MANDlXQeg(&prc, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1139));
		}
		LA148_: ;
	}
	LA137_: ;
	{
		NIM_BOOL T152_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T153_;
		NI T154_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T156_;
		NI T157_;
		T152_ = (NIM_BOOL)0;
		T153_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T153_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata((*m).initProc, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 1));
		T154_ = (NI)0;
		T154_ = len__9b0YRltzV3kNSE9aQTsG82wg((*T153_));
		T152_ = (((NI) 0) < T154_);
		if (T152_) goto LA155_;
		T156_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
		T156_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata((*m).initProc, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
		T157_ = (NI)0;
		T157_ = len__9b0YRltzV3kNSE9aQTsG82wg((*T156_));
		T152_ = (((NI) 0) < T157_);
		LA155_: ;
		if (!T152_) goto LA158_;
		moduleInitRequired = NIM_TRUE;
		{
			NIM_BOOL T162_;
			T162_ = (NIM_BOOL)0;
			T162_ = (((*(*m).initProc).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 18))&31U)))!=0);
			if (!(T162_)) goto LA163_;
			T162_ = !((((*m).flags &(1U<<((NU)(((tyEnum_CodegenFlag__9c7EibnXBApMXwrQsaaMb6Q) 2))&7U)))!=0));
			LA163_: ;
			if (!T162_) goto LA164_;
			(*m).flags |= ((NU8)1)<<((((tyEnum_CodegenFlag__9c7EibnXBApMXwrQsaaMb6Q) 2)) & 7);
			{
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* procname;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T170_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T171_;
				if (!!((((*m).flags &(1U<<((NU)(((tyEnum_CodegenFlag__9c7EibnXBApMXwrQsaaMb6Q) 0))&7U)))!=0))) goto LA168_;
				procname = makeCString__vQJydtKy4Nf6bXPYtbmjtg((*(*(*m).module).name).s);
				T170_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T170_ = quotedFilename__2Kbe7lBq9cqJa8J9cn4WRepg((*(*m).g).config, (*(*m).module).info);
				T171_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T171_ = initFrame__hSB0mXJGcFil9bvrhp0Qm5g((*m).initProc, procname, T170_);
				add__IM4kcMNkkOLJtqdEqSxR8A(&prc, T171_);
			}
			goto LA166_;
			LA168_: ;
			{
				tyArray__qTjAvTvKF9anytN1At69aJMQ T173_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T174_;
				nimZeroMem((void*)T173_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
				T174_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T174_ = percent___jpXTCDNVjIi5r4hbHN5SVQ(T173_, 0);
				add__IM4kcMNkkOLJtqdEqSxR8A(&prc, T174_);
			}
			LA166_: ;
		}
		LA164_: ;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T177_;
			NI T178_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T186_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T187_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T188_;
			T177_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T177_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata((*m).initProc, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 1));
			T178_ = (NI)0;
			T178_ = len__9b0YRltzV3kNSE9aQTsG82wg((*T177_));
			if (!(((NI) 0) < T178_)) goto LA179_;
			moduleInitRequired = NIM_TRUE;
			{
				NIM_BOOL T183_;
				T183_ = (NIM_BOOL)0;
				T183_ = hcrOn__a2BRACVCGIuooKjHNmoLsA(m);
				if (!T183_) goto LA184_;
				add__yG4AKzsBRS1W4MANDlXQeg(&prc, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1138));
			}
			LA184_: ;
			T186_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T186_ = genSectionStart__otaTb0ytiYCWgsXTIvijfg(((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 1), (*(*m).g).config);
			add__IM4kcMNkkOLJtqdEqSxR8A(&prc, T186_);
			T187_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T187_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata((*m).initProc, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 1));
			add__IM4kcMNkkOLJtqdEqSxR8A(&prc, (*T187_));
			T188_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T188_ = genSectionEnd__otaTb0ytiYCWgsXTIvijfg_2(((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 1), (*(*m).g).config);
			add__IM4kcMNkkOLJtqdEqSxR8A(&prc, T188_);
			{
				NIM_BOOL T191_;
				T191_ = (NIM_BOOL)0;
				T191_ = hcrOn__a2BRACVCGIuooKjHNmoLsA(m);
				if (!T191_) goto LA192_;
				add__yG4AKzsBRS1W4MANDlXQeg(&prc, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1139));
			}
			LA192_: ;
		}
		LA179_: ;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T196_;
			NI T197_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T204_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** T205_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T206_;
			T196_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T196_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata((*m).initProc, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			T197_ = (NI)0;
			T197_ = len__9b0YRltzV3kNSE9aQTsG82wg((*T196_));
			if (!(((NI) 0) < T197_)) goto LA198_;
			moduleInitRequired = NIM_TRUE;
			{
				if (!NIM_FALSE) goto LA202_;
				add__yG4AKzsBRS1W4MANDlXQeg(&prc, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1138));
			}
			LA202_: ;
			T204_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T204_ = genSectionStart__otaTb0ytiYCWgsXTIvijfg(((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2), (*(*m).g).config);
			add__IM4kcMNkkOLJtqdEqSxR8A(&prc, T204_);
			T205_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
			T205_ = s__kOyJGmZMM2tMgCKSrvUE3gcgendata((*m).initProc, ((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2));
			add__IM4kcMNkkOLJtqdEqSxR8A(&prc, (*T205_));
			T206_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T206_ = genSectionEnd__otaTb0ytiYCWgsXTIvijfg_2(((tyEnum_TCProcSection__0r9aIOfveOcxZqJ7OwbI2gg) 2), (*(*m).g).config);
			add__IM4kcMNkkOLJtqdEqSxR8A(&prc, T206_);
			{
				if (!NIM_FALSE) goto LA209_;
				add__yG4AKzsBRS1W4MANDlXQeg(&prc, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1139));
			}
			LA209_: ;
		}
		LA198_: ;
		{
			tyArray__qTjAvTvKF9anytN1At69aJMQ T215_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T216_;
			if (!(((*(*m).initProc).flags &(1U<<((NU)(((tyEnum_TCProcFlag__LgBeaca7tT1nUR7RL1RjPQ) 0))&7U)))!=0)) goto LA213_;
			nimZeroMem((void*)T215_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
			T216_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T216_ = percent___Mb9ccCVvEQ2RaqUK5tbPQ2w(T215_, 0);
			add__IM4kcMNkkOLJtqdEqSxR8A(&prc, T216_);
		}
		LA213_: ;
		{
			NIM_BOOL T219_;
			T219_ = (NIM_BOOL)0;
			T219_ = (((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 14))&63U)))!=0);
			if (!(T219_)) goto LA220_;
			T219_ = ((*(*(*m).g).config).exc == ((tyEnum_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ) 3));
			LA220_: ;
			if (!T219_) goto LA221_;
			{
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T225_;
				NimStringDesc* res_5;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T232_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T237_;
				T225_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
				T225_ = getCompilerProc__4qXS5VHrKJ5hq9crvvz8tIA((*(*m).g).graph, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1117));
				if (!!((T225_ == NIM_NIL))) goto LA226_;
				{
					if (!!(!((m == NIM_NIL)))) goto LA230_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_30));
				}
				LA230_: ;
				res_5 = rawNewString(((NI) 80));
				res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_16));
				T232_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T232_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1117));
				cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T232_);
				res_5 = resizeString(res_5, 3);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_334));
				{
					if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0))) goto LA235_;
					res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
				}
				LA235_: ;
				T237_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T237_ = rope__yShmEg9cffWxI7s5XzEKBow(res_5);
				add__IM4kcMNkkOLJtqdEqSxR8A(&prc, T237_);
			}
			LA226_: ;
		}
		LA221_: ;
		{
			NIM_BOOL T240_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T244_;
			T240_ = (NIM_BOOL)0;
			T240_ = (((*(*m).initProc).options &(1U<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 18))&31U)))!=0);
			if (!(T240_)) goto LA241_;
			T240_ = !((((*m).flags &(1U<<((NU)(((tyEnum_CodegenFlag__9c7EibnXBApMXwrQsaaMb6Q) 0))&7U)))!=0));
			LA241_: ;
			if (!T240_) goto LA242_;
			T244_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T244_ = deinitFrame__3AsTOpq9crZUYBL9aD1lXBng_3((*m).initProc);
			add__IM4kcMNkkOLJtqdEqSxR8A(&prc, T244_);
		}
		LA242_: ;
	}
	LA158_: ;
	nimZeroMem((void*)T245_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
	T246_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T246_ = percent___g9b9arp3BWCGRHDe21SJso6w(T245_, 0);
	add__IM4kcMNkkOLJtqdEqSxR8A(&prc, T246_);
	nimZeroMem((void*)T247_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
	T248_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T248_ = percent___4L62Yp9bLO2ZDcvBG9bSvP9bw(T247_, 0);
	add__IM4kcMNkkOLJtqdEqSxR8A(&prc, T248_);
	{
		NIM_BOOL T251_;
		tySequence__sM4lkSb7zS6F7OVMvW9cffQ* procsToLoad;
		tyArray__JiWwrsTRC6xqNlGcBthSVA T254_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T255_;
		tyArray__qTjAvTvKF9anytN1At69aJMQ T274_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T275_;
		T251_ = (NIM_BOOL)0;
		T251_ = hcrOn__a2BRACVCGIuooKjHNmoLsA(m);
		if (!T251_) goto LA252_;
		genericSeqAssign((&procsToLoad), TM__MQdRN7fpbG7rPm4JpVVAhA_1140, (&NTI__sM4lkSb7zS6F7OVMvW9cffQ_));
		nimZeroMem((void*)T254_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
		T254_[0] = getHcrInitName__ao6gUnuVfQLtZ89c4kaIKfg_5(m);
		T255_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T255_ = percent___MCSdS9cTdQvttqiM9azLzkDg(T254_, 1);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 12))- 0], T255_);
		{
			NI T260_;
			NimStringDesc* T261_;
			NI T262_;
			NimStringDesc* T263_;
			if (!(((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 14))&63U)))!=0)) goto LA258_;
			procsToLoad = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(procsToLoad), (&NTI__sM4lkSb7zS6F7OVMvW9cffQ_));
			T260_ = procsToLoad->Sup.len++;
			T261_ = (NimStringDesc*)0;
			T261_ = procsToLoad->data[T260_]; procsToLoad->data[T260_] = copyStringRC1(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1147));
			if (T261_) nimGCunrefNoCycle(T261_);
			procsToLoad = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(procsToLoad), (&NTI__sM4lkSb7zS6F7OVMvW9cffQ_));
			T262_ = procsToLoad->Sup.len++;
			T263_ = (NimStringDesc*)0;
			T263_ = procsToLoad->data[T262_]; procsToLoad->data[T262_] = copyStringRC1(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1148));
			if (T263_) nimGCunrefNoCycle(T263_);
		}
		LA258_: ;
		{
			NimStringDesc* curr;
			NI i;
			NI L;
			NI T265_;
			curr = (NimStringDesc*)0;
			i = ((NI) 0);
			T265_ = (procsToLoad ? procsToLoad->Sup.len : 0);
			L = T265_;
			{
				while (1) {
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T268_;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_1152;
					if (!(i < L)) goto LA267;
					if ((NU)(i) >= (NU)(procsToLoad ? procsToLoad->Sup.len : 0)){ raiseIndexError2(i,(procsToLoad ? procsToLoad->Sup.len : 0)-1); }
					curr = procsToLoad->data[i];
					T268_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T268_ = hcrGetProcLoadCode__uWPA1lTRrPufWdliMF9aGrg(m, curr, ((NimStringDesc*) NIM_NIL), ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1150), ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1151));
					add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 12))- 0], T268_);
					if (nimAddInt(i, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1152)) { raiseOverflow(); };
					i = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1152);
					{
						NI T271_;
						T271_ = (procsToLoad ? procsToLoad->Sup.len : 0);
						if (!!((T271_ == L))) goto LA272_;
						failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_26));
					}
					LA272_: ;
				} LA267: ;
			}
		}
		nimZeroMem((void*)T274_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
		T275_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T275_ = percent___4L62Yp9bLO2ZDcvBG9bSvP9bw(T274_, 0);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 12))- 0], T275_);
	}
	LA252_: ;
	{
		NIM_CHAR i_2;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* el;
		NIM_CHAR i_3;
		i_2 = (NIM_CHAR)0;
		el = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		i_3 = 48;
		{
			if (!((NU8)(((NIM_CHAR) (((NU8)(i_3))))) <= (NU8)(57))) goto LA279_;
			{
				while (1) {
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_1154;
					i_2 = i_3;
					if (((NU8)(i_3)) < 48 || ((NU8)(i_3)) > 57){ raiseIndexError3(((NU8)(i_3)), 48, 57); }
					el = (*m).extensionLoaders[(((NU8)(i_3)))- 48];
					{
						tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* ex;
						tyArray__mrugoXXRZUEeG9bEXo9auBKw T287_;
						NI TM__MQdRN7fpbG7rPm4JpVVAhA_1153;
						if (!!((el == NIM_NIL))) goto LA285_;
						nimZeroMem((void*)T287_, sizeof(tyArray__mrugoXXRZUEeG9bEXo9auBKw));
						if (nimSubInt(((NU8)(i_2)), ((NI) 48), &TM__MQdRN7fpbG7rPm4JpVVAhA_1153)) { raiseOverflow(); };
						T287_[0] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1153))));
						T287_[1] = el;
						ex = percent___w50CkyHBltcyR8rWxttZCg(T287_, 2);
						moduleInitRequired = NIM_TRUE;
						add__IM4kcMNkkOLJtqdEqSxR8A(&prc, ex);
					}
					LA285_: ;
					{
						if (!((NU8)(57) <= (NU8)(((NIM_CHAR) (((NU8)(i_3))))))) goto LA290_;
						goto LA281;
					}
					LA290_: ;
					if (nimAddInt(((NU8)(i_3)), ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1154)) { raiseOverflow(); };
					if (TM__MQdRN7fpbG7rPm4JpVVAhA_1154 < 48 || TM__MQdRN7fpbG7rPm4JpVVAhA_1154 > 57){ raiseOverflow(); }
					i_3 = (NIM_CHAR)(TM__MQdRN7fpbG7rPm4JpVVAhA_1154);
				}
			} LA281: ;
		}
		LA279_: ;
	}
	{
		NIM_BOOL T294_;
		T294_ = (NIM_BOOL)0;
		T294_ = moduleInitRequired;
		if (T294_) goto LA295_;
		T294_ = (((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 14))&63U)))!=0);
		LA295_: ;
		if (!T294_) goto LA296_;
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 12))- 0], prc);
	}
	LA296_: ;
	genDatInitCode__7ll08CGQoDzh9cxhZCroU4w_2(m);
	{
		NIM_BOOL T300_;
		tyArray__qTjAvTvKF9anytN1At69aJMQ T303_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T304_;
		tyArray__qTjAvTvKF9anytN1At69aJMQ T305_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T306_;
		T300_ = (NIM_BOOL)0;
		T300_ = hcrOn__a2BRACVCGIuooKjHNmoLsA(m);
		if (!T300_) goto LA301_;
		nimZeroMem((void*)T303_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
		T304_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T304_ = percent___fmEfDTfNDkVDxWi9c0O6D2g(T303_, 0);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 12))- 0], T304_);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 12))- 0], (*m).hcrCreateTypeInfosProc);
		nimZeroMem((void*)T305_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
		T306_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T306_ = percent___4L62Yp9bLO2ZDcvBG9bSvP9bw(T305_, 0);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 12))- 0], T306_);
	}
	LA301_: ;
	registerModuleToMain__9aldr9cciNpmwLn9bc4Nq2PGQ((*m).g, m);
}
N_LIB_PRIVATE N_NIMCALL(void, seqV2ContentType__MFyPdYFFCqzDX9cGGcC0rbA)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* check) {
	tyArray__qtqsWM5aXmcpMIVmvq3kAA sig;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	nimZeroMem((void*)sig, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
	hashType__UdooXLclXL8uld7qLI5JRw(t, 2, sig);
	result = cacheGetType__2wgznvEs9bt7XaKJgVohBCw((*m).typeCache, sig);
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T5_;
		if (!(result == NIM_NIL)) goto LA3_;
		T5_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T5_ = getTypeDescAux__BpNtboTsUfmvl9cmcZf9bOSQ(m, t, check);
		(void)(T5_);
	}
	goto LA1_;
	LA3_: ;
	{
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T11_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T12_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T13_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T14_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T15_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T16_;
		{
			if (!!(!((m == NIM_NIL)))) goto LA9_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_30));
		}
		LA9_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1168));
		T11_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T11_ = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1169));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T11_);
		res = resizeString(res, 7);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1170));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), result);
		res = resizeString(res, 12);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1171));
		T12_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1169));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T12_);
		res = resizeString(res, 7);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1172));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), result);
		res = resizeString(res, 19);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1173));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), result);
		res = resizeString(res, 19);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1174));
		T13_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T13_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(36134350135273744));
		if ((NU)(((NI) 0)) >= (NU)((*T13_).sons ? (*T13_).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*T13_).sons ? (*T13_).sons->Sup.len : 0)-1); }
		T14_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = getTypeDescAux__BpNtboTsUfmvl9cmcZf9bOSQ(m, (*T13_).sons->data[((NI) 0)], check);
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T14_);
		res = resizeString(res, 24);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1175));
		T15_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T15_ = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1169));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T15_);
		res = resizeString(res, 13);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1176));
		T16_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T16_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 4))- 0], T16_);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, finishTypeDescriptions__7ll08CGQoDzh9cxhZCroU4w_3)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m) {
	NI i;
	tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg check;
	i = ((NI) 0);
	nimZeroMem((void*)(&check), sizeof(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg));
	initIntSet__n8oDZMn19bEdodSnrBQB9a1Q((&check));
	{
		while (1) {
			NI T3_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
			NI TM__MQdRN7fpbG7rPm4JpVVAhA_1177;
			T3_ = ((*m).typeStack ? (*m).typeStack->Sup.len : 0);
			if (!(i < T3_)) goto LA2;
			if ((NU)(i) >= (NU)((*m).typeStack ? (*m).typeStack->Sup.len : 0)){ raiseIndexError2(i,((*m).typeStack ? (*m).typeStack->Sup.len : 0)-1); }
			t = (*m).typeStack->data[i];
			{
				NIM_BOOL T6_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T8_;
				T6_ = (NIM_BOOL)0;
				T6_ = (((*(*(*m).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 39))&63U)))!=0);
				if (!(T6_)) goto LA7_;
				T8_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T8_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(36134350135273744));
				T6_ = ((*T8_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24));
				LA7_: ;
				if (!T6_) goto LA9_;
				seqV2ContentType__MFyPdYFFCqzDX9cGGcC0rbA(m, t, (&check));
			}
			goto LA4_;
			LA9_: ;
			{
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T12_;
				T12_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T12_ = getTypeDescAux__BpNtboTsUfmvl9cmcZf9bOSQ(m, t, (&check));
				(void)(T12_);
			}
			LA4_: ;
			if (nimAddInt(i, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1177)) { raiseOverflow(); };
			i = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1177);
		} LA2: ;
	}
}
static N_NIMCALL(void, Marker_tyRef__UjwNQwrGjW3X9ahveEH9bnWA)(void* p, NI op) {
	tyObject_Env_cgendotnim___IDX4istqRyOZp3l6j9aUesw* a;
	a = (tyObject_Env_cgendotnim___IDX4istqRyOZp3l6j9aUesw*)p;
	nimGCvisit((void*)(*a).m1, op);
}
N_LIB_PRIVATE N_CLOSURE(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, loadLib__U9bFGPRkCoZVGu0OHStKJag)(NimStringDesc* handle, NimStringDesc* name, void* ClE_0) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_Env_cgendotnim___IDX4istqRyOZp3l6j9aUesw* colonenvP_;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* prc;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
	NimStringDesc* res;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T9_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T10_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T11_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T12_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T13_;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	colonenvP_ = (tyObject_Env_cgendotnim___IDX4istqRyOZp3l6j9aUesw*) ClE_0;
	prc = getCompilerProc__4qXS5VHrKJ5hq9crvvz8tIA((*(*(*colonenvP_).m1).g).graph, name);
	{
		if (!!(!((prc == NIM_NIL)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1179));
	}
	LA3_: ;
	if (!(((TM__MQdRN7fpbG7rPm4JpVVAhA_91[(NU)((*(*(*prc).annex).path).kind)>>3] &(1U<<((NU)((*(*(*prc).annex).path).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_92)); }
	n = newStrNode__zLcHGdlEbBYFtoCoan9agkg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20), (*(*(*prc).annex).path)._kind_3.strVal);
	(*n).info = (*(*(*prc).annex).path).info;
	{
		if (!!(!(((*colonenvP_).m1 == NIM_NIL)))) goto LA7_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_30));
	}
	LA7_: ;
	res = rawNewString(((NI) 80));
	res = resizeString(res, 7);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1180));
	cgFormatValue__GOaK9aDgu4cLOYhocodpf3Q((&res), handle);
	res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_103));
	T9_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T9_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*colonenvP_).m1, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_354));
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T9_);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
	T10_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T10_ = genStringLiteral__SO73hKlDdl5sMaSHTbOJLw((*colonenvP_).m1, n);
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T10_);
	res = resizeString(res, 6);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1181));
	T11_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T11_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*colonenvP_).m1, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_359));
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T11_);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_77));
	T12_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T12_ = genStringLiteral__SO73hKlDdl5sMaSHTbOJLw((*colonenvP_).m1, n);
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T12_);
	res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_908));
	T13_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T13_ = rope__yShmEg9cffWxI7s5XzEKBow(res);
	add__IM4kcMNkkOLJtqdEqSxR8A(&result, T13_);
	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_229));
	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_1212));
	add__yG4AKzsBRS1W4MANDlXQeg(&result, namespace_0);
	add__yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1213));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genMainProc__7ll08CGQoDzh9cxhZCroU4w_4)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m) {
	tyObject_Env_cgendotnim___IDX4istqRyOZp3l6j9aUesw* colonenv_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* preMainCode;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* initStackBottomCall;
	NI TM__MQdRN7fpbG7rPm4JpVVAhA_1195;
	NimStringDesc* res_2;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T37_;
	colonenv_ = (tyObject_Env_cgendotnim___IDX4istqRyOZp3l6j9aUesw*)0;
	colonenv_ = (tyObject_Env_cgendotnim___IDX4istqRyOZp3l6j9aUesw*) newObj((&NTI__UjwNQwrGjW3X9ahveEH9bnWA_), sizeof(tyObject_Env_cgendotnim___IDX4istqRyOZp3l6j9aUesw));
	(*colonenv_).Sup.m_type = (&NTI__IDX4istqRyOZp3l6j9aUesw_);
	asgnRef((void**) (&(*colonenv_).m1), m);
	preMainCode = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		NIM_BOOL T3_;
		tyProc__cTGFl1a233rLFzi7BSxmtg T6_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T7_;
		tyProc__cTGFl1a233rLFzi7BSxmtg T8_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T9_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T10_;
		T3_ = (NIM_BOOL)0;
		T3_ = hcrOn__a2BRACVCGIuooKjHNmoLsA((*colonenv_).m1);
		if (!T3_) goto LA4_;
		nimZeroMem((void*)(&T6_), sizeof(tyProc__cTGFl1a233rLFzi7BSxmtg));
		T6_.ClP_0 = loadLib__U9bFGPRkCoZVGu0OHStKJag; T6_.ClE_0 = colonenv_;
		T7_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T7_ = T6_.ClE_0? T6_.ClP_0(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1182), ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1142), T6_.ClE_0):((TM__MQdRN7fpbG7rPm4JpVVAhA_1183)(T6_.ClP_0))(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1182), ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1142));
		add__IM4kcMNkkOLJtqdEqSxR8A(&preMainCode, T7_);
		add__yG4AKzsBRS1W4MANDlXQeg(&preMainCode, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1184));
		nimZeroMem((void*)(&T8_), sizeof(tyProc__cTGFl1a233rLFzi7BSxmtg));
		T8_.ClP_0 = loadLib__U9bFGPRkCoZVGu0OHStKJag; T8_.ClE_0 = colonenv_;
		T9_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T9_ = T8_.ClE_0? T8_.ClP_0(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1185), ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1186), T8_.ClE_0):((TM__MQdRN7fpbG7rPm4JpVVAhA_1187)(T8_.ClP_0))(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1185), ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1186));
		add__IM4kcMNkkOLJtqdEqSxR8A(&preMainCode, T9_);
		T10_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T10_ = hcrGetProcLoadCode__uWPA1lTRrPufWdliMF9aGrg((*colonenv_).m1, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1186), ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1188), ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1185), ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_369));
		add__IM4kcMNkkOLJtqdEqSxR8A(&preMainCode, T10_);
		add__yG4AKzsBRS1W4MANDlXQeg(&preMainCode, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1189));
		add__yG4AKzsBRS1W4MANDlXQeg(&preMainCode, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1190));
		add__yG4AKzsBRS1W4MANDlXQeg(&preMainCode, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1191));
	}
	goto LA1_;
	LA4_: ;
	{
		add__yG4AKzsBRS1W4MANDlXQeg(&preMainCode, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1192));
	}
	LA1_: ;
	{
		NIM_BOOL T14_;
		T14_ = (NIM_BOOL)0;
		T14_ = ((*(*(*(*colonenv_).m1).g).config).target.targetOS == ((tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ) 2));
		if (!(T14_)) goto LA15_;
		T14_ = !((((*(*(*(*colonenv_).m1).g).config).globalOptions & 640) == 0));
		LA15_: ;
		if (!T14_) goto LA16_;
		includeHeader__G5jzmdnwglHVk5qfDcXonA((*colonenv_).m1, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1193));
	}
	goto LA12_;
	LA16_: ;
	{
		if (!((*(*(*(*colonenv_).m1).g).config).target.targetOS == ((tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ) 25))) goto LA19_;
		includeHeader__G5jzmdnwglHVk5qfDcXonA((*colonenv_).m1, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1194));
	}
	goto LA12_;
	LA19_: ;
	LA12_: ;
	{
		NIM_BOOL T23_;
		T23_ = (NIM_BOOL)0;
		T23_ = ((*(*(*(*colonenv_).m1).g).config).target.targetOS == ((tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ) 28));
		if (T23_) goto LA24_;
		T23_ = ((*(*(*(*colonenv_).m1).g).config).selectedGC == ((tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw) 1));
		LA24_: ;
		if (!T23_) goto LA25_;
		initStackBottomCall = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) NIM_NIL));
	}
	goto LA21_;
	LA25_: ;
	{
		NimStringDesc* res;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T32_;
		{
			if (!!(!(((*colonenv_).m1 == NIM_NIL)))) goto LA30_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_30));
		}
		LA30_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_16));
		T32_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T32_ = cgsym__arLmPq9aJc9b7GpWTbo6dvHg((*colonenv_).m1, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1122));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res), T32_);
		res = resizeString(res, 18);
appendString(res, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1167));
		initStackBottomCall = rope__yShmEg9cffWxI7s5XzEKBow(res);
	}
	LA21_: ;
	if (nimAddInt((*(*colonenv_).m1).labels, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1195)) { raiseOverflow(); };
	if (TM__MQdRN7fpbG7rPm4JpVVAhA_1195 < 0 || TM__MQdRN7fpbG7rPm4JpVVAhA_1195 > 2147483647){ raiseOverflow(); }
	(*(*colonenv_).m1).labels = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1195);
	{
		if (!!(!(((*colonenv_).m1 == NIM_NIL)))) goto LA35_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_30));
	}
	LA35_: ;
	res_2 = rawNewString(((NI) 80));
	res_2 = resizeString(res_2, 41);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1196));
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), (*(*(*colonenv_).m1).g).otherModsInit);
	res_2 = resizeString(res_2, 177);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1197));
	cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_2), (*(*(*colonenv_).m1).g).mainDatInit);
	res_2 = resizeString(res_2, 16);
appendString(res_2, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1198));
	T37_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T37_ = rope__yShmEg9cffWxI7s5XzEKBow(res_2);
	add__IM4kcMNkkOLJtqdEqSxR8A(&(*(*colonenv_).m1).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0], T37_);
	{
		NIM_BOOL T40_;
		T40_ = (NIM_BOOL)0;
		T40_ = ((*(*(*(*colonenv_).m1).g).config).target.targetOS == ((tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ) 2));
		if (!(T40_)) goto LA41_;
		T40_ = !((((*(*(*(*colonenv_).m1).g).config).globalOptions & 640) == 0));
		LA41_: ;
		if (!T40_) goto LA42_;
		{
			NimStringDesc* res_3;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T52_;
			if (!(((*(*(*(*colonenv_).m1).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 9))&63U)))!=0)) goto LA46_;
			{
				if (!!(!(((*colonenv_).m1 == NIM_NIL)))) goto LA50_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_30));
			}
			LA50_: ;
			res_3 = rawNewString(((NI) 80));
			res_3 = resizeString(res_3, 50);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1199));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), (*(*(*colonenv_).m1).g).mainModInit);
			res_3 = resizeString(res_3, 65);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1200));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), preMainCode);
			res_3 = resizeString(res_3, 23);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1201));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_3), initStackBottomCall);
			res_3 = resizeString(res_3, 16);
appendString(res_3, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1198));
			T52_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T52_ = rope__yShmEg9cffWxI7s5XzEKBow(res_3);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*(*colonenv_).m1).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0], T52_);
		}
		goto LA44_;
		LA46_: ;
		{
			NimStringDesc* res_4;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T58_;
			{
				if (!!(!(((*colonenv_).m1 == NIM_NIL)))) goto LA56_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_30));
			}
			LA56_: ;
			res_4 = rawNewString(((NI) 80));
			res_4 = resizeString(res_4, 50);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1199));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), (*(*(*colonenv_).m1).g).mainModInit);
			res_4 = resizeString(res_4, 78);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1202));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), preMainCode);
			res_4 = resizeString(res_4, 23);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1201));
			cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_4), initStackBottomCall);
			res_4 = resizeString(res_4, 16);
appendString(res_4, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1198));
			T58_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T58_ = rope__yShmEg9cffWxI7s5XzEKBow(res_4);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*(*colonenv_).m1).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0], T58_);
		}
		LA44_: ;
	}
	goto LA38_;
	LA42_: ;
	{
		NimStringDesc* res_5;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T66_;
		if (!((*(*(*(*colonenv_).m1).g).config).target.targetOS == ((tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ) 25))) goto LA60_;
		{
			if (!!(!(((*colonenv_).m1 == NIM_NIL)))) goto LA64_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_30));
		}
		LA64_: ;
		res_5 = rawNewString(((NI) 80));
		res_5 = resizeString(res_5, 139);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1203));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), (*(*(*colonenv_).m1).g).mainModInit);
		res_5 = resizeString(res_5, 65);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1200));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), preMainCode);
		res_5 = resizeString(res_5, 23);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1201));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_5), initStackBottomCall);
		res_5 = resizeString(res_5, 16);
appendString(res_5, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1198));
		T66_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T66_ = rope__yShmEg9cffWxI7s5XzEKBow(res_5);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*(*colonenv_).m1).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0], T66_);
	}
	goto LA38_;
	LA60_: ;
	{
		NimStringDesc* res_6;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T74_;
		if (!(((*(*(*(*colonenv_).m1).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 7))&63U)))!=0)) goto LA68_;
		{
			if (!!(!(((*colonenv_).m1 == NIM_NIL)))) goto LA72_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_30));
		}
		LA72_: ;
		res_6 = rawNewString(((NI) 80));
		res_6 = resizeString(res_6, 50);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1199));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_6), (*(*(*colonenv_).m1).g).mainModInit);
		res_6 = resizeString(res_6, 78);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1202));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_6), preMainCode);
		res_6 = resizeString(res_6, 23);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1201));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_6), initStackBottomCall);
		res_6 = resizeString(res_6, 16);
appendString(res_6, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1198));
		T74_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T74_ = rope__yShmEg9cffWxI7s5XzEKBow(res_6);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*(*colonenv_).m1).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0], T74_);
	}
	goto LA38_;
	LA68_: ;
	{
		NimStringDesc* res_7;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T82_;
		if (!((*(*(*(*colonenv_).m1).g).config).target.targetOS == ((tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ) 28))) goto LA76_;
		{
			if (!!(!(((*colonenv_).m1 == NIM_NIL)))) goto LA80_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_30));
		}
		LA80_: ;
		res_7 = rawNewString(((NI) 80));
		res_7 = resizeString(res_7, 50);
appendString(res_7, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1199));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_7), (*(*(*colonenv_).m1).g).mainModInit);
		res_7 = resizeString(res_7, 65);
appendString(res_7, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1200));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_7), preMainCode);
		res_7 = resizeString(res_7, 23);
appendString(res_7, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1201));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_7), initStackBottomCall);
		res_7 = resizeString(res_7, 16);
appendString(res_7, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1198));
		T82_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T82_ = rope__yShmEg9cffWxI7s5XzEKBow(res_7);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*(*colonenv_).m1).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0], T82_);
	}
	goto LA38_;
	LA76_: ;
	{
		NimStringDesc* res_8;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T88_;
		{
			if (!!(!(((*colonenv_).m1 == NIM_NIL)))) goto LA86_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_30));
		}
		LA86_: ;
		res_8 = rawNewString(((NI) 80));
		res_8 = resizeString(res_8, 50);
appendString(res_8, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1199));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_8), (*(*(*colonenv_).m1).g).mainModInit);
		res_8 = resizeString(res_8, 65);
appendString(res_8, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1200));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_8), preMainCode);
		res_8 = resizeString(res_8, 23);
appendString(res_8, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1201));
		cgFormatValue__Y5Z2edcOkLU40pY0g7QXlQ((&res_8), initStackBottomCall);
		res_8 = resizeString(res_8, 16);
appendString(res_8, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1198));
		T88_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T88_ = rope__yShmEg9cffWxI7s5XzEKBow(res_8);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*(*colonenv_).m1).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0], T88_);
	}
	LA38_: ;
	{
		if (!!((((*(*(*(*colonenv_).m1).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 19))&63U)))!=0))) goto LA91_;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T97_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T98_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T99_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T100_;
			if (!(((NI) 0) < ((*(*(*(*colonenv_).m1).g).config).cppCustomNamespace ? (*(*(*(*colonenv_).m1).g).config).cppCustomNamespace->Sup.len : 0))) goto LA95_;
			T97_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T97_ = closeNamespaceNim__EBP36f89alKNeO11l19ca8RQ();
			T98_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T98_ = amp___Z7W1o5nPSc3ExfO5f7j1Gg(T97_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1204));
			T99_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T99_ = amp___Z7W1o5nPSc3ExfO5f7j1Gg(T98_, (*(*(*(*colonenv_).m1).g).config).cppCustomNamespace);
			T100_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T100_ = amp___Z7W1o5nPSc3ExfO5f7j1Gg(T99_, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_433));
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*(*colonenv_).m1).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0], T100_);
		}
		LA95_: ;
		{
			NIM_BOOL T103_;
			T103_ = (NIM_BOOL)0;
			T103_ = ((*(*(*(*colonenv_).m1).g).config).target.targetOS == ((tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ) 2));
			if (!(T103_)) goto LA104_;
			T103_ = !((((*(*(*(*colonenv_).m1).g).config).globalOptions & 640) == 0));
			LA104_: ;
			if (!T103_) goto LA105_;
			{
				NimStringDesc* res_9;
				NimStringDesc* T115_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T122_;
				if (!(((*(*(*(*colonenv_).m1).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 9))&63U)))!=0)) goto LA109_;
				{
					if (!!(!(((*colonenv_).m1 == NIM_NIL)))) goto LA113_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_30));
				}
				LA113_: ;
				res_9 = rawNewString(((NI) 80));
				res_9 = resizeString(res_9, 176);
appendString(res_9, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1205));
				T115_ = (NimStringDesc*)0;
				{
					NIM_BOOL T118_;
					T118_ = (NIM_BOOL)0;
					T118_ = hcrOn__a2BRACVCGIuooKjHNmoLsA((*colonenv_).m1);
					if (!T118_) goto LA119_;
					T115_ = copyString(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_69));
				}
				goto LA116_;
				LA119_: ;
				{
					T115_ = ((NimStringDesc*) NIM_NIL);
				}
				LA116_: ;
				cgFormatValue__GOaK9aDgu4cLOYhocodpf3Q((&res_9), T115_);
				res_9 = resizeString(res_9, 23);
appendString(res_9, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1206));
				T122_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T122_ = rope__yShmEg9cffWxI7s5XzEKBow(res_9);
				add__IM4kcMNkkOLJtqdEqSxR8A(&(*(*colonenv_).m1).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0], T122_);
			}
			goto LA107_;
			LA109_: ;
			{
				NimStringDesc* res_10;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T128_;
				{
					if (!!(!(((*colonenv_).m1 == NIM_NIL)))) goto LA126_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_30));
				}
				LA126_: ;
				res_10 = rawNewString(((NI) 80));
				res_10 = resizeString(res_10, 167);
appendString(res_10, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1207));
				T128_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T128_ = rope__yShmEg9cffWxI7s5XzEKBow(res_10);
				add__IM4kcMNkkOLJtqdEqSxR8A(&(*(*colonenv_).m1).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0], T128_);
			}
			LA107_: ;
		}
		goto LA101_;
		LA105_: ;
		{
			NimStringDesc* res_11;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T136_;
			if (!((*(*(*(*colonenv_).m1).g).config).target.targetOS == ((tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ) 25))) goto LA130_;
			{
				if (!!(!(((*colonenv_).m1 == NIM_NIL)))) goto LA134_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_30));
			}
			LA134_: ;
			res_11 = rawNewString(((NI) 80));
			res_11 = resizeString(res_11, 268);
appendString(res_11, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1208));
			T136_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T136_ = rope__yShmEg9cffWxI7s5XzEKBow(res_11);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*(*colonenv_).m1).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0], T136_);
		}
		goto LA101_;
		LA130_: ;
		{
			NimStringDesc* res_12;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T144_;
			if (!(((*(*(*(*colonenv_).m1).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 7))&63U)))!=0)) goto LA138_;
			{
				if (!!(!(((*colonenv_).m1 == NIM_NIL)))) goto LA142_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_30));
			}
			LA142_: ;
			res_12 = rawNewString(((NI) 80));
			res_12 = resizeString(res_12, 69);
appendString(res_12, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1209));
			T144_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T144_ = rope__yShmEg9cffWxI7s5XzEKBow(res_12);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*(*colonenv_).m1).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0], T144_);
		}
		goto LA101_;
		LA138_: ;
		{
			NimStringDesc* res_13;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T152_;
			if (!((*(*(*(*colonenv_).m1).g).config).target.targetOS == ((tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ) 28))) goto LA146_;
			{
				if (!!(!(((*colonenv_).m1 == NIM_NIL)))) goto LA150_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_30));
			}
			LA150_: ;
			res_13 = rawNewString(((NI) 80));
			res_13 = resizeString(res_13, 43);
appendString(res_13, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1210));
			T152_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T152_ = rope__yShmEg9cffWxI7s5XzEKBow(res_13);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*(*colonenv_).m1).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0], T152_);
		}
		goto LA101_;
		LA146_: ;
		{
			NimStringDesc* res_14;
			NimStringDesc* T158_;
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T165_;
			{
				if (!!(!(((*colonenv_).m1 == NIM_NIL)))) goto LA156_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_30));
			}
			LA156_: ;
			res_14 = rawNewString(((NI) 80));
			res_14 = resizeString(res_14, 114);
appendString(res_14, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1211));
			T158_ = (NimStringDesc*)0;
			{
				NIM_BOOL T161_;
				T161_ = (NIM_BOOL)0;
				T161_ = hcrOn__a2BRACVCGIuooKjHNmoLsA((*colonenv_).m1);
				if (!T161_) goto LA162_;
				T158_ = copyString(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_69));
			}
			goto LA159_;
			LA162_: ;
			{
				T158_ = ((NimStringDesc*) NIM_NIL);
			}
			LA159_: ;
			cgFormatValue__GOaK9aDgu4cLOYhocodpf3Q((&res_14), T158_);
			res_14 = resizeString(res_14, 23);
appendString(res_14, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1206));
			T165_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T165_ = rope__yShmEg9cffWxI7s5XzEKBow(res_14);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*(*colonenv_).m1).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0], T165_);
		}
		LA101_: ;
		{
			tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T170_;
			if (!(((NI) 0) < ((*(*(*(*colonenv_).m1).g).config).cppCustomNamespace ? (*(*(*(*colonenv_).m1).g).config).cppCustomNamespace->Sup.len : 0))) goto LA168_;
			T170_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
			T170_ = openNamespaceNim__h7k639c1gj2MLT300oN1wwg((*(*(*(*colonenv_).m1).g).config).cppCustomNamespace);
			add__IM4kcMNkkOLJtqdEqSxR8A(&(*(*colonenv_).m1).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0], T170_);
		}
		LA168_: ;
	}
	LA91_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, generateThreadVarsSize__7ll08CGQoDzh9cxhZCroU4w_5)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m) {
	{
		NimStringDesc* externc;
		tyArray__JiWwrsTRC6xqNlGcBthSVA T12_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T13_;
		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) 31))&63U)))!=0);
			LA8_: ;
			if (!T7_) goto LA9_;
			externc = copyString(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_430));
		}
		goto LA5_;
		LA9_: ;
		{
			externc = ((NimStringDesc*) NIM_NIL);
		}
		LA5_: ;
		nimZeroMem((void*)T12_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
		T12_[0] = rope__yShmEg9cffWxI7s5XzEKBow(externc);
		T13_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T13_ = percent___Y4DThr9bpMbmoKpvgT1rYwg(T12_, 1);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0], T13_);
	}
	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_1214));
		result = percent___j6hWzb1y4ej13yZg5WynCQ(T5_, 1);
	}
	goto LA1_;
	LA3_: ;
	{
		tyArray__duFhZXIIlrbrM62cWjNekg T7_;
		NimStringDesc* T8_;
		nimZeroMem((void*)T7_, sizeof(tyArray__duFhZXIIlrbrM62cWjNekg));
		T7_[0] = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1214));
		if ((*conf).target.targetOS < 1 || (*conf).target.targetOS > 30){ raiseIndexError3((*conf).target.targetOS, 1, 30); }
		T7_[1] = rope__yShmEg9cffWxI7s5XzEKBow(OS__Jx0qy9c9bSo4fGkMxUfUaAaw[((*conf).target.targetOS)- 1].Field0);
		if ((*conf).target.targetCPU < 1 || (*conf).target.targetCPU > 24){ raiseIndexError3((*conf).target.targetCPU, 1, 24); }
		T7_[2] = rope__yShmEg9cffWxI7s5XzEKBow(CPU__uYXopJX8pM87pQDCtmgWfQ[((*conf).target.targetCPU)- 1].Field0);
		if ((*conf).cCompiler < 1 || (*conf).cCompiler > 15){ raiseIndexError3((*conf).cCompiler, 1, 15); }
		T7_[3] = rope__yShmEg9cffWxI7s5XzEKBow(CC__78I18QZNZFIv9ah7oETc0jg[((*conf).cCompiler)- 1].Field0);
		T8_ = (NimStringDesc*)0;
		T8_ = getCompileCFileCmd__uOCPoEVtEQdC7k9cm7JeVsw(conf, cfile, NIM_FALSE, NIM_FALSE);
		T7_[4] = rope__yShmEg9cffWxI7s5XzEKBow(T8_);
		result = percent___7GaivGwvdxlAsVH2IdyT2Q(T7_, 5);
	}
	LA1_: ;
	return result;
}
static N_INLINE(void, addNimDefines__jVBximZchOMC4kzSRdtvHgcgen)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** result, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf) {
	tyArray__JiWwrsTRC6xqNlGcBthSVA T1_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T2_;
	nimZeroMem((void*)T1_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
	if ((*conf).target.targetCPU < 1 || (*conf).target.targetCPU > 24){ raiseIndexError3((*conf).target.targetCPU, 1, 24); }
	T1_[0] = rope__KOisMGxcPhz6CcSmxgwEQQ(((NI64) (CPU__uYXopJX8pM87pQDCtmgWfQ[((*conf).target.targetCPU)- 1].Field1)));
	T2_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = percent___YfbBxPLyPvVS6F2y9bSUFIA(T1_, 1);
	add__IM4kcMNkkOLJtqdEqSxR8A(result, T2_);
	{
		if (!(((NI) 0) < ((*conf).cppCustomNamespace ? (*conf).cppCustomNamespace->Sup.len : 0))) goto LA5_;
		add__yG4AKzsBRS1W4MANDlXQeg(result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1216));
		add__yG4AKzsBRS1W4MANDlXQeg(result, (*conf).cppCustomNamespace);
		add__yG4AKzsBRS1W4MANDlXQeg(result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_21));
	}
	LA5_: ;
	{
		NIM_BOOL T9_;
		T9_ = (NIM_BOOL)0;
		T9_ = isDefined__jkXTnxDf8MX1Pmks3s0XxA(conf, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1217));
		if (!T9_) goto LA10_;
		add__yG4AKzsBRS1W4MANDlXQeg(result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1218));
	}
	LA10_: ;
}
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);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = hcrOn__UhPXgqyDuuU9cKcS8FM883w(conf);
		if (!T3_) goto LA4_;
		add__yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1215));
	}
	LA4_: ;
	addNimDefines__jVBximZchOMC4kzSRdtvHgcgen(&result, conf);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, generateThreadLocalStorage__7ll08CGQoDzh9cxhZCroU4w_6)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m) {
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		tyArray__JiWwrsTRC6xqNlGcBthSVA T19_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T20_;
		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__9c7EibnXBApMXwrQsaaMb6Q) 1))&7U)))!=0);
		if (T5_) goto LA6_;
		T5_ = (((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 14))&63U)))!=0);
		LA6_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA7_;
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
			NI i;
			NI L;
			NI T10_;
			t = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			i = ((NI) 0);
			T10_ = ((*(*m).g).nimtvDeps ? (*(*m).g).nimtvDeps->Sup.len : 0);
			L = T10_;
			{
				while (1) {
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T13_;
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_1219;
					if (!(i < L)) goto LA12;
					if ((NU)(i) >= (NU)((*(*m).g).nimtvDeps ? (*(*m).g).nimtvDeps->Sup.len : 0)){ raiseIndexError2(i,((*(*m).g).nimtvDeps ? (*(*m).g).nimtvDeps->Sup.len : 0)-1); }
					t = (*(*m).g).nimtvDeps->data[i];
					T13_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T13_ = getTypeDesc__jXUNYqSX189axAU8O9bJBgpA(m, t);
					(void)(T13_);
					if (nimAddInt(i, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1219)) { raiseOverflow(); };
					i = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1219);
					{
						NI T16_;
						T16_ = ((*(*m).g).nimtvDeps ? (*(*m).g).nimtvDeps->Sup.len : 0);
						if (!!((T16_ == L))) goto LA17_;
						failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_26));
					}
					LA17_: ;
				} LA12: ;
			}
		}
		nimZeroMem((void*)T19_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
		T19_[0] = (*(*m).g).nimtv;
		T20_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T20_ = percent___OBvl4G6evYkvK9b9bClFGqNw(T19_, 1);
		add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 5))- 0], T20_);
	}
	LA7_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, generateHeaders__7ll08CGQoDzh9cxhZCroU4w_7)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m) {
	add__yG4AKzsBRS1W4MANDlXQeg(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0], ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1220));
	{
		NimStringDesc* it;
		NI i;
		NI L;
		NI T2_;
		it = (NimStringDesc*)0;
		i = ((NI) 0);
		T2_ = ((*m).headerFiles ? (*m).headerFiles->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_1221;
				if (!(i < L)) goto LA4;
				if ((NU)(i) >= (NU)((*m).headerFiles ? (*m).headerFiles->Sup.len : 0)){ raiseIndexError2(i,((*m).headerFiles ? (*m).headerFiles->Sup.len : 0)-1); }
				it = (*m).headerFiles->data[i];
				{
					NimStringDesc* T9_;
					NimStringDesc* T10_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T11_;
					if ((NU)(((NI) 0)) >= (NU)(it ? it->Sup.len : 0)){ raiseIndexError2(((NI) 0),(it ? it->Sup.len : 0)-1); }
					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_21));
					T11_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T11_ = rope__yShmEg9cffWxI7s5XzEKBow(T9_);
					add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0], T11_);
				}
				goto LA5_;
				LA7_: ;
				{
					tyArray__JiWwrsTRC6xqNlGcBthSVA T15_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T16_;
					if ((NU)(((NI) 0)) >= (NU)(it ? it->Sup.len : 0)){ raiseIndexError2(((NI) 0),(it ? it->Sup.len : 0)-1); }
					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);
					T16_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T16_ = percent___pHsLkkx9bTDctZjmJqwCYRA(T15_, 1);
					add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0], T16_);
				}
				goto LA5_;
				LA13_: ;
				{
					tyArray__JiWwrsTRC6xqNlGcBthSVA T18_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T19_;
					nimZeroMem((void*)T18_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
					T18_[0] = rope__yShmEg9cffWxI7s5XzEKBow(it);
					T19_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T19_ = percent___ksH6NowTz9bh4eMOdyaiR1w(T18_, 1);
					add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0], T19_);
				}
				LA5_: ;
				if (nimAddInt(i, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1221)) { raiseOverflow(); };
				i = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1221);
				{
					NI T22_;
					T22_ = ((*m).headerFiles ? (*m).headerFiles->Sup.len : 0);
					if (!!((T22_ == L))) goto LA23_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_26));
				}
				LA23_: ;
			} LA4: ;
		}
	}
	add__yG4AKzsBRS1W4MANDlXQeg(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0], ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1222));
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genModule__EFwkiA59cPQJZpsz0yL8eHQ)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg cfile) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	NIM_BOOL moduleIsEmpty;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T1_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T2_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T8_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T9_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T16_;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	moduleIsEmpty = NIM_TRUE;
	result = getFileHeader__t9c9byVBpvEfissxdPQCEZLw((*(*m).g).config, cfile);
	T1_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = genMergeInfo__T0VHRXp9cMnXMqYxgPwvmXw(m);
	add__IM4kcMNkkOLJtqdEqSxR8A(&result, T1_);
	generateThreadLocalStorage__7ll08CGQoDzh9cxhZCroU4w_6(m);
	generateHeaders__7ll08CGQoDzh9cxhZCroU4w_7(m);
	T2_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = genSectionStart__KYNwN8RXzjqIkzxFSwHsxw(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 1), (*(*m).g).config);
	add__IM4kcMNkkOLJtqdEqSxR8A(&result, T2_);
	add__IM4kcMNkkOLJtqdEqSxR8A(&result, (*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0]);
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T7_;
		if (!(((NI) 0) < ((*(*(*m).g).config).cppCustomNamespace ? (*(*(*m).g).config).cppCustomNamespace->Sup.len : 0))) goto LA5_;
		T7_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T7_ = openNamespaceNim__h7k639c1gj2MLT300oN1wwg((*(*(*m).g).config).cppCustomNamespace);
		add__IM4kcMNkkOLJtqdEqSxR8A(&result, T7_);
	}
	LA5_: ;
	T8_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T8_ = genSectionEnd__KYNwN8RXzjqIkzxFSwHsxw_2(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 1), (*(*m).g).config);
	add__IM4kcMNkkOLJtqdEqSxR8A(&result, T8_);
	T9_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T9_ = genSectionStart__KYNwN8RXzjqIkzxFSwHsxw(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 2), (*(*m).g).config);
	add__IM4kcMNkkOLJtqdEqSxR8A(&result, T9_);
	{
		NI T12_;
		T12_ = (NI)0;
		T12_ = len__9b0YRltzV3kNSE9aQTsG82wg((*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 2))- 0]);
		if (!(((NI) 0) < T12_)) goto LA13_;
		add__IM4kcMNkkOLJtqdEqSxR8A(&result, (*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 2))- 0]);
	}
	goto LA10_;
	LA13_: ;
	{
		add__yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1223));
	}
	LA10_: ;
	T16_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T16_ = genSectionEnd__KYNwN8RXzjqIkzxFSwHsxw_2(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 2), (*(*m).g).config);
	add__IM4kcMNkkOLJtqdEqSxR8A(&result, T16_);
	{
		tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg i;
		NI res;
		i = (tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg)0;
		res = ((NI) 3);
		{
			while (1) {
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_1224;
				if (!(res <= ((NI) 11))) goto LA19;
				if ((res) < ((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 0) || (res) > ((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 19)){ raiseRangeErrorI(res, ((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 0), ((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 19)); }
				i = ((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) (res));
				{
					NI T22_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T25_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T26_;
					T22_ = (NI)0;
					T22_ = len__9b0YRltzV3kNSE9aQTsG82wg((*m).s[(i)- 0]);
					if (!(((NI) 0) < T22_)) goto LA23_;
					moduleIsEmpty = NIM_FALSE;
					T25_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T25_ = genSectionStart__KYNwN8RXzjqIkzxFSwHsxw(i, (*(*m).g).config);
					add__IM4kcMNkkOLJtqdEqSxR8A(&result, T25_);
					add__IM4kcMNkkOLJtqdEqSxR8A(&result, (*m).s[(i)- 0]);
					T26_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T26_ = genSectionEnd__KYNwN8RXzjqIkzxFSwHsxw_2(i, (*(*m).g).config);
					add__IM4kcMNkkOLJtqdEqSxR8A(&result, T26_);
				}
				LA23_: ;
				if (nimAddInt(res, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1224)) { raiseOverflow(); };
				res = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1224);
			} LA19: ;
		}
	}
	{
		NI T29_;
		T29_ = (NI)0;
		T29_ = len__9b0YRltzV3kNSE9aQTsG82wg((*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 12))- 0]);
		if (!(((NI) 0) < T29_)) goto LA30_;
		moduleIsEmpty = NIM_FALSE;
		add__IM4kcMNkkOLJtqdEqSxR8A(&result, (*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 12))- 0]);
	}
	LA30_: ;
	{
		NIM_BOOL T34_;
		NI T35_;
		T34_ = (NIM_BOOL)0;
		T35_ = (NI)0;
		T35_ = len__9b0YRltzV3kNSE9aQTsG82wg((*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 13))- 0]);
		T34_ = (((NI) 0) < T35_);
		if (T34_) goto LA36_;
		T34_ = hcrOn__a2BRACVCGIuooKjHNmoLsA(m);
		LA36_: ;
		if (!T34_) goto LA37_;
		moduleIsEmpty = NIM_FALSE;
		add__IM4kcMNkkOLJtqdEqSxR8A(&result, (*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 13))- 0]);
	}
	LA37_: ;
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T43_;
		if (!(((NI) 0) < ((*(*(*m).g).config).cppCustomNamespace ? (*(*(*m).g).config).cppCustomNamespace->Sup.len : 0))) goto LA41_;
		T43_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T43_ = closeNamespaceNim__EBP36f89alKNeO11l19ca8RQ();
		add__IM4kcMNkkOLJtqdEqSxR8A(&result, T43_);
	}
	LA41_: ;
	{
		if (!moduleIsEmpty) goto LA46_;
		result = NIM_NIL;
	}
	LA46_: ;
	return result;
}
static N_INLINE(NIM_BOOL, fileExists__2KLbGVKGy3qOdtJ4Bb1ADgos)(NimStringDesc* filename) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = nosexistsFile(filename);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, shouldRecompile__H4aCBrBgfkxUNX78oimi1g)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* code, tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg cfile) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		if (!!((((*(*(*m).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 1))&63U)))!=0))) goto LA3_;
		{
			NIM_BOOL T7_;
			T7_ = (NIM_BOOL)0;
			T7_ = moduleHasChanged__nJ9czoaD1xFoTuiaDFAAiaApasses((*(*m).g).graph, (*m).module);
			if (!!(T7_)) goto LA8_;
			result = NIM_FALSE;
		}
		goto LA5_;
		LA8_: ;
		{
			NIM_BOOL T11_;
			T11_ = (NIM_BOOL)0;
			T11_ = equalsFile__Wiam9c8x73Mtmbj0r4Ppikg(code, cfile.cname);
			if (!!(T11_)) goto LA12_;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = writeRope__LLRRC42xWBSkxzV9bsPu7lA(code, cfile.cname);
				if (!!(T16_)) goto LA17_;
				rawMessage__h30HgTFwbGq0PsyHmRqZ8g((*(*m).g).config, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 3), cfile.cname);
			}
			LA17_: ;
			result = NIM_TRUE;
		}
		goto LA5_;
		LA12_: ;
		{
			NIM_BOOL T20_;
			T20_ = (NIM_BOOL)0;
			T20_ = fileExists__2KLbGVKGy3qOdtJ4Bb1ADgos(cfile.obj);
			if (!(T20_)) goto LA21_;
			T20_ = nosfileNewer(cfile.obj, cfile.cname);
			LA21_: ;
			if (!T20_) goto LA22_;
			result = NIM_FALSE;
		}
		goto LA5_;
		LA22_: ;
		{
			result = NIM_TRUE;
		}
		LA5_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		{
			NIM_BOOL T28_;
			T28_ = (NIM_BOOL)0;
			T28_ = writeRope__LLRRC42xWBSkxzV9bsPu7lA(code, cfile.cname);
			if (!!(T28_)) goto LA29_;
			rawMessage__h30HgTFwbGq0PsyHmRqZ8g((*(*m).g).config, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 3), cfile.cname);
		}
		LA29_: ;
		result = NIM_TRUE;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, writeModule__ZCCFqS1YhEjeMHLdSMM8xg)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m, NIM_BOOL pending) {
	NimStringDesc* cfile;
	cfile = getCFile__bmANOnd5oQhXRrTCn9a8S4g(m);
	{
		NIM_BOOL T3_;
		tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg cf;
		NimStringDesc* T16_;
		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_;
		{
			NIM_BOOL T9_;
			T9_ = (NIM_BOOL)0;
			T9_ = moduleHasChanged__nJ9czoaD1xFoTuiaDFAAiaApasses((*(*m).g).graph, (*m).module);
			if (!T9_) goto LA10_;
			genInitCode__7ll08CGQoDzh9cxhZCroU4w(m);
			finishTypeDescriptions__7ll08CGQoDzh9cxhZCroU4w_3(m);
			{
				if (!(((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 14))&63U)))!=0)) goto LA14_;
				genMainProc__7ll08CGQoDzh9cxhZCroU4w_4(m);
				add__IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], (*(*m).g).mainModProcs);
				generateThreadVarsSize__7ll08CGQoDzh9cxhZCroU4w_5(m);
			}
			LA14_: ;
		}
		LA10_: ;
		nimZeroMem((void*)(&cf), sizeof(tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg));
		chckNil((void*)(&cf));
		nimZeroMem((void*)(&cf), sizeof(tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg));
		cf.nimname = copyString((*(*(*m).module).name).s);
		cf.cname = copyString(cfile);
		T16_ = (NimStringDesc*)0;
		T16_ = toObjFile__GMjJ0d3khWrmxAqhh9anEsw((*(*m).g).config, cfile);
		cf.obj = completeCfilePath__VmrjcznbGOrooG3SBIdEFQ((*(*m).g).config, T16_, NIM_TRUE);
		cf.flags = 0;
		code = genModule__EFwkiA59cPQJZpsz0yL8eHQ(m, cf);
		{
			NIM_BOOL T19_;
			T19_ = (NIM_BOOL)0;
			T19_ = !((code == NIM_NIL));
			if (T19_) goto LA20_;
			T19_ = !(((*(*(*m).g).config).symbolFiles == ((tyEnum_SymbolFilesOption__gBES9bqm1ru9ape8SeMRAFgQ) 0)));
			LA20_: ;
			if (!T19_) goto LA21_;
			{
				NIM_BOOL T25_;
				T25_ = (NIM_BOOL)0;
				T25_ = shouldRecompile__H4aCBrBgfkxUNX78oimi1g(m, code, cf);
				if (!!(T25_)) goto LA26_;
				cf.flags = 1;
			}
			LA26_: ;
			addFileToCompile__0nANBPjKLpImf3GNXBeQ2Q((*(*m).g).config, cf);
		}
		LA21_: ;
	}
	goto LA1_;
	LA5_: ;
	{
		NIM_BOOL T29_;
		NIM_BOOL T30_;
		tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg cf_2;
		NimStringDesc* T35_;
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* code_2;
		T29_ = (NIM_BOOL)0;
		T30_ = (NIM_BOOL)0;
		T30_ = pending;
		if (!(T30_)) goto LA31_;
		T30_ = mergeRequired__X8MaNNxDVB7fxLVXrvJcFw(m);
		LA31_: ;
		T29_ = T30_;
		if (!(T29_)) goto LA32_;
		T29_ = !((((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 14))&63U)))!=0));
		LA32_: ;
		if (!T29_) goto LA33_;
		nimZeroMem((void*)(&cf_2), sizeof(tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg));
		chckNil((void*)(&cf_2));
		nimZeroMem((void*)(&cf_2), sizeof(tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg));
		cf_2.nimname = copyString((*(*(*m).module).name).s);
		cf_2.cname = copyString(cfile);
		T35_ = (NimStringDesc*)0;
		T35_ = toObjFile__GMjJ0d3khWrmxAqhh9anEsw((*(*m).g).config, cfile);
		cf_2.obj = completeCfilePath__VmrjcznbGOrooG3SBIdEFQ((*(*m).g).config, T35_, NIM_TRUE);
		cf_2.flags = 0;
		mergeFiles__l8sH9bHsXY4q3tbS3srelEw(cfile, m);
		genInitCode__7ll08CGQoDzh9cxhZCroU4w(m);
		finishTypeDescriptions__7ll08CGQoDzh9cxhZCroU4w_3(m);
		code_2 = genModule__EFwkiA59cPQJZpsz0yL8eHQ(m, cf_2);
		{
			if (!!((code_2 == NIM_NIL))) goto LA38_;
			{
				NIM_BOOL T42_;
				T42_ = (NIM_BOOL)0;
				T42_ = writeRope__LLRRC42xWBSkxzV9bsPu7lA(code_2, cfile);
				if (!!(T42_)) goto LA43_;
				rawMessage__h30HgTFwbGq0PsyHmRqZ8g((*(*m).g).config, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 3), cfile);
			}
			LA43_: ;
			addFileToCompile__0nANBPjKLpImf3GNXBeQ2Q((*(*m).g).config, cf_2);
		}
		LA38_: ;
	}
	goto LA1_;
	LA33_: ;
	{
		tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg cf_3;
		NimStringDesc* T46_;
		nimZeroMem((void*)(&cf_3), sizeof(tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg));
		chckNil((void*)(&cf_3));
		nimZeroMem((void*)(&cf_3), sizeof(tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg));
		cf_3.nimname = copyString((*(*(*m).module).name).s);
		cf_3.cname = copyString(cfile);
		T46_ = (NimStringDesc*)0;
		T46_ = toObjFile__GMjJ0d3khWrmxAqhh9anEsw((*(*m).g).config, cfile);
		cf_3.obj = completeCfilePath__VmrjcznbGOrooG3SBIdEFQ((*(*m).g).config, T46_, NIM_TRUE);
		cf_3.flags = 0;
		{
			NIM_BOOL T49_;
			T49_ = (NIM_BOOL)0;
			T49_ = fileExists__2KLbGVKGy3qOdtJ4Bb1ADgos(cf_3.obj);
			if (!!(T49_)) goto LA50_;
			cf_3.flags = 1;
		}
		LA50_: ;
		addFileToCompile__0nANBPjKLpImf3GNXBeQ2Q((*(*m).g).config, cf_3);
	}
	LA1_: ;
	close__yy9bzEsQhd9bXopz79cWnxXdw((&(*m).ndi), (*(*m).g).config);
}
N_LIB_PRIVATE N_NIMCALL(void, writeHeader__7ll08CGQoDzh9cxhZCroU4w_8)(tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	tyArray__JiWwrsTRC6xqNlGcBthSVA T1_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* guard;
	tyArray__JiWwrsTRC6xqNlGcBthSVA T2_;
	tyTuple__7q7q3E6Oj24ZNVJb9aonhAg T3_;
	tyArray__JiWwrsTRC6xqNlGcBthSVA T4_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T5_;
	tyArray__qTjAvTvKF9anytN1At69aJMQ T22_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T23_;
	tyArray__JiWwrsTRC6xqNlGcBthSVA T29_;
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T30_;
	nimZeroMem((void*)T1_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
	T1_[0] = rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_1214));
	result = percent___y39ant8iE9bjKB0kbkRCAibQ(T1_, 1);
	nimZeroMem((void*)T2_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
	nimZeroMem((void*)(&T3_), sizeof(tyTuple__7q7q3E6Oj24ZNVJb9aonhAg));
	splitFile__z7B4FbwzX3Y0L1EA2lLGXw((*m).filename, (&T3_));
	T2_[0] = rope__yShmEg9cffWxI7s5XzEKBow(T3_.Field1);
	guard = percent___RKXvZR1cmZW5dfjtFQCG3g(T2_, 1);
	nimZeroMem((void*)T4_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
	T4_[0] = guard;
	T5_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T5_ = percent___nEA33x9cMfuJw3ZiGbn25iw(T4_, 1);
	add__IM4kcMNkkOLJtqdEqSxR8A(&result, T5_);
	addNimDefines__jVBximZchOMC4kzSRdtvHgcgen(&result, (*(*m).g).config);
	generateHeaders__7ll08CGQoDzh9cxhZCroU4w_7(m);
	generateThreadLocalStorage__7ll08CGQoDzh9cxhZCroU4w_6(m);
	{
		tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg i;
		NI res;
		i = (tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg)0;
		res = ((NI) 1);
		{
			while (1) {
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T9_;
				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T10_;
				NI TM__MQdRN7fpbG7rPm4JpVVAhA_1226;
				if (!(res <= ((NI) 11))) goto LA8;
				if ((res) < ((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 0) || (res) > ((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 19)){ raiseRangeErrorI(res, ((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 0), ((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 19)); }
				i = ((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) (res));
				T9_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T9_ = genSectionStart__KYNwN8RXzjqIkzxFSwHsxw(i, (*(*m).g).config);
				add__IM4kcMNkkOLJtqdEqSxR8A(&result, T9_);
				add__IM4kcMNkkOLJtqdEqSxR8A(&result, (*m).s[(i)- 0]);
				T10_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
				T10_ = genSectionEnd__KYNwN8RXzjqIkzxFSwHsxw_2(i, (*(*m).g).config);
				add__IM4kcMNkkOLJtqdEqSxR8A(&result, T10_);
				{
					NIM_BOOL T13_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T17_;
					T13_ = (NIM_BOOL)0;
					T13_ = (((NI) 0) < ((*(*(*m).g).config).cppCustomNamespace ? (*(*(*m).g).config).cppCustomNamespace->Sup.len : 0));
					if (!(T13_)) goto LA14_;
					T13_ = (i == ((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 1));
					LA14_: ;
					if (!T13_) goto LA15_;
					T17_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T17_ = openNamespaceNim__h7k639c1gj2MLT300oN1wwg((*(*(*m).g).config).cppCustomNamespace);
					add__IM4kcMNkkOLJtqdEqSxR8A(&result, T17_);
				}
				LA15_: ;
				if (nimAddInt(res, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1226)) { raiseOverflow(); };
				res = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1226);
			} LA8: ;
		}
	}
	add__IM4kcMNkkOLJtqdEqSxR8A(&result, (*m).s[(((tyEnum_TCFileSection__NR9cMDOmG9cHJhM0tCKvXNzg) 12))- 0]);
	{
		if (!(((*(*(*m).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 7))&63U)))!=0)) goto LA20_;
		add__yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_41));
	}
	LA20_: ;
	nimZeroMem((void*)T22_, sizeof(tyArray__qTjAvTvKF9anytN1At69aJMQ));
	T23_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T23_ = percent___0xK6HolrLvVFWil73hZYbA(T22_, 0);
	add__IM4kcMNkkOLJtqdEqSxR8A(&result, T23_);
	{
		tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T28_;
		if (!(((NI) 0) < ((*(*(*m).g).config).cppCustomNamespace ? (*(*(*m).g).config).cppCustomNamespace->Sup.len : 0))) goto LA26_;
		T28_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
		T28_ = closeNamespaceNim__EBP36f89alKNeO11l19ca8RQ();
		add__IM4kcMNkkOLJtqdEqSxR8A(&result, T28_);
	}
	LA26_: ;
	nimZeroMem((void*)T29_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
	T29_[0] = guard;
	T30_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	T30_ = percent___Z2c9cvs0wVVVqTEZ3Qwe9bfw(T29_, 1);
	add__IM4kcMNkkOLJtqdEqSxR8A(&result, T30_);
	{
		NIM_BOOL T33_;
		T33_ = (NIM_BOOL)0;
		T33_ = writeRope__LLRRC42xWBSkxzV9bsPu7lA(result, (*m).filename);
		if (!!(T33_)) goto LA34_;
		rawMessage__h30HgTFwbGq0PsyHmRqZ8g((*(*m).g).config, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 3), (*m).filename);
	}
	LA34_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, cgenWriteModules__f9b9ctpv6DQPmjwWpbkP6UPw)(RootObj* backend, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config) {
	tyObject_BModuleListcolonObjectType___CpP4eJLbv5ZwofQXpESuGA* g;
	if (backend && !isObj((*backend).m_type, (&NTI__CpP4eJLbv5ZwofQXpESuGA_))){ raiseObjectConversionError(); }
	g = ((tyObject_BModuleListcolonObjectType___CpP4eJLbv5ZwofQXpESuGA*) (backend));
	asgnRef((void**) (&(*g).config), config);
	genForwardedProcs__PBGOqkExHgxzX6Rn0nJkYg(g);
	{
		tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m;
		m = (tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow*)0;
		{
			tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow* m_2;
			NI i;
			NI L;
			NI T3_;
			m_2 = (tyObject_TCGen__9cG6VsX22pOhho6kxyhFVow*)0;
			i = ((NI) 0);
			T3_ = ((*g).modulesClosed ? (*g).modulesClosed->Sup.len : 0);
			L = T3_;
			{
				while (1) {
					NI TM__MQdRN7fpbG7rPm4JpVVAhA_1225;
					if (!(i < L)) goto LA5;
					if ((NU)(i) >= (NU)((*g).modulesClosed ? (*g).modulesClosed->Sup.len : 0)){ raiseIndexError2(i,((*g).modulesClosed ? (*g).modulesClosed->Sup.len : 0)-1); }
					m_2 = (*g).modulesClosed->data[i];
					m = m_2;
					writeModule__ZCCFqS1YhEjeMHLdSMM8xg(m, NIM_TRUE);
					if (nimAddInt(i, ((NI) 1), &TM__MQdRN7fpbG7rPm4JpVVAhA_1225)) { raiseOverflow(); };
					i = (NI)(TM__MQdRN7fpbG7rPm4JpVVAhA_1225);
					{
						NI T8_;
						T8_ = ((*g).modulesClosed ? (*g).modulesClosed->Sup.len : 0);
						if (!!((T8_ == L))) goto LA9_;
						failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_26));
					}
					LA9_: ;
				} LA5: ;
			}
		}
	}
	writeMapping__LBHXhYTVO2vldQU4a5LZ9aQ(config, (*g).mapping);
	{
		if (!!(((*g).generatedHeader == NIM_NIL))) goto LA13_;
		writeHeader__7ll08CGQoDzh9cxhZCroU4w_8((*g).generatedHeader);
	}
	LA13_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, compiler_cgenInit000)(void) {
{
	TFrame FR_; FR_.len = 0;
	asgnRef((void**) (&cachedUnion__37c7SFtO1oJKGkAWrI71Fw), rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_57)));
	asgnRef((void**) (&cachedStruct__9a5hqgEB1sqNj6CL5z0oy5w), rope__yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM__MQdRN7fpbG7rPm4JpVVAhA_59)));
}
{

	nimRegisterGlobalMarker(TM__MQdRN7fpbG7rPm4JpVVAhA_56);


	nimRegisterGlobalMarker(TM__MQdRN7fpbG7rPm4JpVVAhA_58);

}
}

N_LIB_PRIVATE N_NIMCALL(void, compiler_cgenDatInit000)(void) {
static TNimNode* TM__MQdRN7fpbG7rPm4JpVVAhA_903_2[2];
static TNimNode* TM__MQdRN7fpbG7rPm4JpVVAhA_1178_2[2];
static TNimNode TM__MQdRN7fpbG7rPm4JpVVAhA_0[6];
NTI__9cSd9cjH9cnPQaBRO0ioKSxRA_.size = sizeof(tyTuple__9cSd9cjH9cnPQaBRO0ioKSxRA);
NTI__9cSd9cjH9cnPQaBRO0ioKSxRA_.kind = 18;
NTI__9cSd9cjH9cnPQaBRO0ioKSxRA_.base = 0;
NTI__9cSd9cjH9cnPQaBRO0ioKSxRA_.flags = 2;
TM__MQdRN7fpbG7rPm4JpVVAhA_903_2[0] = &TM__MQdRN7fpbG7rPm4JpVVAhA_0[1];
TM__MQdRN7fpbG7rPm4JpVVAhA_0[1].kind = 1;
TM__MQdRN7fpbG7rPm4JpVVAhA_0[1].offset = offsetof(tyTuple__9cSd9cjH9cnPQaBRO0ioKSxRA, Field0);
TM__MQdRN7fpbG7rPm4JpVVAhA_0[1].typ = (&NTI__EtHNvCB0bgfu9bFjzx9cb6aA_);
TM__MQdRN7fpbG7rPm4JpVVAhA_0[1].name = "Field0";
TM__MQdRN7fpbG7rPm4JpVVAhA_903_2[1] = &TM__MQdRN7fpbG7rPm4JpVVAhA_0[2];
TM__MQdRN7fpbG7rPm4JpVVAhA_0[2].kind = 1;
TM__MQdRN7fpbG7rPm4JpVVAhA_0[2].offset = offsetof(tyTuple__9cSd9cjH9cnPQaBRO0ioKSxRA, Field1);
TM__MQdRN7fpbG7rPm4JpVVAhA_0[2].typ = (&NTI__4hi0XQqK9aLiPuWT9acsXm9aQ_);
TM__MQdRN7fpbG7rPm4JpVVAhA_0[2].name = "Field1";
TM__MQdRN7fpbG7rPm4JpVVAhA_0[0].len = 2; TM__MQdRN7fpbG7rPm4JpVVAhA_0[0].kind = 2; TM__MQdRN7fpbG7rPm4JpVVAhA_0[0].sons = &TM__MQdRN7fpbG7rPm4JpVVAhA_903_2[0];
NTI__9cSd9cjH9cnPQaBRO0ioKSxRA_.node = &TM__MQdRN7fpbG7rPm4JpVVAhA_0[0];
NTI__sno9c9bXUVS2CqhtWOJadaCw_.size = sizeof(tySequence__sno9c9bXUVS2CqhtWOJadaCw*);
NTI__sno9c9bXUVS2CqhtWOJadaCw_.kind = 24;
NTI__sno9c9bXUVS2CqhtWOJadaCw_.base = (&NTI__9cSd9cjH9cnPQaBRO0ioKSxRA_);
NTI__sno9c9bXUVS2CqhtWOJadaCw_.flags = 2;
NTI__sno9c9bXUVS2CqhtWOJadaCw_.marker = Marker_tySequence__sno9c9bXUVS2CqhtWOJadaCw;
NTI__IDX4istqRyOZp3l6j9aUesw_.size = sizeof(tyObject_Env_cgendotnim___IDX4istqRyOZp3l6j9aUesw);
NTI__IDX4istqRyOZp3l6j9aUesw_.kind = 17;
NTI__IDX4istqRyOZp3l6j9aUesw_.base = (&NTI__ytyiCJqK439aF9cIibuRVpAg_);
TM__MQdRN7fpbG7rPm4JpVVAhA_1178_2[0] = &TM__MQdRN7fpbG7rPm4JpVVAhA_0[4];
TM__MQdRN7fpbG7rPm4JpVVAhA_0[4].kind = 1;
TM__MQdRN7fpbG7rPm4JpVVAhA_0[4].offset = offsetof(tyObject_Env_cgendotnim___IDX4istqRyOZp3l6j9aUesw, colonstate_);
TM__MQdRN7fpbG7rPm4JpVVAhA_0[4].typ = (&NTI__xHTZrq9aYs6boc9bCba0JbpQ_);
TM__MQdRN7fpbG7rPm4JpVVAhA_0[4].name = ":state";
TM__MQdRN7fpbG7rPm4JpVVAhA_1178_2[1] = &TM__MQdRN7fpbG7rPm4JpVVAhA_0[5];
TM__MQdRN7fpbG7rPm4JpVVAhA_0[5].kind = 1;
TM__MQdRN7fpbG7rPm4JpVVAhA_0[5].offset = offsetof(tyObject_Env_cgendotnim___IDX4istqRyOZp3l6j9aUesw, m1);
TM__MQdRN7fpbG7rPm4JpVVAhA_0[5].typ = (&NTI__NkKlBfvvsMUW70DxvxLVIg_);
TM__MQdRN7fpbG7rPm4JpVVAhA_0[5].name = "m1";
TM__MQdRN7fpbG7rPm4JpVVAhA_0[3].len = 2; TM__MQdRN7fpbG7rPm4JpVVAhA_0[3].kind = 2; TM__MQdRN7fpbG7rPm4JpVVAhA_0[3].sons = &TM__MQdRN7fpbG7rPm4JpVVAhA_1178_2[0];
NTI__IDX4istqRyOZp3l6j9aUesw_.node = &TM__MQdRN7fpbG7rPm4JpVVAhA_0[3];
NTI__UjwNQwrGjW3X9ahveEH9bnWA_.size = sizeof(tyObject_Env_cgendotnim___IDX4istqRyOZp3l6j9aUesw*);
NTI__UjwNQwrGjW3X9ahveEH9bnWA_.kind = 22;
NTI__UjwNQwrGjW3X9ahveEH9bnWA_.base = (&NTI__IDX4istqRyOZp3l6j9aUesw_);
NTI__UjwNQwrGjW3X9ahveEH9bnWA_.marker = Marker_tyRef__UjwNQwrGjW3X9ahveEH9bnWA;
}

