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

#include "nimbase.h"
#include <string.h>
#include <stdio.h>
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef powerpc
#undef unix
typedef struct tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
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_LLChunk_XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk_XsENErzHIZV9bhvyJx56wGw;
typedef struct tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg;
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 tySequence_zuqP4Riz26Oi5fWgPYVEgA tySequence_zuqP4Riz26Oi5fWgPYVEgA;
typedef struct tyObject_TType_LTUWCZolpovw9cWE3JBWSUw tyObject_TType_LTUWCZolpovw9cWE3JBWSUw;
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_TPassContext_qNsm39cWb35W2r5AAd9ch87g tyObject_TPassContext_qNsm39cWb35W2r5AAd9ch87g;
typedef struct tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ;
typedef struct tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw;
typedef struct tyObject_IdentCachecolonObjectType__TzLHS09bRH9a0TYLs39cqcNaw tyObject_IdentCachecolonObjectType__TzLHS09bRH9a0TYLs39cqcNaw;
typedef struct tySequence_sksVpmPRIkNR9axiwtD1Guw tySequence_sksVpmPRIkNR9axiwtD1Guw;
typedef struct tyObject_TStrTable_f07aOS3dr28kGa5wcE29aFA tyObject_TStrTable_f07aOS3dr28kGa5wcE29aFA;
typedef struct tyObject_Table_tfmlwa8ktiw8woWAs5vhtQ tyObject_Table_tfmlwa8ktiw8woWAs5vhtQ;
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 tySequence_npTAlnSu9cyJr3PNURLEKhQ tySequence_npTAlnSu9cyJr3PNURLEKhQ;
typedef struct tyObject_BModuleListcolonObjectType__t8u9aWK9cwyNCAxgxkYKh9bLQ tyObject_BModuleListcolonObjectType__t8u9aWK9cwyNCAxgxkYKh9bLQ;
typedef struct tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA;
typedef struct tyObject_Table_CLLTIkQVzDOo9avEeZWukOg tyObject_Table_CLLTIkQVzDOo9avEeZWukOg;
typedef struct tySequence_W2kc72XufLJLp3E0kMt2Ow tySequence_W2kc72XufLJLp3E0kMt2Ow;
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_pdLM8FWiNHAzIuaDPD0Leg tyObject_CountTable_pdLM8FWiNHAzIuaDPD0Leg;
typedef struct tySequence_XUL1TrMU0tgXmaMFCIYgFQ tySequence_XUL1TrMU0tgXmaMFCIYgFQ;
typedef struct tyObject_NdiFile_9cEuXfAnHp9bnWFK409cMtsEw tyObject_NdiFile_9cEuXfAnHp9bnWFK409cMtsEw;
typedef struct tyObject_TLineInfo_T9c3PM9bs7WZ4LIQfEici9cZw tyObject_TLineInfo_T9c3PM9bs7WZ4LIQfEici9cZw;
typedef struct tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ;
typedef struct tySequence_LViedqhb8iWVoqgZs5LifA tySequence_LViedqhb8iWVoqgZs5LifA;
typedef struct tySequence_oUyaggHmIX9bpJcMeoG6lpA tySequence_oUyaggHmIX9bpJcMeoG6lpA;
typedef struct tyObject_CountTable_WWp0VSBtrctjwzspLeGpeg tyObject_CountTable_WWp0VSBtrctjwzspLeGpeg;
typedef struct tySequence_jwzrUFjG9akTIJTBBFvvqxw tySequence_jwzrUFjG9akTIJTBBFvvqxw;
typedef struct tyObject_TIdObj_raN9cHVgzmvaXisezY9aGg9cg tyObject_TIdObj_raN9cHVgzmvaXisezY9aGg9cg;
typedef struct tySequence_DXS6mEo7PVUFJkirsQ9bNQA tySequence_DXS6mEo7PVUFJkirsQ9bNQA;
typedef struct tyObject_TIdent_4umxGerWTHGPwUms7Yqu3g tyObject_TIdent_4umxGerWTHGPwUms7Yqu3g;
typedef struct tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw;
typedef struct tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA;
typedef struct tyObject_TLib_NBMxlJ6g3utqUlplqTTHkA tyObject_TLib_NBMxlJ6g3utqUlplqTTHkA;
typedef struct tySequence_M9cUg1RvLFDo4xAxcKuVqMg tySequence_M9cUg1RvLFDo4xAxcKuVqMg;
typedef struct tySequence_YLg9aN9cjdxVYWdZ7YCb9batg tySequence_YLg9aN9cjdxVYWdZ7YCb9batg;
typedef struct tyObject_TFileInfo_UOayjckboTXG9aVx8iKOs9aQ tyObject_TFileInfo_UOayjckboTXG9aVx8iKOs9aQ;
typedef struct tyObject_HashSet_pOhUohTPuRItuGmDY0Ddzg tyObject_HashSet_pOhUohTPuRItuGmDY0Ddzg;
typedef struct tySequence_4eRCaZmrYLLw2k30GPTiMw tySequence_4eRCaZmrYLLw2k30GPTiMw;
typedef struct tyObject_TRodReader_16TURXdqtpMMssNVfU5WqQ tyObject_TRodReader_16TURXdqtpMMssNVfU5WqQ;
typedef struct tySequence_iGkpo9aKQdr3NWelKC4cnJA tySequence_iGkpo9aKQdr3NWelKC4cnJA;
typedef struct tyTuple_XOVT24GHXwqiEj5GCsEGCA tyTuple_XOVT24GHXwqiEj5GCsEGCA;
typedef struct tyTuple_u79c2fI4jf7n3cZOvTDviyA tyTuple_u79c2fI4jf7n3cZOvTDviyA;
typedef struct tyObject_TBlock_GFhahvekTq3dDOkWyhchMA tyObject_TBlock_GFhahvekTq3dDOkWyhchMA;
typedef struct tyObject_TTraversalClosure_xQv4a9atAYFpL11GCS9cY9bCg tyObject_TTraversalClosure_xQv4a9atAYFpL11GCS9cY9bCg;
typedef struct tySequence_pxbIse2JUQkJU0n9blV9bY5g tySequence_pxbIse2JUQkJU0n9blV9bY5g;
typedef struct tyObject_Cfile_IOg1iQ2oUKnOJHLIt9auKNQ tyObject_Cfile_IOg1iQ2oUKnOJHLIt9auKNQ;
typedef struct tyTuple_5L3fCt9bX0gyEcO30ervPLw tyTuple_5L3fCt9bX0gyEcO30ervPLw;
typedef struct tyTuple_UpiOGlu5Ux6DLM73wSrdpg tyTuple_UpiOGlu5Ux6DLM73wSrdpg;
typedef struct tyTuple_7q7q3E6Oj24ZNVJb9aonhAg tyTuple_7q7q3E6Oj24ZNVJb9aonhAg;
typedef struct tyObject_BaseChunk_Sdq7WpT6qAH858F5ZEdG3w tyObject_BaseChunk_Sdq7WpT6qAH858F5ZEdG3w;
typedef struct tyObject_FreeCell_u6M5LHprqzkn9axr04yg9bGQ tyObject_FreeCell_u6M5LHprqzkn9axr04yg9bGQ;
typedef struct tyTuple_xDU9bZmv1ZbZkJDaATBekIQ tyTuple_xDU9bZmv1ZbZkJDaATBekIQ;
typedef struct tyTuple_c3iwyH3aQEvxlw6WDIN9c0g tyTuple_c3iwyH3aQEvxlw6WDIN9c0g;
typedef struct tyTuple_AmSMAcQUDDCRLV1x9c9cm9axA tyTuple_AmSMAcQUDDCRLV1x9c9cm9axA;
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_QeWl6B6ffS4pU6WWrtcrDw tyTuple_QeWl6B6ffS4pU6WWrtcrDw;
typedef struct tyObject_TIndex_hUZsEw7f9bvoVPQYLWHrTDQ tyObject_TIndex_hUZsEw7f9bvoVPQYLWHrTDQ;
typedef struct tyObject_TIITable_2ud26DHRGdy6LEqDPifSOA tyObject_TIITable_2ud26DHRGdy6LEqDPifSOA;
typedef struct tySequence_h0IAOvrRzVzO3NpUxaxxvQ tySequence_h0IAOvrRzVzO3NpUxaxxvQ;
typedef struct tyObject_Table_DYt7wxxRVZ9c5PDjh5cfgPA tyObject_Table_DYt7wxxRVZ9c5PDjh5cfgPA;
typedef struct tySequence_eBSwX9aa9c1W8S1FJPmehz9aQ tySequence_eBSwX9aa9c1W8S1FJPmehz9aQ;
typedef struct tyObject_MemFile_j4SnXNrJDFBxAz4BlbM9aIQ tyObject_MemFile_j4SnXNrJDFBxAz4BlbM9aIQ;
typedef struct tyTuple_a09bGTAl9ceOKTAytYdkbyKg tyTuple_a09bGTAl9ceOKTAytYdkbyKg;
typedef struct tyObject_TIIPair_Vwj9bWy1xJ8WVCE9ctkEPJDA tyObject_TIIPair_Vwj9bWy1xJ8WVCE9ctkEPJDA;
typedef struct tyTuple_XUtHSCESHcg7KVfuMIqQmw tyTuple_XUtHSCESHcg7KVfuMIqQmw;
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;
};
typedef NU8 tyEnum_TNimNodeKind_unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind_unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
typedef N_NIMCALL_PTR(void, tyProc_T4eqaYlFJYZUv9aG9b1TV0bQ) (void);
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
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 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;
tyObject_LLChunk_XsENErzHIZV9bhvyJx56wGw* llmem;
NI currMem;
NI maxMem;
NI freeMem;
NI lastSize;
tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg* freeChunksList;
tyObject_IntSet_EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* root;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* deleted;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* last;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
NIM_BOOL locked;
NIM_BOOL blockChunkSizeIncrease;
NI nextChunkSize;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw bottomData;
tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
};
struct tyObject_GcStat_0RwLoVBHZPfUAcLczmfQAg {
NI stackScans;
NI cycleCollections;
NI maxThreshold;
NI maxStackSize;
NI maxStackCells;
NI cycleTableSize;
NI64 maxPause;
};
struct tyObject_CellSet_jG87P0AI9aZtss9ccTYBIISQ {
NI counter;
NI max;
tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg* head;
tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg** data;
};
struct tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ {
tyObject_GcStack_7fytPA5bBsob6See21YMRA stack;
NI cycleThreshold;
tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w zct;
tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w decStack;
tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w tempStack;
NI recGcLock;
tyObject_MemRegion_x81NhDv59b8ercDZ9bi85jyg region;
tyObject_GcStat_0RwLoVBHZPfUAcLczmfQAg stat;
tyObject_CellSet_jG87P0AI9aZtss9ccTYBIISQ marked;
tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w additionalRoots;
};
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_TStrTable_f07aOS3dr28kGa5wcE29aFA {
NI counter;
tySequence_sksVpmPRIkNR9axiwtD1Guw* data;
};
struct tyObject_Table_tfmlwa8ktiw8woWAs5vhtQ {
tySequence_kxu4GK0onha2t9bo86mdVAg* data;
NI counter;
};
typedef struct {
N_NIMCALL_PTR(NIM_BOOL, ClP_0) (void* ClE_0);
void* ClE_0;
} tyProc_xdLb0cyzx3FuM6Q4NnRTpQ;
struct tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ {
tySequence_sksVpmPRIkNR9axiwtD1Guw* modules;
tyObject_TStrTable_f07aOS3dr28kGa5wcE29aFA packageSyms;
tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg deps;
NIM_BOOL suggestMode;
NIM_BOOL invalidTransitiveClosure;
tyObject_Table_tfmlwa8ktiw8woWAs5vhtQ inclToMod;
tySequence_48JTohSgTy339bRxHzUD8KA* importStack;
RootObj* backend;
tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config;
tyProc_xdLb0cyzx3FuM6Q4NnRTpQ doStopCompile;
tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* usageSym;
tySequence_sksVpmPRIkNR9axiwtD1Guw* owners;
tySequence_npTAlnSu9cyJr3PNURLEKhQ* methods;
};
struct RootObj {
TNimType* m_type;
};
struct tyObject_TPassContext_qNsm39cWb35W2r5AAd9ch87g {
  RootObj Sup;
NIM_BOOL fromCache;
};
typedef tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* tyArray_iIceV7mtVk9aXBwSlNN9bplA[18];
typedef NU8 tySet_tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q;
struct tyObject_Table_CLLTIkQVzDOo9avEeZWukOg {
tySequence_W2kc72XufLJLp3E0kMt2Ow* data;
NI counter;
};
struct tyObject_TNodeTable_wN7B39cKxLpMkvKNm9bduZ0A {
NI counter;
tySequence_vhmj4KkIKPinmRXny9c2Q6Q* data;
};
typedef tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* tyArray_pCazSO5as9cLn1a9bV9c9aHy3w[10];
struct tyObject_CountTable_pdLM8FWiNHAzIuaDPD0Leg {
tySequence_XUL1TrMU0tgXmaMFCIYgFQ* data;
NI counter;
};
struct tyObject_NdiFile_9cEuXfAnHp9bnWFK409cMtsEw {
NIM_BOOL enabled;
FILE* f;
NimStringDesc* buf;
};
struct tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA {
  tyObject_TPassContext_qNsm39cWb35W2r5AAd9ch87g Sup;
tyArray_iIceV7mtVk9aXBwSlNN9bplA s;
tySet_tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q flags;
tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* module;
NimStringDesc* filename;
NimStringDesc* cfilename;
tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* tmpBase;
tyObject_Table_CLLTIkQVzDOo9avEeZWukOg typeCache;
tyObject_Table_CLLTIkQVzDOo9avEeZWukOg forwTypeCache;
tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg declaredThings;
tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg declaredProtos;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* headerFiles;
tyObject_Table_CLLTIkQVzDOo9avEeZWukOg typeInfoMarker;
tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* initProc;
tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* postInitProc;
tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* preInitProc;
tySequence_zuqP4Riz26Oi5fWgPYVEgA* typeStack;
tyObject_TNodeTable_wN7B39cKxLpMkvKNm9bduZ0A dataCache;
tySequence_sksVpmPRIkNR9axiwtD1Guw* forwardedProcs;
NI typeNodes;
NI nimTypes;
tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* typeNodesName;
tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* nimTypesName;
NI labels;
tyArray_pCazSO5as9cLn1a9bV9c9aHy3w extensionLoaders;
tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* injectStmt;
tyObject_CountTable_pdLM8FWiNHAzIuaDPD0Leg sigConflicts;
tyObject_BModuleListcolonObjectType__t8u9aWK9cwyNCAxgxkYKh9bLQ* g;
tyObject_NdiFile_9cEuXfAnHp9bnWFK409cMtsEw ndi;
};
typedef NU8 tyArray_qtqsWM5aXmcpMIVmvq3kAA[16];
struct tyObject_TLineInfo_T9c3PM9bs7WZ4LIQfEici9cZw {
NI16 line;
NI16 col;
NI32 fileIndex;
};
typedef NU32 tySet_tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg;
struct tyObject_CountTable_WWp0VSBtrctjwzspLeGpeg {
tySequence_jwzrUFjG9akTIJTBBFvvqxw* data;
NI counter;
};
struct tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q {
tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* prc;
NIM_BOOL beforeRetNeeded;
NIM_BOOL threadVarAccessed;
tyObject_TLineInfo_T9c3PM9bs7WZ4LIQfEici9cZw lastLineInfo;
tyObject_TLineInfo_T9c3PM9bs7WZ4LIQfEici9cZw currLineInfo;
tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ* nestedTryStmts;
NI inExceptBlock;
tySequence_LViedqhb8iWVoqgZs5LifA* finallySafePoints;
NI labels;
tySequence_oUyaggHmIX9bpJcMeoG6lpA* blocks;
NI breakIdx;
tySet_tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg options;
NI maxFrameLen;
tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* module;
NI withinLoop;
NI splitDecls;
NI gcFrameId;
tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* gcFrameType;
tyObject_CountTable_WWp0VSBtrctjwzspLeGpeg sigConflicts;
};
struct tyObject_TIdObj_raN9cHVgzmvaXisezY9aGg9cg {
  RootObj Sup;
NI id;
};
typedef NU8 tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw;
typedef NU16 tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg;
typedef NU64 tySet_tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw;
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 s;
tySet_tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA flags;
tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t;
tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* r;
};
struct tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw {
  tyObject_TIdObj_raN9cHVgzmvaXisezY9aGg9cg Sup;
tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw kind;
union{
struct {tySequence_zuqP4Riz26Oi5fWgPYVEgA* typeInstCache;
} S1;
struct {tySequence_DXS6mEo7PVUFJkirsQ9bNQA* procInstCache;
tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* gcUnsafetyReason;
} S2;
struct {tySequence_DXS6mEo7PVUFJkirsQ9bNQA* usedGenerics;
tyObject_TStrTable_f07aOS3dr28kGa5wcE29aFA tab;
} S3;
struct {tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* guard;
NI bitsize;
} S4;
} kindU;
tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg magic;
tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ;
tyObject_TIdent_4umxGerWTHGPwUms7Yqu3g* name;
tyObject_TLineInfo_T9c3PM9bs7WZ4LIQfEici9cZw info;
tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* owner;
tySet_tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw flags;
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ast;
tySet_tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg options;
NI position;
NI offset;
tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA loc;
tyObject_TLib_NBMxlJ6g3utqUlplqTTHkA* annex;
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* constraint;
};
typedef NU8 tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw;
typedef NU8 tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q;
typedef NU8 tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg;
typedef NU32 tySet_tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw;
typedef NU8 tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw;
struct tyObject_BModuleListcolonObjectType__t8u9aWK9cwyNCAxgxkYKh9bLQ {
  RootObj Sup;
tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* mainModProcs;
tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* mainModInit;
tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* otherModsInit;
tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* mainDatInit;
tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* mapping;
tySequence_M9cUg1RvLFDo4xAxcKuVqMg* modules;
NI forwardedProcsCounter;
tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* generatedHeader;
NI breakPointId;
tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* breakpoints;
tyObject_Table_CLLTIkQVzDOo9avEeZWukOg typeInfoMarker;
tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config;
};
struct tyObject_TFileInfo_UOayjckboTXG9aVx8iKOs9aQ {
NimStringDesc* fullPath;
NimStringDesc* projPath;
NimStringDesc* shortName;
tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* quotedName;
tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* quotedFullName;
tySequence_LViedqhb8iWVoqgZs5LifA* lines;
NimStringDesc* dirtyfile;
};
struct tyObject_HashSet_pOhUohTPuRItuGmDY0Ddzg {
tySequence_4eRCaZmrYLLw2k30GPTiMw* data;
NI counter;
};
struct tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw {
tyObject_HashSet_pOhUohTPuRItuGmDY0Ddzg cppDefines;
NimStringDesc* headerFile;
};
typedef NU8 tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw;
typedef NU32 tySet_tyEnum_TNodeFlag_jyh9acXHkhZANSSvPIY7ZLg;
typedef NU8 tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw;
struct tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw {
tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ;
tyObject_TLineInfo_T9c3PM9bs7WZ4LIQfEici9cZw info;
tySet_tyEnum_TNodeFlag_jyh9acXHkhZANSSvPIY7ZLg flags;
tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw kind;
union{
struct {NI64 intVal;
} S1;
struct {NF floatVal;
} S2;
struct {NimStringDesc* strVal;
} S3;
struct {tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* sym;
} S4;
struct {tyObject_TIdent_4umxGerWTHGPwUms7Yqu3g* ident;
} S5;
struct {tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ* sons;
} S6;
} kindU;
NimStringDesc* comment;
};
struct tyObject_TIdent_4umxGerWTHGPwUms7Yqu3g {
  tyObject_TIdObj_raN9cHVgzmvaXisezY9aGg9cg Sup;
NimStringDesc* s;
tyObject_TIdent_4umxGerWTHGPwUms7Yqu3g* next;
NI h;
};
typedef NU8 tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag;
typedef NU8 tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA;
typedef NU64 tySet_tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw;
struct tyObject_TType_LTUWCZolpovw9cWE3JBWSUw {
  tyObject_TIdObj_raN9cHVgzmvaXisezY9aGg9cg Sup;
tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag kind;
tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA callConv;
tySet_tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw flags;
tySequence_zuqP4Riz26Oi5fWgPYVEgA* sons;
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n;
tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* owner;
tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* sym;
tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* destructor;
tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* deepCopy;
tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* assignment;
tySequence_iGkpo9aKQdr3NWelKC4cnJA* methods;
NI64 size;
NI16 align;
NI16 lockLevel;
tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA loc;
tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typeInst;
};
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_HF4qJnb6xiOddgPmsxodtQ* name;
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* path;
};
typedef NU8 tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg;
typedef tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* tyArray_YB3ke0PEM9bcAj9bAsA619bJA[2];
typedef NU8 tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w;
typedef NU8 tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw;
struct tyTuple_XOVT24GHXwqiEj5GCsEGCA {
NimStringDesc* Field0;
NI Field1;
};
typedef NU64 tySet_tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag;
typedef tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* tyArray_j0xH32fTir0IvGY7WxQsQA[1];
typedef NU8 tyEnum_TPreferedDesc_tnd4qt9c4xddV8oKV5zyusw;
typedef NU8 tySet_tyEnum_ConsiderFlag_9a9az8WnKmq9bvt8EXoSUES7g;
typedef NimStringDesc* tyArray_Sjq0yxKksnvb1U6tEMqzYg[14];
typedef tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* tyArray_ZqT9cbUNKsl55MABiLlPDxA[1];
typedef tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* tyArray_EcJXtY9cAr9bpvybuP0XpjyQ[4];
typedef NimStringDesc* tyArray_t1sx1FVcaX4m77XqENedIQ[10];
typedef tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* tyArray_1UwZ4PfBDZcImViZT8dk0w[3];
struct tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ {
  RootObj Sup;
tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* left;
tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* right;
NI length;
NimStringDesc* data;
};
typedef NU8 tySet_tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg;
struct tyTuple_u79c2fI4jf7n3cZOvTDviyA {
NimStringDesc* Field0;
NimStringDesc* Field1;
NimStringDesc* Field2;
NimStringDesc* Field3;
NimStringDesc* Field4;
NimStringDesc* Field5;
NimStringDesc* Field6;
NimStringDesc* Field7;
NimStringDesc* Field8;
NimStringDesc* Field9;
NimStringDesc* Field10;
NimStringDesc* Field11;
NimStringDesc* Field12;
NimStringDesc* Field13;
NimStringDesc* Field14;
NimStringDesc* Field15;
NimStringDesc* Field16;
NimStringDesc* Field17;
NimStringDesc* Field18;
tySet_tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg Field19;
};
typedef tyTuple_u79c2fI4jf7n3cZOvTDviyA tyArray_qu6yzdxYR9byKjDbcELHKnw[12];
typedef NU8 tyEnum_TSystemCC_Y42JhQFLdjkIirjI3TJjww;
typedef NU8 tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg;
typedef NU8 tyEnum_TNodeFlag_jyh9acXHkhZANSSvPIY7ZLg;
typedef NU8 tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg;
typedef tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* tyArray_i7n7yJOHIMzDUysssoQALQ[3];
struct tyObject_TBlock_GFhahvekTq3dDOkWyhchMA {
NI id;
tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* label;
tyArray_i7n7yJOHIMzDUysssoQALQ sections;
NIM_BOOL isLoop;
NI16 nestedTryStmts;
NI16 nestedExceptStmts;
NI16 frameLen;
};
typedef NU8 tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw;
typedef NU8 tyEnum_TTypeInfoReason_JUIK4Zo6UqHyAc9c1cbuWvg;
struct tyObject_TTraversalClosure_xQv4a9atAYFpL11GCS9cY9bCg {
tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p;
NimStringDesc* visitorFrmt;
};
typedef NU8 tyEnum_TTypeFieldResult_aBXTX9cIKT9b0yNlXSu9aPT9cw;
typedef tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* tyArray_i17eA0S8auwIIitiN9cmr7w[6];
typedef tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* tyArray_Qvn0o9b1NKIPKPXftbKDxrA[7];
typedef tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* tyArray_zr9bwyAl6fC7FLYwf5Lbz5w[5];
typedef NU16 tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw;
typedef NU8 tySet_tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw;
typedef NU8 tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw;
typedef NimStringDesc* tyArray_JSgGJOkOqgOo1s9bmyBDCIw[19];
typedef NimStringDesc* tyArray_xAyf4rirXvBJAU9ar9cZHRFw[3];
typedef NimStringDesc* tyArray_1SeZR8kaOX3FtWvHoBu9c4g[4];
typedef NimStringDesc* tyArray_1loGRLkDaWVLWOJGppCv7A[42];
typedef NimStringDesc* tyArray_bKFSxC0i7ZtH3saMnwZufw[7];
typedef NU8 tySet_tyEnum_TRenderFlag_wrPgUo1ExBlHvFnXN2nSHw;
typedef NimStringDesc* tyArray_rs615XcYhjcJXqz1Z1BqYQ[2];
typedef NU8 tyEnum_TClosureTypeKind_cLHRMz1vnpSK0uePy2qbWw;
typedef NimStringDesc* tyArray_dAZ0Uu4zULzcUQG1JO2Z8Q[6];
typedef NU8 tyEnum_TAnalysisResult_p9a9bcrXoRmLT4eUuwrDq9b4w;
typedef NU8 tySet_tyChar_nmiMWKVIe46vacnhAFrQvw[32];
typedef NU8 tyEnum_TSystemOS_s7Mlr1t66SUqP6BKJMXLaQ;
typedef NU8 tyEnum_TDistinctCompare_9bNKHGs63atuMFXnAleTveg;
typedef NU8 tySet_tyEnum_TTypeCmpFlag_72pgRXSg7774cr9aCWVPORw;
typedef NU16 tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw;
typedef NU8 tySet_tyEnum_CfileFlag_4w5ZpcEnSfgcseU9ceKA9bDQ;
struct tyObject_Cfile_IOg1iQ2oUKnOJHLIt9auKNQ {
NimStringDesc* cname;
NimStringDesc* obj;
tySet_tyEnum_CfileFlag_4w5ZpcEnSfgcseU9ceKA9bDQ flags;
};
typedef NU8 tySet_tyEnum_TInfoOSProp_thetQwB9agpeQ13qFmAcWhg;
struct tyTuple_5L3fCt9bX0gyEcO30ervPLw {
NimStringDesc* Field0;
NimStringDesc* Field1;
NimStringDesc* Field2;
NimStringDesc* Field3;
NimStringDesc* Field4;
NimStringDesc* Field5;
NimStringDesc* Field6;
NimStringDesc* Field7;
NimStringDesc* Field8;
NimStringDesc* Field9;
NimStringDesc* Field10;
NimStringDesc* Field11;
tySet_tyEnum_TInfoOSProp_thetQwB9agpeQ13qFmAcWhg Field12;
};
typedef tyTuple_5L3fCt9bX0gyEcO30ervPLw tyArray_kpCg3iRCi52ls5qmpTQ6jw[27];
typedef NU8 tyEnum_TEndian_bQ3yFYQJojZPNYsZnS7Zjg;
struct tyTuple_UpiOGlu5Ux6DLM73wSrdpg {
NimStringDesc* Field0;
NI Field1;
tyEnum_TEndian_bQ3yFYQJojZPNYsZnS7Zjg Field2;
NI Field3;
NI Field4;
};
typedef tyTuple_UpiOGlu5Ux6DLM73wSrdpg tyArray_qZhGNNJ69c1k4POIQ9apOotg[21];
typedef NU8 tyEnum_TSystemCPU_XYDt7D1G3qcClFyZy1Ky9ag;
struct tyTuple_7q7q3E6Oj24ZNVJb9aonhAg {
NimStringDesc* Field0;
NimStringDesc* Field1;
NimStringDesc* Field2;
};
struct tyObject_BaseChunk_Sdq7WpT6qAH858F5ZEdG3w {
NI prevSize;
NI size;
};
struct tyObject_SmallChunk_tXn60W2f8h3jgAYdEmy5NQ {
  tyObject_BaseChunk_Sdq7WpT6qAH858F5ZEdG3w Sup;
tyObject_SmallChunk_tXn60W2f8h3jgAYdEmy5NQ* next;
tyObject_SmallChunk_tXn60W2f8h3jgAYdEmy5NQ* prev;
tyObject_FreeCell_u6M5LHprqzkn9axr04yg9bGQ* freeList;
NI free;
NI acc;
NF data;
};
struct tyObject_LLChunk_XsENErzHIZV9bhvyJx56wGw {
NI size;
NI acc;
tyObject_LLChunk_XsENErzHIZV9bhvyJx56wGw* next;
};
struct tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg {
  tyObject_BaseChunk_Sdq7WpT6qAH858F5ZEdG3w Sup;
tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg* next;
tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg* prev;
NF data;
};
typedef NI tyArray_9a8QARi5WsUggNU9bom7kzTQ[8];
struct tyObject_Trunk_W0r8S0Y3UGke6T9bIUWnnuw {
tyObject_Trunk_W0r8S0Y3UGke6T9bIUWnnuw* next;
NI key;
tyArray_9a8QARi5WsUggNU9bom7kzTQ bits;
};
struct tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg {
tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg* next;
NI key;
tyArray_9a8QARi5WsUggNU9bom7kzTQ bits;
};
struct tyObject_Trunk_ul49aWfv9aes8cutmeltT3gQ {
tyObject_Trunk_ul49aWfv9aes8cutmeltT3gQ* next;
NI key;
tyArray_9a8QARi5WsUggNU9bom7kzTQ bits;
};
typedef tyObject_TIdent_4umxGerWTHGPwUms7Yqu3g* tyArray_CBfZt49asUfAsBVM7a3Rc9cw[8192];
struct tyObject_IdentCachecolonObjectType__TzLHS09bRH9a0TYLs39cqcNaw {
tyArray_CBfZt49asUfAsBVM7a3Rc9cw buckets;
NI wordCounter;
tyObject_TIdent_4umxGerWTHGPwUms7Yqu3g* idAnon;
tyObject_TIdent_4umxGerWTHGPwUms7Yqu3g* idDelegator;
tyObject_TIdent_4umxGerWTHGPwUms7Yqu3g* emptyIdent;
};
struct tyTuple_xDU9bZmv1ZbZkJDaATBekIQ {
NI Field0;
NI32 Field1;
NI32 Field2;
};
struct tyTuple_c3iwyH3aQEvxlw6WDIN9c0g {
tySequence_sksVpmPRIkNR9axiwtD1Guw* Field0;
tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* Field1;
};
struct tyTuple_AmSMAcQUDDCRLV1x9c9cm9axA {
NI Field0;
tyArray_qtqsWM5aXmcpMIVmvq3kAA Field1;
tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* Field2;
};
struct tyObject_TNodePair_EZfI4tFqtDSTQys2UInNjg {
NI h;
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* key;
NI val;
};
struct tyTuple_tA7Q8IrfOKH7Mn89cK9cBAIg {
tyArray_qtqsWM5aXmcpMIVmvq3kAA Field0;
NI Field1;
};
struct tyTuple_QeWl6B6ffS4pU6WWrtcrDw {
NI Field0;
NimStringDesc* Field1;
};
typedef NU8 tyEnum_TReasonForRecompile_CESX1DWEXOC2bslyDO2n5A;
struct tyObject_TIITable_2ud26DHRGdy6LEqDPifSOA {
NI counter;
tySequence_h0IAOvrRzVzO3NpUxaxxvQ* data;
};
struct tyObject_TIndex_hUZsEw7f9bvoVPQYLWHrTDQ {
NI lastIdxKey;
NI lastIdxVal;
tyObject_TIITable_2ud26DHRGdy6LEqDPifSOA tab;
NimStringDesc* r;
NI offset;
};
struct tyObject_Table_DYt7wxxRVZ9c5PDjh5cfgPA {
tySequence_eBSwX9aa9c1W8S1FJPmehz9aQ* data;
NI counter;
};
struct tyObject_MemFile_j4SnXNrJDFBxAz4BlbM9aIQ {
void* mem;
NI size;
NI fHandle;
NI mapHandle;
NIM_BOOL wasOpened;
};
struct tyObject_TRodReader_16TURXdqtpMMssNVfU5WqQ {
  RootObj Sup;
NI pos;
NCSTRING s;
tySet_tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg options;
tyEnum_TReasonForRecompile_CESX1DWEXOC2bslyDO2n5A reason;
tySequence_48JTohSgTy339bRxHzUD8KA* modDeps;
tySequence_48JTohSgTy339bRxHzUD8KA* files;
NI dataIdx;
NI convertersIdx;
NI initIdx;
NI interfIdx;
NI compilerProcsIdx;
NI methodsIdx;
NimStringDesc* filename;
tyObject_TIndex_hUZsEw7f9bvoVPQYLWHrTDQ index;
tyObject_TIndex_hUZsEw7f9bvoVPQYLWHrTDQ imports;
NI readerIndex;
NI line;
NI moduleID;
tyObject_Table_DYt7wxxRVZ9c5PDjh5cfgPA syms;
tyObject_MemFile_j4SnXNrJDFBxAz4BlbM9aIQ memfile;
tySequence_sksVpmPRIkNR9axiwtD1Guw* methods;
NimStringDesc* origFile;
NIM_BOOL inViewMode;
tyObject_IdentCachecolonObjectType__TzLHS09bRH9a0TYLs39cqcNaw* cache;
};
struct tyTuple_a09bGTAl9ceOKTAytYdkbyKg {
NI Field0;
tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* Field1;
};
struct tyObject_FreeCell_u6M5LHprqzkn9axr04yg9bGQ {
tyObject_FreeCell_u6M5LHprqzkn9axr04yg9bGQ* next;
NI zeroField;
};
struct tyObject_TInstantiation_5LqgVn6Tq9ainQRK7TQAQxA {
tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* sym;
tySequence_zuqP4Riz26Oi5fWgPYVEgA* concreteTypes;
NI compilesId;
};
struct tyObject_TIIPair_Vwj9bWy1xJ8WVCE9ctkEPJDA {
NI key;
NI val;
};
struct tyTuple_XUtHSCESHcg7KVfuMIqQmw {
NI Field0;
NI Field1;
tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* Field2;
};
struct tySequence_zuqP4Riz26Oi5fWgPYVEgA {
  TGenericSeq Sup;
  tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* data[SEQ_DECL_SIZE];
};
struct tySequence_sM4lkSb7zS6F7OVMvW9cffQ {
  TGenericSeq Sup;
  NimStringDesc* data[SEQ_DECL_SIZE];
};
struct tySequence_sksVpmPRIkNR9axiwtD1Guw {
  TGenericSeq Sup;
  tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* data[SEQ_DECL_SIZE];
};
struct tySequence_M9cUg1RvLFDo4xAxcKuVqMg {
  TGenericSeq Sup;
  tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* data[SEQ_DECL_SIZE];
};
struct tySequence_YLg9aN9cjdxVYWdZ7YCb9batg {
  TGenericSeq Sup;
  tyObject_TFileInfo_UOayjckboTXG9aVx8iKOs9aQ data[SEQ_DECL_SIZE];
};
struct tySequence_pxbIse2JUQkJU0n9blV9bY5g {
  TGenericSeq Sup;
  NI8 data[SEQ_DECL_SIZE];
};
struct tySequence_oUyaggHmIX9bpJcMeoG6lpA {
  TGenericSeq Sup;
  tyObject_TBlock_GFhahvekTq3dDOkWyhchMA data[SEQ_DECL_SIZE];
};
struct tySequence_LViedqhb8iWVoqgZs5LifA {
  TGenericSeq Sup;
  tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* data[SEQ_DECL_SIZE];
};
struct tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ {
  TGenericSeq Sup;
  tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
};
struct tySequence_9brg1xNurxcus33lU4IE1Dw {
  TGenericSeq Sup;
  tyObject_Trunk_ul49aWfv9aes8cutmeltT3gQ* data[SEQ_DECL_SIZE];
};
struct tySequence_kxu4GK0onha2t9bo86mdVAg {
  TGenericSeq Sup;
  tyTuple_xDU9bZmv1ZbZkJDaATBekIQ data[SEQ_DECL_SIZE];
};
struct tySequence_48JTohSgTy339bRxHzUD8KA {
  TGenericSeq Sup;
  NI32 data[SEQ_DECL_SIZE];
};
struct tySequence_npTAlnSu9cyJr3PNURLEKhQ {
  TGenericSeq Sup;
  tyTuple_c3iwyH3aQEvxlw6WDIN9c0g data[SEQ_DECL_SIZE];
};
struct tySequence_W2kc72XufLJLp3E0kMt2Ow {
  TGenericSeq Sup;
  tyTuple_AmSMAcQUDDCRLV1x9c9cm9axA 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_jwzrUFjG9akTIJTBBFvvqxw {
  TGenericSeq Sup;
  tyTuple_XOVT24GHXwqiEj5GCsEGCA data[SEQ_DECL_SIZE];
};
struct tySequence_DXS6mEo7PVUFJkirsQ9bNQA {
  TGenericSeq Sup;
  tyObject_TInstantiation_5LqgVn6Tq9ainQRK7TQAQxA* data[SEQ_DECL_SIZE];
};
struct tySequence_4eRCaZmrYLLw2k30GPTiMw {
  TGenericSeq Sup;
  tyTuple_QeWl6B6ffS4pU6WWrtcrDw data[SEQ_DECL_SIZE];
};
struct tySequence_iGkpo9aKQdr3NWelKC4cnJA {
  TGenericSeq Sup;
  tyTuple_a09bGTAl9ceOKTAytYdkbyKg data[SEQ_DECL_SIZE];
};
struct tySequence_h0IAOvrRzVzO3NpUxaxxvQ {
  TGenericSeq Sup;
  tyObject_TIIPair_Vwj9bWy1xJ8WVCE9ctkEPJDA data[SEQ_DECL_SIZE];
};
struct tySequence_eBSwX9aa9c1W8S1FJPmehz9aQ {
  TGenericSeq Sup;
  tyTuple_XUtHSCESHcg7KVfuMIqQmw data[SEQ_DECL_SIZE];
};
N_NIMCALL(void, nimGCvisit)(void* d, NI op);
static N_NIMCALL(void, TM_MQdRN7fpbG7rPm4JpVVAhA_2)(void);
N_NIMCALL(void, nimRegisterGlobalMarker)(tyProc_T4eqaYlFJYZUv9aG9b1TV0bQ markerProc);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, rope_53CHEX05HP0HacydnwoUYg)(NimStringDesc* s);
static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src);
static N_INLINE(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell_yB9aH5WIlwd0xkYrcdPeXrQsystem)(void* usr);
static N_INLINE(void, rtlAddZCT_MV4BBk6J1qu70IbBxwEn4w_2system)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
N_NOINLINE(void, addZCT_fCDI7oO1NNVXXURtxSzsRw)(tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_NIMCALL(void, TM_MQdRN7fpbG7rPm4JpVVAhA_4)(void);
static N_NIMCALL(void, TM_MQdRN7fpbG7rPm4JpVVAhA_5)(void);
static N_INLINE(void, nimGCunrefNoCycle)(void* p);
N_NIMCALL(void*, newSeqRC1)(TNimType* typ, NI len);
static N_NIMCALL(void, TM_MQdRN7fpbG7rPm4JpVVAhA_6)(void);
N_NIMCALL(void, initIntSet_a9a80eJplB17xrdZJ41Baww)(tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* Result);
N_NOINLINE(void, chckNil)(void* p);
N_NIMCALL(void, genericReset)(void* dest, TNimType* mt);
N_NIMCALL(tyObject_BModuleListcolonObjectType__t8u9aWK9cwyNCAxgxkYKh9bLQ*, newModuleList_yC9bWdJFx3wRFSnQfu7fc5A)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef_9cAA5YuQAAC3MVbnGeV86swsystem)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(void, decRef_MV4BBk6J1qu70IbBxwEn4wsystem)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
N_NIMCALL(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA*, newModule_qQ4hv9beTuAFp9bxECPBwJpA)(tyObject_BModuleListcolonObjectType__t8u9aWK9cwyNCAxgxkYKh9bLQ* g, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* module);
N_NIMCALL(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA*, rawNewModule_qQ4hv9beTuAFp9bxECPBwJpA_2)(tyObject_BModuleListcolonObjectType__t8u9aWK9cwyNCAxgxkYKh9bLQ* g, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* module);
N_NIMCALL(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA*, rawNewModule_RDDmzhNqH4L9cy8lvQtnMnw)(tyObject_BModuleListcolonObjectType__t8u9aWK9cwyNCAxgxkYKh9bLQ* g, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* module, NimStringDesc* filename);
N_NIMCALL(void*, newObj)(TNimType* typ, NI size);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem_E1xtACub5WcDa3vbrIXbwgsystem)(void* dest, void* source, NI size);
N_NIMCALL(NimStringDesc*, dollar__cjda4doS9ccFOjsWsGu9aa2A)(tyArray_qtqsWM5aXmcpMIVmvq3kAA u);
N_NIMCALL(void, hashOwner_NjJGUHVEg1oG10FIZSXO9cQ)(tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* s, tyArray_qtqsWM5aXmcpMIVmvq3kAA Result);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
N_NIMCALL(void, initTable_CYqX9c8IMjTwMZARcN9bfPAQ)(NI initialSize, tyObject_Table_CLLTIkQVzDOo9avEeZWukOg* Result);
N_NIMCALL(void, initCountTable_4O7TExpEDvPAeVZ7AqX3iw)(NI initialSize, tyObject_CountTable_pdLM8FWiNHAzIuaDPD0Leg* Result);
N_NIMCALL(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q*, newProc_Mqi1a0mHlQ8XakVweFEAvQ)(tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* prc, tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* module);
N_NIMCALL(tySet_tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg, initProcOptions_EYn9bXONq9aP52vwfOhfbTDQ)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m);
N_NIMCALL(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q*, newPreInitProc_bF6eQvkcCq9ahIfQ70Cj0MQ)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m);
N_NIMCALL(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q*, newPostInitProc_bF6eQvkcCq9ahIfQ70Cj0MQ_2)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m);
N_NIMCALL(void, initNodeTable_68xlHiM6I8zJts5pWolVFA)(tyObject_TNodeTable_wN7B39cKxLpMkvKNm9bduZ0A* x);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getTempName_54CrPIOFKsrtQd59cl9bHH3A)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, amp__FyliSLNPyN7IibfEAQfpRA)(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* a, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* b);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, rope_pEztpD6TFe5jk3aCrOSACA)(NI64 i);
N_NIMCALL(NimStringDesc*, noschangeFileExt)(NimStringDesc* filename, NimStringDesc* ext);
N_NIMCALL(NimStringDesc*, completeCFilePath_XziFVTv1mJIlNEw2aMU1Ig)(NimStringDesc* cfile, NIM_BOOL createSubDir);
N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_NIMCALL(void, open_2anm3CRiB23rDhf0nK6NqQ)(tyObject_NdiFile_9cEuXfAnHp9bnWFK409cMtsEw* f, NimStringDesc* filename);
N_NIMCALL(NimStringDesc*, toFullPath_7s19cb7WBgztz9aqEBzwwuqA)(NI32 fileIdx);
N_NIMCALL(TGenericSeq*, setLengthSeq)(TGenericSeq* seq, NI elemSize, NI newLen);
N_NIMCALL(void, internalError_5XY9cUy7hZmUusM38U9cYYdw)(NimStringDesc* errMsg);
N_NIMCALL(void, readMergeInfo_klaWcZvKFqt7gKWMCpzPOQ)(NimStringDesc* cfilename, tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m);
N_NIMCALL(NimStringDesc*, getCFile_HGL9bKxvY1ZMx9barwV7E9cDg)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m);
N_NIMCALL(NimStringDesc*, withPackageName_hXI3LWBWedZbdPyAYn0KOQ_2)(NimStringDesc* path);
static N_INLINE(NIM_BOOL, skipCodegen_JOewUiDW9bIteW9aaAqXy7cgcgen)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_NIMCALL(void, genStmts_QrTB5DOwbDX9bKAW7PNbuJA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t);
N_NIMCALL(void, expr_8mAL9ckajemzgfLPfeZVNoQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(void, fillProcLoc_5LEMfE09buQIXg39bLkcpjww)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* sym);
N_NIMCALL(void, fillLoc_FYZoK6R9akILOlR1JSuEh3g)(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a, tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg k, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* r, tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw s);
N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, mangleName_qNuXhnV9aHm5hP7aXP809asQ)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* s);
N_NIMCALL(NimStringDesc*, mangle_0ctHksTXSPyaxjBOgK4TiA)(NimStringDesc* name);
N_NIMCALL(void, add_cDalAhgBlDWoYHadkaqqxw)(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** a, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* b);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, idOrSig_qNuXhnV9aHm5hP7aXP809asQ_2)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* s);
N_NIMCALL(void, hashProc_HmyzvfD4nXMkZxnFGqPQ5w)(tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* s, tyArray_qtqsWM5aXmcpMIVmvq3kAA Result);
N_NIMCALL(NI, getOrDefault_fHoC4OUEY7w3FcQM6bDNBw)(tyObject_CountTable_pdLM8FWiNHAzIuaDPD0Leg t, tyArray_qtqsWM5aXmcpMIVmvq3kAA key);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, amp__OL8oYU3myMrLfqhcdP9b3Ig)(NimStringDesc* a, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* b);
N_NIMCALL(void, inc_66kyILCtes8ek1bqwePAkw)(tyObject_CountTable_pdLM8FWiNHAzIuaDPD0Leg* t, tyArray_qtqsWM5aXmcpMIVmvq3kAA key, NI val);
N_NIMCALL(void, hashNonProc_NjJGUHVEg1oG10FIZSXO9cQ_2)(tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* s, tyArray_qtqsWM5aXmcpMIVmvq3kAA Result);
N_NIMCALL(void, doWrite_usDiNMDhSohTaN2WVO09ccA)(tyObject_NdiFile_9cEuXfAnHp9bnWFK409cMtsEw* f, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* s);
N_NIMCALL(void, genProcPrototype_5LEMfE09buQIXg39bLkcpjww_2)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* sym);
N_NIMCALL(void, useHeader_5LEMfE09buQIXg39bLkcpjww_3)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* sym);
N_NIMCALL(NimStringDesc*, getStr_P2DOsHG6Jk4Siab3L2qwUg)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a);
N_NIMCALL(void, includeHeader_PtTSTz0wtuSjGW8vGXThOQ)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* this_0, NimStringDesc* header);
N_NIMCALL(tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw*, getModule_0lPlu1uOok1rRK50z1V70A)(tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* s);
N_NIMCALL(NIM_BOOL, containsOrIncl_B0EhVMrh5BBBZOOtYjAvVg)(tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* s, NI key);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, ropecg_ail3PxtNU17Ini4A1vCFoA)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, NimStringDesc* frmt, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** args, NI argsLen_0);
N_NIMCALL(void, add_UJnSY21g59awhvSFBxJ9a9aPg)(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** a, NimStringDesc* b);
N_NIMCALL(NimStringDesc*, nimIntToStr)(NI x);
static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c);
N_NIMCALL(NimStringDesc*, copyStrLast)(NimStringDesc* s, NI start, NI last);
N_NIMCALL(NimStringDesc*, copyStrLast)(NimStringDesc* s, NI first, NI last);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, cgsym_LDQwSdTgGBvWUKfBZpHXDw)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, NimStringDesc* name);
N_NIMCALL(tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw*, getCompilerProc_shbCpG9bVTG0JrTOcXxC2hQ_2)(NimStringDesc* name);
N_NIMCALL(void, genProc_FcQi2SC56oH1DQZne5xn7Q)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* prc);
N_NIMCALL(NIM_BOOL, isActivated_zcPabWTjs2kwBM9a2zZPefQ)(tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* prc);
N_NIMCALL(void, addForwardedProc_vOtNj6VarIkkiG5Xzl9bUiQ)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* prc);
N_NIMCALL(TGenericSeq*, incrSeqV2)(TGenericSeq* seq, NI elemSize);
N_NIMCALL(void, genProcNoForward_FcQi2SC56oH1DQZne5xn7Q_2)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* prc);
N_NIMCALL(void, genProcAux_FcQi2SC56oH1DQZne5xn7Q_3)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* prc);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genProcHeader_uFtBuQho0qaeduX9cqfK4FQ)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* prc);
N_NIMCALL(void, genCLineDir_r0Cs29adVXBO59aWyfKk0YAQ)(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** r, tyObject_TLineInfo_T9c3PM9bs7WZ4LIQfEici9cZw info);
N_NIMCALL(void, genCLineDir_g9aeEZ9btQ1Z4iM1T3sMnHDA)(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** r, NimStringDesc* filename, NI line);
N_NIMCALL(void, addf_8UUGW4xtgpag0J4uEnVLuQ)(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** c, NimStringDesc* frmt, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** args, NI argsLen_0);
N_NIMCALL(NimStringDesc*, makeSingleLineCString_59a1Z83zpqnyWoTdIAQEfHQ)(NimStringDesc* s);
N_NIMCALL(NI, safeLineNm_l6BPjYNEmUa9aNfpAFDVtOQ)(tyObject_TLineInfo_T9c3PM9bs7WZ4LIQfEici9cZw info);
static N_INLINE(NI, toLinenumber_Vr9aXuUyvBQDK4X2879cHuGgsigmatch)(tyObject_TLineInfo_T9c3PM9bs7WZ4LIQfEici9cZw info);
N_NIMCALL(void, genProcParams_j2i3UsmgQjR9ckf4t2X8V9cA)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** rettype, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** params, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* check, NIM_BOOL declareEnvironment, NIM_BOOL weakDep);
N_NIMCALL(NIM_BOOL, isInvalidReturnType_FW3ctu15AiQkw2TcerUtOw)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* rettype);
N_NIMCALL(tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w, mapType_xD9bGC83PAN0OvetVlj1cZQ)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ);
N_NIMCALL(tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w, mapSetType_xD9bGC83PAN0OvetVlj1cZQ_2)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ);
N_NIMCALL(NI64, getSize_spMpEAO8ubfQavMigOxQdA)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ);
N_NIMCALL(NimStringDesc*, dollar__k53Ge4e9cDjc7y9c5uML7sPQ)(tyTuple_XOVT24GHXwqiEj5GCsEGCA x);
N_NIMCALL(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*, lastSon_E41DMKHtT9c6sAMyyvhmSIw)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* n);
N_NIMCALL(NI64, firstOrd_HUiBYxvKiECXCv8BzQNheg)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t);
N_NIMCALL(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*, skipTypes_pLCdCGDuirMe9cspwviV9aVA)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t, tySet_tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag kinds);
N_NIMCALL(NIM_BOOL, isImportedCppType_B4nHhP3INN4MtYAgHK3Lrw)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t);
N_NIMCALL(NIM_BOOL, needsComplexAssignment_3SzYNACzyWFJESqPlmwhsg)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ);
N_NIMCALL(NIM_BOOL, containsGarbageCollectedRef_3xW85al2Ic6K09avBGxLjZg)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ);
static N_INLINE(NIM_BOOL, isObjLackingTypeField_Ejb3pIY519bW1IHfWPGBwwgcgen)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ);
N_NIMCALL(NIM_BOOL, isPureObject_JTAkykfIzAK3ZYZP3LjnmA)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, percent__tH0lgOCTcFVFSKThSUgFEg)(NimStringDesc* frmt, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** args, NI argsLen_0);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getTypeDescAux_qc0KX9bYooKBzwQvPqc89aJA)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* origTyp, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* check);
N_NIMCALL(NimStringDesc*, typeToString_iUZlBdvGqNPVN17wd9aVBNw)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ, tyEnum_TPreferedDesc_tnd4qt9c4xddV8oKV5zyusw prefer);
N_NIMCALL(void, hashType_Cq9bE7w5AuevkqC3yjwXHng)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t, tySet_tyEnum_ConsiderFlag_9a9az8WnKmq9bvt8EXoSUES7g flags, tyArray_qtqsWM5aXmcpMIVmvq3kAA Result);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getTypePre_9bhJs9b9btyu2lwCQxVmPMP2Q)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ, tyArray_qtqsWM5aXmcpMIVmvq3kAA sig);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getSimpleTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, typeNameOrLiteral_1w5DwXx2c9cNRqOM1jbOb3Q)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t, NimStringDesc* literal);
N_NIMCALL(NIM_BOOL, isImportedType_B4nHhP3INN4MtYAgHK3Lrw_2)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, cacheGetType_9bwDnyQb9br3ZKlRXcmiGaAg)(tyObject_Table_CLLTIkQVzDOo9avEeZWukOg tab, tyArray_qtqsWM5aXmcpMIVmvq3kAA sig);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getOrDefault_WfeTRSU2SXosd0KyLRsNqA)(tyObject_Table_CLLTIkQVzDOo9avEeZWukOg t, tyArray_qtqsWM5aXmcpMIVmvq3kAA key);
N_NIMCALL(void, X5BX5Deq__BB9cml2YF9cRQvdtWa9aceAyw)(tyObject_Table_CLLTIkQVzDOo9avEeZWukOg* t, tyArray_qtqsWM5aXmcpMIVmvq3kAA key, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* val);
N_NIMCALL(void, addAbiCheck_sg1gK0Sh0Aid0p9cfvh580w)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* name);
N_NIMCALL(NIM_BOOL, isDefined_BNPf2mtM9a7JF7UKiCAngvg)(NimStringDesc* symbol);
N_NIMCALL(void, excl_iUpE9bYmIR0fROyJskQwN8g_2)(tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* s, NI key);
N_NIMCALL(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*, elemType_46gPaVDDGhiU69b2oKDJZuA_2)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, amp__sUFtkQXj2TQTADyk9cLFdDg)(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* a, NimStringDesc* b);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getTypeForward_9bhJs9b9btyu2lwCQxVmPMP2Q_2)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ, tyArray_qtqsWM5aXmcpMIVmvq3kAA sig);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getTypeName_9bhJs9b9btyu2lwCQxVmPMP2Q_3)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ, tyArray_qtqsWM5aXmcpMIVmvq3kAA sig);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, typeName_Lv9bCnCSSI0CeWX4nCD5x5Q)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ);
N_NIMCALL(NimStringDesc*, reprEnum)(NI e, TNimType* typ);
N_NIMCALL(NimStringDesc*, getForwardStructFormat_HGL9bKxvY1ZMx9barwV7E9cDg_2)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, structOrUnion_36Ze9a1mvluk6WH3zeb04sg)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**, X5BX5D__D32CyVQc3bxgQipD6FSZbQ)(tyObject_Table_CLLTIkQVzDOo9avEeZWukOg* t, tyArray_qtqsWM5aXmcpMIVmvq3kAA key);
N_NOINLINE(void, raiseAssert_PpfSiTIeNpMAb9a5o6SglJw_2)(NimStringDesc* msg);
N_NIMCALL(void, pushType_RxortgABdikNl9bXwGGjLDA)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getTypeDescWeak_le2gZS0jnUOJGvGwTsCGDA)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* check);
N_NIMCALL(void, internalError_MXmtqrCmYwtOPkDCFgUWKQ)(tyObject_TLineInfo_T9c3PM9bs7WZ4LIQfEici9cZw info, NimStringDesc* errMsg);
N_NIMCALL(void, appcg_TJmWJ0eU9byq14ToBfxDtXQ)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** c, NimStringDesc* frmt, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** args, NI argsLen_0);
N_NIMCALL(NI64, lengthOrd_HUiBYxvKiECXCv8BzQNheg_3)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t);
N_NIMCALL(NIM_BOOL, scanCppGenericSlot_duLZKxkzK247jEYF4jUfog)(NimStringDesc* pat, NI* cursor, NI* outIdx, NI* outStars);
N_NIMCALL(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*, resolveStarsInCppType_D9b9b2TeB3azY6wst9c4UqgZg)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ, NI idx, NI stars);
N_NIMCALL(NI, len_gG7hUAX9cA629ahMLVL3xN4w_2)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* n);
N_NIMCALL(NimStringDesc*, copyStr)(NimStringDesc* s, NI start);
N_NIMCALL(NimStringDesc*, copyStr)(NimStringDesc* s, NI first);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getRecordDesc_nKthE35Lhnag7lanFlpmXA)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* name, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* check);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getRecordFields_4jh2Ap8Gq9bkujpNS9cX22NA)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* check);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genRecordFieldsAux_M10kln9al7sTQMimduwJ4LA)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* accessExpr, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* rectype, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* check);
N_NIMCALL(NI, sonsLen_qPWPHw7WgJeEVYUdcaRIig)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, lastSon_esDJA7239bJDiq4UrX9aHCjg)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, mangleRecFieldName_wslMfVDEDMeDSka7bcmmYQ)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* field, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* rectype);
N_NIMCALL(NimStringDesc*, mangleField_tbcnk2tpLj7TAaKsu0C9btw)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TIdent_4umxGerWTHGPwUms7Yqu3g* name);
N_NIMCALL(NIM_BOOL, isKeyword_G89cvzKaz1EjMqhwFIBLVIg)(tyObject_TIdent_4umxGerWTHGPwUms7Yqu3g* w);
N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getTupleDesc_nKthE35Lhnag7lanFlpmXA_2)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* name, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* check);
N_NIMCALL(NI, sonsLen_gG7hUAX9cA629ahMLVL3xN4w)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* n);
static N_INLINE(NIM_BOOL, isCompileTimeOnly_UBQknCC9aYWKMNMK4dmeTlQcgen)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, mangleParamName_qNuXhnV9aHm5hP7aXP809asQ_3)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* s);
N_NIMCALL(NIM_BOOL, contains_QUwFXAtgP2RpEd1T8OivlA)(tyObject_HashSet_pOhUohTPuRItuGmDY0Ddzg s, NimStringDesc* key);
N_NIMCALL(tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw, paramStorageLoc_E9buW7JmynwsijUWcDOpBCA)(tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* param);
N_NIMCALL(NIM_BOOL, ccgIntroducedPtr_Cz260TwdI2wbchTgee9aUAA)(tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* s);
N_NIMCALL(tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w, mapReturnType_xD9bGC83PAN0OvetVlj1cZQ_3)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ);
static N_INLINE(NI, len_CdME9baJhvveuPEDZE9bXoxAlambdalifting)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, easyResultAsgn_1TL9cg0ds6vTtfhbmuTNGBA)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, getBody_eMf5HLowckpW9cDxAV9bNIZw)(tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* s);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, localVarDecl_y9bkicOZZUa8Z1PO76aWZ1A)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* s);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, mangleLocalName_y9bkicOZZUa8Z1PO76aWZ1A_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* s);
static N_INLINE(void, shallow_67KGEOtDSAz3i9cPDqgyaCwmsgs)(NimStringDesc** s);
N_NIMCALL(NI, getOrDefault_ExyNSxYFFaAiKxJjTjvq2w)(tyObject_CountTable_WWp0VSBtrctjwzspLeGpeg t, NimStringDesc* key);
N_NIMCALL(void, inc_hCwWEfjYY2mbkXPFg2lZFQ)(tyObject_CountTable_WWp0VSBtrctjwzspLeGpeg* t, NimStringDesc* key, NI val);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ);
N_NIMCALL(void, initLocExprSingleUse_9biTBaXPz9cezuLjjWw9cSEGw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* result);
N_NIMCALL(void, initLoc_kfK3bi0HoV6YeIhyJNMmZw)(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* result, tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg k, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ, tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw s);
N_NIMCALL(void, linefmt_Z6xIOvD09aMfYvHnc82A86A)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg s, NimStringDesc* frmt, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** args, NI argsLen_0);
static N_INLINE(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**, s_OUiru83H7n4zC9cnXN2KbrQcgen)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg s);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, indentLine_Fi9b9bJCT10U0UUyX38f9b9adA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* r);
N_NIMCALL(void, prepend_cDalAhgBlDWoYHadkaqqxw_2)(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** a, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* b);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw)(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a);
N_NIMCALL(void, assignLocalVar_25ePRX3l19c3c1n9bFXQUURw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* s);
N_NIMCALL(void, line_ALdLmqKb9cyvVSETUUyUh9aQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg s, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* r);
N_NIMCALL(void, localDebugInfo_25ePRX3l19c3c1n9bFXQUURw_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* s);
N_NIMCALL(void, lineF_gZoxMzCWCNZ6iEh5xl8k0g)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg s, NimStringDesc* frmt, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** args, NI argsLen_0);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, makeCString_c9cmJUs9bNfunHyoffjBZxyg)(NimStringDesc* s);
N_NIMCALL(NimStringDesc*, nsuNormalize)(NimStringDesc* s);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genTypeInfo_x7sD9aHIDrXyWVDTVp9bclvA)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t);
N_NIMCALL(void, genTypeInfoAuxBase_7vipSqfL9aMtRf74ZXxa9aPw)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* origType, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* name, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* base);
N_NIMCALL(NIM_BOOL, canFormAcycle_3xW85al2Ic6K09avBGxLjZg_2)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ);
N_NIMCALL(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*, fakeClosureType_WQojL9az5HxGgo9bOA1wUcxQ)(tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* owner);
N_NIMCALL(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*, newType_FL9cZh2bRuJE31MWfcWQ4Yg)(tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag kind, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* owner);
N_NIMCALL(void, rawAddSon_52UH8yKinsYmFX9bFij9c2Hw)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* father, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* son);
N_NIMCALL(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*, createObj_elMlmKozh9b5lxeb37m9bKVg)(tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* owner, tyObject_TLineInfo_T9c3PM9bs7WZ4LIQfEici9cZw info, NIM_BOOL final);
N_NIMCALL(void, genTupleInfo_S15dyZBkWEXuVdK01uuCSQ)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* origType, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* name);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getNimNode_54CrPIOFKsrtQd59cl9bHH3A_2)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m);
N_NIMCALL(void, genTypeInfoAux_S15dyZBkWEXuVdK01uuCSQ_2)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* origType, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* name);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genTraverseProc_EqgOPYBI4Fsll3kWDVYhBg)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* origTyp, tyArray_qtqsWM5aXmcpMIVmvq3kAA sig, tyEnum_TTypeInfoReason_JUIK4Zo6UqHyAc9c1cbuWvg reason);
N_NIMCALL(void, genTraverseProcSeq_n9bXeejbbKQAlbhP9bvaDLvg)(tyObject_TTraversalClosure_xQv4a9atAYFpL11GCS9cY9bCg* c, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* accessor, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ);
N_NIMCALL(void, getTemp_AAMs9asc5S78MBo8z9bTltgw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* result, NIM_BOOL needsInit);
N_NIMCALL(void, constructLoc_UnMShnfXExBqkSCjaZsFdw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* loc, NIM_BOOL isTemp);
static N_INLINE(NIM_BOOL, isComplexValueType_9aPB8K06mWuitdRENXgLyiQcgen)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t);
N_NIMCALL(void, useStringh_OShE9cXECylewqZ7ZpW2l0w)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, addrLoc_YU9cO6gMkMct9bbzvzDM0Dzw_2)(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a);
N_NIMCALL(void, genObjectInit_rMJx6ytAq9c39bDIl369aHfYQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg section, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a, NIM_BOOL takeAddr);
N_NIMCALL(tyEnum_TTypeFieldResult_aBXTX9cIKT9b0yNlXSu9aPT9cw, analyseObjectWithTypeField_cNBJiz6k2DZxlFvlKX7PMA)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t);
N_NIMCALL(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*, getSysType_dewjtBqyEbcVGQRaQFtDAw)(tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag kind);
N_NIMCALL(NI, len_Z8dKuB9cr9b9ciPiCD63t6h5w)(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* a);
N_NIMCALL(void, genTraverseProc_n9bXeejbbKQAlbhP9bvaDLvg_2)(tyObject_TTraversalClosure_xQv4a9atAYFpL11GCS9cY9bCg* c, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* accessor, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ);
static N_INLINE(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, parentObj_ma47XFUT0jSXFKaLHrvIbQcgen)(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* accessor, tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m);
N_NIMCALL(void, genTraverseProc_RUbvuETyAUJdPxTEHkGW5g)(tyObject_TTraversalClosure_xQv4a9atAYFpL11GCS9cY9bCg* c, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* accessor, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ);
N_NIMCALL(void, fillObjectFields_HYq5QAQNqLSWZyliakxHKw)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ);
N_NIMCALL(void, genCaseRange_KUz7NJSCXeUWRl4foF5zfg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* branch);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genLiteral_9ay3JbWaSQA4xkrI8svQaZQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genLiteral_9cX45zW07vmEVg5MVCgp3Qg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* ty);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, intLiteral_cVf7QPXGcGBUB7P9cfyCtRw)(NI64 i);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, int64Literal_cVf7QPXGcGBUB7P9cfyCtRw_2)(NI64 i);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, uint64Literal_I0vtsD8Q0RCbJ65Xzh0uqg)(NU64 i);
N_NIMCALL(NimStringDesc*, dollar__rzAI8EMyNBAQwGODeohhAA)(NU64 x);
N_NIMCALL(NI, nodeTableTestOrSet_tWmKJP7glBWLCISQFGGk2Q)(tyObject_TNodeTable_wN7B39cKxLpMkvKNm9bduZ0A* t, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* key, NI val);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getStrLit_ngAR8PLIIal5nOPXflxuFg)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, NimStringDesc* s);
N_NIMCALL(NimStringDesc*, toStrMaxPrecision_bUxkE4LG1hqvhXMwxWRgAw)(NF f, NimStringDesc* literalPostfix);
N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, copyNode_lz8T1F9c0YwEOpUnrAUYgjg)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* src);
N_NIMCALL(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*, getUniqueType_HEGWNfEn5UAm9aUHUXxHEwQ)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* key);
N_NIMCALL(void, lineCg_Z6xIOvD09aMfYvHnc82A86A_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg s, NimStringDesc* frmt, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** args, NI argsLen_0);
N_NIMCALL(void, genArrayInfo_pCzwaQST34Sl4wH9auMjS9ag)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* name);
N_NIMCALL(void, genSetInfo_pCzwaQST34Sl4wH9auMjS9ag_2)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* name);
N_NIMCALL(void, genEnumInfo_pCzwaQST34Sl4wH9auMjS9ag_3)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* name);
N_NIMCALL(void, genObjectInfo_S15dyZBkWEXuVdK01uuCSQ_3)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* origType, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* name);
N_NIMCALL(void, genObjectFields_KKmA1Gt2gXoRikhZS1PL9cw)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* origType, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* expr);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, discriminatorTableName_NlU3VxpG9aX285JoLNfLBow)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* objtype, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* d);
N_NIMCALL(tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw*, lookupInRecord_s51A17ot5EKQXx9bfMBO03w)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TIdent_4umxGerWTHGPwUms7Yqu3g* field);
N_NIMCALL(NI64, getOrdValue_MzTDl1zEXJLD4sql7PhCwA)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_NIMCALL(void, genDeepCopyProc_d3OdAx76NwbW9aLXaKKHyVQ)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* s, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result);
N_NIMCALL(void, initLocalVar_RP2SxXcAXrKn9a9ayAhwfstg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* v, NIM_BOOL immediateAsgn);
N_NIMCALL(void, fillResult_bncGBQvlERnuLEiV09bntiA)(tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* param);
N_NIMCALL(void, assignParam_25ePRX3l19c3c1n9bFXQUURw_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* s);
N_NIMCALL(void, scopeMangledParam_jiMv4nrRxy7YOTBQV9boU9cQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* param);
N_NIMCALL(void, closureSetup_wP18u4g6GoOXm0ogTo5oPA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* prc);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, initGCFrame_VMw2SYHH12eNnC21DncHWQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, initFrame_MEEtj5XINrrJ3Az5igcM7g)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* procname, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* filename);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, quotedFilename_OIkZkhTYTt59cr9cjk9bklnUA_2)(tyObject_TLineInfo_T9c3PM9bs7WZ4LIQfEici9cZw i);
N_NIMCALL(void, appcg_Z6xIOvD09aMfYvHnc82A86A_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg s, NimStringDesc* frmt, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** args, NI argsLen_0);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, deinitGCFrame_VMw2SYHH12eNnC21DncHWQ_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, deinitFrame_VMw2SYHH12eNnC21DncHWQ_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p);
N_NIMCALL(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA*, findPendingModule_zx9aqFxulQ7sumEBL5kRUdg)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* s);
N_NIMCALL(void, symInDynamicLib_5LEMfE09buQIXg39bLkcpjww_4)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* sym);
N_NIMCALL(NIM_BOOL, isGetProcAddr_DWGi9cQP3F3V81PvoGyWZ9bw)(tyObject_TLib_NBMxlJ6g3utqUlplqTTHkA* lib);
N_NIMCALL(void, loadDynamicLib_m4Ysv2il9cQk9aitaifyqqQg)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TLib_NBMxlJ6g3utqUlplqTTHkA* lib);
N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
N_NIMCALL(void, libCandidates_z61W6kN39aBKDgNtbcWn9cSg)(NimStringDesc* s, tySequence_sM4lkSb7zS6F7OVMvW9cffQ** dest);
N_NIMCALL(void, rawMessage_tBJ8mvo7MzzirsGkrHVc9cw)(tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw msg, NimStringDesc* arg);
N_NIMCALL(void, initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* result);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, mangleDynLibProc_Kt7Li7NCe9c9bR9bQfvgl6xxQ)(tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* sym);
N_NIMCALL(NimStringDesc*, dollar__PstQrDfj9a7hGXM74AN2wzg)(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* r);
N_NIMCALL(void, symInDynamicLibPartial_5LEMfE09buQIXg39bLkcpjww_5)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* sym);
N_NIMCALL(void, genVarPrototype_5LEMfE09buQIXg39bLkcpjww_6)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* sym);
N_NIMCALL(void, genVarPrototypeAux_5LEMfE09buQIXg39bLkcpjww_7)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* sym);
N_NIMCALL(void, declareThreadVar_xgBfR60K7h9cY7wbsHV20Dg)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* s, NIM_BOOL isExtern);
static N_INLINE(NIM_BOOL, emulatedThreadVars_qJe2xBmGcgIoAQUJsGS9aGwcgen)(void);
static N_INLINE(NIM_BOOL, requiresExternC_7Q9b8lCRSc6Djnv4Pr9crhaQcgen)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* sym);
N_NIMCALL(void, putLocIntoDest_SkhzpH2DDHJ7pbmCpsHIPg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* s);
N_NIMCALL(void, genAssignment_BtucsTdHw7orsXIL75hNVg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* dest, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* src, tySet_tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw flags);
N_NIMCALL(void, genRefAssign_BtucsTdHw7orsXIL75hNVg_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* dest, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* src, tySet_tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw flags);
static N_INLINE(NIM_BOOL, usesNativeGC_9bOOl1CRXwH84L9baCwIFbjgcgen)(void);
N_NIMCALL(void, optAsgnLoc_sHRvUlwaR9bzJRKdjeLRZGA)(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* field, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* Result);
N_NIMCALL(void, genOptAsgnTuple_BtucsTdHw7orsXIL75hNVg_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* dest, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* src, tySet_tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw flags);
N_NIMCALL(void, genGenericAsgn_BtucsTdHw7orsXIL75hNVg_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* dest, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* src, tySet_tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw flags);
N_NIMCALL(NI, asgnComplexity_NnHoLMfVBQytirwVsNNNOQ)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NI, safeLen_CdME9baJhvveuPEDZE9bXoxArenderer)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_NIMCALL(void, genOptAsgnObject_J9bD5ZMjzzbq8DSLSQpmmSw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* dest, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* src, tySet_tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw flags, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ);
N_NIMCALL(void, genericAssign)(void* dest, void* src, TNimType* mt);
N_NIMCALL(void, localError_GarD0CQJ5aQhoHekHYinVQ)(tyObject_TLineInfo_T9c3PM9bs7WZ4LIQfEici9cZw info, NimStringDesc* arg);
N_NIMCALL(NIM_BOOL, isSimpleConst_XgQBmxm2ONDacXwgZ5mQzA)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ);
N_NIMCALL(void, putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* r, tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw s);
N_NIMCALL(void, genComplexConst_8URCVeUDTzFDNPBn6P6nMw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* sym, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(void, requestConstImpl_FPHy1CFTscPwzvyW4X7txQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* sym);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genConstExpr_9ay3JbWaSQA4xkrI8svQaZQ_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_NIMCALL(void, toBitSet_Bgj7mr9bCmLIhOzddHDtD0A)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* s, tySequence_pxbIse2JUQkJU0n9blV9bY5g** b);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genRawSetData_81w5oBz4Cdshqc3jTY2ACQ)(tySequence_pxbIse2JUQkJU0n9blV9bY5g* cs, NI size);
N_NIMCALL(NimStringDesc*, nsuToHex)(NI64 x, NI len);
N_NIMCALL(NI64, bitSetToWord_XVJMM63zz1yugv5v2VDtiA)(tySequence_pxbIse2JUQkJU0n9blV9bY5g* s, NI size);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genConstSeq_RaPZsQOiobQwAsKmaq9blng)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t);
N_NIMCALL(void, appcg_KYarie00rsII4ENCBv9byYQ)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg s, NimStringDesc* frmt, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** args, NI argsLen_0);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genConstSimpleList_9ay3JbWaSQA4xkrI8svQaZQ_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genNamedConstExpr_9ay3JbWaSQA4xkrI8svQaZQ_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genConstObjConstr_9ay3JbWaSQA4xkrI8svQaZQ_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_NIMCALL(void, getNullValueAuxT_CMQPuc6Hj12xBWUf4uBJAw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* orig, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* obj, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* cons, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** result, NI* count);
N_NIMCALL(void, getNullValueAux_89bNc1Fykmh4gqaKPcvp5ZQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* obj, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* cons, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** result, NI* count);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getDefaultValue_ct4fF39bB2a9a9bEdM9cniIm0w)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ, tyObject_TLineInfo_T9c3PM9bs7WZ4LIQfEici9cZw info);
N_NIMCALL(void, globalError_GarD0CQJ5aQhoHekHYinVQ_2)(tyObject_TLineInfo_T9c3PM9bs7WZ4LIQfEici9cZw info, NimStringDesc* arg);
N_NIMCALL(NimStringDesc*, dollar__qX5C9b0n9bOP7jk69amC8dA7A_2)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_NIMCALL(void, accessThreadLocalVar_25ePRX3l19c3c1n9bFXQUURw_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* s);
static N_INLINE(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**, procSec_OUiru83H7n4zC9cnXN2KbrQ_2cgen)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg s);
static N_INLINE(NIM_BOOL, isEmptyType_9bToMoy0nns9a3tJPtRpLUVAvmgen)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t);
N_NIMCALL(void, putDataIntoDest_Dxuag2jBVQiuegEcf4GaWQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* r);
N_NIMCALL(void, genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, sourceLine_OIkZkhTYTt59cr9cjk9bklnUA)(tyObject_TLineInfo_T9c3PM9bs7WZ4LIQfEici9cZw i);
N_NIMCALL(NIM_BOOL, freshLineInfo_lx7LB5IHEE5TM9b29c9aYFIDw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLineInfo_T9c3PM9bs7WZ4LIQfEici9cZw info);
N_NIMCALL(void, genMagicExpr_TU9cJnldbmGa9bZDxaR6I4tg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg op);
N_NIMCALL(void, genAndOr_yX5yxw6c9agMF4ZvIHKAZvg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg m);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getLabel_VMw2SYHH12eNnC21DncHWQ_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p);
N_NIMCALL(void, fixLabel_ut0GUS8pCCGZkg3exqiq2w)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* labl);
N_NIMCALL(void, unaryArith_TU9cJnldbmGa9bZDxaR6I4tg_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg op);
N_NIMCALL(void, unaryArithOverflow_yX5yxw6c9agMF4ZvIHKAZvg_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg m);
N_NIMCALL(void, binaryFloatArith_yX5yxw6c9agMF4ZvIHKAZvg_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg m);
N_NIMCALL(void, binaryArith_TU9cJnldbmGa9bZDxaR6I4tg_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg op);
N_NIMCALL(void, genEqProc_BKdMcfvryaJLplX0oFPcAQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(void, binaryArithOverflow_yX5yxw6c9agMF4ZvIHKAZvg_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg m);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, binaryArithOverflowRaw_qFXK5QXHFWRf9b28VNBzWlQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* b, NimStringDesc* frmt);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, rdCharLoc_YU9cO6gMkMct9bbzvzDM0Dzw_3)(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a);
N_NIMCALL(NI64, lastOrd_HUiBYxvKiECXCv8BzQNheg_2)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t);
N_NIMCALL(void, genRepr_BKdMcfvryaJLplX0oFPcAQ_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, lenField_VMw2SYHH12eNnC21DncHWQ_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p);
N_NIMCALL(void, gcUsage_Pb60oErhArqGlPPn4s2Zow)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_NIMCALL(void, message_VpilfPWbplGz6ny7O9cfr2g_2)(tyObject_TLineInfo_T9c3PM9bs7WZ4LIQfEici9cZw info, tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw msg, NimStringDesc* arg);
N_NIMCALL(NimStringDesc*, renderTree_ppjdh9aQ5L0SGPF8yz1gZ9cA)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TRenderFlag_wrPgUo1ExBlHvFnXN2nSHw renderFlags);
N_NIMCALL(void, genGetTypeInfo_BKdMcfvryaJLplX0oFPcAQ_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(void, genSwap_BKdMcfvryaJLplX0oFPcAQ_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(void, unaryExpr_U2agx9aO3WToOTIqL9baXQog)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* frmt);
N_NIMCALL(void, binaryStmt_U2agx9aO3WToOTIqL9baXQog_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* frmt);
N_NIMCALL(void, genStrConcat_BKdMcfvryaJLplX0oFPcAQ_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(void, genStrAppend_BKdMcfvryaJLplX0oFPcAQ_6)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(void, genSeqElemAppend_BKdMcfvryaJLplX0oFPcAQ_7)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(void, getIntTemp_SrOtkNNSJNR1CbG2n3nFcg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* result);
N_NIMCALL(void, genStrEquals_BKdMcfvryaJLplX0oFPcAQ_8)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(void, binaryExpr_U2agx9aO3WToOTIqL9baXQog_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* frmt);
N_NIMCALL(void, genIsNil_BKdMcfvryaJLplX0oFPcAQ_9)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(void, genDollar_pXcuuf9c1RIGGsEW9a8cUntw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* frmt);
N_NIMCALL(void, genOf_8mAL9ckajemzgfLPfeZVNoQ_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(void, genOf_UwTcYLikCGe3VLtRo24phQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(void, globalError_VpilfPWbplGz6ny7O9cfr2g_3)(tyObject_TLineInfo_T9c3PM9bs7WZ4LIQfEici9cZw info, tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw msg, NimStringDesc* arg);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genOfHelper_Wp9btA6OtAST1pE7BDyhAuw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* dest, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* a);
N_NIMCALL(void, genNew_X9cSqNhqEboci9cdmwBMNcBw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e);
N_NIMCALL(void, rawGenNew_cgJ9aX1ynF9c6YJgDm6IB1wg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* sizeExpr);
N_NIMCALL(void, genNewFinalize_X9cSqNhqEboci9cdmwBMNcBw_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e);
N_NIMCALL(void, genNewSeq_X9cSqNhqEboci9cdmwBMNcBw_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e);
N_NIMCALL(void, genNewSeqAux_9cWj0Z4zRqFZJHYjvDQIU5A)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* dest, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* length);
N_NIMCALL(void, genNewSeqOfCap_BKdMcfvryaJLplX0oFPcAQ_10)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(void, genSomeCast_BKdMcfvryaJLplX0oFPcAQ_11)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getClosureType_C3G4lz8ql3PHX03kYPmo5w)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t, tyEnum_TClosureTypeKind_cLHRMz1vnpSK0uePy2qbWw kind);
N_NIMCALL(void, genOrd_BKdMcfvryaJLplX0oFPcAQ_12)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(void, unaryExprChar_U2agx9aO3WToOTIqL9baXQog_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* frmt);
N_NIMCALL(void, genArrayLen_TU9cJnldbmGa9bZDxaR6I4tg_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg op);
N_NIMCALL(void, unaryStmt_U2agx9aO3WToOTIqL9baXQog_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* frmt);
N_NIMCALL(void, genSetLengthStr_BKdMcfvryaJLplX0oFPcAQ_13)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(void, genSetLengthSeq_BKdMcfvryaJLplX0oFPcAQ_14)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(void, genSetOp_TU9cJnldbmGa9bZDxaR6I4tg_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg op);
N_NIMCALL(void, binaryStmtInExcl_U2agx9aO3WToOTIqL9baXQog_6)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* frmt);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, rdSetElemLoc_79a4X3Gjt6AnePag4WNxykQ)(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* setType);
N_NIMCALL(void, binaryExprChar_U2agx9aO3WToOTIqL9baXQog_7)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* frmt);
N_NIMCALL(void, genInOp_BKdMcfvryaJLplX0oFPcAQ_15)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(NIM_BOOL, fewCmps_HZWM1lZJVHBBy04jworIHQ)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* s);
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_NIMCALL(void, binaryExprIn_Q04NbRdson6NZhd9b3hsyXQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* b, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* frmt);
N_NIMCALL(void, genCall_BKdMcfvryaJLplX0oFPcAQ_16)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(void, genClosureCall_HKkL9adNEIcNHeJ0iZ6uitg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genArg_YfbN72A6Yf11a02lxdcEtA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* param, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* call);
static N_INLINE(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genArgStringToCString_cKaYaP9cyw45sNPok0SqlZgcgen)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, openArrayLoc_9ay3JbWaSQA4xkrI8svQaZQ_6)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, skipConv_6rsSLwtlU9c53a6w69be5JlQ)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_NIMCALL(tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg, getMagic_gSv3iFkSzJc9bXZaNBHR9bQA)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* op);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genArgNoParam_9ay3JbWaSQA4xkrI8svQaZQ_7)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getRawProcType_LPWfuPxOgggo9aF8gAOJjVg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t);
N_NIMCALL(NIM_BOOL, leftAppearsOnRightSide_vU9b0aggOQwExqsArZPu29aw)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri);
N_NIMCALL(tyEnum_TAnalysisResult_p9a9bcrXoRmLT4eUuwrDq9b4w, isPartOf_1otDDZAmvFsmbqPyFytXFg)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b);
static N_INLINE(NIM_BOOL, hasNoInit_LTm4EPvF5i2yXgRHKmV9apAcgen)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* call);
N_NIMCALL(void, resetLoc_B9bNAYVEwjQtkUkvoOVhV2Q)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* loc);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, addComma_ZpRZ6Yvwr4H1rFav9b7BpjA)(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* r);
N_NIMCALL(void, genInfixCall_HKkL9adNEIcNHeJ0iZ6uitg_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(NIM_BOOL, contains_m1TSS3QwQPclQATuiRuVZg)(NimStringDesc* s, tySet_tyChar_nmiMWKVIe46vacnhAFrQvw chars);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genPatternCall_DcUBV6Nsuhm43a9asUf1wAg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, NimStringDesc* pat, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genOtherArg_s9cLboISJDCKnrSydrmec5g)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, NI i, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genThisArg_s9cLboISJDCKnrSydrmec5g_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, NI i, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ);
N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, skipAddrDeref_vQuVJ3xsG9c85EJKF2xQ7mA)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* node);
N_NIMCALL(void, fixupCall_4ksWLEEeUaq8dr0M48R85w)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* callee, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* params);
N_NIMCALL(void, genNamedParamCall_9azKdI6vAayTOFEcJtCTo1g)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(NIM_BOOL, contains_6e5MGL10HDAJ205lBYpWxw)(NimStringDesc* s, NIM_CHAR c);
N_NIMCALL(void, genPrefixCall_HKkL9adNEIcNHeJ0iZ6uitg_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
static N_INLINE(void, postStmtActions_bNG6Lz1b9a5TVMLjP9cTlLjwcgen)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p);
N_NIMCALL(void, genReset_UtJx89cn0a8CNSWWmaj6raA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_NIMCALL(void, genEcho_UtJx89cn0a8CNSWWmaj6raA_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_NIMCALL(NimStringDesc*, nsuRepeatStr)(NimStringDesc* s, NI n);
N_NIMCALL(void, genArrToSeq_re1pwmyeR32ikwnOC3vvzQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(void, genSeqConstr_re1pwmyeR32ikwnOC3vvzQ_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(void, localError_VpilfPWbplGz6ny7O9cfr2g)(tyObject_TLineInfo_T9c3PM9bs7WZ4LIQfEici9cZw info, tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw msg, NimStringDesc* arg);
N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, wrapProcForSpawn_6fN2V7nvsTzAH5EnR9bU9aUw)(tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* owner, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* spawnExpr, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* retType, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* barrier, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* dest);
N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, liftParallel_1lNyAXGQxirJBPHWmFXY8w)(tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* owner, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_NIMCALL(void, genDeepCopy_jdslQ8TsNpkTt8SvBLJjEA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* dest, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* src);
N_NIMCALL(NIM_BOOL, isDeepConstExpr_FTbvAnf1y9b9c3Krp9bsHDTiw_2)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genSetNode_9ay3JbWaSQA4xkrI8svQaZQ_8)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_NIMCALL(void, genSetConstr_BKdMcfvryaJLplX0oFPcAQ_17)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(NimStringDesc*, nimInt64ToStr)(NI64 x);
N_NIMCALL(void, exprComplexConst_8mAL9ckajemzgfLPfeZVNoQ_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(void, genArrayConstr_8mAL9ckajemzgfLPfeZVNoQ_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(NIM_BOOL, handleConstExpr_3euU5r9bcG0Rnz4QchCOUyw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(void, genTupleConstr_8mAL9ckajemzgfLPfeZVNoQ_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(void, genObjConstr_BKdMcfvryaJLplX0oFPcAQ_18)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw*, lookupFieldAgain_O69a7RpR6XkeAtdkgLHXG5g)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* ty, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* field, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** r, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw** resTyp);
N_NIMCALL(void, genFieldCheck_SmRID4mC1OAbSYZXCL0Kuw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* obj, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* field, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* origTy);
N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, newStrNode_8GaTnuPqpzGLNcerzDOURQ)(tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw kind, NimStringDesc* strVal);
N_NIMCALL(void, genCast_BKdMcfvryaJLplX0oFPcAQ_19)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(void, genConv_BKdMcfvryaJLplX0oFPcAQ_20)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(NIM_BOOL, compareTypes_Wiat9a9c5vPvjDreVawQ2qgA)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* x, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* y, tyEnum_TDistinctCompare_9bNKHGs63atuMFXnAleTveg cmp, tySet_tyEnum_TTypeCmpFlag_72pgRXSg7774cr9aCWVPORw flags);
N_NIMCALL(void, genAddr_BKdMcfvryaJLplX0oFPcAQ_21)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
static N_INLINE(NIM_BOOL, isCppRef_7oHZ8A67Dcbofp9aD7C8LsQcgen)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ);
N_NIMCALL(void, genBracketExpr_8mAL9ckajemzgfLPfeZVNoQ_6)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(void, genArrayElem_sDEnNgwcH9byIHKi1s0b7LQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* y, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(NIM_BOOL, isConstExpr_FTbvAnf1y9b9c3Krp9bsHDTiw_4)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_NIMCALL(void, genOpenArrayElem_sDEnNgwcH9byIHKi1s0b7LQ_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* y, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(void, genSeqElem_sDEnNgwcH9byIHKi1s0b7LQ_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* y, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(void, genCStringElem_sDEnNgwcH9byIHKi1s0b7LQ_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* y, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(void, genTupleElem_BKdMcfvryaJLplX0oFPcAQ_22)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(void, genDeref_BLGSHeDM9cawDE7Hp9bscFgg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NIM_BOOL enforceDeref);
N_NIMCALL(void, genRecordField_BKdMcfvryaJLplX0oFPcAQ_23)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(void, genRecordFieldAux_O8nIPJbfEFU0FjR77WG5eA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a);
N_NIMCALL(void, genCheckedRecordField_BKdMcfvryaJLplX0oFPcAQ_24)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(void, genBlock_8mAL9ckajemzgfLPfeZVNoQ_7)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(NI, startBlock_0yHaXWrgTt8ykj8X9aq9b9cxQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, NimStringDesc* start, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** args, NI argsLen_0);
N_NIMCALL(void, endBlock_0dpuY9coTlraj8JXIe2BzVw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p);
N_NIMCALL(void, endBlock_cBt0RGG9a42nMd9aj15boUMA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* blockEnd);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, blockBody_sH1An9axWfshYrOXIDNqNMA)(tyObject_TBlock_GFhahvekTq3dDOkWyhchMA* b);
N_NIMCALL(void, genStmtListExpr_8mAL9ckajemzgfLPfeZVNoQ_8)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(void, genIf_8mAL9ckajemzgfLPfeZVNoQ_9)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(void, downConv_8mAL9ckajemzgfLPfeZVNoQ_10)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(NI, inheritanceDiff_kaOr3lZpnYFOzmAx9cN5LiA_2)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* a, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* b);
N_NIMCALL(void, upConv_8mAL9ckajemzgfLPfeZVNoQ_11)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(void, genRangeChck_s6WVujc8IISl9b7Y39bTXvlw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* magic);
N_NIMCALL(void, convStrToCStr_8mAL9ckajemzgfLPfeZVNoQ_12)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(void, convCStrToStr_8mAL9ckajemzgfLPfeZVNoQ_13)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(void, genClosure_8mAL9ckajemzgfLPfeZVNoQ_14)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
static N_INLINE(NIM_BOOL, isConstClosure_cw9b4FeB3czQDBAn8OhomGAcgen)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NIM_BOOL, isRoutine_inD0Nq051matsjc6UjX88gparampatterns)(tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* s);
N_NIMCALL(void, genWhileStmt_QrTB5DOwbDX9bKAW7PNbuJA_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t);
static N_INLINE(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, assignLabel_0yetoRpNywf6Y7ei9aZS9c0Acgen)(tyObject_TBlock_GFhahvekTq3dDOkWyhchMA* b);
N_NIMCALL(NIM_BOOL, stmtsContainPragma_9aY8Dd0aB4xmQTh5kptvVOg)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw w);
N_NIMCALL(void, genComputedGoto_UtJx89cn0a8CNSWWmaj6raA_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_NIMCALL(void, genVarStmt_UtJx89cn0a8CNSWWmaj6raA_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_NIMCALL(void, genSingleVar_9c6v9b6B8RZkui111YH4cbEw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a);
N_NIMCALL(void, genGotoVar_4xOIY9bgIMy9bAzg2ZyIieBw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* value);
N_NIMCALL(void, assignGlobalVar_25ePRX3l19c3c1n9bFXQUURw_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* s);
N_NIMCALL(void, varInDynamicLib_5LEMfE09buQIXg39bLkcpjww_8)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* sym);
N_NIMCALL(void, registerGcRoot_LU3ZiAzKjVx9bULMPKRAZmw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* v);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genTraverseProcForGlobal_qNuXhnV9aHm5hP7aXP809asQ_4)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* s);
static N_INLINE(NIM_BOOL, isAssignedImmediately_4MUa2M7mDMhaGJLAFrkWDwcgen)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_NIMCALL(NIM_BOOL, containsHiddenPointer_3xW85al2Ic6K09avBGxLjZg_3)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ);
static N_INLINE(void, loadInto_vkEx8Dn9aiGOI04WjvQIHIwcgen)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a);
N_NIMCALL(void, genAsgnCall_HKkL9adNEIcNHeJ0iZ6uitg_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(void, genClosureVar_9c6v9b6B8RZkui111YH4cbEw_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a);
N_NIMCALL(void, genVarTuple_UtJx89cn0a8CNSWWmaj6raA_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, lowerTupleUnpacking_ZXHtMZ0uz9cR0ZzQM8Y9cqUQ_2)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* owner);
N_NIMCALL(void, genConstStmt_QrTB5DOwbDX9bKAW7PNbuJA_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t);
N_NIMCALL(NIM_BOOL, containsCompileTimeOnly_XI7vH8jtAcp7rWqTmfZOSg_8)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t);
static N_INLINE(NIM_BOOL, emitLazily_GBr9bkzyAXDTI9a9aPiuRoP7gcgen)(tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* s);
N_NIMCALL(void, genCase_re1pwmyeR32ikwnOC3vvzQ_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(void, genStringCase_re1pwmyeR32ikwnOC3vvzQ_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(NI, nextPowerOfTwo_gcitR3TEXHJ3GR9bmwIvtRA)(NI x);
N_NIMCALL(void, genCaseStringBranch_Raq2iuoaLbUJRPT0h0iGbQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* e, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* labl, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** branches, NI branchesLen_0);
N_NIMCALL(NI64, hashString_Pyx5T9crDr8ERTxY9apZjP2g)(NimStringDesc* s);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genCaseSecondPass_9c9aZH8hSKylL24JR2jQjKTg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NI labId, NI until);
N_NIMCALL(void, exprBlock_8mAL9ckajemzgfLPfeZVNoQ_15)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(void, genCaseGeneric_A9aEg9csf4anYemsYRjz0L9cw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* rangeFormat, NimStringDesc* eqFormat);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genIfForCaseUntil_dC5vml9aDV4TC7ll8sb2uxA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* rangeFormat, NimStringDesc* eqFormat, NI until, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a);
N_NIMCALL(void, genCaseGenericBranch_gie4EqMllVzia29bjrnjQiA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* e, NimStringDesc* rangeFormat, NimStringDesc* eqFormat, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* labl);
N_NIMCALL(void, genGotoForCase_ACGHJp9bbmHaRpjqO8LXrqA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* caseStmt);
N_NIMCALL(void, genOrdinalCase_8mAL9ckajemzgfLPfeZVNoQ_16)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(NI, ifSwitchSplitPoint_iWvQebbOR9a0RpCdZZ7GsAA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_NIMCALL(NIM_BOOL, branchHasTooBigRange_ATpc9czZVSSl5DwvggVYrTA)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b);
N_NIMCALL(void, genReturnStmt_QrTB5DOwbDX9bKAW7PNbuJA_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t);
N_NIMCALL(void, blockLeaveActions_e09bgD1fQnMSV07ItnToC3Q)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, NI howManyTrys, NI howManyExcepts);
static N_INLINE(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, pop_d29cpXTitwhGntYusVkzaCgtrees)(tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ** s);
N_NIMCALL(void, genBreakStmt_QrTB5DOwbDX9bKAW7PNbuJA_6)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t);
N_NIMCALL(void, genAsgn_9ap9b3IFVLSL9b9akVbfMyRxlA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, NIM_BOOL fastAsgn);
N_NIMCALL(NIM_BOOL, fieldDiscriminantCheckNeeded_Eyz2KtzeOLvgSAeQHJsjPQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* asgn);
N_NIMCALL(void, asgnFieldDiscriminant_X9cSqNhqEboci9cdmwBMNcBw_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e);
N_NIMCALL(void, genDiscriminantCheck_ERg79a0GtvjkZTLBzpcamyw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* tmp, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* objtype, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* field);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, discriminatorTableDecl_NlU3VxpG9aX285JoLNfLBow_2)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* objtype, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* d);
N_NIMCALL(void, genAsmStmt_QrTB5DOwbDX9bKAW7PNbuJA_7)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genAsmOrEmitStmt_N9a8wT4v8ScQB5fpNhIdTPg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, NIM_BOOL isAsmStmt);
N_NIMCALL(void, genTryCpp_re1pwmyeR32ikwnOC3vvzQ_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
static N_INLINE(void, genSimpleBlock_RH6PUsmPRE4ftBMagpWhBQcgen)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* stmts);
N_NIMCALL(void, genTry_re1pwmyeR32ikwnOC3vvzQ_6)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_NIMCALL(void, line_9aXHc8esghJ4O9cCshiFsv8g)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg s, NimStringDesc* r);
static N_INLINE(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, pop_Uwv9aKTtuI0HDD9bflz9aw9cCAropes)(tySequence_LViedqhb8iWVoqgZs5LifA** s);
N_NIMCALL(void, genRaiseStmt_QrTB5DOwbDX9bKAW7PNbuJA_8)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t);
N_NIMCALL(NimStringDesc*, getRaiseFrmt_jwlAjF7Ct29cE9b9bFesOe0dA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p);
N_NIMCALL(void, genTypeSection_RWbniVujFjTeOzm9aGF0Rog)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_NIMCALL(void, genPragma_UtJx89cn0a8CNSWWmaj6raA_6)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_NIMCALL(tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw, whichPragma_tadMdqrtQd2cek9aFwyE1XQ)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_NIMCALL(void, genEmit_QrTB5DOwbDX9bKAW7PNbuJA_9)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t);
N_NIMCALL(tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg, determineSection_9arH9c6mXq5etPZBb1Z9cafbw)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_NIMCALL(NIM_BOOL, nsuStartsWith)(NimStringDesc* s, NimStringDesc* prefix);
N_NIMCALL(void, genBreakPoint_QrTB5DOwbDX9bKAW7PNbuJA_10)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t);
N_NIMCALL(void, genWatchpoint_UtJx89cn0a8CNSWWmaj6raA_7)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_NIMCALL(tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw*, skipGenericOwner_ugWPlZqqVshHUeOH4zw3vA)(tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* s);
N_NIMCALL(void, genParForStmt_QrTB5DOwbDX9bKAW7PNbuJA_11)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t);
N_NIMCALL(void, genState_UtJx89cn0a8CNSWWmaj6raA_8)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_NIMCALL(void, genGotoState_UtJx89cn0a8CNSWWmaj6raA_9)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_NIMCALL(void, genBreakState_UtJx89cn0a8CNSWWmaj6raA_10)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_NIMCALL(void, registerModuleToMain_TTqZ7nXv4dyBiFpNc9bez0A)(tyObject_BModuleListcolonObjectType__t8u9aWK9cwyNCAxgxkYKh9bLQ* g, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* m);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getInitName_Cc6wkPHpGLfeC2TuYMDsEw)(tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* m);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getSomeInitName_C65FxzQb9bQ1btTLEiNl1hQ)(tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* m, NimStringDesc* suffix);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getDatInitName_Cc6wkPHpGLfeC2TuYMDsEw_2)(tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* m);
N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, generateMethodDispatchers_7t0GJlNQwZyLt0Kz3RhRdw)(tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g);
N_NIMCALL(void, genMainProc_xndgWviRe74Vg5ZCVqDJFQ)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genFilenames_54CrPIOFKsrtQd59cl9bHH3A_3)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m);
N_NIMCALL(void, finishModule_xndgWviRe74Vg5ZCVqDJFQ_2)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m);
N_NIMCALL(void, updateCachedModule_xndgWviRe74Vg5ZCVqDJFQ_3)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m);
N_NIMCALL(NimStringDesc*, toObjFile_kKfQ9cy4jE21UrGTrl5XAwg)(NimStringDesc* filename);
N_NIMCALL(NIM_BOOL, mergeRequired_tOmUfIxcCK2nhCeMYZPw1Q)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m);
N_NIMCALL(void, mergeFiles_klaWcZvKFqt7gKWMCpzPOQ_2)(NimStringDesc* cfilename, tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m);
N_NIMCALL(void, genInitCode_xndgWviRe74Vg5ZCVqDJFQ_4)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genSectionStart_KFpOaZVkVN1o0F9bTwYZAog)(tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg ps);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genSectionEnd_KFpOaZVkVN1o0F9bTwYZAog_2)(tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg ps);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genSectionStart_9bdZYosXO9coHYdP4ImTXi5Q)(tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg fs);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genSectionEnd_9bdZYosXO9coHYdP4ImTXi5Q_2)(tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg fs);
N_NIMCALL(void, finishTypeDescriptions_xndgWviRe74Vg5ZCVqDJFQ_5)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genModule_3aFLDFoysS2zcuJahgsrKg)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_Cfile_IOg1iQ2oUKnOJHLIt9auKNQ* cfile);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getFileHeader_CqFjkxiTOAeZnQTqgNmgxA)(tyObject_Cfile_IOg1iQ2oUKnOJHLIt9auKNQ* cfile);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getCopyright_CqFjkxiTOAeZnQTqgNmgxA_2)(tyObject_Cfile_IOg1iQ2oUKnOJHLIt9auKNQ* cfile);
N_NIMCALL(NimStringDesc*, getCompileCFileCmd_eSkuNroO1HNJUSszp2VHqg)(tyObject_Cfile_IOg1iQ2oUKnOJHLIt9auKNQ* cfile);
static N_INLINE(void, addIntTypes_4umyRsj7bdfySKs69aKeJAwcgen)(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** result);
N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genMergeInfo_1g6a3DrnT4tIGRwiOvArkw)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m);
N_NIMCALL(void, generateThreadLocalStorage_xndgWviRe74Vg5ZCVqDJFQ_6)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m);
N_NIMCALL(void, generateHeaders_xndgWviRe74Vg5ZCVqDJFQ_7)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m);
N_NIMCALL(NimStringDesc*, nsuReplaceChar)(NimStringDesc* s, NIM_CHAR sub, NIM_CHAR by);
N_NIMCALL(void, writeRope_BleoID9btBn4KgpblZYx8nQ)(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* head, NimStringDesc* filename, NIM_BOOL useWarning);
N_NIMCALL(void, addFileToCompile_OP8x69b69aP08XTrqOSNgzkg)(tyObject_Cfile_IOg1iQ2oUKnOJHLIt9auKNQ* cf);
N_NIMCALL(void, writeModule_9bv59bQ2gpfKwo8DRdqdNGOw)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, NIM_BOOL pending);
N_NIMCALL(void, generateThreadVarsSize_xndgWviRe74Vg5ZCVqDJFQ_8)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m);
N_NIMCALL(NIM_BOOL, shouldRecompile_Mr0OyGYjIMYWLQrR9bvuBKg)(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* code, tyObject_Cfile_IOg1iQ2oUKnOJHLIt9auKNQ* cfile);
N_NIMCALL(NIM_BOOL, equalsFile_NRjmJ38NeonBbXARkPJquA)(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* r, NimStringDesc* filename);
static N_INLINE(NIM_BOOL, fileExists_yTPrfdEKg9cKCeSFUA6popQoptions)(NimStringDesc* filename);
N_NIMCALL(NIM_BOOL, nosexistsFile)(NimStringDesc* filename);
N_NIMCALL(void, noscopyFile)(NimStringDesc* source, NimStringDesc* dest);
N_NIMCALL(NIM_BOOL, nosfileNewer)(NimStringDesc* a, NimStringDesc* b);
N_NIMCALL(void, close_9b6I81M9agpKe5u9cmzSmOaGA)(tyObject_NdiFile_9cEuXfAnHp9bnWFK409cMtsEw* f);
N_NIMCALL(void, writeMapping_fCGFdgs38RNcOjsXPVtLhw)(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* gSymbolMapping);
N_NIMCALL(void, writeHeader_xndgWviRe74Vg5ZCVqDJFQ_9)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m);
N_NIMCALL(void, nossplitFile)(NimStringDesc* path, tyTuple_7q7q3E6Oj24ZNVJb9aonhAg* Result);
tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* indent_yZhag4Leo9bR7kvKArHuXQg;
extern TNimType NTI_d0QF71x0BgMQlc7zEXMYTQ_;
extern tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ gch_IcYaEuuWivYAS86vFMTS3Q;
tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* nimtv_7E1DsLFLxnZdSWFUg9byAuA;
tySequence_zuqP4Riz26Oi5fWgPYVEgA* nimtvDeps_65PZHnt5ef7s9b6MCRpLI4Q;
extern TNimType NTI_zuqP4Riz26Oi5fWgPYVEgA_;
tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg nimtvDeclared_HYTho28us1uxqfncBt58kg;
extern TNimType NTI_PQrmFm4BXFkFSVOUl1ojSg_;
extern TNimType NTI_DYuN5nmroce1mp9cZojr9c7Q_;
extern TNimType NTI_8lcmapGBf0sypwIDzZhZwA_;
extern TNimType NTI_sM4lkSb7zS6F7OVMvW9cffQ_;
extern TNimType NTI_CLLTIkQVzDOo9avEeZWukOg_;
extern TNimType NTI_pdLM8FWiNHAzIuaDPD0Leg_;
extern tySet_tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg gOptions_KL5B8sF4szIsM2AXCWFsIw;
extern TNimType NTI_sksVpmPRIkNR9axiwtD1Guw_;
extern tySet_tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw gGlobalOptions_j042VVDC9cT5ENYoXnmhhVg;
extern tySequence_YLg9aN9cjdxVYWdZ7YCb9batg* fileInfos_0nMtuXd9csTLLtuDok8ckXw;
extern NimStringDesc* gProjectFull_V1rcVHDANDR4ly2ul00asg;
extern tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw gCmd_0oKScFtMiSKnjiHF9cU9c5GQ;
extern NI gErrorCounter_BdMIKofstJQD5Y2GBaRdzQ;
extern tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* softRnl_iUOtmgRcRwCUc9cEJC66Hsw;
extern tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* noRnl_DdFxAoLODDj9b2uG07y6R2w;
extern tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* rnl_cGyNlPEm9bfohklPdVEsyNg;
extern TNimType NTI_9a3YiReNVD0IJHWFKgXRe9ag_;
extern tyEnum_TSystemCC_Y42JhQFLdjkIirjI3TJjww cCompiler_Dz9bRorQ2m6cBt9awpi4iwPw;
extern NimStringDesc* tnl_Gp8EwkcsAP9am1klnCCHM4w;
extern NI floatSize_9aPM39cxaqttCZlYIk3psY3g;
extern tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw gSelectedGC_Qq37YMpTZX6EGc9apygtZcg;
extern TNimType NTI_G4E4Gxe7oI2Cm03rkiOzQw_;
extern TNimType NTI_cNCW9acsSznmEccl1fgQwkw_;
extern TNimType NTI_EtHNvCB0bgfu9bFjzx9cb6aA_;
extern NI intSize_a1bNgZBNVciKYuzCi2sD5A;
extern tyEnum_TSystemOS_s7Mlr1t66SUqP6BKJMXLaQ targetOS_PyF9cBkuAlI8I7Y7KiZHIYQ;
extern TNimType NTI_shZhZOdbVC5nnFvcXQAImg_;
extern TNimType NTI_LViedqhb8iWVoqgZs5LifA_;
extern TNimType NTI_ehmV9bTklH2Gt9cXHV9c0HLeQ_;
extern tyEnum_TSystemCPU_XYDt7D1G3qcClFyZy1Ky9ag targetCPU_6ZqNUOGOAkmp4zxKVZ9cFag;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_3, "\011", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_7, "TM", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_8, "_", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_9, "ndi", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_10, "", 0);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_11, "added pending module twice: ", 28);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_12, "\?\?\?", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_13, ".h", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_14, ".cpp", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_15, ".m", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_16, ".c", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_17, "$", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_18, "ropes: invalid format string $", 30);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_19, "$N#line $2 $1$N", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_20, "N_LIB_IMPORT ", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_21, "N_LIB_EXPORT ", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_22, "static ", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_24, "ccgtypes.nim", 12);
NIM_CONST tyTuple_XOVT24GHXwqiEj5GCsEGCA TM_MQdRN7fpbG7rPm4JpVVAhA_23 = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_24),
((NI) 170)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_25, "mapType", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_26, "void", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_27, "cannot generate C type for: ", 28);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_28, "void*", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_29, "NimStringDesc", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_30, "NimStringDesc*", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_31, "NCSTRING", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_32, "NIM_BOOL", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_33, "NIM_CHAR", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_34, "0", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_35, "NI", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_36, "NI8", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_37, "NI16", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_38, "NI32", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_39, "NI64", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_40, "NF", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_41, "NF32", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_42, "NF64", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_43, "NF128", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_44, "NU", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_45, "NU8", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_46, "NU16", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_47, "NU32", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_48, "NU64", 4);
NIM_CONST tyArray_Sjq0yxKksnvb1U6tEMqzYg NumericalTypeToStr_do7KqFuyalEFiD7s8tBisg = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_35),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_36),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_37),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_38),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_39),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_40),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_41),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_42),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_43),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_44),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_45),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_46),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_47),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_48)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_49, "tyStatic for getSimpleTypeDesc", 30);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_50, "checkabi", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_51, "NIM_CHECK_SIZE($1, $2);$n", 25);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_52, "&", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_53, "*", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_54, "getTypeName: ", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_55, "$1 $2;$n", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_56, "typedef $1 $2 $2;$n", 19);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_57, "union", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_58, "struct", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_59, "m.forwTypeCache[sig] == result ", 31);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_60, "getTypeForward(", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_61, "typedef NI32 $1;$n", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_62, "typedef NU8 $1;$n", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_63, "typedef NU16 $1;$n", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_64, "typedef NI64 $1;$n", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_65, "getTypeDescAux: enum", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_66, "typedef $1_PTR($2, $3) $4;$n", 28);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_67, "N_NIMCALL", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_68, "N_STDCALL", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_69, "N_CDECL", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_70, "N_SAFECALL", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_71, "N_SYSCALL", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_72, "N_INLINE", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_73, "N_NOINLINE", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_74, "N_FASTCALL", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_75, "N_CLOSURE", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_76, "N_NOCONV", 8);
NIM_CONST tyArray_t1sx1FVcaX4m77XqENedIQ CallingConvToStr_A7GdKVVGtI3pvj9cV9adydpw = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_67),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_70),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_71),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_72),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_73),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_74),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_75),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_76)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_77, "typedef struct {$nN_NIMCALL_PTR($2, ClP_0) $3;$nvoid* ClE_0;$n}"
" $1;$n", 69);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_78, "struct $2 : #TGenericSeq {$n", 28);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_79, "struct $2 {$n  #TGenericSeq Sup;$n", 34);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_80, "  $1 data[SEQ_DECL_SIZE];$n};$n", 31);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_81, "TGenericSeq", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_82, "typedef $1 $2[$3];$n", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_83, "invalid apostrophe type parameter index", 39);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_84, "<", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_85, " COMMA ", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_86, "> ", 2);
extern NIM_CONST tyArray_qu6yzdxYR9byKjDbcELHKnw CC_78I18QZNZFIv9ah7oETc0jg;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_87, " __attribute__((__packed__))", 28);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_88, "#pragma pack(1)", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_89, " ", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_90, " {$n", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_91, " {$n#TNimType* m_type;$n", 24);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_92, " : public $1 {$n", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_93, " {$n  $1 Sup;$n", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_94, "genRecordFieldsAux", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_95, "$1.$2", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_96, "S", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_97, "struct {", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_98, "struct __attribute__((__packed__)){", 35);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_99, "#pragma pack(1)$nstruct{", 24);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_100, "} $1;$n", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_101, "#pragma pack(pop)$n", 19);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_102, "genRecordFieldsAux(record case branch)", 38);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_103, "union{$n$1} $2;$n", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_104, "_0", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_105, "mangleRecFieldName", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_106, "$1 $2[SEQ_DECL_SIZE];$n", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_107, "$1 $2:$3;$n", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_108, "genRecordFieldsAux()", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_109, "char dummy;$n", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_110, "};", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_111, "#pragma pack(pop)", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_112, "$1 $2 {$n", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_113, "$1 Field$2;$n", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_114, "char dummy;", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_115, "typedef NU$2 $1;$n", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_116, "typedef NU8 $1[$2];$n", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_117, "getTypeDescAux(", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_118, "genProcParams", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_119, ", ", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_120, ", NI $1Len_$2", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_121, " Result", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_122, "void* ClE_0", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_123, "...", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_124, "void)", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_125, ")", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_126, "(", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_127, "$1($2, $3)$4", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_128, "proc has no result symbol", 25);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_129, " register", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_130, " volatile", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_131, "$1 = $2;$n", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_132, "(*$1)", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_133, ";", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_134, "FR_.s[$1].address = (void*)$3; FR_.s[$1].typ = $4; FR_.s[$1].na"
"me = $2;$n", 73);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_135, "(&", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_136, "TNimType", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_137, "TNimNode", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_138, "extern TNimType $1;$n", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_139, "NTI$1_", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_140, "0", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_141, "void*", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_142, "$1.size = sizeof($2);$n$1.kind = $3;$n$1.base = $4;$n", 53);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_143, "$1.flags = $2;$n", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_144, "nimTypeNames", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_145, "$1.name = $2;$n", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_146, "nimTypeRoot", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_147, "$1.nextType = nimTypeRoot; nimTypeRoot=&$1;$n", 45);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_148, "TNimType $1;$n", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_149, "genTypeInfo(", 12);
NIM_CONST tyTuple_XOVT24GHXwqiEj5GCsEGCA TM_MQdRN7fpbG7rPm4JpVVAhA_150 = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_24),
((NI) 1153)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_151, "$1[$2]", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_152, "static TNimNode* $1[$2];$n", 26);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_153, "$1[$2] = &$3;$n", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_154, "$1.kind = 1;$n$1.offset = offsetof($2, Field$3);$n$1.typ = $4;$"
"n$1.name = \"Field$3\";$n", 86);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_155, "$1.len = $2; $1.kind = 2; $1.sons = &$3[0];$n", 45);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_156, "$1.len = $2; $1.kind = 2;$n", 27);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_157, "$1.node = &$2;$n", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_158, "Marker_", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_159, "#nimGCvisit((void*)$1, op);$n", 29);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_160, "static N_NIMCALL(void, $1)(void* p, NI op)", 42);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_161, "$1 a;$n", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_162, "a = ($1)p;$n", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_163, "T", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_164, "$1 = ($2)0;$n", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_165, "<string.h>", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_166, "memset((void*)$1, 0, sizeof($2));$n", 35);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_167, ".Sup", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_168, "$1.m_type = $2;$n", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_169, "#objectInit($1, $2);$n", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_170, "for ($1 = 0; $1 < $2->$3; $1++) {$n", 35);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_171, "len", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_172, "Sup.len", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_173, "for ($1 = 0; $1 < $2; $1++) {$n", 31);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_174, "}$n", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_175, "$1.Sup", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_176, "genTraverseProc", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_177, "genTraverseProc()", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_178, "switch ($1.$2) {$n", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_179, "case $1 ... $2:$n", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_180, "genLiteral: ty is nil", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_181, "(-2147483647 -1)", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_182, "IL64($1)", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_183, "(IL64(-9223372036854775807) - IL64(1))", 38);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_184, "NIM_TRUE", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_185, "NIM_FALSE", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_186, "ULL", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_187, "(($1) $2)", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_188, "static NIM_CONST $1 $2 = {NIM_NIL,NIM_NIL};$n", 45);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_189, "NIM_NIL", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_190, "((#NimStringDesc*) NIM_NIL)", 27);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_191, "((#NimStringDesc*) &$1)", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_192, "STRING_LITERAL($1, $2, $3);$n", 29);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_193, "((#NimStringDesc*) &$1$2)", 25);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_194, "f", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_195, "genLiteral(", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_196, "case $1:$n", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_197, "default:$n", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_198, "break;$n", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_199, "} $n", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_200, "$1.Field$2", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_201, "$1.ClE_0", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_202, "$1->data[$2]", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_203, "a", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_204, "(*a)", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_205, "$1 {$n$2$3$4}$n", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_206, "$1;$n", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_207, "$1.marker = $2;$n", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_208, "$1.len = $2; $1.kind = 0;$n$3.node = &$1;$n", 43);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_209, "$1.offset = $2;$n", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_210, "NI $1;$n", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_211, "static char* NIM_CONST $1[$2] = {$n$3};$n", 41);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_212, "for ($1 = 0; $1 < $2; $1++) {$n$3[$1+$4].kind = 1;$n$3[$1+$4].o"
"ffset = $1;$n$3[$1+$4].name = $5[$1];$n$6[$1] = &$3[$1+$4];$n}$n", 127);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_213, "$1.len = $2; $1.kind = 2; $1.sons = &$3[0];$n$4.node = &$1;$n", 61);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_214, "$1.flags = 1<<2;$n", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_215, "anonymous obj with discriminator", 32);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_216, "NimDT_$1_$2", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_217, "genObjectFields", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_218, "$1.kind = 3;$n$1.offset = offsetof($2, $3);$n$1.typ = $4;$n$1.n"
"ame = $5;$n$1.sons = &$6[0];$n$1.len = $7;$n", 107);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_219, "TNimNode* $1[$2];$n", 19);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_220, "genObjectFields; nkOfBranch broken", 34);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_221, "genObjectFields(nkRecCase)", 26);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_222, "$1.kind = 1;$n$1.offset = offsetof($2, $3);$n$1.typ = $4;$n$1.n"
"ame = $5;$n", 74);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_223, "$1.deepcopy =(void* (N_RAW_NIMCALL*)(void*))$2;$n", 49);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_224, "\011return $1;$n", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_225, "Result", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_226, "closure generation failed", 25);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_227, "$1 = ($2) ClE_0;$n", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_228, "__declspec(noreturn) ", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_229, "__declspec(naked) ", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_230, "$N$1 {$n$2$3$4}$N$N", 19);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_231, "$N$1 {$N", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_232, "struct {$1} GCFRAME_;$n", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_233, "nimFrame", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_234, "VarSlot", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_235, "\011nimfrs_($1, $2, $3, $4);$n", 27);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_236, "\011nimfr_($1, $2);$n", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_237, "\011#nimProfile();$n", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_238, "{", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_239, "\011}BeforeRet_: ;$n", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_240, "if (((NU)&GCFRAME_) < 4096) #nimGCFrame(&GCFRAME_);$n", 53);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_241, "\011#popFrame();$n", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_242, "}$N", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_243, "static void* $1;$n", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_244, "||", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_245, "($1 = #nimLoadLibrary((#NimStringDesc*) &$2))$n", 47);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_246, "if (!($1)) #nimLoadLibraryError((#NimStringDesc*) &$2);$n", 57);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_247, "if (!($1 = #nimLoadLibrary($2))) #nimLoadLibraryError($2);$n", 60);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_248, "loadDynamicLib", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_249, "Dl_$1_", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_250, "\011$1 = ($2) ($3$4));$n", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_252, "cgen.nim", 8);
NIM_CONST tyTuple_XOVT24GHXwqiEj5GCsEGCA TM_MQdRN7fpbG7rPm4JpVVAhA_251 = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_252),
((NI) 557)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_253, "wrong index: ", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_254, "\011$1 = ($2) #nimGetProcAddr($3, $4);$n", 37);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_255, "$2 $1;$n", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_256, "extern ", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_257, "NIM_THREADVAR ", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_258, " $1;$n", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_259, "cgsym: ", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_260, ": ", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_261, "extern $1 $2;$n", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_262, "extern \"C\" ", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_263, " __attribute__((naked))", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_264, " __attribute__((noreturn))", 26);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_265, "#asgnRef((void**) $1, $2);$n", 28);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_266, "#asgnRefNoCycle((void**) $1, $2);$n", 35);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_267, "#unsureAsgnRef((void**) $1, $2);$n", 34);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_268, "#genericSeqAssign($1, $2, $3);$n", 32);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_269, "$1 = #copyString($2);$n", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_270, "$3 = $1; $1 = #copyStringRC1($2);$n", 35);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_271, "if ($1) #nimGCunrefNoCycle($1);$n", 33);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_272, "#unsureAsgnRef((void**) $1, #copyString($2));$n", 47);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_273, ".", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_274, "ClE_0", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_275, "$1.ClP_0 = $2.ClP_0;$n", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_276, "Field$1", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_277, "memcpy((void*)$1, (NIM_CONST void*)$2, sizeof($3));$n", 53);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_278, "#genericShallowAssign((void*)$1, (void*)$2, $3);$n", 50);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_279, "#genericAssign((void*)$1, (void*)$2, $3);$n", 43);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_281, "ccgexprs.nim", 12);
NIM_CONST tyTuple_XOVT24GHXwqiEj5GCsEGCA TM_MQdRN7fpbG7rPm4JpVVAhA_280 = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_281),
((NI) 322)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_282, "#genericAssignOpenArray((void*)$1, (void*)$2, $1Len_0, $3);$n", 61);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_283, "memcpy((void*)$1, (NIM_CONST void*)$2, sizeof($1[0])*$1Len_0);$"
"n", 64);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_284, "memcpy((void*)$1, (NIM_CONST void*)$2, $3);$n", 45);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_285, "genAssignment: ", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_286, "#memTrackerWrite((void*)$1, $2, $3, $4);$n", 42);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_287, "request to generate code for .compileTime proc: ", 48);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_288, "expr: proc not init ", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_289, "NIM_CONST $1 $2 = $3;$n", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_290, "{$n", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_291, "0x$1,$n", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_292, "0x$1, ", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_293, "0x$1}$n", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_294, "{{$1, $1}", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_295, ", {", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_296, ",$n", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_297, "}", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_298, "NIM_CONST struct {$n  #TGenericSeq Sup;$n  $1 data[$2];$n} $3 ="
" $4;$n", 69);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_299, "(($1)&$2)", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_300, "{NIM_NIL,NIM_NIL}", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_301, "$1,$n", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_302, "$1", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_303, "NIM_FALSE", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_304, "0.0", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_305, "NIM_NIL", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_306, "{NIM_NIL, NIM_NIL}", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_307, "{{$1}}", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_308, "{}", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_309, "cannot create null element for: ", 32);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_310, "{$1}$n", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_311, "extern NIM_CONST $1 $2;$n", 25);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_312, "expr: var not init ", 19);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_313, "\011NimThreadVars* NimTV_;$n", 25);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_314, "\011NimTV_ = (NimThreadVars*) #GetThreadLocalVars();$n", 51);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_315, "NimTV_->", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_316, "expr: temp not init ", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_317, "expr: param not init ", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_318, "expr(", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_319, "); unknown symbol", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_320, "//", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_321, "#endb($1, $2);$N", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_322, "nimln_($1, $2);$n", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_323, "LA", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_324, "if ($1) goto $2;$n", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_325, "if (!($1)) goto $2;$n", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_326, "$1: ;$n", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_327, "!($1)", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_328, "($3)((NU$2) ~($1))", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_329, "-($1)", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_330, "($1 < 0\? -($1) : ($1))", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_331, "(($3)(NU)(NU8)($1))", 19);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_332, "(($3)(NU64)(NU8)($1))", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_333, "(($3)(NU)(NU16)($1))", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_334, "(($3)(NU64)(NU16)($1))", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_335, "(($3)(NU64)(NU32)($1))", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_336, "(($3)(NU64)(NU)($1))", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_337, "(($3)(NU8)(NU)($1))", 19);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_338, "(($3)(NU16)(NU)($1))", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_339, "(($3)(NU32)(NU64)($1))", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_340, "((double) ($1))", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_341, "float64ToInt32($1)", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_342, "float64ToInt64($1)", 18);
NIM_CONST tyArray_JSgGJOkOqgOo1s9bmyBDCIw unArithTab_1p9a8KN5j4PMV4F7Mzo8I1Q = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_327),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_302),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_328),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_302),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_329),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_330),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_331),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_332),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_333),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_334),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_335),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_336),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_337),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_338),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_339),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_340),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_340),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_341),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_342)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_343, "if ($1 == $2) #raiseOverflow();$n", 33);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_344, "((NI$2)-($1))", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_345, "($1 > 0\? ($1) : -($1))", 22);
NIM_CONST tyArray_xAyf4rirXvBJAU9ar9cZHRFw opr_vMxBsg3pHbWQhHBktwp4Jw = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_344),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_329),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_345)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_346, "(($4)($2) $1 ($4)($3))", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_347, "+", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_348, "-", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_349, "/", 1);
NIM_CONST tyArray_1SeZR8kaOX3FtWvHoBu9c4g opr_jSXnH9c8YRRwSdXyVdSg9acA = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_347),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_348),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_53),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_349)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_350, "#nanCheck($1);$n", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_351, "#infCheck($1);$n", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_352, "(($4)($1) + ($4)($2))", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_353, "(($4)($1) - ($4)($2))", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_354, "(($4)($1) * ($4)($2))", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_355, "(($4)($1) / ($4)($2))", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_356, "($4)((NU$5)($1) >> (NU$3)($2))", 30);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_357, "($4)((NU$3)($1) << (NU$3)($2))", 30);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_358, "($4)($1 & $2)", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_359, "($4)($1 | $2)", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_360, "($4)($1 ^ $2)", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_361, "(($1 <= $2) \? $1 : $2)", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_362, "(($1 >= $2) \? $1 : $2)", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_363, "($4)((NU$3)($1) + (NU$3)($2))", 29);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_364, "($4)((NU$3)($1) - (NU$3)($2))", 29);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_365, "($4)((NU$3)($1) * (NU$3)($2))", 29);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_366, "($4)((NU$3)($1) / (NU$3)($2))", 29);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_367, "($4)((NU$3)($1) % (NU$3)($2))", 29);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_368, "($1 == $2)", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_369, "($1 <= $2)", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_370, "($1 < $2)", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_371, "((NU$3)($1) <= (NU$3)($2))", 26);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_372, "((NU$3)($1) < (NU$3)($2))", 25);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_373, "((NU64)($1) <= (NU64)($2))", 26);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_374, "((NU64)($1) < (NU64)($2))", 25);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_375, "((NU8)($1) == (NU8)($2))", 24);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_376, "((NU8)($1) <= (NU8)($2))", 24);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_377, "((NU8)($1) < (NU8)($2))", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_378, "($1 != $2)", 10);
NIM_CONST tyArray_1loGRLkDaWVLWOJGppCv7A binArithTab_184dMIlbHgay9bxJ8Y4EEQA = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_352),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_353),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_354),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_355),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_356),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_357),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_358),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_359),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_360),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_361),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_362),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_361),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_362),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_363),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_364),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_365),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_366),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_367),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_368),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_369),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_370),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_368),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_369),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_370),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_371),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_372),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_373),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_374),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_368),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_369),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_370),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_375),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_376),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_377),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_368),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_369),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_370),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_368),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_368),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_369),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_370),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_378)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_379, "($1.ClP_0 == $2.ClP_0 && $1.ClE_0 == $2.ClE_0)", 46);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_380, "($#)($# + $#)", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_381, "($#)($# - $#)", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_382, "($#)($# * $#)", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_383, "($#)($# / $#)", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_384, "($#)($# % $#)", 13);
NIM_CONST tyArray_bKFSxC0i7ZtH3saMnwZufw opr_UAWyVnvyQoWbplounFNlGg = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_380),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_381),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_382),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_383),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_384),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_380),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_381)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_385, "((NU8)($1))", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_386, "if ($1 < $2 || $1 > $3) #raiseOverflow();$n", 43);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_387, "$# = #addInt64($#, $#);$n", 25);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_388, "$# = #subInt64($#, $#);$n", 25);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_389, "$# = #mulInt64($#, $#);$n", 25);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_390, "$# = #divInt64($#, $#);$n", 25);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_391, "$# = #modInt64($#, $#);$n", 25);
NIM_CONST tyArray_bKFSxC0i7ZtH3saMnwZufw prc64_9bTptLAKOOYdunqlEwXM6PQ = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_387),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_388),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_389),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_390),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_391),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_387),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_388)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_392, "$# = #addInt($#, $#);$n", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_393, "$# = #subInt($#, $#);$n", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_394, "$# = #mulInt($#, $#);$n", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_395, "$# = #divInt($#, $#);$n", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_396, "$# = #modInt($#, $#);$n", 23);
NIM_CONST tyArray_bKFSxC0i7ZtH3saMnwZufw prc_8UqUr1y9abLbrO1vSUF2CqQ = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_392),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_393),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_394),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_395),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_396),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_392),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_393)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_397, "($#)($#)", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_398, "#reprInt((NI64)$1)", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_399, "#reprFloat($1)", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_400, "#reprBool($1)", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_401, "#reprChar($1)", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_402, "#reprEnum((NI)$1, $2)", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_403, "#reprStr($1)", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_404, "#reprSet($1, $2)", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_405, "$1, $1Len_0", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_406, "$1->data, $1->$2", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_407, "$1, $2", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_408, "genRepr()", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_409, "#reprOpenArray($1, $2)", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_410, "#reprAny($1, $2)", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_411, "\'repr\' doesn\'t support \'void\' type", 34);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_412, "($1 - 1)", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_413, "#subInt($1, 1)", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_414, "binaryStmt", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_415, "$1 += $2;$n", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_416, "$1 -= $2;$n", 11);
NIM_CONST tyArray_rs615XcYhjcJXqz1Z1BqYQ opr_O7uP3jzNu3e9auWdRdRa9cJA = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_415),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_416)}
;
NIM_CONST tyArray_rs615XcYhjcJXqz1Z1BqYQ fun64_fjrbodMqcYB619bEDCGfJsA = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_387),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_388)}
;
NIM_CONST tyArray_rs615XcYhjcJXqz1Z1BqYQ fun_gOe15RXeJ2duD5In6NwLXA = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_392),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_393)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_417, "#appendChar($1, $2);$n", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_418, "$1->$2 + ", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_419, "#appendString($1, $2);$n", 24);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_420, "$1 = #rawNewString($2$3);$n", 27);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_421, "$1 = #addChar($1, $2);$n", 24);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_422, "$1 = #resizeString($1, $2$3);$n", 31);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_423, "$1 = ($2) #incrSeqV2(&($1)->Sup, sizeof($3));$n", 47);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_424, "$1 = ($2) #incrSeqV2($1, sizeof($3));$n", 39);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_425, "$1 = $2->$3++;$n", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_426, "(($1) && ($1)->$2 == 0)", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_427, "#eqStrings($1, $2)", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_428, "(#cmpStrings($1, $2) <= 0)", 26);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_429, "(#cmpStrings($1, $2) < 0)", 25);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_430, "($1.ClP_0 == 0)", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_431, "($1 == 0)", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_432, "#nimIntToStr($1)", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_433, "#nimInt64ToStr($1)", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_434, "#nimBoolToStr($1)", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_435, "#nimCharToStr($1)", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_436, "#nimFloatToStr($1)", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_437, "#cstrToNimstr($1)", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_438, "no \'of\' operator available for pure objects", 43);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_439, "(($1) && ($2))", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_440, "$1.m_type == $2", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_441, "Nim_OfCheck_CACHE", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_442, "static TNimType* $#[2];$n", 25);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_443, "#isObjWithCache($#.m_type, $#, $#)", 34);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_444, "($1)", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_445, "sizeof($1)", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_446, "if ($1) { #nimGCunrefRC1($1); $1 = NIM_NIL; }$n", 47);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_447, "if ($1) { #nimGCunrefNoCycle($1); $1 = NIM_NIL; }$n", 51);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_448, "($1) #newObjRC1($2, $3)", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_449, "($1) #newObj($2, $3)", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_450, "$1->finalizer = (void*)$2;$n", 28);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_451, "($1) #newObj($2, sizeof($3))", 28);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_452, "($1) #newSeqRC1($2, $3)", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_453, "($1) #newSeq($2, $3)", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_454, "($1)#nimNewSeqOfCap($2, $3)", 27);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_455, "((NI)sizeof($1))", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_456, "(*($1*) ($2))", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_457, "(($1) ($2))", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_458, "($1Len_0-1)", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_459, "$1Len_0", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_460, "($1 \? (strlen($1)-1) : -1)", 26);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_461, "($1 \? strlen($1) : 0)", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_462, "($1 \? ($1->Sup.len-1) : -1)", 27);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_463, "($1 \? $1->Sup.len : 0)", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_464, "($1 \? ($1->len-1) : -1)", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_465, "($1 \? $1->len : 0)", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_466, "$1 = ($2 \? ($2->Sup.len-1) : -1);$n", 35);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_467, "$1 = ($2 \? $2->Sup.len : 0);$n", 30);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_468, "$1 = ($2 \? ($2->len-1) : -1);$n", 31);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_469, "$1 = ($2 \? $2->len : 0);$n", 26);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_470, "genArrayLen()", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_471, "($1->Sup.len)", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_472, "$1->len", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_473, "$1 = $2->Sup.len;$n", 19);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_474, "$1 = $2->len;$n", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_475, "unaryStmt", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_476, "#nimGCref($1);$n", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_477, "#nimGCunref($1);$n", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_478, "$1 = #setLengthStr($1, $2);$n", 29);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_479, "$1 = ($3) #setLengthSeq(&($1)->Sup, sizeof($4), $2);$n", 54);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_480, "$1 = ($3) #setLengthSeq($1, sizeof($4), $2);$n", 46);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_481, "($1- $2)", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_482, "$1 |= ((", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_483, ")1)<<(($2)%(sizeof(", 19);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_484, ")*8));$n", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_485, "$1 &= ~(((", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_486, ")1) << (($2) % (sizeof(", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_487, ")*8)));$n", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_488, "#countBits32($1)", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_489, "#countBits64($1)", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_490, "(($1 & ~ $2 ==0)&&($1 != $2))", 29);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_491, "(($1 & ~ $2)==0)", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_492, "($1 & $2)", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_493, "($1 | $2)", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_494, "($1 & ~ $2)", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_495, "($1 ^ $2)", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_496, "fewCmps", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_497, "$1 >= $2 && $1 <= $3", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_498, "$1 == $2", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_499, " || ", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_500, "(($1 &(1U<<((NU)($2)&7U)))!=0)", 30);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_501, "(($1 &(1U<<((NU)($2)&15U)))!=0)", 31);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_502, "(($1 &(1U<<((NU)($2)&31U)))!=0)", 31);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_503, "(($1 &((NU64)1<<((NU)($2)&63U)))!=0)", 36);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_504, "(($1[(NU)($2)>>3] &(1U<<((NU)($2)&7U)))!=0)", 43);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_505, "genSetOp()", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_506, "$1[(NU)($2)>>3] |=(1U<<($2&7U));$n", 34);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_507, "$1[(NU)($2)>>3] &= ~(1U<<($2&7U));$n", 36);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_508, "#cardSet($1, ", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_509, "for ($1 = 0; $1 < $2; $1++) { $n  $3 = (($4[$1] & ~ $5[$1]) == "
"0);$n  if (!$3) break;}$n", 88);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_510, "for ($1 = 0; $1 < $2; $1++) { $n  $3 = (($4[$1] & ~ $5[$1]) == "
"0);$n  if (!$3) break;}$nif ($3) $3 = (memcmp($4, $5, $2) != 0);"
"$n", 129);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_511, "|", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_512, "& ~", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_513, "^", 1);
NIM_CONST tyArray_dAZ0Uu4zULzcUQG1JO2Z8Q lookupOpr_w7WuexLq9cuXtAtqil9csnVQ = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_509),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_510),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_52),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_511),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_512),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_513)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_514, "(memcmp($1, $2, ", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_515, ")==0)", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_516, "for ($1 = 0; $1 < $2; $1++) $n  $3[$1] = $4[$1] $6 $5[$1];$n", 60);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_517, "genSetOp", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_518, "$1->data", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_519, "($1)+($2), ($3)-($2)+1", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_520, "(*$1)->data+($2), ($3)-($2)+1", 29);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_521, "$1->data+($2), ($3)-($2)+1", 26);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_522, "openArrayLoc: ", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_523, "(*$1)->data, (*$1)->$2", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_524, "$1.ClP_0($3$1.ClE_0)", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_525, "$1.ClE_0\? $1.ClP_0($3$1.ClE_0):(($4)($1.ClP_0))($2)", 51);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_526, "$1 = 0;$n", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_527, "#chckNil((void*)$1);$n", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_528, "#genericReset((void*)$1, $2);$n", 31);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_529, ";$n", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_531, "ccgcalls.nim", 12);
NIM_CONST tyTuple_XOVT24GHXwqiEj5GCsEGCA TM_MQdRN7fpbG7rPm4JpVVAhA_530 = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_531),
((NI) 423)}
;
static NIM_CONST tySet_tyChar_nmiMWKVIe46vacnhAFrQvw TM_MQdRN7fpbG7rPm4JpVVAhA_532 = {
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_533, "wrong argument count", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_534, "call expression expected for C++ pattern", 40);
NIM_CONST tyTuple_XOVT24GHXwqiEj5GCsEGCA TM_MQdRN7fpbG7rPm4JpVVAhA_535 = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_531),
((NI) 328)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_536, "->", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_537, ");$n", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_538, "[", 1);
NIM_CONST tyTuple_XOVT24GHXwqiEj5GCsEGCA TM_MQdRN7fpbG7rPm4JpVVAhA_539 = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_531),
((NI) 472)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_540, "varargs for objective C method\?", 31);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_541, "Result: ", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_542, "];$n", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_543, "]", 1);
NIM_CONST tyTuple_XOVT24GHXwqiEj5GCsEGCA TM_MQdRN7fpbG7rPm4JpVVAhA_544 = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_281),
((NI) 955)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_545, ", \"nil\"", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_546, ", $1\? ($1)->data:\"nil\"", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_547, "<base/log.h>", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_548, "Genode::log(\"\"$1);$n", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_549, "<stdio.h>", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_550, "printf($1$2);$n", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_551, "%s", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_552, "fflush(stdout);$n", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_553, "#genericDeepCopy((void*)$1, (void*)$2, $3);$n", 45);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_554, "#genericSeqDeepCopy($1, $2, $3);$n", 34);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_555, "#genericDeepCopyOpenArray((void*)$1, (void*)$2, $1Len_0, $3);$n", 63);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_556, "genDeepCopy: ", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_557, "genMagicExpr: ", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_558, "static NIM_CONST $1 $2 = $3;$n", 30);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_559, "memset($1, 0, sizeof($1));$n", 28);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_560, "for ($1 = $3; $1 <= $4; $1++) $n$2[(NU)($1)>>3] |=(1U<<((NU)($1"
")&7U));$n", 72);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_561, "$1[(NU)($2)>>3] |=(1U<<((NU)($2)&7U));$n", 40);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_562, "for ($1 = $3; $1 <= $4; $1++) $n$2 |=((", 39);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_563, ")(1)<<(($1)%(sizeof(", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_564, "$1 |=((", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_565, ")(1)<<(($2)%(sizeof(", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_566, "genCheckedRecordField", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_567, "genObjConstr", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_568, "if ($1) #raiseFieldError(((#NimStringDesc*) &$2));$n", 52);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_569, "if (!($1)) #raiseFieldError(((#NimStringDesc*) &$2));$n", 55);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_570, "LOC$1.source", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_571, "union { $1 source; $2 dest; } LOC$3;$n", 38);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_572, "LOC$#.dest", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_573, "if ((NU)($1) > (NU)($2)) #raiseIndexError();$n", 46);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_574, "if ($1 < $2 || $1 > $3) #raiseIndexError();$n", 45);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_575, "$1[($2)- $3]", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_576, "if ((NU)($1) >= (NU)($2Len_0)) #raiseIndexError();$n", 52);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_577, "if ((NU)($1) > (NU)($2->$3)) #raiseIndexError();$n", 50);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_578, "if ((NU)($1) >= (NU)($2->$3)) #raiseIndexError();$n", 51);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_579, "genTupleElem", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_580, ".Field$1", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_581, "expr(nkBracketExpr, ", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_582, "genDeref ", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_583, "genRecordFieldAux", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_584, "genRecordField 3 ", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_585, ".$1", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_586, "} $1: ;$n", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_587, "FR_.len-=$1;$n", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_588, "FR_.len+=$1;$n", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_589, "if (!$1) goto $2;$n", 19);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_590, "goto $1;$n", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_591, "genIf()", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_592, "->Sup", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_593, "$1 = &$2;$n", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_594, "if ($1) #chckObj($2.m_type, $3);$n", 34);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_595, "#chckObj($1.m_type, $2);$n", 26);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_596, "(($1)#$5($2, $3, $4))", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_597, "chckRangeF", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_598, "chckRange64", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_599, "chckRange", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_600, "CNSTCLOSURE", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_601, "closure to closure created", 26);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_602, "$1.ClP_0 = $2; $1.ClE_0 = $3;$n", 31);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_603, "while (1) {$n", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_604, "case statement must be exhaustive for computed goto", 51);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_605, "case statement has too many cases for computed goto", 51);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_606, "case statement has to start at 0 for computed goto", 50);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_607, "no case statement found for computed goto", 41);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_608, "TMP$1_", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_609, "static void* $#[$#] = {", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_610, "&&TMP$#_, ", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_611, "&&TMP$#_};$n", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_612, "goto *$#[$#];$n", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_613, "range notation not available for computed goto", 46);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_614, "TMP$#_:$n", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_615, "#nimProfile();$n", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_616, "\'goto\' target must be a literal value", 37);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_617, "goto NIMSTATE_$#;$n", 19);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_618, "$1 = ($2*) #nimGetProcAddr($3, $4);$n", 37);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_619, "$2* $1;$n", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_620, "#dbgRegisterGlobal($1, &$2, $3);$n", 34);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_621, "#nimGCvisit((void*)$1, 0);$n", 28);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_622, "static N_NIMCALL(void, $1)(void)", 32);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_623, "#nimRegisterGlobalMarker($1);$n", 31);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_624, "$#($#);$n", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_625, "$# = $#;$n", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_626, "genVarTuple", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_627, "genConstStmt", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_628, "for statement not eliminated", 28);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_629, "if (#eqStrings($1, $2)) goto $3;$n", 34);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_630, "switch (#hashString($1) & $2) {$n", 33);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_631, "case $1: $n$2break;$n", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_632, "goto LA$1_;$n", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_633, "LA$1_: ;$n", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_634, "if ($1 >= $2 && $1 <= $3) goto $4;$n", 36);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_635, "if ($1 == $2) goto $3;$n", 24);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_636, "NIMSTATE_$#:$n", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_637, "switch ($1) {$n", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_638, "default: __assume(0);$n", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_639, "#popSafePoint();$n", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_640, "#popCurrentException();$n", 25);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_641, "if ($1.status != 0) #popCurrentException();$n", 45);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_642, "goto BeforeRet_;$n", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_643, "sym.loc.k == locOther ", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_644, "no loop to break", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_645, "extern $1", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_646, "#FieldDiscriminantCheck((NI)(NU)($1), (NI)(NU)($2), $3, $4);$n", 62);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_647, "\"", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_648, "\\n\"\015\012", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_649, "Exception", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_650, "E_Base", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_651, "try {$n", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_652, "} catch (NimException& $1) {$n", 30);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_653, "#setFrame((TFrame*)&FR_);$n", 27);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_654, "else ", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_655, "#isObj($1.exp->m_type, $2)", 26);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_656, "if ($1) ", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_657, "throw;$n", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_658, "<setjmp.h>", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_659, "#TSafePoint $1;$n", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_660, "#pushSafePoint(&$1);$n", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_661, "nimStdSetjmp", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_662, "$1.status = setjmp($1.context);$n", 33);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_663, "nimSigSetjmp", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_664, "$1.status = sigsetjmp($1.context, 0);$n", 39);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_665, "nimRawSetjmp", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_666, "$1.status = _setjmp($1.context);$n", 34);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_667, "if ($1.status == 0) {$n", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_668, "else {$n", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_669, "else", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_670, "$1.status = 0;$n", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_671, "#isObj(#getCurrentException()->Sup.m_type, $1)", 46);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_672, "#isObj(#getCurrentException()->m_type, $1)", 42);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_673, "if ($1) {$n", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_674, "if ($1.status != 0) #reraiseException();$n", 42);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_675, "#raiseException((#Exception*)$1, $2);$n", 39);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_676, "#reraiseException();$n", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_677, "/*TYPESECTION*/", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_678, "/*VARSECTION*/", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_679, "/*INCLUDESECTION*/", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_680, "bp", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_681, "#dbgRegisterBreakpoint($1, (NCSTRING)$2, (NCSTRING)$3);$n", 57);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_682, "#dbgRegisterWatchpoint($1, (NCSTRING)$2, $3);$n", 47);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_683, "#pragma omp parallel for $4$nfor ($1 = $2; $1 <= $3; ++$1)", 58);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_685, "ccgstmts.nim", 12);
NIM_CONST tyTuple_XOVT24GHXwqiEj5GCsEGCA TM_MQdRN7fpbG7rPm4JpVVAhA_684 = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_685),
((NI) 143)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_686, "STATE$1: ;$n", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_687, "case -1: goto BeforeRet_;$n", 27);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_688, "case $1: goto STATE$1;$n", 24);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_689, "if (((NI*) $1)[1] < 0) break;$n", 31);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_690, "if ((((NI*) $1.ClE_0)[1]) < 0) break;$n", 39);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_691, "); unknown node kind", 20);
NIM_CONST tyTuple_XOVT24GHXwqiEj5GCsEGCA TM_MQdRN7fpbG7rPm4JpVVAhA_692 = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_685),
((NI) 1126)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_693, "NimMainModule", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_694, "Init000", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_695, "DatInit000", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_696, "NIM_EXTERNC N_NOINLINE(void, $1)(void);$N", 41);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_697, "\011$1();$N", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_698, "N_CDECL(void, NimMainInner)(void) {$N$1}$N$NN_CDECL(void, NimMa"
"in)(void) {$N\011void (*volatile inner)(void);$N\011PreMain();$N\011inner"
" = NimMainInner;$N$2\011(*inner)();$N}$N$N", 166);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_699, "N_STDCALL(int, WinMain)(HINSTANCE hCurInstance, $N             "
"           HINSTANCE hPrevInstance, $N                        LP"
"STR lpCmdLine, int nCmdShow) {$N\011NimMain();$N\011return nim_program"
"_result;$N}$N$N", 206);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_700, "N_CDECL(void, NimMainInner)(void) {$N$1}$N$NN_LIB_EXPORT N_CDEC"
"L(void, NimMain)(void) {$N\011void (*volatile inner)(void);$N\011PreMa"
"in();$N\011inner = NimMainInner;$N$2\011(*inner)();$N}$N$N", 179);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_701, "BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fwdreason, $N    "
"                LPVOID lpvReserved) {$N\011if(fwdreason == DLL_PROC"
"ESS_ATTACH) {$N\011NimMain();$N}$N\011return 1;$N}$N$N", 175);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_702, "<windows.h>", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_703, "Libc::Env *genodeEnv;$NN_CDECL(void, NimMainInner)(void) {$N$1}"
"$N$NN_CDECL(void, NimMain)(void) {$N\011void (*volatile inner)(void"
");$N\011PreMain();$N\011inner = NimMainInner;$N$2\011(*inner)();$N}$N$N", 189);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_704, "void Libc::Component::construct(Libc::Env &env) {$N\011genodeEnv ="
" &env;$N\011Libc::with_libc([&] () {$n\011\011NimMain();$N\011});$N\011env.pare"
"nt().exit(0);$N}$N$N", 147);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_705, "void NIM_POSIX_INIT NimMainInit(void) {$N\011NimMain();$N}$N$N", 59);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_706, "int cmdCount;$Nchar** cmdLine;$Nchar** gEnv;$NN_CDECL(void, Nim"
"MainInner)(void) {$N$1}$N$NN_CDECL(void, NimMain)(void) {$N\011void"
" (*volatile inner)(void);$N\011PreMain();$N\011inner = NimMainInner;$N"
"$2\011(*inner)();$N}$N$N", 212);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_707, "int main(void) {$N\011NimMain();$N\011return 0;$N}$N$N", 48);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_708, "int main(int argc, char** args, char** env) {$N\011cmdLine = args;"
"$N\011cmdCount = argc;$N\011gEnv = env;$N\011NimMain();$N\011return nim_prog"
"ram_result;$N}$N$N", 145);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_709, "dbgRegisterBreakpoint", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_710, "dbgRegisterFilename", 19);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_711, "dbgRegisterFilename($1);$N", 26);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_712, "\011#initStackBottomWith((void *)&inner);$N", 40);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_713, "void PreMainInner(void) {$N\011systemInit000();$N$1$2$3}$N$Nvoid P"
"reMain(void) {$N\011void (*volatile inner)(void);$N\011systemDatInit00"
"0();$N\011inner = PreMainInner;$N$4$5\011(*inner)();$N}$N$N", 180);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_714, "\011#initThreadVarsEmulation();$N", 30);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_715, "still forwarded: ", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_716, "NIM_EXTERNC N_NOINLINE(void, $1)(void) {$N", 42);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_717, "static #TNimNode $1[$2];$n", 26);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_718, "static #TNimType $1[$2];$n", 26);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_719, "\011TFrame FR_; FR_.len = 0;$N", 27);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_720, "}$N$N", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_721, "N_NIMCALL(void, nimLoadProcs$1)(void) {$2}$N$N", 46);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_722, "/* Generated by Nim Compiler v$1 */$N/*   (c) 2017 Andreas Rump"
"f */$N/* The generated code is subject to the original license. "
"*/$N", 131);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_723, "0.17.2", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_724, "/* Generated by Nim Compiler v$1 */$N/*   (c) 2017 Andreas Rump"
"f */$N/* The generated code is subject to the original license. "
"*/$N/* Compiled for: $2, $3, $4 */$N/* Command for C compiler:$n"
"   $5 */$N", 201);
extern NIM_CONST tyArray_kpCg3iRCi52ls5qmpTQ6jw OS_Jx0qy9c9bSo4fGkMxUfUaAaw;
extern NIM_CONST tyArray_qZhGNNJ69c1k4POIQ9apOotg CPU_uYXopJX8pM87pQDCtmgWfQ;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_725, "#define NIM_NEW_MANGLING_RULES", 30);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_726, "#define NIM_INTBITS $1", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_727, "typedef struct {$1} NimThreadVars;$n", 36);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_728, "#include \"nimbase.h\"", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_729, "#include \"$1\"$N", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_730, "#include $1$N", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_731, "#undef LANGUAGE_C", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_732, "#undef MIPSEB", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_733, "#undef MIPSEL", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_734, "#undef PPC", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_735, "#undef R3000", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_736, "#undef R4000", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_737, "#undef i386", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_738, "#undef linux", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_739, "#undef mips", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_740, "#undef near", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_741, "#undef powerpc", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_742, "#undef unix", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_743, "$#NI NimThreadVarsSize(){return (NI)sizeof(NimThreadVars);}$n", 61);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_744, "nimdiff", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_745, ".backup", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_746, "diff ", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_747, ".backup ", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_748, "new file ", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_749, "__$1__", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_750, "#ifndef $1$n#define $1$n", 24);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_751, "N_CDECL(void, NimMain)(void);$n", 31);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_752, "#endif /* $1 */$n", 17);
static N_NIMCALL(void, TM_MQdRN7fpbG7rPm4JpVVAhA_2)(void) {
	nimGCvisit((void*)indent_yZhag4Leo9bR7kvKArHuXQg, 0);
}

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

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

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

static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
	tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c;
	c = usrToCell_yB9aH5WIlwd0xkYrcdPeXrQsystem(p);
	{
		(*c).refcount -= ((NI) 8);
		if (!((NU64)((*c).refcount) < (NU64)(((NI) 8)))) goto LA3_;
		rtlAddZCT_MV4BBk6J1qu70IbBxwEn4w_2system(c);
	}
	LA3_: ;
}
static N_NIMCALL(void, TM_MQdRN7fpbG7rPm4JpVVAhA_6)(void) {
	NI T1_;
	nimGCvisit((void*)nimtvDeclared_HYTho28us1uxqfncBt58kg.head, 0);
	nimGCvisit((void*)nimtvDeclared_HYTho28us1uxqfncBt58kg.data, 0);
	T1_ = (NI)0;
}

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

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

static N_INLINE(void, asgnRef)(void** dest, void* src) {
	{
		tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* T5_;
		if (!!((src == NIM_NIL))) goto LA3_;
		T5_ = (tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T5_ = usrToCell_yB9aH5WIlwd0xkYrcdPeXrQsystem(src);
		incRef_9cAA5YuQAAC3MVbnGeV86swsystem(T5_);
	}
	LA3_: ;
	{
		tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* T10_;
		if (!!(((*dest) == NIM_NIL))) goto LA8_;
		T10_ = (tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T10_ = usrToCell_yB9aH5WIlwd0xkYrcdPeXrQsystem((*dest));
		decRef_MV4BBk6J1qu70IbBxwEn4wsystem(T10_);
	}
	LA8_: ;
	(*dest) = src;
}

static N_INLINE(void, copyMem_E1xtACub5WcDa3vbrIXbwgsystem)(void* dest, void* source, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memcpy(dest, source, ((size_t) (size)));
}

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

N_NIMCALL(tySet_tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg, initProcOptions_EYn9bXONq9aP52vwfOhfbTDQ)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m) {
	tySet_tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg result;
	memset((void*)(&result), 0, sizeof(result));
	{
		if (!(((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 13))&63U)))!=0)) goto LA3_;
		result = (gOptions_KL5B8sF4szIsM2AXCWFsIw & ~ 32768);
	}
	goto LA1_;
	LA3_: ;
	{
		result = gOptions_KL5B8sF4szIsM2AXCWFsIw;
	}
	LA1_: ;
	return result;
}

N_NIMCALL(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q*, newPreInitProc_bF6eQvkcCq9ahIfQ70Cj0MQ)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m) {
	tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* result;
	result = (tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q*)0;
	result = newProc_Mqi1a0mHlQ8XakVweFEAvQ(NIM_NIL, m);
	(*result).labels = ((NI) 100000);
	return result;
}

N_NIMCALL(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q*, newPostInitProc_bF6eQvkcCq9ahIfQ70Cj0MQ_2)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m) {
	tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* result;
	result = (tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q*)0;
	result = newProc_Mqi1a0mHlQ8XakVweFEAvQ(NIM_NIL, m);
	(*result).labels = ((NI) 200000);
	return result;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getTempName_54CrPIOFKsrtQd59cl9bHH3A)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T1_;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T1_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T1_ = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) ((*m).labels)));
	result = amp__FyliSLNPyN7IibfEAQfpRA((*m).tmpBase, T1_);
	(*m).labels += ((NI) 1);
	return result;
}

N_NIMCALL(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA*, rawNewModule_RDDmzhNqH4L9cy8lvQtnMnw)(tyObject_BModuleListcolonObjectType__t8u9aWK9cwyNCAxgxkYKh9bLQ* g, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* module, NimStringDesc* filename) {
	tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* result;
	NimStringDesc* T1_;
	tyArray_qtqsWM5aXmcpMIVmvq3kAA T2_;
	NimStringDesc* T3_;
	NimStringDesc* T4_;
	NimStringDesc* T5_;
	NimStringDesc* ndiName;
	result = (tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA*)0;
	result = (tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA*) newObj((&NTI_DYuN5nmroce1mp9cZojr9c7Q_), sizeof(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA));
	(*result).Sup.Sup.m_type = (&NTI_8lcmapGBf0sypwIDzZhZwA_);
	T1_ = (NimStringDesc*)0;
	memset((void*)T2_, 0, sizeof(T2_));
	hashOwner_NjJGUHVEg1oG10FIZSXO9cQ(module, T2_);
	T3_ = (NimStringDesc*)0;
	T3_ = dollar__cjda4doS9ccFOjsWsGu9aa2A(T2_);
	T1_ = rawNewString(T3_->Sup.len + 3);
appendString(T1_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_7));
appendString(T1_, T3_);
appendString(T1_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_8));
	asgnRefNoCycle((void**) (&(*result).tmpBase), rope_53CHEX05HP0HacydnwoUYg(T1_));
	if ((*result).headerFiles) { nimGCunrefNoCycle((*result).headerFiles); (*result).headerFiles = NIM_NIL; }
	(*result).headerFiles = (tySequence_sM4lkSb7zS6F7OVMvW9cffQ*) newSeqRC1((&NTI_sM4lkSb7zS6F7OVMvW9cffQ_), 0);
	chckNil((void*)(&(*result).declaredThings));
	genericReset((void*)(&(*result).declaredThings), (&NTI_PQrmFm4BXFkFSVOUl1ojSg_));
	initIntSet_a9a80eJplB17xrdZJ41Baww((&(*result).declaredThings));
	chckNil((void*)(&(*result).declaredProtos));
	genericReset((void*)(&(*result).declaredProtos), (&NTI_PQrmFm4BXFkFSVOUl1ojSg_));
	initIntSet_a9a80eJplB17xrdZJ41Baww((&(*result).declaredProtos));
	T4_ = (NimStringDesc*)0;
	T4_ = (*result).cfilename; (*result).cfilename = copyStringRC1(filename);
	if (T4_) nimGCunrefNoCycle(T4_);
	T5_ = (NimStringDesc*)0;
	T5_ = (*result).filename; (*result).filename = copyStringRC1(filename);
	if (T5_) nimGCunrefNoCycle(T5_);
	chckNil((void*)(&(*result).typeCache));
	genericReset((void*)(&(*result).typeCache), (&NTI_CLLTIkQVzDOo9avEeZWukOg_));
	initTable_CYqX9c8IMjTwMZARcN9bfPAQ(((NI) 64), (&(*result).typeCache));
	chckNil((void*)(&(*result).forwTypeCache));
	genericReset((void*)(&(*result).forwTypeCache), (&NTI_CLLTIkQVzDOo9avEeZWukOg_));
	initTable_CYqX9c8IMjTwMZARcN9bfPAQ(((NI) 64), (&(*result).forwTypeCache));
	asgnRefNoCycle((void**) (&(*result).module), module);
	chckNil((void*)(&(*result).typeInfoMarker));
	genericReset((void*)(&(*result).typeInfoMarker), (&NTI_CLLTIkQVzDOo9avEeZWukOg_));
	initTable_CYqX9c8IMjTwMZARcN9bfPAQ(((NI) 64), (&(*result).typeInfoMarker));
	chckNil((void*)(&(*result).sigConflicts));
	genericReset((void*)(&(*result).sigConflicts), (&NTI_pdLM8FWiNHAzIuaDPD0Leg_));
	initCountTable_4O7TExpEDvPAeVZ7AqX3iw(((NI) 64), (&(*result).sigConflicts));
	asgnRef((void**) (&(*result).initProc), newProc_Mqi1a0mHlQ8XakVweFEAvQ(NIM_NIL, result));
	(*(*result).initProc).options = initProcOptions_EYn9bXONq9aP52vwfOhfbTDQ(result);
	asgnRef((void**) (&(*result).preInitProc), newPreInitProc_bF6eQvkcCq9ahIfQ70Cj0MQ(result));
	asgnRef((void**) (&(*result).postInitProc), newPostInitProc_bF6eQvkcCq9ahIfQ70Cj0MQ_2(result));
	initNodeTable_68xlHiM6I8zJts5pWolVFA((&(*result).dataCache));
	if ((*result).typeStack) { nimGCunrefNoCycle((*result).typeStack); (*result).typeStack = NIM_NIL; }
	(*result).typeStack = (tySequence_zuqP4Riz26Oi5fWgPYVEgA*) newSeqRC1((&NTI_zuqP4Riz26Oi5fWgPYVEgA_), 0);
	if ((*result).forwardedProcs) { nimGCunrefNoCycle((*result).forwardedProcs); (*result).forwardedProcs = NIM_NIL; }
	(*result).forwardedProcs = (tySequence_sksVpmPRIkNR9axiwtD1Guw*) newSeqRC1((&NTI_sksVpmPRIkNR9axiwtD1Guw_), 0);
	asgnRefNoCycle((void**) (&(*result).typeNodesName), getTempName_54CrPIOFKsrtQd59cl9bHH3A(result));
	asgnRefNoCycle((void**) (&(*result).nimTypesName), getTempName_54CrPIOFKsrtQd59cl9bHH3A(result));
	asgnRef((void**) (&(*result).g), g);
	{
		if (!(((*module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 13))&63U)))!=0)) goto LA8_;
		(*result).flags |= ((NU8)1)<<((((tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q) 0))%(sizeof(NU8)*8));
		(*(*result).preInitProc).options &= ~(((NU32)1) << ((((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 15)) % (sizeof(NU32)*8)));
		(*(*result).postInitProc).options &= ~(((NU32)1) << ((((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 15)) % (sizeof(NU32)*8)));
	}
	LA8_: ;
	{
		NimStringDesc* T14_;
		if (!((gGlobalOptions_j042VVDC9cT5ENYoXnmhhVg &(1U<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 6))&31U)))!=0)) goto LA12_;
		T14_ = (NimStringDesc*)0;
		T14_ = completeCFilePath_XziFVTv1mJIlNEw2aMU1Ig(filename, NIM_TRUE);
		ndiName = noschangeFileExt(T14_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	}
	goto LA10_;
	LA12_: ;
	{
		ndiName = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_10));
	}
	LA10_: ;
	open_2anm3CRiB23rDhf0nK6NqQ((&(*result).ndi), ndiName);
	return result;
}

N_NIMCALL(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA*, rawNewModule_qQ4hv9beTuAFp9bxECPBwJpA_2)(tyObject_BModuleListcolonObjectType__t8u9aWK9cwyNCAxgxkYKh9bLQ* g, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* module) {
	tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* result;
	NimStringDesc* T1_;
	result = (tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA*)0;
	T1_ = (NimStringDesc*)0;
	T1_ = toFullPath_7s19cb7WBgztz9aqEBzwwuqA(((NI32) ((*module).position)));
	result = rawNewModule_RDDmzhNqH4L9cy8lvQtnMnw(g, module, T1_);
	return result;
}

N_NIMCALL(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA*, newModule_qQ4hv9beTuAFp9bxECPBwJpA)(tyObject_BModuleListcolonObjectType__t8u9aWK9cwyNCAxgxkYKh9bLQ* g, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* module) {
	tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* result;
	result = (tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA*)0;
	result = rawNewModule_qQ4hv9beTuAFp9bxECPBwJpA_2(g, module);
	{
		NI T3_;
		T3_ = ((*g).modules ? (*g).modules->Sup.len : 0);
		if (!(T3_ <= (*module).position)) goto LA4_;
		(*g).modules = (tySequence_M9cUg1RvLFDo4xAxcKuVqMg*) setLengthSeq(&((*g).modules)->Sup, sizeof(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA*), ((NI) ((NI)((*module).position + ((NI) 1)))));
	}
	LA4_: ;
	asgnRef((void**) (&(*g).modules->data[(*module).position]), result);
	{
		if (!((gGlobalOptions_j042VVDC9cT5ENYoXnmhhVg &(1U<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 2))&31U)))!=0)) goto LA8_;
		{
			NimStringDesc* T14_;
			NimStringDesc* T15_;
			if (!(((*module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 26))&63U)))!=0)) goto LA12_;
			T14_ = (NimStringDesc*)0;
			T15_ = (NimStringDesc*)0;
			{
				if (!(((NI32) ((*module).position)) < ((NI32) 0))) goto LA18_;
				T15_ = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_12));
			}
			goto LA16_;
			LA18_: ;
			{
				T15_ = copyString(fileInfos_0nMtuXd9csTLLtuDok8ckXw->data[((NI32) ((*module).position))].projPath);
			}
			LA16_: ;
			T14_ = rawNewString(T15_->Sup.len + 28);
appendString(T14_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_11));
appendString(T14_, T15_);
			internalError_5XY9cUy7hZmUusM38U9cYYdw(T14_);
		}
		LA12_: ;
	}
	LA8_: ;
	return result;
}

N_NIMCALL(tyObject_TPassContext_qNsm39cWb35W2r5AAd9ch87g*, myOpen_PhPayqNNCR49aLQM6rX9cfwg)(tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* module, tyObject_IdentCachecolonObjectType__TzLHS09bRH9a0TYLs39cqcNaw* cache) {
	tyObject_TPassContext_qNsm39cWb35W2r5AAd9ch87g* result;
	tyObject_BModuleListcolonObjectType__t8u9aWK9cwyNCAxgxkYKh9bLQ* g;
	tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* T6_;
	result = (tyObject_TPassContext_qNsm39cWb35W2r5AAd9ch87g*)0;
	{
		tyObject_BModuleListcolonObjectType__t8u9aWK9cwyNCAxgxkYKh9bLQ* T5_;
		if (!((*graph).backend == NIM_NIL)) goto LA3_;
		T5_ = (tyObject_BModuleListcolonObjectType__t8u9aWK9cwyNCAxgxkYKh9bLQ*)0;
		T5_ = newModuleList_yC9bWdJFx3wRFSnQfu7fc5A((*graph).config);
		asgnRef((void**) (&(*graph).backend), &T5_->Sup);
	}
	LA3_: ;
	g = ((tyObject_BModuleListcolonObjectType__t8u9aWK9cwyNCAxgxkYKh9bLQ*) ((*graph).backend));
	T6_ = (tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA*)0;
	T6_ = newModule_qQ4hv9beTuAFp9bxECPBwJpA(g, module);
	result = &T6_->Sup;
	{
		NIM_BOOL T9_;
		NimStringDesc* f;
		NimStringDesc* T18_;
		NimStringDesc* T19_;
		T9_ = (NIM_BOOL)0;
		T9_ = ((gGlobalOptions_j042VVDC9cT5ENYoXnmhhVg &(1U<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 26))&31U)))!=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 = gProjectFull_V1rcVHDANDR4ly2ul00asg;
		}
		LA13_: ;
		T18_ = (NimStringDesc*)0;
		T18_ = completeCFilePath_XziFVTv1mJIlNEw2aMU1Ig(f, NIM_TRUE);
		T19_ = (NimStringDesc*)0;
		T19_ = noschangeFileExt(T18_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_13));
		asgnRef((void**) (&(*g).generatedHeader), rawNewModule_RDDmzhNqH4L9cy8lvQtnMnw(g, module, T19_));
		(*(*g).generatedHeader).flags |= ((NU8)1)<<((((tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q) 3))%(sizeof(NU8)*8));
	}
	LA11_: ;
	return result;
}

N_NIMCALL(NimStringDesc*, getCFile_HGL9bKxvY1ZMx9barwV7E9cDg)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m) {
	NimStringDesc* result;
	NimStringDesc* ext;
	NimStringDesc* T13_;
	NimStringDesc* T14_;
	result = (NimStringDesc*)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T3_) goto LA4_;
		T3_ = (((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		ext = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_14));
	}
	goto LA1_;
	LA5_: ;
	{
		NIM_BOOL T8_;
		T8_ = (NIM_BOOL)0;
		T8_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 3));
		if (T8_) goto LA9_;
		T8_ = (((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 29))&63U)))!=0);
		LA9_: ;
		if (!T8_) goto LA10_;
		ext = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_15));
	}
	goto LA1_;
	LA10_: ;
	{
		ext = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_16));
	}
	LA1_: ;
	T13_ = (NimStringDesc*)0;
	T13_ = withPackageName_hXI3LWBWedZbdPyAYn0KOQ_2((*m).cfilename);
	T14_ = (NimStringDesc*)0;
	T14_ = completeCFilePath_XziFVTv1mJIlNEw2aMU1Ig(T13_, NIM_TRUE);
	result = noschangeFileExt(T14_, ext);
	return result;
}

N_NIMCALL(tyObject_TPassContext_qNsm39cWb35W2r5AAd9ch87g*, myOpenCached_xEigLct5K9bPGsk5vpca4AQ)(tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* module, tyObject_TRodReader_16TURXdqtpMMssNVfU5WqQ* rd) {
	tyObject_TPassContext_qNsm39cWb35W2r5AAd9ch87g* result;
	tyObject_BModuleListcolonObjectType__t8u9aWK9cwyNCAxgxkYKh9bLQ* g;
	tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m;
	NimStringDesc* T6_;
	result = (tyObject_TPassContext_qNsm39cWb35W2r5AAd9ch87g*)0;
	{
		tyObject_BModuleListcolonObjectType__t8u9aWK9cwyNCAxgxkYKh9bLQ* T5_;
		if (!((*graph).backend == NIM_NIL)) goto LA3_;
		T5_ = (tyObject_BModuleListcolonObjectType__t8u9aWK9cwyNCAxgxkYKh9bLQ*)0;
		T5_ = newModuleList_yC9bWdJFx3wRFSnQfu7fc5A((*graph).config);
		asgnRef((void**) (&(*graph).backend), &T5_->Sup);
	}
	LA3_: ;
	g = ((tyObject_BModuleListcolonObjectType__t8u9aWK9cwyNCAxgxkYKh9bLQ*) ((*graph).backend));
	m = newModule_qQ4hv9beTuAFp9bxECPBwJpA(g, module);
	T6_ = (NimStringDesc*)0;
	T6_ = getCFile_HGL9bKxvY1ZMx9barwV7E9cDg(m);
	readMergeInfo_klaWcZvKFqt7gKWMCpzPOQ(T6_, m);
	result = &m->Sup;
	return result;
}

static N_INLINE(NIM_BOOL, skipCodegen_JOewUiDW9bIteW9aaAqXy7cgcgen)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = (((NI) 0) < gErrorCounter_BdMIKofstJQD5Y2GBaRdzQ);
	return result;
}

N_NIMCALL(void, fillLoc_FYZoK6R9akILOlR1JSuEh3g)(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a, tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg k, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* r, tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw s) {
	{
		if (!((*a).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA3_;
		(*a).k = k;
		unsureAsgnRef((void**) (&(*a).t), typ);
		(*a).s = s;
		{
			if (!((*a).r == NIM_NIL)) goto LA7_;
			unsureAsgnRef((void**) (&(*a).r), r);
		}
		LA7_: ;
	}
	LA3_: ;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, idOrSig_qNuXhnV9aHm5hP7aXP809asQ_2)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* s) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	{
		NIM_BOOL T3_;
		tyArray_qtqsWM5aXmcpMIVmvq3kAA sig;
		NimStringDesc* T7_;
		NI counter;
		T3_ = (NIM_BOOL)0;
		T3_ = ((258048 &(1U<<((NU)((*s).kind)&31U)))!=0);
		if (!(T3_)) goto LA4_;
		T3_ = !(((*s).typ == NIM_NIL));
		LA4_: ;
		if (!T3_) goto LA5_;
		memset((void*)sig, 0, sizeof(sig));
		chckNil((void*)sig);
		memset((void*)sig, 0, sizeof(sig));
		hashProc_HmyzvfD4nXMkZxnFGqPQ5w(s, sig);
		T7_ = (NimStringDesc*)0;
		T7_ = dollar__cjda4doS9ccFOjsWsGu9aa2A(sig);
		result = rope_53CHEX05HP0HacydnwoUYg(T7_);
		counter = getOrDefault_fHoC4OUEY7w3FcQM6bDNBw((*m).sigConflicts, sig);
		{
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T12_;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T13_;
			if (!!((counter == ((NI) 0)))) goto LA10_;
			T12_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T12_ = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) ((NI)(counter + ((NI) 1)))));
			T13_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T13_ = amp__OL8oYU3myMrLfqhcdP9b3Ig(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_8), T12_);
			add_cDalAhgBlDWoYHadkaqqxw(&result, T13_);
		}
		LA10_: ;
		{
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T18_;
			if (!((*(*s).typ).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 5))) goto LA16_;
			T18_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T18_ = rope_53CHEX05HP0HacydnwoUYg((*(*(*m).module).name).s);
			add_cDalAhgBlDWoYHadkaqqxw(&result, T18_);
		}
		LA16_: ;
		inc_66kyILCtes8ek1bqwePAkw((&(*m).sigConflicts), sig, ((NI) 1));
	}
	goto LA1_;
	LA5_: ;
	{
		tyArray_qtqsWM5aXmcpMIVmvq3kAA sig_2;
		NimStringDesc* T20_;
		NI counter_2;
		memset((void*)sig_2, 0, sizeof(sig_2));
		chckNil((void*)sig_2);
		memset((void*)sig_2, 0, sizeof(sig_2));
		hashNonProc_NjJGUHVEg1oG10FIZSXO9cQ_2(s, sig_2);
		T20_ = (NimStringDesc*)0;
		T20_ = dollar__cjda4doS9ccFOjsWsGu9aa2A(sig_2);
		result = rope_53CHEX05HP0HacydnwoUYg(T20_);
		counter_2 = getOrDefault_fHoC4OUEY7w3FcQM6bDNBw((*m).sigConflicts, sig_2);
		{
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T25_;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T26_;
			if (!!((counter_2 == ((NI) 0)))) goto LA23_;
			T25_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T25_ = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) ((NI)(counter_2 + ((NI) 1)))));
			T26_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T26_ = amp__OL8oYU3myMrLfqhcdP9b3Ig(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_8), T25_);
			add_cDalAhgBlDWoYHadkaqqxw(&result, T26_);
		}
		LA23_: ;
		inc_66kyILCtes8ek1bqwePAkw((&(*m).sigConflicts), sig_2, ((NI) 1));
	}
	LA1_: ;
	return result;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, mangleName_qNuXhnV9aHm5hP7aXP809asQ)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* s) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	result = (*s).loc.r;
	{
		NimStringDesc* T5_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T6_;
		if (!(result == NIM_NIL)) goto LA3_;
		T5_ = (NimStringDesc*)0;
		T5_ = mangle_0ctHksTXSPyaxjBOgK4TiA((*(*s).name).s);
		result = rope_53CHEX05HP0HacydnwoUYg(T5_);
		T6_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T6_ = idOrSig_qNuXhnV9aHm5hP7aXP809asQ_2(m, s);
		add_cDalAhgBlDWoYHadkaqqxw(&result, T6_);
		asgnRefNoCycle((void**) (&(*s).loc.r), result);
		{
			if (!(*m).ndi.enabled) goto LA9_;
			doWrite_usDiNMDhSohTaN2WVO09ccA((&(*m).ndi), s);
		}
		LA9_: ;
	}
	LA3_: ;
	return result;
}

N_NIMCALL(void, fillProcLoc_5LEMfE09buQIXg39bLkcpjww)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* sym) {
	{
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T5_;
		if (!((*sym).loc.k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA3_;
		T5_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T5_ = mangleName_qNuXhnV9aHm5hP7aXP809asQ(m, sym);
		fillLoc_FYZoK6R9akILOlR1JSuEh3g((&(*sym).loc), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 7), (*sym).typ, T5_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 2));
	}
	LA3_: ;
}

N_NIMCALL(void, useHeader_5LEMfE09buQIXg39bLkcpjww_3)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* sym) {
	{
		NimStringDesc* str;
		if (!(((*sym).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 6))&15U)))!=0)) goto LA3_;
		str = getStr_P2DOsHG6Jk4Siab3L2qwUg((*(*sym).annex).path);
		includeHeader_PtTSTz0wtuSjGW8vGXThOQ(m, str);
	}
	LA3_: ;
}

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

N_NIMCALL(NIM_BOOL, isActivated_zcPabWTjs2kwBM9a2zZPefQ)(tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* prc) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = !(((*prc).typ == NIM_NIL));
	return result;
}

N_NIMCALL(void, addForwardedProc_vOtNj6VarIkkiG5Xzl9bUiQ)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* prc) {
	NI T1_;
	(*m).forwardedProcs = (tySequence_sksVpmPRIkNR9axiwtD1Guw*) incrSeqV2(&((*m).forwardedProcs)->Sup, sizeof(tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw*));
	T1_ = (*m).forwardedProcs->Sup.len++;
	asgnRefNoCycle((void**) (&(*m).forwardedProcs->data[T1_]), prc);
	(*(*m).g).forwardedProcsCounter += ((NI) 1);
}

N_NIMCALL(void, genCLineDir_g9aeEZ9btQ1Z4iM1T3sMnHDA)(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** r, NimStringDesc* filename, NI line) {
	{
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T5_;
		NimStringDesc* T6_;
		if (!((gOptions_KL5B8sF4szIsM2AXCWFsIw &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 10))&31U)))!=0)) goto LA3_;
		memset((void*)T5_, 0, sizeof(T5_));
		T6_ = (NimStringDesc*)0;
		T6_ = makeSingleLineCString_59a1Z83zpqnyWoTdIAQEfHQ(filename);
		T5_[0] = rope_53CHEX05HP0HacydnwoUYg(T6_);
		T5_[1] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (line)));
		addf_8UUGW4xtgpag0J4uEnVLuQ(r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_19), T5_, 2);
	}
	LA3_: ;
}

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

N_NIMCALL(NI, safeLineNm_l6BPjYNEmUa9aNfpAFDVtOQ)(tyObject_TLineInfo_T9c3PM9bs7WZ4LIQfEici9cZw info) {
	NI result;
	result = (NI)0;
	result = toLinenumber_Vr9aXuUyvBQDK4X2879cHuGgsigmatch(info);
	{
		if (!(result < ((NI) 0))) goto LA3_;
		result = ((NI) 0);
	}
	LA3_: ;
	return result;
}

N_NIMCALL(void, genCLineDir_r0Cs29adVXBO59aWyfKk0YAQ)(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** r, tyObject_TLineInfo_T9c3PM9bs7WZ4LIQfEici9cZw info) {
	NimStringDesc* T1_;
	NI T2_;
	T1_ = (NimStringDesc*)0;
	T1_ = toFullPath_7s19cb7WBgztz9aqEBzwwuqA(info.fileIndex);
	T2_ = (NI)0;
	T2_ = safeLineNm_l6BPjYNEmUa9aNfpAFDVtOQ(info);
	genCLineDir_g9aeEZ9btQ1Z4iM1T3sMnHDA(r, T1_, T2_);
}

N_NIMCALL(tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w, mapSetType_xD9bGC83PAN0OvetVlj1cZQ_2)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ) {
	tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w result;
	NI64 T1_;
	result = (tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w)0;
	T1_ = (NI64)0;
	T1_ = getSize_spMpEAO8ubfQavMigOxQdA(typ);
	switch (((NI) (T1_))) {
	case ((NI) 1):
	{
		result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 4);
	}
	break;
	case ((NI) 2):
	{
		result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 5);
	}
	break;
	case ((NI) 4):
	{
		result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 6);
	}
	break;
	case ((NI) 8):
	{
		result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 7);
	}
	break;
	default:
	{
		result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 17);
	}
	break;
	}
	return result;
}

N_NIMCALL(tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w, mapType_xD9bGC83PAN0OvetVlj1cZQ)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ) {
	tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w result;
{	result = (tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w)0;
	switch ((*typ).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 0):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 7):
	{
		result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 0);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 1):
	{
		result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 2);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2):
	{
		result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 1);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 19):
	{
		result = mapSetType_xD9bGC83PAN0OvetVlj1cZQ_2(typ);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48):
	{
		result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 17);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 19);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 52):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 53):
	{
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T13_;
		{
			NimStringDesc* T12_;
			if (!!((((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 10))&63U)))!=0))) goto LA10_;
			T12_ = (NimStringDesc*)0;
			T12_ = dollar__k53Ge4e9cDjc7y9c5uML7sPQ(TM_MQdRN7fpbG7rPm4JpVVAhA_23);
			internalError_5XY9cUy7hZmUusM38U9cYYdw(T12_);
		}
		LA10_: ;
		T13_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
		T13_ = lastSon_E41DMKHtT9c6sAMyyvhmSIw(typ);
		result = mapType_xD9bGC83PAN0OvetVlj1cZQ(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) 55):
	{
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T15_;
		T15_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
		T15_ = lastSon_E41DMKHtT9c6sAMyyvhmSIw(typ);
		result = mapType_xD9bGC83PAN0OvetVlj1cZQ(T15_);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 14):
	{
		{
			NI64 T19_;
			T19_ = (NI64)0;
			T19_ = firstOrd_HUiBYxvKiECXCv8BzQNheg(typ);
			if (!(T19_ < IL64(0))) goto LA20_;
			result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 6);
		}
		goto LA17_;
		LA20_: ;
		{
			NI64 T23_;
			T23_ = (NI64)0;
			T23_ = getSize_spMpEAO8ubfQavMigOxQdA(typ);
			switch (((NI) (T23_))) {
			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:
			{
				internalError_5XY9cUy7hZmUusM38U9cYYdw(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_25));
			}
			break;
			}
		}
		LA17_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 20):
	{
		result = mapType_xD9bGC83PAN0OvetVlj1cZQ((*typ).sons->data[((NI) 0)]);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22):
	{
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* base;
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T31_;
		T31_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
		T31_ = lastSon_E41DMKHtT9c6sAMyyvhmSIw(typ);
		base = skipTypes_pLCdCGDuirMe9cspwviV9aVA(T31_, IL64(36028797019007248));
		switch ((*base).kind) {
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48):
		{
			result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 18);
		}
		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 LA39_;
			result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 23);
		}
		goto LA37_;
		LA39_: ;
		{
			result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 19);
		}
		LA37_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
	{
		result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 21);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 29):
	{
		result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 24);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44):
	{
		result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) ((NI)(((NI) ((NI)(((NI) ((*typ).kind)) - ((NI) 31)))) + ((NI) 3))));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 60):
	{
		{
			tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T50_;
			if (!!(((*typ).n == NIM_NIL))) goto LA48_;
			T50_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
			T50_ = lastSon_E41DMKHtT9c6sAMyyvhmSIw(typ);
			result = mapType_xD9bGC83PAN0OvetVlj1cZQ(T50_);
		}
		goto LA46_;
		LA48_: ;
		{
			internalError_5XY9cUy7hZmUusM38U9cYYdw(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_25));
		}
		LA46_: ;
	}
	break;
	default:
	{
		internalError_5XY9cUy7hZmUusM38U9cYYdw(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_25));
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}

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

N_NIMCALL(NIM_BOOL, needsComplexAssignment_3SzYNACzyWFJESqPlmwhsg)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = containsGarbageCollectedRef_3xW85al2Ic6K09avBGxLjZg(typ);
	return result;
}

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

N_NIMCALL(NIM_BOOL, isInvalidReturnType_FW3ctu15AiQkw2TcerUtOw)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* 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_xD9bGC83PAN0OvetVlj1cZQ(rettype);
		switch (T6_) {
		case ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 17):
		{
			tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T8_;
			T8_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
			T8_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA(rettype, IL64(36028797019007248));
			result = !(((14680064 &((NU64)1<<((NU)((*T8_).kind)&63U)))!=0));
		}
		break;
		case ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 19):
		{
			tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t;
			NIM_BOOL T16_;
			NIM_BOOL T18_;
			NIM_BOOL T20_;
			t = skipTypes_pLCdCGDuirMe9cspwviV9aVA(rettype, IL64(36028797019007248));
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = isImportedCppType_B4nHhP3INN4MtYAgHK3Lrw(rettype);
				if (T12_) goto LA13_;
				T12_ = isImportedCppType_B4nHhP3INN4MtYAgHK3Lrw(t);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = NIM_FALSE;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = (NIM_BOOL)0;
			T16_ = needsComplexAssignment_3SzYNACzyWFJESqPlmwhsg(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_Ejb3pIY519bW1IHfWPGBwwgcgen(t);
			T18_ = !(T20_);
			LA19_: ;
			T16_ = T18_;
			LA17_: ;
			result = T16_;
		}
		break;
		default:
		{
			result = NIM_FALSE;
		}
		break;
		}
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}

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

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

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, cacheGetType_9bwDnyQb9br3ZKlRXcmiGaAg)(tyObject_Table_CLLTIkQVzDOo9avEeZWukOg tab, tyArray_qtqsWM5aXmcpMIVmvq3kAA sig) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	result = getOrDefault_WfeTRSU2SXosd0KyLRsNqA(tab, sig);
	return result;
}

N_NIMCALL(void, addAbiCheck_sg1gK0Sh0Aid0p9cfvh580w)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* name) {
	{
		NIM_BOOL T3_;
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T6_;
		NI64 T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = isDefined_BNPf2mtM9a7JF7UKiCAngvg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_50));
		if (!T3_) goto LA4_;
		memset((void*)T6_, 0, sizeof(T6_));
		T6_[0] = name;
		T7_ = (NI64)0;
		T7_ = getSize_spMpEAO8ubfQavMigOxQdA(t);
		T6_[1] = rope_pEztpD6TFe5jk3aCrOSACA(T7_);
		addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 6))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_51), T6_, 2);
	}
	LA4_: ;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getSimpleTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	switch ((*typ).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 26):
	{
		result = typeNameOrLiteral_1w5DwXx2c9cNRqOM1jbOb3Q(m, typ, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_28));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
	{
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T3_;
		T3_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T3_ = cgsym_LDQwSdTgGBvWUKfBZpHXDw(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29));
		T3_;
		result = typeNameOrLiteral_1w5DwXx2c9cNRqOM1jbOb3Q(m, typ, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_30));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 29):
	{
		result = typeNameOrLiteral_1w5DwXx2c9cNRqOM1jbOb3Q(m, typ, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_31));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 1):
	{
		result = typeNameOrLiteral_1w5DwXx2c9cNRqOM1jbOb3Q(m, typ, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_32));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2):
	{
		result = typeNameOrLiteral_1w5DwXx2c9cNRqOM1jbOb3Q(m, typ, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_33));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 5):
	{
		result = typeNameOrLiteral_1w5DwXx2c9cNRqOM1jbOb3Q(m, typ, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_34));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44):
	{
		result = typeNameOrLiteral_1w5DwXx2c9cNRqOM1jbOb3Q(m, typ, NumericalTypeToStr_do7KqFuyalEFiD7s8tBisg[((*typ).kind)- 31]);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 13):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 20):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 15):
	{
		result = getSimpleTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ(m, (*typ).sons->data[((NI) 0)]);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 60):
	{
		{
			tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T15_;
			if (!!(((*typ).n == NIM_NIL))) goto LA13_;
			T15_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
			T15_ = lastSon_E41DMKHtT9c6sAMyyvhmSIw(typ);
			result = getSimpleTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ(m, T15_);
		}
		goto LA11_;
		LA13_: ;
		{
			internalError_5XY9cUy7hZmUusM38U9cYYdw(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_49));
		}
		LA11_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 11):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 4):
	{
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T18_;
		T18_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
		T18_ = lastSon_E41DMKHtT9c6sAMyyvhmSIw(typ);
		result = getSimpleTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ(m, T18_);
	}
	break;
	default:
	{
		result = NIM_NIL;
	}
	break;
	}
	{
		NIM_BOOL T22_;
		tyArray_qtqsWM5aXmcpMIVmvq3kAA sig;
		T22_ = (NIM_BOOL)0;
		T22_ = !((result == NIM_NIL));
		if (!(T22_)) goto LA23_;
		T22_ = isImportedType_B4nHhP3INN4MtYAgHK3Lrw_2(typ);
		LA23_: ;
		if (!T22_) goto LA24_;
		memset((void*)sig, 0, sizeof(sig));
		chckNil((void*)sig);
		memset((void*)sig, 0, sizeof(sig));
		hashType_Cq9bE7w5AuevkqC3yjwXHng(typ, 2, sig);
		{
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T28_;
			T28_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T28_ = cacheGetType_9bwDnyQb9br3ZKlRXcmiGaAg((*m).typeCache, sig);
			if (!(T28_ == NIM_NIL)) goto LA29_;
			X5BX5Deq__BB9cml2YF9cRQvdtWa9aceAyw((&(*m).typeCache), sig, result);
			addAbiCheck_sg1gK0Sh0Aid0p9cfvh580w(m, typ, result);
		}
		LA29_: ;
	}
	LA24_: ;
	return result;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getTypePre_9bhJs9b9btyu2lwCQxVmPMP2Q)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ, tyArray_qtqsWM5aXmcpMIVmvq3kAA sig) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	{
		if (!(typ == NIM_NIL)) goto LA3_;
		result = rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_26));
	}
	goto LA1_;
	LA3_: ;
	{
		result = getSimpleTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ(m, typ);
		{
			if (!(result == NIM_NIL)) goto LA8_;
			result = cacheGetType_9bwDnyQb9br3ZKlRXcmiGaAg((*m).typeCache, sig);
		}
		LA8_: ;
	}
	LA1_: ;
	return result;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, typeName_Lv9bCnCSSI0CeWX4nCD5x5Q)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ_2;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	typ_2 = skipTypes_pLCdCGDuirMe9cspwviV9aVA(typ, IL64(1152921504607907344));
	{
		NIM_BOOL T3_;
		NimStringDesc* T7_;
		NimStringDesc* T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*typ_2).sym == NIM_NIL));
		if (!(T3_)) goto LA4_;
		T3_ = ((147456 &((NU64)1<<((NU)((*typ_2).kind)&63U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		T7_ = (NimStringDesc*)0;
		T8_ = (NimStringDesc*)0;
		T8_ = mangle_0ctHksTXSPyaxjBOgK4TiA((*(*(*typ_2).sym).name).s);
		T7_ = rawNewString(reprEnum((NI)(*typ_2).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len + T8_->Sup.len + 1);
appendString(T7_, reprEnum((NI)(*typ_2).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
appendChar(T7_, 95);
appendString(T7_, T8_);
		result = rope_53CHEX05HP0HacydnwoUYg(T7_);
	}
	goto LA1_;
	LA5_: ;
	{
		result = rope_53CHEX05HP0HacydnwoUYg(reprEnum((NI)(*typ_2).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
	}
	LA1_: ;
	return result;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getTypeName_9bhJs9b9btyu2lwCQxVmPMP2Q_3)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ, tyArray_qtqsWM5aXmcpMIVmvq3kAA sig) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ_2;
{	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	t = typ;
	{
		while (1) {
			{
				NIM_BOOL T5_;
				T5_ = (NIM_BOOL)0;
				T5_ = !(((*t).sym == NIM_NIL));
				if (!(T5_)) goto LA6_;
				T5_ = !(((96 & (*(*t).sym).flags) == 0));
				LA6_: ;
				if (!T5_) goto LA7_;
				result = (*(*t).sym).loc.r;
				goto BeforeRet_;
			}
			LA7_: ;
			{
				if (!((IL64(1152921504607907344) &((NU64)1<<((NU)((*t).kind)&63U)))!=0)) goto LA11_;
				t = lastSon_E41DMKHtT9c6sAMyyvhmSIw(t);
			}
			goto LA9_;
			LA11_: ;
			{
				goto LA1;
			}
			LA9_: ;
		}
	} LA1: ;
	{
		if (!((*typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 4))) goto LA16_;
		typ_2 = lastSon_E41DMKHtT9c6sAMyyvhmSIw(typ);
	}
	goto LA14_;
	LA16_: ;
	{
		typ_2 = typ;
	}
	LA14_: ;
	{
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T23_;
		NimStringDesc* T24_;
		if (!((*typ_2).loc.r == NIM_NIL)) goto LA21_;
		T23_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T23_ = typeName_Lv9bCnCSSI0CeWX4nCD5x5Q(typ_2);
		T24_ = (NimStringDesc*)0;
		T24_ = dollar__cjda4doS9ccFOjsWsGu9aa2A(sig);
		asgnRefNoCycle((void**) (&(*typ_2).loc.r), amp__sUFtkQXj2TQTADyk9cLFdDg(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_))->Sup.len + 13);
appendString(T30_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_54));
appendString(T30_, reprEnum((NI)(*typ_2).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
		internalError_5XY9cUy7hZmUusM38U9cYYdw(T30_);
	}
	LA28_: ;
	}BeforeRet_: ;
	return result;
}

N_NIMCALL(NimStringDesc*, getForwardStructFormat_HGL9bKxvY1ZMx9barwV7E9cDg_2)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m) {
	NimStringDesc* result;
	result = (NimStringDesc*)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T3_) goto LA4_;
		T3_ = (((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		result = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_55));
	}
	goto LA1_;
	LA5_: ;
	{
		result = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_56));
	}
	LA1_: ;
	return result;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, structOrUnion_36Ze9a1mvluk6WH3zeb04sg)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t_2;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	t_2 = skipTypes_pLCdCGDuirMe9cspwviV9aVA(t, 16);
	{
		if (!(((*t_2).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 1))&63U)))!=0)) goto LA3_;
		result = rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_57));
	}
	goto LA1_;
	LA3_: ;
	{
		result = rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_58));
	}
	LA1_: ;
	return result;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getTypeForward_9bhJs9b9btyu2lwCQxVmPMP2Q_2)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ, tyArray_qtqsWM5aXmcpMIVmvq3kAA sig) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* concrete;
{	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	result = cacheGetType_9bwDnyQb9br3ZKlRXcmiGaAg((*m).forwTypeCache, sig);
	{
		if (!!((result == NIM_NIL))) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	result = getTypePre_9bhJs9b9btyu2lwCQxVmPMP2Q(m, typ, sig);
	{
		if (!!((result == NIM_NIL))) goto LA7_;
		goto BeforeRet_;
	}
	LA7_: ;
	concrete = skipTypes_pLCdCGDuirMe9cspwviV9aVA(typ, IL64(36028797019007248));
	switch ((*concrete).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17):
	{
		result = getTypeName_9bhJs9b9btyu2lwCQxVmPMP2Q_3(m, typ, sig);
		X5BX5Deq__BB9cml2YF9cRQvdtWa9aceAyw((&(*m).forwTypeCache), sig, result);
		{
			NIM_BOOL T12_;
			NimStringDesc* T15_;
			tyArray_YB3ke0PEM9bcAj9bAsA619bJA T16_;
			T12_ = (NIM_BOOL)0;
			T12_ = isImportedType_B4nHhP3INN4MtYAgHK3Lrw_2(concrete);
			if (!!(T12_)) goto LA13_;
			T15_ = (NimStringDesc*)0;
			T15_ = getForwardStructFormat_HGL9bKxvY1ZMx9barwV7E9cDg_2(m);
			memset((void*)T16_, 0, sizeof(T16_));
			T16_[0] = structOrUnion_36Ze9a1mvluk6WH3zeb04sg(typ);
			T16_[1] = result;
			addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 2))- 0], T15_, T16_, 2);
		}
		LA13_: ;
		{
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T19_;
			T19_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
			T19_ = X5BX5D__D32CyVQc3bxgQipD6FSZbQ((&(*m).forwTypeCache), sig);
			if (!!(((*T19_) == result))) goto LA20_;
			raiseAssert_PpfSiTIeNpMAb9a5o6SglJw_2(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_59));
		}
		LA20_: ;
	}
	break;
	default:
	{
		NimStringDesc* T23_;
		T23_ = (NimStringDesc*)0;
		T23_ = rawNewString(reprEnum((NI)(*typ).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len + 16);
appendString(T23_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_60));
appendString(T23_, reprEnum((NI)(*typ).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
appendChar(T23_, 41);
		internalError_5XY9cUy7hZmUusM38U9cYYdw(T23_);
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}

N_NIMCALL(void, pushType_RxortgABdikNl9bXwGGjLDA)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ) {
	NI T1_;
	(*m).typeStack = (tySequence_zuqP4Riz26Oi5fWgPYVEgA*) incrSeqV2(&((*m).typeStack)->Sup, sizeof(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*));
	T1_ = (*m).typeStack->Sup.len++;
	asgnRefNoCycle((void**) (&(*m).typeStack->data[T1_]), typ);
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getTypeDescWeak_le2gZS0jnUOJGvGwTsCGDA)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* check) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* etB;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	etB = skipTypes_pLCdCGDuirMe9cspwviV9aVA(t, IL64(36028797019007248));
	switch ((*etB).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		{
			NIM_BOOL T4_;
			T4_ = (NIM_BOOL)0;
			T4_ = isImportedCppType_B4nHhP3INN4MtYAgHK3Lrw(etB);
			if (!(T4_)) goto LA5_;
			T4_ = ((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 11));
			LA5_: ;
			if (!T4_) goto LA6_;
			result = getTypeDescAux_qc0KX9bYooKBzwQvPqc89aJA(m, t, check);
		}
		goto LA2_;
		LA6_: ;
		{
			tyArray_qtqsWM5aXmcpMIVmvq3kAA T9_;
			memset((void*)T9_, 0, sizeof(T9_));
			hashType_Cq9bE7w5AuevkqC3yjwXHng(t, 2, T9_);
			result = getTypeForward_9bhJs9b9btyu2lwCQxVmPMP2Q_2(m, t, T9_);
			pushType_RxortgABdikNl9bXwGGjLDA(m, t);
		}
		LA2_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
	{
		tyArray_qtqsWM5aXmcpMIVmvq3kAA T11_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T12_;
		memset((void*)T11_, 0, sizeof(T11_));
		hashType_Cq9bE7w5AuevkqC3yjwXHng(t, 2, T11_);
		T12_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T12_ = getTypeForward_9bhJs9b9btyu2lwCQxVmPMP2Q_2(m, t, T11_);
		result = amp__sUFtkQXj2TQTADyk9cLFdDg(T12_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_53));
		pushType_RxortgABdikNl9bXwGGjLDA(m, t);
	}
	break;
	default:
	{
		result = getTypeDescAux_qc0KX9bYooKBzwQvPqc89aJA(m, t, check);
	}
	break;
	}
	return result;
}

N_NIMCALL(void, appcg_TJmWJ0eU9byq14ToBfxDtXQ)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** c, NimStringDesc* frmt, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** args, NI argsLen_0) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T1_;
	T1_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T1_ = ropecg_ail3PxtNU17Ini4A1vCFoA(m, frmt, args, argsLen_0);
	add_cDalAhgBlDWoYHadkaqqxw(c, T1_);
}

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

N_NIMCALL(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*, resolveStarsInCppType_D9b9b2TeB3azY6wst9c4UqgZg)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ, NI idx, NI stars) {
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* result;
	result = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len_gG7hUAX9cA629ahMLVL3xN4w_2(typ);
		if (!(T3_ <= idx)) goto LA4_;
		internalError_5XY9cUy7hZmUusM38U9cYYdw(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_83));
	}
	LA4_: ;
	result = (*typ).sons->data[idx];
	{
		NI i;
		NI res;
		i = (NI)0;
		res = ((NI) 1);
		{
			while (1) {
				if (!(res <= stars)) goto LA8;
				i = res;
				{
					NIM_BOOL T11_;
					NI T13_;
					T11_ = (NIM_BOOL)0;
					T11_ = !((result == NIM_NIL));
					if (!(T11_)) goto LA12_;
					T13_ = (NI)0;
					T13_ = len_gG7hUAX9cA629ahMLVL3xN4w_2(result);
					T11_ = (((NI) 0) < T13_);
					LA12_: ;
					if (!T11_) goto LA14_;
					{
						if (!((*result).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 11))) goto LA18_;
						result = (*result).sons->data[((NI) 1)];
					}
					goto LA16_;
					LA18_: ;
					{
						result = elemType_46gPaVDDGhiU69b2oKDJZuA_2(result);
					}
					LA16_: ;
				}
				LA14_: ;
				res += ((NI) 1);
			} LA8: ;
		}
	}
	return result;
}

N_NIMCALL(NIM_BOOL, isKeyword_G89cvzKaz1EjMqhwFIBLVIg)(tyObject_TIdent_4umxGerWTHGPwUms7Yqu3g* w) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	switch ((*w).Sup.id) {
	case ((NI) 204) ... ((NI) 266):
	case ((NI) 4) ... ((NI) 70):
	case ((NI) 140):
	{
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	break;
	default:
	{
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}

N_NIMCALL(NimStringDesc*, mangleField_tbcnk2tpLj7TAaKsu0C9btw)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TIdent_4umxGerWTHGPwUms7Yqu3g* name) {
	NimStringDesc* result;
	result = (NimStringDesc*)0;
	result = mangle_0ctHksTXSPyaxjBOgK4TiA((*name).s);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isKeyword_G89cvzKaz1EjMqhwFIBLVIg(name);
		if (!T3_) goto LA4_;
		result = resizeString(result, 2);
appendString(result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_104));
	}
	LA4_: ;
	return result;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, mangleRecFieldName_wslMfVDEDMeDSka7bcmmYQ)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* field, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* rectype) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*rectype).sym == NIM_NIL));
		if (!(T3_)) goto LA4_;
		T3_ = !(((96 & (*(*rectype).sym).flags) == 0));
		LA4_: ;
		if (!T3_) goto LA5_;
		result = (*field).loc.r;
	}
	goto LA1_;
	LA5_: ;
	{
		NimStringDesc* T8_;
		T8_ = (NimStringDesc*)0;
		T8_ = mangleField_tbcnk2tpLj7TAaKsu0C9btw(m, (*field).name);
		result = rope_53CHEX05HP0HacydnwoUYg(T8_);
	}
	LA1_: ;
	{
		if (!(result == NIM_NIL)) goto LA11_;
		internalError_MXmtqrCmYwtOPkDCFgUWKQ((*field).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_105));
	}
	LA11_: ;
	return result;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genRecordFieldsAux_M10kln9al7sTQMimduwJ4LA)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* accessExpr, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* rectype, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* check) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
{	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	result = NIM_NIL;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 138):
	{
		{
			NI i;
			NI colontmp_;
			NI T3_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T3_ = (NI)0;
			T3_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
			colontmp_ = (NI)(T3_ - ((NI) 1));
			res = ((NI) 0);
			{
				while (1) {
					tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T6_;
					if (!(res <= colontmp_)) goto LA5;
					i = res;
					T6_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
					T6_ = genRecordFieldsAux_M10kln9al7sTQMimduwJ4LA(m, (*n).kindU.S6.sons->data[i], accessExpr, rectype, check);
					add_cDalAhgBlDWoYHadkaqqxw(&result, T6_);
					res += ((NI) 1);
				} LA5: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 139):
	{
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T12_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* uname;
		NimStringDesc* T13_;
		NimStringDesc* T14_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* ae;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* unionBody;
		{
			if (!!(((*(*n).kindU.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA10_;
			internalError_MXmtqrCmYwtOPkDCFgUWKQ((*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_94));
		}
		LA10_: ;
		T12_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T12_ = genRecordFieldsAux_M10kln9al7sTQMimduwJ4LA(m, (*n).kindU.S6.sons->data[((NI) 0)], accessExpr, rectype, check);
		add_cDalAhgBlDWoYHadkaqqxw(&result, T12_);
		T13_ = (NimStringDesc*)0;
		T14_ = (NimStringDesc*)0;
		T14_ = mangle_0ctHksTXSPyaxjBOgK4TiA((*(*(*(*n).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym).name).s);
		T13_ = rawNewString(T14_->Sup.len + 1);
appendString(T13_, T14_);
appendChar(T13_, 85);
		uname = rope_53CHEX05HP0HacydnwoUYg(T13_);
		{
			tyArray_YB3ke0PEM9bcAj9bAsA619bJA T19_;
			if (!!((accessExpr == NIM_NIL))) goto LA17_;
			memset((void*)T19_, 0, sizeof(T19_));
			T19_[0] = accessExpr;
			T19_[1] = uname;
			ae = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95), T19_, 2);
		}
		goto LA15_;
		LA17_: ;
		{
			ae = uname;
		}
		LA15_: ;
		unionBody = NIM_NIL;
		{
			NI i_2;
			NI colontmp__2;
			NI T22_;
			NI res_2;
			i_2 = (NI)0;
			colontmp__2 = (NI)0;
			T22_ = (NI)0;
			T22_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
			colontmp__2 = (NI)(T22_ - ((NI) 1));
			res_2 = ((NI) 1);
			{
				while (1) {
					if (!(res_2 <= colontmp__2)) goto LA24;
					i_2 = res_2;
					switch ((*(*n).kindU.S6.sons->data[i_2]).kind) {
					case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 85):
					case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 88):
					{
						tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* k;
						k = lastSon_esDJA7239bJDiq4UrX9aHCjg((*n).kindU.S6.sons->data[i_2]);
						{
							tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* sname;
							tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T30_;
							tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* a;
							tyArray_YB3ke0PEM9bcAj9bAsA619bJA T31_;
							tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T32_;
							if (!!(((*k).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA28_;
							T30_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
							T30_ = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (i_2)));
							sname = amp__OL8oYU3myMrLfqhcdP9b3Ig(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_96), T30_);
							memset((void*)T31_, 0, sizeof(T31_));
							T31_[0] = ae;
							T31_[1] = sname;
							T32_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
							T32_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95), T31_, 2);
							a = genRecordFieldsAux_M10kln9al7sTQMimduwJ4LA(m, k, T32_, rectype, check);
							{
								tyArray_ZqT9cbUNKsl55MABiLlPDxA T48_;
								if (!!((a == NIM_NIL))) goto LA35_;
								{
									if (!!((((*rectype).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 22))&63U)))!=0))) goto LA39_;
									add_UJnSY21g59awhvSFBxJ9a9aPg(&unionBody, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_97));
								}
								goto LA37_;
								LA39_: ;
								{
									{
										if (!((CC_78I18QZNZFIv9ah7oETc0jg[(cCompiler_Dz9bRorQ2m6cBt9awpi4iwPw)- 1].Field19 &(1U<<((NU)(((tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg) 7))&7U)))!=0)) goto LA44_;
										add_UJnSY21g59awhvSFBxJ9a9aPg(&unionBody, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_98));
									}
									goto LA42_;
									LA44_: ;
									{
										tyArray_j0xH32fTir0IvGY7WxQsQA T47_;
										memset((void*)T47_, 0, sizeof(T47_));
										addf_8UUGW4xtgpag0J4uEnVLuQ(&unionBody, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_99), T47_, 0);
									}
									LA42_: ;
								}
								LA37_: ;
								add_cDalAhgBlDWoYHadkaqqxw(&unionBody, a);
								memset((void*)T48_, 0, sizeof(T48_));
								T48_[0] = sname;
								addf_8UUGW4xtgpag0J4uEnVLuQ(&unionBody, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_100), T48_, 1);
								{
									NIM_BOOL T51_;
									tyArray_j0xH32fTir0IvGY7WxQsQA T55_;
									T51_ = (NIM_BOOL)0;
									T51_ = (((*rectype).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 22))&63U)))!=0);
									if (!(T51_)) goto LA52_;
									T51_ = !(((CC_78I18QZNZFIv9ah7oETc0jg[(cCompiler_Dz9bRorQ2m6cBt9awpi4iwPw)- 1].Field19 &(1U<<((NU)(((tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg) 7))&7U)))!=0));
									LA52_: ;
									if (!T51_) goto LA53_;
									memset((void*)T55_, 0, sizeof(T55_));
									addf_8UUGW4xtgpag0J4uEnVLuQ(&unionBody, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_101), T55_, 0);
								}
								LA53_: ;
							}
							LA35_: ;
						}
						goto LA26_;
						LA28_: ;
						{
							tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T57_;
							T57_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
							T57_ = genRecordFieldsAux_M10kln9al7sTQMimduwJ4LA(m, k, ae, rectype, check);
							add_cDalAhgBlDWoYHadkaqqxw(&unionBody, T57_);
						}
						LA26_: ;
					}
					break;
					default:
					{
						internalError_5XY9cUy7hZmUusM38U9cYYdw(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_102));
					}
					break;
					}
					res_2 += ((NI) 1);
				} LA24: ;
			}
		}
		{
			tyArray_YB3ke0PEM9bcAj9bAsA619bJA T63_;
			if (!!((unionBody == NIM_NIL))) goto LA61_;
			memset((void*)T63_, 0, sizeof(T63_));
			T63_[0] = unionBody;
			T63_[1] = uname;
			addf_8UUGW4xtgpag0J4uEnVLuQ(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_103), T63_, 2);
		}
		LA61_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* field;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* sname_2;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* ae_2;
		field = (*n).kindU.S4.sym;
		{
			if (!((*(*field).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 63))) goto LA67_;
			goto BeforeRet_;
		}
		LA67_: ;
		sname_2 = mangleRecFieldName_wslMfVDEDMeDSka7bcmmYQ(m, field, rectype);
		{
			tyArray_YB3ke0PEM9bcAj9bAsA619bJA T73_;
			if (!!((accessExpr == NIM_NIL))) goto LA71_;
			memset((void*)T73_, 0, sizeof(T73_));
			T73_[0] = accessExpr;
			T73_[1] = sname_2;
			ae_2 = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95), T73_, 2);
		}
		goto LA69_;
		LA71_: ;
		{
			ae_2 = sname_2;
		}
		LA69_: ;
		fillLoc_FYZoK6R9akILOlR1JSuEh3g((&(*field).loc), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 5), (*field).typ, ae_2, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
		{
			NIM_BOOL T77_;
			tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* fieldType;
			T77_ = (NIM_BOOL)0;
			T77_ = isImportedCppType_B4nHhP3INN4MtYAgHK3Lrw(rectype);
			if (!!(T77_)) goto LA78_;
			fieldType = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*field).loc.t, IL64(36028797019007248));
			{
				NIM_BOOL T82_;
				tyArray_YB3ke0PEM9bcAj9bAsA619bJA T86_;
				tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T87_;
				T82_ = (NIM_BOOL)0;
				T82_ = ((*fieldType).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16));
				if (!(T82_)) goto LA83_;
				T82_ = (((*fieldType).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 0))&63U)))!=0);
				LA83_: ;
				if (!T82_) goto LA84_;
				memset((void*)T86_, 0, sizeof(T86_));
				T87_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
				T87_ = elemType_46gPaVDDGhiU69b2oKDJZuA_2(fieldType);
				T86_[0] = getTypeDescAux_qc0KX9bYooKBzwQvPqc89aJA(m, T87_, check);
				T86_[1] = sname_2;
				addf_8UUGW4xtgpag0J4uEnVLuQ(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_106), T86_, 2);
			}
			goto LA80_;
			LA84_: ;
			{
				tyArray_YB3ke0PEM9bcAj9bAsA619bJA T91_;
				if (!((*fieldType).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24))) goto LA89_;
				memset((void*)T91_, 0, sizeof(T91_));
				T91_[0] = getTypeDescWeak_le2gZS0jnUOJGvGwTsCGDA(m, (*field).loc.t, check);
				T91_[1] = sname_2;
				addf_8UUGW4xtgpag0J4uEnVLuQ(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_55), T91_, 2);
			}
			goto LA80_;
			LA89_: ;
			{
				tyArray_1UwZ4PfBDZcImViZT8dk0w T95_;
				NimStringDesc* T96_;
				if (!!(((*field).kindU.S4.bitsize == ((NI) 0)))) goto LA93_;
				memset((void*)T95_, 0, sizeof(T95_));
				T95_[0] = getTypeDescAux_qc0KX9bYooKBzwQvPqc89aJA(m, (*field).loc.t, check);
				T95_[1] = sname_2;
				T96_ = (NimStringDesc*)0;
				T96_ = nimIntToStr((*field).kindU.S4.bitsize);
				T95_[2] = rope_53CHEX05HP0HacydnwoUYg(T96_);
				addf_8UUGW4xtgpag0J4uEnVLuQ(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_107), T95_, 3);
			}
			goto LA80_;
			LA93_: ;
			{
				tyArray_YB3ke0PEM9bcAj9bAsA619bJA T98_;
				memset((void*)T98_, 0, sizeof(T98_));
				T98_[0] = getTypeDescAux_qc0KX9bYooKBzwQvPqc89aJA(m, (*field).loc.t, check);
				T98_[1] = sname_2;
				addf_8UUGW4xtgpag0J4uEnVLuQ(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_55), T98_, 2);
			}
			LA80_: ;
		}
		LA78_: ;
	}
	break;
	default:
	{
		internalError_MXmtqrCmYwtOPkDCFgUWKQ((*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_108));
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getRecordFields_4jh2Ap8Gq9bkujpNS9cX22NA)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* check) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	result = genRecordFieldsAux_M10kln9al7sTQMimduwJ4LA(m, (*typ).n, NIM_NIL, typ, check);
	return result;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getRecordDesc_nKthE35Lhnag7lanFlpmXA)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* name, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* check) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	NIM_BOOL hasField;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* desc;
	NimStringDesc* T53_;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	hasField = NIM_FALSE;
	{
		if (!(((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 22))&63U)))!=0)) goto LA3_;
		{
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T9_;
			if (!((CC_78I18QZNZFIv9ah7oETc0jg[(cCompiler_Dz9bRorQ2m6cBt9awpi4iwPw)- 1].Field19 &(1U<<((NU)(((tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg) 7))&7U)))!=0)) goto LA7_;
			T9_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T9_ = structOrUnion_36Ze9a1mvluk6WH3zeb04sg(typ);
			result = amp__sUFtkQXj2TQTADyk9cLFdDg(T9_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_87));
		}
		goto LA5_;
		LA7_: ;
		{
			NimStringDesc* T11_;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T12_;
			T11_ = (NimStringDesc*)0;
			T11_ = rawNewString(tnl_Gp8EwkcsAP9am1klnCCHM4w->Sup.len + 15);
appendString(T11_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_88));
appendString(T11_, tnl_Gp8EwkcsAP9am1klnCCHM4w);
			T12_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T12_ = structOrUnion_36Ze9a1mvluk6WH3zeb04sg(typ);
			result = amp__OL8oYU3myMrLfqhcdP9b3Ig(T11_, T12_);
		}
		LA5_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		result = structOrUnion_36Ze9a1mvluk6WH3zeb04sg(typ);
	}
	LA1_: ;
	add_UJnSY21g59awhvSFBxJ9a9aPg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_89));
	add_cDalAhgBlDWoYHadkaqqxw(&result, name);
	{
		if (!((*typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17))) goto LA16_;
		{
			if (!((*typ).sons->data[((NI) 0)] == NIM_NIL)) goto LA20_;
			{
				NIM_BOOL T24_;
				NIM_BOOL T25_;
				tyArray_j0xH32fTir0IvGY7WxQsQA T30_;
				T24_ = (NIM_BOOL)0;
				T25_ = (NIM_BOOL)0;
				T25_ = !(((*typ).sym == NIM_NIL));
				if (!(T25_)) goto LA26_;
				T25_ = (((*(*typ).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 9))&63U)))!=0);
				LA26_: ;
				T24_ = T25_;
				if (T24_) goto LA27_;
				T24_ = (((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 2))&63U)))!=0);
				LA27_: ;
				if (!T24_) goto LA28_;
				memset((void*)T30_, 0, sizeof(T30_));
				appcg_TJmWJ0eU9byq14ToBfxDtXQ(m, &result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_90), T30_, 0);
			}
			goto LA22_;
			LA28_: ;
			{
				tyArray_j0xH32fTir0IvGY7WxQsQA T32_;
				memset((void*)T32_, 0, sizeof(T32_));
				appcg_TJmWJ0eU9byq14ToBfxDtXQ(m, &result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_91), T32_, 0);
				hasField = NIM_TRUE;
			}
			LA22_: ;
		}
		goto LA18_;
		LA20_: ;
		{
			NIM_BOOL T34_;
			tyArray_ZqT9cbUNKsl55MABiLlPDxA T38_;
			tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T39_;
			T34_ = (NIM_BOOL)0;
			T34_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
			if (T34_) goto LA35_;
			T34_ = (((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA35_: ;
			if (!T34_) goto LA36_;
			memset((void*)T38_, 0, sizeof(T38_));
			T39_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
			T39_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*typ).sons->data[((NI) 0)], IL64(36028797033646352));
			T38_[0] = getTypeDescAux_qc0KX9bYooKBzwQvPqc89aJA(m, T39_, check);
			appcg_TJmWJ0eU9byq14ToBfxDtXQ(m, &result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_92), T38_, 1);
			hasField = NIM_TRUE;
		}
		goto LA18_;
		LA36_: ;
		{
			tyArray_ZqT9cbUNKsl55MABiLlPDxA T41_;
			tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T42_;
			memset((void*)T41_, 0, sizeof(T41_));
			T42_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
			T42_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*typ).sons->data[((NI) 0)], IL64(36028797033646352));
			T41_[0] = getTypeDescAux_qc0KX9bYooKBzwQvPqc89aJA(m, T42_, check);
			appcg_TJmWJ0eU9byq14ToBfxDtXQ(m, &result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_93), T41_, 1);
			hasField = NIM_TRUE;
		}
		LA18_: ;
	}
	goto LA14_;
	LA16_: ;
	{
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T44_;
		memset((void*)T44_, 0, sizeof(T44_));
		T44_[0] = name;
		addf_8UUGW4xtgpag0J4uEnVLuQ(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_90), T44_, 1);
	}
	LA14_: ;
	desc = getRecordFields_4jh2Ap8Gq9bkujpNS9cX22NA(m, typ, check);
	{
		NIM_BOOL T47_;
		tyArray_j0xH32fTir0IvGY7WxQsQA T51_;
		T47_ = (NIM_BOOL)0;
		T47_ = (desc == NIM_NIL);
		if (!(T47_)) goto LA48_;
		T47_ = !(hasField);
		LA48_: ;
		if (!T47_) goto LA49_;
		memset((void*)T51_, 0, sizeof(T51_));
		addf_8UUGW4xtgpag0J4uEnVLuQ(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_109), T51_, 0);
	}
	goto LA45_;
	LA49_: ;
	{
		add_cDalAhgBlDWoYHadkaqqxw(&result, desc);
	}
	LA45_: ;
	T53_ = (NimStringDesc*)0;
	T53_ = rawNewString(tnl_Gp8EwkcsAP9am1klnCCHM4w->Sup.len + 2);
appendString(T53_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_110));
appendString(T53_, tnl_Gp8EwkcsAP9am1klnCCHM4w);
	add_UJnSY21g59awhvSFBxJ9a9aPg(&result, T53_);
	{
		NIM_BOOL T56_;
		NimStringDesc* T60_;
		T56_ = (NIM_BOOL)0;
		T56_ = (((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 22))&63U)))!=0);
		if (!(T56_)) goto LA57_;
		T56_ = !(((CC_78I18QZNZFIv9ah7oETc0jg[(cCompiler_Dz9bRorQ2m6cBt9awpi4iwPw)- 1].Field19 &(1U<<((NU)(((tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg) 7))&7U)))!=0));
		LA57_: ;
		if (!T56_) goto LA58_;
		T60_ = (NimStringDesc*)0;
		T60_ = rawNewString(tnl_Gp8EwkcsAP9am1klnCCHM4w->Sup.len + 17);
appendString(T60_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_111));
appendString(T60_, tnl_Gp8EwkcsAP9am1klnCCHM4w);
		add_UJnSY21g59awhvSFBxJ9a9aPg(&result, T60_);
	}
	LA58_: ;
	return result;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getTupleDesc_nKthE35Lhnag7lanFlpmXA_2)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* name, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* check) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	tyArray_YB3ke0PEM9bcAj9bAsA619bJA T1_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* desc;
	NimStringDesc* T13_;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	memset((void*)T1_, 0, sizeof(T1_));
	T1_[0] = structOrUnion_36Ze9a1mvluk6WH3zeb04sg(typ);
	T1_[1] = name;
	result = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_112), T1_, 2);
	desc = NIM_NIL;
	{
		NI i;
		NI colontmp_;
		NI T3_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T3_ = (NI)0;
		T3_ = sonsLen_gG7hUAX9cA629ahMLVL3xN4w(typ);
		colontmp_ = (NI)(T3_ - ((NI) 1));
		res = ((NI) 0);
		{
			while (1) {
				tyArray_YB3ke0PEM9bcAj9bAsA619bJA T6_;
				if (!(res <= colontmp_)) goto LA5;
				i = res;
				memset((void*)T6_, 0, sizeof(T6_));
				T6_[0] = getTypeDescAux_qc0KX9bYooKBzwQvPqc89aJA(m, (*typ).sons->data[i], check);
				T6_[1] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (i)));
				addf_8UUGW4xtgpag0J4uEnVLuQ(&desc, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_113), T6_, 2);
				res += ((NI) 1);
			} LA5: ;
		}
	}
	{
		NimStringDesc* T11_;
		if (!(desc == NIM_NIL)) goto LA9_;
		T11_ = (NimStringDesc*)0;
		T11_ = rawNewString(tnl_Gp8EwkcsAP9am1klnCCHM4w->Sup.len + 11);
appendString(T11_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_114));
appendString(T11_, tnl_Gp8EwkcsAP9am1klnCCHM4w);
		add_UJnSY21g59awhvSFBxJ9a9aPg(&result, T11_);
	}
	goto LA7_;
	LA9_: ;
	{
		add_cDalAhgBlDWoYHadkaqqxw(&result, desc);
	}
	LA7_: ;
	T13_ = (NimStringDesc*)0;
	T13_ = rawNewString(tnl_Gp8EwkcsAP9am1klnCCHM4w->Sup.len + 2);
appendString(T13_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_110));
appendString(T13_, tnl_Gp8EwkcsAP9am1klnCCHM4w);
	add_UJnSY21g59awhvSFBxJ9a9aPg(&result, T13_);
	return result;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getTypeDescAux_qc0KX9bYooKBzwQvPqc89aJA)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* origTyp, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* check) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t;
	tyArray_qtqsWM5aXmcpMIVmvq3kAA sig;
{	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	t = skipTypes_pLCdCGDuirMe9cspwviV9aVA(origTyp, IL64(1152921504607907344));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = containsOrIncl_B0EhVMrh5BBBZOOtYjAvVg(check, (*t).Sup.id);
		if (!T3_) goto LA4_;
		{
			NIM_BOOL T8_;
			NimStringDesc* T12_;
			NimStringDesc* T13_;
			T8_ = (NIM_BOOL)0;
			T8_ = isImportedCppType_B4nHhP3INN4MtYAgHK3Lrw(origTyp);
			if (T8_) goto LA9_;
			T8_ = isImportedCppType_B4nHhP3INN4MtYAgHK3Lrw(t);
			LA9_: ;
			if (!!(T8_)) goto LA10_;
			T12_ = (NimStringDesc*)0;
			T13_ = (NimStringDesc*)0;
			T13_ = typeToString_iUZlBdvGqNPVN17wd9aVBNw(origTyp, ((tyEnum_TPreferedDesc_tnd4qt9c4xddV8oKV5zyusw) 0));
			T12_ = rawNewString(T13_->Sup.len + 28);
appendString(T12_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
appendString(T12_, T13_);
			internalError_5XY9cUy7hZmUusM38U9cYYdw(T12_);
		}
		LA10_: ;
	}
	LA4_: ;
	{
		if (!!(((*t).sym == NIM_NIL))) goto LA16_;
		useHeader_5LEMfE09buQIXg39bLkcpjww_3(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_5LEMfE09buQIXg39bLkcpjww_3(m, (*origTyp).sym);
	}
	LA22_: ;
	memset((void*)sig, 0, sizeof(sig));
	chckNil((void*)sig);
	memset((void*)sig, 0, sizeof(sig));
	hashType_Cq9bE7w5AuevkqC3yjwXHng(origTyp, 2, sig);
	result = getTypePre_9bhJs9b9btyu2lwCQxVmPMP2Q(m, t, sig);
	{
		if (!!((result == NIM_NIL))) goto LA26_;
		excl_iUpE9bYmIR0fROyJskQwN8g_2(check, (*t).Sup.id);
		goto BeforeRet_;
	}
	LA26_: ;
	switch ((*t).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23):
	{
		NimStringDesc* star;
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* et;
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T40_;
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* etB;
		{
			NIM_BOOL T31_;
			NIM_BOOL T32_;
			NIM_BOOL T35_;
			T31_ = (NIM_BOOL)0;
			T32_ = (NIM_BOOL)0;
			T32_ = ((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23));
			if (!(T32_)) goto LA33_;
			T32_ = !((((*origTyp).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 19))&63U)))!=0));
			LA33_: ;
			T31_ = T32_;
			if (!(T31_)) goto LA34_;
			T35_ = (NIM_BOOL)0;
			T35_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
			if (T35_) goto LA36_;
			T35_ = (((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA36_: ;
			T31_ = T35_;
			LA34_: ;
			if (!T31_) goto LA37_;
			star = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_52));
		}
		goto LA29_;
		LA37_: ;
		{
			star = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_53));
		}
		LA29_: ;
		T40_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
		T40_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA(origTyp, IL64(36028797019007248));
		et = lastSon_E41DMKHtT9c6sAMyyvhmSIw(T40_);
		etB = skipTypes_pLCdCGDuirMe9cspwviV9aVA(et, IL64(36028797019007248));
		{
			if (!((IL64(281475110993920) &((NU64)1<<((NU)((*etB).kind)&63U)))!=0)) goto LA43_;
			et = elemType_46gPaVDDGhiU69b2oKDJZuA_2(etB);
			etB = skipTypes_pLCdCGDuirMe9cspwviV9aVA(et, IL64(36028797019007248));
			star->data[((NI) 0)] = 42;
		}
		LA43_: ;
		switch ((*etB).kind) {
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18):
		{
			{
				NIM_BOOL T48_;
				tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T52_;
				T48_ = (NIM_BOOL)0;
				T48_ = isImportedCppType_B4nHhP3INN4MtYAgHK3Lrw(etB);
				if (!(T48_)) goto LA49_;
				T48_ = ((*et).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 11));
				LA49_: ;
				if (!T48_) goto LA50_;
				T52_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
				T52_ = getTypeDescAux_qc0KX9bYooKBzwQvPqc89aJA(m, et, check);
				result = amp__sUFtkQXj2TQTADyk9cLFdDg(T52_, star);
			}
			goto LA46_;
			LA50_: ;
			{
				tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* name;
				tyArray_qtqsWM5aXmcpMIVmvq3kAA T54_;
				memset((void*)T54_, 0, sizeof(T54_));
				hashType_Cq9bE7w5AuevkqC3yjwXHng(et, 2, T54_);
				name = getTypeForward_9bhJs9b9btyu2lwCQxVmPMP2Q_2(m, et, T54_);
				result = amp__sUFtkQXj2TQTADyk9cLFdDg(name, star);
				X5BX5Deq__BB9cml2YF9cRQvdtWa9aceAyw((&(*m).typeCache), sig, result);
				pushType_RxortgABdikNl9bXwGGjLDA(m, et);
			}
			LA46_: ;
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
		{
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* name_2;
			tyArray_qtqsWM5aXmcpMIVmvq3kAA T56_;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T57_;
			memset((void*)T56_, 0, sizeof(T56_));
			hashType_Cq9bE7w5AuevkqC3yjwXHng(et, 2, T56_);
			name_2 = getTypeForward_9bhJs9b9btyu2lwCQxVmPMP2Q_2(m, et, T56_);
			T57_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T57_ = amp__sUFtkQXj2TQTADyk9cLFdDg(name_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_53));
			result = amp__sUFtkQXj2TQTADyk9cLFdDg(T57_, star);
			X5BX5Deq__BB9cml2YF9cRQvdtWa9aceAyw((&(*m).typeCache), sig, result);
			pushType_RxortgABdikNl9bXwGGjLDA(m, et);
		}
		break;
		default:
		{
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T59_;
			T59_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T59_ = getTypeDescAux_qc0KX9bYooKBzwQvPqc89aJA(m, et, check);
			result = amp__sUFtkQXj2TQTADyk9cLFdDg(T59_, star);
			X5BX5Deq__BB9cml2YF9cRQvdtWa9aceAyw((&(*m).typeCache), sig, result);
		}
		break;
		}
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48):
	{
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T61_;
		T61_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T61_ = getTypeDescWeak_le2gZS0jnUOJGvGwTsCGDA(m, (*t).sons->data[((NI) 0)], check);
		result = amp__sUFtkQXj2TQTADyk9cLFdDg(T61_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_53));
		X5BX5Deq__BB9cml2YF9cRQvdtWa9aceAyw((&(*m).typeCache), sig, result);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 14):
	{
		result = cacheGetType_9bwDnyQb9br3ZKlRXcmiGaAg((*m).typeCache, sig);
		{
			if (!(result == NIM_NIL)) goto LA65_;
			result = getTypeName_9bhJs9b9btyu2lwCQxVmPMP2Q_3(m, origTyp, sig);
			{
				NIM_BOOL T69_;
				NIM_BOOL T71_;
				NI size;
				T69_ = (NIM_BOOL)0;
				T69_ = isImportedCppType_B4nHhP3INN4MtYAgHK3Lrw(t);
				if (T69_) goto LA70_;
				T71_ = (NIM_BOOL)0;
				T71_ = (((*(*t).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 5))&63U)))!=0);
				if (!(T71_)) goto LA72_;
				T71_ = ((*(*t).sym).magic == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 0));
				LA72_: ;
				T69_ = T71_;
				LA70_: ;
				if (!!(T69_)) goto LA73_;
				X5BX5Deq__BB9cml2YF9cRQvdtWa9aceAyw((&(*m).typeCache), sig, result);
				size = (NI)0;
				{
					NI64 T77_;
					tyArray_ZqT9cbUNKsl55MABiLlPDxA T80_;
					T77_ = (NI64)0;
					T77_ = firstOrd_HUiBYxvKiECXCv8BzQNheg(t);
					if (!(T77_ < IL64(0))) goto LA78_;
					memset((void*)T80_, 0, sizeof(T80_));
					T80_[0] = result;
					addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 3))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_61), T80_, 1);
					size = ((NI) 4);
				}
				goto LA75_;
				LA78_: ;
				{
					NI64 T82_;
					T82_ = (NI64)0;
					T82_ = getSize_spMpEAO8ubfQavMigOxQdA(t);
					size = ((NI) (T82_));
					switch (size) {
					case ((NI) 1):
					{
						tyArray_ZqT9cbUNKsl55MABiLlPDxA T84_;
						memset((void*)T84_, 0, sizeof(T84_));
						T84_[0] = result;
						addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 3))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_62), T84_, 1);
					}
					break;
					case ((NI) 2):
					{
						tyArray_ZqT9cbUNKsl55MABiLlPDxA T86_;
						memset((void*)T86_, 0, sizeof(T86_));
						T86_[0] = result;
						addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 3))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_63), T86_, 1);
					}
					break;
					case ((NI) 4):
					{
						tyArray_ZqT9cbUNKsl55MABiLlPDxA T88_;
						memset((void*)T88_, 0, sizeof(T88_));
						T88_[0] = result;
						addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 3))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_61), T88_, 1);
					}
					break;
					case ((NI) 8):
					{
						tyArray_ZqT9cbUNKsl55MABiLlPDxA T90_;
						memset((void*)T90_, 0, sizeof(T90_));
						T90_[0] = result;
						addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 3))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64), T90_, 1);
					}
					break;
					default:
					{
						internalError_MXmtqrCmYwtOPkDCFgUWKQ((*(*t).sym).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_65));
					}
					break;
					}
				}
				LA75_: ;
			}
			LA73_: ;
		}
		LA65_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25):
	{
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* rettype;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* desc;
		result = getTypeName_9bhJs9b9btyu2lwCQxVmPMP2Q_3(m, origTyp, sig);
		X5BX5Deq__BB9cml2YF9cRQvdtWa9aceAyw((&(*m).typeCache), sig, result);
		rettype = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		desc = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		genProcParams_j2i3UsmgQjR9ckf4t2X8V9cA(m, t, &rettype, &desc, check, NIM_TRUE, NIM_TRUE);
		{
			NIM_BOOL T95_;
			T95_ = (NIM_BOOL)0;
			T95_ = isImportedType_B4nHhP3INN4MtYAgHK3Lrw_2(t);
			if (!!(T95_)) goto LA96_;
			{
				tyArray_EcJXtY9cAr9bpvybuP0XpjyQ T102_;
				if (!!(((*t).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8)))) goto LA100_;
				memset((void*)T102_, 0, sizeof(T102_));
				T102_[0] = rope_53CHEX05HP0HacydnwoUYg(CallingConvToStr_A7GdKVVGtI3pvj9cV9adydpw[((*t).callConv)- 0]);
				T102_[1] = rettype;
				T102_[2] = result;
				T102_[3] = desc;
				addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 3))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_66), T102_, 4);
			}
			goto LA98_;
			LA100_: ;
			{
				tyArray_1UwZ4PfBDZcImViZT8dk0w T104_;
				memset((void*)T104_, 0, sizeof(T104_));
				T104_[0] = result;
				T104_[1] = rettype;
				T104_[2] = desc;
				addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 3))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_77), T104_, 3);
			}
			LA98_: ;
		}
		LA96_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
	{
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T117_;
		result = cacheGetType_9bwDnyQb9br3ZKlRXcmiGaAg((*m).forwTypeCache, sig);
		{
			if (!(result == NIM_NIL)) goto LA108_;
			result = getTypeName_9bhJs9b9btyu2lwCQxVmPMP2Q_3(m, origTyp, sig);
			{
				NIM_BOOL T112_;
				NimStringDesc* T115_;
				tyArray_YB3ke0PEM9bcAj9bAsA619bJA T116_;
				T112_ = (NIM_BOOL)0;
				T112_ = isImportedType_B4nHhP3INN4MtYAgHK3Lrw_2(t);
				if (!!(T112_)) goto LA113_;
				T115_ = (NimStringDesc*)0;
				T115_ = getForwardStructFormat_HGL9bKxvY1ZMx9barwV7E9cDg_2(m);
				memset((void*)T116_, 0, sizeof(T116_));
				T116_[0] = structOrUnion_36Ze9a1mvluk6WH3zeb04sg(t);
				T116_[1] = result;
				addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 2))- 0], T115_, T116_, 2);
			}
			LA113_: ;
			X5BX5Deq__BB9cml2YF9cRQvdtWa9aceAyw((&(*m).forwTypeCache), sig, result);
		}
		LA108_: ;
		T117_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T117_ = amp__sUFtkQXj2TQTADyk9cLFdDg(result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_53));
		X5BX5Deq__BB9cml2YF9cRQvdtWa9aceAyw((&(*m).typeCache), sig, T117_);
		{
			NIM_BOOL T120_;
			T120_ = (NIM_BOOL)0;
			T120_ = isImportedType_B4nHhP3INN4MtYAgHK3Lrw_2(t);
			if (!!(T120_)) goto LA121_;
			{
				tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T125_;
				NimStringDesc* T128_;
				NimStringDesc* T129_;
				tyArray_YB3ke0PEM9bcAj9bAsA619bJA T137_;
				T125_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
				T125_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*t).sons->data[((NI) 0)], IL64(36028797019007248));
				if (!!(((*T125_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 3)))) goto LA126_;
				T128_ = (NimStringDesc*)0;
				T129_ = (NimStringDesc*)0;
				{
					NIM_BOOL T132_;
					T132_ = (NIM_BOOL)0;
					T132_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
					if (T132_) goto LA133_;
					T132_ = (((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
					LA133_: ;
					if (!T132_) goto LA134_;
					T129_ = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_78));
				}
				goto LA130_;
				LA134_: ;
				{
					T129_ = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_79));
				}
				LA130_: ;
				T128_ = rawNewString(T129_->Sup.len + 31);
appendString(T128_, T129_);
appendString(T128_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_80));
				memset((void*)T137_, 0, sizeof(T137_));
				T137_[0] = getTypeDescAux_qc0KX9bYooKBzwQvPqc89aJA(m, (*t).sons->data[((NI) 0)], check);
				T137_[1] = result;
				appcg_TJmWJ0eU9byq14ToBfxDtXQ(m, &(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 4))- 0], T128_, T137_, 2);
			}
			goto LA123_;
			LA126_: ;
			{
				result = rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_81));
			}
			LA123_: ;
		}
		LA121_: ;
		add_UJnSY21g59awhvSFBxJ9a9aPg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_53));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
	{
		NI64 n;
		n = lengthOrd_HUiBYxvKiECXCv8BzQNheg_3(t);
		{
			if (!(n <= IL64(0))) goto LA142_;
			n = IL64(1);
		}
		LA142_: ;
		result = getTypeName_9bhJs9b9btyu2lwCQxVmPMP2Q_3(m, origTyp, sig);
		X5BX5Deq__BB9cml2YF9cRQvdtWa9aceAyw((&(*m).typeCache), sig, result);
		{
			NIM_BOOL T146_;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* foo;
			tyArray_1UwZ4PfBDZcImViZT8dk0w T149_;
			T146_ = (NIM_BOOL)0;
			T146_ = isImportedType_B4nHhP3INN4MtYAgHK3Lrw_2(t);
			if (!!(T146_)) goto LA147_;
			foo = getTypeDescAux_qc0KX9bYooKBzwQvPqc89aJA(m, (*t).sons->data[((NI) 1)], check);
			memset((void*)T149_, 0, sizeof(T149_));
			T149_[0] = foo;
			T149_[1] = result;
			T149_[2] = rope_pEztpD6TFe5jk3aCrOSACA(n);
			addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 3))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_82), T149_, 3);
		}
		goto LA144_;
		LA147_: ;
		{
			addAbiCheck_sg1gK0Sh0Aid0p9cfvh580w(m, t, result);
		}
		LA144_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		{
			NIM_BOOL T154_;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* cppName;
			NI i;
			NI chunkStart;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T196_;
			T154_ = (NIM_BOOL)0;
			T154_ = isImportedCppType_B4nHhP3INN4MtYAgHK3Lrw(t);
			if (!(T154_)) goto LA155_;
			T154_ = ((*origTyp).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 11));
			LA155_: ;
			if (!T154_) goto LA156_;
			cppName = getTypeName_9bhJs9b9btyu2lwCQxVmPMP2Q_3(m, t, sig);
			i = ((NI) 0);
			chunkStart = ((NI) 0);
			{
				while (1) {
					if (!(i < ((*cppName).data ? (*cppName).data->Sup.len : 0))) goto LA159;
					{
						NI chunkEnd;
						NI idx;
						NI stars;
						if (!((NU8)((*cppName).data->data[i]) == (NU8)(39))) goto LA162_;
						chunkEnd = (i - 1);
						idx = (NI)0;
						stars = (NI)0;
						{
							NIM_BOOL T166_;
							NimStringDesc* T169_;
							tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typeInSlot;
							T166_ = (NIM_BOOL)0;
							T166_ = scanCppGenericSlot_duLZKxkzK247jEYF4jUfog((*cppName).data, (&i), (&idx), (&stars));
							if (!T166_) goto LA167_;
							T169_ = (NimStringDesc*)0;
							T169_ = copyStrLast((*cppName).data, chunkStart, chunkEnd);
							add_UJnSY21g59awhvSFBxJ9a9aPg(&result, T169_);
							chunkStart = i;
							typeInSlot = resolveStarsInCppType_D9b9b2TeB3azY6wst9c4UqgZg(origTyp, (NI)(idx + ((NI) 1)), stars);
							{
								NIM_BOOL T172_;
								tyArray_j0xH32fTir0IvGY7WxQsQA T176_;
								tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T177_;
								T172_ = (NIM_BOOL)0;
								T172_ = (typeInSlot == NIM_NIL);
								if (T172_) goto LA173_;
								T172_ = ((*typeInSlot).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 63));
								LA173_: ;
								if (!T172_) goto LA174_;
								memset((void*)T176_, 0, sizeof(T176_));
								T177_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
								T177_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_26), T176_, 0);
								add_cDalAhgBlDWoYHadkaqqxw(&result, T177_);
							}
							goto LA170_;
							LA174_: ;
							{
								tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T179_;
								T179_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
								T179_ = getTypeDescAux_qc0KX9bYooKBzwQvPqc89aJA(m, typeInSlot, check);
								add_cDalAhgBlDWoYHadkaqqxw(&result, T179_);
							}
							LA170_: ;
						}
						LA167_: ;
					}
					goto LA160_;
					LA162_: ;
					{
						i += ((NI) 1);
					}
					LA160_: ;
				} LA159: ;
			}
			{
				NimStringDesc* T185_;
				if (!!((chunkStart == ((NI) 0)))) goto LA183_;
				T185_ = (NimStringDesc*)0;
				T185_ = copyStr((*cppName).data, chunkStart);
				add_UJnSY21g59awhvSFBxJ9a9aPg(&result, T185_);
			}
			goto LA181_;
			LA183_: ;
			{
				result = amp__sUFtkQXj2TQTADyk9cLFdDg(cppName, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_84));
				{
					NI i_2;
					NI colontmp_;
					NI T188_;
					NI res;
					i_2 = (NI)0;
					colontmp_ = (NI)0;
					T188_ = (NI)0;
					T188_ = len_gG7hUAX9cA629ahMLVL3xN4w_2(origTyp);
					colontmp_ = (NI)(T188_ - ((NI) 2));
					res = ((NI) 1);
					{
						while (1) {
							tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T195_;
							if (!(res <= colontmp_)) goto LA190;
							i_2 = res;
							{
								if (!(((NI) 1) < i_2)) goto LA193_;
								add_UJnSY21g59awhvSFBxJ9a9aPg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_85));
							}
							LA193_: ;
							T195_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
							T195_ = getTypeDescAux_qc0KX9bYooKBzwQvPqc89aJA(m, (*origTyp).sons->data[i_2], check);
							add_cDalAhgBlDWoYHadkaqqxw(&result, T195_);
							res += ((NI) 1);
						} LA190: ;
					}
				}
				add_UJnSY21g59awhvSFBxJ9a9aPg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_86));
			}
			LA181_: ;
			T196_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T196_ = getRecordDesc_nKthE35Lhnag7lanFlpmXA(m, t, result, check);
			T196_;
		}
		goto LA152_;
		LA156_: ;
		{
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* recdesc;
			result = cacheGetType_9bwDnyQb9br3ZKlRXcmiGaAg((*m).forwTypeCache, sig);
			{
				if (!(result == NIM_NIL)) goto LA200_;
				result = getTypeName_9bhJs9b9btyu2lwCQxVmPMP2Q_3(m, origTyp, sig);
				X5BX5Deq__BB9cml2YF9cRQvdtWa9aceAyw((&(*m).forwTypeCache), sig, result);
				{
					NIM_BOOL T204_;
					NimStringDesc* T207_;
					tyArray_YB3ke0PEM9bcAj9bAsA619bJA T208_;
					T204_ = (NIM_BOOL)0;
					T204_ = isImportedType_B4nHhP3INN4MtYAgHK3Lrw_2(t);
					if (!!(T204_)) goto LA205_;
					T207_ = (NimStringDesc*)0;
					T207_ = getForwardStructFormat_HGL9bKxvY1ZMx9barwV7E9cDg_2(m);
					memset((void*)T208_, 0, sizeof(T208_));
					T208_[0] = structOrUnion_36Ze9a1mvluk6WH3zeb04sg(t);
					T208_[1] = result;
					addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 2))- 0], T207_, T208_, 2);
				}
				LA205_: ;
			}
			LA200_: ;
			X5BX5Deq__BB9cml2YF9cRQvdtWa9aceAyw((&(*m).typeCache), sig, result);
			{
				if (!!(((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18)))) goto LA211_;
				recdesc = getRecordDesc_nKthE35Lhnag7lanFlpmXA(m, t, result, check);
			}
			goto LA209_;
			LA211_: ;
			{
				recdesc = getTupleDesc_nKthE35Lhnag7lanFlpmXA_2(m, t, result, check);
			}
			LA209_: ;
			{
				NIM_BOOL T216_;
				T216_ = (NIM_BOOL)0;
				T216_ = isImportedType_B4nHhP3INN4MtYAgHK3Lrw_2(t);
				if (!!(T216_)) goto LA217_;
				add_cDalAhgBlDWoYHadkaqqxw(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 3))- 0], recdesc);
			}
			goto LA214_;
			LA217_: ;
			{
				if (!!((((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 0))&63U)))!=0))) goto LA220_;
				addAbiCheck_sg1gK0Sh0Aid0p9cfvh580w(m, t, result);
			}
			goto LA214_;
			LA220_: ;
			LA214_: ;
		}
		LA152_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 19):
	{
		NimStringDesc* T223_;
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T224_;
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T225_;
		tyArray_qtqsWM5aXmcpMIVmvq3kAA T226_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T227_;
		T223_ = (NimStringDesc*)0;
		T223_ = rawNewString(reprEnum((NI)(*t).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len + 1);
appendString(T223_, reprEnum((NI)(*t).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
appendChar(T223_, 95);
		T224_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
		T224_ = lastSon_E41DMKHtT9c6sAMyyvhmSIw(t);
		T225_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
		T225_ = lastSon_E41DMKHtT9c6sAMyyvhmSIw(t);
		memset((void*)T226_, 0, sizeof(T226_));
		hashType_Cq9bE7w5AuevkqC3yjwXHng(T225_, 2, T226_);
		T227_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T227_ = getTypeName_9bhJs9b9btyu2lwCQxVmPMP2Q_3(m, T224_, T226_);
		result = amp__OL8oYU3myMrLfqhcdP9b3Ig(T223_, T227_);
		X5BX5Deq__BB9cml2YF9cRQvdtWa9aceAyw((&(*m).typeCache), sig, result);
		{
			NIM_BOOL T230_;
			NI s;
			NI64 T233_;
			T230_ = (NIM_BOOL)0;
			T230_ = isImportedType_B4nHhP3INN4MtYAgHK3Lrw_2(t);
			if (!!(T230_)) goto LA231_;
			T233_ = (NI64)0;
			T233_ = getSize_spMpEAO8ubfQavMigOxQdA(t);
			s = ((NI) (T233_));
			switch (s) {
			case ((NI) 1):
			case ((NI) 2):
			case ((NI) 4):
			case ((NI) 8):
			{
				tyArray_YB3ke0PEM9bcAj9bAsA619bJA T235_;
				memset((void*)T235_, 0, sizeof(T235_));
				T235_[0] = result;
				T235_[1] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) ((NI)(s * ((NI) 8)))));
				addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 3))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_115), T235_, 2);
			}
			break;
			default:
			{
				tyArray_YB3ke0PEM9bcAj9bAsA619bJA T237_;
				NI64 T238_;
				memset((void*)T237_, 0, sizeof(T237_));
				T237_[0] = result;
				T238_ = (NI64)0;
				T238_ = getSize_spMpEAO8ubfQavMigOxQdA(t);
				T237_[1] = rope_pEztpD6TFe5jk3aCrOSACA(T238_);
				addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 3))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_116), T237_, 2);
			}
			break;
			}
		}
		LA231_: ;
	}
	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) 52):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 53):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 55):
	{
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T240_;
		T240_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
		T240_ = lastSon_E41DMKHtT9c6sAMyyvhmSIw(t);
		result = getTypeDescAux_qc0KX9bYooKBzwQvPqc89aJA(m, T240_, check);
	}
	break;
	default:
	{
		NimStringDesc* T242_;
		T242_ = (NimStringDesc*)0;
		T242_ = rawNewString(reprEnum((NI)(*t).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len + 16);
appendString(T242_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_117));
appendString(T242_, reprEnum((NI)(*t).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
appendChar(T242_, 41);
		internalError_5XY9cUy7hZmUusM38U9cYYdw(T242_);
		result = NIM_NIL;
	}
	break;
	}
	excl_iUpE9bYmIR0fROyJskQwN8g_2(check, (*t).Sup.id);
	}BeforeRet_: ;
	return result;
}

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

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, mangleParamName_qNuXhnV9aHm5hP7aXP809asQ_3)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* s) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	result = (*s).loc.r;
	{
		NimStringDesc* res;
		if (!(result == NIM_NIL)) goto LA3_;
		res = mangle_0ctHksTXSPyaxjBOgK4TiA((*(*s).name).s);
		{
			NIM_BOOL T7_;
			T7_ = (NIM_BOOL)0;
			T7_ = isKeyword_G89cvzKaz1EjMqhwFIBLVIg((*s).name);
			if (T7_) goto LA8_;
			T7_ = contains_QUwFXAtgP2RpEd1T8OivlA((*(*(*m).g).config).cppDefines, res);
			LA8_: ;
			if (!T7_) goto LA9_;
			res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_104));
		}
		LA9_: ;
		result = rope_53CHEX05HP0HacydnwoUYg(res);
		asgnRefNoCycle((void**) (&(*s).loc.r), result);
		{
			if (!(*m).ndi.enabled) goto LA13_;
			doWrite_usDiNMDhSohTaN2WVO09ccA((&(*m).ndi), s);
		}
		LA13_: ;
	}
	LA3_: ;
	return result;
}

N_NIMCALL(tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw, paramStorageLoc_E9buW7JmynwsijUWcDOpBCA)(tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* param) {
	tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw result;
	result = (tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw)0;
	{
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T3_;
		T3_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
		T3_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*param).typ, 8388864);
		if (!!(((IL64(281475110993920) &((NU64)1<<((NU)((*T3_).kind)&63U)))!=0))) goto LA4_;
		result = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 2);
	}
	goto LA1_;
	LA4_: ;
	{
		result = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0);
	}
	LA1_: ;
	return result;
}

N_NIMCALL(NIM_BOOL, ccgIntroducedPtr_Cz260TwdI2wbchTgee9aUAA)(tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* s) {
	NIM_BOOL result;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* pt;
{	result = (NIM_BOOL)0;
	pt = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*s).typ, IL64(36028797019007248));
	{
		if (!(((*pt).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 14))&63U)))!=0)) goto LA3_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	goto LA1_;
	LA3_: ;
	{
		if (!(((*pt).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 13))&63U)))!=0)) goto LA6_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	goto LA1_;
	LA6_: ;
	LA1_: ;
	switch ((*pt).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17):
	{
		{
			NIM_BOOL T11_;
			NI64 T13_;
			T11_ = (NIM_BOOL)0;
			T11_ = (((*s).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 18))&31U)))!=0);
			if (T11_) goto LA12_;
			T13_ = (NI64)0;
			T13_ = getSize_spMpEAO8ubfQavMigOxQdA(pt);
			T11_ = (((NI64) ((NI)(floatSize_9aPM39cxaqttCZlYIk3psY3g * ((NI) 2)))) < T13_);
			LA12_: ;
			if (!T11_) goto LA14_;
			result = NIM_TRUE;
		}
		goto LA9_;
		LA14_: ;
		{
			NIM_BOOL T17_;
			T17_ = (NIM_BOOL)0;
			T17_ = (((*pt).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 2))&63U)))!=0);
			if (!(T17_)) goto LA18_;
			T17_ = ((*pt).sons->data[((NI) 0)] == NIM_NIL);
			LA18_: ;
			if (!T17_) goto LA19_;
			result = NIM_FALSE;
		}
		goto LA9_;
		LA19_: ;
		{
			result = NIM_TRUE;
		}
		LA9_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		NIM_BOOL T23_;
		NI64 T24_;
		T23_ = (NIM_BOOL)0;
		T24_ = (NI64)0;
		T24_ = getSize_spMpEAO8ubfQavMigOxQdA(pt);
		T23_ = (((NI64) ((NI)(floatSize_9aPM39cxaqttCZlYIk3psY3g * ((NI) 2)))) < T24_);
		if (T23_) goto LA25_;
		T23_ = (((*s).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 18))&31U)))!=0);
		LA25_: ;
		result = T23_;
	}
	break;
	default:
	{
		result = NIM_FALSE;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}

N_NIMCALL(tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w, mapReturnType_xD9bGC83PAN0OvetVlj1cZQ_3)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ) {
	tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w result;
	result = (tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w)0;
	result = mapType_xD9bGC83PAN0OvetVlj1cZQ(typ);
	return result;
}

N_NIMCALL(void, genProcParams_j2i3UsmgQjR9ckf4t2X8V9cA)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** rettype, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** params, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* check, NIM_BOOL declareEnvironment, NIM_BOOL weakDep) {
	unsureAsgnRef((void**) (&(*params)), NIM_NIL);
	{
		NIM_BOOL T3_;
		tyArray_j0xH32fTir0IvGY7WxQsQA T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*t).sons->data[((NI) 0)] == NIM_NIL);
		if (T3_) goto LA4_;
		T3_ = isInvalidReturnType_FW3ctu15AiQkw2TcerUtOw((*t).sons->data[((NI) 0)]);
		LA4_: ;
		if (!T3_) goto LA5_;
		memset((void*)T7_, 0, sizeof(T7_));
		unsureAsgnRef((void**) (&(*rettype)), percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_26), T7_, 0));
	}
	goto LA1_;
	LA5_: ;
	{
		unsureAsgnRef((void**) (&(*rettype)), getTypeDescAux_qc0KX9bYooKBzwQvPqc89aJA(m, (*t).sons->data[((NI) 0)], check));
	}
	LA1_: ;
	{
		NI i;
		NI colontmp_;
		NI T10_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T10_ = (NI)0;
		T10_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig((*t).n);
		colontmp_ = (NI)(T10_ - ((NI) 1));
		res = ((NI) 1);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA12;
				i = res;
				{
					tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* param;
					tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T29_;
					tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw T30_;
					tyArray_j0xH32fTir0IvGY7WxQsQA T45_;
					tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T46_;
					tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* arr;
					NI j;
					{
						if (!!(((*(*(*t).n).kindU.S6.sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA16_;
						internalError_MXmtqrCmYwtOPkDCFgUWKQ((*(*t).n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_118));
					}
					LA16_: ;
					param = (*(*(*t).n).kindU.S6.sons->data[i]).kindU.S4.sym;
					{
						NIM_BOOL T20_;
						T20_ = (NIM_BOOL)0;
						T20_ = isCompileTimeOnly_UBQknCC9aYWKMNMK4dmeTlQcgen((*param).typ);
						if (!T20_) goto LA21_;
						goto LA13;
					}
					LA21_: ;
					{
						tyArray_j0xH32fTir0IvGY7WxQsQA T27_;
						tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T28_;
						if (!!(((*params) == NIM_NIL))) goto LA25_;
						memset((void*)T27_, 0, sizeof(T27_));
						T28_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
						T28_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_119), T27_, 0);
						add_cDalAhgBlDWoYHadkaqqxw(params, T28_);
					}
					LA25_: ;
					T29_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
					T29_ = mangleParamName_qNuXhnV9aHm5hP7aXP809asQ_3(m, param);
					T30_ = (tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw)0;
					T30_ = paramStorageLoc_E9buW7JmynwsijUWcDOpBCA(param);
					fillLoc_FYZoK6R9akILOlR1JSuEh3g((&(*param).loc), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 4), (*param).typ, T29_, T30_);
					{
						NIM_BOOL T33_;
						tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T36_;
						tyArray_j0xH32fTir0IvGY7WxQsQA T37_;
						tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T38_;
						T33_ = (NIM_BOOL)0;
						T33_ = ccgIntroducedPtr_Cz260TwdI2wbchTgee9aUAA(param);
						if (!T33_) goto LA34_;
						T36_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
						T36_ = getTypeDescWeak_le2gZS0jnUOJGvGwTsCGDA(m, (*param).typ, check);
						add_cDalAhgBlDWoYHadkaqqxw(params, T36_);
						memset((void*)T37_, 0, sizeof(T37_));
						T38_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
						T38_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_53), T37_, 0);
						add_cDalAhgBlDWoYHadkaqqxw(params, T38_);
						(*param).loc.flags |= ((NU16)1)<<((((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 0))%(sizeof(NU16)*8));
						(*param).loc.s = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0);
					}
					goto LA31_;
					LA34_: ;
					{
						tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T42_;
						if (!weakDep) goto LA40_;
						T42_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
						T42_ = getTypeDescWeak_le2gZS0jnUOJGvGwTsCGDA(m, (*param).typ, check);
						add_cDalAhgBlDWoYHadkaqqxw(params, T42_);
					}
					goto LA31_;
					LA40_: ;
					{
						tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T44_;
						T44_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
						T44_ = getTypeDescAux_qc0KX9bYooKBzwQvPqc89aJA(m, (*param).typ, check);
						add_cDalAhgBlDWoYHadkaqqxw(params, T44_);
					}
					LA31_: ;
					memset((void*)T45_, 0, sizeof(T45_));
					T46_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
					T46_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_89), T45_, 0);
					add_cDalAhgBlDWoYHadkaqqxw(params, T46_);
					add_cDalAhgBlDWoYHadkaqqxw(params, (*param).loc.r);
					arr = (*param).typ;
					{
						if (!((*arr).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23))) goto LA49_;
						arr = (*arr).sons->data[((NI) 0)];
					}
					LA49_: ;
					j = ((NI) 0);
					{
						while (1) {
							tyArray_YB3ke0PEM9bcAj9bAsA619bJA T57_;
							if (!((IL64(281475110928384) &((NU64)1<<((NU)((*arr).kind)&63U)))!=0)) goto LA52;
							{
								if (!((*(*param).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23))) goto LA55_;
								(*param).loc.s = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0);
							}
							LA55_: ;
							memset((void*)T57_, 0, sizeof(T57_));
							T57_[0] = (*param).loc.r;
							T57_[1] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (j)));
							addf_8UUGW4xtgpag0J4uEnVLuQ(params, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_120), T57_, 2);
							j += ((NI) 1);
							arr = (*arr).sons->data[((NI) 0)];
						} LA52: ;
					}
				} LA13: ;
				res += ((NI) 1);
			} LA12: ;
		}
	}
	{
		NIM_BOOL T60_;
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* arr_2;
		tyArray_j0xH32fTir0IvGY7WxQsQA T76_;
		T60_ = (NIM_BOOL)0;
		T60_ = !(((*t).sons->data[((NI) 0)] == NIM_NIL));
		if (!(T60_)) goto LA61_;
		T60_ = isInvalidReturnType_FW3ctu15AiQkw2TcerUtOw((*t).sons->data[((NI) 0)]);
		LA61_: ;
		if (!T60_) goto LA62_;
		arr_2 = (*t).sons->data[((NI) 0)];
		{
			if (!!(((*params) == NIM_NIL))) goto LA66_;
			add_UJnSY21g59awhvSFBxJ9a9aPg(params, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_119));
		}
		LA66_: ;
		{
			tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w T70_;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T73_;
			T70_ = (tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w)0;
			T70_ = mapReturnType_xD9bGC83PAN0OvetVlj1cZQ_3((*t).sons->data[((NI) 0)]);
			if (!!((T70_ == ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 17)))) goto LA71_;
			T73_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T73_ = getTypeDescWeak_le2gZS0jnUOJGvGwTsCGDA(m, arr_2, check);
			add_cDalAhgBlDWoYHadkaqqxw(params, T73_);
			add_UJnSY21g59awhvSFBxJ9a9aPg(params, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_53));
		}
		goto LA68_;
		LA71_: ;
		{
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T75_;
			T75_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T75_ = getTypeDescAux_qc0KX9bYooKBzwQvPqc89aJA(m, arr_2, check);
			add_cDalAhgBlDWoYHadkaqqxw(params, T75_);
		}
		LA68_: ;
		memset((void*)T76_, 0, sizeof(T76_));
		addf_8UUGW4xtgpag0J4uEnVLuQ(params, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_121), T76_, 0);
	}
	LA62_: ;
	{
		NIM_BOOL T79_;
		T79_ = (NIM_BOOL)0;
		T79_ = ((*t).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8));
		if (!(T79_)) goto LA80_;
		T79_ = declareEnvironment;
		LA80_: ;
		if (!T79_) goto LA81_;
		{
			if (!!(((*params) == NIM_NIL))) goto LA85_;
			add_UJnSY21g59awhvSFBxJ9a9aPg(params, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_119));
		}
		LA85_: ;
		add_UJnSY21g59awhvSFBxJ9a9aPg(params, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_122));
	}
	LA81_: ;
	{
		if (!(((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 0))&63U)))!=0)) goto LA89_;
		{
			if (!!(((*params) == NIM_NIL))) goto LA93_;
			add_UJnSY21g59awhvSFBxJ9a9aPg(params, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_119));
		}
		LA93_: ;
		add_UJnSY21g59awhvSFBxJ9a9aPg(params, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_123));
	}
	LA89_: ;
	{
		if (!((*params) == NIM_NIL)) goto LA97_;
		add_UJnSY21g59awhvSFBxJ9a9aPg(params, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_124));
	}
	goto LA95_;
	LA97_: ;
	{
		add_UJnSY21g59awhvSFBxJ9a9aPg(params, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_125));
	}
	LA95_: ;
	unsureAsgnRef((void**) (&(*params)), amp__OL8oYU3myMrLfqhcdP9b3Ig(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_126), (*params)));
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genProcHeader_uFtBuQho0qaeduX9cqfK4FQ)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* prc) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* rettype;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* params;
	tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg check;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T13_;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	rettype = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	params = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	genCLineDir_r0Cs29adVXBO59aWyfKk0YAQ(&result, (*prc).info);
	{
		if (!(((*prc).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 5))&15U)))!=0)) goto LA3_;
		{
			if (!(((*m).flags &(1U<<((NU)(((tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q) 3))&7U)))!=0)) goto LA7_;
			add_UJnSY21g59awhvSFBxJ9a9aPg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		goto LA5_;
		LA7_: ;
		{
			add_UJnSY21g59awhvSFBxJ9a9aPg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_21));
		}
		LA5_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		if (!((*(*prc).typ).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 5))) goto LA11_;
		add_UJnSY21g59awhvSFBxJ9a9aPg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_22));
	}
	goto LA1_;
	LA11_: ;
	LA1_: ;
	memset((void*)(&check), 0, sizeof(check));
	chckNil((void*)(&check));
	memset((void*)(&check), 0, sizeof(check));
	initIntSet_a9a80eJplB17xrdZJ41Baww((&check));
	T13_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T13_ = mangleName_qNuXhnV9aHm5hP7aXP809asQ(m, prc);
	fillLoc_FYZoK6R9akILOlR1JSuEh3g((&(*prc).loc), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 7), (*prc).typ, T13_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	genProcParams_j2i3UsmgQjR9ckf4t2X8V9cA(m, (*prc).typ, &rettype, &params, (&check), NIM_TRUE, NIM_FALSE);
	{
		tyArray_EcJXtY9cAr9bpvybuP0XpjyQ T18_;
		if (!((*prc).constraint == 0)) goto LA16_;
		memset((void*)T18_, 0, sizeof(T18_));
		T18_[0] = rope_53CHEX05HP0HacydnwoUYg(CallingConvToStr_A7GdKVVGtI3pvj9cV9adydpw[((*(*prc).typ).callConv)- 0]);
		T18_[1] = rettype;
		T18_[2] = (*prc).loc.r;
		T18_[3] = params;
		addf_8UUGW4xtgpag0J4uEnVLuQ(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_127), T18_, 4);
	}
	goto LA14_;
	LA16_: ;
	{
		tyArray_1UwZ4PfBDZcImViZT8dk0w T20_;
		memset((void*)T20_, 0, sizeof(T20_));
		T20_[0] = rettype;
		T20_[1] = (*prc).loc.r;
		T20_[2] = params;
		result = percent__tH0lgOCTcFVFSKThSUgFEg((*(*prc).constraint).kindU.S3.strVal, T20_, 3);
	}
	LA14_: ;
	return result;
}

static N_INLINE(NI, len_CdME9baJhvveuPEDZE9bXoxAlambdalifting)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	result = (NI)0;
	{
		if (!((*n).kindU.S6.sons == 0)) goto LA3_;
		result = ((NI) 0);
	}
	goto LA1_;
	LA3_: ;
	{
		NI T6_;
		T6_ = ((*n).kindU.S6.sons ? (*n).kindU.S6.sons->Sup.len : 0);
		result = T6_;
	}
	LA1_: ;
	return result;
}

N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, easyResultAsgn_1TL9cg0ds6vTtfhbmuTNGBA)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
{	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 115):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 126):
	{
		NI i;
		i = ((NI) 0);
		{
			while (1) {
				NIM_BOOL T4_;
				NI T5_;
				T4_ = (NIM_BOOL)0;
				T5_ = (NI)0;
				T5_ = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(n);
				T4_ = (i < T5_);
				if (!(T4_)) goto LA6_;
				T4_ = ((*(*n).kindU.S6.sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1) || (*(*n).kindU.S6.sons->data[i]).kind >= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 79) && (*(*n).kindU.S6.sons->data[i]).kind <= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 81) || (*(*n).kindU.S6.sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 84) || (*(*n).kindU.S6.sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 98) || (*(*n).kindU.S6.sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 101) || (*(*n).kindU.S6.sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 125));
				LA6_: ;
				if (!T4_) goto LA3;
				i += ((NI) 1);
			} LA3: ;
		}
		{
			NI T9_;
			T9_ = (NI)0;
			T9_ = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(n);
			if (!(i < T9_)) goto LA10_;
			result = easyResultAsgn_1TL9cg0ds6vTtfhbmuTNGBA((*n).kindU.S6.sons->data[i]);
		}
		LA10_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 73):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 74):
	{
		{
			NIM_BOOL T15_;
			T15_ = (NIM_BOOL)0;
			T15_ = ((*(*n).kindU.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T15_)) goto LA16_;
			T15_ = (((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 11) == (*(*(*n).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym).kind);
			LA16_: ;
			if (!T15_) goto LA17_;
			(*n).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag_jyh9acXHkhZANSSvPIY7ZLg) 14))%(sizeof(NU32)*8));
			result = (*n).kindU.S6.sons->data[((NI) 1)];
			goto BeforeRet_;
		}
		LA17_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 109):
	{
		{
			NI T22_;
			T22_ = (NI)0;
			T22_ = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(n);
			if (!(((NI) 0) < T22_)) goto LA23_;
			result = easyResultAsgn_1TL9cg0ds6vTtfhbmuTNGBA((*n).kindU.S6.sons->data[((NI) 0)]);
			{
				if (!!((result == NIM_NIL))) goto LA27_;
				(*n).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag_jyh9acXHkhZANSSvPIY7ZLg) 14))%(sizeof(NU32)*8));
			}
			LA27_: ;
		}
		LA23_: ;
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}

static N_INLINE(void, shallow_67KGEOtDSAz3i9cPDqgyaCwmsgs)(NimStringDesc** s) {
	TGenericSeq* s_2;
	s_2 = ((TGenericSeq*) ((*s)));
	(*s_2).reserved = (NI)((*s_2).reserved | ((NI) (IL64(-9223372036854775807) - IL64(1))));
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, mangleLocalName_y9bkicOZZUa8Z1PO76aWZ1A_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* s) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	result = (*s).loc.r;
	{
		NimStringDesc* key;
		NI counter;
		if (!(result == NIM_NIL)) goto LA3_;
		key = mangle_0ctHksTXSPyaxjBOgK4TiA((*(*s).name).s);
		shallow_67KGEOtDSAz3i9cPDqgyaCwmsgs((&key));
		counter = getOrDefault_ExyNSxYFFaAiKxJjTjvq2w((*p).sigConflicts, key);
		result = rope_53CHEX05HP0HacydnwoUYg(key);
		{
			if (!((*s).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 5))) goto LA7_;
			{
				tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T13_;
				tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T14_;
				if (!!((counter == ((NI) 0)))) goto LA11_;
				T13_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
				T13_ = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) ((NI)(counter + ((NI) 1)))));
				T14_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
				T14_ = amp__OL8oYU3myMrLfqhcdP9b3Ig(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_8), T13_);
				add_cDalAhgBlDWoYHadkaqqxw(&result, T14_);
			}
			LA11_: ;
		}
		goto LA5_;
		LA7_: ;
		{
			NIM_BOOL T16_;
			NIM_BOOL T17_;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T22_;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T23_;
			T16_ = (NIM_BOOL)0;
			T17_ = (NIM_BOOL)0;
			T17_ = !((counter == ((NI) 0)));
			if (T17_) goto LA18_;
			T17_ = isKeyword_G89cvzKaz1EjMqhwFIBLVIg((*s).name);
			LA18_: ;
			T16_ = T17_;
			if (T16_) goto LA19_;
			T16_ = contains_QUwFXAtgP2RpEd1T8OivlA((*(*(*(*p).module).g).config).cppDefines, key);
			LA19_: ;
			if (!T16_) goto LA20_;
			T22_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T22_ = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) ((NI)(counter + ((NI) 1)))));
			T23_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T23_ = amp__OL8oYU3myMrLfqhcdP9b3Ig(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_8), T22_);
			add_cDalAhgBlDWoYHadkaqqxw(&result, T23_);
		}
		goto LA5_;
		LA20_: ;
		LA5_: ;
		inc_hCwWEfjYY2mbkXPFg2lZFQ((&(*p).sigConflicts), key, ((NI) 1));
		asgnRefNoCycle((void**) (&(*s).loc.r), result);
		{
			if (!!(((*s).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 5)))) goto LA26_;
			{
				if (!(*(*p).module).ndi.enabled) goto LA30_;
				doWrite_usDiNMDhSohTaN2WVO09ccA((&(*(*p).module).ndi), s);
			}
			LA30_: ;
		}
		LA26_: ;
	}
	LA3_: ;
	return result;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg check;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	memset((void*)(&check), 0, sizeof(check));
	chckNil((void*)(&check));
	memset((void*)(&check), 0, sizeof(check));
	initIntSet_a9a80eJplB17xrdZJ41Baww((&check));
	result = getTypeDescAux_qc0KX9bYooKBzwQvPqc89aJA(m, typ, (&check));
	return result;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, localVarDecl_y9bkicOZZUa8Z1PO76aWZ1A)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* s) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	{
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T5_;
		if (!((*s).loc.k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA3_;
		T5_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T5_ = mangleLocalName_y9bkicOZZUa8Z1PO76aWZ1A_2(p, s);
		fillLoc_FYZoK6R9akILOlR1JSuEh3g((&(*s).loc), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 2), (*s).typ, T5_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 2));
		{
			if (!((*s).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 9))) goto LA8_;
			(*s).loc.flags |= ((NU16)1)<<((((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 2))%(sizeof(NU16)*8));
		}
		LA8_: ;
	}
	LA3_: ;
	result = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, (*s).typ);
	{
		if (!((*s).constraint == 0)) goto LA12_;
		{
			if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 8))&63U)))!=0)) goto LA16_;
			add_UJnSY21g59awhvSFBxJ9a9aPg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_129));
		}
		LA16_: ;
		{
			if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 7))&63U)))!=0)) goto LA20_;
			add_UJnSY21g59awhvSFBxJ9a9aPg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_130));
		}
		LA20_: ;
		add_UJnSY21g59awhvSFBxJ9a9aPg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_89));
		add_cDalAhgBlDWoYHadkaqqxw(&result, (*s).loc.r);
	}
	goto LA10_;
	LA12_: ;
	{
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T23_;
		memset((void*)T23_, 0, sizeof(T23_));
		T23_[0] = result;
		T23_[1] = (*s).loc.r;
		result = percent__tH0lgOCTcFVFSKThSUgFEg((*(*s).constraint).kindU.S3.strVal, T23_, 2);
	}
	LA10_: ;
	return result;
}

N_NIMCALL(void, initLoc_kfK3bi0HoV6YeIhyJNMmZw)(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* result, tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg k, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ, tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw s) {
	(*result).k = k;
	(*result).s = s;
	unsureAsgnRef((void**) (&(*result).t), typ);
	unsureAsgnRef((void**) (&(*result).r), NIM_NIL);
	(*result).flags = 0;
}

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

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

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, indentLine_Fi9b9bJCT10U0UUyX38f9b9adA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* r) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	result = r;
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = ((*p).blocks ? (*p).blocks->Sup.len : 0);
		colontmp_ = (NI)(T2_ - ((NI) 1));
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				prepend_cDalAhgBlDWoYHadkaqqxw_2(&result, indent_yZhag4Leo9bR7kvKArHuXQg);
				res += ((NI) 1);
			} LA4: ;
		}
	}
	return result;
}

N_NIMCALL(void, linefmt_Z6xIOvD09aMfYvHnc82A86A)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg s, NimStringDesc* frmt, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** args, NI argsLen_0) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T1_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T2_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T3_;
	T1_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
	T1_ = s_OUiru83H7n4zC9cnXN2KbrQcgen(p, s);
	T2_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T2_ = ropecg_ail3PxtNU17Ini4A1vCFoA((*p).module, frmt, args, argsLen_0);
	T3_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T3_ = indentLine_Fi9b9bJCT10U0UUyX38f9b9adA(p, T2_);
	add_cDalAhgBlDWoYHadkaqqxw(T1_, T3_);
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw)(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	result = (*a).r;
	{
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T5_;
		if (!(((*a).flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 0))&15U)))!=0)) goto LA3_;
		memset((void*)T5_, 0, sizeof(T5_));
		T5_[0] = result;
		result = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_132), T5_, 1);
	}
	LA3_: ;
	return result;
}

N_NIMCALL(void, line_ALdLmqKb9cyvVSETUUyUh9aQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg s, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* r) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T1_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T2_;
	T1_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
	T1_ = s_OUiru83H7n4zC9cnXN2KbrQcgen(p, s);
	T2_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T2_ = indentLine_Fi9b9bJCT10U0UUyX38f9b9adA(p, r);
	add_cDalAhgBlDWoYHadkaqqxw(T1_, T2_);
}

N_NIMCALL(void, lineF_gZoxMzCWCNZ6iEh5xl8k0g)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg s, NimStringDesc* frmt, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** args, NI argsLen_0) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T1_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T2_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T3_;
	T1_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
	T1_ = s_OUiru83H7n4zC9cnXN2KbrQcgen(p, s);
	T2_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T2_ = percent__tH0lgOCTcFVFSKThSUgFEg(frmt, args, argsLen_0);
	T3_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T3_ = indentLine_Fi9b9bJCT10U0UUyX38f9b9adA(p, T2_);
	add_cDalAhgBlDWoYHadkaqqxw(T1_, T3_);
}

N_NIMCALL(void, genTypeInfoAuxBase_7vipSqfL9aMtRf74ZXxa9aPw)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* origType, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* name, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* base) {
	NI nimtypeKind;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* size;
	tyArray_EcJXtY9cAr9bpvybuP0XpjyQ T12_;
	NI flags;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T28_;
	tyArray_ZqT9cbUNKsl55MABiLlPDxA T38_;
	nimtypeKind = (NI)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isObjLackingTypeField_Ejb3pIY519bW1IHfWPGBwwgcgen(typ);
		if (!T3_) goto LA4_;
		nimtypeKind = ((NI) 18);
	}
	goto LA1_;
	LA4_: ;
	{
		nimtypeKind = ((NI) ((*typ).kind));
	}
	LA1_: ;
	size = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	{
		if (!(((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 0))&63U)))!=0)) goto LA9_;
		size = rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_141));
	}
	goto LA7_;
	LA9_: ;
	{
		size = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2(m, origType);
	}
	LA7_: ;
	memset((void*)T12_, 0, sizeof(T12_));
	T12_[0] = name;
	T12_[1] = size;
	T12_[2] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (nimtypeKind)));
	T12_[3] = base;
	addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_142), T12_, 4);
	flags = ((NI) 0);
	{
		NIM_BOOL T15_;
		T15_ = (NIM_BOOL)0;
		T15_ = containsGarbageCollectedRef_3xW85al2Ic6K09avBGxLjZg(typ);
		if (!!(T15_)) goto LA16_;
		flags = (NI)(flags | ((NI) 1));
	}
	LA16_: ;
	{
		NIM_BOOL T20_;
		T20_ = (NIM_BOOL)0;
		T20_ = canFormAcycle_3xW85al2Ic6K09avBGxLjZg_2(typ);
		if (!!(T20_)) goto LA21_;
		flags = (NI)(flags | ((NI) 2));
	}
	LA21_: ;
	{
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T27_;
		if (!!((flags == ((NI) 0)))) goto LA25_;
		memset((void*)T27_, 0, sizeof(T27_));
		T27_[0] = name;
		T27_[1] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (flags)));
		addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_143), T27_, 2);
	}
	LA25_: ;
	T28_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T28_ = cgsym_LDQwSdTgGBvWUKfBZpHXDw(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_136));
	T28_;
	{
		NIM_BOOL T31_;
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T34_;
		NimStringDesc* T35_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T36_;
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T37_;
		T31_ = (NIM_BOOL)0;
		T31_ = isDefined_BNPf2mtM9a7JF7UKiCAngvg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_144));
		if (!T31_) goto LA32_;
		memset((void*)T34_, 0, sizeof(T34_));
		T34_[0] = name;
		T35_ = (NimStringDesc*)0;
		T35_ = typeToString_iUZlBdvGqNPVN17wd9aVBNw(origType, ((tyEnum_TPreferedDesc_tnd4qt9c4xddV8oKV5zyusw) 0));
		T34_[1] = makeCString_c9cmJUs9bNfunHyoffjBZxyg(T35_);
		addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_145), T34_, 2);
		T36_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T36_ = cgsym_LDQwSdTgGBvWUKfBZpHXDw(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_146));
		T36_;
		memset((void*)T37_, 0, sizeof(T37_));
		T37_[0] = name;
		addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_147), T37_, 1);
	}
	LA32_: ;
	memset((void*)T38_, 0, sizeof(T38_));
	T38_[0] = name;
	addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_148), T38_, 1);
}

N_NIMCALL(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*, fakeClosureType_WQojL9az5HxGgo9bOA1wUcxQ)(tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* owner) {
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* result;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T1_;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* r;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* obj;
	result = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
	result = newType_FL9cZh2bRuJE31MWfcWQ4Yg(((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18), owner);
	T1_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
	T1_ = newType_FL9cZh2bRuJE31MWfcWQ4Yg(((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 26), owner);
	rawAddSon_52UH8yKinsYmFX9bFij9c2Hw(result, T1_);
	r = newType_FL9cZh2bRuJE31MWfcWQ4Yg(((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22), owner);
	obj = createObj_elMlmKozh9b5lxeb37m9bKVg(owner, (*owner).info, NIM_FALSE);
	rawAddSon_52UH8yKinsYmFX9bFij9c2Hw(r, obj);
	rawAddSon_52UH8yKinsYmFX9bFij9c2Hw(result, r);
	return result;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getNimNode_54CrPIOFKsrtQd59cl9bHH3A_2)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	tyArray_YB3ke0PEM9bcAj9bAsA619bJA T1_;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	memset((void*)T1_, 0, sizeof(T1_));
	T1_[0] = (*m).typeNodesName;
	T1_[1] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) ((*m).typeNodes)));
	result = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_151), T1_, 2);
	(*m).typeNodes += ((NI) 1);
	return result;
}

N_NIMCALL(void, genTupleInfo_S15dyZBkWEXuVdK01uuCSQ)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* origType, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* name) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T1_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* expr;
	NI length;
	tyArray_YB3ke0PEM9bcAj9bAsA619bJA T15_;
	T1_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T1_ = rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_34));
	genTypeInfoAuxBase_7vipSqfL9aMtRf74ZXxa9aPw(m, typ, typ, name, T1_);
	expr = getNimNode_54CrPIOFKsrtQd59cl9bHH3A_2(m);
	length = sonsLen_gG7hUAX9cA629ahMLVL3xN4w(typ);
	{
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* tmp;
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T6_;
		tyArray_1UwZ4PfBDZcImViZT8dk0w T12_;
		if (!(((NI) 0) < length)) goto LA4_;
		tmp = getTempName_54CrPIOFKsrtQd59cl9bHH3A(m);
		memset((void*)T6_, 0, sizeof(T6_));
		T6_[0] = tmp;
		T6_[1] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (length)));
		addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 12))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_152), T6_, 2);
		{
			NI i;
			NI colontmp_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = (NI)(length - ((NI) 1));
			res = ((NI) 0);
			{
				while (1) {
					tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* a;
					tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* tmp2;
					tyArray_1UwZ4PfBDZcImViZT8dk0w T10_;
					tyArray_EcJXtY9cAr9bpvybuP0XpjyQ T11_;
					if (!(res <= colontmp_)) goto LA9;
					i = res;
					a = (*typ).sons->data[i];
					tmp2 = getNimNode_54CrPIOFKsrtQd59cl9bHH3A_2(m);
					memset((void*)T10_, 0, sizeof(T10_));
					T10_[0] = tmp;
					T10_[1] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (i)));
					T10_[2] = tmp2;
					addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_153), T10_, 3);
					memset((void*)T11_, 0, sizeof(T11_));
					T11_[0] = tmp2;
					T11_[1] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2(m, origType);
					T11_[2] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (i)));
					T11_[3] = genTypeInfo_x7sD9aHIDrXyWVDTVp9bclvA(m, a);
					addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_154), T11_, 4);
					res += ((NI) 1);
				} LA9: ;
			}
		}
		memset((void*)T12_, 0, sizeof(T12_));
		T12_[0] = expr;
		T12_[1] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (length)));
		T12_[2] = tmp;
		addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_155), T12_, 3);
	}
	goto LA2_;
	LA4_: ;
	{
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T14_;
		memset((void*)T14_, 0, sizeof(T14_));
		T14_[0] = expr;
		T14_[1] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (length)));
		addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_156), T14_, 2);
	}
	LA2_: ;
	memset((void*)T15_, 0, sizeof(T15_));
	T15_[0] = name;
	T15_[1] = expr;
	addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_157), T15_, 2);
}

N_NIMCALL(void, genTypeInfoAux_S15dyZBkWEXuVdK01uuCSQ_2)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* origType, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* name) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* base;
	base = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	{
		NIM_BOOL T3_;
		NI T4_;
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T6_;
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* x;
		T3_ = (NIM_BOOL)0;
		T4_ = (NI)0;
		T4_ = sonsLen_gG7hUAX9cA629ahMLVL3xN4w(typ);
		T3_ = (((NI) 0) < T4_);
		if (!(T3_)) goto LA5_;
		T6_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
		T6_ = lastSon_E41DMKHtT9c6sAMyyvhmSIw(typ);
		T3_ = !((T6_ == NIM_NIL));
		LA5_: ;
		if (!T3_) goto LA7_;
		x = lastSon_E41DMKHtT9c6sAMyyvhmSIw(typ);
		{
			if (!((*typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17))) goto LA11_;
			x = skipTypes_pLCdCGDuirMe9cspwviV9aVA(x, IL64(36028797033646352));
		}
		LA11_: ;
		base = genTypeInfo_x7sD9aHIDrXyWVDTVp9bclvA(m, x);
	}
	goto LA1_;
	LA7_: ;
	{
		base = rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_34));
	}
	LA1_: ;
	genTypeInfoAuxBase_7vipSqfL9aMtRf74ZXxa9aPw(m, typ, origType, name, base);
}

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

N_NIMCALL(void, useStringh_OShE9cXECylewqZ7ZpW2l0w)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m) {
	{
		if (!!((((*m).flags &(1U<<((NU)(((tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q) 4))&7U)))!=0))) goto LA3_;
		(*m).flags |= ((NU8)1)<<((((tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q) 4))%(sizeof(NU8)*8));
		includeHeader_PtTSTz0wtuSjGW8vGXThOQ(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_165));
	}
	LA3_: ;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, addrLoc_YU9cO6gMkMct9bbzvzDM0Dzw_2)(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	result = (*a).r;
	{
		NIM_BOOL T3_;
		tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w T5_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = !((((*a).flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 0))&15U)))!=0));
		if (!(T3_)) goto LA4_;
		T5_ = (tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w)0;
		T5_ = mapType_xD9bGC83PAN0OvetVlj1cZQ((*a).t);
		T3_ = !((T5_ == ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 17)));
		LA4_: ;
		if (!T3_) goto LA6_;
		T8_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T8_ = amp__OL8oYU3myMrLfqhcdP9b3Ig(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_135), result);
		result = amp__sUFtkQXj2TQTADyk9cLFdDg(T8_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_125));
	}
	LA6_: ;
	return result;
}

N_NIMCALL(void, genObjectInit_rMJx6ytAq9c39bDIl369aHfYQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg section, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a, NIM_BOOL takeAddr) {
	tyEnum_TTypeFieldResult_aBXTX9cIKT9b0yNlXSu9aPT9cw T1_;
	T1_ = (tyEnum_TTypeFieldResult_aBXTX9cIKT9b0yNlXSu9aPT9cw)0;
	T1_ = analyseObjectWithTypeField_cNBJiz6k2DZxlFvlKX7PMA(t);
	switch (T1_) {
	case ((tyEnum_TTypeFieldResult_aBXTX9cIKT9b0yNlXSu9aPT9cw) 0):
	{
	}
	break;
	case ((tyEnum_TTypeFieldResult_aBXTX9cIKT9b0yNlXSu9aPT9cw) 1):
	{
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* r;
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* s;
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T19_;
		r = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(a);
		{
			tyArray_ZqT9cbUNKsl55MABiLlPDxA T8_;
			if (!!(takeAddr)) goto LA6_;
			memset((void*)T8_, 0, sizeof(T8_));
			T8_[0] = r;
			r = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_132), T8_, 1);
		}
		LA6_: ;
		s = skipTypes_pLCdCGDuirMe9cspwviV9aVA(t, IL64(36028797019007248));
		{
			NIM_BOOL T11_;
			T11_ = (NIM_BOOL)0;
			T11_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
			if (T11_) goto LA12_;
			T11_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA12_: ;
			if (!!(T11_)) goto LA13_;
			{
				while (1) {
					NIM_BOOL T17_;
					T17_ = (NIM_BOOL)0;
					T17_ = ((*s).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17));
					if (!(T17_)) goto LA18_;
					T17_ = !(((*s).sons->data[((NI) 0)] == NIM_NIL));
					LA18_: ;
					if (!T17_) goto LA16;
					add_UJnSY21g59awhvSFBxJ9a9aPg(&r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_167));
					s = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*s).sons->data[((NI) 0)], IL64(36028797033646352));
				} LA16: ;
			}
		}
		LA13_: ;
		memset((void*)T19_, 0, sizeof(T19_));
		T19_[0] = r;
		T19_[1] = genTypeInfo_x7sD9aHIDrXyWVDTVp9bclvA((*p).module, t);
		linefmt_Z6xIOvD09aMfYvHnc82A86A(p, section, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_168), T19_, 2);
	}
	break;
	case ((tyEnum_TTypeFieldResult_aBXTX9cIKT9b0yNlXSu9aPT9cw) 2):
	{
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* r_2;
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T26_;
		{
			if (!takeAddr) goto LA23_;
			r_2 = addrLoc_YU9cO6gMkMct9bbzvzDM0Dzw_2(a);
		}
		goto LA21_;
		LA23_: ;
		{
			r_2 = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(a);
		}
		LA21_: ;
		memset((void*)T26_, 0, sizeof(T26_));
		T26_[0] = r_2;
		T26_[1] = genTypeInfo_x7sD9aHIDrXyWVDTVp9bclvA((*p).module, t);
		linefmt_Z6xIOvD09aMfYvHnc82A86A(p, section, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_169), T26_, 2);
	}
	break;
	}
}

N_NIMCALL(void, constructLoc_UnMShnfXExBqkSCjaZsFdw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* loc, NIM_BOOL isTemp) {
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ;
	typ = (*loc).t;
	{
		NIM_BOOL T3_;
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T6_;
		T3_ = (NIM_BOOL)0;
		T3_ = isComplexValueType_9aPB8K06mWuitdRENXgLyiQcgen(typ);
		if (!!(T3_)) goto LA4_;
		memset((void*)T6_, 0, sizeof(T6_));
		T6_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(loc);
		T6_[1] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, typ);
		linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_164), T6_, 2);
	}
	goto LA1_;
	LA4_: ;
	{
		{
			NIM_BOOL T10_;
			T10_ = (NIM_BOOL)0;
			T10_ = !(isTemp);
			if (T10_) goto LA11_;
			T10_ = containsGarbageCollectedRef_3xW85al2Ic6K09avBGxLjZg((*loc).t);
			LA11_: ;
			if (!T10_) goto LA12_;
			{
				NIM_BOOL T16_;
				tyArray_YB3ke0PEM9bcAj9bAsA619bJA T19_;
				T16_ = (NIM_BOOL)0;
				T16_ = isImportedCppType_B4nHhP3INN4MtYAgHK3Lrw(typ);
				if (!!(T16_)) goto LA17_;
				useStringh_OShE9cXECylewqZ7ZpW2l0w((*p).module);
				memset((void*)T19_, 0, sizeof(T19_));
				T19_[0] = addrLoc_YU9cO6gMkMct9bbzvzDM0Dzw_2(loc);
				T19_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(loc);
				linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_166), T19_, 2);
			}
			LA17_: ;
		}
		LA12_: ;
		genObjectInit_rMJx6ytAq9c39bDIl369aHfYQ(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), (*loc).t, loc, NIM_TRUE);
	}
	LA1_: ;
}

N_NIMCALL(void, getTemp_AAMs9asc5S78MBo8z9bTltgw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* result, NIM_BOOL needsInit) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T1_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T2_;
	tyArray_YB3ke0PEM9bcAj9bAsA619bJA T3_;
	(*p).labels += ((NI) 1);
	T1_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T1_ = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) ((*p).labels)));
	T2_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T2_ = amp__OL8oYU3myMrLfqhcdP9b3Ig(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_163), T1_);
	unsureAsgnRef((void**) (&(*result).r), amp__sUFtkQXj2TQTADyk9cLFdDg(T2_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_8)));
	memset((void*)T3_, 0, sizeof(T3_));
	T3_[0] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, t);
	T3_[1] = (*result).r;
	linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_55), T3_, 2);
	(*result).k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 1);
	unsureAsgnRef((void**) (&(*result).t), t);
	(*result).s = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 2);
	(*result).flags = 0;
	constructLoc_UnMShnfXExBqkSCjaZsFdw(p, (&(*result)), !(needsInit));
}

static N_INLINE(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, parentObj_ma47XFUT0jSXFKaLHrvIbQcgen)(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* accessor, tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	{
		NIM_BOOL T3_;
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T3_) goto LA4_;
		T3_ = (((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA4_: ;
		if (!!(T3_)) goto LA5_;
		memset((void*)T7_, 0, sizeof(T7_));
		T7_[0] = accessor;
		result = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_175), T7_, 1);
	}
	goto LA1_;
	LA5_: ;
	{
		result = accessor;
	}
	LA1_: ;
	return result;
}

N_NIMCALL(void, fillObjectFields_HYq5QAQNqLSWZyliakxHKw)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ) {
	tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg check;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T1_;
	memset((void*)(&check), 0, sizeof(check));
	chckNil((void*)(&check));
	memset((void*)(&check), 0, sizeof(check));
	initIntSet_a9a80eJplB17xrdZJ41Baww((&check));
	T1_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T1_ = getRecordFields_4jh2Ap8Gq9bkujpNS9cX22NA(m, typ, (&check));
	T1_;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, intLiteral_cVf7QPXGcGBUB7P9cfyCtRw)(NI64 i) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)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_pEztpD6TFe5jk3aCrOSACA(i);
	}
	goto LA1_;
	LA5_: ;
	{
		tyArray_j0xH32fTir0IvGY7WxQsQA T10_;
		if (!(i == IL64(-2147483648))) goto LA8_;
		memset((void*)T10_, 0, sizeof(T10_));
		result = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_181), T10_, 0);
	}
	goto LA1_;
	LA8_: ;
	{
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T14_;
		if (!((IL64(-9223372036854775807) - IL64(1)) < i)) goto LA12_;
		memset((void*)T14_, 0, sizeof(T14_));
		T14_[0] = rope_pEztpD6TFe5jk3aCrOSACA(i);
		result = ropecg_ail3PxtNU17Ini4A1vCFoA(NIM_NIL, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_182), T14_, 1);
	}
	goto LA1_;
	LA12_: ;
	{
		tyArray_j0xH32fTir0IvGY7WxQsQA T16_;
		memset((void*)T16_, 0, sizeof(T16_));
		result = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_183), T16_, 0);
	}
	LA1_: ;
	return result;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, int64Literal_cVf7QPXGcGBUB7P9cfyCtRw_2)(NI64 i) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	{
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T5_;
		if (!((IL64(-9223372036854775807) - IL64(1)) < i)) goto LA3_;
		memset((void*)T5_, 0, sizeof(T5_));
		T5_[0] = rope_pEztpD6TFe5jk3aCrOSACA(i);
		result = ropecg_ail3PxtNU17Ini4A1vCFoA(NIM_NIL, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_182), T5_, 1);
	}
	goto LA1_;
	LA3_: ;
	{
		tyArray_j0xH32fTir0IvGY7WxQsQA T7_;
		memset((void*)T7_, 0, sizeof(T7_));
		result = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_183), T7_, 0);
	}
	LA1_: ;
	return result;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, uint64Literal_I0vtsD8Q0RCbJ65Xzh0uqg)(NU64 i) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	NimStringDesc* T1_;
	NimStringDesc* T2_;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T1_ = (NimStringDesc*)0;
	T2_ = (NimStringDesc*)0;
	T2_ = dollar__rzAI8EMyNBAQwGODeohhAA(i);
	T1_ = rawNewString(T2_->Sup.len + 3);
appendString(T1_, T2_);
appendString(T1_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_186));
	result = rope_53CHEX05HP0HacydnwoUYg(T1_);
	return result;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getStrLit_ngAR8PLIIal5nOPXflxuFg)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, NimStringDesc* s) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T1_;
	tyArray_1UwZ4PfBDZcImViZT8dk0w T2_;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T1_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T1_ = cgsym_LDQwSdTgGBvWUKfBZpHXDw(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_81));
	T1_;
	result = getTempName_54CrPIOFKsrtQd59cl9bHH3A(m);
	memset((void*)T2_, 0, sizeof(T2_));
	T2_[0] = result;
	T2_[1] = makeCString_c9cmJUs9bNfunHyoffjBZxyg(s);
	T2_[2] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) ((s ? s->Sup.len : 0))));
	addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_192), T2_, 3);
	return result;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genLiteral_9cX45zW07vmEVg5MVCgp3Qg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* ty) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	{
		if (!(ty == NIM_NIL)) goto LA3_;
		internalError_MXmtqrCmYwtOPkDCFgUWKQ((*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_180));
	}
	LA3_: ;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 5) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 15):
	{
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T6_;
		T6_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
		T6_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA(ty, IL64(36028797028444432));
		switch ((*T6_).kind) {
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 5):
		{
			result = intLiteral_cVf7QPXGcGBUB7P9cfyCtRw((*n).kindU.S1.intVal);
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 1):
		{
			{
				tyArray_j0xH32fTir0IvGY7WxQsQA T13_;
				if (!!(((*n).kindU.S1.intVal == IL64(0)))) goto LA11_;
				memset((void*)T13_, 0, sizeof(T13_));
				result = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_184), T13_, 0);
			}
			goto LA9_;
			LA11_: ;
			{
				tyArray_j0xH32fTir0IvGY7WxQsQA T15_;
				memset((void*)T15_, 0, sizeof(T15_));
				result = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_185), T15_, 0);
			}
			LA9_: ;
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 35):
		{
			result = int64Literal_cVf7QPXGcGBUB7P9cfyCtRw_2((*n).kindU.S1.intVal);
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44):
		{
			result = uint64Literal_I0vtsD8Q0RCbJ65Xzh0uqg(((NU64) ((*n).kindU.S1.intVal)));
		}
		break;
		default:
		{
			tyArray_YB3ke0PEM9bcAj9bAsA619bJA T19_;
			memset((void*)T19_, 0, sizeof(T19_));
			T19_[0] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, ty);
			T19_[1] = intLiteral_cVf7QPXGcGBUB7P9cfyCtRw((*n).kindU.S1.intVal);
			result = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_187), T19_, 2);
		}
		break;
		}
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 23):
	{
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t;
		t = skipTypes_pLCdCGDuirMe9cspwviV9aVA(ty, IL64(36028797028444432));
		{
			NIM_BOOL T23_;
			NI id;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T27_;
			T23_ = (NIM_BOOL)0;
			T23_ = ((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25));
			if (!(T23_)) goto LA24_;
			T23_ = ((*t).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8));
			LA24_: ;
			if (!T23_) goto LA25_;
			id = nodeTableTestOrSet_tWmKJP7glBWLCISQFGGk2Q((&(*(*p).module).dataCache), n, ((NI) ((*(*p).module).labels)));
			T27_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T27_ = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (id)));
			result = amp__FyliSLNPyN7IibfEAQfpRA((*(*p).module).tmpBase, T27_);
			{
				tyArray_YB3ke0PEM9bcAj9bAsA619bJA T32_;
				if (!(id == ((NI) ((*(*p).module).labels)))) goto LA30_;
				(*(*p).module).labels += ((NI) 1);
				memset((void*)T32_, 0, sizeof(T32_));
				T32_[0] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, ty);
				T32_[1] = result;
				addf_8UUGW4xtgpag0J4uEnVLuQ(&(*(*p).module).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_188), T32_, 2);
			}
			LA30_: ;
		}
		goto LA21_;
		LA25_: ;
		{
			result = rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_189));
		}
		LA21_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 22):
	{
		{
			tyArray_j0xH32fTir0IvGY7WxQsQA T39_;
			if (!((*n).kindU.S3.strVal == 0)) goto LA37_;
			memset((void*)T39_, 0, sizeof(T39_));
			result = ropecg_ail3PxtNU17Ini4A1vCFoA((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_190), T39_, 0);
		}
		goto LA35_;
		LA37_: ;
		{
			tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T41_;
			NI id_2;
			T41_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
			T41_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA(ty, IL64(36028797028444432));
			if (!((*T41_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28))) goto LA42_;
			id_2 = nodeTableTestOrSet_tWmKJP7glBWLCISQFGGk2Q((&(*(*p).module).dataCache), n, ((NI) ((*(*p).module).labels)));
			{
				tyArray_ZqT9cbUNKsl55MABiLlPDxA T48_;
				if (!(id_2 == ((NI) ((*(*p).module).labels)))) goto LA46_;
				memset((void*)T48_, 0, sizeof(T48_));
				T48_[0] = getStrLit_ngAR8PLIIal5nOPXflxuFg((*p).module, (*n).kindU.S3.strVal);
				result = ropecg_ail3PxtNU17Ini4A1vCFoA((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_191), T48_, 1);
			}
			goto LA44_;
			LA46_: ;
			{
				tyArray_YB3ke0PEM9bcAj9bAsA619bJA T50_;
				memset((void*)T50_, 0, sizeof(T50_));
				T50_[0] = (*(*p).module).tmpBase;
				T50_[1] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (id_2)));
				result = ropecg_ail3PxtNU17Ini4A1vCFoA((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_193), T50_, 2);
			}
			LA44_: ;
		}
		goto LA35_;
		LA42_: ;
		{
			result = makeCString_c9cmJUs9bNfunHyoffjBZxyg((*n).kindU.S3.strVal);
		}
		LA35_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 16):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 18):
	{
		NimStringDesc* T53_;
		T53_ = (NimStringDesc*)0;
		T53_ = toStrMaxPrecision_bUxkE4LG1hqvhXMwxWRgAw((*n).kindU.S2.floatVal, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_10));
		result = rope_53CHEX05HP0HacydnwoUYg(T53_);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 17):
	{
		NimStringDesc* T55_;
		T55_ = (NimStringDesc*)0;
		T55_ = toStrMaxPrecision_bUxkE4LG1hqvhXMwxWRgAw((*n).kindU.S2.floatVal, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_194));
		result = rope_53CHEX05HP0HacydnwoUYg(T55_);
	}
	break;
	default:
	{
		NimStringDesc* T57_;
		T57_ = (NimStringDesc*)0;
		T57_ = rawNewString(reprEnum((NI)(*n).kind, (&NTI_G4E4Gxe7oI2Cm03rkiOzQw_))->Sup.len + 12);
appendString(T57_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_195));
appendString(T57_, reprEnum((NI)(*n).kind, (&NTI_G4E4Gxe7oI2Cm03rkiOzQw_)));
appendChar(T57_, 41);
		internalError_MXmtqrCmYwtOPkDCFgUWKQ((*n).info, T57_);
		result = NIM_NIL;
	}
	break;
	}
	return result;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genLiteral_9ay3JbWaSQA4xkrI8svQaZQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	result = genLiteral_9cX45zW07vmEVg5MVCgp3Qg(p, n, (*n).typ);
	return result;
}

N_NIMCALL(void, genCaseRange_KUz7NJSCXeUWRl4foF5zfg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* branch) {
	NI length;
	length = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(branch);
	{
		NI j;
		NI colontmp_;
		NI res;
		j = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)(length - ((NI) 2));
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA3;
				j = res;
				{
					if (!((*(*branch).kindU.S6.sons->data[j]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA6_;
					{
						tyArray_YB3ke0PEM9bcAj9bAsA619bJA T12_;
						if (!((CC_78I18QZNZFIv9ah7oETc0jg[(cCompiler_Dz9bRorQ2m6cBt9awpi4iwPw)- 1].Field19 &(1U<<((NU)(((tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg) 0))&7U)))!=0)) goto LA10_;
						memset((void*)T12_, 0, sizeof(T12_));
						T12_[0] = genLiteral_9ay3JbWaSQA4xkrI8svQaZQ(p, (*(*branch).kindU.S6.sons->data[j]).kindU.S6.sons->data[((NI) 0)]);
						T12_[1] = genLiteral_9ay3JbWaSQA4xkrI8svQaZQ(p, (*(*branch).kindU.S6.sons->data[j]).kindU.S6.sons->data[((NI) 1)]);
						lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_179), T12_, 2);
					}
					goto LA8_;
					LA10_: ;
					{
						tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* v;
						v = copyNode_lz8T1F9c0YwEOpUnrAUYgjg((*(*branch).kindU.S6.sons->data[j]).kindU.S6.sons->data[((NI) 0)]);
						{
							while (1) {
								tyArray_ZqT9cbUNKsl55MABiLlPDxA T16_;
								if (!((*v).kindU.S1.intVal <= (*(*(*branch).kindU.S6.sons->data[j]).kindU.S6.sons->data[((NI) 1)]).kindU.S1.intVal)) goto LA15;
								memset((void*)T16_, 0, sizeof(T16_));
								T16_[0] = genLiteral_9ay3JbWaSQA4xkrI8svQaZQ(p, v);
								lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_196), T16_, 1);
								(*v).kindU.S1.intVal += ((NI) 1);
							} LA15: ;
						}
					}
					LA8_: ;
				}
				goto LA4_;
				LA6_: ;
				{
					tyArray_ZqT9cbUNKsl55MABiLlPDxA T18_;
					memset((void*)T18_, 0, sizeof(T18_));
					T18_[0] = genLiteral_9ay3JbWaSQA4xkrI8svQaZQ(p, (*branch).kindU.S6.sons->data[j]);
					lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_196), T18_, 1);
				}
				LA4_: ;
				res += ((NI) 1);
			} LA3: ;
		}
	}
}

N_NIMCALL(void, genTraverseProc_RUbvuETyAUJdPxTEHkGW5g)(tyObject_TTraversalClosure_xQv4a9atAYFpL11GCS9cY9bCg* c, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* accessor, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ) {
{	{
		if (!(n == NIM_NIL)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 138):
	{
		{
			NI i;
			NI colontmp_;
			NI T7_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T7_ = (NI)0;
			T7_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
			colontmp_ = (NI)(T7_ - ((NI) 1));
			res = ((NI) 0);
			{
				while (1) {
					if (!(res <= colontmp_)) goto LA9;
					i = res;
					genTraverseProc_RUbvuETyAUJdPxTEHkGW5g(c, accessor, (*n).kindU.S6.sons->data[i], typ);
					res += ((NI) 1);
				} LA9: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 139):
	{
		tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p;
		tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* disc;
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T23_;
		tyArray_j0xH32fTir0IvGY7WxQsQA T36_;
		{
			if (!!(((*(*n).kindU.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA13_;
			internalError_MXmtqrCmYwtOPkDCFgUWKQ((*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_176));
		}
		LA13_: ;
		p = (*c).p;
		disc = (*(*n).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym;
		{
			if (!((*disc).loc.r == NIM_NIL)) goto LA17_;
			fillObjectFields_HYq5QAQNqLSWZyliakxHKw((*(*c).p).module, typ);
		}
		LA17_: ;
		{
			if (!((*disc).loc.t == NIM_NIL)) goto LA21_;
			internalError_MXmtqrCmYwtOPkDCFgUWKQ((*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_177));
		}
		LA21_: ;
		memset((void*)T23_, 0, sizeof(T23_));
		T23_[0] = accessor;
		T23_[1] = (*disc).loc.r;
		lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_178), T23_, 2);
		{
			NI i_2;
			NI colontmp__2;
			NI T25_;
			NI res_2;
			i_2 = (NI)0;
			colontmp__2 = (NI)0;
			T25_ = (NI)0;
			T25_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
			colontmp__2 = (NI)(T25_ - ((NI) 1));
			res_2 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* branch;
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T34_;
					tyArray_j0xH32fTir0IvGY7WxQsQA T35_;
					if (!(res_2 <= colontmp__2)) goto LA27;
					i_2 = res_2;
					branch = (*n).kindU.S6.sons->data[i_2];
					{
						if (!((*branch).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA30_;
						genCaseRange_KUz7NJSCXeUWRl4foF5zfg((*c).p, branch);
					}
					goto LA28_;
					LA30_: ;
					{
						tyArray_j0xH32fTir0IvGY7WxQsQA T33_;
						memset((void*)T33_, 0, sizeof(T33_));
						lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_197), T33_, 0);
					}
					LA28_: ;
					T34_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
					T34_ = lastSon_esDJA7239bJDiq4UrX9aHCjg(branch);
					genTraverseProc_RUbvuETyAUJdPxTEHkGW5g(c, accessor, T34_, typ);
					memset((void*)T35_, 0, sizeof(T35_));
					lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_198), T35_, 0);
					res_2 += ((NI) 1);
				} LA27: ;
			}
		}
		memset((void*)T36_, 0, sizeof(T36_));
		lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_199), T36_, 0);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* field;
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T50_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T51_;
		field = (*n).kindU.S4.sym;
		{
			if (!((*(*field).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 63))) goto LA40_;
			goto BeforeRet_;
		}
		LA40_: ;
		{
			if (!((*field).loc.r == NIM_NIL)) goto LA44_;
			fillObjectFields_HYq5QAQNqLSWZyliakxHKw((*(*c).p).module, typ);
		}
		LA44_: ;
		{
			if (!((*field).loc.t == NIM_NIL)) goto LA48_;
			internalError_MXmtqrCmYwtOPkDCFgUWKQ((*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_177));
		}
		LA48_: ;
		memset((void*)T50_, 0, sizeof(T50_));
		T50_[0] = accessor;
		T50_[1] = (*field).loc.r;
		T51_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T51_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95), T50_, 2);
		genTraverseProc_n9bXeejbbKQAlbhP9bvaDLvg_2(c, T51_, (*field).loc.t);
	}
	break;
	default:
	{
		internalError_MXmtqrCmYwtOPkDCFgUWKQ((*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_177));
	}
	break;
	}
	}BeforeRet_: ;
}

N_NIMCALL(void, lineCg_Z6xIOvD09aMfYvHnc82A86A_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg s, NimStringDesc* frmt, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** args, NI argsLen_0) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T1_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T2_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T3_;
	T1_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
	T1_ = s_OUiru83H7n4zC9cnXN2KbrQcgen(p, s);
	T2_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T2_ = ropecg_ail3PxtNU17Ini4A1vCFoA((*p).module, frmt, args, argsLen_0);
	T3_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T3_ = indentLine_Fi9b9bJCT10U0UUyX38f9b9adA(p, T2_);
	add_cDalAhgBlDWoYHadkaqqxw(T1_, T3_);
}

N_NIMCALL(void, genTraverseProc_n9bXeejbbKQAlbhP9bvaDLvg_2)(tyObject_TTraversalClosure_xQv4a9atAYFpL11GCS9cY9bCg* c, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* accessor, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* 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):
	{
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T6_;
		T6_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
		T6_ = lastSon_E41DMKHtT9c6sAMyyvhmSIw(typ);
		genTraverseProc_n9bXeejbbKQAlbhP9bvaDLvg_2(c, accessor, T6_);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
	{
		NI64 arraySize;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA i;
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T8_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* oldCode;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T9_;
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T10_;
		NI oldLen;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T11_;
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T12_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T13_;
		arraySize = lengthOrd_HUiBYxvKiECXCv8BzQNheg_3((*typ).sons->data[((NI) 0)]);
		memset((void*)(&i), 0, sizeof(i));
		T8_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
		T8_ = getSysType_dewjtBqyEbcVGQRaQFtDAw(((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31));
		getTemp_AAMs9asc5S78MBo8z9bTltgw(p, T8_, (&i), NIM_FALSE);
		T9_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
		T9_ = s_OUiru83H7n4zC9cnXN2KbrQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		oldCode = (*T9_);
		memset((void*)T10_, 0, sizeof(T10_));
		T10_[0] = i.r;
		T10_[1] = rope_pEztpD6TFe5jk3aCrOSACA(arraySize);
		linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_173), T10_, 2);
		T11_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
		T11_ = s_OUiru83H7n4zC9cnXN2KbrQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		oldLen = len_Z8dKuB9cr9b9ciPiCD63t6h5w((*T11_));
		memset((void*)T12_, 0, sizeof(T12_));
		T12_[0] = accessor;
		T12_[1] = i.r;
		T13_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T13_ = ropecg_ail3PxtNU17Ini4A1vCFoA(NIM_NIL, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_151), T12_, 2);
		genTraverseProc_n9bXeejbbKQAlbhP9bvaDLvg_2(c, T13_, (*typ).sons->data[((NI) 1)]);
		{
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T16_;
			NI T17_;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T20_;
			T16_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
			T16_ = s_OUiru83H7n4zC9cnXN2KbrQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			T17_ = (NI)0;
			T17_ = len_Z8dKuB9cr9b9ciPiCD63t6h5w((*T16_));
			if (!(T17_ == oldLen)) goto LA18_;
			T20_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
			T20_ = s_OUiru83H7n4zC9cnXN2KbrQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			unsureAsgnRef((void**) (&(*T20_)), oldCode);
		}
		goto LA14_;
		LA18_: ;
		{
			tyArray_j0xH32fTir0IvGY7WxQsQA T22_;
			memset((void*)T22_, 0, sizeof(T22_));
			lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_174), T22_, 0);
		}
		LA14_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17):
	{
		{
			NI i_2;
			NI colontmp_;
			NI T25_;
			NI res;
			i_2 = (NI)0;
			colontmp_ = (NI)0;
			T25_ = (NI)0;
			T25_ = sonsLen_gG7hUAX9cA629ahMLVL3xN4w(typ);
			colontmp_ = (NI)(T25_ - ((NI) 1));
			res = ((NI) 0);
			{
				while (1) {
					tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* x;
					tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T32_;
					if (!(res <= colontmp_)) goto LA27;
					i_2 = res;
					x = (*typ).sons->data[i_2];
					{
						if (!!((x == NIM_NIL))) goto LA30_;
						x = skipTypes_pLCdCGDuirMe9cspwviV9aVA(x, IL64(36028797033646352));
					}
					LA30_: ;
					T32_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
					T32_ = parentObj_ma47XFUT0jSXFKaLHrvIbQcgen(accessor, (*(*c).p).module);
					genTraverseProc_n9bXeejbbKQAlbhP9bvaDLvg_2(c, T32_, x);
					res += ((NI) 1);
				} LA27: ;
			}
		}
		{
			if (!!(((*typ).n == NIM_NIL))) goto LA35_;
			genTraverseProc_RUbvuETyAUJdPxTEHkGW5g(c, accessor, (*typ).n, typ);
		}
		LA35_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ_2;
		typ_2 = getUniqueType_HEGWNfEn5UAm9aUHUXxHEwQ(typ);
		{
			NI i_3;
			NI colontmp__2;
			NI T39_;
			NI res_2;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			T39_ = (NI)0;
			T39_ = sonsLen_gG7hUAX9cA629ahMLVL3xN4w(typ_2);
			colontmp__2 = (NI)(T39_ - ((NI) 1));
			res_2 = ((NI) 0);
			{
				while (1) {
					tyArray_YB3ke0PEM9bcAj9bAsA619bJA T42_;
					tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T43_;
					if (!(res_2 <= colontmp__2)) goto LA41;
					i_3 = res_2;
					memset((void*)T42_, 0, sizeof(T42_));
					T42_[0] = accessor;
					T42_[1] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (i_3)));
					T43_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
					T43_ = ropecg_ail3PxtNU17Ini4A1vCFoA(NIM_NIL, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_200), T42_, 2);
					genTraverseProc_n9bXeejbbKQAlbhP9bvaDLvg_2(c, T43_, (*typ_2).sons->data[i_3]);
					res_2 += ((NI) 1);
				} LA41: ;
			}
		}
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
	{
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T45_;
		memset((void*)T45_, 0, sizeof(T45_));
		T45_[0] = accessor;
		lineCg_Z6xIOvD09aMfYvHnc82A86A_2(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), (*c).visitorFrmt, T45_, 1);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25):
	{
		{
			tyArray_ZqT9cbUNKsl55MABiLlPDxA T51_;
			tyArray_ZqT9cbUNKsl55MABiLlPDxA T52_;
			if (!((*typ).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8))) goto LA49_;
			memset((void*)T51_, 0, sizeof(T51_));
			memset((void*)T52_, 0, sizeof(T52_));
			T52_[0] = accessor;
			T51_[0] = ropecg_ail3PxtNU17Ini4A1vCFoA(NIM_NIL, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_201), T52_, 1);
			lineCg_Z6xIOvD09aMfYvHnc82A86A_2(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), (*c).visitorFrmt, T51_, 1);
		}
		LA49_: ;
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
}

N_NIMCALL(void, genTraverseProcSeq_n9bXeejbbKQAlbhP9bvaDLvg)(tyObject_TTraversalClosure_xQv4a9atAYFpL11GCS9cY9bCg* c, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* accessor, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ) {
	tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA i;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T1_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* oldCode;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T2_;
	tyArray_1UwZ4PfBDZcImViZT8dk0w T3_;
	NimStringDesc* T4_;
	NI oldLen;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T12_;
	tyArray_YB3ke0PEM9bcAj9bAsA619bJA T13_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T14_;
	p = (*c).p;
	memset((void*)(&i), 0, sizeof(i));
	T1_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
	T1_ = getSysType_dewjtBqyEbcVGQRaQFtDAw(((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31));
	getTemp_AAMs9asc5S78MBo8z9bTltgw(p, T1_, (&i), NIM_FALSE);
	T2_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
	T2_ = s_OUiru83H7n4zC9cnXN2KbrQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	oldCode = (*T2_);
	memset((void*)T3_, 0, sizeof(T3_));
	T3_[0] = i.r;
	T3_[1] = accessor;
	T4_ = (NimStringDesc*)0;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T7_) goto LA8_;
		T7_ = (((*(*(*(*c).p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA8_: ;
		if (!T7_) goto LA9_;
		T4_ = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_171));
	}
	goto LA5_;
	LA9_: ;
	{
		T4_ = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_172));
	}
	LA5_: ;
	T3_[2] = rope_53CHEX05HP0HacydnwoUYg(T4_);
	lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_170), T3_, 3);
	T12_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
	T12_ = s_OUiru83H7n4zC9cnXN2KbrQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	oldLen = len_Z8dKuB9cr9b9ciPiCD63t6h5w((*T12_));
	memset((void*)T13_, 0, sizeof(T13_));
	T13_[0] = accessor;
	T13_[1] = i.r;
	T14_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T14_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_202), T13_, 2);
	genTraverseProc_n9bXeejbbKQAlbhP9bvaDLvg_2(c, T14_, (*typ).sons->data[((NI) 0)]);
	{
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T17_;
		NI T18_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T21_;
		T17_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
		T17_ = s_OUiru83H7n4zC9cnXN2KbrQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		T18_ = (NI)0;
		T18_ = len_Z8dKuB9cr9b9ciPiCD63t6h5w((*T17_));
		if (!(T18_ == oldLen)) goto LA19_;
		T21_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
		T21_ = s_OUiru83H7n4zC9cnXN2KbrQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		unsureAsgnRef((void**) (&(*T21_)), oldCode);
	}
	goto LA15_;
	LA19_: ;
	{
		tyArray_j0xH32fTir0IvGY7WxQsQA T23_;
		memset((void*)T23_, 0, sizeof(T23_));
		lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_174), T23_, 0);
	}
	LA15_: ;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genTraverseProc_EqgOPYBI4Fsll3kWDVYhBg)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* origTyp, tyArray_qtqsWM5aXmcpMIVmvq3kAA sig, tyEnum_TTypeInfoReason_JUIK4Zo6UqHyAc9c1cbuWvg reason) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	tyObject_TTraversalClosure_xQv4a9atAYFpL11GCS9cY9bCg c;
	tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T1_;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* header;
	tyArray_ZqT9cbUNKsl55MABiLlPDxA T4_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* t;
	tyArray_ZqT9cbUNKsl55MABiLlPDxA T5_;
	tyArray_ZqT9cbUNKsl55MABiLlPDxA T6_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* generatedProc;
	tyArray_EcJXtY9cAr9bpvybuP0XpjyQ T21_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T22_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T23_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T24_;
	tyArray_ZqT9cbUNKsl55MABiLlPDxA T25_;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	memset((void*)(&c), 0, sizeof(c));
	p = newProc_Mqi1a0mHlQ8XakVweFEAvQ(NIM_NIL, m);
	T1_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T1_ = getTypeName_9bhJs9b9btyu2lwCQxVmPMP2Q_3(m, origTyp, sig);
	result = amp__OL8oYU3myMrLfqhcdP9b3Ig(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_158), T1_);
	typ = skipTypes_pLCdCGDuirMe9cspwviV9aVA(origTyp, IL64(36028797019007248));
	switch (reason) {
	case ((tyEnum_TTypeInfoReason_JUIK4Zo6UqHyAc9c1cbuWvg) 0):
	{
		c.visitorFrmt = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_159));
	}
	break;
	default:
	{
	}
	break;
	}
	memset((void*)T4_, 0, sizeof(T4_));
	T4_[0] = result;
	header = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_160), T4_, 1);
	t = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2(m, typ);
	memset((void*)T5_, 0, sizeof(T5_));
	T5_[0] = t;
	lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_161), T5_, 1);
	memset((void*)T6_, 0, sizeof(T6_));
	T6_[0] = t;
	lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_162), T6_, 1);
	c.p = p;
	{
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T11_;
		if (!((*typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24))) goto LA9_;
		T11_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T11_ = rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_203));
		genTraverseProcSeq_n9bXeejbbKQAlbhP9bvaDLvg((&c), T11_, typ);
	}
	goto LA7_;
	LA9_: ;
	{
		{
			tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T15_;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T18_;
			T15_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
			T15_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*typ).sons->data[((NI) 0)], IL64(36028797019007248));
			if (!((*T15_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16))) goto LA16_;
			T18_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T18_ = rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_203));
			genTraverseProc_n9bXeejbbKQAlbhP9bvaDLvg_2((&c), T18_, (*typ).sons->data[((NI) 0)]);
		}
		goto LA13_;
		LA16_: ;
		{
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T20_;
			T20_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T20_ = rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_204));
			genTraverseProc_n9bXeejbbKQAlbhP9bvaDLvg_2((&c), T20_, (*typ).sons->data[((NI) 0)]);
		}
		LA13_: ;
	}
	LA7_: ;
	memset((void*)T21_, 0, sizeof(T21_));
	T21_[0] = header;
	T22_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
	T22_ = s_OUiru83H7n4zC9cnXN2KbrQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
	T21_[1] = (*T22_);
	T23_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
	T23_ = s_OUiru83H7n4zC9cnXN2KbrQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1));
	T21_[2] = (*T23_);
	T24_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
	T24_ = s_OUiru83H7n4zC9cnXN2KbrQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	T21_[3] = (*T24_);
	generatedProc = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_205), T21_, 4);
	memset((void*)T25_, 0, sizeof(T25_));
	T25_[0] = header;
	addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 7))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_206), T25_, 1);
	add_cDalAhgBlDWoYHadkaqqxw(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], generatedProc);
	return result;
}

N_NIMCALL(void, genArrayInfo_pCzwaQST34Sl4wH9auMjS9ag)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* name) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T1_;
	T1_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T1_ = genTypeInfo_x7sD9aHIDrXyWVDTVp9bclvA(m, (*typ).sons->data[((NI) 1)]);
	genTypeInfoAuxBase_7vipSqfL9aMtRf74ZXxa9aPw(m, typ, typ, name, T1_);
}

N_NIMCALL(void, genSetInfo_pCzwaQST34Sl4wH9auMjS9ag_2)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* name) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* tmp;
	tyArray_1UwZ4PfBDZcImViZT8dk0w T1_;
	NI64 T2_;
	genTypeInfoAux_S15dyZBkWEXuVdK01uuCSQ_2(m, typ, typ, name);
	tmp = getNimNode_54CrPIOFKsrtQd59cl9bHH3A_2(m);
	memset((void*)T1_, 0, sizeof(T1_));
	T1_[0] = tmp;
	T2_ = (NI64)0;
	T2_ = firstOrd_HUiBYxvKiECXCv8BzQNheg(typ);
	T1_[1] = rope_pEztpD6TFe5jk3aCrOSACA(T2_);
	T1_[2] = name;
	addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_208), T1_, 3);
}

N_NIMCALL(void, genEnumInfo_pCzwaQST34Sl4wH9auMjS9ag_3)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* name) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* nodePtrs;
	NI length;
	tyArray_YB3ke0PEM9bcAj9bAsA619bJA T1_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* enumNames;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* specialCases;
	NI firstNimNode;
	NIM_BOOL hasHoles;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* enumArray;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* counter;
	tyArray_ZqT9cbUNKsl55MABiLlPDxA T24_;
	tyArray_1UwZ4PfBDZcImViZT8dk0w T25_;
	tyArray_i17eA0S8auwIIitiN9cmr7w T26_;
	tyArray_EcJXtY9cAr9bpvybuP0XpjyQ T27_;
	genTypeInfoAux_S15dyZBkWEXuVdK01uuCSQ_2(m, typ, typ, name);
	nodePtrs = getTempName_54CrPIOFKsrtQd59cl9bHH3A(m);
	length = sonsLen_qPWPHw7WgJeEVYUdcaRIig((*typ).n);
	memset((void*)T1_, 0, sizeof(T1_));
	T1_[0] = nodePtrs;
	T1_[1] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (length)));
	addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 12))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_152), T1_, 2);
	enumNames = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	specialCases = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	firstNimNode = (*m).typeNodes;
	hasHoles = NIM_FALSE;
	{
		NI i;
		NI colontmp_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)(length - ((NI) 1));
		res = ((NI) 0);
		{
			while (1) {
				tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* field;
				tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* elemNode;
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				field = (*(*(*typ).n).kindU.S6.sons->data[i]).kindU.S4.sym;
				elemNode = getNimNode_54CrPIOFKsrtQd59cl9bHH3A_2(m);
				{
					tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T9_;
					if (!((*field).ast == NIM_NIL)) goto LA7_;
					T9_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
					T9_ = makeCString_c9cmJUs9bNfunHyoffjBZxyg((*(*field).name).s);
					add_cDalAhgBlDWoYHadkaqqxw(&enumNames, T9_);
				}
				goto LA5_;
				LA7_: ;
				{
					tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T11_;
					T11_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
					T11_ = makeCString_c9cmJUs9bNfunHyoffjBZxyg((*(*field).ast).kindU.S3.strVal);
					add_cDalAhgBlDWoYHadkaqqxw(&enumNames, T11_);
				}
				LA5_: ;
				{
					NimStringDesc* T16_;
					if (!(i < (NI)(length - ((NI) 1)))) goto LA14_;
					T16_ = (NimStringDesc*)0;
					T16_ = rawNewString(tnl_Gp8EwkcsAP9am1klnCCHM4w->Sup.len + 2);
appendString(T16_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_119));
appendString(T16_, tnl_Gp8EwkcsAP9am1klnCCHM4w);
					add_UJnSY21g59awhvSFBxJ9a9aPg(&enumNames, T16_);
				}
				LA14_: ;
				{
					NIM_BOOL T19_;
					tyArray_YB3ke0PEM9bcAj9bAsA619bJA T23_;
					T19_ = (NIM_BOOL)0;
					T19_ = !(((*field).position == i));
					if (T19_) goto LA20_;
					T19_ = (((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 5))&63U)))!=0);
					LA20_: ;
					if (!T19_) goto LA21_;
					memset((void*)T23_, 0, sizeof(T23_));
					T23_[0] = elemNode;
					T23_[1] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) ((*field).position)));
					addf_8UUGW4xtgpag0J4uEnVLuQ(&specialCases, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_209), T23_, 2);
					hasHoles = NIM_TRUE;
				}
				LA21_: ;
				res += ((NI) 1);
			} LA4: ;
		}
	}
	enumArray = getTempName_54CrPIOFKsrtQd59cl9bHH3A(m);
	counter = getTempName_54CrPIOFKsrtQd59cl9bHH3A(m);
	memset((void*)T24_, 0, sizeof(T24_));
	T24_[0] = counter;
	addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 12))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_210), T24_, 1);
	memset((void*)T25_, 0, sizeof(T25_));
	T25_[0] = enumArray;
	T25_[1] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (length)));
	T25_[2] = enumNames;
	addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 12))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_211), T25_, 3);
	memset((void*)T26_, 0, sizeof(T26_));
	T26_[0] = counter;
	T26_[1] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (length)));
	T26_[2] = (*m).typeNodesName;
	T26_[3] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (firstNimNode)));
	T26_[4] = enumArray;
	T26_[5] = nodePtrs;
	addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_212), T26_, 6);
	add_cDalAhgBlDWoYHadkaqqxw(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], specialCases);
	memset((void*)T27_, 0, sizeof(T27_));
	T27_[0] = getNimNode_54CrPIOFKsrtQd59cl9bHH3A_2(m);
	T27_[1] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (length)));
	T27_[2] = nodePtrs;
	T27_[3] = name;
	addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_213), T27_, 4);
	{
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T32_;
		if (!hasHoles) goto LA30_;
		memset((void*)T32_, 0, sizeof(T32_));
		T32_[0] = name;
		addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_214), T32_, 1);
	}
	LA30_: ;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, discriminatorTableName_NlU3VxpG9aX285JoLNfLBow)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* objtype, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* d) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* objtype_2;
	tyArray_YB3ke0PEM9bcAj9bAsA619bJA T8_;
	tyArray_qtqsWM5aXmcpMIVmvq3kAA T9_;
	NimStringDesc* T10_;
	NimStringDesc* T11_;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	objtype_2 = objtype;
	{
		while (1) {
			tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* T3_;
			T3_ = (tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw*)0;
			T3_ = lookupInRecord_s51A17ot5EKQXx9bfMBO03w((*objtype_2).n, (*d).name);
			if (!(T3_ == NIM_NIL)) goto LA2;
			objtype_2 = (*objtype_2).sons->data[((NI) 0)];
		} LA2: ;
	}
	{
		if (!((*objtype_2).sym == NIM_NIL)) goto LA6_;
		internalError_MXmtqrCmYwtOPkDCFgUWKQ((*d).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_215));
	}
	LA6_: ;
	memset((void*)T8_, 0, sizeof(T8_));
	memset((void*)T9_, 0, sizeof(T9_));
	hashType_Cq9bE7w5AuevkqC3yjwXHng(objtype_2, 2, T9_);
	T10_ = (NimStringDesc*)0;
	T10_ = dollar__cjda4doS9ccFOjsWsGu9aa2A(T9_);
	T8_[0] = rope_53CHEX05HP0HacydnwoUYg(T10_);
	T11_ = (NimStringDesc*)0;
	T11_ = mangle_0ctHksTXSPyaxjBOgK4TiA((*(*d).name).s);
	T8_[1] = rope_53CHEX05HP0HacydnwoUYg(T11_);
	result = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_216), T8_, 2);
	return result;
}

N_NIMCALL(void, genObjectFields_KKmA1Gt2gXoRikhZS1PL9cw)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* origType, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* expr) {
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 138):
	{
		NI L;
		L = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
		{
			if (!(L == ((NI) 1))) goto LA4_;
			genObjectFields_KKmA1Gt2gXoRikhZS1PL9cw(m, typ, origType, (*n).kindU.S6.sons->data[((NI) 0)], expr);
		}
		goto LA2_;
		LA4_: ;
		{
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* tmp;
			tyArray_YB3ke0PEM9bcAj9bAsA619bJA T9_;
			tyArray_1UwZ4PfBDZcImViZT8dk0w T14_;
			if (!(((NI) 0) < L)) goto LA7_;
			tmp = getTempName_54CrPIOFKsrtQd59cl9bHH3A(m);
			memset((void*)T9_, 0, sizeof(T9_));
			T9_[0] = tmp;
			T9_[1] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (L)));
			addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 12))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_152), T9_, 2);
			{
				NI i;
				NI colontmp_;
				NI res;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = (NI)(L - ((NI) 1));
				res = ((NI) 0);
				{
					while (1) {
						tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* tmp2;
						tyArray_1UwZ4PfBDZcImViZT8dk0w T13_;
						if (!(res <= colontmp_)) goto LA12;
						i = res;
						tmp2 = getNimNode_54CrPIOFKsrtQd59cl9bHH3A_2(m);
						memset((void*)T13_, 0, sizeof(T13_));
						T13_[0] = tmp;
						T13_[1] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (i)));
						T13_[2] = tmp2;
						addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_153), T13_, 3);
						genObjectFields_KKmA1Gt2gXoRikhZS1PL9cw(m, typ, origType, (*n).kindU.S6.sons->data[i], tmp2);
						res += ((NI) 1);
					} LA12: ;
				}
			}
			memset((void*)T14_, 0, sizeof(T14_));
			T14_[0] = expr;
			T14_[1] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (L)));
			T14_[2] = tmp;
			addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_155), T14_, 3);
		}
		goto LA2_;
		LA7_: ;
		{
			tyArray_YB3ke0PEM9bcAj9bAsA619bJA T16_;
			memset((void*)T16_, 0, sizeof(T16_));
			T16_[0] = expr;
			T16_[1] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (L)));
			addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_156), T16_, 2);
		}
		LA2_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 139):
	{
		tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* field;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* tmp_2;
		NI64 L_2;
		tyArray_Qvn0o9b1NKIPKPXftbKDxrA T26_;
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T27_;
		field = (*(*n).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym;
		tmp_2 = discriminatorTableName_NlU3VxpG9aX285JoLNfLBow(m, typ, field);
		L_2 = lengthOrd_HUiBYxvKiECXCv8BzQNheg_3((*field).typ);
		{
			if (!((*field).loc.r == NIM_NIL)) goto LA20_;
			fillObjectFields_HYq5QAQNqLSWZyliakxHKw(m, typ);
		}
		LA20_: ;
		{
			if (!((*field).loc.t == NIM_NIL)) goto LA24_;
			internalError_MXmtqrCmYwtOPkDCFgUWKQ((*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_217));
		}
		LA24_: ;
		memset((void*)T26_, 0, sizeof(T26_));
		T26_[0] = expr;
		T26_[1] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2(m, origType);
		T26_[2] = (*field).loc.r;
		T26_[3] = genTypeInfo_x7sD9aHIDrXyWVDTVp9bclvA(m, (*field).typ);
		T26_[4] = makeCString_c9cmJUs9bNfunHyoffjBZxyg((*(*field).name).s);
		T26_[5] = tmp_2;
		T26_[6] = rope_pEztpD6TFe5jk3aCrOSACA(L_2);
		addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_218), T26_, 7);
		memset((void*)T27_, 0, sizeof(T27_));
		T27_[0] = tmp_2;
		T27_[1] = rope_pEztpD6TFe5jk3aCrOSACA((NI64)(L_2 + IL64(1)));
		addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_219), T27_, 2);
		{
			NI i_2;
			NI colontmp__2;
			NI T29_;
			NI res_2;
			i_2 = (NI)0;
			colontmp__2 = (NI)0;
			T29_ = (NI)0;
			T29_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
			colontmp__2 = (NI)(T29_ - ((NI) 1));
			res_2 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b;
					tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* tmp2_2;
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T32_;
					if (!(res_2 <= colontmp__2)) goto LA31;
					i_2 = res_2;
					b = (*n).kindU.S6.sons->data[i_2];
					tmp2_2 = getNimNode_54CrPIOFKsrtQd59cl9bHH3A_2(m);
					T32_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
					T32_ = lastSon_esDJA7239bJDiq4UrX9aHCjg(b);
					genObjectFields_KKmA1Gt2gXoRikhZS1PL9cw(m, typ, origType, T32_, tmp2_2);
					switch ((*b).kind) {
					case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 85):
					{
						{
							NI T36_;
							T36_ = (NI)0;
							T36_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(b);
							if (!(T36_ < ((NI) 2))) goto LA37_;
							internalError_MXmtqrCmYwtOPkDCFgUWKQ((*b).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_220));
						}
						LA37_: ;
						{
							NI j;
							NI colontmp__3;
							NI T40_;
							NI res_3;
							j = (NI)0;
							colontmp__3 = (NI)0;
							T40_ = (NI)0;
							T40_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(b);
							colontmp__3 = (NI)(T40_ - ((NI) 2));
							res_3 = ((NI) 0);
							{
								while (1) {
									if (!(res_3 <= colontmp__3)) goto LA42;
									j = res_3;
									{
										NI x;
										NI64 T47_;
										NI y;
										NI64 T48_;
										if (!((*(*b).kindU.S6.sons->data[j]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA45_;
										T47_ = (NI64)0;
										T47_ = getOrdValue_MzTDl1zEXJLD4sql7PhCwA((*(*b).kindU.S6.sons->data[j]).kindU.S6.sons->data[((NI) 0)]);
										x = ((NI) (T47_));
										T48_ = (NI64)0;
										T48_ = getOrdValue_MzTDl1zEXJLD4sql7PhCwA((*(*b).kindU.S6.sons->data[j]).kindU.S6.sons->data[((NI) 1)]);
										y = ((NI) (T48_));
										{
											while (1) {
												tyArray_1UwZ4PfBDZcImViZT8dk0w T51_;
												if (!(x <= y)) goto LA50;
												memset((void*)T51_, 0, sizeof(T51_));
												T51_[0] = tmp_2;
												T51_[1] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (x)));
												T51_[2] = tmp2_2;
												addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_153), T51_, 3);
												x += ((NI) 1);
											} LA50: ;
										}
									}
									goto LA43_;
									LA45_: ;
									{
										tyArray_1UwZ4PfBDZcImViZT8dk0w T53_;
										NI64 T54_;
										memset((void*)T53_, 0, sizeof(T53_));
										T53_[0] = tmp_2;
										T54_ = (NI64)0;
										T54_ = getOrdValue_MzTDl1zEXJLD4sql7PhCwA((*b).kindU.S6.sons->data[j]);
										T53_[1] = rope_pEztpD6TFe5jk3aCrOSACA(T54_);
										T53_[2] = tmp2_2;
										addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_153), T53_, 3);
									}
									LA43_: ;
									res_3 += ((NI) 1);
								} LA42: ;
							}
						}
					}
					break;
					case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 88):
					{
						tyArray_1UwZ4PfBDZcImViZT8dk0w T56_;
						memset((void*)T56_, 0, sizeof(T56_));
						T56_[0] = tmp_2;
						T56_[1] = rope_pEztpD6TFe5jk3aCrOSACA(L_2);
						T56_[2] = tmp2_2;
						addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_153), T56_, 3);
					}
					break;
					default:
					{
						internalError_MXmtqrCmYwtOPkDCFgUWKQ((*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_221));
					}
					break;
					}
					res_2 += ((NI) 1);
				} LA31: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* field_2;
		field_2 = (*n).kindU.S4.sym;
		{
			tyArray_zr9bwyAl6fC7FLYwf5Lbz5w T71_;
			if (!((*field_2).kindU.S4.bitsize == ((NI) 0))) goto LA61_;
			{
				if (!((*field_2).loc.r == NIM_NIL)) goto LA65_;
				fillObjectFields_HYq5QAQNqLSWZyliakxHKw(m, typ);
			}
			LA65_: ;
			{
				if (!((*field_2).loc.t == NIM_NIL)) goto LA69_;
				internalError_MXmtqrCmYwtOPkDCFgUWKQ((*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_217));
			}
			LA69_: ;
			memset((void*)T71_, 0, sizeof(T71_));
			T71_[0] = expr;
			T71_[1] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2(m, origType);
			T71_[2] = (*field_2).loc.r;
			T71_[3] = genTypeInfo_x7sD9aHIDrXyWVDTVp9bclvA(m, (*field_2).typ);
			T71_[4] = makeCString_c9cmJUs9bNfunHyoffjBZxyg((*(*field_2).name).s);
			addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_222), T71_, 5);
		}
		LA61_: ;
	}
	break;
	default:
	{
		internalError_MXmtqrCmYwtOPkDCFgUWKQ((*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_217));
	}
	break;
	}
}

N_NIMCALL(void, genObjectInfo_S15dyZBkWEXuVdK01uuCSQ_3)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* origType, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* name) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* tmp;
	tyArray_YB3ke0PEM9bcAj9bAsA619bJA T12_;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t;
	{
		if (!((*typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17))) goto LA3_;
		genTypeInfoAux_S15dyZBkWEXuVdK01uuCSQ_2(m, typ, origType, name);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T6_;
		T6_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T6_ = rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_34));
		genTypeInfoAuxBase_7vipSqfL9aMtRf74ZXxa9aPw(m, typ, origType, name, T6_);
	}
	LA1_: ;
	tmp = getNimNode_54CrPIOFKsrtQd59cl9bHH3A_2(m);
	{
		NIM_BOOL T9_;
		T9_ = (NIM_BOOL)0;
		T9_ = isImportedType_B4nHhP3INN4MtYAgHK3Lrw_2(typ);
		if (!!(T9_)) goto LA10_;
		genObjectFields_KKmA1Gt2gXoRikhZS1PL9cw(m, typ, origType, (*typ).n, tmp);
	}
	LA10_: ;
	memset((void*)T12_, 0, sizeof(T12_));
	T12_[0] = name;
	T12_[1] = tmp;
	addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_157), T12_, 2);
	t = (*typ).sons->data[((NI) 0)];
	{
		while (1) {
			if (!!((t == NIM_NIL))) goto LA14;
			t = skipTypes_pLCdCGDuirMe9cspwviV9aVA(t, IL64(36028797033646352));
			(*t).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 5))%(sizeof(NU64)*8));
			t = (*t).sons->data[((NI) 0)];
		} LA14: ;
	}
}

N_NIMCALL(void, genDeepCopyProc_d3OdAx76NwbW9aLXaKKHyVQ)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* s, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result) {
	tyArray_YB3ke0PEM9bcAj9bAsA619bJA T1_;
	genProc_FcQi2SC56oH1DQZne5xn7Q(m, s);
	memset((void*)T1_, 0, sizeof(T1_));
	T1_[0] = result;
	T1_[1] = (*s).loc.r;
	addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_223), T1_, 2);
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genTypeInfo_x7sD9aHIDrXyWVDTVp9bclvA)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* origType;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t_2;
	tyArray_qtqsWM5aXmcpMIVmvq3kAA sig;
	tyArray_ZqT9cbUNKsl55MABiLlPDxA T18_;
	NimStringDesc* T19_;
	tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* owner;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T20_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T78_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T79_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T80_;
{	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	origType = t;
	t_2 = skipTypes_pLCdCGDuirMe9cspwviV9aVA(origType, IL64(1166432303490018832));
	memset((void*)sig, 0, sizeof(sig));
	chckNil((void*)sig);
	memset((void*)sig, 0, sizeof(sig));
	hashType_Cq9bE7w5AuevkqC3yjwXHng(origType, 2, sig);
	result = getOrDefault_WfeTRSU2SXosd0KyLRsNqA((*m).typeInfoMarker, sig);
	{
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T5_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T6_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T7_;
		if (!!((result == NIM_NIL))) goto LA3_;
		T5_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T5_ = rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_135));
		T6_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T6_ = amp__FyliSLNPyN7IibfEAQfpRA(T5_, result);
		T7_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T7_ = rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_125));
		result = amp__FyliSLNPyN7IibfEAQfpRA(T6_, T7_);
		goto BeforeRet_;
	}
	LA3_: ;
	result = getOrDefault_WfeTRSU2SXosd0KyLRsNqA((*(*m).g).typeInfoMarker, sig);
	{
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T12_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T13_;
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T14_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T15_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T16_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T17_;
		if (!!((result == NIM_NIL))) goto LA10_;
		T12_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T12_ = cgsym_LDQwSdTgGBvWUKfBZpHXDw(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_136));
		T12_;
		T13_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T13_ = cgsym_LDQwSdTgGBvWUKfBZpHXDw(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_137));
		T13_;
		memset((void*)T14_, 0, sizeof(T14_));
		T14_[0] = result;
		addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_138), T14_, 1);
		X5BX5Deq__BB9cml2YF9cRQvdtWa9aceAyw((&(*m).typeInfoMarker), sig, result);
		T15_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T15_ = rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_135));
		T16_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T16_ = amp__FyliSLNPyN7IibfEAQfpRA(T15_, result);
		T17_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T17_ = rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_125));
		result = amp__FyliSLNPyN7IibfEAQfpRA(T16_, T17_);
		goto BeforeRet_;
	}
	LA10_: ;
	memset((void*)T18_, 0, sizeof(T18_));
	T19_ = (NimStringDesc*)0;
	T19_ = dollar__cjda4doS9ccFOjsWsGu9aa2A(sig);
	T18_[0] = rope_53CHEX05HP0HacydnwoUYg(T19_);
	result = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139), T18_, 1);
	X5BX5Deq__BB9cml2YF9cRQvdtWa9aceAyw((&(*m).typeInfoMarker), sig, result);
	T20_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
	T20_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA(t_2, IL64(36028797033687312));
	owner = getModule_0lPlu1uOok1rRK50z1V70A((*T20_).owner);
	{
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T25_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T26_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T27_;
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T28_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T29_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T30_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T31_;
		if (!!((owner == (*m).module))) goto LA23_;
		T25_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T25_ = genTypeInfo_x7sD9aHIDrXyWVDTVp9bclvA((*(*m).g).modules->data[(*owner).position], origType);
		T25_;
		T26_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T26_ = cgsym_LDQwSdTgGBvWUKfBZpHXDw(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_136));
		T26_;
		T27_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T27_ = cgsym_LDQwSdTgGBvWUKfBZpHXDw(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_137));
		T27_;
		memset((void*)T28_, 0, sizeof(T28_));
		T28_[0] = result;
		addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_138), T28_, 1);
		T29_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T29_ = rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_135));
		T30_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T30_ = amp__FyliSLNPyN7IibfEAQfpRA(T29_, result);
		T31_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T31_ = rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_125));
		result = amp__FyliSLNPyN7IibfEAQfpRA(T30_, T31_);
		goto BeforeRet_;
	}
	LA23_: ;
	X5BX5Deq__BB9cml2YF9cRQvdtWa9aceAyw((&(*(*m).g).typeInfoMarker), sig, result);
	switch ((*t_2).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 3):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 63):
	{
		result = rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_140));
	}
	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):
	{
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T34_;
		T34_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T34_ = rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_140));
		genTypeInfoAuxBase_7vipSqfL9aMtRf74ZXxa9aPw(m, t_2, t_2, result, T34_);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 60):
	{
		{
			tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T40_;
			if (!!(((*t_2).n == NIM_NIL))) goto LA38_;
			T40_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
			T40_ = lastSon_E41DMKHtT9c6sAMyyvhmSIw(t_2);
			result = genTypeInfo_x7sD9aHIDrXyWVDTVp9bclvA(m, T40_);
		}
		goto LA36_;
		LA38_: ;
		{
			NimStringDesc* T42_;
			T42_ = (NimStringDesc*)0;
			T42_ = rawNewString(reprEnum((NI)(*t_2).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len + 13);
appendString(T42_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_149));
appendString(T42_, reprEnum((NI)(*t_2).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
appendChar(T42_, 41);
			internalError_5XY9cUy7hZmUusM38U9cYYdw(T42_);
		}
		LA36_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 52):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 53):
	{
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T49_;
		{
			NimStringDesc* T48_;
			if (!!((((*t_2).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 10))&63U)))!=0))) goto LA46_;
			T48_ = (NimStringDesc*)0;
			T48_ = dollar__k53Ge4e9cDjc7y9c5uML7sPQ(TM_MQdRN7fpbG7rPm4JpVVAhA_150);
			internalError_5XY9cUy7hZmUusM38U9cYYdw(T48_);
		}
		LA46_: ;
		T49_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
		T49_ = lastSon_E41DMKHtT9c6sAMyyvhmSIw(t_2);
		result = genTypeInfo_x7sD9aHIDrXyWVDTVp9bclvA(m, T49_);
		goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25):
	{
		{
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T55_;
			if (!!(((*t_2).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8)))) goto LA53_;
			T55_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T55_ = rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_140));
			genTypeInfoAuxBase_7vipSqfL9aMtRf74ZXxa9aPw(m, t_2, t_2, result, T55_);
		}
		goto LA51_;
		LA53_: ;
		{
			tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* x;
			x = fakeClosureType_WQojL9az5HxGgo9bOA1wUcxQ((*t_2).owner);
			genTupleInfo_S15dyZBkWEXuVdK01uuCSQ(m, x, x, result);
		}
		LA51_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22):
	{
		genTypeInfoAux_S15dyZBkWEXuVdK01uuCSQ_2(m, t_2, t_2, result);
		{
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* markerProc;
			tyArray_YB3ke0PEM9bcAj9bAsA619bJA T62_;
			if (!(((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 4) <= gSelectedGC_Qq37YMpTZX6EGc9apygtZcg)) goto LA60_;
			markerProc = genTraverseProc_EqgOPYBI4Fsll3kWDVYhBg(m, origType, sig, ((tyEnum_TTypeInfoReason_JUIK4Zo6UqHyAc9c1cbuWvg) 0));
			memset((void*)T62_, 0, sizeof(T62_));
			T62_[0] = result;
			T62_[1] = markerProc;
			addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_207), T62_, 2);
		}
		LA60_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 20):
	{
		genTypeInfoAux_S15dyZBkWEXuVdK01uuCSQ_2(m, t_2, t_2, result);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
	{
		genArrayInfo_pCzwaQST34Sl4wH9auMjS9ag(m, t_2, result);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 19):
	{
		genSetInfo_pCzwaQST34Sl4wH9auMjS9ag_2(m, t_2, result);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 14):
	{
		genEnumInfo_pCzwaQST34Sl4wH9auMjS9ag_3(m, t_2, result);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17):
	{
		genObjectInfo_S15dyZBkWEXuVdK01uuCSQ_3(m, t_2, origType, result);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		genTupleInfo_S15dyZBkWEXuVdK01uuCSQ(m, t_2, origType, result);
	}
	break;
	default:
	{
		NimStringDesc* T70_;
		T70_ = (NimStringDesc*)0;
		T70_ = rawNewString(reprEnum((NI)(*t_2).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len + 13);
appendString(T70_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_149));
appendString(T70_, reprEnum((NI)(*t_2).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
appendChar(T70_, 41);
		internalError_5XY9cUy7hZmUusM38U9cYYdw(T70_);
	}
	break;
	}
	{
		if (!!(((*t_2).deepCopy == NIM_NIL))) goto LA73_;
		genDeepCopyProc_d3OdAx76NwbW9aLXaKKHyVQ(m, (*t_2).deepCopy, result);
	}
	goto LA71_;
	LA73_: ;
	{
		if (!!(((*origType).deepCopy == NIM_NIL))) goto LA76_;
		genDeepCopyProc_d3OdAx76NwbW9aLXaKKHyVQ(m, (*origType).deepCopy, result);
	}
	goto LA71_;
	LA76_: ;
	LA71_: ;
	T78_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T78_ = rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_135));
	T79_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T79_ = amp__FyliSLNPyN7IibfEAQfpRA(T78_, result);
	T80_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T80_ = rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_125));
	result = amp__FyliSLNPyN7IibfEAQfpRA(T79_, T80_);
	}BeforeRet_: ;
	return result;
}

N_NIMCALL(void, localDebugInfo_25ePRX3l19c3c1n9bFXQUURw_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* s) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* a;
	tyArray_EcJXtY9cAr9bpvybuP0XpjyQ T16_;
	NimStringDesc* T17_;
	NI T18_;
{	{
		if (!!(((163840 & (*p).options) == 163840))) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T7_;
		T7_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
		T7_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*s).typ, IL64(36028797027395856));
		if (!((IL64(281475110928384) &((NU64)1<<((NU)((*T7_).kind)&63U)))!=0)) goto LA8_;
		goto BeforeRet_;
	}
	LA8_: ;
	a = amp__OL8oYU3myMrLfqhcdP9b3Ig(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_52), (*s).loc.r);
	{
		NIM_BOOL T12_;
		T12_ = (NIM_BOOL)0;
		T12_ = ((*s).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 3));
		if (!(T12_)) goto LA13_;
		T12_ = ccgIntroducedPtr_Cz260TwdI2wbchTgee9aUAA(s);
		LA13_: ;
		if (!T12_) goto LA14_;
		a = (*s).loc.r;
	}
	LA14_: ;
	memset((void*)T16_, 0, sizeof(T16_));
	T16_[0] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) ((*p).maxFrameLen)));
	T17_ = (NimStringDesc*)0;
	T17_ = nsuNormalize((*(*s).name).s);
	T16_[1] = makeCString_c9cmJUs9bNfunHyoffjBZxyg(T17_);
	T16_[2] = a;
	T16_[3] = genTypeInfo_x7sD9aHIDrXyWVDTVp9bclvA((*p).module, (*s).loc.t);
	lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_134), T16_, 4);
	(*p).maxFrameLen += ((NI) 1);
	T18_ = ((*p).blocks ? (*p).blocks->Sup.len : 0);
	(*p).blocks->data[(NI)(T18_ - ((NI) 1))].frameLen += ((NI) 1);
	}BeforeRet_: ;
}

N_NIMCALL(void, assignLocalVar_25ePRX3l19c3c1n9bFXQUURw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* s) {
	NimStringDesc* nl;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* decl;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T6_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T7_;
	{
		if (!((gOptions_KL5B8sF4szIsM2AXCWFsIw &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 10))&31U)))!=0)) goto LA3_;
		nl = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_10));
	}
	goto LA1_;
	LA3_: ;
	{
		nl = tnl_Gp8EwkcsAP9am1klnCCHM4w;
	}
	LA1_: ;
	T6_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T6_ = localVarDecl_y9bkicOZZUa8Z1PO76aWZ1A(p, s);
	T7_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T7_ = amp__sUFtkQXj2TQTADyk9cLFdDg(T6_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_133));
	decl = amp__sUFtkQXj2TQTADyk9cLFdDg(T7_, nl);
	line_ALdLmqKb9cyvVSETUUyUh9aQ(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0), decl);
	localDebugInfo_25ePRX3l19c3c1n9bFXQUURw_2(p, s);
}

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

N_NIMCALL(void, fillResult_bncGBQvlERnuLEiV09bntiA)(tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* param) {
	tyArray_j0xH32fTir0IvGY7WxQsQA T1_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T2_;
	memset((void*)T1_, 0, sizeof(T1_));
	T2_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T2_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_225), T1_, 0);
	fillLoc_FYZoK6R9akILOlR1JSuEh3g((&(*param).loc), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 4), (*param).typ, T2_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 2));
	{
		NIM_BOOL T5_;
		tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w T6_;
		T5_ = (NIM_BOOL)0;
		T6_ = (tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w)0;
		T6_ = mapReturnType_xD9bGC83PAN0OvetVlj1cZQ_3((*param).typ);
		T5_ = !((T6_ == ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 17)));
		if (!(T5_)) goto LA7_;
		T5_ = isInvalidReturnType_FW3ctu15AiQkw2TcerUtOw((*param).typ);
		LA7_: ;
		if (!T5_) goto LA8_;
		(*param).loc.flags |= ((NU16)1)<<((((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 0))%(sizeof(NU16)*8));
		(*param).loc.s = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0);
	}
	LA8_: ;
}

N_NIMCALL(void, scopeMangledParam_jiMv4nrRxy7YOTBQV9boU9cQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* param) {
	NimStringDesc* key;
	key = mangle_0ctHksTXSPyaxjBOgK4TiA((*(*param).name).s);
	shallow_67KGEOtDSAz3i9cPDqgyaCwmsgs((&key));
	inc_hCwWEfjYY2mbkXPFg2lZFQ((&(*p).sigConflicts), key, ((NI) 1));
}

N_NIMCALL(void, assignParam_25ePRX3l19c3c1n9bFXQUURw_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* s) {
	scopeMangledParam_jiMv4nrRxy7YOTBQV9boU9cQ(p, s);
	localDebugInfo_25ePRX3l19c3c1n9bFXQUURw_2(p, s);
}

N_NIMCALL(void, closureSetup_wP18u4g6GoOXm0ogTo5oPA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* prc) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ls;
	tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* env;
	tyArray_YB3ke0PEM9bcAj9bAsA619bJA T9_;
{	{
		if (!!((((*(*prc).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 12))&63U)))!=0))) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	ls = lastSon_esDJA7239bJDiq4UrX9aHCjg((*(*prc).ast).kindU.S6.sons->data[((NI) 3)]);
	{
		if (!!(((*ls).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA7_;
		internalError_MXmtqrCmYwtOPkDCFgUWKQ((*prc).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_226));
	}
	LA7_: ;
	env = (*ls).kindU.S4.sym;
	assignLocalVar_25ePRX3l19c3c1n9bFXQUURw(p, env);
	memset((void*)T9_, 0, sizeof(T9_));
	T9_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&(*env).loc));
	T9_[1] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, (*env).typ);
	linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_227), T9_, 2);
	}BeforeRet_: ;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, initGCFrame_VMw2SYHH12eNnC21DncHWQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	{
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T5_;
		if (!(((NI) 0) < ((NI) ((*p).gcFrameId)))) goto LA3_;
		memset((void*)T5_, 0, sizeof(T5_));
		T5_[0] = (*p).gcFrameType;
		result = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_232), T5_, 1);
	}
	LA3_: ;
	return result;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, initFrame_MEEtj5XINrrJ3Az5igcM7g)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* procname, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* filename) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T1_;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T1_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T1_ = cgsym_LDQwSdTgGBvWUKfBZpHXDw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_233));
	T1_;
	{
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T6_;
		tyArray_EcJXtY9cAr9bpvybuP0XpjyQ T7_;
		if (!(((NI) 0) < (*p).maxFrameLen)) goto LA4_;
		T6_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T6_ = cgsym_LDQwSdTgGBvWUKfBZpHXDw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_234));
		T6_;
		memset((void*)T7_, 0, sizeof(T7_));
		T7_[0] = procname;
		T7_[1] = filename;
		T7_[2] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) ((*p).maxFrameLen)));
		T7_[3] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) ((*p).blocks->data[((NI) 0)].frameLen)));
		result = ropecg_ail3PxtNU17Ini4A1vCFoA(NIM_NIL, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_235), T7_, 4);
	}
	goto LA2_;
	LA4_: ;
	{
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T9_;
		memset((void*)T9_, 0, sizeof(T9_));
		T9_[0] = procname;
		T9_[1] = filename;
		result = ropecg_ail3PxtNU17Ini4A1vCFoA(NIM_NIL, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_236), T9_, 2);
	}
	LA2_: ;
	return result;
}

N_NIMCALL(void, appcg_Z6xIOvD09aMfYvHnc82A86A_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg s, NimStringDesc* frmt, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** args, NI argsLen_0) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T1_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T2_;
	T1_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
	T1_ = s_OUiru83H7n4zC9cnXN2KbrQcgen(p, s);
	T2_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T2_ = ropecg_ail3PxtNU17Ini4A1vCFoA((*p).module, frmt, args, argsLen_0);
	add_cDalAhgBlDWoYHadkaqqxw(T1_, T2_);
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, deinitGCFrame_VMw2SYHH12eNnC21DncHWQ_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	{
		tyArray_j0xH32fTir0IvGY7WxQsQA T5_;
		if (!(((NI) 0) < ((NI) ((*p).gcFrameId)))) goto LA3_;
		memset((void*)T5_, 0, sizeof(T5_));
		result = ropecg_ail3PxtNU17Ini4A1vCFoA((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_240), T5_, 0);
	}
	LA3_: ;
	return result;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, deinitFrame_VMw2SYHH12eNnC21DncHWQ_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	tyArray_j0xH32fTir0IvGY7WxQsQA T1_;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	memset((void*)T1_, 0, sizeof(T1_));
	result = ropecg_ail3PxtNU17Ini4A1vCFoA((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_241), T1_, 0);
	return result;
}

N_NIMCALL(void, genProcAux_FcQi2SC56oH1DQZne5xn7Q_3)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* prc) {
	tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* header;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* returnStmt;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T51_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* generatedProc;
	p = newProc_Mqi1a0mHlQ8XakVweFEAvQ(prc, m);
	header = genProcHeader_uFtBuQho0qaeduX9cqfK4FQ(m, prc);
	returnStmt = NIM_NIL;
	{
		NIM_BOOL T3_;
		tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* res;
		T3_ = (NIM_BOOL)0;
		T3_ = !((((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 9))&63U)))!=0));
		if (!(T3_)) goto LA4_;
		T3_ = !(((*(*prc).typ).sons->data[((NI) 0)] == NIM_NIL));
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			NI T9_;
			T9_ = (NI)0;
			T9_ = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting((*prc).ast);
			if (!(T9_ <= ((NI) 7))) goto LA10_;
			internalError_MXmtqrCmYwtOPkDCFgUWKQ((*prc).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_128));
		}
		LA10_: ;
		res = (*(*(*prc).ast).kindU.S6.sons->data[((NI) 7)]).kindU.S4.sym;
		{
			NIM_BOOL T14_;
			tyArray_ZqT9cbUNKsl55MABiLlPDxA T34_;
			T14_ = (NIM_BOOL)0;
			T14_ = isInvalidReturnType_FW3ctu15AiQkw2TcerUtOw((*(*prc).typ).sons->data[((NI) 0)]);
			if (!!(T14_)) goto LA15_;
			{
				if (!(((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 12))&63U)))!=0)) goto LA19_;
				(*res).flags |= ((NU64)1)<<((((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 12))%(sizeof(NU64)*8));
			}
			LA19_: ;
			{
				NIM_BOOL T23_;
				NIM_BOOL T24_;
				NIM_BOOL T26_;
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* val;
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T29_;
				tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* decl;
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
				tyArray_YB3ke0PEM9bcAj9bAsA619bJA T32_;
				T23_ = (NIM_BOOL)0;
				T24_ = (NIM_BOOL)0;
				T24_ = (((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 12))&63U)))!=0);
				if (!(T24_)) goto LA25_;
				T26_ = (NIM_BOOL)0;
				T26_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
				if (T26_) goto LA27_;
				T26_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
				LA27_: ;
				T24_ = T26_;
				LA25_: ;
				T23_ = T24_;
				if (!(T23_)) goto LA28_;
				T29_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
				T29_ = getBody_eMf5HLowckpW9cDxAV9bNIZw(prc);
				val = easyResultAsgn_1TL9cg0ds6vTtfhbmuTNGBA(T29_);
				T23_ = !((val == NIM_NIL));
				LA28_: ;
				if (!T23_) goto LA30_;
				decl = localVarDecl_y9bkicOZZUa8Z1PO76aWZ1A(p, res);
				memset((void*)(&a), 0, sizeof(a));
				initLocExprSingleUse_9biTBaXPz9cezuLjjWw9cSEGw(p, val, (&a));
				memset((void*)T32_, 0, sizeof(T32_));
				T32_[0] = decl;
				T32_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
				linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_131), T32_, 2);
			}
			goto LA21_;
			LA30_: ;
			{
				assignLocalVar_25ePRX3l19c3c1n9bFXQUURw(p, res);
				initLocalVar_RP2SxXcAXrKn9a9ayAhwfstg(p, res, NIM_FALSE);
			}
			LA21_: ;
			memset((void*)T34_, 0, sizeof(T34_));
			T34_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&(*res).loc));
			returnStmt = ropecg_ail3PxtNU17Ini4A1vCFoA(NIM_NIL, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_224), T34_, 1);
		}
		goto LA12_;
		LA15_: ;
		{
			fillResult_bncGBQvlERnuLEiV09bntiA(res);
			assignParam_25ePRX3l19c3c1n9bFXQUURw_3(p, res);
			{
				tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T38_;
				T38_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
				T38_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*res).typ, IL64(36028797019007248));
				if (!((*T38_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16))) goto LA39_;
				(*res).loc.s = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0);
			}
			LA39_: ;
		}
		LA12_: ;
	}
	LA5_: ;
	{
		NI i;
		NI colontmp_;
		NI T42_;
		NI res_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T42_ = (NI)0;
		T42_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig((*(*prc).typ).n);
		colontmp_ = (NI)(T42_ - ((NI) 1));
		res_2 = ((NI) 1);
		{
			while (1) {
				if (!(res_2 <= colontmp_)) goto LA44;
				i = res_2;
				{
					tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* param;
					param = (*(*(*(*prc).typ).n).kindU.S6.sons->data[i]).kindU.S4.sym;
					{
						NIM_BOOL T48_;
						T48_ = (NIM_BOOL)0;
						T48_ = isCompileTimeOnly_UBQknCC9aYWKMNMK4dmeTlQcgen((*param).typ);
						if (!T48_) goto LA49_;
						goto LA45;
					}
					LA49_: ;
					assignParam_25ePRX3l19c3c1n9bFXQUURw_3(p, param);
				} LA45: ;
				res_2 += ((NI) 1);
			} LA44: ;
		}
	}
	closureSetup_wP18u4g6GoOXm0ogTo5oPA(p, prc);
	T51_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	T51_ = getBody_eMf5HLowckpW9cDxAV9bNIZw(prc);
	genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, T51_);
	generatedProc = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	{
		if (!(((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 14))&63U)))!=0)) goto LA54_;
		{
			if (!((CC_78I18QZNZFIv9ah7oETc0jg[(cCompiler_Dz9bRorQ2m6cBt9awpi4iwPw)- 1].Field19 &(1U<<((NU)(((tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg) 6))&7U)))!=0)) goto LA58_;
			header = amp__OL8oYU3myMrLfqhcdP9b3Ig(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_228), header);
		}
		LA58_: ;
	}
	LA54_: ;
	{
		tyArray_EcJXtY9cAr9bpvybuP0XpjyQ T68_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T69_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T70_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T71_;
		if (!(((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 9))&63U)))!=0)) goto LA62_;
		{
			if (!((CC_78I18QZNZFIv9ah7oETc0jg[(cCompiler_Dz9bRorQ2m6cBt9awpi4iwPw)- 1].Field19 &(1U<<((NU)(((tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg) 6))&7U)))!=0)) goto LA66_;
			header = amp__OL8oYU3myMrLfqhcdP9b3Ig(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_229), header);
		}
		LA66_: ;
		memset((void*)T68_, 0, sizeof(T68_));
		T68_[0] = header;
		T69_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
		T69_ = s_OUiru83H7n4zC9cnXN2KbrQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
		T68_[1] = (*T69_);
		T70_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
		T70_ = s_OUiru83H7n4zC9cnXN2KbrQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1));
		T68_[2] = (*T70_);
		T71_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
		T71_ = s_OUiru83H7n4zC9cnXN2KbrQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		T68_[3] = (*T71_);
		generatedProc = ropecg_ail3PxtNU17Ini4A1vCFoA(NIM_NIL, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_230), T68_, 4);
	}
	goto LA60_;
	LA62_: ;
	{
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T73_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T74_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T93_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T94_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T101_;
		tyArray_j0xH32fTir0IvGY7WxQsQA T107_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T108_;
		memset((void*)T73_, 0, sizeof(T73_));
		T73_[0] = header;
		generatedProc = ropecg_ail3PxtNU17Ini4A1vCFoA(NIM_NIL, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_231), T73_, 1);
		T74_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T74_ = initGCFrame_VMw2SYHH12eNnC21DncHWQ(p);
		add_cDalAhgBlDWoYHadkaqqxw(&generatedProc, T74_);
		{
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T79_;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* procname;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T80_;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T81_;
			if (!(((*prc).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 15))&31U)))!=0)) goto LA77_;
			T79_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
			T79_ = s_OUiru83H7n4zC9cnXN2KbrQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
			add_cDalAhgBlDWoYHadkaqqxw(&generatedProc, (*T79_));
			procname = makeCString_c9cmJUs9bNfunHyoffjBZxyg((*(*prc).name).s);
			T80_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T80_ = quotedFilename_OIkZkhTYTt59cr9cjk9bklnUA_2((*prc).info);
			T81_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T81_ = initFrame_MEEtj5XINrrJ3Az5igcM7g(p, procname, T80_);
			add_cDalAhgBlDWoYHadkaqqxw(&generatedProc, T81_);
		}
		goto LA75_;
		LA77_: ;
		{
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T83_;
			T83_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
			T83_ = s_OUiru83H7n4zC9cnXN2KbrQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
			add_cDalAhgBlDWoYHadkaqqxw(&generatedProc, (*T83_));
		}
		LA75_: ;
		{
			tyArray_j0xH32fTir0IvGY7WxQsQA T88_;
			if (!(((*prc).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 19))&31U)))!=0)) goto LA86_;
			memset((void*)T88_, 0, sizeof(T88_));
			appcg_Z6xIOvD09aMfYvHnc82A86A_3(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_237), T88_, 0);
		}
		LA86_: ;
		{
			if (!(*p).beforeRetNeeded) goto LA91_;
			add_UJnSY21g59awhvSFBxJ9a9aPg(&generatedProc, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_238));
		}
		LA91_: ;
		T93_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
		T93_ = s_OUiru83H7n4zC9cnXN2KbrQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1));
		add_cDalAhgBlDWoYHadkaqqxw(&generatedProc, (*T93_));
		T94_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
		T94_ = s_OUiru83H7n4zC9cnXN2KbrQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		add_cDalAhgBlDWoYHadkaqqxw(&generatedProc, (*T94_));
		{
			tyArray_j0xH32fTir0IvGY7WxQsQA T99_;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T100_;
			if (!(*p).beforeRetNeeded) goto LA97_;
			memset((void*)T99_, 0, sizeof(T99_));
			T100_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T100_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_239), T99_, 0);
			add_cDalAhgBlDWoYHadkaqqxw(&generatedProc, T100_);
		}
		LA97_: ;
		T101_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T101_ = deinitGCFrame_VMw2SYHH12eNnC21DncHWQ_2(p);
		add_cDalAhgBlDWoYHadkaqqxw(&generatedProc, T101_);
		{
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T106_;
			if (!(((*prc).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 15))&31U)))!=0)) goto LA104_;
			T106_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T106_ = deinitFrame_VMw2SYHH12eNnC21DncHWQ_3(p);
			add_cDalAhgBlDWoYHadkaqqxw(&generatedProc, T106_);
		}
		LA104_: ;
		add_cDalAhgBlDWoYHadkaqqxw(&generatedProc, returnStmt);
		memset((void*)T107_, 0, sizeof(T107_));
		T108_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T108_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_242), T107_, 0);
		add_cDalAhgBlDWoYHadkaqqxw(&generatedProc, T108_);
	}
	LA60_: ;
	add_cDalAhgBlDWoYHadkaqqxw(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], generatedProc);
}

N_NIMCALL(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA*, findPendingModule_zx9aqFxulQ7sumEBL5kRUdg)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* s) {
	tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* result;
	tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* ms;
	result = (tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA*)0;
	ms = getModule_0lPlu1uOok1rRK50z1V70A(s);
	result = (*(*m).g).modules->data[(*ms).position];
	return result;
}

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

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

N_NIMCALL(void, loadDynamicLib_m4Ysv2il9cQk9aitaifyqqQg)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TLib_NBMxlJ6g3utqUlplqTTHkA* lib) {
	{
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* tmp;
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T5_;
		if (!!((*lib).generated)) goto LA3_;
		(*lib).generated = NIM_TRUE;
		tmp = getTempName_54CrPIOFKsrtQd59cl9bHH3A(m);
		asgnRefNoCycle((void**) (&(*lib).name), tmp);
		memset((void*)T5_, 0, sizeof(T5_));
		T5_[0] = tmp;
		addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_243), T5_, 1);
		{
			tySequence_sM4lkSb7zS6F7OVMvW9cffQ* s;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* loadlib;
			tyArray_YB3ke0PEM9bcAj9bAsA619bJA T19_;
			if (!((*(*lib).path).kind >= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*(*lib).path).kind <= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 22))) goto LA8_;
			s = (tySequence_sM4lkSb7zS6F7OVMvW9cffQ*) newSeq((&NTI_sM4lkSb7zS6F7OVMvW9cffQ_), 0);
			libCandidates_z61W6kN39aBKDgNtbcWn9cSg((*(*lib).path).kindU.S3.strVal, (&s));
			rawMessage_tBJ8mvo7MzzirsGkrHVc9cw(((tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw) 289), (*(*lib).path).kindU.S3.strVal);
			loadlib = NIM_NIL;
			{
				NI i;
				NI colontmp_;
				NI T11_;
				NI res;
				i = (NI)0;
				colontmp_ = (NI)0;
				T11_ = (s ? (s->Sup.len-1) : -1);
				colontmp_ = T11_;
				res = ((NI) 0);
				{
					while (1) {
						tyArray_YB3ke0PEM9bcAj9bAsA619bJA T18_;
						if (!(res <= colontmp_)) goto LA13;
						i = res;
						(*m).labels += ((NI) 1);
						{
							if (!(((NI) 0) < i)) goto LA16_;
							add_UJnSY21g59awhvSFBxJ9a9aPg(&loadlib, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_244));
						}
						LA16_: ;
						memset((void*)T18_, 0, sizeof(T18_));
						T18_[0] = tmp;
						T18_[1] = getStrLit_ngAR8PLIIal5nOPXflxuFg(m, s->data[i]);
						appcg_TJmWJ0eU9byq14ToBfxDtXQ(m, &loadlib, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_245), T18_, 2);
						res += ((NI) 1);
					} LA13: ;
				}
			}
			memset((void*)T19_, 0, sizeof(T19_));
			T19_[0] = loadlib;
			T19_[1] = getStrLit_ngAR8PLIIal5nOPXflxuFg(m, (*(*lib).path).kindU.S3.strVal);
			appcg_TJmWJ0eU9byq14ToBfxDtXQ(m, &(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_246), T19_, 2);
		}
		goto LA6_;
		LA8_: ;
		{
			tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p;
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA dest;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T21_;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T22_;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T23_;
			tyArray_YB3ke0PEM9bcAj9bAsA619bJA T24_;
			p = newProc_Mqi1a0mHlQ8XakVweFEAvQ(NIM_NIL, m);
			(*p).options = ((*p).options & ~ 163840);
			memset((void*)(&dest), 0, sizeof(dest));
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*lib).path, (&dest));
			T21_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
			T21_ = s_OUiru83H7n4zC9cnXN2KbrQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
			add_cDalAhgBlDWoYHadkaqqxw(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], (*T21_));
			T22_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
			T22_ = s_OUiru83H7n4zC9cnXN2KbrQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1));
			add_cDalAhgBlDWoYHadkaqqxw(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], (*T22_));
			T23_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
			T23_ = s_OUiru83H7n4zC9cnXN2KbrQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			add_cDalAhgBlDWoYHadkaqqxw(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], (*T23_));
			memset((void*)T24_, 0, sizeof(T24_));
			T24_[0] = tmp;
			T24_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&dest));
			appcg_TJmWJ0eU9byq14ToBfxDtXQ(m, &(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_247), T24_, 2);
		}
		LA6_: ;
	}
	LA3_: ;
	{
		if (!((*lib).name == NIM_NIL)) goto LA27_;
		internalError_5XY9cUy7hZmUusM38U9cYYdw(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_248));
	}
	LA27_: ;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, mangleDynLibProc_Kt7Li7NCe9c9bR9bQfvgl6xxQ)(tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* sym) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	{
		if (!(((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 16))&63U)))!=0)) goto LA3_;
		result = rope_53CHEX05HP0HacydnwoUYg((*(*sym).name).s);
	}
	goto LA1_;
	LA3_: ;
	{
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T6_;
		memset((void*)T6_, 0, sizeof(T6_));
		T6_[0] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) ((*sym).Sup.id)));
		result = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_249), T6_, 1);
	}
	LA1_: ;
	return result;
}

N_NIMCALL(void, symInDynamicLib_5LEMfE09buQIXg39bLkcpjww_4)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* sym) {
	tyObject_TLib_NBMxlJ6g3utqUlplqTTHkA* lib;
	NIM_BOOL isCall;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* extname;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* tmp;
	tyArray_YB3ke0PEM9bcAj9bAsA619bJA T41_;
	lib = (*sym).annex;
	isCall = isGetProcAddr_DWGi9cQP3F3V81PvoGyWZ9bw(lib);
	extname = (*sym).loc.r;
	{
		if (!!(isCall)) goto LA3_;
		loadDynamicLib_m4Ysv2il9cQk9aitaifyqqQg(m, lib);
	}
	LA3_: ;
	tmp = mangleDynLibProc_Kt7Li7NCe9c9bR9bQfvgl6xxQ(sym);
	asgnRefNoCycle((void**) (&(*sym).loc.r), tmp);
	asgnRefNoCycle((void**) (&(*(*sym).typ).sym), NIM_NIL);
	(*m).labels += ((NI) 2);
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* params;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T9_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* load;
		tyArray_EcJXtY9cAr9bpvybuP0XpjyQ T15_;
		NimStringDesc* T16_;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* last;
		NimStringDesc* idx;
		if (!isCall) goto LA7_;
		n = (*lib).path;
		memset((void*)(&a), 0, sizeof(a));
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2((*m).initProc, (*n).kindU.S6.sons->data[((NI) 0)], (&a));
		T9_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T9_ = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
		params = amp__sUFtkQXj2TQTADyk9cLFdDg(T9_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_126));
		{
			NI i;
			NI colontmp_;
			NI T11_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T11_ = (NI)0;
			T11_ = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(n);
			colontmp_ = (NI)(T11_ - ((NI) 2));
			res = ((NI) 1);
			{
				while (1) {
					tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T14_;
					if (!(res <= colontmp_)) goto LA13;
					i = res;
					initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2((*m).initProc, (*n).kindU.S6.sons->data[i], (&a));
					T14_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
					T14_ = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
					add_cDalAhgBlDWoYHadkaqqxw(&params, T14_);
					add_UJnSY21g59awhvSFBxJ9a9aPg(&params, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_119));
					res += ((NI) 1);
				} LA13: ;
			}
		}
		memset((void*)T15_, 0, sizeof(T15_));
		T15_[0] = tmp;
		T15_[1] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2(m, (*sym).typ);
		T15_[2] = params;
		T16_ = (NimStringDesc*)0;
		T16_ = dollar__PstQrDfj9a7hGXM74AN2wzg(extname);
		T15_[3] = makeCString_c9cmJUs9bNfunHyoffjBZxyg(T16_);
		load = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_250), T15_, 4);
		last = lastSon_esDJA7239bJDiq4UrX9aHCjg(n);
		{
			if (!((*last).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 58))) goto LA19_;
			last = (*last).kindU.S6.sons->data[((NI) 1)];
		}
		LA19_: ;
		{
			NimStringDesc* T25_;
			if (!!(((*last).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20)))) goto LA23_;
			T25_ = (NimStringDesc*)0;
			T25_ = dollar__k53Ge4e9cDjc7y9c5uML7sPQ(TM_MQdRN7fpbG7rPm4JpVVAhA_251);
			internalError_5XY9cUy7hZmUusM38U9cYYdw(T25_);
		}
		LA23_: ;
		idx = (*last).kindU.S3.strVal;
		{
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T30_;
			if (!((idx ? idx->Sup.len : 0) == ((NI) 0))) goto LA28_;
			T30_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
			T30_ = s_OUiru83H7n4zC9cnXN2KbrQcgen((*m).initProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			add_cDalAhgBlDWoYHadkaqqxw(T30_, load);
		}
		goto LA26_;
		LA28_: ;
		{
			NIM_BOOL T32_;
			T32_ = (NIM_BOOL)0;
			T32_ = ((idx ? idx->Sup.len : 0) == ((NI) 1));
			if (!(T32_)) goto LA33_;
			T32_ = (((NU8)(idx->data[((NI) 0)])) >= ((NU8)(48)) && ((NU8)(idx->data[((NI) 0)])) <= ((NU8)(57)));
			LA33_: ;
			if (!T32_) goto LA34_;
			add_cDalAhgBlDWoYHadkaqqxw(&(*m).extensionLoaders[(((NU8)(idx->data[((NI) 0)])))- 48], load);
		}
		goto LA26_;
		LA34_: ;
		{
			NimStringDesc* T37_;
			T37_ = (NimStringDesc*)0;
			T37_ = rawNewString(idx->Sup.len + 13);
appendString(T37_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_253));
appendString(T37_, idx);
			internalError_MXmtqrCmYwtOPkDCFgUWKQ((*sym).info, T37_);
		}
		LA26_: ;
	}
	goto LA5_;
	LA7_: ;
	{
		tyArray_EcJXtY9cAr9bpvybuP0XpjyQ T39_;
		NimStringDesc* T40_;
		memset((void*)T39_, 0, sizeof(T39_));
		T39_[0] = tmp;
		T39_[1] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2(m, (*sym).typ);
		T39_[2] = (*lib).name;
		T40_ = (NimStringDesc*)0;
		T40_ = dollar__PstQrDfj9a7hGXM74AN2wzg(extname);
		T39_[3] = makeCString_c9cmJUs9bNfunHyoffjBZxyg(T40_);
		appcg_TJmWJ0eU9byq14ToBfxDtXQ(m, &(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_254), T39_, 4);
	}
	LA5_: ;
	memset((void*)T41_, 0, sizeof(T41_));
	T41_[0] = (*sym).loc.r;
	T41_[1] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2(m, (*sym).loc.t);
	addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_255), T41_, 2);
}

N_NIMCALL(void, symInDynamicLibPartial_5LEMfE09buQIXg39bLkcpjww_5)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* sym) {
	asgnRefNoCycle((void**) (&(*sym).loc.r), mangleDynLibProc_Kt7Li7NCe9c9bR9bQfvgl6xxQ(sym));
	asgnRefNoCycle((void**) (&(*(*sym).typ).sym), NIM_NIL);
}

N_NIMCALL(void, genProcNoForward_FcQi2SC56oH1DQZne5xn7Q_2)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* prc) {
{	{
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T5_;
		if (!(((*prc).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 7))&15U)))!=0)) goto LA3_;
		fillProcLoc_5LEMfE09buQIXg39bLkcpjww(m, prc);
		useHeader_5LEMfE09buQIXg39bLkcpjww_3(m, prc);
		T5_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T5_ = cgsym_LDQwSdTgGBvWUKfBZpHXDw(m, (*(*prc).name).s);
		T5_;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!(((*prc).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 3))&15U)))!=0)) goto LA8_;
		fillProcLoc_5LEMfE09buQIXg39bLkcpjww(m, prc);
		useHeader_5LEMfE09buQIXg39bLkcpjww_3(m, prc);
		genProcPrototype_5LEMfE09buQIXg39bLkcpjww_2(m, prc);
	}
	goto LA6_;
	LA8_: ;
	{
		if (!((*(*prc).typ).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 5))) goto LA11_;
		{
			NIM_BOOL T15_;
			T15_ = (NIM_BOOL)0;
			T15_ = containsOrIncl_B0EhVMrh5BBBZOOtYjAvVg((&(*m).declaredThings), (*prc).Sup.id);
			if (!!(T15_)) goto LA16_;
			fillProcLoc_5LEMfE09buQIXg39bLkcpjww(m, prc);
			useHeader_5LEMfE09buQIXg39bLkcpjww_3(m, prc);
			genProcPrototype_5LEMfE09buQIXg39bLkcpjww_2(m, prc);
			genProcAux_FcQi2SC56oH1DQZne5xn7Q_3(m, prc);
		}
		LA16_: ;
	}
	goto LA6_;
	LA11_: ;
	{
		tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* q;
		if (!(((*prc).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 4))&15U)))!=0)) goto LA19_;
		q = findPendingModule_zx9aqFxulQ7sumEBL5kRUdg(m, prc);
		fillProcLoc_5LEMfE09buQIXg39bLkcpjww(q, prc);
		useHeader_5LEMfE09buQIXg39bLkcpjww_3(m, prc);
		genProcPrototype_5LEMfE09buQIXg39bLkcpjww_2(m, prc);
		{
			NIM_BOOL T23_;
			NIM_BOOL T25_;
			T23_ = (NIM_BOOL)0;
			T23_ = !((q == NIM_NIL));
			if (!(T23_)) goto LA24_;
			T25_ = (NIM_BOOL)0;
			T25_ = containsOrIncl_B0EhVMrh5BBBZOOtYjAvVg((&(*q).declaredThings), (*prc).Sup.id);
			T23_ = !(T25_);
			LA24_: ;
			if (!T23_) goto LA26_;
			symInDynamicLib_5LEMfE09buQIXg39bLkcpjww_4(q, prc);
		}
		goto LA21_;
		LA26_: ;
		{
			symInDynamicLibPartial_5LEMfE09buQIXg39bLkcpjww_5(m, prc);
		}
		LA21_: ;
	}
	goto LA6_;
	LA19_: ;
	{
		tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* q_2;
		if (!!((((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 5))&63U)))!=0))) goto LA30_;
		q_2 = findPendingModule_zx9aqFxulQ7sumEBL5kRUdg(m, prc);
		fillProcLoc_5LEMfE09buQIXg39bLkcpjww(q_2, prc);
		useHeader_5LEMfE09buQIXg39bLkcpjww_3(m, prc);
		genProcPrototype_5LEMfE09buQIXg39bLkcpjww_2(m, prc);
		{
			NIM_BOOL T34_;
			NIM_BOOL T36_;
			T34_ = (NIM_BOOL)0;
			T34_ = !((q_2 == NIM_NIL));
			if (!(T34_)) goto LA35_;
			T36_ = (NIM_BOOL)0;
			T36_ = containsOrIncl_B0EhVMrh5BBBZOOtYjAvVg((&(*q_2).declaredThings), (*prc).Sup.id);
			T34_ = !(T36_);
			LA35_: ;
			if (!T34_) goto LA37_;
			genProcAux_FcQi2SC56oH1DQZne5xn7Q_3(q_2, prc);
		}
		LA37_: ;
	}
	goto LA6_;
	LA30_: ;
	{
		fillProcLoc_5LEMfE09buQIXg39bLkcpjww(m, prc);
		useHeader_5LEMfE09buQIXg39bLkcpjww_3(m, prc);
		{
			if (!!((((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0))) goto LA42_;
			genProcPrototype_5LEMfE09buQIXg39bLkcpjww_2(m, prc);
		}
		LA42_: ;
	}
	LA6_: ;
	}BeforeRet_: ;
}

N_NIMCALL(void, genProc_FcQi2SC56oH1DQZne5xn7Q)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* prc) {
{	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 27))&63U)))!=0);
		if (T3_) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = isActivated_zcPabWTjs2kwBM9a2zZPefQ(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_vOtNj6VarIkkiG5Xzl9bUiQ(m, prc);
		fillProcLoc_5LEMfE09buQIXg39bLkcpjww(m, prc);
	}
	goto LA8_;
	LA10_: ;
	{
		genProcNoForward_FcQi2SC56oH1DQZne5xn7Q_2(m, prc);
		{
			NIM_BOOL T15_;
			NIM_BOOL T16_;
			T15_ = (NIM_BOOL)0;
			T16_ = (NIM_BOOL)0;
			T16_ = ((65600 & (*prc).flags) == 64);
			if (!(T16_)) goto LA17_;
			T16_ = !(((*(*m).g).generatedHeader == NIM_NIL));
			LA17_: ;
			T15_ = T16_;
			if (!(T15_)) goto LA18_;
			T15_ = !((((*prc).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 3))&15U)))!=0));
			LA18_: ;
			if (!T15_) goto LA19_;
			genProcPrototype_5LEMfE09buQIXg39bLkcpjww_2((*(*m).g).generatedHeader, prc);
			{
				if (!((*(*prc).typ).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 5))) goto LA23_;
				{
					NIM_BOOL T27_;
					T27_ = (NIM_BOOL)0;
					T27_ = containsOrIncl_B0EhVMrh5BBBZOOtYjAvVg((&(*(*(*m).g).generatedHeader).declaredThings), (*prc).Sup.id);
					if (!!(T27_)) goto LA28_;
					genProcAux_FcQi2SC56oH1DQZne5xn7Q_3((*(*m).g).generatedHeader, prc);
				}
				LA28_: ;
			}
			LA23_: ;
		}
		LA19_: ;
	}
	LA8_: ;
	}BeforeRet_: ;
}

static N_INLINE(NIM_BOOL, emulatedThreadVars_qJe2xBmGcgIoAQUJsGS9aGwcgen)(void) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((35651584 & ~ gGlobalOptions_j042VVDC9cT5ENYoXnmhhVg)==0);
	return result;
}

N_NIMCALL(void, declareThreadVar_xgBfR60K7h9cY7wbsHV20Dg)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* s, NIM_BOOL isExtern) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = emulatedThreadVars_qJe2xBmGcgIoAQUJsGS9aGwcgen();
		if (!T3_) goto LA4_;
		{
			NIM_BOOL T8_;
			NI T11_;
			tyArray_YB3ke0PEM9bcAj9bAsA619bJA T12_;
			T8_ = (NIM_BOOL)0;
			T8_ = containsOrIncl_B0EhVMrh5BBBZOOtYjAvVg((&nimtvDeclared_HYTho28us1uxqfncBt58kg), (*s).Sup.id);
			if (!!(T8_)) goto LA9_;
			nimtvDeps_65PZHnt5ef7s9b6MCRpLI4Q = (tySequence_zuqP4Riz26Oi5fWgPYVEgA*) incrSeqV2(&(nimtvDeps_65PZHnt5ef7s9b6MCRpLI4Q)->Sup, sizeof(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*));
			T11_ = nimtvDeps_65PZHnt5ef7s9b6MCRpLI4Q->Sup.len++;
			asgnRefNoCycle((void**) (&nimtvDeps_65PZHnt5ef7s9b6MCRpLI4Q->data[T11_]), (*s).loc.t);
			memset((void*)T12_, 0, sizeof(T12_));
			T12_[0] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2(m, (*s).loc.t);
			T12_[1] = (*s).loc.r;
			addf_8UUGW4xtgpag0J4uEnVLuQ(&nimtv_7E1DsLFLxnZdSWFUg9byAuA, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_55), T12_, 2);
		}
		LA9_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T22_;
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T23_;
		{
			if (!isExtern) goto LA16_;
			add_UJnSY21g59awhvSFBxJ9a9aPg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_256));
		}
		LA16_: ;
		{
			if (!((gGlobalOptions_j042VVDC9cT5ENYoXnmhhVg &(1U<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 21))&31U)))!=0)) goto LA20_;
			add_UJnSY21g59awhvSFBxJ9a9aPg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_257));
		}
		LA20_: ;
		T22_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T22_ = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2(m, (*s).loc.t);
		add_cDalAhgBlDWoYHadkaqqxw(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], T22_);
		memset((void*)T23_, 0, sizeof(T23_));
		T23_[0] = (*s).loc.r;
		addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_258), T23_, 1);
	}
	LA1_: ;
}

N_NIMCALL(void, genVarPrototypeAux_5LEMfE09buQIXg39bLkcpjww_7)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* sym) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T1_;
{	useHeader_5LEMfE09buQIXg39bLkcpjww_3(m, sym);
	T1_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T1_ = mangleName_qNuXhnV9aHm5hP7aXP809asQ(m, sym);
	fillLoc_FYZoK6R9akILOlR1JSuEh3g((&(*sym).loc), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 3), (*sym).typ, T1_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 3));
	{
		NIM_BOOL T4_;
		T4_ = (NIM_BOOL)0;
		T4_ = (((*sym).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 3))&15U)))!=0);
		if (T4_) goto LA5_;
		T4_ = containsOrIncl_B0EhVMrh5BBBZOOtYjAvVg((&(*m).declaredThings), (*sym).Sup.id);
		LA5_: ;
		if (!T4_) goto LA6_;
		goto BeforeRet_;
	}
	LA6_: ;
	{
		if (!!(((*(*sym).owner).Sup.id == (*(*m).module).Sup.id))) goto LA10_;
		{
			if (!(((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 23))&63U)))!=0)) goto LA14_;
			declareThreadVar_xgBfR60K7h9cY7wbsHV20Dg(m, sym, NIM_TRUE);
		}
		goto LA12_;
		LA14_: ;
		{
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T17_;
			tyArray_ZqT9cbUNKsl55MABiLlPDxA T30_;
			add_UJnSY21g59awhvSFBxJ9a9aPg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_256));
			T17_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T17_ = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2(m, (*sym).loc.t);
			add_cDalAhgBlDWoYHadkaqqxw(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], T17_);
			{
				if (!(((*sym).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 4))&15U)))!=0)) goto LA20_;
				add_UJnSY21g59awhvSFBxJ9a9aPg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_53));
			}
			LA20_: ;
			{
				if (!(((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 8))&63U)))!=0)) goto LA24_;
				add_UJnSY21g59awhvSFBxJ9a9aPg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_129));
			}
			LA24_: ;
			{
				if (!(((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 7))&63U)))!=0)) goto LA28_;
				add_UJnSY21g59awhvSFBxJ9a9aPg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_130));
			}
			LA28_: ;
			memset((void*)T30_, 0, sizeof(T30_));
			T30_[0] = (*sym).loc.r;
			addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_258), T30_, 1);
		}
		LA12_: ;
	}
	LA10_: ;
	}BeforeRet_: ;
}

N_NIMCALL(void, genVarPrototype_5LEMfE09buQIXg39bLkcpjww_6)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* sym) {
	genVarPrototypeAux_5LEMfE09buQIXg39bLkcpjww_7(m, sym);
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, cgsym_LDQwSdTgGBvWUKfBZpHXDw)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, NimStringDesc* name) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* sym;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	sym = getCompilerProc_shbCpG9bVTG0JrTOcXxC2hQ_2(name);
	{
		if (!!((sym == NIM_NIL))) goto LA3_;
		switch ((*sym).kind) {
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 12):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 13):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 15):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 14):
		{
			genProc_FcQi2SC56oH1DQZne5xn7Q(m, sym);
		}
		break;
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 8):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 11):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 9):
		{
			genVarPrototype_5LEMfE09buQIXg39bLkcpjww_6(m, sym);
		}
		break;
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 7):
		{
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T8_;
			T8_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T8_ = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2(m, (*sym).typ);
			T8_;
		}
		break;
		default:
		{
			NimStringDesc* T10_;
			T10_ = (NimStringDesc*)0;
			T10_ = rawNewString(name->Sup.len + reprEnum((NI)(*sym).kind, (&NTI_cNCW9acsSznmEccl1fgQwkw_))->Sup.len + 9);
appendString(T10_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_259));
appendString(T10_, name);
appendString(T10_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_260));
appendString(T10_, reprEnum((NI)(*sym).kind, (&NTI_cNCW9acsSznmEccl1fgQwkw_)));
			internalError_5XY9cUy7hZmUusM38U9cYYdw(T10_);
		}
		break;
		}
	}
	goto LA1_;
	LA3_: ;
	{
		rawMessage_tBJ8mvo7MzzirsGkrHVc9cw(((tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw) 67), name);
	}
	LA1_: ;
	result = (*sym).loc.r;
	return result;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, ropecg_ail3PxtNU17Ini4A1vCFoA)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, NimStringDesc* frmt, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** args, NI argsLen_0) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	NI i;
	NI length;
	NI num;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	i = ((NI) 0);
	length = (frmt ? frmt->Sup.len : 0);
	result = NIM_NIL;
	num = ((NI) 0);
	{
		while (1) {
			NI start;
			if (!(i < length)) goto LA2;
			{
				if (!((NU8)(frmt->data[i]) == (NU8)(36))) goto LA5_;
				i += ((NI) 1);
				switch (((NU8)(frmt->data[i]))) {
				case 36:
				{
					add_UJnSY21g59awhvSFBxJ9a9aPg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_17));
					i += ((NI) 1);
				}
				break;
				case 35:
				{
					i += ((NI) 1);
					add_cDalAhgBlDWoYHadkaqqxw(&result, args[num]);
					num += ((NI) 1);
				}
				break;
				case 48 ... 57:
				{
					NI j;
					j = ((NI) 0);
					{
						while (1) {
							j = (NI)((NI)((NI)(j * ((NI) 10)) + ((NI) (((NU8)(frmt->data[i]))))) - ((NI) 48));
							i += ((NI) 1);
							{
								NIM_BOOL T14_;
								T14_ = (NIM_BOOL)0;
								T14_ = (length <= i);
								if (T14_) goto LA15_;
								T14_ = !((((NU8)(frmt->data[i])) >= ((NU8)(48)) && ((NU8)(frmt->data[i])) <= ((NU8)(57))));
								LA15_: ;
								if (!T14_) goto LA16_;
								goto LA10;
							}
							LA16_: ;
						}
					} LA10: ;
					num = j;
					{
						NimStringDesc* T22_;
						NimStringDesc* T23_;
						if (!((NI)((argsLen_0-1) + ((NI) 1)) < j)) goto LA20_;
						T22_ = (NimStringDesc*)0;
						T23_ = (NimStringDesc*)0;
						T23_ = nimIntToStr(j);
						T22_ = rawNewString(T23_->Sup.len + 30);
appendString(T22_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
appendString(T22_, T23_);
						internalError_5XY9cUy7hZmUusM38U9cYYdw(T22_);
					}
					LA20_: ;
					add_cDalAhgBlDWoYHadkaqqxw(&result, args[(NI)(j - ((NI) 1))]);
				}
				break;
				case 110:
				{
					{
						if (!!(((gOptions_KL5B8sF4szIsM2AXCWFsIw &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 10))&31U)))!=0))) goto LA27_;
						add_cDalAhgBlDWoYHadkaqqxw(&result, rnl_cGyNlPEm9bfohklPdVEsyNg);
					}
					LA27_: ;
					i += ((NI) 1);
				}
				break;
				case 78:
				{
					add_cDalAhgBlDWoYHadkaqqxw(&result, rnl_cGyNlPEm9bfohklPdVEsyNg);
					i += ((NI) 1);
				}
				break;
				default:
				{
					NimStringDesc* T31_;
					T31_ = (NimStringDesc*)0;
					T31_ = rawNewString(31);
appendString(T31_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
appendChar(T31_, frmt->data[i]);
					internalError_5XY9cUy7hZmUusM38U9cYYdw(T31_);
				}
				break;
				}
			}
			goto LA3_;
			LA5_: ;
			{
				NIM_BOOL T33_;
				NI j_2;
				NimStringDesc* ident;
				tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T39_;
				T33_ = (NIM_BOOL)0;
				T33_ = ((NU8)(frmt->data[i]) == (NU8)(35));
				if (!(T33_)) goto LA34_;
				T33_ = (((NU8)(frmt->data[(NI)(i + ((NI) 1))])) >= ((NU8)(97)) && ((NU8)(frmt->data[(NI)(i + ((NI) 1))])) <= ((NU8)(122)) || ((NU8)(frmt->data[(NI)(i + ((NI) 1))])) >= ((NU8)(65)) && ((NU8)(frmt->data[(NI)(i + ((NI) 1))])) <= ((NU8)(90)) || ((NU8)(frmt->data[(NI)(i + ((NI) 1))])) == ((NU8)(95)));
				LA34_: ;
				if (!T33_) goto LA35_;
				i += ((NI) 1);
				j_2 = i;
				{
					while (1) {
						if (!(((NU8)(frmt->data[j_2])) >= ((NU8)(97)) && ((NU8)(frmt->data[j_2])) <= ((NU8)(122)) || ((NU8)(frmt->data[j_2])) >= ((NU8)(65)) && ((NU8)(frmt->data[j_2])) <= ((NU8)(90)) || ((NU8)(frmt->data[j_2])) >= ((NU8)(48)) && ((NU8)(frmt->data[j_2])) <= ((NU8)(57)) || ((NU8)(frmt->data[j_2])) == ((NU8)(95)))) goto LA38;
						j_2 += ((NI) 1);
					} LA38: ;
				}
				ident = copyStrLast(frmt, i, (NI)(j_2 - ((NI) 1)));
				i = j_2;
				T39_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
				T39_ = cgsym_LDQwSdTgGBvWUKfBZpHXDw(m, ident);
				add_cDalAhgBlDWoYHadkaqqxw(&result, T39_);
			}
			goto LA3_;
			LA35_: ;
			{
				NIM_BOOL T41_;
				NI j_3;
				NimStringDesc* T47_;
				tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T48_;
				T41_ = (NIM_BOOL)0;
				T41_ = ((NU8)(frmt->data[i]) == (NU8)(35));
				if (!(T41_)) goto LA42_;
				T41_ = ((NU8)(frmt->data[(NI)(i + ((NI) 1))]) == (NU8)(36));
				LA42_: ;
				if (!T41_) goto LA43_;
				i += ((NI) 2);
				j_3 = ((NI) 0);
				{
					while (1) {
						if (!(((NU8)(frmt->data[i])) >= ((NU8)(48)) && ((NU8)(frmt->data[i])) <= ((NU8)(57)))) goto LA46;
						j_3 = (NI)((NI)((NI)(j_3 * ((NI) 10)) + ((NI) (((NU8)(frmt->data[i]))))) - ((NI) 48));
						i += ((NI) 1);
					} LA46: ;
				}
				T47_ = (NimStringDesc*)0;
				T47_ = dollar__PstQrDfj9a7hGXM74AN2wzg(args[(NI)(j_3 - ((NI) 1))]);
				T48_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
				T48_ = cgsym_LDQwSdTgGBvWUKfBZpHXDw(m, T47_);
				add_cDalAhgBlDWoYHadkaqqxw(&result, T48_);
			}
			goto LA3_;
			LA43_: ;
			LA3_: ;
			start = i;
			{
				while (1) {
					if (!(i < length)) goto LA50;
					{
						NIM_BOOL T53_;
						T53_ = (NIM_BOOL)0;
						T53_ = !(((NU8)(frmt->data[i]) == (NU8)(36)));
						if (!(T53_)) goto LA54_;
						T53_ = !(((NU8)(frmt->data[i]) == (NU8)(35)));
						LA54_: ;
						if (!T53_) goto LA55_;
						i += ((NI) 1);
					}
					goto LA51_;
					LA55_: ;
					{
						goto LA49;
					}
					LA51_: ;
				} LA50: ;
			} LA49: ;
			{
				NimStringDesc* T62_;
				if (!(start <= (NI)(i - ((NI) 1)))) goto LA60_;
				T62_ = (NimStringDesc*)0;
				T62_ = copyStrLast(frmt, start, (NI)(i - ((NI) 1)));
				add_UJnSY21g59awhvSFBxJ9a9aPg(&result, T62_);
			}
			LA60_: ;
		} LA2: ;
	}
	return result;
}

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

N_NIMCALL(void, genProcPrototype_5LEMfE09buQIXg39bLkcpjww_2)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* sym) {
{	useHeader_5LEMfE09buQIXg39bLkcpjww_3(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_AXG7xcvKqaxY6koRX1xkCw* T12_;
			NIM_BOOL T14_;
			tyArray_YB3ke0PEM9bcAj9bAsA619bJA T17_;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T18_;
			T11_ = (NIM_BOOL)0;
			T12_ = (tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw*)0;
			T12_ = getModule_0lPlu1uOok1rRK50z1V70A(sym);
			T11_ = !(((*T12_).Sup.id == (*(*m).module).Sup.id));
			if (!(T11_)) goto LA13_;
			T14_ = (NIM_BOOL)0;
			T14_ = containsOrIncl_B0EhVMrh5BBBZOOtYjAvVg((&(*m).declaredThings), (*sym).Sup.id);
			T11_ = !(T14_);
			LA13_: ;
			if (!T11_) goto LA15_;
			memset((void*)T17_, 0, sizeof(T17_));
			T17_[0] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2(m, (*sym).loc.t);
			T17_[1] = mangleDynLibProc_Kt7Li7NCe9c9bR9bQfvgl6xxQ(sym);
			T18_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T18_ = ropecg_ail3PxtNU17Ini4A1vCFoA(NIM_NIL, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_261), T17_, 2);
			add_cDalAhgBlDWoYHadkaqqxw(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], T18_);
		}
		LA15_: ;
	}
	goto LA5_;
	LA7_: ;
	{
		NIM_BOOL T20_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* header;
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T47_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T48_;
		T20_ = (NIM_BOOL)0;
		T20_ = containsOrIncl_B0EhVMrh5BBBZOOtYjAvVg((&(*m).declaredProtos), (*sym).Sup.id);
		if (!!(T20_)) goto LA21_;
		header = genProcHeader_uFtBuQho0qaeduX9cqfK4FQ(m, sym);
		{
			NIM_BOOL T25_;
			T25_ = (NIM_BOOL)0;
			T25_ = (((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 14))&63U)))!=0);
			if (!(T25_)) goto LA26_;
			T25_ = ((CC_78I18QZNZFIv9ah7oETc0jg[(cCompiler_Dz9bRorQ2m6cBt9awpi4iwPw)- 1].Field19 &(1U<<((NU)(((tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg) 6))&7U)))!=0);
			LA26_: ;
			if (!T25_) goto LA27_;
			header = amp__OL8oYU3myMrLfqhcdP9b3Ig(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_228), header);
		}
		LA27_: ;
		{
			NIM_BOOL T31_;
			T31_ = (NIM_BOOL)0;
			T31_ = !(((*(*sym).typ).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 5)));
			if (!(T31_)) goto LA32_;
			T31_ = requiresExternC_7Q9b8lCRSc6Djnv4Pr9crhaQcgen(m, sym);
			LA32_: ;
			if (!T31_) goto LA33_;
			header = amp__OL8oYU3myMrLfqhcdP9b3Ig(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_262), header);
		}
		LA33_: ;
		{
			NIM_BOOL T37_;
			T37_ = (NIM_BOOL)0;
			T37_ = (((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 9))&63U)))!=0);
			if (!(T37_)) goto LA38_;
			T37_ = ((CC_78I18QZNZFIv9ah7oETc0jg[(cCompiler_Dz9bRorQ2m6cBt9awpi4iwPw)- 1].Field19 &(1U<<((NU)(((tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg) 7))&7U)))!=0);
			LA38_: ;
			if (!T37_) goto LA39_;
			add_UJnSY21g59awhvSFBxJ9a9aPg(&header, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_263));
		}
		LA39_: ;
		{
			NIM_BOOL T43_;
			T43_ = (NIM_BOOL)0;
			T43_ = (((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 14))&63U)))!=0);
			if (!(T43_)) goto LA44_;
			T43_ = ((CC_78I18QZNZFIv9ah7oETc0jg[(cCompiler_Dz9bRorQ2m6cBt9awpi4iwPw)- 1].Field19 &(1U<<((NU)(((tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg) 7))&7U)))!=0);
			LA44_: ;
			if (!T43_) goto LA45_;
			add_UJnSY21g59awhvSFBxJ9a9aPg(&header, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_264));
		}
		LA45_: ;
		memset((void*)T47_, 0, sizeof(T47_));
		T47_[0] = header;
		T48_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T48_ = ropecg_ail3PxtNU17Ini4A1vCFoA(NIM_NIL, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_206), T47_, 1);
		add_cDalAhgBlDWoYHadkaqqxw(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 7))- 0], T48_);
	}
	goto LA5_;
	LA21_: ;
	LA5_: ;
	}BeforeRet_: ;
}

static N_INLINE(NIM_BOOL, usesNativeGC_9bOOl1CRXwH84L9baCwIFbjgcgen)(void) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = (((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 5) <= gSelectedGC_Qq37YMpTZX6EGc9apygtZcg);
	return result;
}

N_NIMCALL(void, genRefAssign_BtucsTdHw7orsXIL75hNVg_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* dest, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* src, tySet_tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw flags) {
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*dest).s == ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 2));
		if (T3_) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = usesNativeGC_9bOOl1CRXwH84L9baCwIFbjgcgen();
		T3_ = !(T5_);
		LA4_: ;
		if (!T3_) goto LA6_;
		memset((void*)T8_, 0, sizeof(T8_));
		T8_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(dest);
		T8_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(src);
		linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_131), T8_, 2);
	}
	goto LA1_;
	LA6_: ;
	{
		if (!((*dest).s == ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 3))) goto LA10_;
		{
			NIM_BOOL T14_;
			tyArray_YB3ke0PEM9bcAj9bAsA619bJA T17_;
			T14_ = (NIM_BOOL)0;
			T14_ = canFormAcycle_3xW85al2Ic6K09avBGxLjZg_2((*dest).t);
			if (!T14_) goto LA15_;
			memset((void*)T17_, 0, sizeof(T17_));
			T17_[0] = addrLoc_YU9cO6gMkMct9bbzvzDM0Dzw_2(dest);
			T17_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(src);
			linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_265), T17_, 2);
		}
		goto LA12_;
		LA15_: ;
		{
			tyArray_YB3ke0PEM9bcAj9bAsA619bJA T19_;
			memset((void*)T19_, 0, sizeof(T19_));
			T19_[0] = addrLoc_YU9cO6gMkMct9bbzvzDM0Dzw_2(dest);
			T19_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(src);
			linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_266), T19_, 2);
		}
		LA12_: ;
	}
	goto LA1_;
	LA10_: ;
	{
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T21_;
		memset((void*)T21_, 0, sizeof(T21_));
		T21_[0] = addrLoc_YU9cO6gMkMct9bbzvzDM0Dzw_2(dest);
		T21_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(src);
		linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_267), T21_, 2);
	}
	LA1_: ;
}

N_NIMCALL(void, optAsgnLoc_sHRvUlwaR9bzJRKdjeLRZGA)(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* field, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* Result) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T1_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T2_;
	(*Result).k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 5);
	(*Result).s = (*a).s;
	unsureAsgnRef((void**) (&(*Result).t), t);
	T1_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T1_ = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(a);
	T2_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T2_ = amp__sUFtkQXj2TQTADyk9cLFdDg(T1_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_273));
	unsureAsgnRef((void**) (&(*Result).r), amp__FyliSLNPyN7IibfEAQfpRA(T2_, field));
}

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_LTUWCZolpovw9cWE3JBWSUw* t;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T9_;
	{
		if (!((*src).s == ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 1))) goto LA3_;
		newflags = (flags | 1);
	}
	goto LA1_;
	LA3_: ;
	{
		if (!(((*(*dest).t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 6))&63U)))!=0)) goto LA6_;
		newflags = (flags & ~ 1);
	}
	goto LA1_;
	LA6_: ;
	{
		newflags = flags;
	}
	LA1_: ;
	T9_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
	T9_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*dest).t, IL64(36028797019007248));
	t = getUniqueType_HEGWNfEn5UAm9aUHUXxHEwQ(T9_);
	{
		NI i;
		NI colontmp_;
		NI T11_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T11_ = (NI)0;
		T11_ = len_gG7hUAX9cA629ahMLVL3xN4w_2(t);
		colontmp_ = (T11_ - 1);
		res = ((NI) 0);
		{
			while (1) {
				tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t_2;
				tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* field;
				tyArray_ZqT9cbUNKsl55MABiLlPDxA T14_;
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA T15_;
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA T16_;
				if (!(res <= colontmp_)) goto LA13;
				i = res;
				t_2 = (*t).sons->data[i];
				memset((void*)T14_, 0, sizeof(T14_));
				T14_[0] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (i)));
				field = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_276), T14_, 1);
				memset((void*)(&T15_), 0, sizeof(T15_));
				optAsgnLoc_sHRvUlwaR9bzJRKdjeLRZGA(dest, t_2, field, (&T15_));
				memset((void*)(&T16_), 0, sizeof(T16_));
				optAsgnLoc_sHRvUlwaR9bzJRKdjeLRZGA(src, t_2, field, (&T16_));
				genAssignment_BtucsTdHw7orsXIL75hNVg(p, (&T15_), (&T16_), newflags);
				res += ((NI) 1);
			} LA13: ;
		}
	}
}

N_NIMCALL(void, genGenericAsgn_BtucsTdHw7orsXIL75hNVg_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* dest, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* src, tySet_tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw flags) {
	{
		NIM_BOOL T3_;
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((flags &(1U<<((NU)(((tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw) 0))&7U)))!=0));
		if (T3_) goto LA4_;
		T5_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
		T5_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*dest).t, IL64(36028797028444432));
		T3_ = (((*T5_).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 6))&63U)))!=0);
		LA4_: ;
		if (!T3_) goto LA6_;
		{
			NIM_BOOL T10_;
			NIM_BOOL T12_;
			tyArray_1UwZ4PfBDZcImViZT8dk0w T15_;
			T10_ = (NIM_BOOL)0;
			T10_ = ((*dest).s == ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 2));
			if (T10_) goto LA11_;
			T12_ = (NIM_BOOL)0;
			T12_ = usesNativeGC_9bOOl1CRXwH84L9baCwIFbjgcgen();
			T10_ = !(T12_);
			LA11_: ;
			if (!T10_) goto LA13_;
			useStringh_OShE9cXECylewqZ7ZpW2l0w((*p).module);
			memset((void*)T15_, 0, sizeof(T15_));
			T15_[0] = addrLoc_YU9cO6gMkMct9bbzvzDM0Dzw_2(dest);
			T15_[1] = addrLoc_YU9cO6gMkMct9bbzvzDM0Dzw_2(src);
			T15_[2] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(dest);
			linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_277), T15_, 3);
		}
		goto LA8_;
		LA13_: ;
		{
			tyArray_1UwZ4PfBDZcImViZT8dk0w T17_;
			memset((void*)T17_, 0, sizeof(T17_));
			T17_[0] = addrLoc_YU9cO6gMkMct9bbzvzDM0Dzw_2(dest);
			T17_[1] = addrLoc_YU9cO6gMkMct9bbzvzDM0Dzw_2(src);
			T17_[2] = genTypeInfo_x7sD9aHIDrXyWVDTVp9bclvA((*p).module, (*dest).t);
			linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_278), T17_, 3);
		}
		LA8_: ;
	}
	goto LA1_;
	LA6_: ;
	{
		tyArray_1UwZ4PfBDZcImViZT8dk0w T19_;
		memset((void*)T19_, 0, sizeof(T19_));
		T19_[0] = addrLoc_YU9cO6gMkMct9bbzvzDM0Dzw_2(dest);
		T19_[1] = addrLoc_YU9cO6gMkMct9bbzvzDM0Dzw_2(src);
		T19_[2] = genTypeInfo_x7sD9aHIDrXyWVDTVp9bclvA((*p).module, (*dest).t);
		linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_279), T19_, 3);
	}
	LA1_: ;
}

static N_INLINE(NI, safeLen_CdME9baJhvveuPEDZE9bXoxArenderer)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	result = (NI)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*n).kind >= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 0) && (*n).kind <= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 23));
		if (T3_) goto LA4_;
		T3_ = ((*n).kindU.S6.sons == 0);
		LA4_: ;
		if (!T3_) goto LA5_;
		result = ((NI) 0);
	}
	goto LA1_;
	LA5_: ;
	{
		NI T8_;
		T8_ = ((*n).kindU.S6.sons ? (*n).kindU.S6.sons->Sup.len : 0);
		result = T8_;
	}
	LA1_: ;
	return result;
}

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

N_NIMCALL(void, genOptAsgnObject_J9bD5ZMjzzbq8DSLSQpmmSw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* dest, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* src, tySet_tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw flags, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ) {
	tySet_tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw newflags;
{	{
		if (!(t == NIM_NIL)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!((*src).s == ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 1))) goto LA7_;
		newflags = (flags | 1);
	}
	goto LA5_;
	LA7_: ;
	{
		if (!(((*(*dest).t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 6))&63U)))!=0)) goto LA10_;
		newflags = (flags & ~ 1);
	}
	goto LA5_;
	LA10_: ;
	{
		newflags = flags;
	}
	LA5_: ;
	switch ((*t).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* field;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA T18_;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA T19_;
		field = (*t).kindU.S4.sym;
		{
			if (!((*field).loc.r == NIM_NIL)) goto LA16_;
			fillObjectFields_HYq5QAQNqLSWZyliakxHKw((*p).module, typ);
		}
		LA16_: ;
		memset((void*)(&T18_), 0, sizeof(T18_));
		optAsgnLoc_sHRvUlwaR9bzJRKdjeLRZGA(dest, (*field).typ, (*field).loc.r, (&T18_));
		memset((void*)(&T19_), 0, sizeof(T19_));
		optAsgnLoc_sHRvUlwaR9bzJRKdjeLRZGA(src, (*field).typ, (*field).loc.r, (&T19_));
		genAssignment_BtucsTdHw7orsXIL75hNVg(p, (&T18_), (&T19_), newflags);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 138):
	{
		{
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* child;
			child = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i;
				NI colontmp_;
				NI T23_;
				NI res;
				i = (NI)0;
				colontmp_ = (NI)0;
				T23_ = (NI)0;
				T23_ = safeLen_CdME9baJhvveuPEDZE9bXoxArenderer(t);
				colontmp_ = (T23_ - 1);
				res = ((NI) 0);
				{
					while (1) {
						if (!(res <= colontmp_)) goto LA25;
						i = res;
						child = (*t).kindU.S6.sons->data[i];
						genOptAsgnObject_J9bD5ZMjzzbq8DSLSQpmmSw(p, dest, src, newflags, child, typ);
						res += ((NI) 1);
					} LA25: ;
				}
			}
		}
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
}

N_NIMCALL(void, genAssignment_BtucsTdHw7orsXIL75hNVg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* dest, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* src, tySet_tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw flags) {
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* ty;
{	{
		NIM_BOOL T3_;
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*src).t == NIM_NIL));
		if (!(T3_)) goto LA4_;
		T3_ = ((*(*src).t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21));
		LA4_: ;
		if (!T3_) goto LA5_;
		memset((void*)T7_, 0, sizeof(T7_));
		T7_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(dest);
		T7_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(src);
		linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_131), T7_, 2);
		goto BeforeRet_;
	}
	LA5_: ;
	ty = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*dest).t, IL64(49539595902167312));
	switch ((*ty).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22):
	{
		genRefAssign_BtucsTdHw7orsXIL75hNVg_2(p, dest, src, flags);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
	{
		{
			NIM_BOOL T12_;
			T12_ = (NIM_BOOL)0;
			T12_ = !(((flags &(1U<<((NU)(((tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw) 0))&7U)))!=0));
			if (!(T12_)) goto LA13_;
			T12_ = !(((*src).s == ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 1)));
			LA13_: ;
			if (!T12_) goto LA14_;
			genRefAssign_BtucsTdHw7orsXIL75hNVg_2(p, dest, src, flags);
		}
		goto LA10_;
		LA14_: ;
		{
			tyArray_1UwZ4PfBDZcImViZT8dk0w T17_;
			memset((void*)T17_, 0, sizeof(T17_));
			T17_[0] = addrLoc_YU9cO6gMkMct9bbzvzDM0Dzw_2(dest);
			T17_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(src);
			T17_[2] = genTypeInfo_x7sD9aHIDrXyWVDTVp9bclvA((*p).module, (*dest).t);
			linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_268), T17_, 3);
		}
		LA10_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
	{
		{
			NIM_BOOL T21_;
			T21_ = (NIM_BOOL)0;
			T21_ = !(((flags &(1U<<((NU)(((tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw) 0))&7U)))!=0));
			if (!(T21_)) goto LA22_;
			T21_ = !(((*src).s == ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 1)));
			LA22_: ;
			if (!T21_) goto LA23_;
			genRefAssign_BtucsTdHw7orsXIL75hNVg_2(p, dest, src, flags);
		}
		goto LA19_;
		LA23_: ;
		{
			{
				NIM_BOOL T28_;
				NIM_BOOL T30_;
				tyArray_YB3ke0PEM9bcAj9bAsA619bJA T33_;
				T28_ = (NIM_BOOL)0;
				T28_ = ((*dest).s == ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 2));
				if (T28_) goto LA29_;
				T30_ = (NIM_BOOL)0;
				T30_ = usesNativeGC_9bOOl1CRXwH84L9baCwIFbjgcgen();
				T28_ = !(T30_);
				LA29_: ;
				if (!T28_) goto LA31_;
				memset((void*)T33_, 0, sizeof(T33_));
				T33_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(dest);
				T33_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(src);
				linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_269), T33_, 2);
			}
			goto LA26_;
			LA31_: ;
			{
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp;
				tyArray_1UwZ4PfBDZcImViZT8dk0w T37_;
				tyArray_ZqT9cbUNKsl55MABiLlPDxA T38_;
				if (!((*dest).s == ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 3))) goto LA35_;
				memset((void*)(&tmp), 0, sizeof(tmp));
				getTemp_AAMs9asc5S78MBo8z9bTltgw(p, ty, (&tmp), NIM_FALSE);
				memset((void*)T37_, 0, sizeof(T37_));
				T37_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(dest);
				T37_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(src);
				T37_[2] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&tmp));
				linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_270), T37_, 3);
				memset((void*)T38_, 0, sizeof(T38_));
				T38_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&tmp));
				linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_271), T38_, 1);
			}
			goto LA26_;
			LA35_: ;
			{
				tyArray_YB3ke0PEM9bcAj9bAsA619bJA T40_;
				memset((void*)T40_, 0, sizeof(T40_));
				T40_[0] = addrLoc_YU9cO6gMkMct9bbzvzDM0Dzw_2(dest);
				T40_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(src);
				linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_272), T40_, 2);
			}
			LA26_: ;
		}
		LA19_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25):
	{
		{
			NIM_BOOL T44_;
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T47_;
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA T48_;
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T49_;
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA T50_;
			tyArray_YB3ke0PEM9bcAj9bAsA619bJA T51_;
			T44_ = (NIM_BOOL)0;
			T44_ = needsComplexAssignment_3SzYNACzyWFJESqPlmwhsg((*dest).t);
			if (!T44_) goto LA45_;
			memset((void*)(&a), 0, sizeof(a));
			T47_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T47_ = rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_274));
			memset((void*)(&T48_), 0, sizeof(T48_));
			optAsgnLoc_sHRvUlwaR9bzJRKdjeLRZGA(dest, (*dest).t, T47_, (&T48_));
			memcpy((void*)(&a), (NIM_CONST void*)(&T48_), sizeof(a));
			memset((void*)(&b), 0, sizeof(b));
			T49_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T49_ = rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_274));
			memset((void*)(&T50_), 0, sizeof(T50_));
			optAsgnLoc_sHRvUlwaR9bzJRKdjeLRZGA(src, (*dest).t, T49_, (&T50_));
			memcpy((void*)(&b), (NIM_CONST void*)(&T50_), sizeof(b));
			genRefAssign_BtucsTdHw7orsXIL75hNVg_2(p, (&a), (&b), flags);
			memset((void*)T51_, 0, sizeof(T51_));
			T51_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(dest);
			T51_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(src);
			linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_275), T51_, 2);
		}
		goto LA42_;
		LA45_: ;
		{
			tyArray_YB3ke0PEM9bcAj9bAsA619bJA T53_;
			memset((void*)T53_, 0, sizeof(T53_));
			T53_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(dest);
			T53_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(src);
			linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_131), T53_, 2);
		}
		LA42_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		{
			NIM_BOOL T57_;
			T57_ = (NIM_BOOL)0;
			T57_ = needsComplexAssignment_3SzYNACzyWFJESqPlmwhsg((*dest).t);
			if (!T57_) goto LA58_;
			{
				NI T62_;
				T62_ = (NI)0;
				T62_ = len_gG7hUAX9cA629ahMLVL3xN4w_2((*dest).t);
				if (!(T62_ <= ((NI) 4))) goto LA63_;
				genOptAsgnTuple_BtucsTdHw7orsXIL75hNVg_3(p, dest, src, flags);
			}
			goto LA60_;
			LA63_: ;
			{
				genGenericAsgn_BtucsTdHw7orsXIL75hNVg_4(p, dest, src, flags);
			}
			LA60_: ;
		}
		goto LA55_;
		LA58_: ;
		{
			tyArray_YB3ke0PEM9bcAj9bAsA619bJA T67_;
			memset((void*)T67_, 0, sizeof(T67_));
			T67_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(dest);
			T67_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(src);
			linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_131), T67_, 2);
		}
		LA55_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17):
	{
		{
			NIM_BOOL T71_;
			tyArray_YB3ke0PEM9bcAj9bAsA619bJA T74_;
			T71_ = (NIM_BOOL)0;
			T71_ = isImportedCppType_B4nHhP3INN4MtYAgHK3Lrw(ty);
			if (!T71_) goto LA72_;
			memset((void*)T74_, 0, sizeof(T74_));
			T74_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(dest);
			T74_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(src);
			linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_131), T74_, 2);
		}
		goto LA69_;
		LA72_: ;
		{
			NIM_BOOL T76_;
			T76_ = (NIM_BOOL)0;
			T76_ = isObjLackingTypeField_Ejb3pIY519bW1IHfWPGBwwgcgen(ty);
			if (!!(T76_)) goto LA77_;
			genGenericAsgn_BtucsTdHw7orsXIL75hNVg_4(p, dest, src, flags);
		}
		goto LA69_;
		LA77_: ;
		{
			NIM_BOOL T80_;
			T80_ = (NIM_BOOL)0;
			T80_ = needsComplexAssignment_3SzYNACzyWFJESqPlmwhsg(ty);
			if (!T80_) goto LA81_;
			{
				NIM_BOOL T85_;
				NI T87_;
				tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T90_;
				T85_ = (NIM_BOOL)0;
				T85_ = ((*ty).sons->data[((NI) 0)] == 0);
				if (!(T85_)) goto LA86_;
				T87_ = (NI)0;
				T87_ = asgnComplexity_NnHoLMfVBQytirwVsNNNOQ((*ty).n);
				T85_ = (T87_ <= ((NI) 4));
				LA86_: ;
				if (!T85_) goto LA88_;
				T90_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
				T90_ = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, ty);
				T90_;
				{
					NimStringDesc* T95_;
					if (!!(!(((*ty).n == NIM_NIL)))) goto LA93_;
					T95_ = (NimStringDesc*)0;
					T95_ = dollar__k53Ge4e9cDjc7y9c5uML7sPQ(TM_MQdRN7fpbG7rPm4JpVVAhA_280);
					internalError_5XY9cUy7hZmUusM38U9cYYdw(T95_);
				}
				LA93_: ;
				genOptAsgnObject_J9bD5ZMjzzbq8DSLSQpmmSw(p, dest, src, flags, (*ty).n, ty);
			}
			goto LA83_;
			LA88_: ;
			{
				genGenericAsgn_BtucsTdHw7orsXIL75hNVg_4(p, dest, src, flags);
			}
			LA83_: ;
		}
		goto LA69_;
		LA81_: ;
		{
			tyArray_YB3ke0PEM9bcAj9bAsA619bJA T98_;
			memset((void*)T98_, 0, sizeof(T98_));
			T98_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(dest);
			T98_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(src);
			linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_131), T98_, 2);
		}
		LA69_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
	{
		{
			NIM_BOOL T102_;
			T102_ = (NIM_BOOL)0;
			T102_ = needsComplexAssignment_3SzYNACzyWFJESqPlmwhsg((*dest).t);
			if (!T102_) goto LA103_;
			genGenericAsgn_BtucsTdHw7orsXIL75hNVg_4(p, dest, src, flags);
		}
		goto LA100_;
		LA103_: ;
		{
			tyArray_1UwZ4PfBDZcImViZT8dk0w T106_;
			useStringh_OShE9cXECylewqZ7ZpW2l0w((*p).module);
			memset((void*)T106_, 0, sizeof(T106_));
			T106_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(dest);
			T106_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(src);
			T106_[2] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, (*dest).t);
			linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_277), T106_, 3);
		}
		LA100_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48):
	{
		{
			NIM_BOOL T110_;
			tyArray_1UwZ4PfBDZcImViZT8dk0w T113_;
			T110_ = (NIM_BOOL)0;
			T110_ = needsComplexAssignment_3SzYNACzyWFJESqPlmwhsg((*dest).t);
			if (!T110_) goto LA111_;
			memset((void*)T113_, 0, sizeof(T113_));
			T113_[0] = addrLoc_YU9cO6gMkMct9bbzvzDM0Dzw_2(dest);
			T113_[1] = addrLoc_YU9cO6gMkMct9bbzvzDM0Dzw_2(src);
			T113_[2] = genTypeInfo_x7sD9aHIDrXyWVDTVp9bclvA((*p).module, (*dest).t);
			linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_282), T113_, 3);
		}
		goto LA108_;
		LA111_: ;
		{
			tyArray_YB3ke0PEM9bcAj9bAsA619bJA T115_;
			useStringh_OShE9cXECylewqZ7ZpW2l0w((*p).module);
			memset((void*)T115_, 0, sizeof(T115_));
			T115_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(dest);
			T115_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(src);
			linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_283), T115_, 2);
		}
		LA108_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 19):
	{
		{
			tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w T119_;
			tyArray_1UwZ4PfBDZcImViZT8dk0w T122_;
			NI64 T123_;
			T119_ = (tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w)0;
			T119_ = mapType_xD9bGC83PAN0OvetVlj1cZQ(ty);
			if (!(T119_ == ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 17))) goto LA120_;
			useStringh_OShE9cXECylewqZ7ZpW2l0w((*p).module);
			memset((void*)T122_, 0, sizeof(T122_));
			T122_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(dest);
			T122_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(src);
			T123_ = (NI64)0;
			T123_ = getSize_spMpEAO8ubfQavMigOxQdA((*dest).t);
			T122_[2] = rope_pEztpD6TFe5jk3aCrOSACA(T123_);
			linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_284), T122_, 3);
		}
		goto LA117_;
		LA120_: ;
		{
			tyArray_YB3ke0PEM9bcAj9bAsA619bJA T125_;
			memset((void*)T125_, 0, sizeof(T125_));
			T125_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(dest);
			T125_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(src);
			linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_131), T125_, 2);
		}
		LA117_: ;
	}
	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):
	{
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T127_;
		memset((void*)T127_, 0, sizeof(T127_));
		T127_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(dest);
		T127_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(src);
		linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_131), T127_, 2);
	}
	break;
	default:
	{
		NimStringDesc* T129_;
		T129_ = (NimStringDesc*)0;
		T129_ = rawNewString(reprEnum((NI)(*ty).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len + 15);
appendString(T129_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_285));
appendString(T129_, reprEnum((NI)(*ty).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
		internalError_5XY9cUy7hZmUusM38U9cYYdw(T129_);
	}
	break;
	}
	{
		NIM_BOOL T132_;
		tyArray_EcJXtY9cAr9bpvybuP0XpjyQ T136_;
		NI64 T137_;
		NimStringDesc* T138_;
		NI T139_;
		T132_ = (NIM_BOOL)0;
		T132_ = (((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 22))&31U)))!=0);
		if (!(T132_)) goto LA133_;
		T132_ = ((9 &(1U<<((NU)((*dest).s)&7U)))!=0);
		LA133_: ;
		if (!T132_) goto LA134_;
		memset((void*)T136_, 0, sizeof(T136_));
		T136_[0] = addrLoc_YU9cO6gMkMct9bbzvzDM0Dzw_2(dest);
		T137_ = (NI64)0;
		T137_ = getSize_spMpEAO8ubfQavMigOxQdA((*dest).t);
		T136_[1] = rope_pEztpD6TFe5jk3aCrOSACA(T137_);
		T138_ = (NimStringDesc*)0;
		T138_ = toFullPath_7s19cb7WBgztz9aqEBzwwuqA((*p).currLineInfo.fileIndex);
		T136_[2] = makeCString_c9cmJUs9bNfunHyoffjBZxyg(T138_);
		T139_ = (NI)0;
		T139_ = safeLineNm_l6BPjYNEmUa9aNfpAFDVtOQ((*p).currLineInfo);
		T136_[3] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (T139_)));
		linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_286), T136_, 4);
	}
	LA134_: ;
	}BeforeRet_: ;
}

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_NIMCALL(NIM_BOOL, isSimpleConst_XgQBmxm2ONDacXwgZ5mQzA)(tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ) {
	NIM_BOOL result;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	result = (NIM_BOOL)0;
	t = skipTypes_pLCdCGDuirMe9cspwviV9aVA(typ, IL64(36028797027395856));
	T1_ = (NIM_BOOL)0;
	T1_ = !(((17760256 &((NU64)1<<((NU)((*t).kind)&63U)))!=0));
	if (!(T1_)) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T3_ = ((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25));
	if (!(T3_)) goto LA4_;
	T3_ = ((*t).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8));
	LA4_: ;
	T1_ = !(T3_);
	LA2_: ;
	result = T1_;
	return result;
}

N_NIMCALL(void, putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* r, tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw s) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	memset((void*)(&a), 0, sizeof(a));
	{
		if (!!(((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA3_;
		initLoc_kfK3bi0HoV6YeIhyJNMmZw((&a), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), t, 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).t), t);
		unsureAsgnRef((void**) (&(*d).r), r);
	}
	LA1_: ;
}

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

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genRawSetData_81w5oBz4Cdshqc3jTY2ACQ)(tySequence_pxbIse2JUQkJU0n9blV9bY5g* cs, NI size) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	NimStringDesc* frmt;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	frmt = (NimStringDesc*)0;
	{
		tyArray_j0xH32fTir0IvGY7WxQsQA T5_;
		if (!(((NI) 8) < size)) goto LA3_;
		memset((void*)T5_, 0, sizeof(T5_));
		result = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_290), T5_, 0);
		{
			NI i;
			NI colontmp_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = (NI)(size - ((NI) 1));
			res = ((NI) 0);
			{
				while (1) {
					tyArray_ZqT9cbUNKsl55MABiLlPDxA T19_;
					NimStringDesc* T20_;
					if (!(res <= colontmp_)) goto LA8;
					i = res;
					{
						if (!(i < (NI)(size - ((NI) 1)))) goto LA11_;
						{
							if (!(((NI) ((NI)((NI)(i + ((NI) 1)) % ((NI) 8)))) == ((NI) 0))) goto LA15_;
							frmt = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_291));
						}
						goto LA13_;
						LA15_: ;
						{
							frmt = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_292));
						}
						LA13_: ;
					}
					goto LA9_;
					LA11_: ;
					{
						frmt = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_293));
					}
					LA9_: ;
					memset((void*)T19_, 0, sizeof(T19_));
					T20_ = (NimStringDesc*)0;
					T20_ = nsuToHex(((NI64)(NU64)(NU8)(cs->data[i])), ((NI) 2));
					T19_[0] = rope_53CHEX05HP0HacydnwoUYg(T20_);
					addf_8UUGW4xtgpag0J4uEnVLuQ(&result, frmt, T19_, 1);
					res += ((NI) 1);
				} LA8: ;
			}
		}
	}
	goto LA1_;
	LA3_: ;
	{
		NI64 T22_;
		T22_ = (NI64)0;
		T22_ = bitSetToWord_XVJMM63zz1yugv5v2VDtiA(cs, size);
		result = intLiteral_cVf7QPXGcGBUB7P9cfyCtRw(T22_);
	}
	LA1_: ;
	return result;
}

N_NIMCALL(void, appcg_KYarie00rsII4ENCBv9byYQ)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg s, NimStringDesc* frmt, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** args, NI argsLen_0) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T1_;
	T1_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T1_ = ropecg_ail3PxtNU17Ini4A1vCFoA(m, frmt, args, argsLen_0);
	add_cDalAhgBlDWoYHadkaqqxw(&(*m).s[(s)- 0], T1_);
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genConstSeq_RaPZsQOiobQwAsKmaq9blng)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* data;
	tyArray_ZqT9cbUNKsl55MABiLlPDxA T1_;
	NI T2_;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* base;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T18_;
	tyArray_EcJXtY9cAr9bpvybuP0XpjyQ T19_;
	NI T20_;
	tyArray_YB3ke0PEM9bcAj9bAsA619bJA T21_;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	memset((void*)T1_, 0, sizeof(T1_));
	T2_ = (NI)0;
	T2_ = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(n);
	T1_[0] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (T2_)));
	data = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_294), T1_, 1);
	{
		NI T5_;
		T5_ = (NI)0;
		T5_ = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(n);
		if (!(((NI) 0) < T5_)) goto LA6_;
		add_UJnSY21g59awhvSFBxJ9a9aPg(&data, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_295));
		{
			NI i;
			NI colontmp_;
			NI T9_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T9_ = (NI)0;
			T9_ = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(n);
			colontmp_ = (NI)(T9_ - ((NI) 1));
			res = ((NI) 0);
			{
				while (1) {
					tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T17_;
					if (!(res <= colontmp_)) goto LA11;
					i = res;
					{
						tyArray_j0xH32fTir0IvGY7WxQsQA T16_;
						if (!(((NI) 0) < i)) goto LA14_;
						memset((void*)T16_, 0, sizeof(T16_));
						addf_8UUGW4xtgpag0J4uEnVLuQ(&data, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_296), T16_, 0);
					}
					LA14_: ;
					T17_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
					T17_ = genConstExpr_9ay3JbWaSQA4xkrI8svQaZQ_2(p, (*n).kindU.S6.sons->data[i]);
					add_cDalAhgBlDWoYHadkaqqxw(&data, T17_);
					res += ((NI) 1);
				} LA11: ;
			}
		}
		add_UJnSY21g59awhvSFBxJ9a9aPg(&data, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_297));
	}
	LA6_: ;
	add_UJnSY21g59awhvSFBxJ9a9aPg(&data, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_297));
	result = getTempName_54CrPIOFKsrtQd59cl9bHH3A((*p).module);
	T18_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
	T18_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA(t, IL64(36028797019007248));
	base = (*T18_).sons->data[((NI) 0)];
	memset((void*)T19_, 0, sizeof(T19_));
	T19_[0] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, base);
	T20_ = (NI)0;
	T20_ = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(n);
	T19_[1] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (T20_)));
	T19_[2] = result;
	T19_[3] = data;
	appcg_KYarie00rsII4ENCBv9byYQ((*p).module, ((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_298), T19_, 4);
	memset((void*)T21_, 0, sizeof(T21_));
	T21_[0] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, t);
	T21_[1] = result;
	result = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_299), T21_, 2);
	return result;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genNamedConstExpr_9ay3JbWaSQA4xkrI8svQaZQ_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA3_;
		result = genConstExpr_9ay3JbWaSQA4xkrI8svQaZQ_2(p, (*n).kindU.S6.sons->data[((NI) 1)]);
	}
	goto LA1_;
	LA3_: ;
	{
		result = genConstExpr_9ay3JbWaSQA4xkrI8svQaZQ_2(p, n);
	}
	LA1_: ;
	return result;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genConstSimpleList_9ay3JbWaSQA4xkrI8svQaZQ_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	NI length;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t;
	tyArray_j0xH32fTir0IvGY7WxQsQA T10_;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	length = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
	result = rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_238));
	t = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*n).typ, IL64(36028797019007248));
	{
		NI i;
		NI colontmp_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)(length - ((NI) 2));
		res = ((NI) 0);
		{
			while (1) {
				tyArray_ZqT9cbUNKsl55MABiLlPDxA T4_;
				if (!(res <= colontmp_)) goto LA3;
				i = res;
				memset((void*)T4_, 0, sizeof(T4_));
				T4_[0] = genNamedConstExpr_9ay3JbWaSQA4xkrI8svQaZQ_4(p, (*n).kindU.S6.sons->data[i]);
				addf_8UUGW4xtgpag0J4uEnVLuQ(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_301), T4_, 1);
				res += ((NI) 1);
			} LA3: ;
		}
	}
	{
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T9_;
		if (!(((NI) 0) < length)) goto LA7_;
		T9_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T9_ = genNamedConstExpr_9ay3JbWaSQA4xkrI8svQaZQ_4(p, (*n).kindU.S6.sons->data[(NI)(length - ((NI) 1))]);
		add_cDalAhgBlDWoYHadkaqqxw(&result, T9_);
	}
	LA7_: ;
	memset((void*)T10_, 0, sizeof(T10_));
	addf_8UUGW4xtgpag0J4uEnVLuQ(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_174), T10_, 0);
	return result;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getDefaultValue_ct4fF39bB2a9a9bEdM9cniIm0w)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ, tyObject_TLineInfo_T9c3PM9bs7WZ4LIQfEici9cZw info) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	t = skipTypes_pLCdCGDuirMe9cspwviV9aVA(typ, IL64(36028797020055568));
	switch ((*t).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 1):
	{
		result = rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_303));
	}
	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_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_140));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 39):
	{
		result = rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_304));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 29):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 26):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 6):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 7):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 8):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 60):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 5):
	{
		result = rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_305));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25):
	{
		{
			if (!!(((*t).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8)))) goto LA8_;
			result = rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_305));
		}
		goto LA6_;
		LA8_: ;
		{
			result = rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_306));
		}
		LA6_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17):
	{
		{
			NIM_BOOL T14_;
			NIM_BOOL T15_;
			NIM_BOOL T17_;
			tyArray_ZqT9cbUNKsl55MABiLlPDxA T21_;
			T14_ = (NIM_BOOL)0;
			T15_ = (NIM_BOOL)0;
			T15_ = isObjLackingTypeField_Ejb3pIY519bW1IHfWPGBwwgcgen(t);
			T14_ = !(T15_);
			if (!(T14_)) goto LA16_;
			T17_ = (NIM_BOOL)0;
			T17_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
			if (T17_) goto LA18_;
			T17_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA18_: ;
			T14_ = !(T17_);
			LA16_: ;
			if (!T14_) goto LA19_;
			memset((void*)T21_, 0, sizeof(T21_));
			T21_[0] = genTypeInfo_x7sD9aHIDrXyWVDTVp9bclvA((*p).module, t);
			result = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_307), T21_, 1);
		}
		goto LA12_;
		LA19_: ;
		{
			result = rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_308));
		}
		LA12_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		result = rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_308));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 19):
	{
		{
			tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w T27_;
			T27_ = (tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w)0;
			T27_ = mapType_xD9bGC83PAN0OvetVlj1cZQ(t);
			if (!(T27_ == ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 17))) goto LA28_;
			result = rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_308));
		}
		goto LA25_;
		LA28_: ;
		{
			result = rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_140));
		}
		LA25_: ;
	}
	break;
	default:
	{
		NimStringDesc* T32_;
		T32_ = (NimStringDesc*)0;
		T32_ = rawNewString(reprEnum((NI)(*t).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len + 32);
appendString(T32_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_309));
appendString(T32_, reprEnum((NI)(*t).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
		globalError_GarD0CQJ5aQhoHekHYinVQ_2(info, T32_);
	}
	break;
	}
	return result;
}

N_NIMCALL(void, getNullValueAux_89bNc1Fykmh4gqaKPcvp5ZQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* obj, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* cons, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** result, NI* count) {
{	switch ((*obj).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 138):
	{
		{
			NI i;
			NI colontmp_;
			NI T3_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T3_ = (NI)0;
			T3_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(obj);
			colontmp_ = (NI)(T3_ - ((NI) 1));
			res = ((NI) 0);
			{
				while (1) {
					if (!(res <= colontmp_)) goto LA5;
					i = res;
					getNullValueAux_89bNc1Fykmh4gqaKPcvp5ZQ(p, t, (*obj).kindU.S6.sons->data[i], cons, result, count);
					res += ((NI) 1);
				} LA5: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 139):
	{
		getNullValueAux_89bNc1Fykmh4gqaKPcvp5ZQ(p, t, (*obj).kindU.S6.sons->data[((NI) 0)], cons, result, count);
		{
			NI i_2;
			NI colontmp__2;
			NI T8_;
			NI res_2;
			i_2 = (NI)0;
			colontmp__2 = (NI)0;
			T8_ = (NI)0;
			T8_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(obj);
			colontmp__2 = (NI)(T8_ - ((NI) 1));
			res_2 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T11_;
					if (!(res_2 <= colontmp__2)) goto LA10;
					i_2 = res_2;
					T11_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
					T11_ = lastSon_esDJA7239bJDiq4UrX9aHCjg((*obj).kindU.S6.sons->data[i_2]);
					getNullValueAux_89bNc1Fykmh4gqaKPcvp5ZQ(p, t, T11_, cons, result, count);
					res_2 += ((NI) 1);
				} LA10: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* field;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T33_;
		{
			if (!(((NI) 0) < (*count))) goto LA15_;
			add_UJnSY21g59awhvSFBxJ9a9aPg(result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_119));
		}
		LA15_: ;
		(*count) += ((NI) 1);
		field = (*obj).kindU.S4.sym;
		{
			NI i_3;
			NI colontmp__3;
			NI i_4;
			i_3 = (NI)0;
			colontmp__3 = (NI)0;
			colontmp__3 = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(cons);
			i_4 = ((NI) 1);
			{
				while (1) {
					if (!(i_4 < colontmp__3)) goto LA19;
					i_3 = i_4;
					{
						if (!((*(*cons).kindU.S6.sons->data[i_3]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA22_;
						{
							tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T28_;
							if (!((*(*(*(*(*cons).kindU.S6.sons->data[i_3]).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym).name).Sup.id == (*(*field).name).Sup.id)) goto LA26_;
							T28_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
							T28_ = genConstExpr_9ay3JbWaSQA4xkrI8svQaZQ_2(p, (*(*cons).kindU.S6.sons->data[i_3]).kindU.S6.sons->data[((NI) 1)]);
							add_cDalAhgBlDWoYHadkaqqxw(result, T28_);
							goto BeforeRet_;
						}
						LA26_: ;
					}
					goto LA20_;
					LA22_: ;
					{
						tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T32_;
						if (!(i_3 == (*field).position)) goto LA30_;
						T32_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
						T32_ = genConstExpr_9ay3JbWaSQA4xkrI8svQaZQ_2(p, (*cons).kindU.S6.sons->data[i_3]);
						add_cDalAhgBlDWoYHadkaqqxw(result, T32_);
						goto BeforeRet_;
					}
					goto LA20_;
					LA30_: ;
					LA20_: ;
					i_4 += ((NI) 1);
				} LA19: ;
			}
		}
		T33_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T33_ = getDefaultValue_ct4fF39bB2a9a9bEdM9cniIm0w(p, (*field).typ, (*cons).info);
		add_cDalAhgBlDWoYHadkaqqxw(result, T33_);
	}
	break;
	default:
	{
		NimStringDesc* T35_;
		NimStringDesc* T36_;
		T35_ = (NimStringDesc*)0;
		T36_ = (NimStringDesc*)0;
		T36_ = dollar__qX5C9b0n9bOP7jk69amC8dA7A_2(obj);
		T35_ = rawNewString(T36_->Sup.len + 32);
appendString(T35_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_309));
appendString(T35_, T36_);
		localError_GarD0CQJ5aQhoHekHYinVQ((*cons).info, T35_);
	}
	break;
	}
	}BeforeRet_: ;
}

N_NIMCALL(void, getNullValueAuxT_CMQPuc6Hj12xBWUf4uBJAw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* orig, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* obj, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* cons, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** result, NI* count) {
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* base;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* oldRes;
	NI oldcount;
	base = (*t).sons->data[((NI) 0)];
	oldRes = (*result);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T3_) goto LA4_;
		T3_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA4_: ;
		if (!!(T3_)) goto LA5_;
		add_UJnSY21g59awhvSFBxJ9a9aPg(result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_238));
	}
	LA5_: ;
	oldcount = (*count);
	{
		if (!!((base == NIM_NIL))) goto LA9_;
		base = skipTypes_pLCdCGDuirMe9cspwviV9aVA(base, IL64(36028797033646352));
		getNullValueAuxT_CMQPuc6Hj12xBWUf4uBJAw(p, orig, base, (*base).n, cons, result, count);
	}
	goto LA7_;
	LA9_: ;
	{
		NIM_BOOL T12_;
		NIM_BOOL T13_;
		NIM_BOOL T15_;
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T19_;
		T12_ = (NIM_BOOL)0;
		T13_ = (NIM_BOOL)0;
		T13_ = isObjLackingTypeField_Ejb3pIY519bW1IHfWPGBwwgcgen(t);
		T12_ = !(T13_);
		if (!(T12_)) goto LA14_;
		T15_ = (NIM_BOOL)0;
		T15_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T15_) goto LA16_;
		T15_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA16_: ;
		T12_ = !(T15_);
		LA14_: ;
		if (!T12_) goto LA17_;
		memset((void*)T19_, 0, sizeof(T19_));
		T19_[0] = genTypeInfo_x7sD9aHIDrXyWVDTVp9bclvA((*p).module, orig);
		addf_8UUGW4xtgpag0J4uEnVLuQ(result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_302), T19_, 1);
		(*count) += ((NI) 1);
	}
	goto LA7_;
	LA17_: ;
	LA7_: ;
	getNullValueAux_89bNc1Fykmh4gqaKPcvp5ZQ(p, t, obj, cons, result, count);
	{
		if (!(oldcount == (*count))) goto LA22_;
		unsureAsgnRef((void**) (&(*result)), oldRes);
	}
	goto LA20_;
	LA22_: ;
	{
		NIM_BOOL T25_;
		T25_ = (NIM_BOOL)0;
		T25_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T25_) goto LA26_;
		T25_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA26_: ;
		if (!!(T25_)) goto LA27_;
		add_UJnSY21g59awhvSFBxJ9a9aPg(result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_297));
	}
	goto LA20_;
	LA27_: ;
	LA20_: ;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genConstObjConstr_9ay3JbWaSQA4xkrI8svQaZQ_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t;
	NI count;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	result = NIM_NIL;
	t = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*n).typ, IL64(36028797019007248));
	count = ((NI) 0);
	getNullValueAuxT_CMQPuc6Hj12xBWUf4uBJAw(p, t, t, (*t).n, n, &result, (&count));
	{
		NIM_BOOL T3_;
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T3_) goto LA4_;
		T3_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		memset((void*)T7_, 0, sizeof(T7_));
		T7_[0] = result;
		result = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_310), T7_, 1);
	}
	LA5_: ;
	return result;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genConstExpr_9ay3JbWaSQA4xkrI8svQaZQ_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 58):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 59):
	{
		result = genConstExpr_9ay3JbWaSQA4xkrI8svQaZQ_2(p, (*n).kindU.S6.sons->data[((NI) 1)]);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 39):
	{
		tySequence_pxbIse2JUQkJU0n9blV9bY5g* cs;
		NI64 T3_;
		cs = (tySequence_pxbIse2JUQkJU0n9blV9bY5g*)0;
		toBitSet_Bgj7mr9bCmLIhOzddHDtD0A(n, (&cs));
		T3_ = (NI64)0;
		T3_ = getSize_spMpEAO8ubfQavMigOxQdA((*n).typ);
		result = genRawSetData_81w5oBz4Cdshqc3jTY2ACQ(cs, ((NI) (T3_)));
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 41):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 37):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 155):
	{
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t;
		t = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*n).typ, IL64(36028797019007248));
		{
			if (!((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24))) goto LA7_;
			result = genConstSeq_RaPZsQOiobQwAsKmaq9blng(p, n, (*n).typ);
		}
		goto LA5_;
		LA7_: ;
		{
			NIM_BOOL T10_;
			NIM_BOOL T11_;
			NIM_BOOL T12_;
			NIM_BOOL T13_;
			tyArray_j0xH32fTir0IvGY7WxQsQA T20_;
			T10_ = (NIM_BOOL)0;
			T11_ = (NIM_BOOL)0;
			T12_ = (NIM_BOOL)0;
			T13_ = (NIM_BOOL)0;
			T13_ = ((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25));
			if (!(T13_)) goto LA14_;
			T13_ = ((*t).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8));
			LA14_: ;
			T12_ = T13_;
			if (!(T12_)) goto LA15_;
			T12_ = !(((*n).kindU.S6.sons == 0));
			LA15_: ;
			T11_ = T12_;
			if (!(T11_)) goto LA16_;
			T11_ = ((*(*n).kindU.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 23));
			LA16_: ;
			T10_ = T11_;
			if (!(T10_)) goto LA17_;
			T10_ = ((*(*n).kindU.S6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 23));
			LA17_: ;
			if (!T10_) goto LA18_;
			memset((void*)T20_, 0, sizeof(T20_));
			result = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_300), T20_, 0);
		}
		goto LA5_;
		LA18_: ;
		{
			result = genConstSimpleList_9ay3JbWaSQA4xkrI8svQaZQ_3(p, n);
		}
		LA5_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 38):
	{
		result = genConstObjConstr_9ay3JbWaSQA4xkrI8svQaZQ_5(p, n);
	}
	break;
	default:
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA d;
		memset((void*)(&d), 0, sizeof(d));
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, n, (&d));
		result = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&d));
	}
	break;
	}
	return result;
}

N_NIMCALL(void, requestConstImpl_FPHy1CFTscPwzvyW4X7txQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* sym) {
	tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m;
	tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* q;
{	m = (*p).module;
	useHeader_5LEMfE09buQIXg39bLkcpjww_3(m, sym);
	{
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T5_;
		if (!((*sym).loc.k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA3_;
		T5_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T5_ = mangleName_qNuXhnV9aHm5hP7aXP809asQ((*p).module, sym);
		fillLoc_FYZoK6R9akILOlR1JSuEh3g((&(*sym).loc), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 8), (*sym).typ, 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_zx9aqFxulQ7sumEBL5kRUdg(m, sym);
	{
		NIM_BOOL T12_;
		NIM_BOOL T14_;
		tyArray_1UwZ4PfBDZcImViZT8dk0w T17_;
		T12_ = (NIM_BOOL)0;
		T12_ = !((q == NIM_NIL));
		if (!(T12_)) goto LA13_;
		T14_ = (NIM_BOOL)0;
		T14_ = containsOrIncl_B0EhVMrh5BBBZOOtYjAvVg((&(*q).declaredThings), (*sym).Sup.id);
		T12_ = !(T14_);
		LA13_: ;
		if (!T12_) goto LA15_;
		memset((void*)T17_, 0, sizeof(T17_));
		T17_[0] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2(q, (*sym).typ);
		T17_[1] = (*sym).loc.r;
		T17_[2] = genConstExpr_9ay3JbWaSQA4xkrI8svQaZQ_2((*q).initProc, (*sym).ast);
		addf_8UUGW4xtgpag0J4uEnVLuQ(&(*q).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_289), T17_, 3);
	}
	LA15_: ;
	{
		NIM_BOOL T20_;
		NIM_BOOL T22_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* headerDecl;
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T25_;
		T20_ = (NIM_BOOL)0;
		T20_ = !((q == m));
		if (!(T20_)) goto LA21_;
		T22_ = (NIM_BOOL)0;
		T22_ = containsOrIncl_B0EhVMrh5BBBZOOtYjAvVg((&(*m).declaredThings), (*sym).Sup.id);
		T20_ = !(T22_);
		LA21_: ;
		if (!T20_) goto LA23_;
		memset((void*)T25_, 0, sizeof(T25_));
		T25_[0] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2(m, (*sym).loc.t);
		T25_[1] = (*sym).loc.r;
		headerDecl = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_311), T25_, 2);
		add_cDalAhgBlDWoYHadkaqqxw(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], headerDecl);
		{
			NIM_BOOL T28_;
			T28_ = (NIM_BOOL)0;
			T28_ = (((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 6))&63U)))!=0);
			if (!(T28_)) goto LA29_;
			T28_ = !(((*(*(*p).module).g).generatedHeader == NIM_NIL));
			LA29_: ;
			if (!T28_) goto LA30_;
			add_cDalAhgBlDWoYHadkaqqxw(&(*(*(*(*p).module).g).generatedHeader).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], headerDecl);
		}
		LA30_: ;
	}
	LA23_: ;
	}BeforeRet_: ;
}

N_NIMCALL(void, genComplexConst_8URCVeUDTzFDNPBn6P6nMw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* sym, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	requestConstImpl_FPHy1CFTscPwzvyW4X7txQ(p, sym);
	putLocIntoDest_SkhzpH2DDHJ7pbmCpsHIPg(p, d, (&(*sym).loc));
}

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

N_NIMCALL(void, accessThreadLocalVar_25ePRX3l19c3c1n9bFXQUURw_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* s) {
	{
		NIM_BOOL T3_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T7_;
		tyArray_j0xH32fTir0IvGY7WxQsQA T8_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T9_;
		tyArray_j0xH32fTir0IvGY7WxQsQA T10_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T11_;
		T3_ = (NIM_BOOL)0;
		T3_ = emulatedThreadVars_qJe2xBmGcgIoAQUJsGS9aGwcgen();
		if (!(T3_)) goto LA4_;
		T3_ = !((*p).threadVarAccessed);
		LA4_: ;
		if (!T3_) goto LA5_;
		(*p).threadVarAccessed = NIM_TRUE;
		(*(*p).module).flags |= ((NU8)1)<<((((tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q) 1))%(sizeof(NU8)*8));
		T7_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
		T7_ = procSec_OUiru83H7n4zC9cnXN2KbrQ_2cgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
		memset((void*)T8_, 0, sizeof(T8_));
		addf_8UUGW4xtgpag0J4uEnVLuQ(T7_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_313), T8_, 0);
		T9_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
		T9_ = procSec_OUiru83H7n4zC9cnXN2KbrQ_2cgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1));
		memset((void*)T10_, 0, sizeof(T10_));
		T11_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T11_ = ropecg_ail3PxtNU17Ini4A1vCFoA((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_314), T10_, 0);
		add_cDalAhgBlDWoYHadkaqqxw(T9_, T11_);
	}
	LA5_: ;
}

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

N_NIMCALL(void, putDataIntoDest_Dxuag2jBVQiuegEcf4GaWQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* r) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	memset((void*)(&a), 0, sizeof(a));
	{
		if (!!(((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA3_;
		initLoc_kfK3bi0HoV6YeIhyJNMmZw((&a), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 8), t, ((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).t), t);
		unsureAsgnRef((void**) (&(*d).r), r);
	}
	LA1_: ;
}

N_NIMCALL(NIM_BOOL, freshLineInfo_lx7LB5IHEE5TM9b29c9aYFIDw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLineInfo_T9c3PM9bs7WZ4LIQfEici9cZw 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_NIMCALL(void, genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* tt;
	NI line;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T18_;
	NimStringDesc* T19_;
	tt = t;
	{
		NIM_BOOL T3_;
		NI T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*tt).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*tt).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*tt).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*tt).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*tt).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*tt).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*tt).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 32));
		if (!(T3_)) goto LA4_;
		T5_ = (NI)0;
		T5_ = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(tt);
		T3_ = (((NI) 1) < T5_);
		LA4_: ;
		if (!T3_) goto LA6_;
		tt = (*tt).kindU.S6.sons->data[((NI) 1)];
	}
	LA6_: ;
	line = safeLineNm_l6BPjYNEmUa9aNfpAFDVtOQ((*tt).info);
	{
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T12_;
		tyArray_j0xH32fTir0IvGY7WxQsQA T13_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T14_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T15_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T16_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T17_;
		if (!((gGlobalOptions_j042VVDC9cT5ENYoXnmhhVg &(1U<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 27))&31U)))!=0)) goto LA10_;
		T12_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
		T12_ = s_OUiru83H7n4zC9cnXN2KbrQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		memset((void*)T13_, 0, sizeof(T13_));
		T14_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T14_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_320), T13_, 0);
		T15_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T15_ = sourceLine_OIkZkhTYTt59cr9cjk9bklnUA((*tt).info);
		T16_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T16_ = amp__FyliSLNPyN7IibfEAQfpRA(T14_, T15_);
		T17_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T17_ = amp__FyliSLNPyN7IibfEAQfpRA(T16_, rnl_cGyNlPEm9bfohklPdVEsyNg);
		add_cDalAhgBlDWoYHadkaqqxw(T12_, T17_);
	}
	LA10_: ;
	T18_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
	T18_ = s_OUiru83H7n4zC9cnXN2KbrQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	T19_ = (NimStringDesc*)0;
	T19_ = toFullPath_7s19cb7WBgztz9aqEBzwwuqA((*tt).info.fileIndex);
	genCLineDir_g9aeEZ9btQ1Z4iM1T3sMnHDA(T18_, T19_, line);
	{
		NIM_BOOL T22_;
		NIM_BOOL T24_;
		T22_ = (NIM_BOOL)0;
		T22_ = ((163840 & (*p).options) == 163840);
		if (!(T22_)) goto LA23_;
		T24_ = (NIM_BOOL)0;
		T24_ = ((*p).prc == NIM_NIL);
		if (T24_) goto LA25_;
		T24_ = !((((*(*p).prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 9))&63U)))!=0));
		LA25_: ;
		T22_ = T24_;
		LA23_: ;
		if (!T22_) goto LA26_;
		{
			NIM_BOOL T30_;
			tyArray_YB3ke0PEM9bcAj9bAsA619bJA T33_;
			NimStringDesc* T34_;
			T30_ = (NIM_BOOL)0;
			T30_ = freshLineInfo_lx7LB5IHEE5TM9b29c9aYFIDw(p, (*tt).info);
			if (!T30_) goto LA31_;
			memset((void*)T33_, 0, sizeof(T33_));
			T33_[0] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (line)));
			T34_ = (NimStringDesc*)0;
			{
				if (!((*tt).info.fileIndex < ((NI32) 0))) goto LA37_;
				T34_ = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_12));
			}
			goto LA35_;
			LA37_: ;
			{
				T34_ = copyString(fileInfos_0nMtuXd9csTLLtuDok8ckXw->data[(*tt).info.fileIndex].projPath);
			}
			LA35_: ;
			T33_[1] = makeCString_c9cmJUs9bNfunHyoffjBZxyg(T34_);
			linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_321), T33_, 2);
		}
		LA31_: ;
	}
	goto LA20_;
	LA26_: ;
	{
		NIM_BOOL T41_;
		NIM_BOOL T42_;
		NIM_BOOL T44_;
		T41_ = (NIM_BOOL)0;
		T42_ = (NIM_BOOL)0;
		T42_ = ((98304 & (*p).options) == 98304);
		if (!(T42_)) goto LA43_;
		T44_ = (NIM_BOOL)0;
		T44_ = ((*p).prc == NIM_NIL);
		if (T44_) goto LA45_;
		T44_ = !((((*(*p).prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 9))&63U)))!=0));
		LA45_: ;
		T42_ = T44_;
		LA43_: ;
		T41_ = T42_;
		if (!(T41_)) goto LA46_;
		T41_ = (((NI32) 0) <= (*tt).info.fileIndex);
		LA46_: ;
		if (!T41_) goto LA47_;
		{
			NIM_BOOL T51_;
			tyArray_YB3ke0PEM9bcAj9bAsA619bJA T54_;
			T51_ = (NIM_BOOL)0;
			T51_ = freshLineInfo_lx7LB5IHEE5TM9b29c9aYFIDw(p, (*tt).info);
			if (!T51_) goto LA52_;
			memset((void*)T54_, 0, sizeof(T54_));
			T54_[0] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (line)));
			T54_[1] = quotedFilename_OIkZkhTYTt59cr9cjk9bklnUA_2((*tt).info);
			linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_322), T54_, 2);
		}
		LA52_: ;
	}
	goto LA20_;
	LA47_: ;
	LA20_: ;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getLabel_VMw2SYHH12eNnC21DncHWQ_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T1_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T2_;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	(*p).labels += ((NI) 1);
	T1_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T1_ = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) ((*p).labels)));
	T2_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T2_ = amp__OL8oYU3myMrLfqhcdP9b3Ig(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_323), T1_);
	result = amp__sUFtkQXj2TQTADyk9cLFdDg(T2_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_8));
	return result;
}

N_NIMCALL(void, fixLabel_ut0GUS8pCCGZkg3exqiq2w)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* labl) {
	tyArray_ZqT9cbUNKsl55MABiLlPDxA T1_;
	memset((void*)T1_, 0, sizeof(T1_));
	T1_[0] = labl;
	lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_326), T1_, 1);
}

N_NIMCALL(void, genAndOr_yX5yxw6c9agMF4ZvIHKAZvg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg m) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* L;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp;
	L = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	memset((void*)(&tmp), 0, sizeof(tmp));
	getTemp_AAMs9asc5S78MBo8z9bTltgw(p, (*e).typ, (&tmp), NIM_FALSE);
	(*p).splitDecls += ((NI) 1);
	expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*e).kindU.S6.sons->data[((NI) 1)], (&tmp));
	L = getLabel_VMw2SYHH12eNnC21DncHWQ_4(p);
	{
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T5_;
		if (!(m == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 127))) goto LA3_;
		memset((void*)T5_, 0, sizeof(T5_));
		T5_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&tmp));
		T5_[1] = L;
		lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_324), T5_, 2);
	}
	goto LA1_;
	LA3_: ;
	{
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T7_;
		memset((void*)T7_, 0, sizeof(T7_));
		T7_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&tmp));
		T7_[1] = L;
		lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_325), T7_, 2);
	}
	LA1_: ;
	expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*e).kindU.S6.sons->data[((NI) 2)], (&tmp));
	fixLabel_ut0GUS8pCCGZkg3exqiq2w(p, L);
	{
		if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA10_;
		genericAssign((void*)(&(*d)), (void*)(&tmp), (&NTI_EtHNvCB0bgfu9bFjzx9cb6aA_));
	}
	goto LA8_;
	LA10_: ;
	{
		genAssignment_BtucsTdHw7orsXIL75hNVg(p, (&(*d)), (&tmp), 0);
	}
	LA8_: ;
	(*p).splitDecls -= ((NI) 1);
}

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_LTUWCZolpovw9cWE3JBWSUw* t;
	tyArray_1UwZ4PfBDZcImViZT8dk0w T1_;
	NI64 T2_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T3_;
	memset((void*)(&a), 0, sizeof(a));
	t = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 1)], (&a));
	t = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*e).typ, IL64(36028797020055824));
	memset((void*)T1_, 0, sizeof(T1_));
	T1_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
	T2_ = (NI64)0;
	T2_ = getSize_spMpEAO8ubfQavMigOxQdA(t);
	T1_[1] = rope_pEztpD6TFe5jk3aCrOSACA((NI64)(T2_ * IL64(8)));
	T1_[2] = getSimpleTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ((*p).module, (*e).typ);
	T3_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T3_ = percent__tH0lgOCTcFVFSKThSUgFEg(unArithTab_1p9a8KN5j4PMV4F7Mzo8I1Q[(op)- 99], T1_, 3);
	putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*e).typ, T3_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
}

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_LTUWCZolpovw9cWE3JBWSUw* t;
	tyArray_YB3ke0PEM9bcAj9bAsA619bJA T7_;
	NI64 T8_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T9_;
	memset((void*)(&a), 0, sizeof(a));
	t = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 1)], (&a));
	t = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*e).typ, IL64(36028797020055824));
	{
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T5_;
		NI64 T6_;
		if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 5))&31U)))!=0)) goto LA3_;
		memset((void*)T5_, 0, sizeof(T5_));
		T5_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
		T6_ = (NI64)0;
		T6_ = firstOrd_HUiBYxvKiECXCv8BzQNheg(t);
		T5_[1] = intLiteral_cVf7QPXGcGBUB7P9cfyCtRw(T6_);
		linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_343), T5_, 2);
	}
	LA3_: ;
	memset((void*)T7_, 0, sizeof(T7_));
	T7_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
	T8_ = (NI64)0;
	T8_ = getSize_spMpEAO8ubfQavMigOxQdA(t);
	T7_[1] = rope_pEztpD6TFe5jk3aCrOSACA((NI64)(T8_ * IL64(8)));
	T9_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T9_ = percent__tH0lgOCTcFVFSKThSUgFEg(opr_vMxBsg3pHbWQhHBktwp4Jw[(m)- 96], T7_, 2);
	putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*e).typ, T9_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
}

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;
	NI64 T1_;
	NI64 T2_;
	NI64 T3_;
	tyArray_zr9bwyAl6fC7FLYwf5Lbz5w T4_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T5_;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&b), 0, sizeof(b));
	s = (NI64)0;
	k = (NI64)0;
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 1)], (&a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 2)], (&b));
	T1_ = (NI64)0;
	T1_ = getSize_spMpEAO8ubfQavMigOxQdA(a.t);
	T2_ = (NI64)0;
	T2_ = getSize_spMpEAO8ubfQavMigOxQdA(b.t);
	s = (NI64)(((T1_ >= T2_) ? T1_ : T2_) * IL64(8));
	T3_ = (NI64)0;
	T3_ = getSize_spMpEAO8ubfQavMigOxQdA(a.t);
	k = (NI64)(T3_ * IL64(8));
	memset((void*)T4_, 0, sizeof(T4_));
	T4_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
	T4_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&b));
	T4_[2] = rope_pEztpD6TFe5jk3aCrOSACA(s);
	T4_[3] = getSimpleTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ((*p).module, (*e).typ);
	T4_[4] = rope_pEztpD6TFe5jk3aCrOSACA(k);
	T5_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T5_ = percent__tH0lgOCTcFVFSKThSUgFEg(binArithTab_184dMIlbHgay9bxJ8Y4EEQA[(op)- 52], T4_, 5);
	putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*e).typ, T5_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
}

N_NIMCALL(void, binaryFloatArith_yX5yxw6c9agMF4ZvIHKAZvg_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg m) {
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
		tyArray_EcJXtY9cAr9bpvybuP0XpjyQ T5_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T6_;
		if (!!(((384 & (*p).options) == 0))) goto LA3_;
		memset((void*)(&a), 0, sizeof(a));
		memset((void*)(&b), 0, sizeof(b));
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 1)], (&a));
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 2)], (&b));
		memset((void*)T5_, 0, sizeof(T5_));
		T5_[0] = rope_53CHEX05HP0HacydnwoUYg(opr_jSXnH9c8YRRwSdXyVdSg9acA[(m)- 52]);
		T5_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
		T5_[2] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&b));
		T5_[3] = getSimpleTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ((*p).module, (*(*e).kindU.S6.sons->data[((NI) 1)]).typ);
		T6_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T6_ = ropecg_ail3PxtNU17Ini4A1vCFoA(NIM_NIL, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_346), T5_, 4);
		putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*e).typ, T6_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
		{
			tyArray_ZqT9cbUNKsl55MABiLlPDxA T11_;
			if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 7))&31U)))!=0)) goto LA9_;
			memset((void*)T11_, 0, sizeof(T11_));
			T11_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&(*d)));
			linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_350), T11_, 1);
		}
		LA9_: ;
		{
			tyArray_ZqT9cbUNKsl55MABiLlPDxA T16_;
			if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 8))&31U)))!=0)) goto LA14_;
			memset((void*)T16_, 0, sizeof(T16_));
			T16_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&(*d)));
			linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_351), T16_, 1);
		}
		LA14_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		binaryArith_TU9cJnldbmGa9bZDxaR6I4tg_3(p, e, d, m);
	}
	LA1_: ;
}

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;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&b), 0, sizeof(b));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 1)], (&a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 2)], (&b));
	{
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T3_;
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T6_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T7_;
		T3_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
		T3_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA(a.t, IL64(36028797019007248));
		if (!((*T3_).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8))) goto LA4_;
		memset((void*)T6_, 0, sizeof(T6_));
		T6_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
		T6_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&b));
		T7_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T7_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_379), T6_, 2);
		putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*e).typ, T7_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	goto LA1_;
	LA4_: ;
	{
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T9_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T10_;
		memset((void*)T9_, 0, sizeof(T9_));
		T9_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
		T9_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&b));
		T10_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T10_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_368), T9_, 2);
		putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*e).typ, T10_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	LA1_: ;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, rdCharLoc_YU9cO6gMkMct9bbzvzDM0Dzw_3)(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	result = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(a);
	{
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T3_;
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T6_;
		T3_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
		T3_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*a).t, IL64(36028797020055824));
		if (!((*T3_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2))) goto LA4_;
		memset((void*)T6_, 0, sizeof(T6_));
		T6_[0] = result;
		result = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_385), T6_, 1);
	}
	LA4_: ;
	return result;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, binaryArithOverflowRaw_qFXK5QXHFWRf9b28VNBzWlQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* b, NimStringDesc* frmt) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	NI64 size;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* storage;
	tyArray_YB3ke0PEM9bcAj9bAsA619bJA T6_;
	tyArray_1UwZ4PfBDZcImViZT8dk0w T7_;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	size = getSize_spMpEAO8ubfQavMigOxQdA(t);
	{
		if (!(size < ((NI64) (intSize_a1bNgZBNVciKYuzCi2sD5A)))) goto LA3_;
		storage = rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_35));
	}
	goto LA1_;
	LA3_: ;
	{
		storage = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, t);
	}
	LA1_: ;
	result = getTempName_54CrPIOFKsrtQd59cl9bHH3A((*p).module);
	memset((void*)T6_, 0, sizeof(T6_));
	T6_[0] = storage;
	T6_[1] = result;
	linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_55), T6_, 2);
	memset((void*)T7_, 0, sizeof(T7_));
	T7_[0] = result;
	T7_[1] = rdCharLoc_YU9cO6gMkMct9bbzvzDM0Dzw_3(a);
	T7_[2] = rdCharLoc_YU9cO6gMkMct9bbzvzDM0Dzw_3(b);
	lineCg_Z6xIOvD09aMfYvHnc82A86A_2(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), frmt, T7_, 3);
	{
		NIM_BOOL T10_;
		tyArray_1UwZ4PfBDZcImViZT8dk0w T14_;
		NI64 T15_;
		NI64 T16_;
		T10_ = (NIM_BOOL)0;
		T10_ = (size < ((NI64) (intSize_a1bNgZBNVciKYuzCi2sD5A)));
		if (T10_) goto LA11_;
		T10_ = ((1064960 &((NU64)1<<((NU)((*t).kind)&63U)))!=0);
		LA11_: ;
		if (!T10_) goto LA12_;
		memset((void*)T14_, 0, sizeof(T14_));
		T14_[0] = result;
		T15_ = (NI64)0;
		T15_ = firstOrd_HUiBYxvKiECXCv8BzQNheg(t);
		T14_[1] = intLiteral_cVf7QPXGcGBUB7P9cfyCtRw(T15_);
		T16_ = (NI64)0;
		T16_ = lastOrd_HUiBYxvKiECXCv8BzQNheg_2(t);
		T14_[2] = intLiteral_cVf7QPXGcGBUB7P9cfyCtRw(T16_);
		linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_386), T14_, 3);
	}
	LA12_: ;
	return result;
}

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_LTUWCZolpovw9cWE3JBWSUw* t;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&b), 0, sizeof(b));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 1)], (&a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 2)], (&b));
	t = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*e).typ, IL64(36028797020055824));
	{
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* res;
		tyArray_1UwZ4PfBDZcImViZT8dk0w T5_;
		if (!!((((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 5))&31U)))!=0))) goto LA3_;
		memset((void*)T5_, 0, sizeof(T5_));
		T5_[0] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, (*e).typ);
		T5_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
		T5_[2] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&b));
		res = percent__tH0lgOCTcFVFSKThSUgFEg(opr_UAWyVnvyQoWbplounFNlGg[(m)- 45], T5_, 3);
		putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*e).typ, res, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* res_2;
		NimStringDesc* T7_;
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T13_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T14_;
		T7_ = (NimStringDesc*)0;
		{
			if (!((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 35))) goto LA10_;
			T7_ = copyString(prc64_9bTptLAKOOYdunqlEwXM6PQ[(m)- 45]);
		}
		goto LA8_;
		LA10_: ;
		{
			T7_ = copyString(prc_8UqUr1y9abLbrO1vSUF2CqQ[(m)- 45]);
		}
		LA8_: ;
		res_2 = binaryArithOverflowRaw_qFXK5QXHFWRf9b28VNBzWlQ(p, t, (&a), (&b), T7_);
		memset((void*)T13_, 0, sizeof(T13_));
		T13_[0] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, (*e).typ);
		T13_[1] = res_2;
		T14_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T14_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_397), T13_, 2);
		putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*e).typ, T14_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	LA1_: ;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, lenField_VMw2SYHH12eNnC21DncHWQ_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	NimStringDesc* T1_;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T1_ = (NimStringDesc*)0;
	{
		NIM_BOOL T4_;
		T4_ = (NIM_BOOL)0;
		T4_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T4_) goto LA5_;
		T4_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA5_: ;
		if (!T4_) goto LA6_;
		T1_ = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_171));
	}
	goto LA2_;
	LA6_: ;
	{
		T1_ = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_172));
	}
	LA2_: ;
	result = rope_53CHEX05HP0HacydnwoUYg(T1_);
	return result;
}

N_NIMCALL(void, gcUsage_Pb60oErhArqGlPPn4s2Zow)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	{
		NimStringDesc* T5_;
		if (!(gSelectedGC_Qq37YMpTZX6EGc9apygtZcg == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 0))) goto LA3_;
		T5_ = (NimStringDesc*)0;
		T5_ = renderTree_ppjdh9aQ5L0SGPF8yz1gZ9cA(n, 0);
		message_VpilfPWbplGz6ny7O9cfr2g_2((*n).info, ((tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw) 266), T5_);
	}
	LA3_: ;
}

N_NIMCALL(void, genRepr_BKdMcfvryaJLplX0oFPcAQ_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t;
	memset((void*)(&a), 0, sizeof(a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 1)], (&a));
	t = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*(*e).kindU.S6.sons->data[((NI) 1)]).typ, IL64(36028797028444432));
	switch ((*t).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 35):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 40) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44):
	{
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T2_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T3_;
		memset((void*)T2_, 0, sizeof(T2_));
		T2_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
		T3_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T3_ = ropecg_ail3PxtNU17Ini4A1vCFoA((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_398), T2_, 1);
		putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*e).typ, T3_, a.s);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 39):
	{
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T5_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T6_;
		memset((void*)T5_, 0, sizeof(T5_));
		T5_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
		T6_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T6_ = ropecg_ail3PxtNU17Ini4A1vCFoA((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_399), T5_, 1);
		putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*e).typ, T6_, a.s);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 1):
	{
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T8_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T9_;
		memset((void*)T8_, 0, sizeof(T8_));
		T8_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
		T9_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T9_ = ropecg_ail3PxtNU17Ini4A1vCFoA((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_400), T8_, 1);
		putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*e).typ, T9_, a.s);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2):
	{
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T11_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T12_;
		memset((void*)T11_, 0, sizeof(T11_));
		T11_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
		T12_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T12_ = ropecg_ail3PxtNU17Ini4A1vCFoA((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_401), T11_, 1);
		putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*e).typ, T12_, a.s);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 14):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 15):
	{
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T14_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T15_;
		memset((void*)T14_, 0, sizeof(T14_));
		T14_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
		T14_[1] = genTypeInfo_x7sD9aHIDrXyWVDTVp9bclvA((*p).module, t);
		T15_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T15_ = ropecg_ail3PxtNU17Ini4A1vCFoA((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_402), T14_, 2);
		putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*e).typ, T15_, a.s);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
	{
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T17_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T18_;
		memset((void*)T17_, 0, sizeof(T17_));
		T17_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
		T18_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T18_ = ropecg_ail3PxtNU17Ini4A1vCFoA((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_403), T17_, 1);
		putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*e).typ, T18_, a.s);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 19):
	{
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T20_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T21_;
		memset((void*)T20_, 0, sizeof(T20_));
		T20_[0] = addrLoc_YU9cO6gMkMct9bbzvzDM0Dzw_2((&a));
		T20_[1] = genTypeInfo_x7sD9aHIDrXyWVDTVp9bclvA((*p).module, t);
		T21_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T21_ = ropecg_ail3PxtNU17Ini4A1vCFoA((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_404), T20_, 2);
		putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*e).typ, T21_, a.s);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48):
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T34_;
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T35_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T36_;
		memset((void*)(&b), 0, sizeof(b));
		switch ((*a.t).kind) {
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48):
		{
			tyArray_ZqT9cbUNKsl55MABiLlPDxA T24_;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T25_;
			memset((void*)T24_, 0, sizeof(T24_));
			T24_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
			T25_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T25_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_405), T24_, 1);
			putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, (&b), (*e).typ, T25_, a.s);
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
		{
			tyArray_YB3ke0PEM9bcAj9bAsA619bJA T27_;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T28_;
			memset((void*)T27_, 0, sizeof(T27_));
			T27_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
			T27_[1] = lenField_VMw2SYHH12eNnC21DncHWQ_5(p);
			T28_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T28_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_406), T27_, 2);
			putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, (&b), (*e).typ, T28_, a.s);
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
		{
			tyArray_YB3ke0PEM9bcAj9bAsA619bJA T30_;
			NI64 T31_;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T32_;
			memset((void*)T30_, 0, sizeof(T30_));
			T30_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
			T31_ = (NI64)0;
			T31_ = lengthOrd_HUiBYxvKiECXCv8BzQNheg_3(a.t);
			T30_[1] = rope_pEztpD6TFe5jk3aCrOSACA(T31_);
			T32_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T32_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_407), T30_, 2);
			putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, (&b), (*e).typ, T32_, a.s);
		}
		break;
		default:
		{
			internalError_MXmtqrCmYwtOPkDCFgUWKQ((*(*e).kindU.S6.sons->data[((NI) 0)]).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_408));
		}
		break;
		}
		memset((void*)T34_, 0, sizeof(T34_));
		T34_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&b));
		T35_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
		T35_ = elemType_46gPaVDDGhiU69b2oKDJZuA_2(t);
		T34_[1] = genTypeInfo_x7sD9aHIDrXyWVDTVp9bclvA((*p).module, T35_);
		T36_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T36_ = ropecg_ail3PxtNU17Ini4A1vCFoA((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_409), T34_, 2);
		putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*e).typ, T36_, a.s);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 29):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 26):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 5):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
	{
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T38_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T39_;
		memset((void*)T38_, 0, sizeof(T38_));
		T38_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
		T38_[1] = genTypeInfo_x7sD9aHIDrXyWVDTVp9bclvA((*p).module, t);
		T39_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T39_ = ropecg_ail3PxtNU17Ini4A1vCFoA((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_410), T38_, 2);
		putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*e).typ, T39_, a.s);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 3):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 63):
	{
		localError_GarD0CQJ5aQhoHekHYinVQ((*e).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_411));
	}
	break;
	default:
	{
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T42_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T43_;
		memset((void*)T42_, 0, sizeof(T42_));
		T42_[0] = addrLoc_YU9cO6gMkMct9bbzvzDM0Dzw_2((&a));
		T42_[1] = genTypeInfo_x7sD9aHIDrXyWVDTVp9bclvA((*p).module, t);
		T43_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T43_ = ropecg_ail3PxtNU17Ini4A1vCFoA((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_410), T42_, 2);
		putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*e).typ, T43_, a.s);
	}
	break;
	}
	gcUsage_Pb60oErhArqGlPPn4s2Zow(e);
}

N_NIMCALL(void, genGetTypeInfo_BKdMcfvryaJLplX0oFPcAQ_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T1_;
	t = (*(*e).kindU.S6.sons->data[((NI) 1)]).typ;
	T1_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T1_ = genTypeInfo_x7sD9aHIDrXyWVDTVp9bclvA((*p).module, t);
	putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*e).typ, T1_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
}

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_LTUWCZolpovw9cWE3JBWSUw* T1_;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&b), 0, sizeof(b));
	memset((void*)(&tmp), 0, sizeof(tmp));
	T1_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
	T1_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*(*e).kindU.S6.sons->data[((NI) 1)]).typ, IL64(36028797027395856));
	getTemp_AAMs9asc5S78MBo8z9bTltgw(p, T1_, (&tmp), NIM_FALSE);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 1)], (&a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 2)], (&b));
	genAssignment_BtucsTdHw7orsXIL75hNVg(p, (&tmp), (&a), 0);
	genAssignment_BtucsTdHw7orsXIL75hNVg(p, (&a), (&b), 0);
	genAssignment_BtucsTdHw7orsXIL75hNVg(p, (&b), (&tmp), 0);
}

N_NIMCALL(void, unaryExpr_U2agx9aO3WToOTIqL9baXQog)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* frmt) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyArray_ZqT9cbUNKsl55MABiLlPDxA T1_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T2_;
	memset((void*)(&a), 0, sizeof(a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 1)], (&a));
	memset((void*)T1_, 0, sizeof(T1_));
	T1_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
	T2_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T2_ = ropecg_ail3PxtNU17Ini4A1vCFoA((*p).module, frmt, T1_, 1);
	putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*e).typ, T2_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
}

N_NIMCALL(void, binaryStmt_U2agx9aO3WToOTIqL9baXQog_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* frmt) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyArray_YB3ke0PEM9bcAj9bAsA619bJA T5_;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&b), 0, sizeof(b));
	{
		if (!!(((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA3_;
		internalError_MXmtqrCmYwtOPkDCFgUWKQ((*e).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_414));
	}
	LA3_: ;
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 1)], (&a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 2)], (&b));
	memset((void*)T5_, 0, sizeof(T5_));
	T5_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
	T5_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&b));
	lineCg_Z6xIOvD09aMfYvHnc82A86A_2(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), frmt, T5_, 2);
}

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_HF4qJnb6xiOddgPmsxodtQ* appends;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* lens;
	tyArray_1UwZ4PfBDZcImViZT8dk0w T21_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T22_;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&tmp), 0, sizeof(tmp));
	getTemp_AAMs9asc5S78MBo8z9bTltgw(p, (*e).typ, (&tmp), NIM_FALSE);
	L = ((NI) 0);
	appends = NIM_NIL;
	lens = NIM_NIL;
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(e);
		colontmp_ = (NI)(T2_ - ((NI) 2));
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[(NI)(i + ((NI) 1))], (&a));
				{
					tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T7_;
					tyArray_YB3ke0PEM9bcAj9bAsA619bJA T10_;
					tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T11_;
					T7_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
					T7_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*(*e).kindU.S6.sons->data[(NI)(i + ((NI) 1))]).typ, IL64(36028797028444432));
					if (!((*T7_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2))) goto LA8_;
					L += ((NI) 1);
					memset((void*)T10_, 0, sizeof(T10_));
					T10_[0] = tmp.r;
					T10_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
					T11_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
					T11_ = ropecg_ail3PxtNU17Ini4A1vCFoA((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_417), T10_, 2);
					add_cDalAhgBlDWoYHadkaqqxw(&appends, T11_);
				}
				goto LA5_;
				LA8_: ;
				{
					tyArray_YB3ke0PEM9bcAj9bAsA619bJA T19_;
					tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T20_;
					{
						if (!((*(*e).kindU.S6.sons->data[(NI)(i + ((NI) 1))]).kind >= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*(*e).kindU.S6.sons->data[(NI)(i + ((NI) 1))]).kind <= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 22))) goto LA15_;
						L += ((*(*e).kindU.S6.sons->data[(NI)(i + ((NI) 1))]).kindU.S3.strVal ? (*(*e).kindU.S6.sons->data[(NI)(i + ((NI) 1))]).kindU.S3.strVal->Sup.len : 0);
					}
					goto LA13_;
					LA15_: ;
					{
						tyArray_YB3ke0PEM9bcAj9bAsA619bJA T18_;
						memset((void*)T18_, 0, sizeof(T18_));
						T18_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
						T18_[1] = lenField_VMw2SYHH12eNnC21DncHWQ_5(p);
						addf_8UUGW4xtgpag0J4uEnVLuQ(&lens, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_418), T18_, 2);
					}
					LA13_: ;
					memset((void*)T19_, 0, sizeof(T19_));
					T19_[0] = tmp.r;
					T19_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
					T20_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
					T20_ = ropecg_ail3PxtNU17Ini4A1vCFoA((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_419), T19_, 2);
					add_cDalAhgBlDWoYHadkaqqxw(&appends, T20_);
				}
				LA5_: ;
				res += ((NI) 1);
			} LA4: ;
		}
	}
	memset((void*)T21_, 0, sizeof(T21_));
	T21_[0] = tmp.r;
	T21_[1] = lens;
	T21_[2] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (L)));
	linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_420), T21_, 3);
	T22_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
	T22_ = s_OUiru83H7n4zC9cnXN2KbrQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	add_cDalAhgBlDWoYHadkaqqxw(T22_, appends);
	{
		if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA25_;
		genericAssign((void*)(&(*d)), (void*)(&tmp), (&NTI_EtHNvCB0bgfu9bFjzx9cb6aA_));
	}
	goto LA23_;
	LA25_: ;
	{
		genAssignment_BtucsTdHw7orsXIL75hNVg(p, (&(*d)), (&tmp), 0);
	}
	LA23_: ;
	gcUsage_Pb60oErhArqGlPPn4s2Zow(e);
}

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_RopeObj_HF4qJnb6xiOddgPmsxodtQ* appends;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* lens;
	NI L;
	tyArray_1UwZ4PfBDZcImViZT8dk0w T21_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T22_;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&dest), 0, sizeof(dest));
	appends = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	lens = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	L = ((NI) 0);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 1)], (&dest));
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(e);
		colontmp_ = (NI)(T2_ - ((NI) 3));
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[(NI)(i + ((NI) 2))], (&a));
				{
					tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T7_;
					tyArray_YB3ke0PEM9bcAj9bAsA619bJA T10_;
					tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T11_;
					T7_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
					T7_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*(*e).kindU.S6.sons->data[(NI)(i + ((NI) 2))]).typ, IL64(36028797028444432));
					if (!((*T7_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2))) goto LA8_;
					L += ((NI) 1);
					memset((void*)T10_, 0, sizeof(T10_));
					T10_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&dest));
					T10_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
					T11_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
					T11_ = ropecg_ail3PxtNU17Ini4A1vCFoA((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_417), T10_, 2);
					add_cDalAhgBlDWoYHadkaqqxw(&appends, T11_);
				}
				goto LA5_;
				LA8_: ;
				{
					tyArray_YB3ke0PEM9bcAj9bAsA619bJA T19_;
					tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T20_;
					{
						if (!((*(*e).kindU.S6.sons->data[(NI)(i + ((NI) 2))]).kind >= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*(*e).kindU.S6.sons->data[(NI)(i + ((NI) 2))]).kind <= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 22))) goto LA15_;
						L += ((*(*e).kindU.S6.sons->data[(NI)(i + ((NI) 2))]).kindU.S3.strVal ? (*(*e).kindU.S6.sons->data[(NI)(i + ((NI) 2))]).kindU.S3.strVal->Sup.len : 0);
					}
					goto LA13_;
					LA15_: ;
					{
						tyArray_YB3ke0PEM9bcAj9bAsA619bJA T18_;
						memset((void*)T18_, 0, sizeof(T18_));
						T18_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
						T18_[1] = lenField_VMw2SYHH12eNnC21DncHWQ_5(p);
						addf_8UUGW4xtgpag0J4uEnVLuQ(&lens, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_418), T18_, 2);
					}
					LA13_: ;
					memset((void*)T19_, 0, sizeof(T19_));
					T19_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&dest));
					T19_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
					T20_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
					T20_ = ropecg_ail3PxtNU17Ini4A1vCFoA((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_419), T19_, 2);
					add_cDalAhgBlDWoYHadkaqqxw(&appends, T20_);
				}
				LA5_: ;
				res += ((NI) 1);
			} LA4: ;
		}
	}
	memset((void*)T21_, 0, sizeof(T21_));
	T21_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&dest));
	T21_[1] = lens;
	T21_[2] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (L)));
	linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_422), T21_, 3);
	T22_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
	T22_ = s_OUiru83H7n4zC9cnXN2KbrQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	add_cDalAhgBlDWoYHadkaqqxw(T22_, appends);
	gcUsage_Pb60oErhArqGlPPn4s2Zow(e);
}

N_NIMCALL(void, getIntTemp_SrOtkNNSJNR1CbG2n3nFcg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* result) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T1_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T2_;
	tyArray_ZqT9cbUNKsl55MABiLlPDxA T3_;
	(*p).labels += ((NI) 1);
	T1_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T1_ = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) ((*p).labels)));
	T2_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T2_ = amp__OL8oYU3myMrLfqhcdP9b3Ig(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_163), T1_);
	unsureAsgnRef((void**) (&(*result).r), amp__sUFtkQXj2TQTADyk9cLFdDg(T2_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_8)));
	memset((void*)T3_, 0, sizeof(T3_));
	T3_[0] = (*result).r;
	linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_210), T3_, 1);
	(*result).k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 1);
	(*result).s = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 2);
	unsureAsgnRef((void**) (&(*result).t), getSysType_dewjtBqyEbcVGQRaQFtDAw(((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31)));
	(*result).flags = 0;
}

N_NIMCALL(void, genSeqElemAppend_BKdMcfvryaJLplX0oFPcAQ_7)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	NimStringDesc* seqAppendPattern;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA dest;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmpL;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* bt;
	tyArray_1UwZ4PfBDZcImViZT8dk0w T8_;
	tyArray_1UwZ4PfBDZcImViZT8dk0w T9_;
	tyArray_YB3ke0PEM9bcAj9bAsA619bJA T10_;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T3_) goto LA4_;
		T3_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA4_: ;
		if (!!(T3_)) goto LA5_;
		seqAppendPattern = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_423));
	}
	goto LA1_;
	LA5_: ;
	{
		seqAppendPattern = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_424));
	}
	LA1_: ;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&b), 0, sizeof(b));
	memset((void*)(&dest), 0, sizeof(dest));
	memset((void*)(&tmpL), 0, sizeof(tmpL));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 1)], (&a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 2)], (&b));
	bt = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*(*e).kindU.S6.sons->data[((NI) 2)]).typ, 8388608);
	memset((void*)T8_, 0, sizeof(T8_));
	T8_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
	T8_[1] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, (*(*e).kindU.S6.sons->data[((NI) 1)]).typ);
	T8_[2] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, bt);
	lineCg_Z6xIOvD09aMfYvHnc82A86A_2(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), seqAppendPattern, T8_, 3);
	initLoc_kfK3bi0HoV6YeIhyJNMmZw((&dest), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), bt, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 3));
	getIntTemp_SrOtkNNSJNR1CbG2n3nFcg(p, (&tmpL));
	memset((void*)T9_, 0, sizeof(T9_));
	T9_[0] = tmpL.r;
	T9_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
	T9_[2] = lenField_VMw2SYHH12eNnC21DncHWQ_5(p);
	lineCg_Z6xIOvD09aMfYvHnc82A86A_2(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_425), T9_, 3);
	memset((void*)T10_, 0, sizeof(T10_));
	T10_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
	T10_[1] = tmpL.r;
	dest.r = ropecg_ail3PxtNU17Ini4A1vCFoA(NIM_NIL, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_202), T10_, 2);
	genAssignment_BtucsTdHw7orsXIL75hNVg(p, (&dest), (&b), 3);
	gcUsage_Pb60oErhArqGlPPn4s2Zow(e);
}

N_NIMCALL(void, binaryExpr_U2agx9aO3WToOTIqL9baXQog_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* frmt) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyArray_YB3ke0PEM9bcAj9bAsA619bJA T1_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T2_;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&b), 0, sizeof(b));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 1)], (&a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 2)], (&b));
	memset((void*)T1_, 0, sizeof(T1_));
	T1_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
	T1_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&b));
	T2_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T2_ = ropecg_ail3PxtNU17Ini4A1vCFoA((*p).module, frmt, T1_, 2);
	putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*e).typ, T2_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
}

N_NIMCALL(void, genStrEquals_BKdMcfvryaJLplX0oFPcAQ_8)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA x;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b;
	memset((void*)(&x), 0, sizeof(x));
	a = (*e).kindU.S6.sons->data[((NI) 1)];
	b = (*e).kindU.S6.sons->data[((NI) 2)];
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*a).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 23));
		if (T3_) goto LA4_;
		T3_ = ((*b).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 23));
		LA4_: ;
		if (!T3_) goto LA5_;
		binaryExpr_U2agx9aO3WToOTIqL9baXQog_3(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_368));
	}
	goto LA1_;
	LA5_: ;
	{
		NIM_BOOL T8_;
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T12_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T13_;
		T8_ = (NIM_BOOL)0;
		T8_ = ((*a).kind >= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*a).kind <= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 22));
		if (!(T8_)) goto LA9_;
		T8_ = (((*a).kindU.S3.strVal) && ((*a).kindU.S3.strVal)->Sup.len == 0);
		LA9_: ;
		if (!T8_) goto LA10_;
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 2)], (&x));
		memset((void*)T12_, 0, sizeof(T12_));
		T12_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&x));
		T12_[1] = lenField_VMw2SYHH12eNnC21DncHWQ_5(p);
		T13_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T13_ = ropecg_ail3PxtNU17Ini4A1vCFoA(NIM_NIL, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_426), T12_, 2);
		putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*e).typ, T13_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	goto LA1_;
	LA10_: ;
	{
		NIM_BOOL T15_;
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T19_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T20_;
		T15_ = (NIM_BOOL)0;
		T15_ = ((*b).kind >= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*b).kind <= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 22));
		if (!(T15_)) goto LA16_;
		T15_ = (((*b).kindU.S3.strVal) && ((*b).kindU.S3.strVal)->Sup.len == 0);
		LA16_: ;
		if (!T15_) goto LA17_;
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 1)], (&x));
		memset((void*)T19_, 0, sizeof(T19_));
		T19_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&x));
		T19_[1] = lenField_VMw2SYHH12eNnC21DncHWQ_5(p);
		T20_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T20_ = ropecg_ail3PxtNU17Ini4A1vCFoA(NIM_NIL, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_426), T19_, 2);
		putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*e).typ, T20_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	goto LA1_;
	LA17_: ;
	{
		binaryExpr_U2agx9aO3WToOTIqL9baXQog_3(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_427));
	}
	LA1_: ;
}

N_NIMCALL(void, genIsNil_BKdMcfvryaJLplX0oFPcAQ_9)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t;
	t = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*(*e).kindU.S6.sons->data[((NI) 1)]).typ, IL64(36028797020055824));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25));
		if (!(T3_)) goto LA4_;
		T3_ = ((*t).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8));
		LA4_: ;
		if (!T3_) goto LA5_;
		unaryExpr_U2agx9aO3WToOTIqL9baXQog(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_430));
	}
	goto LA1_;
	LA5_: ;
	{
		unaryExpr_U2agx9aO3WToOTIqL9baXQog(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_431));
	}
	LA1_: ;
}

N_NIMCALL(void, genDollar_pXcuuf9c1RIGGsEW9a8cUntw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* frmt) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyArray_ZqT9cbUNKsl55MABiLlPDxA T1_;
	memset((void*)(&a), 0, sizeof(a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n).kindU.S6.sons->data[((NI) 1)], (&a));
	memset((void*)T1_, 0, sizeof(T1_));
	T1_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
	a.r = ropecg_ail3PxtNU17Ini4A1vCFoA((*p).module, frmt, T1_, 1);
	{
		if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA4_;
		getTemp_AAMs9asc5S78MBo8z9bTltgw(p, (*n).typ, d, NIM_FALSE);
	}
	LA4_: ;
	genAssignment_BtucsTdHw7orsXIL75hNVg(p, (&(*d)), (&a), 0);
	gcUsage_Pb60oErhArqGlPPn4s2Zow(n);
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genOfHelper_Wp9btA6OtAST1pE7BDyhAuw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* dest, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* a) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* ti;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	ti = genTypeInfo_x7sD9aHIDrXyWVDTVp9bclvA((*p).module, dest);
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T9_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((*dest).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 2))&63U)))!=0);
		if (T3_) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = (((*(*p).module).flags &(1U<<((NU)(((tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q) 5))&7U)))!=0);
		if (!(T5_)) goto LA6_;
		T5_ = !((((*dest).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 5))&63U)))!=0));
		LA6_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA7_;
		memset((void*)T9_, 0, sizeof(T9_));
		T9_[0] = a;
		T9_[1] = ti;
		result = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_440), T9_, 2);
	}
	goto LA1_;
	LA7_: ;
	{
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T11_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* cache;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T12_;
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T13_;
		tyArray_1UwZ4PfBDZcImViZT8dk0w T14_;
		T11_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T11_ = cgsym_LDQwSdTgGBvWUKfBZpHXDw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_136));
		T11_;
		(*(*p).module).labels += ((NI) 1);
		T12_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T12_ = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) ((*(*p).module).labels)));
		cache = amp__OL8oYU3myMrLfqhcdP9b3Ig(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_441), T12_);
		memset((void*)T13_, 0, sizeof(T13_));
		T13_[0] = cache;
		addf_8UUGW4xtgpag0J4uEnVLuQ(&(*(*p).module).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_442), T13_, 1);
		memset((void*)T14_, 0, sizeof(T14_));
		T14_[0] = a;
		T14_[1] = ti;
		T14_[2] = cache;
		result = ropecg_ail3PxtNU17Ini4A1vCFoA((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_443), T14_, 3);
	}
	LA1_: ;
	return result;
}

N_NIMCALL(void, genOf_UwTcYLikCGe3VLtRo24phQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* dest;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* r;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* nilCheck;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T41_;
	memset((void*)(&a), 0, sizeof(a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, x, (&a));
	dest = skipTypes_pLCdCGDuirMe9cspwviV9aVA(typ, IL64(36028797033687312));
	r = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
	nilCheck = NIM_NIL;
	t = skipTypes_pLCdCGDuirMe9cspwviV9aVA(a.t, IL64(36028797019007248));
	{
		while (1) {
			tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T16_;
			if (!((14680064 &((NU64)1<<((NU)((*t).kind)&63U)))!=0)) goto LA2;
			{
				if (!!(((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23)))) goto LA5_;
				nilCheck = r;
			}
			LA5_: ;
			{
				NIM_BOOL T9_;
				NIM_BOOL T11_;
				tyArray_ZqT9cbUNKsl55MABiLlPDxA T15_;
				T9_ = (NIM_BOOL)0;
				T9_ = !(((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23)));
				if (T9_) goto LA10_;
				T11_ = (NIM_BOOL)0;
				T11_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
				if (T11_) goto LA12_;
				T11_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
				LA12_: ;
				T9_ = !(T11_);
				LA10_: ;
				if (!T9_) goto LA13_;
				memset((void*)T15_, 0, sizeof(T15_));
				T15_[0] = r;
				r = ropecg_ail3PxtNU17Ini4A1vCFoA(NIM_NIL, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_132), T15_, 1);
			}
			LA13_: ;
			T16_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
			T16_ = lastSon_E41DMKHtT9c6sAMyyvhmSIw(t);
			t = skipTypes_pLCdCGDuirMe9cspwviV9aVA(T16_, IL64(36028797019007248));
		} LA2: ;
	}
	{
		NIM_BOOL T19_;
		T19_ = (NIM_BOOL)0;
		T19_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T19_) goto LA20_;
		T19_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA20_: ;
		if (!!(T19_)) goto LA21_;
		{
			while (1) {
				NIM_BOOL T25_;
				tyArray_j0xH32fTir0IvGY7WxQsQA T27_;
				tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T28_;
				T25_ = (NIM_BOOL)0;
				T25_ = ((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17));
				if (!(T25_)) goto LA26_;
				T25_ = !(((*t).sons->data[((NI) 0)] == NIM_NIL));
				LA26_: ;
				if (!T25_) goto LA24;
				memset((void*)T27_, 0, sizeof(T27_));
				T28_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
				T28_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_167), T27_, 0);
				add_cDalAhgBlDWoYHadkaqqxw(&r, T28_);
				t = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*t).sons->data[((NI) 0)], IL64(36028797033646352));
			} LA24: ;
		}
	}
	LA21_: ;
	{
		NIM_BOOL T31_;
		T31_ = (NIM_BOOL)0;
		T31_ = isObjLackingTypeField_Ejb3pIY519bW1IHfWPGBwwgcgen(t);
		if (!T31_) goto LA32_;
		globalError_VpilfPWbplGz6ny7O9cfr2g_3((*x).info, ((tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw) 4), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_438));
	}
	LA32_: ;
	{
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T38_;
		if (!!((nilCheck == NIM_NIL))) goto LA36_;
		memset((void*)T38_, 0, sizeof(T38_));
		T38_[0] = nilCheck;
		T38_[1] = genOfHelper_Wp9btA6OtAST1pE7BDyhAuw(p, dest, r);
		r = ropecg_ail3PxtNU17Ini4A1vCFoA((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_439), T38_, 2);
	}
	goto LA34_;
	LA36_: ;
	{
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T40_;
		memset((void*)T40_, 0, sizeof(T40_));
		T40_[0] = genOfHelper_Wp9btA6OtAST1pE7BDyhAuw(p, dest, r);
		r = ropecg_ail3PxtNU17Ini4A1vCFoA((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_444), T40_, 1);
	}
	LA34_: ;
	T41_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
	T41_ = getSysType_dewjtBqyEbcVGQRaQFtDAw(((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 1));
	putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, T41_, r, a.s);
}

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

N_NIMCALL(void, rawGenNew_cgJ9aX1ynF9c6YJgDm6IB1wg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* sizeExpr) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* sizeExpr_2;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* refType;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* bt;
	tyArray_1UwZ4PfBDZcImViZT8dk0w args;
	sizeExpr_2 = sizeExpr;
	typ = (*a).t;
	memset((void*)(&b), 0, sizeof(b));
	initLoc_kfK3bi0HoV6YeIhyJNMmZw((&b), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), (*a).t, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 3));
	refType = skipTypes_pLCdCGDuirMe9cspwviV9aVA(typ, IL64(36028797019007248));
	bt = lastSon_E41DMKHtT9c6sAMyyvhmSIw(refType);
	{
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T5_;
		if (!(sizeExpr_2 == 0)) goto LA3_;
		memset((void*)T5_, 0, sizeof(T5_));
		T5_[0] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, bt);
		sizeExpr_2 = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_445), T5_, 1);
	}
	LA3_: ;
	memset((void*)args, 0, sizeof(args));
	args[0] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, typ);
	args[1] = genTypeInfo_x7sD9aHIDrXyWVDTVp9bclvA((*p).module, typ);
	args[2] = sizeExpr_2;
	{
		NIM_BOOL T8_;
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T20_;
		T8_ = (NIM_BOOL)0;
		T8_ = ((*a).s == ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 3));
		if (!(T8_)) goto LA9_;
		T8_ = usesNativeGC_9bOOl1CRXwH84L9baCwIFbjgcgen();
		LA9_: ;
		if (!T8_) goto LA10_;
		{
			NIM_BOOL T14_;
			tyArray_ZqT9cbUNKsl55MABiLlPDxA T17_;
			T14_ = (NIM_BOOL)0;
			T14_ = canFormAcycle_3xW85al2Ic6K09avBGxLjZg_2((*a).t);
			if (!T14_) goto LA15_;
			memset((void*)T17_, 0, sizeof(T17_));
			T17_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(a);
			linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_446), T17_, 1);
		}
		goto LA12_;
		LA15_: ;
		{
			tyArray_ZqT9cbUNKsl55MABiLlPDxA T19_;
			memset((void*)T19_, 0, sizeof(T19_));
			T19_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(a);
			linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_447), T19_, 1);
		}
		LA12_: ;
		b.r = ropecg_ail3PxtNU17Ini4A1vCFoA((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_448), args, 3);
		memset((void*)T20_, 0, sizeof(T20_));
		T20_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(a);
		T20_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&b));
		linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_131), T20_, 2);
	}
	goto LA6_;
	LA10_: ;
	{
		b.r = ropecg_ail3PxtNU17Ini4A1vCFoA((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_449), args, 3);
		genAssignment_BtucsTdHw7orsXIL75hNVg(p, a, (&b), 0);
	}
	LA6_: ;
	genObjectInit_rMJx6ytAq9c39bDIl369aHfYQ(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), bt, a, NIM_FALSE);
}

N_NIMCALL(void, genNew_X9cSqNhqEboci9cdmwBMNcBw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	memset((void*)(&a), 0, sizeof(a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 1)], (&a));
	{
		NI T3_;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA se;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T6_;
		T3_ = (NI)0;
		T3_ = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(e);
		if (!(T3_ == ((NI) 3))) goto LA4_;
		memset((void*)(&se), 0, sizeof(se));
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 2)], (&se));
		T6_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T6_ = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&se));
		rawGenNew_cgJ9aX1ynF9c6YJgDm6IB1wg(p, (&a), T6_);
	}
	goto LA1_;
	LA4_: ;
	{
		rawGenNew_cgJ9aX1ynF9c6YJgDm6IB1wg(p, (&a), NIM_NIL);
	}
	LA1_: ;
	gcUsage_Pb60oErhArqGlPPn4s2Zow(e);
}

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_LTUWCZolpovw9cWE3JBWSUw* refType;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* bt;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* ti;
	tyArray_YB3ke0PEM9bcAj9bAsA619bJA T1_;
	tyArray_1UwZ4PfBDZcImViZT8dk0w T2_;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T3_;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T4_;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T5_;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&b), 0, sizeof(b));
	memset((void*)(&f), 0, sizeof(f));
	refType = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
	bt = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
	ti = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	refType = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*(*e).kindU.S6.sons->data[((NI) 1)]).typ, IL64(36028797028444432));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 1)], (&a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 2)], (&f));
	initLoc_kfK3bi0HoV6YeIhyJNMmZw((&b), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), a.t, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 3));
	ti = genTypeInfo_x7sD9aHIDrXyWVDTVp9bclvA((*p).module, refType);
	memset((void*)T1_, 0, sizeof(T1_));
	T1_[0] = ti;
	T1_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&f));
	addf_8UUGW4xtgpag0J4uEnVLuQ(&(*(*p).module).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_450), T1_, 2);
	memset((void*)T2_, 0, sizeof(T2_));
	T2_[0] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, refType);
	T2_[1] = ti;
	T3_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
	T3_ = lastSon_E41DMKHtT9c6sAMyyvhmSIw(refType);
	T4_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
	T4_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA(T3_, IL64(36028797020055824));
	T2_[2] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, T4_);
	b.r = ropecg_ail3PxtNU17Ini4A1vCFoA((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_451), T2_, 3);
	genAssignment_BtucsTdHw7orsXIL75hNVg(p, (&a), (&b), 0);
	T5_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
	T5_ = lastSon_E41DMKHtT9c6sAMyyvhmSIw(refType);
	bt = skipTypes_pLCdCGDuirMe9cspwviV9aVA(T5_, IL64(36028797020055824));
	genObjectInit_rMJx6ytAq9c39bDIl369aHfYQ(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), bt, (&a), NIM_FALSE);
	gcUsage_Pb60oErhArqGlPPn4s2Zow(e);
}

N_NIMCALL(void, genNewSeqAux_9cWj0Z4zRqFZJHYjvDQIU5A)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* dest, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* length) {
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* seqtype;
	tyArray_1UwZ4PfBDZcImViZT8dk0w args;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA call;
	seqtype = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*dest).t, IL64(36028797028444432));
	memset((void*)args, 0, sizeof(args));
	args[0] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, seqtype);
	args[1] = genTypeInfo_x7sD9aHIDrXyWVDTVp9bclvA((*p).module, seqtype);
	args[2] = length;
	memset((void*)(&call), 0, sizeof(call));
	initLoc_kfK3bi0HoV6YeIhyJNMmZw((&call), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), (*dest).t, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 3));
	{
		NIM_BOOL T3_;
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T15_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*dest).s == ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 3));
		if (!(T3_)) goto LA4_;
		T3_ = usesNativeGC_9bOOl1CRXwH84L9baCwIFbjgcgen();
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			NIM_BOOL T9_;
			tyArray_ZqT9cbUNKsl55MABiLlPDxA T12_;
			T9_ = (NIM_BOOL)0;
			T9_ = canFormAcycle_3xW85al2Ic6K09avBGxLjZg_2((*dest).t);
			if (!T9_) goto LA10_;
			memset((void*)T12_, 0, sizeof(T12_));
			T12_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(dest);
			linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_446), T12_, 1);
		}
		goto LA7_;
		LA10_: ;
		{
			tyArray_ZqT9cbUNKsl55MABiLlPDxA T14_;
			memset((void*)T14_, 0, sizeof(T14_));
			T14_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(dest);
			linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_447), T14_, 1);
		}
		LA7_: ;
		call.r = ropecg_ail3PxtNU17Ini4A1vCFoA((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_452), args, 3);
		memset((void*)T15_, 0, sizeof(T15_));
		T15_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(dest);
		T15_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&call));
		linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_131), T15_, 2);
	}
	goto LA1_;
	LA5_: ;
	{
		call.r = ropecg_ail3PxtNU17Ini4A1vCFoA((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_453), args, 3);
		genAssignment_BtucsTdHw7orsXIL75hNVg(p, dest, (&call), 0);
	}
	LA1_: ;
}

N_NIMCALL(void, genNewSeq_X9cSqNhqEboci9cdmwBMNcBw_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T1_;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&b), 0, sizeof(b));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 1)], (&a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 2)], (&b));
	T1_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T1_ = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&b));
	genNewSeqAux_9cWj0Z4zRqFZJHYjvDQIU5A(p, (&a), T1_);
	gcUsage_Pb60oErhArqGlPPn4s2Zow(e);
}

N_NIMCALL(void, genNewSeqOfCap_BKdMcfvryaJLplX0oFPcAQ_10)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* seqtype;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyArray_1UwZ4PfBDZcImViZT8dk0w T1_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T2_;
	seqtype = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*e).typ, IL64(36028797028444432));
	memset((void*)(&a), 0, sizeof(a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 1)], (&a));
	memset((void*)T1_, 0, sizeof(T1_));
	T1_[0] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, seqtype);
	T1_[1] = genTypeInfo_x7sD9aHIDrXyWVDTVp9bclvA((*p).module, seqtype);
	T1_[2] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
	T2_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T2_ = ropecg_ail3PxtNU17Ini4A1vCFoA((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_454), T1_, 3);
	putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*e).typ, T2_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	gcUsage_Pb60oErhArqGlPPn4s2Zow(e);
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getClosureType_C3G4lz8ql3PHX03kYPmo5w)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t, tyEnum_TClosureTypeKind_cLHRMz1vnpSK0uePy2qbWw kind) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg check;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* rettype;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* desc;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	memset((void*)(&check), 0, sizeof(check));
	chckNil((void*)(&check));
	memset((void*)(&check), 0, sizeof(check));
	initIntSet_a9a80eJplB17xrdZJ41Baww((&check));
	result = getTempName_54CrPIOFKsrtQd59cl9bHH3A(m);
	rettype = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	desc = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	genProcParams_j2i3UsmgQjR9ckf4t2X8V9cA(m, t, &rettype, &desc, (&check), !((kind == ((tyEnum_TClosureTypeKind_cLHRMz1vnpSK0uePy2qbWw) 0))), NIM_FALSE);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isImportedType_B4nHhP3INN4MtYAgHK3Lrw_2(t);
		if (!!(T3_)) goto LA4_;
		{
			NIM_BOOL T8_;
			tyArray_EcJXtY9cAr9bpvybuP0XpjyQ T12_;
			T8_ = (NIM_BOOL)0;
			T8_ = !(((*t).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8)));
			if (T8_) goto LA9_;
			T8_ = !((kind == ((tyEnum_TClosureTypeKind_cLHRMz1vnpSK0uePy2qbWw) 2)));
			LA9_: ;
			if (!T8_) goto LA10_;
			memset((void*)T12_, 0, sizeof(T12_));
			T12_[0] = rope_53CHEX05HP0HacydnwoUYg(CallingConvToStr_A7GdKVVGtI3pvj9cV9adydpw[((*t).callConv)- 0]);
			T12_[1] = rettype;
			T12_[2] = result;
			T12_[3] = desc;
			addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 3))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_66), T12_, 4);
		}
		goto LA6_;
		LA10_: ;
		{
			tyArray_1UwZ4PfBDZcImViZT8dk0w T14_;
			memset((void*)T14_, 0, sizeof(T14_));
			T14_[0] = result;
			T14_[1] = rettype;
			T14_[2] = desc;
			addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 3))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_77), T14_, 3);
		}
		LA6_: ;
	}
	LA4_: ;
	return result;
}

N_NIMCALL(void, genSomeCast_BKdMcfvryaJLplX0oFPcAQ_11)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* etyp;
	memset((void*)(&a), 0, sizeof(a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 1)], (&a));
	etyp = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*e).typ, IL64(36028797020055824));
	{
		NIM_BOOL T3_;
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T7_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((IL64(281475111387136) &((NU64)1<<((NU)((*etyp).kind)&63U)))!=0);
		if (!(T3_)) goto LA4_;
		T3_ = !(((a.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 0))&15U)))!=0));
		LA4_: ;
		if (!T3_) goto LA5_;
		memset((void*)T7_, 0, sizeof(T7_));
		T7_[0] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, (*e).typ);
		T7_[1] = addrLoc_YU9cO6gMkMct9bbzvzDM0Dzw_2((&a));
		T8_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T8_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_456), T7_, 2);
		putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*e).typ, T8_, a.s);
	}
	goto LA1_;
	LA5_: ;
	{
		NIM_BOOL T10_;
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T14_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T15_;
		T10_ = (NIM_BOOL)0;
		T10_ = ((*etyp).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25));
		if (!(T10_)) goto LA11_;
		T10_ = ((*etyp).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8));
		LA11_: ;
		if (!T10_) goto LA12_;
		memset((void*)T14_, 0, sizeof(T14_));
		T14_[0] = getClosureType_C3G4lz8ql3PHX03kYPmo5w((*p).module, etyp, ((tyEnum_TClosureTypeKind_cLHRMz1vnpSK0uePy2qbWw) 1));
		T14_[1] = rdCharLoc_YU9cO6gMkMct9bbzvzDM0Dzw_3((&a));
		T15_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T15_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_457), T14_, 2);
		putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*e).typ, T15_, a.s);
	}
	goto LA1_;
	LA12_: ;
	{
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T17_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T18_;
		memset((void*)T17_, 0, sizeof(T17_));
		T17_[0] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, (*e).typ);
		T17_[1] = rdCharLoc_YU9cO6gMkMct9bbzvzDM0Dzw_3((&a));
		T18_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T18_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_457), T17_, 2);
		putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*e).typ, T18_, a.s);
	}
	LA1_: ;
}

N_NIMCALL(void, unaryExprChar_U2agx9aO3WToOTIqL9baXQog_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* frmt) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyArray_ZqT9cbUNKsl55MABiLlPDxA T1_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T2_;
	memset((void*)(&a), 0, sizeof(a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 1)], (&a));
	memset((void*)T1_, 0, sizeof(T1_));
	T1_[0] = rdCharLoc_YU9cO6gMkMct9bbzvzDM0Dzw_3((&a));
	T2_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T2_ = ropecg_ail3PxtNU17Ini4A1vCFoA((*p).module, frmt, T1_, 1);
	putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*e).typ, T2_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
}

N_NIMCALL(void, genOrd_BKdMcfvryaJLplX0oFPcAQ_12)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	unaryExprChar_U2agx9aO3WToOTIqL9baXQog_4(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_302));
}

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_LTUWCZolpovw9cWE3JBWSUw* typ;
	a = (*e).kindU.S6.sons->data[((NI) 1)];
	{
		if (!((*a).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64))) goto LA3_;
		a = (*a).kindU.S6.sons->data[((NI) 0)];
	}
	LA3_: ;
	typ = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*a).typ, IL64(49539595909507344));
	switch ((*typ).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48):
	{
		{
			if (!(op == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 8))) goto LA8_;
			unaryExpr_U2agx9aO3WToOTIqL9baXQog(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_458));
		}
		goto LA6_;
		LA8_: ;
		{
			unaryExpr_U2agx9aO3WToOTIqL9baXQog(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_459));
		}
		LA6_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 29):
	{
		useStringh_OShE9cXECylewqZ7ZpW2l0w((*p).module);
		{
			if (!(op == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 8))) goto LA14_;
			unaryExpr_U2agx9aO3WToOTIqL9baXQog(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_460));
		}
		goto LA12_;
		LA14_: ;
		{
			unaryExpr_U2agx9aO3WToOTIqL9baXQog(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_461));
		}
		LA12_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
	{
		{
			NIM_BOOL T20_;
			T20_ = (NIM_BOOL)0;
			T20_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
			if (T20_) goto LA21_;
			T20_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA21_: ;
			if (!!(T20_)) goto LA22_;
			{
				if (!(op == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 8))) goto LA26_;
				unaryExpr_U2agx9aO3WToOTIqL9baXQog(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_462));
			}
			goto LA24_;
			LA26_: ;
			{
				unaryExpr_U2agx9aO3WToOTIqL9baXQog(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_463));
			}
			LA24_: ;
		}
		goto LA18_;
		LA22_: ;
		{
			{
				if (!(op == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 8))) goto LA32_;
				unaryExpr_U2agx9aO3WToOTIqL9baXQog(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_464));
			}
			goto LA30_;
			LA32_: ;
			{
				unaryExpr_U2agx9aO3WToOTIqL9baXQog(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_465));
			}
			LA30_: ;
		}
		LA18_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_2;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp;
		NimStringDesc* frmt;
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T53_;
		memset((void*)(&a_2), 0, sizeof(a_2));
		memset((void*)(&tmp), 0, sizeof(tmp));
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 1)], (&a_2));
		getIntTemp_SrOtkNNSJNR1CbG2n3nFcg(p, (&tmp));
		frmt = (NimStringDesc*)0;
		{
			NIM_BOOL T38_;
			T38_ = (NIM_BOOL)0;
			T38_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
			if (T38_) goto LA39_;
			T38_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA39_: ;
			if (!!(T38_)) goto LA40_;
			{
				if (!(op == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 8))) goto LA44_;
				frmt = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_466));
			}
			goto LA42_;
			LA44_: ;
			{
				frmt = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_467));
			}
			LA42_: ;
		}
		goto LA36_;
		LA40_: ;
		{
			{
				if (!(op == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 8))) goto LA50_;
				frmt = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_468));
			}
			goto LA48_;
			LA50_: ;
			{
				frmt = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_469));
			}
			LA48_: ;
		}
		LA36_: ;
		memset((void*)T53_, 0, sizeof(T53_));
		T53_[0] = tmp.r;
		T53_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a_2));
		lineCg_Z6xIOvD09aMfYvHnc82A86A_2(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), frmt, T53_, 2);
		putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*e).typ, tmp.r, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
	{
		{
			NI64 T59_;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T60_;
			if (!(op == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 8))) goto LA57_;
			T59_ = (NI64)0;
			T59_ = lastOrd_HUiBYxvKiECXCv8BzQNheg_2(typ);
			T60_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T60_ = rope_pEztpD6TFe5jk3aCrOSACA(T59_);
			putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*e).typ, T60_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		goto LA55_;
		LA57_: ;
		{
			NI64 T62_;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T63_;
			T62_ = (NI64)0;
			T62_ = lengthOrd_HUiBYxvKiECXCv8BzQNheg_3(typ);
			T63_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T63_ = rope_pEztpD6TFe5jk3aCrOSACA(T62_);
			putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*e).typ, T63_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		LA55_: ;
	}
	break;
	default:
	{
		internalError_MXmtqrCmYwtOPkDCFgUWKQ((*e).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_470));
	}
	break;
	}
}

N_NIMCALL(void, unaryStmt_U2agx9aO3WToOTIqL9baXQog_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* frmt) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyArray_ZqT9cbUNKsl55MABiLlPDxA T5_;
	memset((void*)(&a), 0, sizeof(a));
	{
		if (!!(((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA3_;
		internalError_MXmtqrCmYwtOPkDCFgUWKQ((*e).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_475));
	}
	LA3_: ;
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 1)], (&a));
	memset((void*)T5_, 0, sizeof(T5_));
	T5_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
	lineCg_Z6xIOvD09aMfYvHnc82A86A_2(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), frmt, T5_, 1);
}

N_NIMCALL(void, genSetLengthStr_BKdMcfvryaJLplX0oFPcAQ_13)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	binaryStmt_U2agx9aO3WToOTIqL9baXQog_2(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_478));
	gcUsage_Pb60oErhArqGlPPn4s2Zow(e);
}

N_NIMCALL(void, genSetLengthSeq_BKdMcfvryaJLplX0oFPcAQ_14)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t;
	NimStringDesc* setLenPattern;
	tyArray_EcJXtY9cAr9bpvybuP0XpjyQ T12_;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T13_;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&b), 0, sizeof(b));
	x = (*e).kindU.S6.sons->data[((NI) 1)];
	{
		if (!((*x).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 63) || (*x).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64))) goto LA3_;
		x = (*x).kindU.S6.sons->data[((NI) 0)];
	}
	LA3_: ;
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, x, (&a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 2)], (&b));
	t = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*(*e).kindU.S6.sons->data[((NI) 1)]).typ, 8388608);
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T7_) goto LA8_;
		T7_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA8_: ;
		if (!!(T7_)) goto LA9_;
		setLenPattern = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_479));
	}
	goto LA5_;
	LA9_: ;
	{
		setLenPattern = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_480));
	}
	LA5_: ;
	memset((void*)T12_, 0, sizeof(T12_));
	T12_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
	T12_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&b));
	T12_[2] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, t);
	T13_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
	T13_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA(t, IL64(36028797019007248));
	T12_[3] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, (*T13_).sons->data[((NI) 0)]);
	lineCg_Z6xIOvD09aMfYvHnc82A86A_2(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), setLenPattern, T12_, 4);
	gcUsage_Pb60oErhArqGlPPn4s2Zow(e);
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, rdSetElemLoc_79a4X3Gjt6AnePag4WNxykQ)(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* setType) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	result = rdCharLoc_YU9cO6gMkMct9bbzvzDM0Dzw_3(a);
	{
		NI64 T3_;
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T6_;
		NI64 T7_;
		T3_ = (NI64)0;
		T3_ = firstOrd_HUiBYxvKiECXCv8BzQNheg(setType);
		if (!!((T3_ == IL64(0)))) goto LA4_;
		memset((void*)T6_, 0, sizeof(T6_));
		T6_[0] = result;
		T7_ = (NI64)0;
		T7_ = firstOrd_HUiBYxvKiECXCv8BzQNheg(setType);
		T6_[1] = rope_pEztpD6TFe5jk3aCrOSACA(T7_);
		result = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_481), T6_, 2);
	}
	LA4_: ;
	return result;
}

N_NIMCALL(void, binaryStmtInExcl_U2agx9aO3WToOTIqL9baXQog_6)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* frmt) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyArray_YB3ke0PEM9bcAj9bAsA619bJA T1_;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&b), 0, sizeof(b));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 1)], (&a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 2)], (&b));
	memset((void*)T1_, 0, sizeof(T1_));
	T1_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
	T1_[1] = rdSetElemLoc_79a4X3Gjt6AnePag4WNxykQ((&b), a.t);
	lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), frmt, T1_, 2);
}

N_NIMCALL(void, binaryExprChar_U2agx9aO3WToOTIqL9baXQog_7)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* frmt) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyArray_YB3ke0PEM9bcAj9bAsA619bJA T1_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T2_;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&b), 0, sizeof(b));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 1)], (&a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 2)], (&b));
	memset((void*)T1_, 0, sizeof(T1_));
	T1_[0] = rdCharLoc_YU9cO6gMkMct9bbzvzDM0Dzw_3((&a));
	T1_[1] = rdCharLoc_YU9cO6gMkMct9bbzvzDM0Dzw_3((&b));
	T2_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T2_ = ropecg_ail3PxtNU17Ini4A1vCFoA((*p).module, frmt, T1_, 2);
	putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*e).typ, T2_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
}

N_NIMCALL(NIM_BOOL, fewCmps_HZWM1lZJVHBBy04jworIHQ)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* s) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		if (!!(((*s).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 39)))) goto LA3_;
		internalError_MXmtqrCmYwtOPkDCFgUWKQ((*s).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_496));
	}
	LA3_: ;
	{
		NIM_BOOL T7_;
		NI64 T8_;
		T7_ = (NIM_BOOL)0;
		T8_ = (NI64)0;
		T8_ = getSize_spMpEAO8ubfQavMigOxQdA((*s).typ);
		T7_ = (T8_ <= ((NI64) (intSize_a1bNgZBNVciKYuzCi2sD5A)));
		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_LTUWCZolpovw9cWE3JBWSUw* T13_;
		T13_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
		T13_ = elemType_46gPaVDDGhiU69b2oKDJZuA_2((*s).typ);
		if (!((IL64(62277025792) &((NU64)1<<((NU)((*T13_).kind)&63U)))!=0)) goto LA14_;
		result = NIM_TRUE;
	}
	goto LA5_;
	LA14_: ;
	{
		NI T17_;
		T17_ = (NI)0;
		T17_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(s);
		result = (T17_ <= ((NI) 8));
	}
	LA5_: ;
	return result;
}

N_NIMCALL(void, binaryExprIn_Q04NbRdson6NZhd9b3hsyXQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* b, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* frmt) {
	tyArray_YB3ke0PEM9bcAj9bAsA619bJA T1_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T2_;
	memset((void*)T1_, 0, sizeof(T1_));
	T1_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&(*a)));
	T1_[1] = rdSetElemLoc_79a4X3Gjt6AnePag4WNxykQ((&(*b)), (*a).t);
	T2_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T2_ = percent__tH0lgOCTcFVFSKThSUgFEg(frmt, T1_, 2);
	putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*e).typ, T2_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
}

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_LTUWCZolpovw9cWE3JBWSUw* T1_;
	NI64 T2_;
	T1_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
	T1_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*(*e).kindU.S6.sons->data[((NI) 1)]).typ, IL64(36028797027395856));
	T2_ = (NI64)0;
	T2_ = getSize_spMpEAO8ubfQavMigOxQdA(T1_);
	switch (((NI) (T2_))) {
	case ((NI) 1):
	{
		binaryExprIn_Q04NbRdson6NZhd9b3hsyXQ(p, e, a, b, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_500));
	}
	break;
	case ((NI) 2):
	{
		binaryExprIn_Q04NbRdson6NZhd9b3hsyXQ(p, e, a, b, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_501));
	}
	break;
	case ((NI) 4):
	{
		binaryExprIn_Q04NbRdson6NZhd9b3hsyXQ(p, e, a, b, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_502));
	}
	break;
	case ((NI) 8):
	{
		binaryExprIn_Q04NbRdson6NZhd9b3hsyXQ(p, e, a, b, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_503));
	}
	break;
	default:
	{
		binaryExprIn_Q04NbRdson6NZhd9b3hsyXQ(p, e, a, b, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_504));
	}
	break;
	}
}

N_NIMCALL(void, genInOp_BKdMcfvryaJLplX0oFPcAQ_15)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA x;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA y;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&b), 0, sizeof(b));
	memset((void*)(&x), 0, sizeof(x));
	memset((void*)(&y), 0, sizeof(y));
	{
		NIM_BOOL T3_;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ea;
		NI length;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*e).kindU.S6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 39));
		if (!(T3_)) goto LA4_;
		T3_ = fewCmps_HZWM1lZJVHBBy04jworIHQ((*e).kindU.S6.sons->data[((NI) 1)]);
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			if (!((*(*e).kindU.S6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 70) || (*(*e).kindU.S6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 69))) goto LA9_;
			ea = (*(*e).kindU.S6.sons->data[((NI) 2)]).kindU.S6.sons->data[((NI) 0)];
		}
		goto LA7_;
		LA9_: ;
		{
			ea = (*e).kindU.S6.sons->data[((NI) 2)];
		}
		LA7_: ;
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, ea, (&a));
		initLoc_kfK3bi0HoV6YeIhyJNMmZw((&b), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), (*e).typ, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
		b.r = rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_126));
		length = sonsLen_qPWPHw7WgJeEVYUdcaRIig((*e).kindU.S6.sons->data[((NI) 1)]);
		{
			NI i;
			NI colontmp_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = (NI)(length - ((NI) 1));
			res = ((NI) 0);
			{
				while (1) {
					if (!(res <= colontmp_)) goto LA14;
					i = res;
					{
						tyArray_1UwZ4PfBDZcImViZT8dk0w T19_;
						if (!((*(*(*e).kindU.S6.sons->data[((NI) 1)]).kindU.S6.sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA17_;
						initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*(*(*e).kindU.S6.sons->data[((NI) 1)]).kindU.S6.sons->data[i]).kindU.S6.sons->data[((NI) 0)], (&x));
						initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*(*(*e).kindU.S6.sons->data[((NI) 1)]).kindU.S6.sons->data[i]).kindU.S6.sons->data[((NI) 1)], (&y));
						memset((void*)T19_, 0, sizeof(T19_));
						T19_[0] = rdCharLoc_YU9cO6gMkMct9bbzvzDM0Dzw_3((&a));
						T19_[1] = rdCharLoc_YU9cO6gMkMct9bbzvzDM0Dzw_3((&x));
						T19_[2] = rdCharLoc_YU9cO6gMkMct9bbzvzDM0Dzw_3((&y));
						addf_8UUGW4xtgpag0J4uEnVLuQ(&b.r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_497), T19_, 3);
					}
					goto LA15_;
					LA17_: ;
					{
						tyArray_YB3ke0PEM9bcAj9bAsA619bJA T21_;
						initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*(*e).kindU.S6.sons->data[((NI) 1)]).kindU.S6.sons->data[i], (&x));
						memset((void*)T21_, 0, sizeof(T21_));
						T21_[0] = rdCharLoc_YU9cO6gMkMct9bbzvzDM0Dzw_3((&a));
						T21_[1] = rdCharLoc_YU9cO6gMkMct9bbzvzDM0Dzw_3((&x));
						addf_8UUGW4xtgpag0J4uEnVLuQ(&b.r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_498), T21_, 2);
					}
					LA15_: ;
					{
						if (!(i < (NI)(length - ((NI) 1)))) goto LA24_;
						add_UJnSY21g59awhvSFBxJ9a9aPg(&b.r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_499));
					}
					LA24_: ;
					res += ((NI) 1);
				} LA14: ;
			}
		}
		add_UJnSY21g59awhvSFBxJ9a9aPg(&b.r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_125));
		putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*e).typ, b.r, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	goto LA1_;
	LA5_: ;
	{
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 1)], (&a));
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 2)], (&b));
		genInExprAux_9cclvr8sbqtJj8irRbQQpqQ(p, e, (&a), (&b), d);
	}
	LA1_: ;
}

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_LTUWCZolpovw9cWE3JBWSUw* setType;
	NI size;
	NI64 T1_;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&b), 0, sizeof(b));
	memset((void*)(&i), 0, sizeof(i));
	setType = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*(*e).kindU.S6.sons->data[((NI) 1)]).typ, IL64(36028797027395856));
	T1_ = (NI64)0;
	T1_ = getSize_spMpEAO8ubfQavMigOxQdA(setType);
	size = ((NI) (T1_));
	switch (size) {
	case ((NI) 1):
	case ((NI) 2):
	case ((NI) 4):
	case ((NI) 8):
	{
		switch (op) {
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 39):
		{
			NimStringDesc* ts;
			NimStringDesc* T4_;
			NimStringDesc* T5_;
			NimStringDesc* T6_;
			T4_ = (NimStringDesc*)0;
			T5_ = (NimStringDesc*)0;
			T5_ = nimIntToStr((NI)(size * ((NI) 8)));
			T4_ = rawNewString(T5_->Sup.len + 2);
appendString(T4_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_44));
appendString(T4_, T5_);
			ts = T4_;
			T6_ = (NimStringDesc*)0;
			T6_ = rawNewString(ts->Sup.len + ts->Sup.len + 35);
appendString(T6_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_482));
appendString(T6_, ts);
appendString(T6_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_483));
appendString(T6_, ts);
appendString(T6_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_484));
			binaryStmtInExcl_U2agx9aO3WToOTIqL9baXQog_6(p, e, d, T6_);
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 40):
		{
			NimStringDesc* ts_2;
			NimStringDesc* T8_;
			NimStringDesc* T9_;
			NimStringDesc* T10_;
			T8_ = (NimStringDesc*)0;
			T9_ = (NimStringDesc*)0;
			T9_ = nimIntToStr((NI)(size * ((NI) 8)));
			T8_ = rawNewString(T9_->Sup.len + 2);
appendString(T8_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_44));
appendString(T8_, T9_);
			ts_2 = T8_;
			T10_ = (NimStringDesc*)0;
			T10_ = rawNewString(ts_2->Sup.len + ts_2->Sup.len + 42);
appendString(T10_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_485));
appendString(T10_, ts_2);
appendString(T10_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_486));
appendString(T10_, ts_2);
appendString(T10_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_487));
			binaryStmtInExcl_U2agx9aO3WToOTIqL9baXQog_6(p, e, d, T10_);
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 41):
		{
			{
				if (!(size <= ((NI) 4))) goto LA14_;
				unaryExprChar_U2agx9aO3WToOTIqL9baXQog_4(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_488));
			}
			goto LA12_;
			LA14_: ;
			{
				unaryExprChar_U2agx9aO3WToOTIqL9baXQog_4(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_489));
			}
			LA12_: ;
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 133):
		{
			binaryExprChar_U2agx9aO3WToOTIqL9baXQog_7(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_490));
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 132):
		{
			binaryExprChar_U2agx9aO3WToOTIqL9baXQog_7(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_491));
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 131):
		{
			binaryExpr_U2agx9aO3WToOTIqL9baXQog_3(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_368));
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 134):
		{
			binaryExpr_U2agx9aO3WToOTIqL9baXQog_3(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_492));
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 135):
		{
			binaryExpr_U2agx9aO3WToOTIqL9baXQog_3(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_493));
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 136):
		{
			binaryExpr_U2agx9aO3WToOTIqL9baXQog_3(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_494));
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 137):
		{
			binaryExpr_U2agx9aO3WToOTIqL9baXQog_3(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_495));
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 148):
		{
			genInOp_BKdMcfvryaJLplX0oFPcAQ_15(p, e, d);
		}
		break;
		default:
		{
			internalError_MXmtqrCmYwtOPkDCFgUWKQ((*e).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_505));
		}
		break;
		}
	}
	break;
	default:
	{
		switch (op) {
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 39):
		{
			binaryStmtInExcl_U2agx9aO3WToOTIqL9baXQog_6(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_506));
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 40):
		{
			binaryStmtInExcl_U2agx9aO3WToOTIqL9baXQog_6(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_507));
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 41):
		{
			NimStringDesc* T30_;
			NimStringDesc* T31_;
			T30_ = (NimStringDesc*)0;
			T31_ = (NimStringDesc*)0;
			T31_ = nimIntToStr(size);
			T30_ = rawNewString(T31_->Sup.len + 14);
appendString(T30_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_508));
appendString(T30_, T31_);
appendChar(T30_, 41);
			unaryExprChar_U2agx9aO3WToOTIqL9baXQog_4(p, e, d, T30_);
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 133):
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 132):
		{
			tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T33_;
			tyArray_zr9bwyAl6fC7FLYwf5Lbz5w T39_;
			T33_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
			T33_ = getSysType_dewjtBqyEbcVGQRaQFtDAw(((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31));
			getTemp_AAMs9asc5S78MBo8z9bTltgw(p, T33_, (&i), NIM_FALSE);
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 1)], (&a));
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 2)], (&b));
			{
				tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T38_;
				if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA36_;
				T38_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
				T38_ = getSysType_dewjtBqyEbcVGQRaQFtDAw(((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 1));
				getTemp_AAMs9asc5S78MBo8z9bTltgw(p, T38_, d, NIM_FALSE);
			}
			LA36_: ;
			memset((void*)T39_, 0, sizeof(T39_));
			T39_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&i));
			T39_[1] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (size)));
			T39_[2] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&(*d)));
			T39_[3] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
			T39_[4] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&b));
			lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), lookupOpr_w7WuexLq9cuXtAtqil9csnVQ[(op)- 132], T39_, 5);
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 131):
		{
			NimStringDesc* T41_;
			NimStringDesc* T42_;
			useStringh_OShE9cXECylewqZ7ZpW2l0w((*p).module);
			T41_ = (NimStringDesc*)0;
			T42_ = (NimStringDesc*)0;
			T42_ = nimIntToStr(size);
			T41_ = rawNewString(T42_->Sup.len + 21);
appendString(T41_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_514));
appendString(T41_, T42_);
appendString(T41_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_515));
			binaryExprChar_U2agx9aO3WToOTIqL9baXQog_7(p, e, d, T41_);
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 134):
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 135):
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 136):
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 137):
		{
			tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T44_;
			tyArray_i17eA0S8auwIIitiN9cmr7w T49_;
			T44_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
			T44_ = getSysType_dewjtBqyEbcVGQRaQFtDAw(((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31));
			getTemp_AAMs9asc5S78MBo8z9bTltgw(p, T44_, (&i), NIM_FALSE);
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 1)], (&a));
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 2)], (&b));
			{
				if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA47_;
				getTemp_AAMs9asc5S78MBo8z9bTltgw(p, a.t, d, NIM_FALSE);
			}
			LA47_: ;
			memset((void*)T49_, 0, sizeof(T49_));
			T49_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&i));
			T49_[1] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (size)));
			T49_[2] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&(*d)));
			T49_[3] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
			T49_[4] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&b));
			T49_[5] = rope_53CHEX05HP0HacydnwoUYg(lookupOpr_w7WuexLq9cuXtAtqil9csnVQ[(op)- 132]);
			lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_516), T49_, 6);
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 148):
		{
			genInOp_BKdMcfvryaJLplX0oFPcAQ_15(p, e, d);
		}
		break;
		default:
		{
			internalError_MXmtqrCmYwtOPkDCFgUWKQ((*e).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_517));
		}
		break;
		}
	}
	break;
	}
}

static N_INLINE(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genArgStringToCString_cKaYaP9cyw45sNPok0SqlZgcgen)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyArray_ZqT9cbUNKsl55MABiLlPDxA T1_;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	memset((void*)(&a), 0, sizeof(a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n).kindU.S6.sons->data[((NI) 0)], (&a));
	memset((void*)T1_, 0, sizeof(T1_));
	T1_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
	result = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_518), T1_, 1);
	return result;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, openArrayLoc_9ay3JbWaSQA4xkrI8svQaZQ_6)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* q;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	memset((void*)(&a), 0, sizeof(a));
	q = skipConv_6rsSLwtlU9c53a6w69be5JlQ(n);
	{
		tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg T3_;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA c;
		NimStringDesc* fmt;
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T6_;
		tyArray_1UwZ4PfBDZcImViZT8dk0w T22_;
		T3_ = (tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg)0;
		T3_ = getMagic_gSv3iFkSzJc9bXZaNBHR9bQA(q);
		if (!(T3_ == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 139))) goto LA4_;
		memset((void*)(&b), 0, sizeof(b));
		memset((void*)(&c), 0, sizeof(c));
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*q).kindU.S6.sons->data[((NI) 1)], (&a));
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*q).kindU.S6.sons->data[((NI) 2)], (&b));
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*q).kindU.S6.sons->data[((NI) 3)], (&c));
		T6_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
		T6_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA(a.t, IL64(36028797029493008));
		switch ((*T6_).kind) {
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
		{
			fmt = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_519));
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
		{
			{
				NIM_BOOL T11_;
				tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T12_;
				NIM_BOOL T14_;
				T11_ = (NIM_BOOL)0;
				T12_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
				T12_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*n).typ, IL64(36028797019007248));
				T11_ = ((*T12_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23));
				if (!(T11_)) goto LA13_;
				T14_ = (NIM_BOOL)0;
				T14_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
				if (T14_) goto LA15_;
				T14_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
				LA15_: ;
				T11_ = !(T14_);
				LA13_: ;
				if (!T11_) goto LA16_;
				fmt = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_520));
			}
			goto LA9_;
			LA16_: ;
			{
				fmt = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_521));
			}
			LA9_: ;
		}
		break;
		default:
		{
			NimStringDesc* T20_;
			NimStringDesc* T21_;
			T20_ = (NimStringDesc*)0;
			T21_ = (NimStringDesc*)0;
			T21_ = typeToString_iUZlBdvGqNPVN17wd9aVBNw(a.t, ((tyEnum_TPreferedDesc_tnd4qt9c4xddV8oKV5zyusw) 0));
			T20_ = rawNewString(T21_->Sup.len + 14);
appendString(T20_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_522));
appendString(T20_, T21_);
			internalError_5XY9cUy7hZmUusM38U9cYYdw(T20_);
			fmt = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_10));
		}
		break;
		}
		memset((void*)T22_, 0, sizeof(T22_));
		T22_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
		T22_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&b));
		T22_[2] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&c));
		result = percent__tH0lgOCTcFVFSKThSUgFEg(fmt, T22_, 3);
	}
	goto LA1_;
	LA4_: ;
	{
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T24_;
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, n, (&a));
		T24_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
		T24_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA(a.t, IL64(36028797027395856));
		switch ((*T24_).kind) {
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48):
		{
			tyArray_ZqT9cbUNKsl55MABiLlPDxA T26_;
			memset((void*)T26_, 0, sizeof(T26_));
			T26_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
			result = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_405), T26_, 1);
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
		{
			{
				NIM_BOOL T30_;
				tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T31_;
				NIM_BOOL T33_;
				tyArray_YB3ke0PEM9bcAj9bAsA619bJA T37_;
				T30_ = (NIM_BOOL)0;
				T31_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
				T31_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*n).typ, IL64(36028797019007248));
				T30_ = ((*T31_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23));
				if (!(T30_)) goto LA32_;
				T33_ = (NIM_BOOL)0;
				T33_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
				if (T33_) goto LA34_;
				T33_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
				LA34_: ;
				T30_ = !(T33_);
				LA32_: ;
				if (!T30_) goto LA35_;
				memset((void*)T37_, 0, sizeof(T37_));
				T37_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
				T37_[1] = lenField_VMw2SYHH12eNnC21DncHWQ_5(p);
				result = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_523), T37_, 2);
			}
			goto LA28_;
			LA35_: ;
			{
				tyArray_YB3ke0PEM9bcAj9bAsA619bJA T39_;
				memset((void*)T39_, 0, sizeof(T39_));
				T39_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
				T39_[1] = lenField_VMw2SYHH12eNnC21DncHWQ_5(p);
				result = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_406), T39_, 2);
			}
			LA28_: ;
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
		{
			tyArray_YB3ke0PEM9bcAj9bAsA619bJA T41_;
			NI64 T42_;
			memset((void*)T41_, 0, sizeof(T41_));
			T41_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
			T42_ = (NI64)0;
			T42_ = lengthOrd_HUiBYxvKiECXCv8BzQNheg_3(a.t);
			T41_[1] = rope_pEztpD6TFe5jk3aCrOSACA(T42_);
			result = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_407), T41_, 2);
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22):
		{
			tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T44_;
			T44_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
			T44_ = lastSon_E41DMKHtT9c6sAMyyvhmSIw(a.t);
			switch ((*T44_).kind) {
			case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
			case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
			{
				tyArray_YB3ke0PEM9bcAj9bAsA619bJA T46_;
				memset((void*)T46_, 0, sizeof(T46_));
				T46_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
				T46_[1] = lenField_VMw2SYHH12eNnC21DncHWQ_5(p);
				result = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_523), T46_, 2);
			}
			break;
			case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
			{
				tyArray_YB3ke0PEM9bcAj9bAsA619bJA T48_;
				tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T49_;
				NI64 T50_;
				memset((void*)T48_, 0, sizeof(T48_));
				T48_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
				T49_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
				T49_ = lastSon_E41DMKHtT9c6sAMyyvhmSIw(a.t);
				T50_ = (NI64)0;
				T50_ = lengthOrd_HUiBYxvKiECXCv8BzQNheg_3(T49_);
				T48_[1] = rope_pEztpD6TFe5jk3aCrOSACA(T50_);
				result = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_407), T48_, 2);
			}
			break;
			default:
			{
				NimStringDesc* T52_;
				NimStringDesc* T53_;
				T52_ = (NimStringDesc*)0;
				T53_ = (NimStringDesc*)0;
				T53_ = typeToString_iUZlBdvGqNPVN17wd9aVBNw(a.t, ((tyEnum_TPreferedDesc_tnd4qt9c4xddV8oKV5zyusw) 0));
				T52_ = rawNewString(T53_->Sup.len + 14);
appendString(T52_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_522));
appendString(T52_, T53_);
				internalError_5XY9cUy7hZmUusM38U9cYYdw(T52_);
			}
			break;
			}
		}
		break;
		default:
		{
			NimStringDesc* T55_;
			NimStringDesc* T56_;
			T55_ = (NimStringDesc*)0;
			T56_ = (NimStringDesc*)0;
			T56_ = typeToString_iUZlBdvGqNPVN17wd9aVBNw(a.t, ((tyEnum_TPreferedDesc_tnd4qt9c4xddV8oKV5zyusw) 0));
			T55_ = rawNewString(T56_->Sup.len + 14);
appendString(T55_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_522));
appendString(T55_, T56_);
			internalError_5XY9cUy7hZmUusM38U9cYYdw(T55_);
		}
		break;
		}
	}
	LA1_: ;
	return result;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genArg_YfbN72A6Yf11a02lxdcEtA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* param, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* call) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	memset((void*)(&a), 0, sizeof(a));
	{
		if (!((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 71))) goto LA3_;
		result = genArgStringToCString_cKaYaP9cyw45sNPok0SqlZgcgen(p, n);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T6_;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n_2;
		T6_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
		T6_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*param).typ, IL64(36028797027395856));
		if (!((IL64(281475110928384) &((NU64)1<<((NU)((*T6_).kind)&63U)))!=0)) goto LA7_;
		{
			if (!!(((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64)))) goto LA11_;
			n_2 = n;
		}
		goto LA9_;
		LA11_: ;
		{
			n_2 = (*n).kindU.S6.sons->data[((NI) 0)];
		}
		LA9_: ;
		result = openArrayLoc_9ay3JbWaSQA4xkrI8svQaZQ_6(p, n_2);
	}
	goto LA1_;
	LA7_: ;
	{
		NIM_BOOL T15_;
		T15_ = (NIM_BOOL)0;
		T15_ = ccgIntroducedPtr_Cz260TwdI2wbchTgee9aUAA(param);
		if (!T15_) goto LA16_;
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, n, (&a));
		result = addrLoc_YU9cO6gMkMct9bbzvzDM0Dzw_2((&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_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T21_) goto LA22_;
		T21_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA22_: ;
		T20_ = T21_;
		if (!(T20_)) goto LA23_;
		T20_ = ((*(*param).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23));
		LA23_: ;
		T19_ = T20_;
		if (!(T19_)) goto LA24_;
		T19_ = ((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64));
		LA24_: ;
		if (!T19_) goto LA25_;
		initLocExprSingleUse_9biTBaXPz9cezuLjjWw9cSEGw(p, (*n).kindU.S6.sons->data[((NI) 0)], (&a));
		callee = (*call).kindU.S6.sons->data[((NI) 0)];
		{
			NIM_BOOL T29_;
			NIM_BOOL T30_;
			T29_ = (NIM_BOOL)0;
			T30_ = (NIM_BOOL)0;
			T30_ = ((*callee).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T30_)) goto LA31_;
			T30_ = ((268501024 & (*(*callee).kindU.S4.sym).flags) == 32);
			LA31_: ;
			T29_ = T30_;
			if (!(T29_)) goto LA32_;
			T29_ = !(((72 & (*(*callee).kindU.S4.sym).loc.flags) == 0));
			LA32_: ;
			if (!T29_) goto LA33_;
			result = addrLoc_YU9cO6gMkMct9bbzvzDM0Dzw_2((&a));
		}
		goto LA27_;
		LA33_: ;
		{
			result = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
		}
		LA27_: ;
	}
	goto LA1_;
	LA25_: ;
	{
		initLocExprSingleUse_9biTBaXPz9cezuLjjWw9cSEGw(p, n, (&a));
		result = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
	}
	LA1_: ;
	return result;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genArgNoParam_9ay3JbWaSQA4xkrI8svQaZQ_7)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	memset((void*)(&a), 0, sizeof(a));
	{
		if (!((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 71))) goto LA3_;
		result = genArgStringToCString_cKaYaP9cyw45sNPok0SqlZgcgen(p, n);
	}
	goto LA1_;
	LA3_: ;
	{
		initLocExprSingleUse_9biTBaXPz9cezuLjjWw9cSEGw(p, n, (&a));
		result = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
	}
	LA1_: ;
	return result;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getRawProcType_LPWfuPxOgggo9aF8gAOJjVg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	result = getClosureType_C3G4lz8ql3PHX03kYPmo5w((*p).module, t, ((tyEnum_TClosureTypeKind_cLHRMz1vnpSK0uePy2qbWw) 0));
	return result;
}

N_NIMCALL(NIM_BOOL, leftAppearsOnRightSide_vU9b0aggOQwExqsArZPu29aw)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		if (!!((le == NIM_NIL))) goto LA3_;
		{
			NI i;
			NI colontmp_;
			NI T6_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T6_ = (NI)0;
			T6_ = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(ri);
			colontmp_ = (T6_ - 1);
			res = ((NI) 1);
			{
				while (1) {
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* r;
					if (!(res <= colontmp_)) goto LA8;
					i = res;
					r = (*ri).kindU.S6.sons->data[i];
					{
						tyEnum_TAnalysisResult_p9a9bcrXoRmLT4eUuwrDq9b4w T11_;
						T11_ = (tyEnum_TAnalysisResult_p9a9bcrXoRmLT4eUuwrDq9b4w)0;
						T11_ = isPartOf_1otDDZAmvFsmbqPyFytXFg(le, r);
						if (!!((T11_ == ((tyEnum_TAnalysisResult_p9a9bcrXoRmLT4eUuwrDq9b4w) 0)))) goto LA12_;
						result = NIM_TRUE;
						goto BeforeRet_;
					}
					LA12_: ;
					res += ((NI) 1);
				} LA8: ;
			}
		}
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}

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

N_NIMCALL(void, resetLoc_B9bNAYVEwjQtkUkvoOVhV2Q)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* loc) {
	NIM_BOOL containsGcRef;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ;
{	containsGcRef = containsGarbageCollectedRef_3xW85al2Ic6K09avBGxLjZg((*loc).t);
	typ = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*loc).t, IL64(36028797028444432));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isImportedCppType_B4nHhP3INN4MtYAgHK3Lrw(typ);
		if (!T3_) goto LA4_;
		goto BeforeRet_;
	}
	LA4_: ;
	{
		NIM_BOOL T8_;
		T8_ = (NIM_BOOL)0;
		T8_ = isComplexValueType_9aPB8K06mWuitdRENXgLyiQcgen(typ);
		if (!!(T8_)) goto LA9_;
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA nilLoc;
			if (!containsGcRef) goto LA13_;
			memset((void*)(&nilLoc), 0, sizeof(nilLoc));
			initLoc_kfK3bi0HoV6YeIhyJNMmZw((&nilLoc), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 1), (*loc).t, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 2));
			nilLoc.r = rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_189));
			genRefAssign_BtucsTdHw7orsXIL75hNVg_2(p, (&(*loc)), (&nilLoc), 8);
		}
		goto LA11_;
		LA13_: ;
		{
			tyArray_ZqT9cbUNKsl55MABiLlPDxA T16_;
			memset((void*)T16_, 0, sizeof(T16_));
			T16_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&(*loc)));
			linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_526), T16_, 1);
		}
		LA11_: ;
	}
	goto LA6_;
	LA9_: ;
	{
		{
			tyArray_ZqT9cbUNKsl55MABiLlPDxA T22_;
			if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 6))&31U)))!=0)) goto LA20_;
			memset((void*)T22_, 0, sizeof(T22_));
			T22_[0] = addrLoc_YU9cO6gMkMct9bbzvzDM0Dzw_2((&(*loc)));
			linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_527), T22_, 1);
		}
		LA20_: ;
		{
			tyArray_YB3ke0PEM9bcAj9bAsA619bJA T27_;
			if (!!(((*loc).s == ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 2)))) goto LA25_;
			memset((void*)T27_, 0, sizeof(T27_));
			T27_[0] = addrLoc_YU9cO6gMkMct9bbzvzDM0Dzw_2((&(*loc)));
			T27_[1] = genTypeInfo_x7sD9aHIDrXyWVDTVp9bclvA((*p).module, (*loc).t);
			linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_528), T27_, 2);
			genObjectInit_rMJx6ytAq9c39bDIl369aHfYQ(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), (*loc).t, (&(*loc)), NIM_TRUE);
		}
		goto LA23_;
		LA25_: ;
		{
			tyArray_YB3ke0PEM9bcAj9bAsA619bJA T29_;
			useStringh_OShE9cXECylewqZ7ZpW2l0w((*p).module);
			memset((void*)T29_, 0, sizeof(T29_));
			T29_[0] = addrLoc_YU9cO6gMkMct9bbzvzDM0Dzw_2((&(*loc)));
			T29_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&(*loc)));
			linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_166), T29_, 2);
			genObjectInit_rMJx6ytAq9c39bDIl369aHfYQ(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), (*loc).t, (&(*loc)), NIM_TRUE);
		}
		LA23_: ;
	}
	LA6_: ;
	}BeforeRet_: ;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, addComma_ZpRZ6Yvwr4H1rFav9b7BpjA)(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* r) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	{
		if (!(r == NIM_NIL)) goto LA3_;
		result = r;
	}
	goto LA1_;
	LA3_: ;
	{
		tyArray_j0xH32fTir0IvGY7WxQsQA T6_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T7_;
		memset((void*)T6_, 0, sizeof(T6_));
		T7_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T7_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_119), T6_, 0);
		result = amp__FyliSLNPyN7IibfEAQfpRA(r, T7_);
	}
	LA1_: ;
	return result;
}

N_NIMCALL(void, genClosureCall_HKkL9adNEIcNHeJ0iZ6uitg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA op;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* pl;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ;
	NI length;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* rawProc;
	NimStringDesc* callPattern;
	memset((void*)(&op), 0, sizeof(op));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*ri).kindU.S6.sons->data[((NI) 0)], (&op));
	pl = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	typ = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*(*ri).kindU.S6.sons->data[((NI) 0)]).typ, IL64(36028797019007248));
	length = sonsLen_qPWPHw7WgJeEVYUdcaRIig(ri);
	{
		NI i;
		NI colontmp_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)(length - ((NI) 1));
		res = ((NI) 1);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA3;
				i = res;
				{
					NI T6_;
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* paramType;
					T6_ = (NI)0;
					T6_ = sonsLen_gG7hUAX9cA629ahMLVL3xN4w(typ);
					if (!(i < T6_)) goto LA7_;
					paramType = (*(*typ).n).kindU.S6.sons->data[i];
					{
						NIM_BOOL T11_;
						tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T20_;
						T11_ = (NIM_BOOL)0;
						T11_ = isCompileTimeOnly_UBQknCC9aYWKMNMK4dmeTlQcgen((*paramType).typ);
						if (!!(T11_)) goto LA12_;
						{
							tyArray_j0xH32fTir0IvGY7WxQsQA T18_;
							tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T19_;
							if (!!((pl == NIM_NIL))) goto LA16_;
							memset((void*)T18_, 0, sizeof(T18_));
							T19_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
							T19_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_119), T18_, 0);
							add_cDalAhgBlDWoYHadkaqqxw(&pl, T19_);
						}
						LA16_: ;
						T20_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
						T20_ = genArg_YfbN72A6Yf11a02lxdcEtA(p, (*ri).kindU.S6.sons->data[i], (*paramType).kindU.S4.sym, ri);
						add_cDalAhgBlDWoYHadkaqqxw(&pl, T20_);
					}
					LA12_: ;
				}
				goto LA4_;
				LA7_: ;
				{
					tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T28_;
					{
						tyArray_j0xH32fTir0IvGY7WxQsQA T26_;
						tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T27_;
						if (!!((pl == NIM_NIL))) goto LA24_;
						memset((void*)T26_, 0, sizeof(T26_));
						T27_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
						T27_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_119), T26_, 0);
						add_cDalAhgBlDWoYHadkaqqxw(&pl, T27_);
					}
					LA24_: ;
					T28_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
					T28_ = genArgNoParam_9ay3JbWaSQA4xkrI8svQaZQ_7(p, (*ri).kindU.S6.sons->data[i]);
					add_cDalAhgBlDWoYHadkaqqxw(&pl, T28_);
				}
				LA4_: ;
				res += ((NI) 1);
			} LA3: ;
		}
	}
	rawProc = getRawProcType_LPWfuPxOgggo9aF8gAOJjVg(p, typ);
	{
		if (!(((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 15))&63U)))!=0)) goto LA31_;
		callPattern = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_524));
	}
	goto LA29_;
	LA31_: ;
	{
		callPattern = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_525));
	}
	LA29_: ;
	{
		if (!!(((*typ).sons->data[((NI) 0)] == NIM_NIL))) goto LA36_;
		{
			NIM_BOOL T40_;
			T40_ = (NIM_BOOL)0;
			T40_ = isInvalidReturnType_FW3ctu15AiQkw2TcerUtOw((*typ).sons->data[((NI) 0)]);
			if (!T40_) goto LA41_;
			{
				NI T45_;
				tyArray_j0xH32fTir0IvGY7WxQsQA T48_;
				tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T49_;
				T45_ = (NI)0;
				T45_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(ri);
				if (!(((NI) 1) < T45_)) goto LA46_;
				memset((void*)T48_, 0, sizeof(T48_));
				T49_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
				T49_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_119), T48_, 0);
				add_cDalAhgBlDWoYHadkaqqxw(&pl, T49_);
			}
			LA46_: ;
			{
				NIM_BOOL T52_;
				NIM_BOOL T54_;
				tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T67_;
				NimStringDesc* T68_;
				tyArray_EcJXtY9cAr9bpvybuP0XpjyQ T69_;
				T52_ = (NIM_BOOL)0;
				T52_ = ((3 &(1U<<((NU)((*d).k)&15U)))!=0);
				if (T52_) goto LA53_;
				T54_ = (NIM_BOOL)0;
				T54_ = leftAppearsOnRightSide_vU9b0aggOQwExqsArZPu29aw(le, ri);
				T52_ = !(T54_);
				LA53_: ;
				if (!T52_) goto LA55_;
				{
					if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA59_;
					getTemp_AAMs9asc5S78MBo8z9bTltgw(p, (*typ).sons->data[((NI) 0)], d, NIM_TRUE);
				}
				goto LA57_;
				LA59_: ;
				{
					NIM_BOOL T62_;
					NIM_BOOL T64_;
					T62_ = (NIM_BOOL)0;
					T62_ = !(((2 &(1U<<((NU)((*d).k)&15U)))!=0));
					if (!(T62_)) goto LA63_;
					T64_ = (NIM_BOOL)0;
					T64_ = hasNoInit_LTm4EPvF5i2yXgRHKmV9apAcgen(ri);
					T62_ = !(T64_);
					LA63_: ;
					if (!T62_) goto LA65_;
					resetLoc_B9bNAYVEwjQtkUkvoOVhV2Q(p, d);
				}
				goto LA57_;
				LA65_: ;
				LA57_: ;
				T67_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
				T67_ = addrLoc_YU9cO6gMkMct9bbzvzDM0Dzw_2((&(*d)));
				add_cDalAhgBlDWoYHadkaqqxw(&pl, T67_);
				T68_ = (NimStringDesc*)0;
				T68_ = rawNewString(callPattern->Sup.len + 3);
appendString(T68_, callPattern);
appendString(T68_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_529));
				memset((void*)T69_, 0, sizeof(T69_));
				T69_[0] = op.r;
				T69_[1] = pl;
				T69_[2] = addComma_ZpRZ6Yvwr4H1rFav9b7BpjA(pl);
				T69_[3] = rawProc;
				lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), T68_, T69_, 4);
			}
			goto LA50_;
			LA55_: ;
			{
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp;
				tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T71_;
				NimStringDesc* T72_;
				tyArray_EcJXtY9cAr9bpvybuP0XpjyQ T73_;
				memset((void*)(&tmp), 0, sizeof(tmp));
				getTemp_AAMs9asc5S78MBo8z9bTltgw(p, (*typ).sons->data[((NI) 0)], (&tmp), NIM_TRUE);
				T71_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
				T71_ = addrLoc_YU9cO6gMkMct9bbzvzDM0Dzw_2((&tmp));
				add_cDalAhgBlDWoYHadkaqqxw(&pl, T71_);
				T72_ = (NimStringDesc*)0;
				T72_ = rawNewString(callPattern->Sup.len + 3);
appendString(T72_, callPattern);
appendString(T72_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_529));
				memset((void*)T73_, 0, sizeof(T73_));
				T73_[0] = op.r;
				T73_[1] = pl;
				T73_[2] = addComma_ZpRZ6Yvwr4H1rFav9b7BpjA(pl);
				T73_[3] = rawProc;
				lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), T72_, T73_, 4);
				genAssignment_BtucsTdHw7orsXIL75hNVg(p, (&(*d)), (&tmp), 0);
			}
			LA50_: ;
		}
		goto LA38_;
		LA41_: ;
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA list;
			tyArray_EcJXtY9cAr9bpvybuP0XpjyQ T79_;
			{
				if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA77_;
				getTemp_AAMs9asc5S78MBo8z9bTltgw(p, (*typ).sons->data[((NI) 0)], d, NIM_FALSE);
			}
			LA77_: ;
			memset((void*)(&list), 0, sizeof(list));
			initLoc_kfK3bi0HoV6YeIhyJNMmZw((&list), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 9), (*d).t, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
			memset((void*)T79_, 0, sizeof(T79_));
			T79_[0] = op.r;
			T79_[1] = pl;
			T79_[2] = addComma_ZpRZ6Yvwr4H1rFav9b7BpjA(pl);
			T79_[3] = rawProc;
			list.r = percent__tH0lgOCTcFVFSKThSUgFEg(callPattern, T79_, 4);
			genAssignment_BtucsTdHw7orsXIL75hNVg(p, (&(*d)), (&list), 0);
		}
		LA38_: ;
	}
	goto LA34_;
	LA36_: ;
	{
		NimStringDesc* T81_;
		tyArray_EcJXtY9cAr9bpvybuP0XpjyQ T82_;
		T81_ = (NimStringDesc*)0;
		T81_ = rawNewString(callPattern->Sup.len + 3);
appendString(T81_, callPattern);
appendString(T81_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_529));
		memset((void*)T82_, 0, sizeof(T82_));
		T82_[0] = op.r;
		T82_[1] = pl;
		T82_[2] = addComma_ZpRZ6Yvwr4H1rFav9b7BpjA(pl);
		T82_[3] = rawProc;
		lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), T81_, T82_, 4);
	}
	LA34_: ;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genOtherArg_s9cLboISJDCKnrSydrmec5g)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, NI i, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	{
		NI T3_;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* paramType;
		T3_ = (NI)0;
		T3_ = sonsLen_gG7hUAX9cA629ahMLVL3xN4w(typ);
		if (!(i < T3_)) goto LA4_;
		paramType = (*(*typ).n).kindU.S6.sons->data[i];
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = isCompileTimeOnly_UBQknCC9aYWKMNMK4dmeTlQcgen((*paramType).typ);
			if (!T8_) goto LA9_;
			result = NIM_NIL;
		}
		goto LA6_;
		LA9_: ;
		{
			NIM_BOOL T12_;
			T12_ = (NIM_BOOL)0;
			T12_ = ((*(*typ).sons->data[i]).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23));
			if (!(T12_)) goto LA13_;
			T12_ = ((*(*ri).kindU.S6.sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64));
			LA13_: ;
			if (!T12_) goto LA14_;
			result = genArgNoParam_9ay3JbWaSQA4xkrI8svQaZQ_7(p, (*(*ri).kindU.S6.sons->data[i]).kindU.S6.sons->data[((NI) 0)]);
		}
		goto LA6_;
		LA14_: ;
		{
			result = genArgNoParam_9ay3JbWaSQA4xkrI8svQaZQ_7(p, (*ri).kindU.S6.sons->data[i]);
		}
		LA6_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		{
			if (!!((((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 0))&63U)))!=0))) goto LA20_;
			localError_GarD0CQJ5aQhoHekHYinVQ((*ri).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_533));
			result = NIM_NIL;
		}
		goto LA18_;
		LA20_: ;
		{
			result = genArgNoParam_9ay3JbWaSQA4xkrI8svQaZQ_7(p, (*ri).kindU.S6.sons->data[i]);
		}
		LA18_: ;
	}
	LA1_: ;
	return result;
}

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

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genThisArg_s9cLboISJDCKnrSydrmec5g_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, NI i, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri_2;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	{
		NI T3_;
		NimStringDesc* T6_;
		T3_ = (NI)0;
		T3_ = sonsLen_gG7hUAX9cA629ahMLVL3xN4w(typ);
		if (!!((i < T3_))) goto LA4_;
		T6_ = (NimStringDesc*)0;
		T6_ = dollar__k53Ge4e9cDjc7y9c5uML7sPQ(TM_MQdRN7fpbG7rPm4JpVVAhA_535);
		internalError_5XY9cUy7hZmUusM38U9cYYdw(T6_);
	}
	LA4_: ;
	ri_2 = (*ri).kindU.S6.sons->data[i];
	{
		while (1) {
			if (!((*ri_2).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 66))) goto LA8;
			ri_2 = (*ri_2).kindU.S6.sons->data[((NI) 0)];
		} LA8: ;
	}
	t = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*typ).sons->data[i], 2064);
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x;
		if (!((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23))) goto LA11_;
		{
			if (!((*ri_2).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64))) goto LA15_;
			x = (*ri_2).kindU.S6.sons->data[((NI) 0)];
		}
		goto LA13_;
		LA15_: ;
		{
			x = ri_2;
		}
		LA13_: ;
		{
			if (!((*(*x).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21))) goto LA20_;
			result = genArgNoParam_9ay3JbWaSQA4xkrI8svQaZQ_7(p, x);
			add_UJnSY21g59awhvSFBxJ9a9aPg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_536));
		}
		goto LA18_;
		LA20_: ;
		{
			NIM_BOOL T23_;
			T23_ = (NIM_BOOL)0;
			T23_ = ((*x).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 65) || (*x).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 47));
			if (!(T23_)) goto LA24_;
			T23_ = ((*(*(*x).kindU.S6.sons->data[((NI) 0)]).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21));
			LA24_: ;
			if (!T23_) goto LA25_;
			result = genArgNoParam_9ay3JbWaSQA4xkrI8svQaZQ_7(p, (*x).kindU.S6.sons->data[((NI) 0)]);
			add_UJnSY21g59awhvSFBxJ9a9aPg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_536));
		}
		goto LA18_;
		LA25_: ;
		{
			result = genArgNoParam_9ay3JbWaSQA4xkrI8svQaZQ_7(p, x);
			add_UJnSY21g59awhvSFBxJ9a9aPg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_273));
		}
		LA18_: ;
	}
	goto LA9_;
	LA11_: ;
	{
		if (!((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21))) goto LA29_;
		{
			if (!((*ri_2).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 63) || (*ri_2).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64))) goto LA33_;
			result = genArgNoParam_9ay3JbWaSQA4xkrI8svQaZQ_7(p, (*ri_2).kindU.S6.sons->data[((NI) 0)]);
			add_UJnSY21g59awhvSFBxJ9a9aPg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_273));
		}
		goto LA31_;
		LA33_: ;
		{
			result = genArgNoParam_9ay3JbWaSQA4xkrI8svQaZQ_7(p, ri_2);
			add_UJnSY21g59awhvSFBxJ9a9aPg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_536));
		}
		LA31_: ;
	}
	goto LA9_;
	LA29_: ;
	{
		ri_2 = skipAddrDeref_vQuVJ3xsG9c85EJKF2xQ7mA(ri_2);
		{
			if (!((*ri_2).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 63) || (*ri_2).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64))) goto LA39_;
			ri_2 = (*ri_2).kindU.S6.sons->data[((NI) 0)];
		}
		LA39_: ;
		result = genArgNoParam_9ay3JbWaSQA4xkrI8svQaZQ_7(p, ri_2);
		add_UJnSY21g59awhvSFBxJ9a9aPg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_273));
	}
	LA9_: ;
	return result;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genPatternCall_DcUBV6Nsuhm43a9asUf1wAg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, NimStringDesc* pat, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	NI i;
	NI j;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	i = ((NI) 0);
	j = ((NI) 1);
	{
		while (1) {
			if (!(i < (pat ? pat->Sup.len : 0))) goto LA2;
			switch (((NU8)(pat->data[i]))) {
			case 64:
			{
				{
					NI T6_;
					tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T9_;
					T6_ = (NI)0;
					T6_ = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(ri);
					if (!(j < T6_)) goto LA7_;
					T9_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
					T9_ = genOtherArg_s9cLboISJDCKnrSydrmec5g(p, ri, j, typ);
					add_cDalAhgBlDWoYHadkaqqxw(&result, T9_);
					{
						NI k;
						NI colontmp_;
						NI colontmp__2;
						NI T11_;
						NI res;
						k = (NI)0;
						colontmp_ = (NI)0;
						colontmp__2 = (NI)0;
						colontmp_ = (NI)(j + ((NI) 1));
						T11_ = (NI)0;
						T11_ = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(ri);
						colontmp__2 = (T11_ - 1);
						res = colontmp_;
						{
							while (1) {
								tyArray_j0xH32fTir0IvGY7WxQsQA T14_;
								tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T15_;
								tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T16_;
								if (!(res <= colontmp__2)) goto LA13;
								k = res;
								memset((void*)T14_, 0, sizeof(T14_));
								T15_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
								T15_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_119), T14_, 0);
								add_cDalAhgBlDWoYHadkaqqxw(&result, T15_);
								T16_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
								T16_ = genOtherArg_s9cLboISJDCKnrSydrmec5g(p, ri, k, typ);
								add_cDalAhgBlDWoYHadkaqqxw(&result, T16_);
								res += ((NI) 1);
							} LA13: ;
						}
					}
				}
				LA7_: ;
				i += ((NI) 1);
			}
			break;
			case 35:
			{
				{
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri_2;
					if (!(((NU8)(pat->data[(NI)(i + ((NI) 1))])) == ((NU8)(43)) || ((NU8)(pat->data[(NI)(i + ((NI) 1))])) == ((NU8)(64)))) goto LA20_;
					ri_2 = (*ri).kindU.S6.sons->data[j];
					{
						tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ_2;
						tyArray_j0xH32fTir0IvGY7WxQsQA T31_;
						tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T32_;
						tyArray_j0xH32fTir0IvGY7WxQsQA T46_;
						tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T47_;
						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 LA24_;
						typ_2 = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*(*ri_2).kindU.S6.sons->data[((NI) 0)]).typ, IL64(36028797019007248));
						{
							tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T30_;
							if (!((NU8)(pat->data[(NI)(i + ((NI) 1))]) == (NU8)(43))) goto LA28_;
							T30_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
							T30_ = genArgNoParam_9ay3JbWaSQA4xkrI8svQaZQ_7(p, (*ri_2).kindU.S6.sons->data[((NI) 0)]);
							add_cDalAhgBlDWoYHadkaqqxw(&result, T30_);
						}
						LA28_: ;
						memset((void*)T31_, 0, sizeof(T31_));
						T32_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
						T32_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_126), T31_, 0);
						add_cDalAhgBlDWoYHadkaqqxw(&result, T32_);
						{
							NI T35_;
							tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T38_;
							T35_ = (NI)0;
							T35_ = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(ri_2);
							if (!(((NI) 1) < T35_)) goto LA36_;
							T38_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
							T38_ = genOtherArg_s9cLboISJDCKnrSydrmec5g(p, ri_2, ((NI) 1), typ_2);
							add_cDalAhgBlDWoYHadkaqqxw(&result, T38_);
						}
						LA36_: ;
						{
							NI k_2;
							NI colontmp__3;
							NI colontmp__4;
							NI T40_;
							NI res_2;
							k_2 = (NI)0;
							colontmp__3 = (NI)0;
							colontmp__4 = (NI)0;
							colontmp__3 = (NI)(j + ((NI) 1));
							T40_ = (NI)0;
							T40_ = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(ri_2);
							colontmp__4 = (T40_ - 1);
							res_2 = colontmp__3;
							{
								while (1) {
									tyArray_j0xH32fTir0IvGY7WxQsQA T43_;
									tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T44_;
									tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T45_;
									if (!(res_2 <= colontmp__4)) goto LA42;
									k_2 = res_2;
									memset((void*)T43_, 0, sizeof(T43_));
									T44_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
									T44_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_119), T43_, 0);
									add_cDalAhgBlDWoYHadkaqqxw(&result, T44_);
									T45_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
									T45_ = genOtherArg_s9cLboISJDCKnrSydrmec5g(p, ri_2, k_2, typ_2);
									add_cDalAhgBlDWoYHadkaqqxw(&result, T45_);
									res_2 += ((NI) 1);
								} LA42: ;
							}
						}
						memset((void*)T46_, 0, sizeof(T46_));
						T47_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
						T47_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_125), T46_, 0);
						add_cDalAhgBlDWoYHadkaqqxw(&result, T47_);
					}
					goto LA22_;
					LA24_: ;
					{
						localError_GarD0CQJ5aQhoHekHYinVQ((*ri_2).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_534));
					}
					LA22_: ;
					i += ((NI) 1);
				}
				goto LA18_;
				LA20_: ;
				{
					tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T52_;
					if (!((NU8)(pat->data[(NI)(i + ((NI) 1))]) == (NU8)(46))) goto LA50_;
					T52_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
					T52_ = genThisArg_s9cLboISJDCKnrSydrmec5g_2(p, ri, j, typ);
					add_cDalAhgBlDWoYHadkaqqxw(&result, T52_);
					i += ((NI) 1);
				}
				goto LA18_;
				LA50_: ;
				{
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* arg;
					tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T58_;
					if (!((NU8)(pat->data[(NI)(i + ((NI) 1))]) == (NU8)(91))) goto LA54_;
					arg = skipAddrDeref_vQuVJ3xsG9c85EJKF2xQ7mA((*ri).kindU.S6.sons->data[j]);
					{
						while (1) {
							if (!((*arg).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 63) || (*arg).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64) || (*arg).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 66))) goto LA57;
							arg = (*arg).kindU.S6.sons->data[((NI) 0)];
						} LA57: ;
					}
					T58_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
					T58_ = genArgNoParam_9ay3JbWaSQA4xkrI8svQaZQ_7(p, arg);
					add_cDalAhgBlDWoYHadkaqqxw(&result, T58_);
				}
				goto LA18_;
				LA54_: ;
				{
					tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T60_;
					T60_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
					T60_ = genOtherArg_s9cLboISJDCKnrSydrmec5g(p, ri, j, typ);
					add_cDalAhgBlDWoYHadkaqqxw(&result, T60_);
				}
				LA18_: ;
				j += ((NI) 1);
				i += ((NI) 1);
			}
			break;
			case 39:
			{
				NI idx;
				NI stars;
				idx = (NI)0;
				stars = (NI)0;
				{
					NIM_BOOL T64_;
					tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t;
					T64_ = (NIM_BOOL)0;
					T64_ = scanCppGenericSlot_duLZKxkzK247jEYF4jUfog(pat, (&i), (&idx), (&stars));
					if (!T64_) goto LA65_;
					t = resolveStarsInCppType_D9b9b2TeB3azY6wst9c4UqgZg(typ, idx, stars);
					{
						tyArray_j0xH32fTir0IvGY7WxQsQA T71_;
						tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T72_;
						if (!(t == NIM_NIL)) goto LA69_;
						memset((void*)T71_, 0, sizeof(T71_));
						T72_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
						T72_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_26), T71_, 0);
						add_cDalAhgBlDWoYHadkaqqxw(&result, T72_);
					}
					goto LA67_;
					LA69_: ;
					{
						tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T74_;
						T74_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
						T74_ = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, t);
						add_cDalAhgBlDWoYHadkaqqxw(&result, T74_);
					}
					LA67_: ;
				}
				LA65_: ;
			}
			break;
			default:
			{
				NI start;
				start = i;
				{
					while (1) {
						if (!(i < (pat ? pat->Sup.len : 0))) goto LA77;
						{
							if (!!((((NU8)(pat->data[i])) == ((NU8)(64)) || ((NU8)(pat->data[i])) == ((NU8)(35)) || ((NU8)(pat->data[i])) == ((NU8)(39))))) goto LA80_;
							i += ((NI) 1);
						}
						goto LA78_;
						LA80_: ;
						{
							goto LA76;
						}
						LA78_: ;
					} LA77: ;
				} LA76: ;
				{
					NimStringDesc* T87_;
					if (!(start <= (NI)(i - ((NI) 1)))) goto LA85_;
					T87_ = (NimStringDesc*)0;
					T87_ = copyStrLast(pat, start, (NI)(i - ((NI) 1)));
					add_UJnSY21g59awhvSFBxJ9a9aPg(&result, T87_);
				}
				LA85_: ;
			}
			break;
			}
		} LA2: ;
	}
	return result;
}

N_NIMCALL(void, fixupCall_4ksWLEEeUaq8dr0M48R85w)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* callee, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* params) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* pl;
	tyArray_j0xH32fTir0IvGY7WxQsQA T1_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T2_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T3_;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ;
	memset((void*)T1_, 0, sizeof(T1_));
	T2_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T2_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_126), T1_, 0);
	T3_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T3_ = amp__FyliSLNPyN7IibfEAQfpRA(callee, T2_);
	pl = amp__FyliSLNPyN7IibfEAQfpRA(T3_, params);
	typ = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*(*ri).kindU.S6.sons->data[((NI) 0)]).typ, IL64(36028797019007248));
	{
		if (!!(((*typ).sons->data[((NI) 0)] == NIM_NIL))) goto LA6_;
		{
			NIM_BOOL T10_;
			T10_ = (NIM_BOOL)0;
			T10_ = isInvalidReturnType_FW3ctu15AiQkw2TcerUtOw((*typ).sons->data[((NI) 0)]);
			if (!T10_) goto LA11_;
			{
				tyArray_j0xH32fTir0IvGY7WxQsQA T17_;
				tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T18_;
				if (!!((params == NIM_NIL))) goto LA15_;
				memset((void*)T17_, 0, sizeof(T17_));
				T18_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
				T18_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_119), T17_, 0);
				add_cDalAhgBlDWoYHadkaqqxw(&pl, T18_);
			}
			LA15_: ;
			{
				NIM_BOOL T21_;
				NIM_BOOL T23_;
				tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T36_;
				tyArray_j0xH32fTir0IvGY7WxQsQA T37_;
				tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T38_;
				T21_ = (NIM_BOOL)0;
				T21_ = ((3 &(1U<<((NU)((*d).k)&15U)))!=0);
				if (T21_) goto LA22_;
				T23_ = (NIM_BOOL)0;
				T23_ = leftAppearsOnRightSide_vU9b0aggOQwExqsArZPu29aw(le, ri);
				T21_ = !(T23_);
				LA22_: ;
				if (!T21_) goto LA24_;
				{
					if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA28_;
					getTemp_AAMs9asc5S78MBo8z9bTltgw(p, (*typ).sons->data[((NI) 0)], d, NIM_TRUE);
				}
				goto LA26_;
				LA28_: ;
				{
					NIM_BOOL T31_;
					NIM_BOOL T33_;
					T31_ = (NIM_BOOL)0;
					T31_ = !(((2 &(1U<<((NU)((*d).k)&15U)))!=0));
					if (!(T31_)) goto LA32_;
					T33_ = (NIM_BOOL)0;
					T33_ = hasNoInit_LTm4EPvF5i2yXgRHKmV9apAcgen(ri);
					T31_ = !(T33_);
					LA32_: ;
					if (!T31_) goto LA34_;
					resetLoc_B9bNAYVEwjQtkUkvoOVhV2Q(p, d);
				}
				goto LA26_;
				LA34_: ;
				LA26_: ;
				T36_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
				T36_ = addrLoc_YU9cO6gMkMct9bbzvzDM0Dzw_2((&(*d)));
				add_cDalAhgBlDWoYHadkaqqxw(&pl, T36_);
				memset((void*)T37_, 0, sizeof(T37_));
				T38_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
				T38_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_537), T37_, 0);
				add_cDalAhgBlDWoYHadkaqqxw(&pl, T38_);
				line_ALdLmqKb9cyvVSETUUyUh9aQ(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), pl);
			}
			goto LA19_;
			LA24_: ;
			{
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp;
				tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T40_;
				tyArray_j0xH32fTir0IvGY7WxQsQA T41_;
				tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T42_;
				memset((void*)(&tmp), 0, sizeof(tmp));
				getTemp_AAMs9asc5S78MBo8z9bTltgw(p, (*typ).sons->data[((NI) 0)], (&tmp), NIM_TRUE);
				T40_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
				T40_ = addrLoc_YU9cO6gMkMct9bbzvzDM0Dzw_2((&tmp));
				add_cDalAhgBlDWoYHadkaqqxw(&pl, T40_);
				memset((void*)T41_, 0, sizeof(T41_));
				T42_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
				T42_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_537), T41_, 0);
				add_cDalAhgBlDWoYHadkaqqxw(&pl, T42_);
				line_ALdLmqKb9cyvVSETUUyUh9aQ(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), pl);
				genAssignment_BtucsTdHw7orsXIL75hNVg(p, (&(*d)), (&tmp), 0);
			}
			LA19_: ;
		}
		goto LA8_;
		LA11_: ;
		{
			tyArray_j0xH32fTir0IvGY7WxQsQA T44_;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T45_;
			memset((void*)T44_, 0, sizeof(T44_));
			T45_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T45_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_125), T44_, 0);
			add_cDalAhgBlDWoYHadkaqqxw(&pl, T45_);
			{
				NIM_BOOL T48_;
				NIM_BOOL T49_;
				T48_ = (NIM_BOOL)0;
				T49_ = (NIM_BOOL)0;
				T49_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
				if (T49_) goto LA50_;
				T49_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
				LA50_: ;
				T48_ = T49_;
				if (!(T48_)) goto LA51_;
				T48_ = (((*d).flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 8))&15U)))!=0);
				LA51_: ;
				if (!T48_) goto LA52_;
				(*d).k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 9);
				unsureAsgnRef((void**) (&(*d).r), pl);
				(*d).flags &= ~(((NU16)1) << ((((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 8)) % (sizeof(NU16)*8)));
			}
			goto LA46_;
			LA52_: ;
			{
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA list;
				{
					if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA57_;
					getTemp_AAMs9asc5S78MBo8z9bTltgw(p, (*typ).sons->data[((NI) 0)], d, NIM_FALSE);
				}
				LA57_: ;
				memset((void*)(&list), 0, sizeof(list));
				initLoc_kfK3bi0HoV6YeIhyJNMmZw((&list), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 9), (*d).t, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
				list.r = pl;
				genAssignment_BtucsTdHw7orsXIL75hNVg(p, (&(*d)), (&list), 0);
			}
			LA46_: ;
		}
		LA8_: ;
	}
	goto LA4_;
	LA6_: ;
	{
		tyArray_j0xH32fTir0IvGY7WxQsQA T60_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T61_;
		memset((void*)T60_, 0, sizeof(T60_));
		T61_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T61_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_537), T60_, 0);
		add_cDalAhgBlDWoYHadkaqqxw(&pl, T61_);
		line_ALdLmqKb9cyvVSETUUyUh9aQ(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), pl);
	}
	LA4_: ;
}

N_NIMCALL(void, genInfixCall_HKkL9adNEIcNHeJ0iZ6uitg_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA op;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ;
	NI length;
	NimStringDesc* pat;
	memset((void*)(&op), 0, sizeof(op));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*ri).kindU.S6.sons->data[((NI) 0)], (&op));
	typ = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*(*ri).kindU.S6.sons->data[((NI) 0)]).typ, IL64(36028797019007248));
	length = sonsLen_qPWPHw7WgJeEVYUdcaRIig(ri);
	pat = (*(*(*(*ri).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym).loc.r).data;
	{
		NimStringDesc* T5_;
		if (!!(!((pat == NIM_NIL)))) goto LA3_;
		T5_ = (NimStringDesc*)0;
		T5_ = dollar__k53Ge4e9cDjc7y9c5uML7sPQ(TM_MQdRN7fpbG7rPm4JpVVAhA_530);
		internalError_5XY9cUy7hZmUusM38U9cYYdw(T5_);
	}
	LA3_: ;
	{
		NIM_BOOL T8_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* pl;
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ_2;
		T8_ = (NIM_BOOL)0;
		T8_ = contains_m1TSS3QwQPclQATuiRuVZg(pat, TM_MQdRN7fpbG7rPm4JpVVAhA_532);
		if (!T8_) goto LA9_;
		pl = genPatternCall_DcUBV6Nsuhm43a9asUf1wAg(p, ri, pat, typ);
		typ_2 = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*(*ri).kindU.S6.sons->data[((NI) 0)]).typ, IL64(36028797019007248));
		{
			if (!!(((*typ_2).sons->data[((NI) 0)] == NIM_NIL))) goto LA13_;
			{
				NIM_BOOL T17_;
				NIM_BOOL T18_;
				T17_ = (NIM_BOOL)0;
				T18_ = (NIM_BOOL)0;
				T18_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
				if (T18_) goto LA19_;
				T18_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
				LA19_: ;
				T17_ = T18_;
				if (!(T17_)) goto LA20_;
				T17_ = (((*d).flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 8))&15U)))!=0);
				LA20_: ;
				if (!T17_) goto LA21_;
				(*d).k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 9);
				unsureAsgnRef((void**) (&(*d).r), pl);
				(*d).flags &= ~(((NU16)1) << ((((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 8)) % (sizeof(NU16)*8)));
			}
			goto LA15_;
			LA21_: ;
			{
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA list;
				{
					if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA26_;
					getTemp_AAMs9asc5S78MBo8z9bTltgw(p, (*typ_2).sons->data[((NI) 0)], d, NIM_FALSE);
				}
				LA26_: ;
				memset((void*)(&list), 0, sizeof(list));
				initLoc_kfK3bi0HoV6YeIhyJNMmZw((&list), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 9), (*d).t, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
				list.r = pl;
				genAssignment_BtucsTdHw7orsXIL75hNVg(p, (&(*d)), (&list), 0);
			}
			LA15_: ;
		}
		goto LA11_;
		LA13_: ;
		{
			tyArray_j0xH32fTir0IvGY7WxQsQA T29_;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T30_;
			memset((void*)T29_, 0, sizeof(T29_));
			T30_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T30_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_529), T29_, 0);
			add_cDalAhgBlDWoYHadkaqqxw(&pl, T30_);
			line_ALdLmqKb9cyvVSETUUyUh9aQ(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), pl);
		}
		LA11_: ;
	}
	goto LA6_;
	LA9_: ;
	{
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* pl_2;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* params;
		pl_2 = NIM_NIL;
		{
			NI T34_;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T37_;
			T34_ = (NI)0;
			T34_ = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(ri);
			if (!(((NI) 1) < T34_)) goto LA35_;
			T37_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T37_ = genThisArg_s9cLboISJDCKnrSydrmec5g_2(p, ri, ((NI) 1), typ);
			add_cDalAhgBlDWoYHadkaqqxw(&pl_2, T37_);
		}
		LA35_: ;
		add_cDalAhgBlDWoYHadkaqqxw(&pl_2, op.r);
		params = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		{
			NI i;
			NI colontmp_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = (NI)(length - ((NI) 1));
			res = ((NI) 2);
			{
				while (1) {
					tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T47_;
					if (!(res <= colontmp_)) goto LA40;
					i = res;
					{
						tyArray_j0xH32fTir0IvGY7WxQsQA T45_;
						tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T46_;
						if (!!((params == NIM_NIL))) goto LA43_;
						memset((void*)T45_, 0, sizeof(T45_));
						T46_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
						T46_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_119), T45_, 0);
						add_cDalAhgBlDWoYHadkaqqxw(&params, T46_);
					}
					LA43_: ;
					T47_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
					T47_ = genOtherArg_s9cLboISJDCKnrSydrmec5g(p, ri, i, typ);
					add_cDalAhgBlDWoYHadkaqqxw(&params, T47_);
					res += ((NI) 1);
				} LA40: ;
			}
		}
		fixupCall_4ksWLEEeUaq8dr0M48R85w(p, le, ri, d, pl_2, params);
	}
	LA6_: ;
}

N_NIMCALL(void, genNamedParamCall_9azKdI6vAayTOFEcJtCTo1g)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA op;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* pl;
	tyArray_j0xH32fTir0IvGY7WxQsQA T1_;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ;
	NI length;
	NimStringDesc* pat;
	NI start;
	memset((void*)(&op), 0, sizeof(op));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*ri).kindU.S6.sons->data[((NI) 0)], (&op));
	memset((void*)T1_, 0, sizeof(T1_));
	pl = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_538), T1_, 0);
	typ = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*(*ri).kindU.S6.sons->data[((NI) 0)]).typ, IL64(36028797019007248));
	length = sonsLen_qPWPHw7WgJeEVYUdcaRIig(ri);
	pat = (*(*(*(*ri).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym).loc.r).data;
	{
		NimStringDesc* T6_;
		if (!!(!((pat == NIM_NIL)))) goto LA4_;
		T6_ = (NimStringDesc*)0;
		T6_ = dollar__k53Ge4e9cDjc7y9c5uML7sPQ(TM_MQdRN7fpbG7rPm4JpVVAhA_539);
		internalError_5XY9cUy7hZmUusM38U9cYYdw(T6_);
	}
	LA4_: ;
	start = ((NI) 3);
	{
		NIM_BOOL T9_;
		T9_ = (NIM_BOOL)0;
		T9_ = contains_6e5MGL10HDAJ205lBYpWxw(pat, 32);
		if (!T9_) goto LA10_;
		start = ((NI) 1);
		add_cDalAhgBlDWoYHadkaqqxw(&pl, op.r);
		{
			tyArray_j0xH32fTir0IvGY7WxQsQA T16_;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T17_;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T18_;
			if (!(((NI) 1) < length)) goto LA14_;
			memset((void*)T16_, 0, sizeof(T16_));
			T17_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T17_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_260), T16_, 0);
			add_cDalAhgBlDWoYHadkaqqxw(&pl, T17_);
			T18_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T18_ = genArg_YfbN72A6Yf11a02lxdcEtA(p, (*ri).kindU.S6.sons->data[((NI) 1)], (*(*(*typ).n).kindU.S6.sons->data[((NI) 1)]).kindU.S4.sym, ri);
			add_cDalAhgBlDWoYHadkaqqxw(&pl, T18_);
			start = ((NI) 2);
		}
		LA14_: ;
	}
	goto LA7_;
	LA10_: ;
	{
		{
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T24_;
			tyArray_j0xH32fTir0IvGY7WxQsQA T25_;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T26_;
			if (!(((NI) 1) < length)) goto LA22_;
			T24_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T24_ = genArg_YfbN72A6Yf11a02lxdcEtA(p, (*ri).kindU.S6.sons->data[((NI) 1)], (*(*(*typ).n).kindU.S6.sons->data[((NI) 1)]).kindU.S4.sym, ri);
			add_cDalAhgBlDWoYHadkaqqxw(&pl, T24_);
			memset((void*)T25_, 0, sizeof(T25_));
			T26_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T26_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_89), T25_, 0);
			add_cDalAhgBlDWoYHadkaqqxw(&pl, T26_);
		}
		LA22_: ;
		add_cDalAhgBlDWoYHadkaqqxw(&pl, op.r);
		{
			tyArray_j0xH32fTir0IvGY7WxQsQA T31_;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T32_;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T33_;
			if (!(((NI) 2) < length)) goto LA29_;
			memset((void*)T31_, 0, sizeof(T31_));
			T32_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T32_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_260), T31_, 0);
			add_cDalAhgBlDWoYHadkaqqxw(&pl, T32_);
			T33_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T33_ = genArg_YfbN72A6Yf11a02lxdcEtA(p, (*ri).kindU.S6.sons->data[((NI) 2)], (*(*(*typ).n).kindU.S6.sons->data[((NI) 2)]).kindU.S4.sym, ri);
			add_cDalAhgBlDWoYHadkaqqxw(&pl, T33_);
		}
		LA29_: ;
	}
	LA7_: ;
	{
		NI i;
		NI colontmp_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)(length - ((NI) 1));
		res = start;
		{
			while (1) {
				tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* param;
				tyArray_j0xH32fTir0IvGY7WxQsQA T42_;
				tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T43_;
				tyArray_j0xH32fTir0IvGY7WxQsQA T44_;
				tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T45_;
				tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T46_;
				if (!(res <= colontmp_)) goto LA36;
				i = res;
				{
					NI T39_;
					T39_ = (NI)0;
					T39_ = sonsLen_gG7hUAX9cA629ahMLVL3xN4w(typ);
					if (!(T39_ <= i)) goto LA40_;
					internalError_MXmtqrCmYwtOPkDCFgUWKQ((*ri).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_540));
				}
				LA40_: ;
				param = (*(*(*typ).n).kindU.S6.sons->data[i]).kindU.S4.sym;
				memset((void*)T42_, 0, sizeof(T42_));
				T43_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
				T43_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_89), T42_, 0);
				add_cDalAhgBlDWoYHadkaqqxw(&pl, T43_);
				add_UJnSY21g59awhvSFBxJ9a9aPg(&pl, (*(*param).name).s);
				memset((void*)T44_, 0, sizeof(T44_));
				T45_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
				T45_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_260), T44_, 0);
				add_cDalAhgBlDWoYHadkaqqxw(&pl, T45_);
				T46_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
				T46_ = genArg_YfbN72A6Yf11a02lxdcEtA(p, (*ri).kindU.S6.sons->data[i], param, ri);
				add_cDalAhgBlDWoYHadkaqqxw(&pl, T46_);
				res += ((NI) 1);
			} LA36: ;
		}
	}
	{
		if (!!(((*typ).sons->data[((NI) 0)] == NIM_NIL))) goto LA49_;
		{
			NIM_BOOL T53_;
			T53_ = (NIM_BOOL)0;
			T53_ = isInvalidReturnType_FW3ctu15AiQkw2TcerUtOw((*typ).sons->data[((NI) 0)]);
			if (!T53_) goto LA54_;
			{
				NI T58_;
				tyArray_j0xH32fTir0IvGY7WxQsQA T61_;
				tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T62_;
				T58_ = (NI)0;
				T58_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(ri);
				if (!(((NI) 1) < T58_)) goto LA59_;
				memset((void*)T61_, 0, sizeof(T61_));
				T62_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
				T62_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_89), T61_, 0);
				add_cDalAhgBlDWoYHadkaqqxw(&pl, T62_);
			}
			LA59_: ;
			{
				tyArray_j0xH32fTir0IvGY7WxQsQA T71_;
				tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T72_;
				tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T73_;
				tyArray_j0xH32fTir0IvGY7WxQsQA T74_;
				tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T75_;
				if (!((3 &(1U<<((NU)((*d).k)&15U)))!=0)) goto LA65_;
				{
					if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA69_;
					getTemp_AAMs9asc5S78MBo8z9bTltgw(p, (*typ).sons->data[((NI) 0)], d, NIM_TRUE);
				}
				LA69_: ;
				memset((void*)T71_, 0, sizeof(T71_));
				T72_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
				T72_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_541), T71_, 0);
				add_cDalAhgBlDWoYHadkaqqxw(&pl, T72_);
				T73_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
				T73_ = addrLoc_YU9cO6gMkMct9bbzvzDM0Dzw_2((&(*d)));
				add_cDalAhgBlDWoYHadkaqqxw(&pl, T73_);
				memset((void*)T74_, 0, sizeof(T74_));
				T75_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
				T75_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_542), T74_, 0);
				add_cDalAhgBlDWoYHadkaqqxw(&pl, T75_);
				line_ALdLmqKb9cyvVSETUUyUh9aQ(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), pl);
			}
			goto LA63_;
			LA65_: ;
			{
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp;
				tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T77_;
				tyArray_j0xH32fTir0IvGY7WxQsQA T78_;
				tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T79_;
				memset((void*)(&tmp), 0, sizeof(tmp));
				getTemp_AAMs9asc5S78MBo8z9bTltgw(p, (*typ).sons->data[((NI) 0)], (&tmp), NIM_TRUE);
				T77_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
				T77_ = addrLoc_YU9cO6gMkMct9bbzvzDM0Dzw_2((&tmp));
				add_cDalAhgBlDWoYHadkaqqxw(&pl, T77_);
				memset((void*)T78_, 0, sizeof(T78_));
				T79_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
				T79_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_542), T78_, 0);
				add_cDalAhgBlDWoYHadkaqqxw(&pl, T79_);
				line_ALdLmqKb9cyvVSETUUyUh9aQ(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), pl);
				genAssignment_BtucsTdHw7orsXIL75hNVg(p, (&(*d)), (&tmp), 0);
			}
			LA63_: ;
		}
		goto LA51_;
		LA54_: ;
		{
			tyArray_j0xH32fTir0IvGY7WxQsQA T81_;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T82_;
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA list;
			memset((void*)T81_, 0, sizeof(T81_));
			T82_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T82_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_543), T81_, 0);
			add_cDalAhgBlDWoYHadkaqqxw(&pl, T82_);
			{
				if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA85_;
				getTemp_AAMs9asc5S78MBo8z9bTltgw(p, (*typ).sons->data[((NI) 0)], d, NIM_FALSE);
			}
			LA85_: ;
			memset((void*)(&list), 0, sizeof(list));
			initLoc_kfK3bi0HoV6YeIhyJNMmZw((&list), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 9), NIM_NIL, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
			list.r = pl;
			genAssignment_BtucsTdHw7orsXIL75hNVg(p, (&(*d)), (&list), 0);
		}
		LA51_: ;
	}
	goto LA47_;
	LA49_: ;
	{
		tyArray_j0xH32fTir0IvGY7WxQsQA T88_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T89_;
		memset((void*)T88_, 0, sizeof(T88_));
		T89_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T89_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_542), T88_, 0);
		add_cDalAhgBlDWoYHadkaqqxw(&pl, T89_);
		line_ALdLmqKb9cyvVSETUUyUh9aQ(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), pl);
	}
	LA47_: ;
}

N_NIMCALL(void, genPrefixCall_HKkL9adNEIcNHeJ0iZ6uitg_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA op;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* params;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ;
	NI length;
	memset((void*)(&op), 0, sizeof(op));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*ri).kindU.S6.sons->data[((NI) 0)], (&op));
	params = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	typ = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*(*ri).kindU.S6.sons->data[((NI) 0)]).typ, IL64(36028797019007248));
	length = sonsLen_qPWPHw7WgJeEVYUdcaRIig(ri);
	{
		NI i;
		NI colontmp_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)(length - ((NI) 1));
		res = ((NI) 1);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA3;
				i = res;
				{
					NI T6_;
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* paramType;
					T6_ = (NI)0;
					T6_ = sonsLen_gG7hUAX9cA629ahMLVL3xN4w(typ);
					if (!(i < T6_)) goto LA7_;
					paramType = (*(*typ).n).kindU.S6.sons->data[i];
					{
						NIM_BOOL T11_;
						tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T20_;
						T11_ = (NIM_BOOL)0;
						T11_ = isCompileTimeOnly_UBQknCC9aYWKMNMK4dmeTlQcgen((*paramType).typ);
						if (!!(T11_)) goto LA12_;
						{
							tyArray_j0xH32fTir0IvGY7WxQsQA T18_;
							tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T19_;
							if (!!((params == NIM_NIL))) goto LA16_;
							memset((void*)T18_, 0, sizeof(T18_));
							T19_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
							T19_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_119), T18_, 0);
							add_cDalAhgBlDWoYHadkaqqxw(&params, T19_);
						}
						LA16_: ;
						T20_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
						T20_ = genArg_YfbN72A6Yf11a02lxdcEtA(p, (*ri).kindU.S6.sons->data[i], (*paramType).kindU.S4.sym, ri);
						add_cDalAhgBlDWoYHadkaqqxw(&params, T20_);
					}
					LA12_: ;
				}
				goto LA4_;
				LA7_: ;
				{
					tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T28_;
					{
						tyArray_j0xH32fTir0IvGY7WxQsQA T26_;
						tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T27_;
						if (!!((params == NIM_NIL))) goto LA24_;
						memset((void*)T26_, 0, sizeof(T26_));
						T27_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
						T27_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_119), T26_, 0);
						add_cDalAhgBlDWoYHadkaqqxw(&params, T27_);
					}
					LA24_: ;
					T28_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
					T28_ = genArgNoParam_9ay3JbWaSQA4xkrI8svQaZQ_7(p, (*ri).kindU.S6.sons->data[i]);
					add_cDalAhgBlDWoYHadkaqqxw(&params, T28_);
				}
				LA4_: ;
				res += ((NI) 1);
			} LA3: ;
		}
	}
	fixupCall_4ksWLEEeUaq8dr0M48R85w(p, le, ri, d, op.r, params);
}

static N_INLINE(void, postStmtActions_bNG6Lz1b9a5TVMLjP9cTlLjwcgen)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T1_;
	T1_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
	T1_ = s_OUiru83H7n4zC9cnXN2KbrQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	add_cDalAhgBlDWoYHadkaqqxw(T1_, (*(*p).module).injectStmt);
}

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

N_NIMCALL(void, genReset_UtJx89cn0a8CNSWWmaj6raA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyArray_YB3ke0PEM9bcAj9bAsA619bJA T1_;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T2_;
	memset((void*)(&a), 0, sizeof(a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n).kindU.S6.sons->data[((NI) 1)], (&a));
	memset((void*)T1_, 0, sizeof(T1_));
	T1_[0] = addrLoc_YU9cO6gMkMct9bbzvzDM0Dzw_2((&a));
	T2_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
	T2_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA(a.t, 8388608);
	T1_[1] = genTypeInfo_x7sD9aHIDrXyWVDTVp9bclvA((*p).module, T2_);
	linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_528), T1_, 2);
}

N_NIMCALL(void, genEcho_UtJx89cn0a8CNSWWmaj6raA_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* args;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	{
		NimStringDesc* T5_;
		if (!!(((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 41)))) goto LA3_;
		T5_ = (NimStringDesc*)0;
		T5_ = dollar__k53Ge4e9cDjc7y9c5uML7sPQ(TM_MQdRN7fpbG7rPm4JpVVAhA_544);
		internalError_5XY9cUy7hZmUusM38U9cYYdw(T5_);
	}
	LA3_: ;
	args = NIM_NIL;
	memset((void*)(&a), 0, sizeof(a));
	{
		NI i;
		NI colontmp_;
		NI T7_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T7_ = (NI)0;
		T7_ = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(n);
		colontmp_ = (NI)(T7_ - ((NI) 1));
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA9;
				i = res;
				{
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T12_;
					T12_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
					T12_ = skipConv_6rsSLwtlU9c53a6w69be5JlQ((*n).kindU.S6.sons->data[i]);
					if (!((*T12_).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA13_;
					add_UJnSY21g59awhvSFBxJ9a9aPg(&args, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_545));
				}
				goto LA10_;
				LA13_: ;
				{
					tyArray_ZqT9cbUNKsl55MABiLlPDxA T16_;
					initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n).kindU.S6.sons->data[i], (&a));
					memset((void*)T16_, 0, sizeof(T16_));
					T16_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
					addf_8UUGW4xtgpag0J4uEnVLuQ(&args, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_546), T16_, 1);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA9: ;
		}
	}
	{
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T21_;
		if (!(targetOS_PyF9cBkuAlI8I7Y7KiZHIYQ == ((tyEnum_TSystemOS_s7Mlr1t66SUqP6BKJMXLaQ) 24))) goto LA19_;
		includeHeader_PtTSTz0wtuSjGW8vGXThOQ((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_547));
		memset((void*)T21_, 0, sizeof(T21_));
		T21_[0] = args;
		linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_548), T21_, 1);
	}
	goto LA17_;
	LA19_: ;
	{
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T23_;
		NimStringDesc* T24_;
		NI T25_;
		NimStringDesc* T26_;
		tyArray_j0xH32fTir0IvGY7WxQsQA T27_;
		includeHeader_PtTSTz0wtuSjGW8vGXThOQ((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_549));
		memset((void*)T23_, 0, sizeof(T23_));
		T24_ = (NimStringDesc*)0;
		T25_ = (NI)0;
		T25_ = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(n);
		T26_ = (NimStringDesc*)0;
		T26_ = nsuRepeatStr(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_551), ((NI) (T25_)));
		T24_ = rawNewString(T26_->Sup.len + tnl_Gp8EwkcsAP9am1klnCCHM4w->Sup.len + 0);
appendString(T24_, T26_);
appendString(T24_, tnl_Gp8EwkcsAP9am1klnCCHM4w);
		T23_[0] = makeCString_c9cmJUs9bNfunHyoffjBZxyg(T24_);
		T23_[1] = args;
		linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_550), T23_, 2);
		memset((void*)T27_, 0, sizeof(T27_));
		linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_552), T27_, 0);
	}
	LA17_: ;
}

N_NIMCALL(void, genSeqConstr_re1pwmyeR32ikwnOC3vvzQ_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA arr;
	NI T5_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T6_;
	memset((void*)(&arr), 0, sizeof(arr));
	{
		if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA3_;
		getTemp_AAMs9asc5S78MBo8z9bTltgw(p, (*t).typ, d, NIM_FALSE);
	}
	LA3_: ;
	T5_ = (NI)0;
	T5_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(t);
	T6_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T6_ = intLiteral_cVf7QPXGcGBUB7P9cfyCtRw(((NI64) (T5_)));
	genNewSeqAux_9cWj0Z4zRqFZJHYjvDQIU5A(p, (&(*d)), T6_);
	{
		NI i;
		NI colontmp_;
		NI T8_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T8_ = (NI)0;
		T8_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(t);
		colontmp_ = (NI)(T8_ - ((NI) 1));
		res = ((NI) 0);
		{
			while (1) {
				tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T11_;
				tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T12_;
				tyArray_YB3ke0PEM9bcAj9bAsA619bJA T13_;
				if (!(res <= colontmp_)) goto LA10;
				i = res;
				T11_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
				T11_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*t).typ, IL64(36028797019007248));
				T12_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
				T12_ = elemType_46gPaVDDGhiU69b2oKDJZuA_2(T11_);
				initLoc_kfK3bi0HoV6YeIhyJNMmZw((&arr), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), T12_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 3));
				memset((void*)T13_, 0, sizeof(T13_));
				T13_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&(*d)));
				T13_[1] = intLiteral_cVf7QPXGcGBUB7P9cfyCtRw(((NI64) (i)));
				arr.r = ropecg_ail3PxtNU17Ini4A1vCFoA(NIM_NIL, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_202), T13_, 2);
				arr.s = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 3);
				expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*t).kindU.S6.sons->data[i], (&arr));
				res += ((NI) 1);
			} LA10: ;
		}
	}
	gcUsage_Pb60oErhArqGlPPn4s2Zow(t);
}

N_NIMCALL(void, genArrToSeq_re1pwmyeR32ikwnOC3vvzQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA elem;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA arr;
	NI L;
	NI64 T9_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T10_;
{	memset((void*)(&elem), 0, sizeof(elem));
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&arr), 0, sizeof(arr));
	{
		if (!((*(*t).kindU.S6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 41))) goto LA3_;
		asgnRefNoCycle((void**) (&(*(*t).kindU.S6.sons->data[((NI) 1)]).typ), (*t).typ);
		genSeqConstr_re1pwmyeR32ikwnOC3vvzQ_2(p, (*t).kindU.S6.sons->data[((NI) 1)], d);
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA7_;
		getTemp_AAMs9asc5S78MBo8z9bTltgw(p, (*t).typ, d, NIM_FALSE);
	}
	LA7_: ;
	T9_ = (NI64)0;
	T9_ = lengthOrd_HUiBYxvKiECXCv8BzQNheg_3((*(*t).kindU.S6.sons->data[((NI) 1)]).typ);
	L = ((NI) (T9_));
	T10_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T10_ = intLiteral_cVf7QPXGcGBUB7P9cfyCtRw(((NI64) (L)));
	genNewSeqAux_9cWj0Z4zRqFZJHYjvDQIU5A(p, (&(*d)), T10_);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*t).kindU.S6.sons->data[((NI) 1)], (&a));
	{
		NI i;
		NI colontmp_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)(L - ((NI) 1));
		res = ((NI) 0);
		{
			while (1) {
				tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T14_;
				tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T15_;
				tyArray_YB3ke0PEM9bcAj9bAsA619bJA T16_;
				tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T17_;
				tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T18_;
				tyArray_YB3ke0PEM9bcAj9bAsA619bJA T19_;
				if (!(res <= colontmp_)) goto LA13;
				i = res;
				T14_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
				T14_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*t).typ, IL64(36028797019007248));
				T15_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
				T15_ = elemType_46gPaVDDGhiU69b2oKDJZuA_2(T14_);
				initLoc_kfK3bi0HoV6YeIhyJNMmZw((&elem), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), T15_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 3));
				memset((void*)T16_, 0, sizeof(T16_));
				T16_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&(*d)));
				T16_[1] = intLiteral_cVf7QPXGcGBUB7P9cfyCtRw(((NI64) (i)));
				elem.r = ropecg_ail3PxtNU17Ini4A1vCFoA(NIM_NIL, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_202), T16_, 2);
				elem.s = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 3);
				T17_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
				T17_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*(*t).kindU.S6.sons->data[((NI) 1)]).typ, IL64(36028797019007248));
				T18_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
				T18_ = elemType_46gPaVDDGhiU69b2oKDJZuA_2(T17_);
				initLoc_kfK3bi0HoV6YeIhyJNMmZw((&arr), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), T18_, a.s);
				memset((void*)T19_, 0, sizeof(T19_));
				T19_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
				T19_[1] = intLiteral_cVf7QPXGcGBUB7P9cfyCtRw(((NI64) (i)));
				arr.r = ropecg_ail3PxtNU17Ini4A1vCFoA(NIM_NIL, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_151), T19_, 2);
				genAssignment_BtucsTdHw7orsXIL75hNVg(p, (&elem), (&arr), 3);
				res += ((NI) 1);
			} LA13: ;
		}
	}
	}BeforeRet_: ;
}

N_NIMCALL(void, genDeepCopy_jdslQ8TsNpkTt8SvBLJjEA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* dest, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* src) {
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* ty;
	ty = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*dest).t, IL64(36028797028444432));
	switch ((*ty).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
	{
		tyArray_1UwZ4PfBDZcImViZT8dk0w T2_;
		memset((void*)T2_, 0, sizeof(T2_));
		T2_[0] = addrLoc_YU9cO6gMkMct9bbzvzDM0Dzw_2(dest);
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp;
			if (!((*src).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6))) goto LA5_;
			memset((void*)(&tmp), 0, sizeof(tmp));
			getTemp_AAMs9asc5S78MBo8z9bTltgw(p, (*src).t, (&tmp), NIM_FALSE);
			genAssignment_BtucsTdHw7orsXIL75hNVg(p, (&tmp), src, 0);
			T2_[1] = addrLoc_YU9cO6gMkMct9bbzvzDM0Dzw_2((&tmp));
		}
		goto LA3_;
		LA5_: ;
		{
			T2_[1] = addrLoc_YU9cO6gMkMct9bbzvzDM0Dzw_2(src);
		}
		LA3_: ;
		T2_[2] = genTypeInfo_x7sD9aHIDrXyWVDTVp9bclvA((*p).module, (*dest).t);
		linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_553), T2_, 3);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
	{
		tyArray_1UwZ4PfBDZcImViZT8dk0w T9_;
		memset((void*)T9_, 0, sizeof(T9_));
		T9_[0] = addrLoc_YU9cO6gMkMct9bbzvzDM0Dzw_2(dest);
		T9_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(src);
		T9_[2] = genTypeInfo_x7sD9aHIDrXyWVDTVp9bclvA((*p).module, (*dest).t);
		linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_554), T9_, 3);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48):
	{
		tyArray_1UwZ4PfBDZcImViZT8dk0w T11_;
		memset((void*)T11_, 0, sizeof(T11_));
		T11_[0] = addrLoc_YU9cO6gMkMct9bbzvzDM0Dzw_2(dest);
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp_2;
			if (!((*src).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6))) goto LA14_;
			memset((void*)(&tmp_2), 0, sizeof(tmp_2));
			getTemp_AAMs9asc5S78MBo8z9bTltgw(p, (*src).t, (&tmp_2), NIM_FALSE);
			genAssignment_BtucsTdHw7orsXIL75hNVg(p, (&tmp_2), src, 0);
			T11_[1] = addrLoc_YU9cO6gMkMct9bbzvzDM0Dzw_2((&tmp_2));
		}
		goto LA12_;
		LA14_: ;
		{
			T11_[1] = addrLoc_YU9cO6gMkMct9bbzvzDM0Dzw_2(src);
		}
		LA12_: ;
		T11_[2] = genTypeInfo_x7sD9aHIDrXyWVDTVp9bclvA((*p).module, (*dest).t);
		linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_555), T11_, 3);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 19):
	{
		{
			tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w T20_;
			tyArray_1UwZ4PfBDZcImViZT8dk0w T23_;
			NI64 T24_;
			T20_ = (tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w)0;
			T20_ = mapType_xD9bGC83PAN0OvetVlj1cZQ(ty);
			if (!(T20_ == ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 17))) goto LA21_;
			useStringh_OShE9cXECylewqZ7ZpW2l0w((*p).module);
			memset((void*)T23_, 0, sizeof(T23_));
			T23_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(dest);
			T23_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(src);
			T24_ = (NI64)0;
			T24_ = getSize_spMpEAO8ubfQavMigOxQdA((*dest).t);
			T23_[2] = rope_pEztpD6TFe5jk3aCrOSACA(T24_);
			linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_284), T23_, 3);
		}
		goto LA18_;
		LA21_: ;
		{
			tyArray_YB3ke0PEM9bcAj9bAsA619bJA T26_;
			memset((void*)T26_, 0, sizeof(T26_));
			T26_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(dest);
			T26_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(src);
			linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_131), T26_, 2);
		}
		LA18_: ;
	}
	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):
	{
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T28_;
		memset((void*)T28_, 0, sizeof(T28_));
		T28_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(dest);
		T28_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(src);
		linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_131), T28_, 2);
	}
	break;
	default:
	{
		NimStringDesc* T30_;
		T30_ = (NimStringDesc*)0;
		T30_ = rawNewString(reprEnum((NI)(*ty).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len + 13);
appendString(T30_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_556));
appendString(T30_, reprEnum((NI)(*ty).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
		internalError_5XY9cUy7hZmUusM38U9cYYdw(T30_);
	}
	break;
	}
}

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) 127):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 126):
	{
		genAndOr_yX5yxw6c9agMF4ZvIHKAZvg(p, e, d, op);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 99) ... ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 117):
	{
		unaryArith_TU9cJnldbmGa9bZDxaR6I4tg_2(p, e, d, op);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 96) ... ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 98):
	{
		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) 93):
	{
		binaryArith_TU9cJnldbmGa9bZDxaR6I4tg_3(p, e, d, op);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 95):
	{
		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) 149):
	{
		genRepr_BKdMcfvryaJLplX0oFPcAQ_2(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 259):
	{
		genGetTypeInfo_BKdMcfvryaJLplX0oFPcAQ_3(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 156):
	{
		genSwap_BKdMcfvryaJLplX0oFPcAQ_4(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 25):
	{
		{
			if (!!((((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 5))&31U)))!=0))) goto LA14_;
			unaryExpr_U2agx9aO3WToOTIqL9baXQog(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_412));
		}
		goto LA12_;
		LA14_: ;
		{
			unaryExpr_U2agx9aO3WToOTIqL9baXQog(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_413));
		}
		LA12_: ;
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 26):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 27):
	{
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* underlying;
		underlying = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*(*e).kindU.S6.sons->data[((NI) 1)]).typ, 9439248);
		{
			NIM_BOOL T20_;
			T20_ = (NIM_BOOL)0;
			T20_ = !((((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 5))&31U)))!=0));
			if (T20_) goto LA21_;
			T20_ = ((IL64(34084860461056) &((NU64)1<<((NU)((*underlying).kind)&63U)))!=0);
			LA21_: ;
			if (!T20_) goto LA22_;
			binaryStmt_U2agx9aO3WToOTIqL9baXQog_2(p, e, d, opr_O7uP3jzNu3e9auWdRdRa9cJA[(op)- 26]);
		}
		goto LA18_;
		LA22_: ;
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
			tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* ranged;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* res;
			NimStringDesc* T25_;
			tyArray_YB3ke0PEM9bcAj9bAsA619bJA T31_;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T32_;
			memset((void*)(&a), 0, sizeof(a));
			memset((void*)(&b), 0, sizeof(b));
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 1)], (&a));
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 2)], (&b));
			ranged = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*(*e).kindU.S6.sons->data[((NI) 1)]).typ, 8390672);
			T25_ = (NimStringDesc*)0;
			{
				if (!((*underlying).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 35))) goto LA28_;
				T25_ = copyString(fun64_fjrbodMqcYB619bEDCGfJsA[(op)- 26]);
			}
			goto LA26_;
			LA28_: ;
			{
				T25_ = copyString(fun_gOe15RXeJ2duD5In6NwLXA[(op)- 26]);
			}
			LA26_: ;
			res = binaryArithOverflowRaw_qFXK5QXHFWRf9b28VNBzWlQ(p, ranged, (&a), (&b), T25_);
			memset((void*)T31_, 0, sizeof(T31_));
			T31_[0] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, ranged);
			T31_[1] = res;
			T32_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T32_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_397), T31_, 2);
			putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, (&a), ranged, T32_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		LA18_: ;
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 138):
	{
		genStrConcat_BKdMcfvryaJLplX0oFPcAQ_5(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 144):
	{
		binaryStmt_U2agx9aO3WToOTIqL9baXQog_2(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_421));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 145):
	{
		genStrAppend_BKdMcfvryaJLplX0oFPcAQ_6(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 146):
	{
		genSeqElemAppend_BKdMcfvryaJLplX0oFPcAQ_7(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 128):
	{
		genStrEquals_BKdMcfvryaJLplX0oFPcAQ_8(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 129):
	{
		binaryExpr_U2agx9aO3WToOTIqL9baXQog_3(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_428));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 130):
	{
		binaryExpr_U2agx9aO3WToOTIqL9baXQog_3(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_429));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 157):
	{
		genIsNil_BKdMcfvryaJLplX0oFPcAQ_9(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 120):
	{
		genDollar_pXcuuf9c1RIGGsEW9a8cUntw(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_432));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 121):
	{
		genDollar_pXcuuf9c1RIGGsEW9a8cUntw(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_433));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 119):
	{
		genDollar_pXcuuf9c1RIGGsEW9a8cUntw(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_434));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 118):
	{
		genDollar_pXcuuf9c1RIGGsEW9a8cUntw(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_435));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 122):
	{
		genDollar_pXcuuf9c1RIGGsEW9a8cUntw(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_436));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 123):
	{
		genDollar_pXcuuf9c1RIGGsEW9a8cUntw(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_437));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 124):
	{
		expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*e).kindU.S6.sons->data[((NI) 1)], d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 125):
	{
		genRepr_BKdMcfvryaJLplX0oFPcAQ_2(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 12):
	{
		genOf_8mAL9ckajemzgfLPfeZVNoQ_2(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 29):
	{
		genNew_X9cSqNhqEboci9cdmwBMNcBw(p, e);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 30):
	{
		genNewFinalize_X9cSqNhqEboci9cdmwBMNcBw_2(p, e);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 31):
	{
		genNewSeq_X9cSqNhqEboci9cdmwBMNcBw_3(p, e);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 32):
	{
		genNewSeqOfCap_BKdMcfvryaJLplX0oFPcAQ_10(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 9):
	{
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t;
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T55_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T56_;
		t = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*(*e).kindU.S6.sons->data[((NI) 1)]).typ, 256);
		memset((void*)T55_, 0, sizeof(T55_));
		T55_[0] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, t);
		T56_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T56_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_455), T55_, 1);
		putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*e).typ, T56_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 42):
	{
		genSomeCast_BKdMcfvryaJLplX0oFPcAQ_11(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 28):
	{
		genOrd_BKdMcfvryaJLplX0oFPcAQ_12(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 35):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 8):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 34):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 36):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 33):
	{
		genArrayLen_TU9cJnldbmGa9bZDxaR6I4tg_4(p, e, d, op);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 37):
	{
		{
			NIM_BOOL T63_;
			T63_ = (NIM_BOOL)0;
			T63_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
			if (T63_) goto LA64_;
			T63_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA64_: ;
			if (!!(T63_)) goto LA65_;
			unaryExpr_U2agx9aO3WToOTIqL9baXQog(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_471));
		}
		goto LA61_;
		LA65_: ;
		{
			unaryExpr_U2agx9aO3WToOTIqL9baXQog(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_472));
		}
		LA61_: ;
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 38):
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_2;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp;
		NimStringDesc* frmt;
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T76_;
		memset((void*)(&a_2), 0, sizeof(a_2));
		memset((void*)(&tmp), 0, sizeof(tmp));
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 1)], (&a_2));
		getIntTemp_SrOtkNNSJNR1CbG2n3nFcg(p, (&tmp));
		frmt = (NimStringDesc*)0;
		{
			NIM_BOOL T71_;
			T71_ = (NIM_BOOL)0;
			T71_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
			if (T71_) goto LA72_;
			T71_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA72_: ;
			if (!!(T71_)) goto LA73_;
			frmt = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_473));
		}
		goto LA69_;
		LA73_: ;
		{
			frmt = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_474));
		}
		LA69_: ;
		memset((void*)T76_, 0, sizeof(T76_));
		T76_[0] = tmp.r;
		T76_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a_2));
		lineCg_Z6xIOvD09aMfYvHnc82A86A_2(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), frmt, T76_, 2);
		putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*e).typ, tmp.r, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 43):
	{
		unaryStmt_U2agx9aO3WToOTIqL9baXQog_5(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_476));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 44):
	{
		unaryStmt_U2agx9aO3WToOTIqL9baXQog_5(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_477));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 151):
	{
		genSetLengthStr_BKdMcfvryaJLplX0oFPcAQ_13(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 152):
	{
		genSetLengthSeq_BKdMcfvryaJLplX0oFPcAQ_14(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 39):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 40):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 41):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 133):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 132):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 131):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 134):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 135):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 136):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 148):
	{
		genSetOp_TU9cJnldbmGa9bZDxaR6I4tg_5(p, e, d, op);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 161):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 162):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 159):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 160):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 150):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 163):
	{
		tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* opr;
		opr = (*(*e).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym;
		{
			NimStringDesc* T87_;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T88_;
			if (!!((((*opr).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 3))&15U)))!=0))) goto LA85_;
			T87_ = (NimStringDesc*)0;
			T87_ = dollar__PstQrDfj9a7hGXM74AN2wzg((*opr).loc.r);
			T88_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T88_ = cgsym_LDQwSdTgGBvWUKfBZpHXDw((*p).module, T87_);
			T88_;
		}
		LA85_: ;
		genCall_BKdMcfvryaJLplX0oFPcAQ_16(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 164):
	{
		genReset_UtJx89cn0a8CNSWWmaj6raA(p, e);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 17):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T91_;
		T91_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		T91_ = skipConv_6rsSLwtlU9c53a6w69be5JlQ((*e).kindU.S6.sons->data[((NI) 1)]);
		genEcho_UtJx89cn0a8CNSWWmaj6raA_2(p, T91_);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 158):
	{
		genArrToSeq_re1pwmyeR32ikwnOC3vvzQ(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 223) ... ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 257):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 19) ... ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 24):
	{
		localError_VpilfPWbplGz6ny7O9cfr2g((*e).info, ((tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw) 231), (*(*(*(*e).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym).name).s);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 208):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n;
		n = wrapProcForSpawn_6fN2V7nvsTzAH5EnR9bU9aUw((*(*p).module).module, e, (*e).typ, NIM_NIL, NIM_NIL);
		expr_8mAL9ckajemzgfLPfeZVNoQ(p, n, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 155):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n_2;
		n_2 = liftParallel_1lNyAXGQxirJBPHWmFXY8w((*(*p).module).module, e);
		expr_8mAL9ckajemzgfLPfeZVNoQ(p, n_2, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 209):
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_3;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b_2;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x;
		memset((void*)(&a_3), 0, sizeof(a_3));
		memset((void*)(&b_2), 0, sizeof(b_2));
		{
			if (!((*(*e).kindU.S6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 63) || (*(*e).kindU.S6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64))) goto LA99_;
			x = (*(*e).kindU.S6.sons->data[((NI) 1)]).kindU.S6.sons->data[((NI) 0)];
		}
		goto LA97_;
		LA99_: ;
		{
			x = (*e).kindU.S6.sons->data[((NI) 1)];
		}
		LA97_: ;
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, x, (&a_3));
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 2)], (&b_2));
		genDeepCopy_jdslQ8TsNpkTt8SvBLJjEA(p, (&a_3), (&b_2));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 140):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 94):
	{
		genCall_BKdMcfvryaJLplX0oFPcAQ_16(p, e, d);
	}
	break;
	default:
	{
		NimStringDesc* T104_;
		T104_ = (NimStringDesc*)0;
		T104_ = rawNewString(reprEnum((NI)op, (&NTI_shZhZOdbVC5nnFvcXQAImg_))->Sup.len + 14);
appendString(T104_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_557));
appendString(T104_, reprEnum((NI)op, (&NTI_shZhZOdbVC5nnFvcXQAImg_)));
		internalError_MXmtqrCmYwtOPkDCFgUWKQ((*e).info, T104_);
	}
	break;
	}
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genSetNode_9ay3JbWaSQA4xkrI8svQaZQ_8)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	tySequence_pxbIse2JUQkJU0n9blV9bY5g* cs;
	NI size;
	NI64 T1_;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	cs = (tySequence_pxbIse2JUQkJU0n9blV9bY5g*)0;
	T1_ = (NI64)0;
	T1_ = getSize_spMpEAO8ubfQavMigOxQdA((*n).typ);
	size = ((NI) (T1_));
	toBitSet_Bgj7mr9bCmLIhOzddHDtD0A(n, (&cs));
	{
		NI id;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T6_;
		if (!(((NI) 8) < size)) goto LA4_;
		id = nodeTableTestOrSet_tWmKJP7glBWLCISQFGGk2Q((&(*(*p).module).dataCache), n, ((NI) ((*(*p).module).labels)));
		T6_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T6_ = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (id)));
		result = amp__FyliSLNPyN7IibfEAQfpRA((*(*p).module).tmpBase, T6_);
		{
			tyArray_1UwZ4PfBDZcImViZT8dk0w T11_;
			if (!(id == ((NI) ((*(*p).module).labels)))) goto LA9_;
			(*(*p).module).labels += ((NI) 1);
			memset((void*)T11_, 0, sizeof(T11_));
			T11_[0] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, (*n).typ);
			T11_[1] = result;
			T11_[2] = genRawSetData_81w5oBz4Cdshqc3jTY2ACQ(cs, size);
			addf_8UUGW4xtgpag0J4uEnVLuQ(&(*(*p).module).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_558), T11_, 3);
		}
		LA9_: ;
	}
	goto LA2_;
	LA4_: ;
	{
		result = genRawSetData_81w5oBz4Cdshqc3jTY2ACQ(cs, size);
	}
	LA2_: ;
	return result;
}

N_NIMCALL(void, genSetConstr_BKdMcfvryaJLplX0oFPcAQ_17)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA idx;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&b), 0, sizeof(b));
	memset((void*)(&idx), 0, sizeof(idx));
	{
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T5_;
		if (!(((*e).flags &(1U<<((NU)(((tyEnum_TNodeFlag_jyh9acXHkhZANSSvPIY7ZLg) 4))&31U)))!=0)) goto LA3_;
		T5_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T5_ = genSetNode_9ay3JbWaSQA4xkrI8svQaZQ_8(p, e);
		putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*e).typ, T5_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	goto LA1_;
	LA3_: ;
	{
		{
			if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA9_;
			getTemp_AAMs9asc5S78MBo8z9bTltgw(p, (*e).typ, d, NIM_FALSE);
		}
		LA9_: ;
		{
			NI64 T13_;
			tyArray_ZqT9cbUNKsl55MABiLlPDxA T16_;
			T13_ = (NI64)0;
			T13_ = getSize_spMpEAO8ubfQavMigOxQdA((*e).typ);
			if (!(IL64(8) < T13_)) goto LA14_;
			useStringh_OShE9cXECylewqZ7ZpW2l0w((*p).module);
			memset((void*)T16_, 0, sizeof(T16_));
			T16_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&(*d)));
			lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_559), T16_, 1);
			{
				NI i;
				NI colontmp_;
				NI T18_;
				NI res;
				i = (NI)0;
				colontmp_ = (NI)0;
				T18_ = (NI)0;
				T18_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(e);
				colontmp_ = (NI)(T18_ - ((NI) 1));
				res = ((NI) 0);
				{
					while (1) {
						if (!(res <= colontmp_)) goto LA20;
						i = res;
						{
							tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T25_;
							tyArray_EcJXtY9cAr9bpvybuP0XpjyQ T26_;
							if (!((*(*e).kindU.S6.sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA23_;
							T25_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
							T25_ = getSysType_dewjtBqyEbcVGQRaQFtDAw(((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31));
							getTemp_AAMs9asc5S78MBo8z9bTltgw(p, T25_, (&idx), NIM_FALSE);
							initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*(*e).kindU.S6.sons->data[i]).kindU.S6.sons->data[((NI) 0)], (&a));
							initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*(*e).kindU.S6.sons->data[i]).kindU.S6.sons->data[((NI) 1)], (&b));
							memset((void*)T26_, 0, sizeof(T26_));
							T26_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&idx));
							T26_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&(*d)));
							T26_[2] = rdSetElemLoc_79a4X3Gjt6AnePag4WNxykQ((&a), (*e).typ);
							T26_[3] = rdSetElemLoc_79a4X3Gjt6AnePag4WNxykQ((&b), (*e).typ);
							lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_560), T26_, 4);
						}
						goto LA21_;
						LA23_: ;
						{
							tyArray_YB3ke0PEM9bcAj9bAsA619bJA T28_;
							initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[i], (&a));
							memset((void*)T28_, 0, sizeof(T28_));
							T28_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&(*d)));
							T28_[1] = rdSetElemLoc_79a4X3Gjt6AnePag4WNxykQ((&a), (*e).typ);
							lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_561), T28_, 2);
						}
						LA21_: ;
						res += ((NI) 1);
					} LA20: ;
				}
			}
		}
		goto LA11_;
		LA14_: ;
		{
			NimStringDesc* ts;
			NimStringDesc* T30_;
			NI64 T31_;
			NimStringDesc* T32_;
			tyArray_ZqT9cbUNKsl55MABiLlPDxA T33_;
			T30_ = (NimStringDesc*)0;
			T31_ = (NI64)0;
			T31_ = getSize_spMpEAO8ubfQavMigOxQdA((*e).typ);
			T32_ = (NimStringDesc*)0;
			T32_ = nimInt64ToStr((NI64)(T31_ * IL64(8)));
			T30_ = rawNewString(T32_->Sup.len + 2);
appendString(T30_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_44));
appendString(T30_, T32_);
			ts = T30_;
			memset((void*)T33_, 0, sizeof(T33_));
			T33_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&(*d)));
			lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_526), T33_, 1);
			{
				NI i_2;
				NI colontmp__2;
				NI T35_;
				NI res_2;
				i_2 = (NI)0;
				colontmp__2 = (NI)0;
				T35_ = (NI)0;
				T35_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(e);
				colontmp__2 = (NI)(T35_ - ((NI) 1));
				res_2 = ((NI) 0);
				{
					while (1) {
						if (!(res_2 <= colontmp__2)) goto LA37;
						i_2 = res_2;
						{
							tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T42_;
							NimStringDesc* T43_;
							tyArray_EcJXtY9cAr9bpvybuP0XpjyQ T44_;
							if (!((*(*e).kindU.S6.sons->data[i_2]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA40_;
							T42_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
							T42_ = getSysType_dewjtBqyEbcVGQRaQFtDAw(((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31));
							getTemp_AAMs9asc5S78MBo8z9bTltgw(p, T42_, (&idx), NIM_FALSE);
							initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*(*e).kindU.S6.sons->data[i_2]).kindU.S6.sons->data[((NI) 0)], (&a));
							initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*(*e).kindU.S6.sons->data[i_2]).kindU.S6.sons->data[((NI) 1)], (&b));
							T43_ = (NimStringDesc*)0;
							T43_ = rawNewString(ts->Sup.len + ts->Sup.len + 68);
appendString(T43_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_562));
appendString(T43_, ts);
appendString(T43_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_563));
appendString(T43_, ts);
appendString(T43_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_487));
							memset((void*)T44_, 0, sizeof(T44_));
							T44_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&idx));
							T44_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&(*d)));
							T44_[2] = rdSetElemLoc_79a4X3Gjt6AnePag4WNxykQ((&a), (*e).typ);
							T44_[3] = rdSetElemLoc_79a4X3Gjt6AnePag4WNxykQ((&b), (*e).typ);
							lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), T43_, T44_, 4);
						}
						goto LA38_;
						LA40_: ;
						{
							NimStringDesc* T46_;
							tyArray_YB3ke0PEM9bcAj9bAsA619bJA T47_;
							initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[i_2], (&a));
							T46_ = (NimStringDesc*)0;
							T46_ = rawNewString(ts->Sup.len + ts->Sup.len + 36);
appendString(T46_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_564));
appendString(T46_, ts);
appendString(T46_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_565));
appendString(T46_, ts);
appendString(T46_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_487));
							memset((void*)T47_, 0, sizeof(T47_));
							T47_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&(*d)));
							T47_[1] = rdSetElemLoc_79a4X3Gjt6AnePag4WNxykQ((&a), (*e).typ);
							lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), T46_, T47_, 2);
						}
						LA38_: ;
						res_2 += ((NI) 1);
					} LA37: ;
				}
			}
		}
		LA11_: ;
	}
	LA1_: ;
}

N_NIMCALL(void, exprComplexConst_8mAL9ckajemzgfLPfeZVNoQ_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T1_;
	NI id;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* tmp;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T2_;
	t = (*n).typ;
	T1_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T1_ = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, t);
	T1_;
	id = nodeTableTestOrSet_tWmKJP7glBWLCISQFGGk2Q((&(*(*p).module).dataCache), n, ((NI) ((*(*p).module).labels)));
	T2_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T2_ = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (id)));
	tmp = amp__FyliSLNPyN7IibfEAQfpRA((*(*p).module).tmpBase, T2_);
	{
		tyArray_1UwZ4PfBDZcImViZT8dk0w T7_;
		if (!(id == ((NI) ((*(*p).module).labels)))) goto LA5_;
		(*(*p).module).labels += ((NI) 1);
		memset((void*)T7_, 0, sizeof(T7_));
		T7_[0] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, t);
		T7_[1] = tmp;
		T7_[2] = genConstExpr_9ay3JbWaSQA4xkrI8svQaZQ_2(p, n);
		addf_8UUGW4xtgpag0J4uEnVLuQ(&(*(*p).module).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_289), T7_, 3);
	}
	LA5_: ;
	{
		if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA10_;
		fillLoc_FYZoK6R9akILOlR1JSuEh3g(d, ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 8), t, tmp, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 1));
	}
	goto LA8_;
	LA10_: ;
	{
		putDataIntoDest_Dxuag2jBVQiuegEcf4GaWQ(p, d, t, tmp);
		{
			if (!!(((285212672 &((NU64)1<<((NU)((*t).kind)&63U)))!=0))) goto LA15_;
			(*d).s = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 1);
		}
		LA15_: ;
	}
	LA8_: ;
}

N_NIMCALL(NIM_BOOL, handleConstExpr_3euU5r9bcG0Rnz4QchCOUyw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NI T6_;
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T10_;
		NI id;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T11_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T12_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = ((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0));
		if (!(T4_)) goto LA5_;
		T6_ = (NI)0;
		T6_ = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(n);
		T4_ = (((NI) (((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 38)))) < T6_);
		LA5_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA7_;
		T3_ = isDeepConstExpr_FTbvAnf1y9b9c3Krp9bsHDTiw_2(n);
		LA7_: ;
		if (!T3_) goto LA8_;
		t = (*n).typ;
		T10_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T10_ = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, t);
		T10_;
		id = nodeTableTestOrSet_tWmKJP7glBWLCISQFGGk2Q((&(*(*p).module).dataCache), n, ((NI) ((*(*p).module).labels)));
		T11_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T11_ = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (id)));
		T12_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T12_ = amp__FyliSLNPyN7IibfEAQfpRA((*(*p).module).tmpBase, T11_);
		fillLoc_FYZoK6R9akILOlR1JSuEh3g(d, ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 8), t, T12_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 1));
		{
			tyArray_1UwZ4PfBDZcImViZT8dk0w T17_;
			if (!(id == ((NI) ((*(*p).module).labels)))) goto LA15_;
			(*(*p).module).labels += ((NI) 1);
			memset((void*)T17_, 0, sizeof(T17_));
			T17_[0] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, t);
			T17_[1] = (*d).r;
			T17_[2] = genConstExpr_9ay3JbWaSQA4xkrI8svQaZQ_2(p, n);
			addf_8UUGW4xtgpag0J4uEnVLuQ(&(*(*p).module).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_289), T17_, 3);
		}
		LA15_: ;
		result = NIM_TRUE;
	}
	goto LA1_;
	LA8_: ;
	{
		result = NIM_FALSE;
	}
	LA1_: ;
	return result;
}

N_NIMCALL(void, genArrayConstr_8mAL9ckajemzgfLPfeZVNoQ_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA arr;
	memset((void*)(&arr), 0, sizeof(arr));
	{
		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_AAMs9asc5S78MBo8z9bTltgw(p, (*n).typ, d, NIM_FALSE);
		}
		LA8_: ;
		{
			NI i;
			NI colontmp_;
			NI T11_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T11_ = (NI)0;
			T11_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
			colontmp_ = (NI)(T11_ - ((NI) 1));
			res = ((NI) 0);
			{
				while (1) {
					tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T14_;
					tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T15_;
					tyArray_YB3ke0PEM9bcAj9bAsA619bJA T16_;
					if (!(res <= colontmp_)) goto LA13;
					i = res;
					T14_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
					T14_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*n).typ, IL64(36028797019007248));
					T15_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
					T15_ = elemType_46gPaVDDGhiU69b2oKDJZuA_2(T14_);
					initLoc_kfK3bi0HoV6YeIhyJNMmZw((&arr), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), T15_, (*d).s);
					memset((void*)T16_, 0, sizeof(T16_));
					T16_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&(*d)));
					T16_[1] = intLiteral_cVf7QPXGcGBUB7P9cfyCtRw(((NI64) (i)));
					arr.r = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_151), T16_, 2);
					expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*n).kindU.S6.sons->data[i], (&arr));
					res += ((NI) 1);
				} LA13: ;
			}
		}
	}
	LA4_: ;
}

N_NIMCALL(void, genTupleConstr_8mAL9ckajemzgfLPfeZVNoQ_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA rec;
	memset((void*)(&rec), 0, sizeof(rec));
	{
		NIM_BOOL T3_;
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T6_;
		T3_ = (NIM_BOOL)0;
		T3_ = handleConstExpr_3euU5r9bcG0Rnz4QchCOUyw(p, n, d);
		if (!!(T3_)) goto LA4_;
		t = (*n).typ;
		T6_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T6_ = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, t);
		T6_;
		{
			if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA9_;
			getTemp_AAMs9asc5S78MBo8z9bTltgw(p, t, d, NIM_FALSE);
		}
		LA9_: ;
		{
			NI i;
			NI colontmp_;
			NI T12_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T12_ = (NI)0;
			T12_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
			colontmp_ = (NI)(T12_ - ((NI) 1));
			res = ((NI) 0);
			{
				while (1) {
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
					tyArray_YB3ke0PEM9bcAj9bAsA619bJA T19_;
					if (!(res <= colontmp_)) goto LA14;
					i = res;
					it = (*n).kindU.S6.sons->data[i];
					{
						if (!((*it).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA17_;
						it = (*it).kindU.S6.sons->data[((NI) 1)];
					}
					LA17_: ;
					initLoc_kfK3bi0HoV6YeIhyJNMmZw((&rec), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), (*it).typ, (*d).s);
					memset((void*)T19_, 0, sizeof(T19_));
					T19_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&(*d)));
					T19_[1] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (i)));
					rec.r = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_200), T19_, 2);
					expr_8mAL9ckajemzgfLPfeZVNoQ(p, it, (&rec));
					res += ((NI) 1);
				} LA14: ;
			}
		}
	}
	LA4_: ;
}

N_NIMCALL(tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw*, lookupFieldAgain_O69a7RpR6XkeAtdkgLHXG5g)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* ty, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* field, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** r, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw** resTyp) {
	tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* result;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* ty_2;
	result = (tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw*)0;
	ty_2 = ty;
	{
		while (1) {
			if (!!((ty_2 == NIM_NIL))) goto LA2;
			ty_2 = skipTypes_pLCdCGDuirMe9cspwviV9aVA(ty_2, IL64(36028797033646352));
			result = lookupInRecord_s51A17ot5EKQXx9bfMBO03w((*ty_2).n, (*field).name);
			{
				if (!!((result == NIM_NIL))) goto LA5_;
				{
					if (!!((resTyp == NIM_NIL))) goto LA9_;
					unsureAsgnRef((void**) (&(*resTyp)), ty_2);
				}
				LA9_: ;
				goto LA1;
			}
			LA5_: ;
			{
				NIM_BOOL T13_;
				T13_ = (NIM_BOOL)0;
				T13_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
				if (T13_) goto LA14_;
				T13_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
				LA14_: ;
				if (!!(T13_)) goto LA15_;
				add_UJnSY21g59awhvSFBxJ9a9aPg(r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_167));
			}
			LA15_: ;
			ty_2 = (*ty_2).sons->data[((NI) 0)];
		} LA2: ;
	} LA1: ;
	{
		if (!(result == NIM_NIL)) goto LA19_;
		internalError_MXmtqrCmYwtOPkDCFgUWKQ((*field).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_566));
	}
	LA19_: ;
	return result;
}

N_NIMCALL(void, genFieldCheck_SmRID4mC1OAbSYZXCL0Kuw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* obj, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* field, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* origTy) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA test;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA u;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA v;
	memset((void*)(&test), 0, sizeof(test));
	memset((void*)(&u), 0, sizeof(u));
	memset((void*)(&v), 0, sizeof(v));
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(e);
		colontmp_ = (NI)(T2_ - ((NI) 1));
		res = ((NI) 1);
		{
			while (1) {
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
				tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* op;
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* disc;
				tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* o;
				tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* d;
				NI id;
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T9_;
				tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* strLit;
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				it = (*e).kindU.S6.sons->data[i];
				op = (*(*it).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym;
				{
					if (!((*op).magic == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 99))) goto LA7_;
					it = (*it).kindU.S6.sons->data[((NI) 1)];
				}
				LA7_: ;
				disc = skipConv_6rsSLwtlU9c53a6w69be5JlQ((*it).kindU.S6.sons->data[((NI) 2)]);
				initLoc_kfK3bi0HoV6YeIhyJNMmZw((&test), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0), (*it).typ, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 2));
				initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*it).kindU.S6.sons->data[((NI) 1)], (&u));
				o = obj;
				d = lookupFieldAgain_O69a7RpR6XkeAtdkgLHXG5g(p, origTy, (*disc).kindU.S4.sym, &o, NIM_NIL);
				initLoc_kfK3bi0HoV6YeIhyJNMmZw((&v), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), (*d).typ, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
				v.r = o;
				add_UJnSY21g59awhvSFBxJ9a9aPg(&v.r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_273));
				add_cDalAhgBlDWoYHadkaqqxw(&v.r, (*d).loc.r);
				genInExprAux_9cclvr8sbqtJj8irRbQQpqQ(p, it, (&u), (&v), (&test));
				T9_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
				T9_ = newStrNode_8GaTnuPqpzGLNcerzDOURQ(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20), (*(*field).name).s);
				id = nodeTableTestOrSet_tWmKJP7glBWLCISQFGGk2Q((&(*(*p).module).dataCache), T9_, ((NI) ((*(*p).module).labels)));
				{
					if (!(id == ((NI) ((*(*p).module).labels)))) goto LA12_;
					strLit = getStrLit_ngAR8PLIIal5nOPXflxuFg((*p).module, (*(*field).name).s);
				}
				goto LA10_;
				LA12_: ;
				{
					tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T15_;
					T15_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
					T15_ = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (id)));
					strLit = amp__FyliSLNPyN7IibfEAQfpRA((*(*p).module).tmpBase, T15_);
				}
				LA10_: ;
				{
					tyArray_YB3ke0PEM9bcAj9bAsA619bJA T20_;
					if (!((*op).magic == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 99))) goto LA18_;
					memset((void*)T20_, 0, sizeof(T20_));
					T20_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&test));
					T20_[1] = strLit;
					linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_568), T20_, 2);
				}
				goto LA16_;
				LA18_: ;
				{
					tyArray_YB3ke0PEM9bcAj9bAsA619bJA T22_;
					memset((void*)T22_, 0, sizeof(T22_));
					T22_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&test));
					T22_[1] = strLit;
					linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_569), T22_, 2);
				}
				LA16_: ;
				res += ((NI) 1);
			} LA4: ;
		}
	}
}

N_NIMCALL(void, genObjConstr_BKdMcfvryaJLplX0oFPcAQ_18)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t;
	NIM_BOOL isRef;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* r;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T19_;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* ty;
{	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T3_) goto LA4_;
		T3_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA4_: ;
		if (!!(T3_)) goto LA5_;
		{
			NIM_BOOL T9_;
			T9_ = (NIM_BOOL)0;
			T9_ = handleConstExpr_3euU5r9bcG0Rnz4QchCOUyw(p, e, d);
			if (!T9_) goto LA10_;
			goto BeforeRet_;
		}
		LA10_: ;
	}
	LA5_: ;
	memset((void*)(&tmp), 0, sizeof(tmp));
	t = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*e).typ, IL64(36028797019007248));
	getTemp_AAMs9asc5S78MBo8z9bTltgw(p, t, (&tmp), NIM_FALSE);
	isRef = ((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22));
	r = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&tmp));
	{
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T16_;
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T17_;
		if (!isRef) goto LA14_;
		rawGenNew_cgJ9aX1ynF9c6YJgDm6IB1wg(p, (&tmp), NIM_NIL);
		T16_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
		T16_ = lastSon_E41DMKHtT9c6sAMyyvhmSIw(t);
		t = skipTypes_pLCdCGDuirMe9cspwviV9aVA(T16_, IL64(36028797019007248));
		memset((void*)T17_, 0, sizeof(T17_));
		T17_[0] = r;
		r = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_132), T17_, 1);
		gcUsage_Pb60oErhArqGlPPn4s2Zow(e);
	}
	goto LA12_;
	LA14_: ;
	{
		constructLoc_UnMShnfXExBqkSCjaZsFdw(p, (&tmp), NIM_FALSE);
	}
	LA12_: ;
	T19_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T19_ = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, t);
	T19_;
	ty = getUniqueType_HEGWNfEn5UAm9aUHUXxHEwQ(t);
	{
		NI i;
		NI colontmp_;
		NI T21_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T21_ = (NI)0;
		T21_ = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(e);
		colontmp_ = (T21_ - 1);
		res = ((NI) 1);
		{
			while (1) {
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp2;
				tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* field;
				if (!(res <= colontmp_)) goto LA23;
				i = res;
				it = (*e).kindU.S6.sons->data[i];
				memset((void*)(&tmp2), 0, sizeof(tmp2));
				tmp2.r = r;
				field = lookupFieldAgain_O69a7RpR6XkeAtdkgLHXG5g(p, ty, (*(*it).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym, &tmp2.r, NIM_NIL);
				{
					if (!((*field).loc.r == NIM_NIL)) goto LA26_;
					fillObjectFields_HYq5QAQNqLSWZyliakxHKw((*p).module, ty);
				}
				LA26_: ;
				{
					if (!((*field).loc.r == NIM_NIL)) goto LA30_;
					internalError_MXmtqrCmYwtOPkDCFgUWKQ((*e).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_567));
				}
				LA30_: ;
				{
					NIM_BOOL T34_;
					NI T35_;
					T34_ = (NIM_BOOL)0;
					T35_ = (NI)0;
					T35_ = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(it);
					T34_ = (T35_ == ((NI) 3));
					if (!(T34_)) goto LA36_;
					T34_ = (((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 2))&31U)))!=0);
					LA36_: ;
					if (!T34_) goto LA37_;
					genFieldCheck_SmRID4mC1OAbSYZXCL0Kuw(p, (*it).kindU.S6.sons->data[((NI) 2)], r, field, ty);
				}
				LA37_: ;
				add_UJnSY21g59awhvSFBxJ9a9aPg(&tmp2.r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_273));
				add_cDalAhgBlDWoYHadkaqqxw(&tmp2.r, (*field).loc.r);
				tmp2.k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 1);
				tmp2.t = (*field).loc.t;
				{
					if (!isRef) goto LA41_;
					tmp2.s = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 3);
				}
				goto LA39_;
				LA41_: ;
				{
					tmp2.s = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 2);
				}
				LA39_: ;
				expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*it).kindU.S6.sons->data[((NI) 1)], (&tmp2));
				res += ((NI) 1);
			} LA23: ;
		}
	}
	{
		if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA46_;
		genericAssign((void*)(&(*d)), (void*)(&tmp), (&NTI_EtHNvCB0bgfu9bFjzx9cb6aA_));
	}
	goto LA44_;
	LA46_: ;
	{
		genAssignment_BtucsTdHw7orsXIL75hNVg(p, (&(*d)), (&tmp), 0);
	}
	LA44_: ;
	}BeforeRet_: ;
}

N_NIMCALL(void, genCast_BKdMcfvryaJLplX0oFPcAQ_19)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* destt;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* srct;
	destt = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*e).typ, IL64(36028797020055824));
	srct = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*(*e).kindU.S6.sons->data[((NI) 1)]).typ, IL64(36028797020055824));
	{
		NIM_BOOL T3_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* lbl;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp;
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T7_;
		tyArray_1UwZ4PfBDZcImViZT8dk0w T8_;
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T9_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T10_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((IL64(1030792609792) &((NU64)1<<((NU)((*destt).kind)&63U)))!=0);
		if (T3_) goto LA4_;
		T3_ = ((IL64(1030792609792) &((NU64)1<<((NU)((*srct).kind)&63U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		(*p).labels += ((NI) 1);
		lbl = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) ((*p).labels)));
		memset((void*)(&tmp), 0, sizeof(tmp));
		memset((void*)T7_, 0, sizeof(T7_));
		T7_[0] = lbl;
		tmp.r = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_570), T7_, 1);
		memset((void*)T8_, 0, sizeof(T8_));
		T8_[0] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, (*(*e).kindU.S6.sons->data[((NI) 1)]).typ);
		T8_[1] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, (*e).typ);
		T8_[2] = lbl;
		linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_571), T8_, 3);
		tmp.k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6);
		tmp.t = srct;
		tmp.s = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 2);
		tmp.flags = 0;
		expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*e).kindU.S6.sons->data[((NI) 1)], (&tmp));
		memset((void*)T9_, 0, sizeof(T9_));
		T9_[0] = lbl;
		T10_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T10_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_572), T9_, 1);
		putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*e).typ, T10_, tmp.s);
	}
	goto LA1_;
	LA5_: ;
	{
		genSomeCast_BKdMcfvryaJLplX0oFPcAQ_11(p, e, d);
	}
	LA1_: ;
}

N_NIMCALL(void, genConv_BKdMcfvryaJLplX0oFPcAQ_20)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* destType;
	destType = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*e).typ, 8390672);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = compareTypes_Wiat9a9c5vPvjDreVawQ2qgA(destType, (*(*e).kindU.S6.sons->data[((NI) 1)]).typ, ((tyEnum_TDistinctCompare_9bNKHGs63atuMFXnAleTveg) 1), 0);
		if (!T3_) goto LA4_;
		expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*e).kindU.S6.sons->data[((NI) 1)], d);
	}
	goto LA1_;
	LA4_: ;
	{
		genSomeCast_BKdMcfvryaJLplX0oFPcAQ_11(p, e, d);
	}
	LA1_: ;
}

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

N_NIMCALL(void, genAddr_BKdMcfvryaJLplX0oFPcAQ_21)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	{
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T3_;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T6_;
		T3_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
		T3_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*(*e).kindU.S6.sons->data[((NI) 0)]).typ, IL64(36028797019007248));
		if (!((6291456 &((NU64)1<<((NU)((*T3_).kind)&63U)))!=0)) goto LA4_;
		memset((void*)(&a), 0, sizeof(a));
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 0)], (&a));
		T6_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T6_ = amp__OL8oYU3myMrLfqhcdP9b3Ig(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_52), a.r);
		putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*e).typ, T6_, a.s);
	}
	goto LA1_;
	LA4_: ;
	{
		NIM_BOOL T8_;
		tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w T9_;
		T8_ = (NIM_BOOL)0;
		T9_ = (tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w)0;
		T9_ = mapType_xD9bGC83PAN0OvetVlj1cZQ((*(*e).kindU.S6.sons->data[((NI) 0)]).typ);
		T8_ = (T9_ == ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 17));
		if (T8_) goto LA10_;
		T8_ = isCppRef_7oHZ8A67Dcbofp9aD7C8LsQcgen(p, (*(*e).kindU.S6.sons->data[((NI) 0)]).typ);
		LA10_: ;
		if (!T8_) goto LA11_;
		expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*e).kindU.S6.sons->data[((NI) 0)], d);
	}
	goto LA1_;
	LA11_: ;
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_2;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T14_;
		memset((void*)(&a_2), 0, sizeof(a_2));
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 0)], (&a_2));
		T14_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T14_ = addrLoc_YU9cO6gMkMct9bbzvzDM0Dzw_2((&a_2));
		putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*e).typ, T14_, a_2.s);
	}
	LA1_: ;
}

N_NIMCALL(void, genArrayElem_sDEnNgwcH9byIHKi1s0b7LQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* y, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* ty;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T1_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* first;
	NI64 T2_;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T47_;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T48_;
	tyArray_1UwZ4PfBDZcImViZT8dk0w T49_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T50_;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&b), 0, sizeof(b));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, x, (&a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, y, (&b));
	T1_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
	T1_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA(a.t, IL64(36028797028444432));
	ty = skipTypes_pLCdCGDuirMe9cspwviV9aVA(T1_, IL64(36028797033687312));
	T2_ = (NI64)0;
	T2_ = firstOrd_HUiBYxvKiECXCv8BzQNheg(ty);
	first = intLiteral_cVf7QPXGcGBUB7P9cfyCtRw(T2_);
	{
		NIM_BOOL T5_;
		T5_ = (NIM_BOOL)0;
		T5_ = (((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 4))&31U)))!=0);
		if (!(T5_)) goto LA6_;
		T5_ = !((((*ty).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 0))&63U)))!=0));
		LA6_: ;
		if (!T5_) goto LA7_;
		{
			NIM_BOOL T11_;
			T11_ = (NIM_BOOL)0;
			T11_ = isConstExpr_FTbvAnf1y9b9c3Krp9bsHDTiw_4(y);
			if (!!(T11_)) goto LA12_;
			{
				NI64 T16_;
				T16_ = (NI64)0;
				T16_ = firstOrd_HUiBYxvKiECXCv8BzQNheg(ty);
				if (!(T16_ == IL64(0))) goto LA17_;
				{
					NIM_BOOL T21_;
					NI64 T22_;
					NI64 T23_;
					NI64 T25_;
					NI64 T26_;
					tyArray_YB3ke0PEM9bcAj9bAsA619bJA T29_;
					NI64 T30_;
					T21_ = (NIM_BOOL)0;
					T22_ = (NI64)0;
					T22_ = firstOrd_HUiBYxvKiECXCv8BzQNheg(b.t);
					T23_ = (NI64)0;
					T23_ = firstOrd_HUiBYxvKiECXCv8BzQNheg(ty);
					T21_ = (T22_ < T23_);
					if (T21_) goto LA24_;
					T25_ = (NI64)0;
					T25_ = lastOrd_HUiBYxvKiECXCv8BzQNheg_2(ty);
					T26_ = (NI64)0;
					T26_ = lastOrd_HUiBYxvKiECXCv8BzQNheg_2(b.t);
					T21_ = (T25_ < T26_);
					LA24_: ;
					if (!T21_) goto LA27_;
					memset((void*)T29_, 0, sizeof(T29_));
					T29_[0] = rdCharLoc_YU9cO6gMkMct9bbzvzDM0Dzw_3((&b));
					T30_ = (NI64)0;
					T30_ = lastOrd_HUiBYxvKiECXCv8BzQNheg_2(ty);
					T29_[1] = intLiteral_cVf7QPXGcGBUB7P9cfyCtRw(T30_);
					linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_573), T29_, 2);
				}
				LA27_: ;
			}
			goto LA14_;
			LA17_: ;
			{
				tyArray_1UwZ4PfBDZcImViZT8dk0w T32_;
				NI64 T33_;
				memset((void*)T32_, 0, sizeof(T32_));
				T32_[0] = rdCharLoc_YU9cO6gMkMct9bbzvzDM0Dzw_3((&b));
				T32_[1] = first;
				T33_ = (NI64)0;
				T33_ = lastOrd_HUiBYxvKiECXCv8BzQNheg_2(ty);
				T32_[2] = intLiteral_cVf7QPXGcGBUB7P9cfyCtRw(T33_);
				linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_574), T32_, 3);
			}
			LA14_: ;
		}
		goto LA9_;
		LA12_: ;
		{
			NI64 idx;
			idx = getOrdValue_MzTDl1zEXJLD4sql7PhCwA(y);
			{
				NIM_BOOL T37_;
				NI64 T38_;
				NI64 T40_;
				T37_ = (NIM_BOOL)0;
				T38_ = (NI64)0;
				T38_ = firstOrd_HUiBYxvKiECXCv8BzQNheg(ty);
				T37_ = (idx < T38_);
				if (T37_) goto LA39_;
				T40_ = (NI64)0;
				T40_ = lastOrd_HUiBYxvKiECXCv8BzQNheg_2(ty);
				T37_ = (T40_ < idx);
				LA39_: ;
				if (!T37_) goto LA41_;
				localError_VpilfPWbplGz6ny7O9cfr2g((*x).info, ((tyEnum_TMsgKind_IGAWgv9aR2KqPKJfPZPEWaw) 85), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_10));
			}
			LA41_: ;
		}
		LA9_: ;
	}
	LA7_: ;
	{
		if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA45_;
		(*d).s = a.s;
	}
	LA45_: ;
	T47_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
	T47_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA(ty, IL64(36028797027395856));
	T48_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
	T48_ = elemType_46gPaVDDGhiU69b2oKDJZuA_2(T47_);
	memset((void*)T49_, 0, sizeof(T49_));
	T49_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
	T49_[1] = rdCharLoc_YU9cO6gMkMct9bbzvzDM0Dzw_3((&b));
	T49_[2] = first;
	T50_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T50_ = ropecg_ail3PxtNU17Ini4A1vCFoA(NIM_NIL, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_575), T49_, 3);
	putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, T48_, T50_, a.s);
}

N_NIMCALL(void, genOpenArrayElem_sDEnNgwcH9byIHKi1s0b7LQ_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* y, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T10_;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T11_;
	tyArray_YB3ke0PEM9bcAj9bAsA619bJA T12_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T13_;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&b), 0, sizeof(b));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, x, (&a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, y, (&b));
	{
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T5_;
		if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 4))&31U)))!=0)) goto LA3_;
		memset((void*)T5_, 0, sizeof(T5_));
		T5_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&b));
		T5_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
		linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_576), T5_, 2);
	}
	LA3_: ;
	{
		if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA8_;
		(*d).s = a.s;
	}
	LA8_: ;
	T10_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
	T10_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA(a.t, IL64(36028797027395856));
	T11_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
	T11_ = elemType_46gPaVDDGhiU69b2oKDJZuA_2(T10_);
	memset((void*)T12_, 0, sizeof(T12_));
	T12_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
	T12_[1] = rdCharLoc_YU9cO6gMkMct9bbzvzDM0Dzw_3((&b));
	T13_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T13_ = ropecg_ail3PxtNU17Ini4A1vCFoA(NIM_NIL, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_151), T12_, 2);
	putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, T11_, T13_, a.s);
}

N_NIMCALL(void, genSeqElem_sDEnNgwcH9byIHKi1s0b7LQ_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* y, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* ty;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T27_;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T28_;
	tyArray_YB3ke0PEM9bcAj9bAsA619bJA T29_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T30_;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&b), 0, sizeof(b));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, x, (&a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, y, (&b));
	ty = skipTypes_pLCdCGDuirMe9cspwviV9aVA(a.t, IL64(36028797028444432));
	{
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T5_;
		if (!((6291456 &((NU64)1<<((NU)((*ty).kind)&63U)))!=0)) goto LA3_;
		T5_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
		T5_ = lastSon_E41DMKHtT9c6sAMyyvhmSIw(ty);
		ty = skipTypes_pLCdCGDuirMe9cspwviV9aVA(T5_, IL64(36028797028444432));
	}
	LA3_: ;
	{
		if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 4))&31U)))!=0)) goto LA8_;
		{
			tyArray_1UwZ4PfBDZcImViZT8dk0w T14_;
			if (!((*ty).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28))) goto LA12_;
			memset((void*)T14_, 0, sizeof(T14_));
			T14_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&b));
			T14_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
			T14_[2] = lenField_VMw2SYHH12eNnC21DncHWQ_5(p);
			linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_577), T14_, 3);
		}
		goto LA10_;
		LA12_: ;
		{
			tyArray_1UwZ4PfBDZcImViZT8dk0w T16_;
			memset((void*)T16_, 0, sizeof(T16_));
			T16_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&b));
			T16_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
			T16_[2] = lenField_VMw2SYHH12eNnC21DncHWQ_5(p);
			linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_578), T16_, 3);
		}
		LA10_: ;
	}
	LA8_: ;
	{
		if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA19_;
		(*d).s = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 3);
	}
	LA19_: ;
	{
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T23_;
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T26_;
		T23_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
		T23_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA(a.t, IL64(36028797027395856));
		if (!((6291456 &((NU64)1<<((NU)((*T23_).kind)&63U)))!=0)) goto LA24_;
		memset((void*)T26_, 0, sizeof(T26_));
		T26_[0] = a.r;
		a.r = ropecg_ail3PxtNU17Ini4A1vCFoA(NIM_NIL, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_132), T26_, 1);
	}
	LA24_: ;
	T27_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
	T27_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA(a.t, IL64(36028797027395856));
	T28_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
	T28_ = elemType_46gPaVDDGhiU69b2oKDJZuA_2(T27_);
	memset((void*)T29_, 0, sizeof(T29_));
	T29_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
	T29_[1] = rdCharLoc_YU9cO6gMkMct9bbzvzDM0Dzw_3((&b));
	T30_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T30_ = ropecg_ail3PxtNU17Ini4A1vCFoA(NIM_NIL, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_202), T29_, 2);
	putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, T28_, T30_, a.s);
}

N_NIMCALL(void, genCStringElem_sDEnNgwcH9byIHKi1s0b7LQ_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* y, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* ty;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T5_;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T6_;
	tyArray_YB3ke0PEM9bcAj9bAsA619bJA T7_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T8_;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&b), 0, sizeof(b));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, x, (&a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, y, (&b));
	ty = skipTypes_pLCdCGDuirMe9cspwviV9aVA(a.t, IL64(36028797028444432));
	{
		if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA3_;
		(*d).s = a.s;
	}
	LA3_: ;
	T5_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
	T5_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA(ty, IL64(36028797027395856));
	T6_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
	T6_ = elemType_46gPaVDDGhiU69b2oKDJZuA_2(T5_);
	memset((void*)T7_, 0, sizeof(T7_));
	T7_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
	T7_[1] = rdCharLoc_YU9cO6gMkMct9bbzvzDM0Dzw_3((&b));
	T8_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T8_ = ropecg_ail3PxtNU17Ini4A1vCFoA(NIM_NIL, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_151), T7_, 2);
	putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, T6_, T8_, a.s);
}

N_NIMCALL(void, genTupleElem_BKdMcfvryaJLplX0oFPcAQ_22)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	NI i;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* tupType;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T5_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* r;
	tyArray_ZqT9cbUNKsl55MABiLlPDxA T8_;
	memset((void*)(&a), 0, sizeof(a));
	i = (NI)0;
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 0)], (&a));
	tupType = skipTypes_pLCdCGDuirMe9cspwviV9aVA(a.t, IL64(36028797019007248));
	{
		if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA3_;
		(*d).s = a.s;
	}
	LA3_: ;
	T5_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T5_ = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, a.t);
	T5_;
	r = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
	switch ((*(*e).kindU.S6.sons->data[((NI) 1)]).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 6) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 15):
	{
		i = ((NI) ((*(*e).kindU.S6.sons->data[((NI) 1)]).kindU.S1.intVal));
	}
	break;
	default:
	{
		internalError_MXmtqrCmYwtOPkDCFgUWKQ((*e).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_579));
	}
	break;
	}
	memset((void*)T8_, 0, sizeof(T8_));
	T8_[0] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (i)));
	addf_8UUGW4xtgpag0J4uEnVLuQ(&r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_580), T8_, 1);
	putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*tupType).sons->data[i], r, a.s);
}

N_NIMCALL(void, genBracketExpr_8mAL9ckajemzgfLPfeZVNoQ_6)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* ty;
	ty = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*(*n).kindU.S6.sons->data[((NI) 0)]).typ, IL64(49539595910555920));
	{
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T5_;
		if (!((6291456 &((NU64)1<<((NU)((*ty).kind)&63U)))!=0)) goto LA3_;
		T5_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
		T5_ = lastSon_E41DMKHtT9c6sAMyyvhmSIw(ty);
		ty = skipTypes_pLCdCGDuirMe9cspwviV9aVA(T5_, IL64(36028797028444432));
	}
	LA3_: ;
	switch ((*ty).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
	{
		genArrayElem_sDEnNgwcH9byIHKi1s0b7LQ(p, (*n).kindU.S6.sons->data[((NI) 0)], (*n).kindU.S6.sons->data[((NI) 1)], d);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48):
	{
		genOpenArrayElem_sDEnNgwcH9byIHKi1s0b7LQ_2(p, (*n).kindU.S6.sons->data[((NI) 0)], (*n).kindU.S6.sons->data[((NI) 1)], d);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
	{
		genSeqElem_sDEnNgwcH9byIHKi1s0b7LQ_3(p, (*n).kindU.S6.sons->data[((NI) 0)], (*n).kindU.S6.sons->data[((NI) 1)], d);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 29):
	{
		genCStringElem_sDEnNgwcH9byIHKi1s0b7LQ_4(p, (*n).kindU.S6.sons->data[((NI) 0)], (*n).kindU.S6.sons->data[((NI) 1)], d);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		genTupleElem_BKdMcfvryaJLplX0oFPcAQ_22(p, n, d);
	}
	break;
	default:
	{
		NimStringDesc* T12_;
		T12_ = (NimStringDesc*)0;
		T12_ = rawNewString(reprEnum((NI)(*ty).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len + 21);
appendString(T12_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_581));
appendString(T12_, reprEnum((NI)(*ty).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
appendChar(T12_, 41);
		internalError_MXmtqrCmYwtOPkDCFgUWKQ((*n).info, T12_);
	}
	break;
	}
}

N_NIMCALL(void, genDeref_BLGSHeDM9cawDE7Hp9bscFgg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NIM_BOOL enforceDeref) {
	tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w mt;
{	mt = mapType_xD9bGC83PAN0OvetVlj1cZQ((*(*e).kindU.S6.sons->data[((NI) 0)]).typ);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((393216 &(1U<<((NU)(mt)&31U)))!=0);
		if (!(T3_)) goto LA4_;
		T3_ = !(enforceDeref);
		LA4_: ;
		if (!T3_) goto LA5_;
		expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*e).kindU.S6.sons->data[((NI) 0)], d);
		{
			tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T9_;
			T9_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
			T9_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*(*e).kindU.S6.sons->data[((NI) 0)]).typ, IL64(36028797019007248));
			if (!((*T9_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22))) goto LA10_;
			(*d).s = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 3);
		}
		LA10_: ;
	}
	goto LA1_;
	LA5_: ;
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ;
		memset((void*)(&a), 0, sizeof(a));
		typ = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*(*e).kindU.S6.sons->data[((NI) 0)]).typ, IL64(36028797019007248));
		{
			NIM_BOOL T15_;
			T15_ = (NIM_BOOL)0;
			T15_ = ((IL64(13510798882111488) &((NU64)1<<((NU)((*typ).kind)&63U)))!=0);
			if (!(T15_)) goto LA16_;
			T15_ = (((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 10))&63U)))!=0);
			LA16_: ;
			if (!T15_) goto LA17_;
			typ = lastSon_E41DMKHtT9c6sAMyyvhmSIw(typ);
		}
		LA17_: ;
		{
			NIM_BOOL T21_;
			NIM_BOOL T22_;
			NIM_BOOL T23_;
			NIM_BOOL T26_;
			T21_ = (NIM_BOOL)0;
			T22_ = (NIM_BOOL)0;
			T23_ = (NIM_BOOL)0;
			T23_ = ((*typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23));
			if (!(T23_)) goto LA24_;
			T23_ = !((((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 19))&63U)))!=0));
			LA24_: ;
			T22_ = T23_;
			if (!(T22_)) goto LA25_;
			T26_ = (NIM_BOOL)0;
			T26_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
			if (T26_) goto LA27_;
			T26_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA27_: ;
			T22_ = T26_;
			LA25_: ;
			T21_ = T22_;
			if (!(T21_)) goto LA28_;
			T21_ = ((*(*e).kindU.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64));
			LA28_: ;
			if (!T21_) goto LA29_;
			initLocExprSingleUse_9biTBaXPz9cezuLjjWw9cSEGw(p, (*(*e).kindU.S6.sons->data[((NI) 0)]).kindU.S6.sons->data[((NI) 0)], d);
			goto BeforeRet_;
		}
		goto LA19_;
		LA29_: ;
		{
			initLocExprSingleUse_9biTBaXPz9cezuLjjWw9cSEGw(p, (*e).kindU.S6.sons->data[((NI) 0)], (&a));
		}
		LA19_: ;
		{
			if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA34_;
			switch ((*typ).kind) {
			case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22):
			{
				(*d).s = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 3);
			}
			break;
			case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23):
			{
				(*d).s = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0);
				{
					NIM_BOOL T40_;
					NIM_BOOL T41_;
					NIM_BOOL T43_;
					tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T48_;
					T40_ = (NIM_BOOL)0;
					T41_ = (NIM_BOOL)0;
					T41_ = !((((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 19))&63U)))!=0));
					if (!(T41_)) goto LA42_;
					T43_ = (NIM_BOOL)0;
					T43_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
					if (T43_) goto LA44_;
					T43_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
					LA44_: ;
					T41_ = T43_;
					LA42_: ;
					T40_ = T41_;
					if (!(T40_)) goto LA45_;
					T40_ = ((*e).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 65));
					LA45_: ;
					if (!T40_) goto LA46_;
					T48_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
					T48_ = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
					putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*e).typ, T48_, a.s);
					goto BeforeRet_;
				}
				LA46_: ;
			}
			break;
			case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21):
			{
				(*d).s = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0);
			}
			break;
			default:
			{
				NimStringDesc* T51_;
				T51_ = (NimStringDesc*)0;
				T51_ = rawNewString(reprEnum((NI)(*typ).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len + 9);
appendString(T51_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_582));
appendString(T51_, reprEnum((NI)(*typ).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
				internalError_MXmtqrCmYwtOPkDCFgUWKQ((*e).info, T51_);
			}
			break;
			}
		}
		goto LA32_;
		LA34_: ;
		{
			NIM_BOOL T53_;
			T53_ = (NIM_BOOL)0;
			T53_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
			if (T53_) goto LA54_;
			T53_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA54_: ;
			if (!T53_) goto LA55_;
			{
				NIM_BOOL T59_;
				NIM_BOOL T60_;
				tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T65_;
				T59_ = (NIM_BOOL)0;
				T60_ = (NIM_BOOL)0;
				T60_ = ((*typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23));
				if (!(T60_)) goto LA61_;
				T60_ = !((((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 19))&63U)))!=0));
				LA61_: ;
				T59_ = T60_;
				if (!(T59_)) goto LA62_;
				T59_ = ((*e).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 65));
				LA62_: ;
				if (!T59_) goto LA63_;
				T65_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
				T65_ = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
				putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*e).typ, T65_, a.s);
				goto BeforeRet_;
			}
			LA63_: ;
		}
		goto LA32_;
		LA55_: ;
		LA32_: ;
		{
			NIM_BOOL T68_;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T72_;
			T68_ = (NIM_BOOL)0;
			T68_ = enforceDeref;
			if (!(T68_)) goto LA69_;
			T68_ = (mt == ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 18));
			LA69_: ;
			if (!T68_) goto LA70_;
			T72_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T72_ = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
			putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*a.t).sons->data[((NI) 0)], T72_, a.s);
		}
		goto LA66_;
		LA70_: ;
		{
			tyArray_ZqT9cbUNKsl55MABiLlPDxA T74_;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T75_;
			memset((void*)T74_, 0, sizeof(T74_));
			T74_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
			T75_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T75_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_132), T74_, 1);
			putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*e).typ, T75_, a.s);
		}
		LA66_: ;
	}
	LA1_: ;
	}BeforeRet_: ;
}

N_NIMCALL(void, genRecordFieldAux_O8nIPJbfEFU0FjR77WG5eA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T9_;
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 0)], a);
	{
		if (!!(((*(*e).kindU.S6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA3_;
		internalError_MXmtqrCmYwtOPkDCFgUWKQ((*e).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_583));
	}
	LA3_: ;
	{
		if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA7_;
		(*d).s = (*a).s;
	}
	LA7_: ;
	T9_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T9_ = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, (*a).t);
	T9_;
}

N_NIMCALL(void, genRecordField_BKdMcfvryaJLplX0oFPcAQ_23)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* r;
	tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* f;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* ty;
	memset((void*)(&a), 0, sizeof(a));
	genRecordFieldAux_O8nIPJbfEFU0FjR77WG5eA(p, e, d, (&a));
	r = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
	f = (*(*e).kindU.S6.sons->data[((NI) 1)]).kindU.S4.sym;
	ty = skipTypes_pLCdCGDuirMe9cspwviV9aVA(a.t, IL64(49539595901118736));
	{
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T5_;
		if (!((*ty).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18))) goto LA3_;
		memset((void*)T5_, 0, sizeof(T5_));
		T5_[0] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) ((*f).position)));
		addf_8UUGW4xtgpag0J4uEnVLuQ(&r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_580), T5_, 1);
		putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*f).typ, r, a.s);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* rtyp;
		tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* field;
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T19_;
		rtyp = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
		field = lookupFieldAgain_O69a7RpR6XkeAtdkgLHXG5g(p, ty, f, &r, &rtyp);
		{
			NIM_BOOL T9_;
			T9_ = (NIM_BOOL)0;
			T9_ = ((*field).loc.r == NIM_NIL);
			if (!(T9_)) goto LA10_;
			T9_ = !((rtyp == NIM_NIL));
			LA10_: ;
			if (!T9_) goto LA11_;
			fillObjectFields_HYq5QAQNqLSWZyliakxHKw((*p).module, rtyp);
		}
		LA11_: ;
		{
			NimStringDesc* T17_;
			NimStringDesc* T18_;
			if (!((*field).loc.r == NIM_NIL)) goto LA15_;
			T17_ = (NimStringDesc*)0;
			T18_ = (NimStringDesc*)0;
			T18_ = typeToString_iUZlBdvGqNPVN17wd9aVBNw(ty, ((tyEnum_TPreferedDesc_tnd4qt9c4xddV8oKV5zyusw) 0));
			T17_ = rawNewString(T18_->Sup.len + 17);
appendString(T17_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_584));
appendString(T17_, T18_);
			internalError_MXmtqrCmYwtOPkDCFgUWKQ((*e).info, T17_);
		}
		LA15_: ;
		memset((void*)T19_, 0, sizeof(T19_));
		T19_[0] = (*field).loc.r;
		addf_8UUGW4xtgpag0J4uEnVLuQ(&r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_585), T19_, 1);
		putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*field).typ, r, a.s);
	}
	LA1_: ;
}

N_NIMCALL(void, genCheckedRecordField_BKdMcfvryaJLplX0oFPcAQ_24)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* ty;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* r;
		tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* f;
		tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* field;
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T13_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T14_;
		if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 2))&31U)))!=0)) goto LA3_;
		memset((void*)(&a), 0, sizeof(a));
		genRecordFieldAux_O8nIPJbfEFU0FjR77WG5eA(p, (*e).kindU.S6.sons->data[((NI) 0)], d, (&a));
		ty = skipTypes_pLCdCGDuirMe9cspwviV9aVA(a.t, IL64(36028797019007248));
		r = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
		f = (*(*(*e).kindU.S6.sons->data[((NI) 0)]).kindU.S6.sons->data[((NI) 1)]).kindU.S4.sym;
		field = lookupFieldAgain_O69a7RpR6XkeAtdkgLHXG5g(p, ty, f, &r, NIM_NIL);
		{
			if (!((*field).loc.r == NIM_NIL)) goto LA7_;
			fillObjectFields_HYq5QAQNqLSWZyliakxHKw((*p).module, ty);
		}
		LA7_: ;
		{
			if (!((*field).loc.r == NIM_NIL)) goto LA11_;
			internalError_MXmtqrCmYwtOPkDCFgUWKQ((*e).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_566));
		}
		LA11_: ;
		genFieldCheck_SmRID4mC1OAbSYZXCL0Kuw(p, e, r, field, ty);
		memset((void*)T13_, 0, sizeof(T13_));
		T13_[0] = (*field).loc.r;
		T14_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T14_ = ropecg_ail3PxtNU17Ini4A1vCFoA(NIM_NIL, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_585), T13_, 1);
		add_cDalAhgBlDWoYHadkaqqxw(&r, T14_);
		putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*field).typ, r, a.s);
	}
	goto LA1_;
	LA3_: ;
	{
		genRecordField_BKdMcfvryaJLplX0oFPcAQ_23(p, (*e).kindU.S6.sons->data[((NI) 0)], d);
	}
	LA1_: ;
}

N_NIMCALL(NI, startBlock_0yHaXWrgTt8ykj8X9aq9b9cxQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, NimStringDesc* start, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** args, NI argsLen_0) {
	NI result;
	NI T1_;
	NI T2_;
	result = (NI)0;
	lineCg_Z6xIOvD09aMfYvHnc82A86A_2(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), start, args, argsLen_0);
	(*p).labels += ((NI) 1);
	T1_ = ((*p).blocks ? (*p).blocks->Sup.len : 0);
	result = T1_;
	(*p).blocks = (tySequence_oUyaggHmIX9bpJcMeoG6lpA*) setLengthSeq(&((*p).blocks)->Sup, sizeof(tyObject_TBlock_GFhahvekTq3dDOkWyhchMA), ((NI) ((NI)(result + ((NI) 1)))));
	(*p).blocks->data[result].id = ((NI) ((*p).labels));
	T2_ = ((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0);
	(*p).blocks->data[result].nestedTryStmts = ((NI16) (T2_));
	(*p).blocks->data[result].nestedExceptStmts = ((NI16) ((*p).inExceptBlock));
	return result;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, blockBody_sH1An9axWfshYrOXIDNqNMA)(tyObject_TBlock_GFhahvekTq3dDOkWyhchMA* b) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	result = (*b).sections[(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0))- 0];
	{
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T5_;
		if (!(((NI16) 0) < (*b).frameLen)) goto LA3_;
		memset((void*)T5_, 0, sizeof(T5_));
		T5_[0] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) ((*b).frameLen)));
		addf_8UUGW4xtgpag0J4uEnVLuQ(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_588), T5_, 1);
	}
	LA3_: ;
	add_cDalAhgBlDWoYHadkaqqxw(&result, (*b).sections[(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1))- 0]);
	add_cDalAhgBlDWoYHadkaqqxw(&result, (*b).sections[(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2))- 0]);
	return result;
}

N_NIMCALL(void, endBlock_cBt0RGG9a42nMd9aj15boUMA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* blockEnd) {
	NI topBlock;
	NI T1_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T2_;
	T1_ = ((*p).blocks ? (*p).blocks->Sup.len : 0);
	topBlock = (NI)(T1_ - ((NI) 1));
	T2_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T2_ = blockBody_sH1An9axWfshYrOXIDNqNMA((&(*p).blocks->data[topBlock]));
	add_cDalAhgBlDWoYHadkaqqxw(&(*p).blocks->data[(NI)(topBlock - ((NI) 1))].sections[(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2))- 0], T2_);
	(*p).blocks = (tySequence_oUyaggHmIX9bpJcMeoG6lpA*) setLengthSeq(&((*p).blocks)->Sup, sizeof(tyObject_TBlock_GFhahvekTq3dDOkWyhchMA), ((NI) (topBlock)));
	line_ALdLmqKb9cyvVSETUUyUh9aQ(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), blockEnd);
}

N_NIMCALL(void, endBlock_0dpuY9coTlraj8JXIe2BzVw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p) {
	NI topBlock;
	NI T1_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* blockEnd;
	NI16 frameLen;
	T1_ = ((*p).blocks ? (*p).blocks->Sup.len : 0);
	topBlock = (NI)(T1_ - ((NI) 1));
	{
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T6_;
		if (!!(((*p).blocks->data[topBlock].label == NIM_NIL))) goto LA4_;
		memset((void*)T6_, 0, sizeof(T6_));
		T6_[0] = (*p).blocks->data[topBlock].label;
		blockEnd = ropecg_ail3PxtNU17Ini4A1vCFoA(NIM_NIL, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_586), T6_, 1);
	}
	goto LA2_;
	LA4_: ;
	{
		tyArray_j0xH32fTir0IvGY7WxQsQA T8_;
		memset((void*)T8_, 0, sizeof(T8_));
		blockEnd = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_174), T8_, 0);
	}
	LA2_: ;
	frameLen = (*p).blocks->data[topBlock].frameLen;
	{
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T13_;
		if (!(((NI16) 0) < frameLen)) goto LA11_;
		memset((void*)T13_, 0, sizeof(T13_));
		T13_[0] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (frameLen)));
		addf_8UUGW4xtgpag0J4uEnVLuQ(&blockEnd, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_587), T13_, 1);
	}
	LA11_: ;
	endBlock_cBt0RGG9a42nMd9aj15boUMA(p, blockEnd);
}

N_NIMCALL(void, genBlock_8mAL9ckajemzgfLPfeZVNoQ_7)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	NI oldBreakIdx;
	tyArray_j0xH32fTir0IvGY7WxQsQA T8_;
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = isEmptyType_9bToMoy0nns9a3tJPtRpLUVAvmgen((*n).typ);
		T3_ = !(T4_);
		if (!(T3_)) goto LA5_;
		T3_ = ((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0));
		LA5_: ;
		if (!T3_) goto LA6_;
		getTemp_AAMs9asc5S78MBo8z9bTltgw(p, (*n).typ, d, NIM_FALSE);
	}
	LA6_: ;
	oldBreakIdx = (*p).breakIdx;
	memset((void*)T8_, 0, sizeof(T8_));
	(*p).breakIdx = startBlock_0yHaXWrgTt8ykj8X9aq9b9cxQ(p, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_290), T8_, 0);
	{
		tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* sym;
		if (!!(((*(*n).kindU.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA11_;
		sym = (*(*n).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym;
		(*sym).loc.k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 10);
		(*sym).position = (NI)((*p).breakIdx + ((NI) 1));
	}
	LA11_: ;
	expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*n).kindU.S6.sons->data[((NI) 1)], d);
	endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
	(*p).breakIdx = oldBreakIdx;
}

N_NIMCALL(void, genStmtListExpr_8mAL9ckajemzgfLPfeZVNoQ_8)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	NI length;
	length = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
	{
		NI i;
		NI colontmp_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)(length - ((NI) 2));
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA3;
				i = res;
				genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, (*n).kindU.S6.sons->data[i]);
				res += ((NI) 1);
			} LA3: ;
		}
	}
	{
		if (!(((NI) 0) < length)) goto LA6_;
		expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*n).kindU.S6.sons->data[(NI)(length - ((NI) 1))], d);
	}
	LA6_: ;
}

N_NIMCALL(void, genIf_8mAL9ckajemzgfLPfeZVNoQ_9)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* lelse;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* lend;
	memset((void*)(&a), 0, sizeof(a));
	lelse = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = isEmptyType_9bToMoy0nns9a3tJPtRpLUVAvmgen((*n).typ);
		T3_ = !(T4_);
		if (!(T3_)) goto LA5_;
		T3_ = ((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0));
		LA5_: ;
		if (!T3_) goto LA6_;
		getTemp_AAMs9asc5S78MBo8z9bTltgw(p, (*n).typ, d, NIM_FALSE);
	}
	LA6_: ;
	genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, n);
	lend = getLabel_VMw2SYHH12eNnC21DncHWQ_4(p);
	{
		NI i;
		NI colontmp_;
		NI T9_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T9_ = (NI)0;
		T9_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
		colontmp_ = (NI)(T9_ - ((NI) 1));
		res = ((NI) 0);
		{
			while (1) {
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
				if (!(res <= colontmp_)) goto LA11;
				i = res;
				{
					NIM_BOOL T14_;
					T14_ = (NIM_BOOL)0;
					T14_ = ((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 1));
					if (!(T14_)) goto LA15_;
					T14_ = isEmptyType_9bToMoy0nns9a3tJPtRpLUVAvmgen((*n).typ);
					LA15_: ;
					if (!T14_) goto LA16_;
					(*d).k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0);
				}
				LA16_: ;
				it = (*n).kindU.S6.sons->data[i];
				{
					NI T20_;
					tyArray_j0xH32fTir0IvGY7WxQsQA T23_;
					NI T24_;
					tyArray_YB3ke0PEM9bcAj9bAsA619bJA T25_;
					T20_ = (NI)0;
					T20_ = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(it);
					if (!(T20_ == ((NI) 2))) goto LA21_;
					memset((void*)T23_, 0, sizeof(T23_));
					T24_ = (NI)0;
					T24_ = startBlock_0yHaXWrgTt8ykj8X9aq9b9cxQ(p, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_290), T23_, 0);
					initLocExprSingleUse_9biTBaXPz9cezuLjjWw9cSEGw(p, (*it).kindU.S6.sons->data[((NI) 0)], (&a));
					lelse = getLabel_VMw2SYHH12eNnC21DncHWQ_4(p);
					(*p).labels += ((NI) 1);
					memset((void*)T25_, 0, sizeof(T25_));
					T25_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
					T25_[1] = lelse;
					lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_589), T25_, 2);
					{
						NIM_BOOL T28_;
						tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T32_;
						tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T33_;
						T28_ = (NIM_BOOL)0;
						T28_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
						if (T28_) goto LA29_;
						T28_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
						LA29_: ;
						if (!T28_) goto LA30_;
						T32_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
						T32_ = s_OUiru83H7n4zC9cnXN2KbrQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
						add_UJnSY21g59awhvSFBxJ9a9aPg(T32_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_238));
						expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*it).kindU.S6.sons->data[((NI) 1)], d);
						T33_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
						T33_ = s_OUiru83H7n4zC9cnXN2KbrQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
						add_UJnSY21g59awhvSFBxJ9a9aPg(T33_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_297));
					}
					goto LA26_;
					LA30_: ;
					{
						expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*it).kindU.S6.sons->data[((NI) 1)], d);
					}
					LA26_: ;
					endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
					{
						NI T37_;
						tyArray_ZqT9cbUNKsl55MABiLlPDxA T40_;
						T37_ = (NI)0;
						T37_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
						if (!(((NI) 1) < T37_)) goto LA38_;
						memset((void*)T40_, 0, sizeof(T40_));
						T40_[0] = lend;
						lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_590), T40_, 1);
					}
					LA38_: ;
					fixLabel_ut0GUS8pCCGZkg3exqiq2w(p, lelse);
				}
				goto LA18_;
				LA21_: ;
				{
					NI T42_;
					tyArray_j0xH32fTir0IvGY7WxQsQA T45_;
					NI T46_;
					T42_ = (NI)0;
					T42_ = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(it);
					if (!(T42_ == ((NI) 1))) goto LA43_;
					memset((void*)T45_, 0, sizeof(T45_));
					T46_ = (NI)0;
					T46_ = startBlock_0yHaXWrgTt8ykj8X9aq9b9cxQ(p, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_290), T45_, 0);
					expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*it).kindU.S6.sons->data[((NI) 0)], d);
					endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
				}
				goto LA18_;
				LA43_: ;
				{
					internalError_MXmtqrCmYwtOPkDCFgUWKQ((*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_591));
				}
				LA18_: ;
				res += ((NI) 1);
			} LA11: ;
		}
	}
	{
		NI T50_;
		T50_ = (NI)0;
		T50_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
		if (!(((NI) 1) < T50_)) goto LA51_;
		fixLabel_ut0GUS8pCCGZkg3exqiq2w(p, lend);
	}
	LA51_: ;
}

N_NIMCALL(void, downConv_8mAL9ckajemzgfLPfeZVNoQ_10)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T3_) goto LA4_;
		T3_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*n).kindU.S6.sons->data[((NI) 0)], d);
	}
	goto LA1_;
	LA5_: ;
	{
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* dest;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* arg;
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* src;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* r;
		NIM_BOOL isRef;
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T10_;
		dest = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*n).typ, IL64(36028797033687312));
		arg = (*n).kindU.S6.sons->data[((NI) 0)];
		{
			while (1) {
				if (!((*arg).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 66))) goto LA9;
				arg = (*arg).kindU.S6.sons->data[((NI) 0)];
			} LA9: ;
		}
		src = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*arg).typ, IL64(36028797033687312));
		memset((void*)(&a), 0, sizeof(a));
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, arg, (&a));
		r = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
		T10_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
		T10_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*arg).typ, IL64(36028797019007248));
		isRef = ((14680064 &((NU64)1<<((NU)((*T10_).kind)&63U)))!=0);
		{
			if (!isRef) goto LA13_;
			add_UJnSY21g59awhvSFBxJ9a9aPg(&r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_592));
		}
		goto LA11_;
		LA13_: ;
		{
			add_UJnSY21g59awhvSFBxJ9a9aPg(&r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_167));
		}
		LA11_: ;
		{
			NI i;
			NI colontmp_;
			NI T17_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T17_ = (NI)0;
			T17_ = inheritanceDiff_kaOr3lZpnYFOzmAx9cN5LiA_2(dest, src);
			colontmp_ = (T17_ > 0? (T17_) : -(T17_));
			res = ((NI) 2);
			{
				while (1) {
					if (!(res <= colontmp_)) goto LA19;
					i = res;
					add_UJnSY21g59awhvSFBxJ9a9aPg(&r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_167));
					res += ((NI) 1);
				} LA19: ;
			}
		}
		{
			if (!isRef) goto LA22_;
			{
				NIM_BOOL T26_;
				tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T28_;
				tyArray_YB3ke0PEM9bcAj9bAsA619bJA T31_;
				T26_ = (NIM_BOOL)0;
				T26_ = ((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0));
				if (!(T26_)) goto LA27_;
				T28_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
				T28_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*n).typ, IL64(36028797019007248));
				T26_ = ((14680064 &((NU64)1<<((NU)((*T28_).kind)&63U)))!=0);
				LA27_: ;
				if (!T26_) goto LA29_;
				getTemp_AAMs9asc5S78MBo8z9bTltgw(p, (*n).typ, d, NIM_FALSE);
				memset((void*)T31_, 0, sizeof(T31_));
				T31_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&(*d)));
				T31_[1] = r;
				linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_593), T31_, 2);
			}
			goto LA24_;
			LA29_: ;
			{
				r = amp__OL8oYU3myMrLfqhcdP9b3Ig(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_52), r);
				putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*n).typ, r, a.s);
			}
			LA24_: ;
		}
		goto LA20_;
		LA22_: ;
		{
			putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*n).typ, r, a.s);
		}
		LA20_: ;
	}
	LA1_: ;
}

N_NIMCALL(void, upConv_8mAL9ckajemzgfLPfeZVNoQ_11)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* dest;
	memset((void*)(&a), 0, sizeof(a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n).kindU.S6.sons->data[((NI) 0)], (&a));
	dest = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*n).typ, IL64(36028797033687312));
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* r;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* nilCheck;
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t;
		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_Ejb3pIY519bW1IHfWPGBwwgcgen(dest);
		T3_ = !(T5_);
		LA4_: ;
		if (!T3_) goto LA6_;
		r = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
		nilCheck = NIM_NIL;
		t = skipTypes_pLCdCGDuirMe9cspwviV9aVA(a.t, IL64(36028797019007248));
		{
			while (1) {
				tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T23_;
				if (!((14680064 &((NU64)1<<((NU)((*t).kind)&63U)))!=0)) goto LA9;
				{
					if (!!(((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23)))) goto LA12_;
					nilCheck = r;
				}
				LA12_: ;
				{
					NIM_BOOL T16_;
					NIM_BOOL T18_;
					tyArray_ZqT9cbUNKsl55MABiLlPDxA T22_;
					T16_ = (NIM_BOOL)0;
					T16_ = !(((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23)));
					if (T16_) goto LA17_;
					T18_ = (NIM_BOOL)0;
					T18_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
					if (T18_) goto LA19_;
					T18_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
					LA19_: ;
					T16_ = !(T18_);
					LA17_: ;
					if (!T16_) goto LA20_;
					memset((void*)T22_, 0, sizeof(T22_));
					T22_[0] = r;
					r = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_132), T22_, 1);
				}
				LA20_: ;
				T23_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
				T23_ = lastSon_E41DMKHtT9c6sAMyyvhmSIw(t);
				t = skipTypes_pLCdCGDuirMe9cspwviV9aVA(T23_, IL64(36028797019007248));
			} LA9: ;
		}
		{
			NIM_BOOL T26_;
			T26_ = (NIM_BOOL)0;
			T26_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
			if (T26_) goto LA27_;
			T26_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA27_: ;
			if (!!(T26_)) goto LA28_;
			{
				while (1) {
					NIM_BOOL T32_;
					T32_ = (NIM_BOOL)0;
					T32_ = ((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17));
					if (!(T32_)) goto LA33_;
					T32_ = !(((*t).sons->data[((NI) 0)] == NIM_NIL));
					LA33_: ;
					if (!T32_) goto LA31;
					add_UJnSY21g59awhvSFBxJ9a9aPg(&r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_167));
					t = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*t).sons->data[((NI) 0)], IL64(36028797033646352));
				} LA31: ;
			}
		}
		LA28_: ;
		{
			tyArray_1UwZ4PfBDZcImViZT8dk0w T38_;
			if (!!((nilCheck == NIM_NIL))) goto LA36_;
			memset((void*)T38_, 0, sizeof(T38_));
			T38_[0] = nilCheck;
			T38_[1] = r;
			T38_[2] = genTypeInfo_x7sD9aHIDrXyWVDTVp9bclvA((*p).module, dest);
			linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_594), T38_, 3);
		}
		goto LA34_;
		LA36_: ;
		{
			tyArray_YB3ke0PEM9bcAj9bAsA619bJA T40_;
			memset((void*)T40_, 0, sizeof(T40_));
			T40_[0] = r;
			T40_[1] = genTypeInfo_x7sD9aHIDrXyWVDTVp9bclvA((*p).module, dest);
			linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_595), T40_, 2);
		}
		LA34_: ;
	}
	LA6_: ;
	{
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T45_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T46_;
		if (!!(((*(*(*n).kindU.S6.sons->data[((NI) 0)]).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17)))) goto LA43_;
		memset((void*)T45_, 0, sizeof(T45_));
		T45_[0] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, (*n).typ);
		T45_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
		T46_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T46_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_457), T45_, 2);
		putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*n).typ, T46_, a.s);
	}
	goto LA41_;
	LA43_: ;
	{
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T48_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T49_;
		memset((void*)T48_, 0, sizeof(T48_));
		T48_[0] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, dest);
		T48_[1] = addrLoc_YU9cO6gMkMct9bbzvzDM0Dzw_2((&a));
		T49_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T49_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_456), T48_, 2);
		putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*n).typ, T49_, a.s);
	}
	LA41_: ;
}

N_NIMCALL(void, genRangeChck_s6WVujc8IISl9b7Y39bTXvlw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* magic) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* dest;
	memset((void*)(&a), 0, sizeof(a));
	dest = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*n).typ, IL64(36028797027395856));
	{
		NIM_BOOL T3_;
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T5_;
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T8_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T9_;
		T3_ = (NIM_BOOL)0;
		T3_ = !((((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 3))&31U)))!=0));
		if (T3_) goto LA4_;
		T5_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
		T5_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA(dest, 1048576);
		T3_ = ((IL64(34084860461056) &((NU64)1<<((NU)((*T5_).kind)&63U)))!=0);
		LA4_: ;
		if (!T3_) goto LA6_;
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n).kindU.S6.sons->data[((NI) 0)], (&a));
		memset((void*)T8_, 0, sizeof(T8_));
		T8_[0] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, dest);
		T8_[1] = rdCharLoc_YU9cO6gMkMct9bbzvzDM0Dzw_3((&a));
		T9_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T9_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_457), T8_, 2);
		putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*n).typ, T9_, a.s);
	}
	goto LA1_;
	LA6_: ;
	{
		tyArray_zr9bwyAl6fC7FLYwf5Lbz5w T11_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T12_;
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n).kindU.S6.sons->data[((NI) 0)], (&a));
		memset((void*)T11_, 0, sizeof(T11_));
		T11_[0] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, dest);
		T11_[1] = rdCharLoc_YU9cO6gMkMct9bbzvzDM0Dzw_3((&a));
		T11_[2] = genLiteral_9cX45zW07vmEVg5MVCgp3Qg(p, (*n).kindU.S6.sons->data[((NI) 1)], dest);
		T11_[3] = genLiteral_9cX45zW07vmEVg5MVCgp3Qg(p, (*n).kindU.S6.sons->data[((NI) 2)], dest);
		T11_[4] = rope_53CHEX05HP0HacydnwoUYg(magic);
		T12_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T12_ = ropecg_ail3PxtNU17Ini4A1vCFoA((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_596), T11_, 5);
		putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, dest, T12_, a.s);
	}
	LA1_: ;
}

N_NIMCALL(void, convStrToCStr_8mAL9ckajemzgfLPfeZVNoQ_12)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T1_;
	tyArray_ZqT9cbUNKsl55MABiLlPDxA T2_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T3_;
	memset((void*)(&a), 0, sizeof(a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n).kindU.S6.sons->data[((NI) 0)], (&a));
	T1_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
	T1_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*n).typ, IL64(36028797027395856));
	memset((void*)T2_, 0, sizeof(T2_));
	T2_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
	T3_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T3_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_518), T2_, 1);
	putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, T1_, T3_, a.s);
}

N_NIMCALL(void, convCStrToStr_8mAL9ckajemzgfLPfeZVNoQ_13)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T1_;
	tyArray_ZqT9cbUNKsl55MABiLlPDxA T2_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T3_;
	memset((void*)(&a), 0, sizeof(a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n).kindU.S6.sons->data[((NI) 0)], (&a));
	T1_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
	T1_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*n).typ, IL64(36028797027395856));
	memset((void*)T2_, 0, sizeof(T2_));
	T2_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
	T3_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T3_ = ropecg_ail3PxtNU17Ini4A1vCFoA((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_437), T2_, 1);
	putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, T1_, T3_, a.s);
	gcUsage_Pb60oErhArqGlPPn4s2Zow(n);
}

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

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

N_NIMCALL(void, genClosure_8mAL9ckajemzgfLPfeZVNoQ_14)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	{
		NIM_BOOL T3_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* tmp;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T6_;
		tyArray_1UwZ4PfBDZcImViZT8dk0w T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = isConstClosure_cw9b4FeB3czQDBAn8OhomGAcgen(n);
		if (!T3_) goto LA4_;
		(*(*p).module).labels += ((NI) 1);
		T6_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T6_ = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) ((*(*p).module).labels)));
		tmp = amp__OL8oYU3myMrLfqhcdP9b3Ig(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_600), T6_);
		memset((void*)T7_, 0, sizeof(T7_));
		T7_[0] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, (*n).typ);
		T7_[1] = tmp;
		T7_[2] = genConstExpr_9ay3JbWaSQA4xkrI8svQaZQ_2(p, n);
		addf_8UUGW4xtgpag0J4uEnVLuQ(&(*(*p).module).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_558), T7_, 3);
		putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*n).typ, tmp, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 1));
	}
	goto LA1_;
	LA4_: ;
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp_2;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
		tyArray_1UwZ4PfBDZcImViZT8dk0w T14_;
		memset((void*)(&tmp_2), 0, sizeof(tmp_2));
		memset((void*)(&a), 0, sizeof(a));
		memset((void*)(&b), 0, sizeof(b));
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n).kindU.S6.sons->data[((NI) 0)], (&a));
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n).kindU.S6.sons->data[((NI) 1)], (&b));
		{
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T11_;
			T11_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
			T11_ = skipConv_6rsSLwtlU9c53a6w69be5JlQ((*n).kindU.S6.sons->data[((NI) 0)]);
			if (!((*T11_).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 155))) goto LA12_;
			internalError_MXmtqrCmYwtOPkDCFgUWKQ((*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_601));
		}
		LA12_: ;
		getTemp_AAMs9asc5S78MBo8z9bTltgw(p, (*n).typ, (&tmp_2), NIM_FALSE);
		memset((void*)T14_, 0, sizeof(T14_));
		T14_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&tmp_2));
		T14_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
		T14_[2] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&b));
		linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_602), T14_, 3);
		putLocIntoDest_SkhzpH2DDHJ7pbmCpsHIPg(p, d, (&tmp_2));
	}
	LA1_: ;
}

static N_INLINE(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, assignLabel_0yetoRpNywf6Y7ei9aZS9c0Acgen)(tyObject_TBlock_GFhahvekTq3dDOkWyhchMA* b) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T1_;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T1_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T1_ = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) ((*b).id)));
	unsureAsgnRef((void**) (&(*b).label), amp__OL8oYU3myMrLfqhcdP9b3Ig(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_323), T1_));
	result = (*b).label;
	return result;
}

N_NIMCALL(void, genComputedGoto_UtJx89cn0a8CNSWWmaj6raA_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NI casePos;
	NI arraySize;
	NI id;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* tmp;
	tyArray_ZqT9cbUNKsl55MABiLlPDxA T27_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* gotoArray;
	tyArray_YB3ke0PEM9bcAj9bAsA619bJA T28_;
	tyArray_ZqT9cbUNKsl55MABiLlPDxA T33_;
	NI topBlock;
	NI T34_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* oldBody;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* tailB;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* tailA;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* caseStmt;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyArray_YB3ke0PEM9bcAj9bAsA619bJA T42_;
{	casePos = ((NI) -1);
	arraySize = (NI)0;
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(n);
		colontmp_ = (T2_ - 1);
		res = ((NI) 0);
		{
			while (1) {
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				it = (*n).kindU.S6.sons->data[i];
				{
					NI64 aSize;
					if (!((*it).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 97))) goto LA7_;
					{
						tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T11_;
						T11_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
						T11_ = lastSon_esDJA7239bJDiq4UrX9aHCjg(it);
						if (!!(((*T11_).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 85)))) goto LA12_;
						localError_GarD0CQJ5aQhoHekHYinVQ((*it).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_604));
						goto BeforeRet_;
					}
					LA12_: ;
					casePos = i;
					aSize = lengthOrd_HUiBYxvKiECXCv8BzQNheg_3((*(*it).kindU.S6.sons->data[((NI) 0)]).typ);
					{
						if (!(IL64(10000) < aSize)) goto LA16_;
						localError_GarD0CQJ5aQhoHekHYinVQ((*it).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_605));
						goto BeforeRet_;
					}
					LA16_: ;
					arraySize = ((NI) (aSize));
					{
						NI64 T20_;
						T20_ = (NI64)0;
						T20_ = firstOrd_HUiBYxvKiECXCv8BzQNheg((*(*it).kindU.S6.sons->data[((NI) 0)]).typ);
						if (!!((T20_ == IL64(0)))) goto LA21_;
						localError_GarD0CQJ5aQhoHekHYinVQ((*it).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_606));
						goto BeforeRet_;
					}
					LA21_: ;
				}
				LA7_: ;
				res += ((NI) 1);
			} LA4: ;
		}
	}
	{
		if (!(casePos < ((NI) 0))) goto LA25_;
		localError_GarD0CQJ5aQhoHekHYinVQ((*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_607));
		goto BeforeRet_;
	}
	LA25_: ;
	id = (NI)(((NI) ((*p).labels)) + ((NI) 1));
	(*p).labels += (NI)(arraySize + ((NI) 1));
	memset((void*)T27_, 0, sizeof(T27_));
	T27_[0] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (id)));
	tmp = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_608), T27_, 1);
	memset((void*)T28_, 0, sizeof(T28_));
	T28_[0] = tmp;
	T28_[1] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (arraySize)));
	gotoArray = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_609), T28_, 2);
	{
		NI i_2;
		NI colontmp__2;
		NI res_2;
		i_2 = (NI)0;
		colontmp__2 = (NI)0;
		colontmp__2 = (NI)(arraySize - ((NI) 1));
		res_2 = ((NI) 1);
		{
			while (1) {
				tyArray_ZqT9cbUNKsl55MABiLlPDxA T32_;
				if (!(res_2 <= colontmp__2)) goto LA31;
				i_2 = res_2;
				memset((void*)T32_, 0, sizeof(T32_));
				T32_[0] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) ((NI)(((NI) (id)) + i_2))));
				addf_8UUGW4xtgpag0J4uEnVLuQ(&gotoArray, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_610), T32_, 1);
				res_2 += ((NI) 1);
			} LA31: ;
		}
	}
	memset((void*)T33_, 0, sizeof(T33_));
	T33_[0] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) ((NI)(((NI) (id)) + arraySize))));
	addf_8UUGW4xtgpag0J4uEnVLuQ(&gotoArray, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_611), T33_, 1);
	line_ALdLmqKb9cyvVSETUUyUh9aQ(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0), gotoArray);
	T34_ = ((*p).blocks ? (*p).blocks->Sup.len : 0);
	topBlock = (NI)(T34_ - ((NI) 1));
	oldBody = (*p).blocks->data[topBlock].sections[(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2))- 0];
	asgnRefNoCycle((void**) (&(*p).blocks->data[topBlock].sections[(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2))- 0]), NIM_NIL);
	{
		NI j;
		NI colontmp__3;
		NI colontmp__4;
		NI T36_;
		NI res_3;
		j = (NI)0;
		colontmp__3 = (NI)0;
		colontmp__4 = (NI)0;
		colontmp__3 = (NI)(casePos + ((NI) 1));
		T36_ = (NI)0;
		T36_ = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(n);
		colontmp__4 = (T36_ - 1);
		res_3 = colontmp__3;
		{
			while (1) {
				if (!(res_3 <= colontmp__4)) goto LA38;
				j = res_3;
				genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, (*n).kindU.S6.sons->data[j]);
				res_3 += ((NI) 1);
			} LA38: ;
		}
	}
	tailB = (*p).blocks->data[topBlock].sections[(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2))- 0];
	asgnRefNoCycle((void**) (&(*p).blocks->data[topBlock].sections[(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2))- 0]), NIM_NIL);
	{
		NI j_2;
		NI colontmp__5;
		NI res_4;
		j_2 = (NI)0;
		colontmp__5 = (NI)0;
		colontmp__5 = (NI)(casePos - ((NI) 1));
		res_4 = ((NI) 0);
		{
			while (1) {
				if (!(res_4 <= colontmp__5)) goto LA41;
				j_2 = res_4;
				genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, (*n).kindU.S6.sons->data[j_2]);
				res_4 += ((NI) 1);
			} LA41: ;
		}
	}
	tailA = (*p).blocks->data[topBlock].sections[(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2))- 0];
	asgnRefNoCycle((void**) (&(*p).blocks->data[topBlock].sections[(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2))- 0]), amp__FyliSLNPyN7IibfEAQfpRA(oldBody, tailA));
	caseStmt = (*n).kindU.S6.sons->data[casePos];
	memset((void*)(&a), 0, sizeof(a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*caseStmt).kindU.S6.sons->data[((NI) 0)], (&a));
	memset((void*)T42_, 0, sizeof(T42_));
	T42_[0] = tmp;
	T42_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
	lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_612), T42_, 2);
	{
		NI i_3;
		NI colontmp__6;
		NI T44_;
		NI res_5;
		i_3 = (NI)0;
		colontmp__6 = (NI)0;
		T44_ = (NI)0;
		T44_ = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(caseStmt);
		colontmp__6 = (T44_ - 1);
		res_5 = ((NI) 1);
		{
			while (1) {
				tyArray_j0xH32fTir0IvGY7WxQsQA T47_;
				NI T48_;
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it_2;
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T58_;
				tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T59_;
				tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T60_;
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_2;
				tyArray_YB3ke0PEM9bcAj9bAsA619bJA T61_;
				if (!(res_5 <= colontmp__6)) goto LA46;
				i_3 = res_5;
				memset((void*)T47_, 0, sizeof(T47_));
				T48_ = (NI)0;
				T48_ = startBlock_0yHaXWrgTt8ykj8X9aq9b9cxQ(p, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_290), T47_, 0);
				it_2 = (*caseStmt).kindU.S6.sons->data[i_3];
				{
					NI j_3;
					NI colontmp__7;
					NI T50_;
					NI res_6;
					j_3 = (NI)0;
					colontmp__7 = (NI)0;
					T50_ = (NI)0;
					T50_ = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(it_2);
					colontmp__7 = (NI)(T50_ - ((NI) 2));
					res_6 = ((NI) 0);
					{
						while (1) {
							NI64 val;
							tyArray_ZqT9cbUNKsl55MABiLlPDxA T57_;
							if (!(res_6 <= colontmp__7)) goto LA52;
							j_3 = res_6;
							{
								if (!((*(*it_2).kindU.S6.sons->data[j_3]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA55_;
								localError_GarD0CQJ5aQhoHekHYinVQ((*it_2).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_613));
								goto BeforeRet_;
							}
							LA55_: ;
							val = getOrdValue_MzTDl1zEXJLD4sql7PhCwA((*it_2).kindU.S6.sons->data[j_3]);
							memset((void*)T57_, 0, sizeof(T57_));
							T57_[0] = intLiteral_cVf7QPXGcGBUB7P9cfyCtRw((NI64)((NI64)(val + ((NI64) (id))) + IL64(1)));
							lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_614), T57_, 1);
							res_6 += ((NI) 1);
						} LA52: ;
					}
				}
				T58_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
				T58_ = lastSon_esDJA7239bJDiq4UrX9aHCjg(it_2);
				genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, T58_);
				T59_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
				T59_ = s_OUiru83H7n4zC9cnXN2KbrQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				add_cDalAhgBlDWoYHadkaqqxw(T59_, tailB);
				T60_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
				T60_ = s_OUiru83H7n4zC9cnXN2KbrQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				add_cDalAhgBlDWoYHadkaqqxw(T60_, tailA);
				memset((void*)(&a_2), 0, sizeof(a_2));
				initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*caseStmt).kindU.S6.sons->data[((NI) 0)], (&a_2));
				memset((void*)T61_, 0, sizeof(T61_));
				T61_[0] = tmp;
				T61_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a_2));
				lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_612), T61_, 2);
				endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
				res_5 += ((NI) 1);
			} LA46: ;
		}
	}
	}BeforeRet_: ;
}

N_NIMCALL(void, genWhileStmt_QrTB5DOwbDX9bKAW7PNbuJA_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	NI oldBreakIdx;
	tyArray_j0xH32fTir0IvGY7WxQsQA T1_;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* loopBody;
	memset((void*)(&a), 0, sizeof(a));
	(*p).withinLoop += ((NI) 1);
	genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
	oldBreakIdx = (*p).breakIdx;
	memset((void*)T1_, 0, sizeof(T1_));
	(*p).breakIdx = startBlock_0yHaXWrgTt8ykj8X9aq9b9cxQ(p, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_603), T1_, 0);
	(*p).blocks->data[(*p).breakIdx].isLoop = NIM_TRUE;
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*t).kindU.S6.sons->data[((NI) 0)], (&a));
	{
		NIM_BOOL T4_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* label;
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T8_;
		T4_ = (NIM_BOOL)0;
		T4_ = !(((*(*t).kindU.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 6)));
		if (T4_) goto LA5_;
		T4_ = ((*(*t).kindU.S6.sons->data[((NI) 0)]).kindU.S1.intVal == IL64(0));
		LA5_: ;
		if (!T4_) goto LA6_;
		label = assignLabel_0yetoRpNywf6Y7ei9aZS9c0Acgen((&(*p).blocks->data[(*p).breakIdx]));
		memset((void*)T8_, 0, sizeof(T8_));
		T8_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
		T8_[1] = label;
		lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_589), T8_, 2);
	}
	LA6_: ;
	loopBody = (*t).kindU.S6.sons->data[((NI) 1)];
	{
		NIM_BOOL T11_;
		T11_ = (NIM_BOOL)0;
		T11_ = stmtsContainPragma_9aY8Dd0aB4xmQTh5kptvVOg(loopBody, ((tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw) 185));
		if (!(T11_)) goto LA12_;
		T11_ = ((CC_78I18QZNZFIv9ah7oETc0jg[(cCompiler_Dz9bRorQ2m6cBt9awpi4iwPw)- 1].Field19 &(1U<<((NU)(((tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg) 1))&7U)))!=0);
		LA12_: ;
		if (!T11_) goto LA13_;
		{
			NIM_BOOL T17_;
			NI T18_;
			T17_ = (NIM_BOOL)0;
			T18_ = (NI)0;
			T18_ = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(loopBody);
			T17_ = (T18_ == ((NI) 2));
			if (!(T17_)) goto LA19_;
			T17_ = ((*(*loopBody).kindU.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1));
			LA19_: ;
			if (!T17_) goto LA20_;
			loopBody = (*loopBody).kindU.S6.sons->data[((NI) 1)];
		}
		LA20_: ;
		genComputedGoto_UtJx89cn0a8CNSWWmaj6raA_3(p, loopBody);
	}
	goto LA9_;
	LA13_: ;
	{
		genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, loopBody);
	}
	LA9_: ;
	{
		tyArray_j0xH32fTir0IvGY7WxQsQA T27_;
		if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 19))&31U)))!=0)) goto LA25_;
		memset((void*)T27_, 0, sizeof(T27_));
		linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_615), T27_, 0);
	}
	LA25_: ;
	endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
	(*p).breakIdx = oldBreakIdx;
	(*p).withinLoop -= ((NI) 1);
}

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_GarD0CQJ5aQhoHekHYinVQ((*value).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_616));
	}
	goto LA1_;
	LA3_: ;
	{
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T6_;
		memset((void*)T6_, 0, sizeof(T6_));
		T6_[0] = rope_pEztpD6TFe5jk3aCrOSACA((*value).kindU.S1.intVal);
		lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_617), T6_, 1);
	}
	LA1_: ;
}

N_NIMCALL(void, varInDynamicLib_5LEMfE09buQIXg39bLkcpjww_8)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* sym) {
	tyObject_TLib_NBMxlJ6g3utqUlplqTTHkA* lib;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* extname;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* tmp;
	tyArray_EcJXtY9cAr9bpvybuP0XpjyQ T1_;
	NimStringDesc* T2_;
	tyArray_YB3ke0PEM9bcAj9bAsA619bJA T3_;
	lib = (*sym).annex;
	extname = (*sym).loc.r;
	loadDynamicLib_m4Ysv2il9cQk9aitaifyqqQg(m, lib);
	(*sym).loc.flags |= ((NU16)1)<<((((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 0))%(sizeof(NU16)*8));
	tmp = mangleDynLibProc_Kt7Li7NCe9c9bR9bQfvgl6xxQ(sym);
	asgnRefNoCycle((void**) (&(*sym).loc.r), tmp);
	(*m).labels += ((NI) 2);
	memset((void*)T1_, 0, sizeof(T1_));
	T1_[0] = tmp;
	T1_[1] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2(m, (*sym).typ);
	T1_[2] = (*lib).name;
	T2_ = (NimStringDesc*)0;
	T2_ = dollar__PstQrDfj9a7hGXM74AN2wzg(extname);
	T1_[3] = makeCString_c9cmJUs9bNfunHyoffjBZxyg(T2_);
	appcg_TJmWJ0eU9byq14ToBfxDtXQ(m, &(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_618), T1_, 4);
	memset((void*)T3_, 0, sizeof(T3_));
	T3_[0] = (*sym).loc.r;
	T3_[1] = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2(m, (*sym).loc.t);
	addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_619), T3_, 2);
}

N_NIMCALL(void, assignGlobalVar_25ePRX3l19c3c1n9bFXQUURw_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* s) {
{	{
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T5_;
		if (!((*s).loc.k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA3_;
		T5_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T5_ = mangleName_qNuXhnV9aHm5hP7aXP809asQ((*p).module, s);
		fillLoc_FYZoK6R9akILOlR1JSuEh3g((&(*s).loc), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 3), (*s).typ, T5_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 3));
	}
	LA3_: ;
	{
		tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* q;
		if (!(((*s).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 4))&15U)))!=0)) goto LA8_;
		q = findPendingModule_zx9aqFxulQ7sumEBL5kRUdg((*p).module, s);
		{
			NIM_BOOL T12_;
			NIM_BOOL T14_;
			T12_ = (NIM_BOOL)0;
			T12_ = !((q == NIM_NIL));
			if (!(T12_)) goto LA13_;
			T14_ = (NIM_BOOL)0;
			T14_ = containsOrIncl_B0EhVMrh5BBBZOOtYjAvVg((&(*q).declaredThings), (*s).Sup.id);
			T12_ = !(T14_);
			LA13_: ;
			if (!T12_) goto LA15_;
			varInDynamicLib_5LEMfE09buQIXg39bLkcpjww_8(q, s);
		}
		goto LA10_;
		LA15_: ;
		{
			asgnRefNoCycle((void**) (&(*s).loc.r), mangleDynLibProc_Kt7Li7NCe9c9bR9bQfvgl6xxQ(s));
		}
		LA10_: ;
		goto BeforeRet_;
	}
	LA8_: ;
	useHeader_5LEMfE09buQIXg39bLkcpjww_3((*p).module, s);
	{
		if (!(((*s).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 3))&15U)))!=0)) goto LA20_;
		goto BeforeRet_;
	}
	LA20_: ;
	{
		if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 23))&63U)))!=0)) goto LA24_;
		declareThreadVar_xgBfR60K7h9cY7wbsHV20Dg((*p).module, s, (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 5))&63U)))!=0));
	}
	goto LA22_;
	LA24_: ;
	{
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* decl;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* td;
		decl = NIM_NIL;
		td = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, (*s).loc.t);
		{
			tyArray_ZqT9cbUNKsl55MABiLlPDxA T43_;
			if (!((*s).constraint == 0)) goto LA29_;
			{
				if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 5))&63U)))!=0)) goto LA33_;
				add_UJnSY21g59awhvSFBxJ9a9aPg(&decl, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_256));
			}
			LA33_: ;
			add_cDalAhgBlDWoYHadkaqqxw(&decl, td);
			{
				if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 8))&63U)))!=0)) goto LA37_;
				add_UJnSY21g59awhvSFBxJ9a9aPg(&decl, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_129));
			}
			LA37_: ;
			{
				if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 7))&63U)))!=0)) goto LA41_;
				add_UJnSY21g59awhvSFBxJ9a9aPg(&decl, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_130));
			}
			LA41_: ;
			memset((void*)T43_, 0, sizeof(T43_));
			T43_[0] = (*s).loc.r;
			addf_8UUGW4xtgpag0J4uEnVLuQ(&decl, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_258), T43_, 1);
		}
		goto LA27_;
		LA29_: ;
		{
			NimStringDesc* T45_;
			tyArray_YB3ke0PEM9bcAj9bAsA619bJA T46_;
			T45_ = (NimStringDesc*)0;
			T45_ = rawNewString((*(*s).constraint).kindU.S3.strVal->Sup.len + 3);
appendString(T45_, (*(*s).constraint).kindU.S3.strVal);
appendString(T45_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_529));
			memset((void*)T46_, 0, sizeof(T46_));
			T46_[0] = td;
			T46_[1] = (*s).loc.r;
			decl = percent__tH0lgOCTcFVFSKThSUgFEg(T45_, T46_, 2);
		}
		LA27_: ;
		add_cDalAhgBlDWoYHadkaqqxw(&(*(*p).module).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], decl);
	}
	LA22_: ;
	{
		if (!(((NI) 0) < (*p).withinLoop)) goto LA49_;
		resetLoc_B9bNAYVEwjQtkUkvoOVhV2Q(p, (&(*s).loc));
	}
	LA49_: ;
	{
		tyArray_1UwZ4PfBDZcImViZT8dk0w T55_;
		NimStringDesc* T56_;
		NimStringDesc* T57_;
		if (!(((*(*(*p).module).module).options & 163840) == 163840)) goto LA53_;
		memset((void*)T55_, 0, sizeof(T55_));
		T56_ = (NimStringDesc*)0;
		T56_ = rawNewString((*(*(*s).owner).name).s->Sup.len + (*(*s).name).s->Sup.len + 1);
appendString(T56_, (*(*(*s).owner).name).s);
appendChar(T56_, 46);
appendString(T56_, (*(*s).name).s);
		T57_ = (NimStringDesc*)0;
		T57_ = nsuNormalize(T56_);
		T55_[0] = makeCString_c9cmJUs9bNfunHyoffjBZxyg(T57_);
		T55_[1] = (*s).loc.r;
		T55_[2] = genTypeInfo_x7sD9aHIDrXyWVDTVp9bclvA((*p).module, (*s).typ);
		appcg_TJmWJ0eU9byq14ToBfxDtXQ((*p).module, &(*(*p).module).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 15))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_620), T55_, 3);
	}
	LA53_: ;
	}BeforeRet_: ;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genTraverseProcForGlobal_qNuXhnV9aHm5hP7aXP809asQ_4)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* s) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T1_;
	tyObject_TTraversalClosure_xQv4a9atAYFpL11GCS9cY9bCg c;
	tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* sLoc;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* header;
	tyArray_ZqT9cbUNKsl55MABiLlPDxA T8_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* generatedProc;
	tyArray_EcJXtY9cAr9bpvybuP0XpjyQ T9_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T10_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T11_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T12_;
	tyArray_ZqT9cbUNKsl55MABiLlPDxA T13_;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T1_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T1_ = genTypeInfo_x7sD9aHIDrXyWVDTVp9bclvA(m, (*s).loc.t);
	T1_;
	memset((void*)(&c), 0, sizeof(c));
	p = newProc_Mqi1a0mHlQ8XakVweFEAvQ(NIM_NIL, m);
	sLoc = (*s).loc.r;
	result = getTempName_54CrPIOFKsrtQd59cl9bHH3A(m);
	{
		NIM_BOOL T4_;
		T4_ = (NIM_BOOL)0;
		T4_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 23))&63U)))!=0);
		if (!(T4_)) goto LA5_;
		T4_ = emulatedThreadVars_qJe2xBmGcgIoAQUJsGS9aGwcgen();
		LA5_: ;
		if (!T4_) goto LA6_;
		accessThreadLocalVar_25ePRX3l19c3c1n9bFXQUURw_4(p, s);
		sLoc = amp__OL8oYU3myMrLfqhcdP9b3Ig(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_315), sLoc);
	}
	LA6_: ;
	c.visitorFrmt = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_621));
	c.p = p;
	memset((void*)T8_, 0, sizeof(T8_));
	T8_[0] = result;
	header = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_622), T8_, 1);
	genTraverseProc_n9bXeejbbKQAlbhP9bvaDLvg_2((&c), sLoc, (*s).loc.t);
	memset((void*)T9_, 0, sizeof(T9_));
	T9_[0] = header;
	T10_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
	T10_ = s_OUiru83H7n4zC9cnXN2KbrQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
	T9_[1] = (*T10_);
	T11_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
	T11_ = s_OUiru83H7n4zC9cnXN2KbrQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1));
	T9_[2] = (*T11_);
	T12_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
	T12_ = s_OUiru83H7n4zC9cnXN2KbrQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	T9_[3] = (*T12_);
	generatedProc = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_205), T9_, 4);
	memset((void*)T13_, 0, sizeof(T13_));
	T13_[0] = header;
	addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 7))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_206), T13_, 1);
	add_cDalAhgBlDWoYHadkaqqxw(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], generatedProc);
	return result;
}

N_NIMCALL(void, registerGcRoot_LU3ZiAzKjVx9bULMPKRAZmw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* v) {
	{
		NIM_BOOL T3_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* prc;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T7_;
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((240 &(1U<<((NU)(gSelectedGC_Qq37YMpTZX6EGc9apygtZcg)&7U)))!=0);
		if (!(T3_)) goto LA4_;
		T3_ = containsGarbageCollectedRef_3xW85al2Ic6K09avBGxLjZg((*v).loc.t);
		LA4_: ;
		if (!T3_) goto LA5_;
		prc = genTraverseProcForGlobal_qNuXhnV9aHm5hP7aXP809asQ_4((*p).module, v);
		T7_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
		T7_ = procSec_OUiru83H7n4zC9cnXN2KbrQ_2cgen((*(*p).module).initProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1));
		memset((void*)T8_, 0, sizeof(T8_));
		T8_[0] = prc;
		appcg_TJmWJ0eU9byq14ToBfxDtXQ((*p).module, T7_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_623), T8_, 1);
	}
	LA5_: ;
}

static N_INLINE(NIM_BOOL, isAssignedImmediately_4MUa2M7mDMhaGJLAFrkWDwcgen)(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_FW3ctu15AiQkw2TcerUtOw((*n).typ);
		if (!T7_) goto LA8_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA8_: ;
	result = NIM_TRUE;
	}BeforeRet_: ;
	return result;
}

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

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

N_NIMCALL(void, genSingleVar_9c6v9b6B8RZkui111YH4cbEw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a) {
	tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* v;
	tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* targetProc;
{	v = (*(*a).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym;
	{
		if (!(((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 24))&63U)))!=0)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!(((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 31))&63U)))!=0)) goto LA7_;
		genGotoVar_4xOIY9bgIMy9bAzg2ZyIieBw(p, (*a).kindU.S6.sons->data[((NI) 2)]);
		goto BeforeRet_;
	}
	LA7_: ;
	targetProc = p;
	{
		if (!(((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0)) goto LA11_;
		{
			NIM_BOOL T15_;
			NIM_BOOL T16_;
			T15_ = (NIM_BOOL)0;
			T16_ = (NIM_BOOL)0;
			T16_ = (((*v).flags & 96) == 32);
			if (!(T16_)) goto LA17_;
			T16_ = ((*(*a).kindU.S6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1));
			LA17_: ;
			T15_ = T16_;
			if (!(T15_)) goto LA18_;
			T15_ = !((((*v).loc.flags & 72) == 0));
			LA18_: ;
			if (!T15_) goto LA19_;
			goto BeforeRet_;
		}
		LA19_: ;
		{
			if (!(((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 9))&63U)))!=0)) goto LA23_;
			targetProc = (*(*p).module).preInitProc;
		}
		LA23_: ;
		assignGlobalVar_25ePRX3l19c3c1n9bFXQUURw_5(targetProc, v);
		genObjectInit_rMJx6ytAq9c39bDIl369aHfYQ((*(*p).module).preInitProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1), (*v).typ, (&(*v).loc), NIM_TRUE);
		{
			NIM_BOOL T27_;
			T27_ = (NIM_BOOL)0;
			T27_ = (((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 6))&63U)))!=0);
			if (!(T27_)) goto LA28_;
			T27_ = !(((*(*(*p).module).g).generatedHeader == NIM_NIL));
			LA28_: ;
			if (!T27_) goto LA29_;
			genVarPrototypeAux_5LEMfE09buQIXg39bLkcpjww_7((*(*(*p).module).g).generatedHeader, v);
		}
		LA29_: ;
		registerGcRoot_LU3ZiAzKjVx9bULMPKRAZmw(p, v);
	}
	goto LA9_;
	LA11_: ;
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* value;
		NIM_BOOL imm;
		value = (*a).kindU.S6.sons->data[((NI) 2)];
		imm = isAssignedImmediately_4MUa2M7mDMhaGJLAFrkWDwcgen(value);
		{
			NIM_BOOL T34_;
			NIM_BOOL T35_;
			NIM_BOOL T36_;
			NIM_BOOL T38_;
			NIM_BOOL T42_;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* decl;
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp;
			T34_ = (NIM_BOOL)0;
			T35_ = (NIM_BOOL)0;
			T36_ = (NIM_BOOL)0;
			T36_ = imm;
			if (!(T36_)) goto LA37_;
			T38_ = (NIM_BOOL)0;
			T38_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
			if (T38_) goto LA39_;
			T38_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA39_: ;
			T36_ = T38_;
			LA37_: ;
			T35_ = T36_;
			if (!(T35_)) goto LA40_;
			T35_ = ((*p).splitDecls == ((NI) 0));
			LA40_: ;
			T34_ = T35_;
			if (!(T34_)) goto LA41_;
			T42_ = (NIM_BOOL)0;
			T42_ = containsHiddenPointer_3xW85al2Ic6K09avBGxLjZg_3((*v).typ);
			T34_ = !(T42_);
			LA41_: ;
			if (!T34_) goto LA43_;
			genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, a);
			decl = localVarDecl_y9bkicOZZUa8Z1PO76aWZ1A(p, v);
			memset((void*)(&tmp), 0, sizeof(tmp));
			{
				NIM_BOOL T47_;
				NIM_BOOL T48_;
				tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* params;
				tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ;
				tyArray_YB3ke0PEM9bcAj9bAsA619bJA T64_;
				T47_ = (NIM_BOOL)0;
				T48_ = (NIM_BOOL)0;
				T48_ = ((*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 (!(T48_)) goto LA49_;
				T48_ = ((*(*value).kindU.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
				LA49_: ;
				T47_ = T48_;
				if (!(T47_)) goto LA50_;
				T47_ = (((*(*(*value).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 25))&63U)))!=0);
				LA50_: ;
				if (!T47_) goto LA51_;
				params = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
				typ = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*(*value).kindU.S6.sons->data[((NI) 0)]).typ, IL64(36028797019007248));
				{
					NI i;
					NI colontmp_;
					NI T54_;
					NI res;
					i = (NI)0;
					colontmp_ = (NI)0;
					T54_ = (NI)0;
					T54_ = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(value);
					colontmp_ = (T54_ - 1);
					res = ((NI) 1);
					{
						while (1) {
							tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T63_;
							if (!(res <= colontmp_)) goto LA56;
							i = res;
							{
								tyArray_j0xH32fTir0IvGY7WxQsQA T61_;
								tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T62_;
								if (!!((params == NIM_NIL))) goto LA59_;
								memset((void*)T61_, 0, sizeof(T61_));
								T62_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
								T62_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_119), T61_, 0);
								add_cDalAhgBlDWoYHadkaqqxw(&params, T62_);
							}
							LA59_: ;
							T63_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
							T63_ = genOtherArg_s9cLboISJDCKnrSydrmec5g(p, value, i, typ);
							add_cDalAhgBlDWoYHadkaqqxw(&params, T63_);
							res += ((NI) 1);
						} LA56: ;
					}
				}
				memset((void*)T64_, 0, sizeof(T64_));
				T64_[0] = decl;
				T64_[1] = params;
				lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_624), T64_, 2);
			}
			goto LA45_;
			LA51_: ;
			{
				tyArray_YB3ke0PEM9bcAj9bAsA619bJA T66_;
				initLocExprSingleUse_9biTBaXPz9cezuLjjWw9cSEGw(p, value, (&tmp));
				memset((void*)T66_, 0, sizeof(T66_));
				T66_[0] = decl;
				T66_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&tmp));
				lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_625), T66_, 2);
			}
			LA45_: ;
			goto BeforeRet_;
		}
		LA43_: ;
		assignLocalVar_25ePRX3l19c3c1n9bFXQUURw(p, v);
		initLocalVar_RP2SxXcAXrKn9a9ayAhwfstg(p, v, imm);
	}
	LA9_: ;
	{
		if (!!(((*(*a).kindU.S6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA69_;
		genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(targetProc, a);
		loadInto_vkEx8Dn9aiGOI04WjvQIHIwcgen(targetProc, (*a).kindU.S6.sons->data[((NI) 0)], (*a).kindU.S6.sons->data[((NI) 2)], (&(*v).loc));
	}
	LA69_: ;
	}BeforeRet_: ;
}

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

N_NIMCALL(void, genVarTuple_UtJx89cn0a8CNSWWmaj6raA_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tup;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA field;
	NI L;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t;
{	memset((void*)(&tup), 0, sizeof(tup));
	memset((void*)(&field), 0, sizeof(field));
	{
		if (!!(((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 36)))) goto LA3_;
		internalError_MXmtqrCmYwtOPkDCFgUWKQ((*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_626));
	}
	LA3_: ;
	L = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
	{
		NI i;
		NI colontmp_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)(L - ((NI) 3));
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA7;
				i = res;
				{
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T12_;
					if (!!(((*(*n).kindU.S6.sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA10_;
					T12_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
					T12_ = lowerTupleUnpacking_ZXHtMZ0uz9cR0ZzQM8Y9cqUQ_2(n, (*p).prc);
					genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, T12_);
					goto BeforeRet_;
				}
				LA10_: ;
				res += ((NI) 1);
			} LA7: ;
		}
	}
	genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, n);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n).kindU.S6.sons->data[(NI)(L - ((NI) 1))], (&tup));
	t = skipTypes_pLCdCGDuirMe9cspwviV9aVA(tup.t, IL64(36028797019007248));
	{
		NI i_2;
		NI colontmp__2;
		NI res_2;
		i_2 = (NI)0;
		colontmp__2 = (NI)0;
		colontmp__2 = (NI)(L - ((NI) 3));
		res_2 = ((NI) 0);
		{
			while (1) {
				if (!(res_2 <= colontmp__2)) goto LA15;
				i_2 = res_2;
				{
					tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* v;
					v = (*(*n).kindU.S6.sons->data[i_2]).kindU.S4.sym;
					{
						if (!(((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 24))&63U)))!=0)) goto LA19_;
						goto LA16;
					}
					LA19_: ;
					{
						if (!(((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0)) goto LA23_;
						assignGlobalVar_25ePRX3l19c3c1n9bFXQUURw_5(p, v);
						genObjectInit_rMJx6ytAq9c39bDIl369aHfYQ(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1), (*v).typ, (&(*v).loc), NIM_TRUE);
						registerGcRoot_LU3ZiAzKjVx9bULMPKRAZmw(p, v);
					}
					goto LA21_;
					LA23_: ;
					{
						NIM_BOOL T26_;
						assignLocalVar_25ePRX3l19c3c1n9bFXQUURw(p, v);
						T26_ = (NIM_BOOL)0;
						T26_ = isAssignedImmediately_4MUa2M7mDMhaGJLAFrkWDwcgen((*n).kindU.S6.sons->data[(NI)(L - ((NI) 1))]);
						initLocalVar_RP2SxXcAXrKn9a9ayAhwfstg(p, v, T26_);
					}
					LA21_: ;
					initLoc_kfK3bi0HoV6YeIhyJNMmZw((&field), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), (*t).sons->data[i_2], tup.s);
					{
						tyArray_YB3ke0PEM9bcAj9bAsA619bJA T31_;
						if (!((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18))) goto LA29_;
						memset((void*)T31_, 0, sizeof(T31_));
						T31_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&tup));
						T31_[1] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (i_2)));
						field.r = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_200), T31_, 2);
					}
					goto LA27_;
					LA29_: ;
					{
						tyArray_YB3ke0PEM9bcAj9bAsA619bJA T37_;
						{
							if (!!(((*(*(*t).n).kindU.S6.sons->data[i_2]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA35_;
							internalError_MXmtqrCmYwtOPkDCFgUWKQ((*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_626));
						}
						LA35_: ;
						memset((void*)T37_, 0, sizeof(T37_));
						T37_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&tup));
						T37_[1] = mangleRecFieldName_wslMfVDEDMeDSka7bcmmYQ((*p).module, (*(*(*t).n).kindU.S6.sons->data[i_2]).kindU.S4.sym, t);
						field.r = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95), T37_, 2);
					}
					LA27_: ;
					putLocIntoDest_SkhzpH2DDHJ7pbmCpsHIPg(p, (&(*v).loc), (&field));
				} LA16: ;
				res_2 += ((NI) 1);
			} LA15: ;
		}
	}
	}BeforeRet_: ;
}

N_NIMCALL(void, genVarStmt_UtJx89cn0a8CNSWWmaj6raA_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
		colontmp_ = (NI)(T2_ - ((NI) 1));
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				{
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a;
					a = (*n).kindU.S6.sons->data[i];
					{
						if (!((*a).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 125))) goto LA8_;
						goto LA5;
					}
					LA8_: ;
					{
						if (!((*a).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 35))) goto LA12_;
						{
							if (!((*(*a).kindU.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA16_;
							genSingleVar_9c6v9b6B8RZkui111YH4cbEw(p, a);
						}
						goto LA14_;
						LA16_: ;
						{
							genClosureVar_9c6v9b6B8RZkui111YH4cbEw_2(p, a);
						}
						LA14_: ;
					}
					goto LA10_;
					LA12_: ;
					{
						genVarTuple_UtJx89cn0a8CNSWWmaj6raA_5(p, a);
					}
					LA10_: ;
				} LA5: ;
				res += ((NI) 1);
			} LA4: ;
		}
	}
}

static N_INLINE(NIM_BOOL, emitLazily_GBr9bkzyAXDTI9a9aPiuRoP7gcgen)(tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* s) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* T3_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((gGlobalOptions_j042VVDC9cT5ENYoXnmhhVg &(1U<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 2))&31U)))!=0);
	if (T1_) goto LA2_;
	T3_ = (tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw*)0;
	T3_ = getModule_0lPlu1uOok1rRK50z1V70A(s);
	T1_ = (((*T3_).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 26))&63U)))!=0);
	LA2_: ;
	result = T1_;
	return result;
}

N_NIMCALL(void, genConstStmt_QrTB5DOwbDX9bKAW7PNbuJA_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t) {
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(t);
		colontmp_ = (NI)(T2_ - ((NI) 1));
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				{
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
					tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* c;
					it = (*t).kindU.S6.sons->data[i];
					{
						if (!((*it).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 125))) goto LA8_;
						goto LA5;
					}
					LA8_: ;
					{
						if (!!(((*it).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 102)))) goto LA12_;
						internalError_MXmtqrCmYwtOPkDCFgUWKQ((*t).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_627));
					}
					LA12_: ;
					c = (*(*it).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym;
					{
						NIM_BOOL T16_;
						T16_ = (NIM_BOOL)0;
						T16_ = containsCompileTimeOnly_XI7vH8jtAcp7rWqTmfZOSg_8((*c).typ);
						if (!T16_) goto LA17_;
						goto LA5;
					}
					goto LA14_;
					LA17_: ;
					{
						NIM_BOOL T20_;
						NIM_BOOL T21_;
						NI T24_;
						T20_ = (NIM_BOOL)0;
						T21_ = (NIM_BOOL)0;
						T21_ = ((17629184 &((NU64)1<<((NU)((*(*c).typ).kind)&63U)))!=0);
						if (!(T21_)) goto LA22_;
						T21_ = !((((*c).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 3))&15U)))!=0));
						LA22_: ;
						T20_ = T21_;
						if (!(T20_)) goto LA23_;
						T24_ = (NI)0;
						T24_ = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting((*c).ast);
						T20_ = !((T24_ == ((NI) 0)));
						LA23_: ;
						if (!T20_) goto LA25_;
						{
							NIM_BOOL T29_;
							T29_ = (NIM_BOOL)0;
							T29_ = emitLazily_GBr9bkzyAXDTI9a9aPiuRoP7gcgen(c);
							if (!!(T29_)) goto LA30_;
							requestConstImpl_FPHy1CFTscPwzvyW4X7txQ(p, c);
						}
						LA30_: ;
					}
					goto LA14_;
					LA25_: ;
					LA14_: ;
				} LA5: ;
				res += ((NI) 1);
			} LA4: ;
		}
	}
}

N_NIMCALL(void, genCaseStringBranch_Raq2iuoaLbUJRPT0h0iGbQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* e, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* labl, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** branches, NI branchesLen_0) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA x;
	NI length;
	memset((void*)(&x), 0, sizeof(x));
	length = sonsLen_qPWPHw7WgJeEVYUdcaRIig(b);
	{
		NI i;
		NI colontmp_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)(length - ((NI) 2));
		res = ((NI) 0);
		{
			while (1) {
				NI j;
				NI64 T4_;
				tyArray_1UwZ4PfBDZcImViZT8dk0w T5_;
				if (!(res <= colontmp_)) goto LA3;
				i = res;
				initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*b).kindU.S6.sons->data[i], (&x));
				T4_ = (NI64)0;
				T4_ = hashString_Pyx5T9crDr8ERTxY9apZjP2g((*(*b).kindU.S6.sons->data[i]).kindU.S3.strVal);
				j = ((NI) ((NI64)(T4_ & ((NI64) ((branchesLen_0-1))))));
				memset((void*)T5_, 0, sizeof(T5_));
				T5_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(e);
				T5_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&x));
				T5_[2] = labl;
				appcg_TJmWJ0eU9byq14ToBfxDtXQ((*p).module, &branches[j], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_629), T5_, 3);
				res += ((NI) 1);
			} LA3: ;
		}
	}
}

N_NIMCALL(void, exprBlock_8mAL9ckajemzgfLPfeZVNoQ_15)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyArray_j0xH32fTir0IvGY7WxQsQA T1_;
	NI T2_;
	memset((void*)T1_, 0, sizeof(T1_));
	T2_ = (NI)0;
	T2_ = startBlock_0yHaXWrgTt8ykj8X9aq9b9cxQ(p, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_290), T1_, 0);
	expr_8mAL9ckajemzgfLPfeZVNoQ(p, n, d);
	endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genCaseSecondPass_9c9aZH8hSKylL24JR2jQjKTg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NI labId, NI until) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* lend;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	lend = getLabel_VMw2SYHH12eNnC21DncHWQ_4(p);
	{
		NI i;
		NI res;
		i = (NI)0;
		res = ((NI) 1);
		{
			while (1) {
				tyArray_ZqT9cbUNKsl55MABiLlPDxA T10_;
				if (!(res <= until)) goto LA3;
				i = res;
				{
					NIM_BOOL T6_;
					T6_ = (NIM_BOOL)0;
					T6_ = ((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 1));
					if (!(T6_)) goto LA7_;
					T6_ = isEmptyType_9bToMoy0nns9a3tJPtRpLUVAvmgen((*t).typ);
					LA7_: ;
					if (!T6_) goto LA8_;
					(*d).k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0);
				}
				LA8_: ;
				memset((void*)T10_, 0, sizeof(T10_));
				T10_[0] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) ((NI)(labId + i))));
				lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_633), T10_, 1);
				{
					NI length;
					tyArray_ZqT9cbUNKsl55MABiLlPDxA T15_;
					if (!((*(*t).kindU.S6.sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA13_;
					length = sonsLen_qPWPHw7WgJeEVYUdcaRIig((*t).kindU.S6.sons->data[i]);
					exprBlock_8mAL9ckajemzgfLPfeZVNoQ_15(p, (*(*t).kindU.S6.sons->data[i]).kindU.S6.sons->data[(NI)(length - ((NI) 1))], d);
					memset((void*)T15_, 0, sizeof(T15_));
					T15_[0] = lend;
					lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_590), T15_, 1);
				}
				goto LA11_;
				LA13_: ;
				{
					exprBlock_8mAL9ckajemzgfLPfeZVNoQ_15(p, (*(*t).kindU.S6.sons->data[i]).kindU.S6.sons->data[((NI) 0)], d);
				}
				LA11_: ;
				res += ((NI) 1);
			} LA3: ;
		}
	}
	result = lend;
	return result;
}

N_NIMCALL(void, genCaseGenericBranch_gie4EqMllVzia29bjrnjQiA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* e, NimStringDesc* rangeFormat, NimStringDesc* eqFormat, tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* labl) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA x;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA y;
	NI length;
	memset((void*)(&x), 0, sizeof(x));
	memset((void*)(&y), 0, sizeof(y));
	length = sonsLen_qPWPHw7WgJeEVYUdcaRIig(b);
	{
		NI i;
		NI colontmp_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)(length - ((NI) 2));
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA3;
				i = res;
				{
					tyArray_EcJXtY9cAr9bpvybuP0XpjyQ T8_;
					if (!((*(*b).kindU.S6.sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA6_;
					initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*(*b).kindU.S6.sons->data[i]).kindU.S6.sons->data[((NI) 0)], (&x));
					initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*(*b).kindU.S6.sons->data[i]).kindU.S6.sons->data[((NI) 1)], (&y));
					memset((void*)T8_, 0, sizeof(T8_));
					T8_[0] = rdCharLoc_YU9cO6gMkMct9bbzvzDM0Dzw_3(e);
					T8_[1] = rdCharLoc_YU9cO6gMkMct9bbzvzDM0Dzw_3((&x));
					T8_[2] = rdCharLoc_YU9cO6gMkMct9bbzvzDM0Dzw_3((&y));
					T8_[3] = labl;
					lineCg_Z6xIOvD09aMfYvHnc82A86A_2(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), rangeFormat, T8_, 4);
				}
				goto LA4_;
				LA6_: ;
				{
					tyArray_1UwZ4PfBDZcImViZT8dk0w T10_;
					initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*b).kindU.S6.sons->data[i], (&x));
					memset((void*)T10_, 0, sizeof(T10_));
					T10_[0] = rdCharLoc_YU9cO6gMkMct9bbzvzDM0Dzw_3(e);
					T10_[1] = rdCharLoc_YU9cO6gMkMct9bbzvzDM0Dzw_3((&x));
					T10_[2] = labl;
					lineCg_Z6xIOvD09aMfYvHnc82A86A_2(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), eqFormat, T10_, 3);
				}
				LA4_: ;
				res += ((NI) 1);
			} LA3: ;
		}
	}
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genIfForCaseUntil_dC5vml9aDV4TC7ll8sb2uxA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* rangeFormat, NimStringDesc* eqFormat, NI until, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	NI labId;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	labId = (*p).labels;
	{
		NI i;
		NI res;
		i = (NI)0;
		res = ((NI) 1);
		{
			while (1) {
				if (!(res <= until)) goto LA3;
				i = res;
				(*p).labels += ((NI) 1);
				{
					tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T8_;
					tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T9_;
					tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T10_;
					if (!((*(*t).kindU.S6.sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA6_;
					T8_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
					T8_ = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) ((*p).labels)));
					T9_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
					T9_ = amp__OL8oYU3myMrLfqhcdP9b3Ig(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_323), T8_);
					T10_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
					T10_ = amp__sUFtkQXj2TQTADyk9cLFdDg(T9_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_8));
					genCaseGenericBranch_gie4EqMllVzia29bjrnjQiA(p, (*t).kindU.S6.sons->data[i], a, rangeFormat, eqFormat, T10_);
				}
				goto LA4_;
				LA6_: ;
				{
					tyArray_ZqT9cbUNKsl55MABiLlPDxA T12_;
					memset((void*)T12_, 0, sizeof(T12_));
					T12_[0] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) ((*p).labels)));
					lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_632), T12_, 1);
				}
				LA4_: ;
				res += ((NI) 1);
			} LA3: ;
		}
	}
	{
		NI T15_;
		NI gotoTarget;
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T18_;
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T19_;
		T15_ = (NI)0;
		T15_ = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(t);
		if (!(until < (NI)(T15_ - ((NI) 1)))) goto LA16_;
		(*p).labels += ((NI) 1);
		gotoTarget = (*p).labels;
		memset((void*)T18_, 0, sizeof(T18_));
		T18_[0] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (gotoTarget)));
		lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_632), T18_, 1);
		result = genCaseSecondPass_9c9aZH8hSKylL24JR2jQjKTg(p, t, d, ((NI) (labId)), until);
		memset((void*)T19_, 0, sizeof(T19_));
		T19_[0] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (gotoTarget)));
		lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_633), T19_, 1);
	}
	goto LA13_;
	LA16_: ;
	{
		result = genCaseSecondPass_9c9aZH8hSKylL24JR2jQjKTg(p, t, d, ((NI) (labId)), until);
	}
	LA13_: ;
	return result;
}

N_NIMCALL(void, genCaseGeneric_A9aEg9csf4anYemsYRjz0L9cw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* rangeFormat, NimStringDesc* eqFormat) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* lend;
	NI T1_;
	memset((void*)(&a), 0, sizeof(a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*t).kindU.S6.sons->data[((NI) 0)], (&a));
	T1_ = (NI)0;
	T1_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(t);
	lend = genIfForCaseUntil_dC5vml9aDV4TC7ll8sb2uxA(p, t, d, rangeFormat, eqFormat, (NI)(T1_ - ((NI) 1)), (&a));
	fixLabel_ut0GUS8pCCGZkg3exqiq2w(p, lend);
}

N_NIMCALL(void, genStringCase_re1pwmyeR32ikwnOC3vvzQ_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	NI strings;
	strings = ((NI) 0);
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(t);
		colontmp_ = (NI)(T2_ - ((NI) 1));
		res = ((NI) 1);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				{
					NI T9_;
					if (!((*(*t).kindU.S6.sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA7_;
					T9_ = (NI)0;
					T9_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig((*t).kindU.S6.sons->data[i]);
					strings += (NI)(T9_ - ((NI) 1));
				}
				LA7_: ;
				res += ((NI) 1);
			} LA4: ;
		}
	}
	{
		NI bitMask;
		NI T14_;
		tySequence_LViedqhb8iWVoqgZs5LifA* branches;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
		NI labId;
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T27_;
		tyArray_j0xH32fTir0IvGY7WxQsQA T37_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* lend;
		NI T44_;
		if (!(((NI) 8) < strings)) goto LA12_;
		T14_ = (NI)0;
		T14_ = nextPowerOfTwo_gcitR3TEXHJ3GR9bmwIvtRA(strings);
		bitMask = (NI)(T14_ - ((NI) 1));
		branches = (tySequence_LViedqhb8iWVoqgZs5LifA*)0;
		branches = (tySequence_LViedqhb8iWVoqgZs5LifA*) newSeq((&NTI_LViedqhb8iWVoqgZs5LifA_), ((NI) ((NI)(bitMask + ((NI) 1)))));
		memset((void*)(&a), 0, sizeof(a));
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*t).kindU.S6.sons->data[((NI) 0)], (&a));
		labId = (*p).labels;
		{
			NI i_2;
			NI colontmp__2;
			NI T16_;
			NI res_2;
			i_2 = (NI)0;
			colontmp__2 = (NI)0;
			T16_ = (NI)0;
			T16_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(t);
			colontmp__2 = (NI)(T16_ - ((NI) 1));
			res_2 = ((NI) 1);
			{
				while (1) {
					if (!(res_2 <= colontmp__2)) goto LA18;
					i_2 = res_2;
					(*p).labels += ((NI) 1);
					{
						tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T23_;
						tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T24_;
						tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T25_;
						if (!((*(*t).kindU.S6.sons->data[i_2]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA21_;
						T23_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
						T23_ = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) ((*p).labels)));
						T24_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
						T24_ = amp__OL8oYU3myMrLfqhcdP9b3Ig(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_323), T23_);
						T25_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
						T25_ = amp__sUFtkQXj2TQTADyk9cLFdDg(T24_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_8));
						genCaseStringBranch_Raq2iuoaLbUJRPT0h0iGbQ(p, (*t).kindU.S6.sons->data[i_2], (&a), T25_, branches->data, branches->Sup.len);
					}
					goto LA19_;
					LA21_: ;
					{
					}
					LA19_: ;
					res_2 += ((NI) 1);
				} LA18: ;
			}
		}
		memset((void*)T27_, 0, sizeof(T27_));
		T27_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
		T27_[1] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (bitMask)));
		linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_630), T27_, 2);
		{
			NI j;
			NI colontmp__3;
			NI T29_;
			NI res_3;
			j = (NI)0;
			colontmp__3 = (NI)0;
			T29_ = (branches ? (branches->Sup.len-1) : -1);
			colontmp__3 = T29_;
			res_3 = ((NI) 0);
			{
				while (1) {
					if (!(res_3 <= colontmp__3)) goto LA31;
					j = res_3;
					{
						tyArray_YB3ke0PEM9bcAj9bAsA619bJA T36_;
						if (!!((branches->data[j] == NIM_NIL))) goto LA34_;
						memset((void*)T36_, 0, sizeof(T36_));
						T36_[0] = intLiteral_cVf7QPXGcGBUB7P9cfyCtRw(((NI64) (j)));
						T36_[1] = branches->data[j];
						lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_631), T36_, 2);
					}
					LA34_: ;
					res_3 += ((NI) 1);
				} LA31: ;
			}
		}
		memset((void*)T37_, 0, sizeof(T37_));
		lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_174), T37_, 0);
		{
			NI T40_;
			tyArray_ZqT9cbUNKsl55MABiLlPDxA T43_;
			T40_ = (NI)0;
			T40_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(t);
			if (!!(((*(*t).kindU.S6.sons->data[(NI)(T40_ - ((NI) 1))]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 85)))) goto LA41_;
			memset((void*)T43_, 0, sizeof(T43_));
			T43_[0] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) ((*p).labels)));
			lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_632), T43_, 1);
		}
		LA41_: ;
		T44_ = (NI)0;
		T44_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(t);
		lend = genCaseSecondPass_9c9aZH8hSKylL24JR2jQjKTg(p, t, d, ((NI) (labId)), (NI)(T44_ - ((NI) 1)));
		fixLabel_ut0GUS8pCCGZkg3exqiq2w(p, lend);
	}
	goto LA10_;
	LA12_: ;
	{
		genCaseGeneric_A9aEg9csf4anYemsYRjz0L9cw(p, t, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_10), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_629));
	}
	LA10_: ;
}

N_NIMCALL(void, genGotoForCase_ACGHJp9bbmHaRpjqO8LXrqA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* caseStmt) {
{	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(caseStmt);
		colontmp_ = (T2_ - 1);
		res = ((NI) 1);
		{
			while (1) {
				tyArray_j0xH32fTir0IvGY7WxQsQA T5_;
				NI T6_;
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T16_;
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				memset((void*)T5_, 0, sizeof(T5_));
				T6_ = (NI)0;
				T6_ = startBlock_0yHaXWrgTt8ykj8X9aq9b9cxQ(p, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_290), T5_, 0);
				it = (*caseStmt).kindU.S6.sons->data[i];
				{
					NI j;
					NI colontmp__2;
					NI T8_;
					NI res_2;
					j = (NI)0;
					colontmp__2 = (NI)0;
					T8_ = (NI)0;
					T8_ = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(it);
					colontmp__2 = (NI)(T8_ - ((NI) 2));
					res_2 = ((NI) 0);
					{
						while (1) {
							NI64 val;
							tyArray_ZqT9cbUNKsl55MABiLlPDxA T15_;
							if (!(res_2 <= colontmp__2)) goto LA10;
							j = res_2;
							{
								if (!((*(*it).kindU.S6.sons->data[j]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA13_;
								localError_GarD0CQJ5aQhoHekHYinVQ((*it).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_613));
								goto BeforeRet_;
							}
							LA13_: ;
							val = getOrdValue_MzTDl1zEXJLD4sql7PhCwA((*it).kindU.S6.sons->data[j]);
							memset((void*)T15_, 0, sizeof(T15_));
							T15_[0] = rope_pEztpD6TFe5jk3aCrOSACA(val);
							lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_636), T15_, 1);
							res_2 += ((NI) 1);
						} LA10: ;
					}
				}
				T16_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
				T16_ = lastSon_esDJA7239bJDiq4UrX9aHCjg(it);
				genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, T16_);
				endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
				res += ((NI) 1);
			} LA4: ;
		}
	}
	}BeforeRet_: ;
}

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

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

N_NIMCALL(void, genOrdinalCase_8mAL9ckajemzgfLPfeZVNoQ_16)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	NI splitPoint;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* lend;
	splitPoint = ifSwitchSplitPoint_iWvQebbOR9a0RpCdZZ7GsAA(p, n);
	memset((void*)(&a), 0, sizeof(a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n).kindU.S6.sons->data[((NI) 0)], (&a));
	{
		if (!(((NI) 0) < splitPoint)) goto LA3_;
		lend = genIfForCaseUntil_dC5vml9aDV4TC7ll8sb2uxA(p, n, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_634), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_635), splitPoint, (&a));
	}
	goto LA1_;
	LA3_: ;
	{
		lend = NIM_NIL;
	}
	LA1_: ;
	{
		NI T8_;
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T11_;
		NIM_BOOL hasDefault;
		tyArray_j0xH32fTir0IvGY7WxQsQA T37_;
		T8_ = (NI)0;
		T8_ = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(n);
		if (!((NI)(splitPoint + ((NI) 1)) < T8_)) goto LA9_;
		memset((void*)T11_, 0, sizeof(T11_));
		T11_[0] = rdCharLoc_YU9cO6gMkMct9bbzvzDM0Dzw_3((&a));
		lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_637), T11_, 1);
		hasDefault = NIM_FALSE;
		{
			NI i;
			NI colontmp_;
			NI colontmp__2;
			NI T13_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp__2 = (NI)0;
			colontmp_ = (NI)(splitPoint + ((NI) 1));
			T13_ = (NI)0;
			T13_ = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(n);
			colontmp__2 = (T13_ - 1);
			res = colontmp_;
			{
				while (1) {
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* branch;
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T28_;
					tyArray_j0xH32fTir0IvGY7WxQsQA T29_;
					if (!(res <= colontmp__2)) goto LA15;
					i = res;
					{
						NIM_BOOL T18_;
						T18_ = (NIM_BOOL)0;
						T18_ = ((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 1));
						if (!(T18_)) goto LA19_;
						T18_ = isEmptyType_9bToMoy0nns9a3tJPtRpLUVAvmgen((*n).typ);
						LA19_: ;
						if (!T18_) goto LA20_;
						(*d).k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0);
					}
					LA20_: ;
					branch = (*n).kindU.S6.sons->data[i];
					{
						if (!((*branch).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA24_;
						genCaseRange_KUz7NJSCXeUWRl4foF5zfg(p, branch);
					}
					goto LA22_;
					LA24_: ;
					{
						tyArray_j0xH32fTir0IvGY7WxQsQA T27_;
						memset((void*)T27_, 0, sizeof(T27_));
						lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_197), T27_, 0);
						hasDefault = NIM_TRUE;
					}
					LA22_: ;
					T28_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
					T28_ = lastSon_esDJA7239bJDiq4UrX9aHCjg(branch);
					exprBlock_8mAL9ckajemzgfLPfeZVNoQ_15(p, T28_, d);
					memset((void*)T29_, 0, sizeof(T29_));
					lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_198), T29_, 0);
					res += ((NI) 1);
				} LA15: ;
			}
		}
		{
			NIM_BOOL T32_;
			tyArray_j0xH32fTir0IvGY7WxQsQA T36_;
			T32_ = (NIM_BOOL)0;
			T32_ = ((CC_78I18QZNZFIv9ah7oETc0jg[(cCompiler_Dz9bRorQ2m6cBt9awpi4iwPw)- 1].Field19 &(1U<<((NU)(((tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg) 3))&7U)))!=0);
			if (!(T32_)) goto LA33_;
			T32_ = !(hasDefault);
			LA33_: ;
			if (!T32_) goto LA34_;
			memset((void*)T36_, 0, sizeof(T36_));
			lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_638), T36_, 0);
		}
		LA34_: ;
		memset((void*)T37_, 0, sizeof(T37_));
		lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_174), T37_, 0);
	}
	LA9_: ;
	{
		if (!!((lend == NIM_NIL))) goto LA40_;
		fixLabel_ut0GUS8pCCGZkg3exqiq2w(p, lend);
	}
	LA40_: ;
}

N_NIMCALL(void, genCase_re1pwmyeR32ikwnOC3vvzQ_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T8_;
	genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = isEmptyType_9bToMoy0nns9a3tJPtRpLUVAvmgen((*t).typ);
		T3_ = !(T4_);
		if (!(T3_)) goto LA5_;
		T3_ = ((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0));
		LA5_: ;
		if (!T3_) goto LA6_;
		getTemp_AAMs9asc5S78MBo8z9bTltgw(p, (*t).typ, d, NIM_FALSE);
	}
	LA6_: ;
	T8_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
	T8_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*(*t).kindU.S6.sons->data[((NI) 0)]).typ, IL64(36028797028444432));
	switch ((*T8_).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
	{
		genStringCase_re1pwmyeR32ikwnOC3vvzQ_4(p, t, d);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 39):
	{
		genCaseGeneric_A9aEg9csf4anYemsYRjz0L9cw(p, t, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_634), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_635));
	}
	break;
	default:
	{
		{
			NIM_BOOL T14_;
			T14_ = (NIM_BOOL)0;
			T14_ = ((*(*t).kindU.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T14_)) goto LA15_;
			T14_ = (((*(*(*t).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 31))&63U)))!=0);
			LA15_: ;
			if (!T14_) goto LA16_;
			genGotoForCase_ACGHJp9bbmHaRpjqO8LXrqA(p, t);
		}
		goto LA12_;
		LA16_: ;
		{
			genOrdinalCase_8mAL9ckajemzgfLPfeZVNoQ_16(p, t, d);
		}
		LA12_: ;
	}
	break;
	}
}

static N_INLINE(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, pop_d29cpXTitwhGntYusVkzaCgtrees)(tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ** s) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	NI L;
	NI T1_;
	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = ((*s) ? (*s)->Sup.len : 0);
	L = (NI)(T1_ - ((NI) 1));
	result = (*s)->data[L];
	(*s) = (tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ*) setLengthSeq(&((*s))->Sup, sizeof(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*), ((NI) (L)));
	return result;
}

N_NIMCALL(void, blockLeaveActions_e09bgD1fQnMSV07ItnToC3Q)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, NI howManyTrys, NI howManyExcepts) {
	tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ* stack;
	NI alreadyPoppedCnt;
	stack = (tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ*)0;
	stack = (tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ*) newSeq((&NTI_ehmV9bTklH2Gt9cXHV9c0HLeQ_), ((NI) 0));
	alreadyPoppedCnt = (*p).inExceptBlock;
	{
		NI i;
		NI res;
		i = (NI)0;
		res = ((NI) 1);
		{
			while (1) {
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* tryStmt;
				NI T18_;
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* finallyStmt;
				if (!(res <= howManyTrys)) goto LA3;
				i = res;
				{
					NIM_BOOL T6_;
					NIM_BOOL T7_;
					T6_ = (NIM_BOOL)0;
					T7_ = (NIM_BOOL)0;
					T7_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
					if (T7_) goto LA8_;
					T7_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
					LA8_: ;
					T6_ = !(T7_);
					if (T6_) goto LA9_;
					T6_ = ((gGlobalOptions_j042VVDC9cT5ENYoXnmhhVg &(1U<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 30))&31U)))!=0);
					LA9_: ;
					if (!T6_) goto LA10_;
					{
						if (!(((NI) 0) < alreadyPoppedCnt)) goto LA14_;
						alreadyPoppedCnt -= ((NI) 1);
					}
					goto LA12_;
					LA14_: ;
					{
						tyArray_j0xH32fTir0IvGY7WxQsQA T17_;
						memset((void*)T17_, 0, sizeof(T17_));
						linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_639), T17_, 0);
					}
					LA12_: ;
				}
				LA10_: ;
				tryStmt = pop_d29cpXTitwhGntYusVkzaCgtrees((&(*p).nestedTryStmts));
				stack = (tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV2(&(stack)->Sup, sizeof(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*));
				T18_ = stack->Sup.len++;
				asgnRefNoCycle((void**) (&stack->data[T18_]), tryStmt);
				finallyStmt = lastSon_esDJA7239bJDiq4UrX9aHCjg(tryStmt);
				{
					if (!((*finallyStmt).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 107))) goto LA21_;
					genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, (*finallyStmt).kindU.S6.sons->data[((NI) 0)]);
				}
				LA21_: ;
				res += ((NI) 1);
			} LA3: ;
		}
	}
	{
		NI i_2;
		NI colontmp_;
		NI res_2;
		i_2 = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)(howManyTrys - ((NI) 1));
		res_2 = colontmp_;
		{
			while (1) {
				NI T26_;
				if (!(((NI) 0) <= res_2)) goto LA25;
				i_2 = res_2;
				(*p).nestedTryStmts = (tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV2(&((*p).nestedTryStmts)->Sup, sizeof(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*));
				T26_ = (*p).nestedTryStmts->Sup.len++;
				asgnRefNoCycle((void**) (&(*p).nestedTryStmts->data[T26_]), stack->data[i_2]);
				res_2 -= ((NI) 1);
			} LA25: ;
		}
	}
	{
		NIM_BOOL T29_;
		NIM_BOOL T30_;
		T29_ = (NIM_BOOL)0;
		T30_ = (NIM_BOOL)0;
		T30_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T30_) goto LA31_;
		T30_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA31_: ;
		T29_ = !(T30_);
		if (T29_) goto LA32_;
		T29_ = ((gGlobalOptions_j042VVDC9cT5ENYoXnmhhVg &(1U<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 30))&31U)))!=0);
		LA32_: ;
		if (!T29_) goto LA33_;
		{
			NI i_3;
			NI colontmp__2;
			NI res_3;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = (NI)(howManyExcepts - ((NI) 1));
			res_3 = colontmp__2;
			{
				while (1) {
					tyArray_j0xH32fTir0IvGY7WxQsQA T38_;
					if (!(((NI) 0) <= res_3)) goto LA37;
					i_3 = res_3;
					memset((void*)T38_, 0, sizeof(T38_));
					linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_640), T38_, 0);
					res_3 -= ((NI) 1);
				} LA37: ;
			}
		}
	}
	LA33_: ;
}

N_NIMCALL(void, genReturnStmt_QrTB5DOwbDX9bKAW7PNbuJA_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t) {
	NI T9_;
	tyArray_j0xH32fTir0IvGY7WxQsQA T17_;
{	{
		if (!(((*t).flags &(1U<<((NU)(((tyEnum_TNodeFlag_jyh9acXHkhZANSSvPIY7ZLg) 14))&31U)))!=0)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	(*p).beforeRetNeeded = NIM_TRUE;
	genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
	{
		if (!!(((*(*t).kindU.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA7_;
		genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, (*t).kindU.S6.sons->data[((NI) 0)]);
	}
	LA7_: ;
	T9_ = ((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0);
	blockLeaveActions_e09bgD1fQnMSV07ItnToC3Q(p, T9_, (*p).inExceptBlock);
	{
		NI T12_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* safePoint;
		NI T15_;
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T16_;
		T12_ = ((*p).finallySafePoints ? (*p).finallySafePoints->Sup.len : 0);
		if (!(((NI) 0) < T12_)) goto LA13_;
		T15_ = ((*p).finallySafePoints ? (*p).finallySafePoints->Sup.len : 0);
		safePoint = (*p).finallySafePoints->data[(NI)(T15_ - ((NI) 1))];
		memset((void*)T16_, 0, sizeof(T16_));
		T16_[0] = safePoint;
		linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_641), T16_, 1);
	}
	LA13_: ;
	memset((void*)T17_, 0, sizeof(T17_));
	lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_642), T17_, 0);
	}BeforeRet_: ;
}

N_NIMCALL(void, genBreakStmt_QrTB5DOwbDX9bKAW7PNbuJA_6)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t) {
	NI idx;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* label;
	NI T20_;
	tyArray_ZqT9cbUNKsl55MABiLlPDxA T21_;
	idx = (*p).breakIdx;
	{
		tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* sym;
		if (!!(((*(*t).kindU.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA3_;
		sym = (*(*t).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym;
		{
			if (!!(((*sym).loc.k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 10)))) goto LA7_;
			raiseAssert_PpfSiTIeNpMAb9a5o6SglJw_2(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_643));
		}
		LA7_: ;
		idx = (NI)((*sym).position - ((NI) 1));
	}
	goto LA1_;
	LA3_: ;
	{
		{
			while (1) {
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (((NI) 0) <= idx);
				if (!(T12_)) goto LA13_;
				T12_ = !((*p).blocks->data[idx].isLoop);
				LA13_: ;
				if (!T12_) goto LA11;
				idx -= ((NI) 1);
			} LA11: ;
		}
		{
			NIM_BOOL T16_;
			T16_ = (NIM_BOOL)0;
			T16_ = (idx < ((NI) 0));
			if (T16_) goto LA17_;
			T16_ = !((*p).blocks->data[idx].isLoop);
			LA17_: ;
			if (!T16_) goto LA18_;
			internalError_MXmtqrCmYwtOPkDCFgUWKQ((*t).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_644));
		}
		LA18_: ;
	}
	LA1_: ;
	label = assignLabel_0yetoRpNywf6Y7ei9aZS9c0Acgen((&(*p).blocks->data[idx]));
	T20_ = ((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0);
	blockLeaveActions_e09bgD1fQnMSV07ItnToC3Q(p, (NI)(T20_ - ((NI) ((*p).blocks->data[idx].nestedTryStmts))), (NI)((*p).inExceptBlock - ((NI) ((*p).blocks->data[idx].nestedExceptStmts))));
	genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
	memset((void*)T21_, 0, sizeof(T21_));
	T21_[0] = label;
	lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_590), T21_, 1);
}

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

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, discriminatorTableDecl_NlU3VxpG9aX285JoLNfLBow_2)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* objtype, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* d) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T1_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* tmp;
	tyArray_YB3ke0PEM9bcAj9bAsA619bJA T2_;
	NI64 T3_;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T1_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T1_ = cgsym_LDQwSdTgGBvWUKfBZpHXDw(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_137));
	T1_;
	tmp = discriminatorTableName_NlU3VxpG9aX285JoLNfLBow(m, objtype, d);
	memset((void*)T2_, 0, sizeof(T2_));
	T2_[0] = tmp;
	T3_ = (NI64)0;
	T3_ = lengthOrd_HUiBYxvKiECXCv8BzQNheg_3((*d).typ);
	T2_[1] = rope_pEztpD6TFe5jk3aCrOSACA((NI64)(T3_ + IL64(1)));
	result = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_219), T2_, 2);
	return result;
}

N_NIMCALL(void, genDiscriminantCheck_ERg79a0GtvjkZTLBzpcamyw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* tmp, tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* objtype, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* field) {
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T1_;
	NI64 L;
	tyArray_EcJXtY9cAr9bpvybuP0XpjyQ T8_;
	t = skipTypes_pLCdCGDuirMe9cspwviV9aVA(objtype, IL64(36028797027395856));
	T1_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T1_ = genTypeInfo_x7sD9aHIDrXyWVDTVp9bclvA((*p).module, t);
	T1_;
	L = lengthOrd_HUiBYxvKiECXCv8BzQNheg_3((*field).typ);
	{
		NIM_BOOL T4_;
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T7_;
		T4_ = (NIM_BOOL)0;
		T4_ = containsOrIncl_B0EhVMrh5BBBZOOtYjAvVg((&(*(*p).module).declaredThings), (*field).Sup.id);
		if (!!(T4_)) goto LA5_;
		memset((void*)T7_, 0, sizeof(T7_));
		T7_[0] = discriminatorTableDecl_NlU3VxpG9aX285JoLNfLBow_2((*p).module, t, field);
		appcg_KYarie00rsII4ENCBv9byYQ((*p).module, ((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_645), T7_, 1);
	}
	LA5_: ;
	memset((void*)T8_, 0, sizeof(T8_));
	T8_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(a);
	T8_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw(tmp);
	T8_[2] = discriminatorTableName_NlU3VxpG9aX285JoLNfLBow((*p).module, t, field);
	T8_[3] = intLiteral_cVf7QPXGcGBUB7P9cfyCtRw((NI64)(L + IL64(1)));
	lineCg_Z6xIOvD09aMfYvHnc82A86A_2(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_646), T8_, 4);
}

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;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&tmp), 0, sizeof(tmp));
	dotExpr = (*e).kindU.S6.sons->data[((NI) 0)];
	{
		if (!((*dotExpr).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 46))) goto LA3_;
		dotExpr = (*dotExpr).kindU.S6.sons->data[((NI) 0)];
	}
	LA3_: ;
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 0)], (&a));
	getTemp_AAMs9asc5S78MBo8z9bTltgw(p, a.t, (&tmp), NIM_FALSE);
	expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*e).kindU.S6.sons->data[((NI) 1)], (&tmp));
	genDiscriminantCheck_ERg79a0GtvjkZTLBzpcamyw(p, (&a), (&tmp), (*(*dotExpr).kindU.S6.sons->data[((NI) 0)]).typ, (*(*dotExpr).kindU.S6.sons->data[((NI) 1)]).kindU.S4.sym);
	genAssignment_BtucsTdHw7orsXIL75hNVg(p, (&a), (&tmp), 0);
}

N_NIMCALL(void, genAsgn_9ap9b3IFVLSL9b9akVbfMyRxlA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, NIM_BOOL fastAsgn) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*e).kindU.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
		if (!(T3_)) goto LA4_;
		T3_ = (((*(*(*e).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 31))&63U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, e);
		genGotoVar_4xOIY9bgIMy9bAzg2ZyIieBw(p, (*e).kindU.S6.sons->data[((NI) 1)]);
	}
	goto LA1_;
	LA5_: ;
	{
		NIM_BOOL T8_;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri;
		T8_ = (NIM_BOOL)0;
		T8_ = fieldDiscriminantCheckNeeded_Eyz2KtzeOLvgSAeQHJsjPQ(p, e);
		if (!!(T8_)) goto LA9_;
		memset((void*)(&a), 0, sizeof(a));
		{
			if (!((*(*e).kindU.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 47) || (*(*e).kindU.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 65))) goto LA13_;
			genDeref_BLGSHeDM9cawDE7Hp9bscFgg(p, (*e).kindU.S6.sons->data[((NI) 0)], (&a), NIM_TRUE);
		}
		goto LA11_;
		LA13_: ;
		{
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).kindU.S6.sons->data[((NI) 0)], (&a));
		}
		LA11_: ;
		{
			if (!fastAsgn) goto LA18_;
			a.flags |= ((NU16)1)<<((((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 2))%(sizeof(NU16)*8));
		}
		LA18_: ;
		ri = (*e).kindU.S6.sons->data[((NI) 1)];
		genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, ri);
		loadInto_vkEx8Dn9aiGOI04WjvQIHIwcgen(p, (*e).kindU.S6.sons->data[((NI) 0)], ri, (&a));
	}
	goto LA1_;
	LA9_: ;
	{
		genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, e);
		asgnFieldDiscriminant_X9cSqNhqEboci9cdmwBMNcBw_4(p, e);
	}
	LA1_: ;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genAsmOrEmitStmt_N9a8wT4v8ScQB5fpNhIdTPg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, NIM_BOOL isAsmStmt) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	NimStringDesc* res;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	res = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_10));
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(t);
		colontmp_ = (NI)(T2_ - ((NI) 1));
		res_2 = ((NI) 0);
		{
			while (1) {
				if (!(res_2 <= colontmp_)) goto LA4;
				i = res_2;
				switch ((*(*t).kindU.S6.sons->data[i]).kind) {
				case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 22):
				{
					res = resizeString(res, (*(*t).kindU.S6.sons->data[i]).kindU.S3.strVal->Sup.len + 0);
appendString(res, (*(*t).kindU.S6.sons->data[i]).kindU.S3.strVal);
				}
				break;
				case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3):
				{
					tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* sym;
					sym = (*(*t).kindU.S6.sons->data[i]).kindU.S4.sym;
					{
						tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
						tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T11_;
						NimStringDesc* T12_;
						if (!((28672 &(1U<<((NU)((*sym).kind)&31U)))!=0)) goto LA9_;
						memset((void*)(&a), 0, sizeof(a));
						initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*t).kindU.S6.sons->data[i], (&a));
						T11_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
						T11_ = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
						T12_ = (NimStringDesc*)0;
						T12_ = dollar__PstQrDfj9a7hGXM74AN2wzg(T11_);
						res = resizeString(res, T12_->Sup.len + 0);
appendString(res, T12_);
					}
					goto LA7_;
					LA9_: ;
					{
						tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T16_;
						NimStringDesc* T17_;
						if (!((*sym).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 7))) goto LA14_;
						T16_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
						T16_ = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, (*sym).typ);
						T17_ = (NimStringDesc*)0;
						T17_ = dollar__PstQrDfj9a7hGXM74AN2wzg(T16_);
						res = resizeString(res, T17_->Sup.len + 0);
appendString(res, T17_);
					}
					goto LA7_;
					LA14_: ;
					{
						tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* r;
						NimStringDesc* T23_;
						r = (*sym).loc.r;
						{
							if (!(r == NIM_NIL)) goto LA21_;
							r = mangleName_qNuXhnV9aHm5hP7aXP809asQ((*p).module, sym);
							asgnRefNoCycle((void**) (&(*sym).loc.r), r);
						}
						LA21_: ;
						T23_ = (NimStringDesc*)0;
						T23_ = dollar__PstQrDfj9a7hGXM74AN2wzg(r);
						res = resizeString(res, T23_->Sup.len + 0);
appendString(res, T23_);
					}
					LA7_: ;
				}
				break;
				case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 132):
				{
					tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T25_;
					NimStringDesc* T26_;
					T25_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
					T25_ = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2((*p).module, (*(*t).kindU.S6.sons->data[i]).typ);
					T26_ = (NimStringDesc*)0;
					T26_ = dollar__PstQrDfj9a7hGXM74AN2wzg(T25_);
					res = resizeString(res, T26_->Sup.len + 0);
appendString(res, T26_);
				}
				break;
				default:
				{
					tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_2;
					tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T28_;
					NimStringDesc* T29_;
					memset((void*)(&a_2), 0, sizeof(a_2));
					initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*t).kindU.S6.sons->data[i], (&a_2));
					T28_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
					T28_ = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a_2));
					T29_ = (NimStringDesc*)0;
					T29_ = dollar__PstQrDfj9a7hGXM74AN2wzg(T28_);
					res = resizeString(res, T29_->Sup.len + 0);
appendString(res, T29_);
				}
				break;
				}
				res_2 += ((NI) 1);
			} LA4: ;
		}
	}
	{
		NIM_BOOL T32_;
		T32_ = (NIM_BOOL)0;
		T32_ = isAsmStmt;
		if (!(T32_)) goto LA33_;
		T32_ = ((CC_78I18QZNZFIv9ah7oETc0jg[(cCompiler_Dz9bRorQ2m6cBt9awpi4iwPw)- 1].Field19 &(1U<<((NU)(((tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg) 5))&7U)))!=0);
		LA33_: ;
		if (!T32_) goto LA34_;
		{
			NimStringDesc* x;
			NI first;
			NI last;
			x = (NimStringDesc*)0;
			first = ((NI) 0);
			last = ((NI) 0);
			{
				while (1) {
					NI j;
					{
						while (1) {
							if (!!((((NU8)(res->data[last])) == ((NU8)(0)) || ((NU8)(res->data[last])) == ((NU8)(13)) || ((NU8)(res->data[last])) == ((NU8)(10))))) goto LA40;
							last += ((NI) 1);
						} LA40: ;
					}
					x = copyStrLast(res, first, (NI)(last - ((NI) 1)));
					j = ((NI) 0);
					{
						while (1) {
							if (!(((NU8)(x->data[j])) == ((NU8)(32)) || ((NU8)(x->data[j])) == ((NU8)(9)))) goto LA42;
							j += ((NI) 1);
						} LA42: ;
					}
					{
						if (!(((NU8)(x->data[j])) == ((NU8)(34)) || ((NU8)(x->data[j])) == ((NU8)(58)))) goto LA45_;
						add_UJnSY21g59awhvSFBxJ9a9aPg(&result, x);
						add_UJnSY21g59awhvSFBxJ9a9aPg(&result, tnl_Gp8EwkcsAP9am1klnCCHM4w);
					}
					goto LA43_;
					LA45_: ;
					{
						if (!!(((NU8)(x->data[j]) == (NU8)(0)))) goto LA48_;
						add_UJnSY21g59awhvSFBxJ9a9aPg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_647));
						add_UJnSY21g59awhvSFBxJ9a9aPg(&result, x);
						add_UJnSY21g59awhvSFBxJ9a9aPg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_648));
					}
					goto LA43_;
					LA48_: ;
					LA43_: ;
					{
						if (!((NU8)(res->data[last]) == (NU8)(10))) goto LA52_;
						last += ((NI) 1);
					}
					goto LA50_;
					LA52_: ;
					{
						if (!((NU8)(res->data[last]) == (NU8)(13))) goto LA55_;
						last += ((NI) 1);
						{
							if (!((NU8)(res->data[last]) == (NU8)(10))) goto LA59_;
							last += ((NI) 1);
						}
						LA59_: ;
					}
					goto LA50_;
					LA55_: ;
					{
						goto LA37;
					}
					LA50_: ;
					first = last;
				}
			} LA37: ;
		}
	}
	goto LA30_;
	LA34_: ;
	{
		res = resizeString(res, tnl_Gp8EwkcsAP9am1klnCCHM4w->Sup.len + 0);
appendString(res, tnl_Gp8EwkcsAP9am1klnCCHM4w);
		result = rope_53CHEX05HP0HacydnwoUYg(res);
	}
	LA30_: ;
	return result;
}

N_NIMCALL(void, genAsmStmt_QrTB5DOwbDX9bKAW7PNbuJA_7)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* s;
	genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
	s = genAsmOrEmitStmt_N9a8wT4v8ScQB5fpNhIdTPg(p, t, NIM_TRUE);
	{
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T5_;
		if (!((*p).prc == NIM_NIL)) goto LA3_;
		memset((void*)T5_, 0, sizeof(T5_));
		T5_[0] = s;
		addf_8UUGW4xtgpag0J4uEnVLuQ(&(*(*p).module).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 7))- 0], CC_78I18QZNZFIv9ah7oETc0jg[(cCompiler_Dz9bRorQ2m6cBt9awpi4iwPw)- 1].Field17, T5_, 1);
	}
	goto LA1_;
	LA3_: ;
	{
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T7_;
		memset((void*)T7_, 0, sizeof(T7_));
		T7_[0] = s;
		lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), CC_78I18QZNZFIv9ah7oETc0jg[(cCompiler_Dz9bRorQ2m6cBt9awpi4iwPw)- 1].Field17, T7_, 1);
	}
	LA1_: ;
}

static N_INLINE(void, genSimpleBlock_RH6PUsmPRE4ftBMagpWhBQcgen)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* stmts) {
	tyArray_j0xH32fTir0IvGY7WxQsQA T1_;
	NI T2_;
	memset((void*)T1_, 0, sizeof(T1_));
	T2_ = (NI)0;
	T2_ = startBlock_0yHaXWrgTt8ykj8X9aq9b9cxQ(p, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_290), T1_, 0);
	genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, stmts);
	endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
}

N_NIMCALL(void, genTryCpp_re1pwmyeR32ikwnOC3vvzQ_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* exc;
	NI T16_;
	tyArray_j0xH32fTir0IvGY7WxQsQA T17_;
	NI T18_;
	NI length;
	tyArray_ZqT9cbUNKsl55MABiLlPDxA T19_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T20_;
	NI i;
	NIM_BOOL catchAllPresent;
	tyArray_j0xH32fTir0IvGY7WxQsQA T79_;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T80_;
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = isEmptyType_9bToMoy0nns9a3tJPtRpLUVAvmgen((*t).typ);
		T3_ = !(T4_);
		if (!(T3_)) goto LA5_;
		T3_ = ((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0));
		LA5_: ;
		if (!T3_) goto LA6_;
		getTemp_AAMs9asc5S78MBo8z9bTltgw(p, (*t).typ, d, NIM_FALSE);
	}
	LA6_: ;
	genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
	exc = getTempName_54CrPIOFKsrtQd59cl9bHH3A((*p).module);
	{
		tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* T10_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T13_;
		T10_ = (tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw*)0;
		T10_ = getCompilerProc_shbCpG9bVTG0JrTOcXxC2hQ_2(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_649));
		if (!!((T10_ == NIM_NIL))) goto LA11_;
		T13_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T13_ = cgsym_LDQwSdTgGBvWUKfBZpHXDw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_649));
		T13_;
	}
	goto LA8_;
	LA11_: ;
	{
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T15_;
		T15_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T15_ = cgsym_LDQwSdTgGBvWUKfBZpHXDw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_650));
		T15_;
	}
	LA8_: ;
	(*p).nestedTryStmts = (tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV2(&((*p).nestedTryStmts)->Sup, sizeof(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*));
	T16_ = (*p).nestedTryStmts->Sup.len++;
	asgnRefNoCycle((void**) (&(*p).nestedTryStmts->data[T16_]), t);
	memset((void*)T17_, 0, sizeof(T17_));
	T18_ = (NI)0;
	T18_ = startBlock_0yHaXWrgTt8ykj8X9aq9b9cxQ(p, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_651), T17_, 0);
	expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*t).kindU.S6.sons->data[((NI) 0)], d);
	length = sonsLen_qPWPHw7WgJeEVYUdcaRIig(t);
	memset((void*)T19_, 0, sizeof(T19_));
	T19_[0] = exc;
	T20_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T20_ = ropecg_ail3PxtNU17Ini4A1vCFoA((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_652), T19_, 1);
	endBlock_cBt0RGG9a42nMd9aj15boUMA(p, T20_);
	{
		tyArray_j0xH32fTir0IvGY7WxQsQA T25_;
		if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 15))&31U)))!=0)) goto LA23_;
		memset((void*)T25_, 0, sizeof(T25_));
		linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_653), T25_, 0);
	}
	LA23_: ;
	(*p).inExceptBlock += ((NI) 1);
	i = ((NI) 1);
	catchAllPresent = NIM_FALSE;
	{
		while (1) {
			NIM_BOOL T28_;
			NI blen;
			T28_ = (NIM_BOOL)0;
			T28_ = (i < length);
			if (!(T28_)) goto LA29_;
			T28_ = ((*(*t).kindU.S6.sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 87));
			LA29_: ;
			if (!T28_) goto LA27;
			{
				NIM_BOOL T32_;
				T32_ = (NIM_BOOL)0;
				T32_ = ((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 1));
				if (!(T32_)) goto LA33_;
				T32_ = isEmptyType_9bToMoy0nns9a3tJPtRpLUVAvmgen((*t).typ);
				LA33_: ;
				if (!T32_) goto LA34_;
				(*d).k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0);
			}
			LA34_: ;
			blen = sonsLen_qPWPHw7WgJeEVYUdcaRIig((*t).kindU.S6.sons->data[i]);
			{
				tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T40_;
				tyArray_j0xH32fTir0IvGY7WxQsQA T41_;
				if (!(((NI) 1) < i)) goto LA38_;
				T40_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
				T40_ = s_OUiru83H7n4zC9cnXN2KbrQcgen(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				memset((void*)T41_, 0, sizeof(T41_));
				addf_8UUGW4xtgpag0J4uEnVLuQ(T40_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_654), T41_, 0);
			}
			LA38_: ;
			{
				tyArray_j0xH32fTir0IvGY7WxQsQA T46_;
				NI T47_;
				tyArray_j0xH32fTir0IvGY7WxQsQA T48_;
				if (!(blen == ((NI) 1))) goto LA44_;
				catchAllPresent = NIM_TRUE;
				memset((void*)T46_, 0, sizeof(T46_));
				T47_ = (NI)0;
				T47_ = startBlock_0yHaXWrgTt8ykj8X9aq9b9cxQ(p, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_290), T46_, 0);
				expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*(*t).kindU.S6.sons->data[i]).kindU.S6.sons->data[((NI) 0)], d);
				memset((void*)T48_, 0, sizeof(T48_));
				linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_640), T48_, 0);
				endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
			}
			goto LA42_;
			LA44_: ;
			{
				tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* orExpr;
				tyArray_ZqT9cbUNKsl55MABiLlPDxA T58_;
				tyArray_j0xH32fTir0IvGY7WxQsQA T59_;
				NI T60_;
				tyArray_j0xH32fTir0IvGY7WxQsQA T61_;
				orExpr = NIM_NIL;
				{
					NI j;
					NI colontmp_;
					NI res;
					j = (NI)0;
					colontmp_ = (NI)0;
					colontmp_ = (NI)(blen - ((NI) 2));
					res = ((NI) 0);
					{
						while (1) {
							tyArray_YB3ke0PEM9bcAj9bAsA619bJA T57_;
							if (!(res <= colontmp_)) goto LA52;
							j = res;
							{
								if (!!((orExpr == NIM_NIL))) goto LA55_;
								add_UJnSY21g59awhvSFBxJ9a9aPg(&orExpr, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_244));
							}
							LA55_: ;
							memset((void*)T57_, 0, sizeof(T57_));
							T57_[0] = exc;
							T57_[1] = genTypeInfo_x7sD9aHIDrXyWVDTVp9bclvA((*p).module, (*(*(*t).kindU.S6.sons->data[i]).kindU.S6.sons->data[j]).typ);
							appcg_TJmWJ0eU9byq14ToBfxDtXQ((*p).module, &orExpr, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_655), T57_, 2);
							res += ((NI) 1);
						} LA52: ;
					}
				}
				memset((void*)T58_, 0, sizeof(T58_));
				T58_[0] = orExpr;
				lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_656), T58_, 1);
				memset((void*)T59_, 0, sizeof(T59_));
				T60_ = (NI)0;
				T60_ = startBlock_0yHaXWrgTt8ykj8X9aq9b9cxQ(p, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_290), T59_, 0);
				expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*(*t).kindU.S6.sons->data[i]).kindU.S6.sons->data[(NI)(blen - ((NI) 1))], d);
				memset((void*)T61_, 0, sizeof(T61_));
				linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_640), T61_, 0);
				endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
			}
			LA42_: ;
			i += ((NI) 1);
		} LA27: ;
	}
	{
		tyArray_j0xH32fTir0IvGY7WxQsQA T71_;
		NI T72_;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* finallyBlock;
		tyArray_j0xH32fTir0IvGY7WxQsQA T77_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T78_;
		if (!!(catchAllPresent)) goto LA64_;
		{
			tyArray_j0xH32fTir0IvGY7WxQsQA T70_;
			if (!(((NI) 1) < i)) goto LA68_;
			memset((void*)T70_, 0, sizeof(T70_));
			lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_654), T70_, 0);
		}
		LA68_: ;
		memset((void*)T71_, 0, sizeof(T71_));
		T72_ = (NI)0;
		T72_ = startBlock_0yHaXWrgTt8ykj8X9aq9b9cxQ(p, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_290), T71_, 0);
		finallyBlock = lastSon_esDJA7239bJDiq4UrX9aHCjg(t);
		{
			if (!((*finallyBlock).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 107))) goto LA75_;
			genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, (*finallyBlock).kindU.S6.sons->data[((NI) 0)]);
		}
		LA75_: ;
		memset((void*)T77_, 0, sizeof(T77_));
		T78_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T78_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_657), T77_, 0);
		line_ALdLmqKb9cyvVSETUUyUh9aQ(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), T78_);
		endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
	}
	LA64_: ;
	memset((void*)T79_, 0, sizeof(T79_));
	lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_174), T79_, 0);
	(*p).inExceptBlock -= ((NI) 1);
	T80_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	T80_ = pop_d29cpXTitwhGntYusVkzaCgtrees((&(*p).nestedTryStmts));
	T80_;
	{
		NIM_BOOL T83_;
		T83_ = (NIM_BOOL)0;
		T83_ = (i < length);
		if (!(T83_)) goto LA84_;
		T83_ = ((*(*t).kindU.S6.sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 107));
		LA84_: ;
		if (!T83_) goto LA85_;
		genSimpleBlock_RH6PUsmPRE4ftBMagpWhBQcgen(p, (*(*t).kindU.S6.sons->data[i]).kindU.S6.sons->data[((NI) 0)]);
	}
	LA85_: ;
}

N_NIMCALL(void, line_9aXHc8esghJ4O9cCshiFsv8g)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg s, NimStringDesc* r) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T1_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T2_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T3_;
	T1_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
	T1_ = s_OUiru83H7n4zC9cnXN2KbrQcgen(p, s);
	T2_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T2_ = rope_53CHEX05HP0HacydnwoUYg(r);
	T3_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T3_ = indentLine_Fi9b9bJCT10U0UUyX38f9b9adA(p, T2_);
	add_cDalAhgBlDWoYHadkaqqxw(T1_, T3_);
}

static N_INLINE(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, pop_Uwv9aKTtuI0HDD9bflz9aw9cCAropes)(tySequence_LViedqhb8iWVoqgZs5LifA** s) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	NI L;
	NI T1_;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T1_ = ((*s) ? (*s)->Sup.len : 0);
	L = (NI)(T1_ - ((NI) 1));
	result = (*s)->data[L];
	(*s) = (tySequence_LViedqhb8iWVoqgZs5LifA*) setLengthSeq(&((*s))->Sup, sizeof(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*), ((NI) (L)));
	return result;
}

N_NIMCALL(void, genTry_re1pwmyeR32ikwnOC3vvzQ_6)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* safePoint;
	tyArray_ZqT9cbUNKsl55MABiLlPDxA T16_;
	tyArray_ZqT9cbUNKsl55MABiLlPDxA T17_;
	tyArray_ZqT9cbUNKsl55MABiLlPDxA T36_;
	NI T37_;
	NI length;
	NI T38_;
	tyArray_j0xH32fTir0IvGY7WxQsQA T39_;
	tyArray_j0xH32fTir0IvGY7WxQsQA T40_;
	NI T41_;
	tyArray_j0xH32fTir0IvGY7WxQsQA T42_;
	NI i;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T95_;
	tyArray_ZqT9cbUNKsl55MABiLlPDxA T104_;
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = isEmptyType_9bToMoy0nns9a3tJPtRpLUVAvmgen((*t).typ);
		T3_ = !(T4_);
		if (!(T3_)) goto LA5_;
		T3_ = ((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0));
		LA5_: ;
		if (!T3_) goto LA6_;
		getTemp_AAMs9asc5S78MBo8z9bTltgw(p, (*t).typ, d, NIM_FALSE);
	}
	LA6_: ;
	includeHeader_PtTSTz0wtuSjGW8vGXThOQ((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_658));
	genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
	safePoint = getTempName_54CrPIOFKsrtQd59cl9bHH3A((*p).module);
	{
		tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* T10_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T13_;
		T10_ = (tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw*)0;
		T10_ = getCompilerProc_shbCpG9bVTG0JrTOcXxC2hQ_2(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_649));
		if (!!((T10_ == NIM_NIL))) goto LA11_;
		T13_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T13_ = cgsym_LDQwSdTgGBvWUKfBZpHXDw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_649));
		T13_;
	}
	goto LA8_;
	LA11_: ;
	{
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T15_;
		T15_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T15_ = cgsym_LDQwSdTgGBvWUKfBZpHXDw((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_650));
		T15_;
	}
	LA8_: ;
	memset((void*)T16_, 0, sizeof(T16_));
	T16_[0] = safePoint;
	linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_659), T16_, 1);
	memset((void*)T17_, 0, sizeof(T17_));
	T17_[0] = safePoint;
	linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_660), T17_, 1);
	{
		NIM_BOOL T20_;
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T23_;
		T20_ = (NIM_BOOL)0;
		T20_ = isDefined_BNPf2mtM9a7JF7UKiCAngvg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_661));
		if (!T20_) goto LA21_;
		memset((void*)T23_, 0, sizeof(T23_));
		T23_[0] = safePoint;
		linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_662), T23_, 1);
	}
	goto LA18_;
	LA21_: ;
	{
		NIM_BOOL T25_;
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T28_;
		T25_ = (NIM_BOOL)0;
		T25_ = isDefined_BNPf2mtM9a7JF7UKiCAngvg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_663));
		if (!T25_) goto LA26_;
		memset((void*)T28_, 0, sizeof(T28_));
		T28_[0] = safePoint;
		linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_664), T28_, 1);
	}
	goto LA18_;
	LA26_: ;
	{
		NIM_BOOL T30_;
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T33_;
		T30_ = (NIM_BOOL)0;
		T30_ = isDefined_BNPf2mtM9a7JF7UKiCAngvg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_665));
		if (!T30_) goto LA31_;
		memset((void*)T33_, 0, sizeof(T33_));
		T33_[0] = safePoint;
		linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_666), T33_, 1);
	}
	goto LA18_;
	LA31_: ;
	{
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T35_;
		memset((void*)T35_, 0, sizeof(T35_));
		T35_[0] = safePoint;
		linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_662), T35_, 1);
	}
	LA18_: ;
	memset((void*)T36_, 0, sizeof(T36_));
	T36_[0] = safePoint;
	T37_ = (NI)0;
	T37_ = startBlock_0yHaXWrgTt8ykj8X9aq9b9cxQ(p, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_667), T36_, 1);
	length = sonsLen_qPWPHw7WgJeEVYUdcaRIig(t);
	(*p).nestedTryStmts = (tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV2(&((*p).nestedTryStmts)->Sup, sizeof(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*));
	T38_ = (*p).nestedTryStmts->Sup.len++;
	asgnRefNoCycle((void**) (&(*p).nestedTryStmts->data[T38_]), t);
	expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*t).kindU.S6.sons->data[((NI) 0)], d);
	memset((void*)T39_, 0, sizeof(T39_));
	linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_639), T39_, 0);
	endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
	memset((void*)T40_, 0, sizeof(T40_));
	T41_ = (NI)0;
	T41_ = startBlock_0yHaXWrgTt8ykj8X9aq9b9cxQ(p, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_668), T40_, 0);
	memset((void*)T42_, 0, sizeof(T42_));
	linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_639), T42_, 0);
	{
		tyArray_j0xH32fTir0IvGY7WxQsQA T47_;
		if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 15))&31U)))!=0)) goto LA45_;
		memset((void*)T47_, 0, sizeof(T47_));
		linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_653), T47_, 0);
	}
	LA45_: ;
	(*p).inExceptBlock += ((NI) 1);
	i = ((NI) 1);
	{
		while (1) {
			NIM_BOOL T50_;
			NI blen;
			T50_ = (NIM_BOOL)0;
			T50_ = (i < length);
			if (!(T50_)) goto LA51_;
			T50_ = ((*(*t).kindU.S6.sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 87));
			LA51_: ;
			if (!T50_) goto LA49;
			{
				NIM_BOOL T54_;
				T54_ = (NIM_BOOL)0;
				T54_ = ((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 1));
				if (!(T54_)) goto LA55_;
				T54_ = isEmptyType_9bToMoy0nns9a3tJPtRpLUVAvmgen((*t).typ);
				LA55_: ;
				if (!T54_) goto LA56_;
				(*d).k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0);
			}
			LA56_: ;
			blen = sonsLen_qPWPHw7WgJeEVYUdcaRIig((*t).kindU.S6.sons->data[i]);
			{
				tyArray_j0xH32fTir0IvGY7WxQsQA T67_;
				NI T68_;
				tyArray_ZqT9cbUNKsl55MABiLlPDxA T69_;
				tyArray_j0xH32fTir0IvGY7WxQsQA T70_;
				if (!(blen == ((NI) 1))) goto LA60_;
				{
					tyArray_j0xH32fTir0IvGY7WxQsQA T66_;
					if (!(((NI) 1) < i)) goto LA64_;
					memset((void*)T66_, 0, sizeof(T66_));
					lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_669), T66_, 0);
				}
				LA64_: ;
				memset((void*)T67_, 0, sizeof(T67_));
				T68_ = (NI)0;
				T68_ = startBlock_0yHaXWrgTt8ykj8X9aq9b9cxQ(p, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_290), T67_, 0);
				memset((void*)T69_, 0, sizeof(T69_));
				T69_[0] = safePoint;
				linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_670), T69_, 1);
				expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*(*t).kindU.S6.sons->data[i]).kindU.S6.sons->data[((NI) 0)], d);
				memset((void*)T70_, 0, sizeof(T70_));
				linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_640), T70_, 0);
				endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
			}
			goto LA58_;
			LA60_: ;
			{
				tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* orExpr;
				tyArray_ZqT9cbUNKsl55MABiLlPDxA T91_;
				NI T92_;
				tyArray_ZqT9cbUNKsl55MABiLlPDxA T93_;
				tyArray_j0xH32fTir0IvGY7WxQsQA T94_;
				orExpr = NIM_NIL;
				{
					NI j;
					NI colontmp_;
					NI res;
					j = (NI)0;
					colontmp_ = (NI)0;
					colontmp_ = (NI)(blen - ((NI) 2));
					res = ((NI) 0);
					{
						while (1) {
							NimStringDesc* isObjFormat;
							tyArray_ZqT9cbUNKsl55MABiLlPDxA T86_;
							if (!(res <= colontmp_)) goto LA74;
							j = res;
							{
								if (!!((orExpr == NIM_NIL))) goto LA77_;
								add_UJnSY21g59awhvSFBxJ9a9aPg(&orExpr, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_244));
							}
							LA77_: ;
							{
								NIM_BOOL T81_;
								T81_ = (NIM_BOOL)0;
								T81_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
								if (T81_) goto LA82_;
								T81_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
								LA82_: ;
								if (!!(T81_)) goto LA83_;
								isObjFormat = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_671));
							}
							goto LA79_;
							LA83_: ;
							{
								isObjFormat = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_672));
							}
							LA79_: ;
							memset((void*)T86_, 0, sizeof(T86_));
							T86_[0] = genTypeInfo_x7sD9aHIDrXyWVDTVp9bclvA((*p).module, (*(*(*t).kindU.S6.sons->data[i]).kindU.S6.sons->data[j]).typ);
							appcg_TJmWJ0eU9byq14ToBfxDtXQ((*p).module, &orExpr, isObjFormat, T86_, 1);
							res += ((NI) 1);
						} LA74: ;
					}
				}
				{
					if (!(((NI) 1) < i)) goto LA89_;
					line_9aXHc8esghJ4O9cCshiFsv8g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_654));
				}
				LA89_: ;
				memset((void*)T91_, 0, sizeof(T91_));
				T91_[0] = orExpr;
				T92_ = (NI)0;
				T92_ = startBlock_0yHaXWrgTt8ykj8X9aq9b9cxQ(p, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_673), T91_, 1);
				memset((void*)T93_, 0, sizeof(T93_));
				T93_[0] = safePoint;
				linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_670), T93_, 1);
				expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*(*t).kindU.S6.sons->data[i]).kindU.S6.sons->data[(NI)(blen - ((NI) 1))], d);
				memset((void*)T94_, 0, sizeof(T94_));
				linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_640), T94_, 0);
				endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
			}
			LA58_: ;
			i += ((NI) 1);
		} LA49: ;
	}
	(*p).inExceptBlock -= ((NI) 1);
	T95_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	T95_ = pop_d29cpXTitwhGntYusVkzaCgtrees((&(*p).nestedTryStmts));
	T95_;
	endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
	{
		NIM_BOOL T98_;
		NI T102_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T103_;
		T98_ = (NIM_BOOL)0;
		T98_ = (i < length);
		if (!(T98_)) goto LA99_;
		T98_ = ((*(*t).kindU.S6.sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 107));
		LA99_: ;
		if (!T98_) goto LA100_;
		(*p).finallySafePoints = (tySequence_LViedqhb8iWVoqgZs5LifA*) incrSeqV2(&((*p).finallySafePoints)->Sup, sizeof(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*));
		T102_ = (*p).finallySafePoints->Sup.len++;
		asgnRefNoCycle((void**) (&(*p).finallySafePoints->data[T102_]), safePoint);
		genSimpleBlock_RH6PUsmPRE4ftBMagpWhBQcgen(p, (*(*t).kindU.S6.sons->data[i]).kindU.S6.sons->data[((NI) 0)]);
		T103_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T103_ = pop_Uwv9aKTtuI0HDD9bflz9aw9cCAropes((&(*p).finallySafePoints));
		T103_;
	}
	LA100_: ;
	memset((void*)T104_, 0, sizeof(T104_));
	T104_[0] = safePoint;
	linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_674), T104_, 1);
}

N_NIMCALL(NimStringDesc*, getRaiseFrmt_jwlAjF7Ct29cE9b9bFesOe0dA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p) {
	NimStringDesc* result;
	result = (NimStringDesc*)0;
	result = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_675));
	return result;
}

N_NIMCALL(void, genRaiseStmt_QrTB5DOwbDX9bKAW7PNbuJA_8)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t) {
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* finallyBlock;
		NI T5_;
		if (!(((NI) 0) < (*p).inExceptBlock)) goto LA3_;
		T5_ = ((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0);
		finallyBlock = lastSon_esDJA7239bJDiq4UrX9aHCjg((*p).nestedTryStmts->data[(NI)(T5_ - ((NI) 1))]);
		{
			if (!((*finallyBlock).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 107))) goto LA8_;
			genSimpleBlock_RH6PUsmPRE4ftBMagpWhBQcgen(p, (*finallyBlock).kindU.S6.sons->data[((NI) 0)]);
		}
		LA8_: ;
	}
	LA3_: ;
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* e;
		tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ;
		NimStringDesc* T14_;
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T15_;
		if (!!(((*(*t).kindU.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA12_;
		memset((void*)(&a), 0, sizeof(a));
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*t).kindU.S6.sons->data[((NI) 0)], (&a));
		e = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
		typ = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*(*t).kindU.S6.sons->data[((NI) 0)]).typ, IL64(36028797033687312));
		genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
		T14_ = (NimStringDesc*)0;
		T14_ = getRaiseFrmt_jwlAjF7Ct29cE9b9bFesOe0dA(p);
		memset((void*)T15_, 0, sizeof(T15_));
		T15_[0] = e;
		T15_[1] = makeCString_c9cmJUs9bNfunHyoffjBZxyg((*(*(*typ).sym).name).s);
		lineCg_Z6xIOvD09aMfYvHnc82A86A_2(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), T14_, T15_, 2);
	}
	goto LA10_;
	LA12_: ;
	{
		genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
		{
			NIM_BOOL T19_;
			NIM_BOOL T20_;
			tyArray_j0xH32fTir0IvGY7WxQsQA T25_;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T26_;
			T19_ = (NIM_BOOL)0;
			T20_ = (NIM_BOOL)0;
			T20_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
			if (T20_) goto LA21_;
			T20_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA21_: ;
			T19_ = T20_;
			if (!(T19_)) goto LA22_;
			T19_ = !(((gGlobalOptions_j042VVDC9cT5ENYoXnmhhVg &(1U<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 30))&31U)))!=0));
			LA22_: ;
			if (!T19_) goto LA23_;
			memset((void*)T25_, 0, sizeof(T25_));
			T26_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T26_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_657), T25_, 0);
			line_ALdLmqKb9cyvVSETUUyUh9aQ(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), T26_);
		}
		goto LA17_;
		LA23_: ;
		{
			tyArray_j0xH32fTir0IvGY7WxQsQA T28_;
			memset((void*)T28_, 0, sizeof(T28_));
			linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_676), T28_, 0);
		}
		LA17_: ;
	}
	LA10_: ;
}

N_NIMCALL(void, genTypeSection_RWbniVujFjTeOzm9aGF0Rog)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
}

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

N_NIMCALL(void, genEmit_QrTB5DOwbDX9bKAW7PNbuJA_9)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* s;
	s = genAsmOrEmitStmt_N9a8wT4v8ScQB5fpNhIdTPg(p, (*t).kindU.S6.sons->data[((NI) 1)], NIM_FALSE);
	{
		tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg section;
		if (!((*p).prc == NIM_NIL)) goto LA3_;
		section = determineSection_9arH9c6mXq5etPZBb1Z9cafbw((*t).kindU.S6.sons->data[((NI) 1)]);
		genCLineDir_r0Cs29adVXBO59aWyfKk0YAQ(&(*(*p).module).s[(section)- 0], (*t).info);
		add_cDalAhgBlDWoYHadkaqqxw(&(*(*p).module).s[(section)- 0], s);
	}
	goto LA1_;
	LA3_: ;
	{
		genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
		line_ALdLmqKb9cyvVSETUUyUh9aQ(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), s);
	}
	LA1_: ;
}

N_NIMCALL(void, genBreakPoint_QrTB5DOwbDX9bKAW7PNbuJA_10)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t) {
	NimStringDesc* name;
	name = (NimStringDesc*)0;
	{
		tyArray_1UwZ4PfBDZcImViZT8dk0w T12_;
		NI T13_;
		NimStringDesc* T14_;
		if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 17))&31U)))!=0)) goto LA3_;
		{
			if (!((*t).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA7_;
			name = nsuNormalize((*(*t).kindU.S6.sons->data[((NI) 1)]).kindU.S3.strVal);
		}
		goto LA5_;
		LA7_: ;
		{
			NimStringDesc* T10_;
			NimStringDesc* T11_;
			(*(*(*p).module).g).breakPointId += ((NI) 1);
			T10_ = (NimStringDesc*)0;
			T11_ = (NimStringDesc*)0;
			T11_ = nimIntToStr((*(*(*p).module).g).breakPointId);
			T10_ = rawNewString(T11_->Sup.len + 2);
appendString(T10_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_680));
appendString(T10_, T11_);
			name = T10_;
		}
		LA5_: ;
		genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
		memset((void*)T12_, 0, sizeof(T12_));
		T13_ = (NI)0;
		T13_ = toLinenumber_Vr9aXuUyvBQDK4X2879cHuGgsigmatch((*t).info);
		T12_[0] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (T13_)));
		T14_ = (NimStringDesc*)0;
		{
			if (!((*t).info.fileIndex < ((NI32) 0))) goto LA17_;
			T14_ = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_12));
		}
		goto LA15_;
		LA17_: ;
		{
			T14_ = copyString(fileInfos_0nMtuXd9csTLLtuDok8ckXw->data[(*t).info.fileIndex].projPath);
		}
		LA15_: ;
		T12_[1] = makeCString_c9cmJUs9bNfunHyoffjBZxyg(T14_);
		T12_[2] = makeCString_c9cmJUs9bNfunHyoffjBZxyg(name);
		appcg_TJmWJ0eU9byq14ToBfxDtXQ((*p).module, &(*(*(*p).module).g).breakpoints, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_681), T12_, 3);
	}
	LA3_: ;
}

N_NIMCALL(void, genWatchpoint_UtJx89cn0a8CNSWWmaj6raA_7)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* typ;
	tyArray_1UwZ4PfBDZcImViZT8dk0w T5_;
	NimStringDesc* T6_;
{	{
		if (!!((((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 17))&31U)))!=0))) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	memset((void*)(&a), 0, sizeof(a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n).kindU.S6.sons->data[((NI) 1)], (&a));
	typ = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*(*n).kindU.S6.sons->data[((NI) 1)]).typ, IL64(36028797028444432));
	memset((void*)T5_, 0, sizeof(T5_));
	T5_[0] = addrLoc_YU9cO6gMkMct9bbzvzDM0Dzw_2((&a));
	T6_ = (NimStringDesc*)0;
	T6_ = renderTree_ppjdh9aQ5L0SGPF8yz1gZ9cA((*n).kindU.S6.sons->data[((NI) 1)], 0);
	T5_[1] = makeCString_c9cmJUs9bNfunHyoffjBZxyg(T6_);
	T5_[2] = genTypeInfo_x7sD9aHIDrXyWVDTVp9bclvA((*p).module, typ);
	lineCg_Z6xIOvD09aMfYvHnc82A86A_2(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_682), T5_, 3);
	}BeforeRet_: ;
}

N_NIMCALL(void, genPragma_UtJx89cn0a8CNSWWmaj6raA_6)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
		colontmp_ = (NI)(T2_ - ((NI) 1));
		res = ((NI) 0);
		{
			while (1) {
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
				tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw T5_;
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				it = (*n).kindU.S6.sons->data[i];
				T5_ = (tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw)0;
				T5_ = whichPragma_tadMdqrtQd2cek9aFwyE1XQ(it);
				switch (T5_) {
				case ((tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw) 194):
				{
					genEmit_QrTB5DOwbDX9bKAW7PNbuJA_9(p, it);
				}
				break;
				case ((tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw) 133):
				{
					genBreakPoint_QrTB5DOwbDX9bKAW7PNbuJA_10(p, it);
				}
				break;
				case ((tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw) 179):
				{
					genWatchpoint_UtJx89cn0a8CNSWWmaj6raA_7(p, it);
				}
				break;
				case ((tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw) 186):
				{
					tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p_2;
					tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T10_;
					p_2 = newProc_Mqi1a0mHlQ8XakVweFEAvQ(NIM_NIL, (*p).module);
					(*p_2).options = ((*p_2).options & ~ 98304);
					genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p_2, (*it).kindU.S6.sons->data[((NI) 1)]);
					T10_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
					T10_ = s_OUiru83H7n4zC9cnXN2KbrQcgen(p_2, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
					asgnRefNoCycle((void**) (&(*(*p_2).module).injectStmt), (*T10_));
				}
				break;
				default:
				{
				}
				break;
				}
				res += ((NI) 1);
			} LA4: ;
		}
	}
}

N_NIMCALL(void, genParForStmt_QrTB5DOwbDX9bKAW7PNbuJA_11)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t) {
	NI oldBreakIdx;
	tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* forLoopVar;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA rangeA;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA rangeB;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* call;
	tyArray_EcJXtY9cAr9bpvybuP0XpjyQ T1_;
	NimStringDesc* T2_;
	tyArray_j0xH32fTir0IvGY7WxQsQA T3_;
	(*p).withinLoop += ((NI) 1);
	genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
	oldBreakIdx = (*p).breakIdx;
	forLoopVar = (*(*t).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym;
	memset((void*)(&rangeA), 0, sizeof(rangeA));
	memset((void*)(&rangeB), 0, sizeof(rangeB));
	assignLocalVar_25ePRX3l19c3c1n9bFXQUURw(p, forLoopVar);
	call = (*t).kindU.S6.sons->data[((NI) 1)];
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*call).kindU.S6.sons->data[((NI) 1)], (&rangeA));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*call).kindU.S6.sons->data[((NI) 2)], (&rangeB));
	memset((void*)T1_, 0, sizeof(T1_));
	T1_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&(*forLoopVar).loc));
	T1_[1] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&rangeA));
	T1_[2] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&rangeB));
	T2_ = (NimStringDesc*)0;
	T2_ = getStr_P2DOsHG6Jk4Siab3L2qwUg((*call).kindU.S6.sons->data[((NI) 3)]);
	T1_[3] = rope_53CHEX05HP0HacydnwoUYg(T2_);
	lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_683), T1_, 4);
	memset((void*)T3_, 0, sizeof(T3_));
	(*p).breakIdx = startBlock_0yHaXWrgTt8ykj8X9aq9b9cxQ(p, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_290), T3_, 0);
	(*p).blocks->data[(*p).breakIdx].isLoop = NIM_TRUE;
	genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, (*t).kindU.S6.sons->data[((NI) 2)]);
	endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
	(*p).breakIdx = oldBreakIdx;
	(*p).withinLoop -= ((NI) 1);
}

N_NIMCALL(void, genState_UtJx89cn0a8CNSWWmaj6raA_8)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NI64 idx;
	tyArray_ZqT9cbUNKsl55MABiLlPDxA T9_;
	{
		NIM_BOOL T3_;
		NI T4_;
		NimStringDesc* T8_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NI)0;
		T4_ = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(n);
		T3_ = (T4_ == ((NI) 1));
		if (!(T3_)) goto LA5_;
		T3_ = ((*(*n).kindU.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 6));
		LA5_: ;
		if (!!(T3_)) goto LA6_;
		T8_ = (NimStringDesc*)0;
		T8_ = dollar__k53Ge4e9cDjc7y9c5uML7sPQ(TM_MQdRN7fpbG7rPm4JpVVAhA_684);
		internalError_5XY9cUy7hZmUusM38U9cYYdw(T8_);
	}
	LA6_: ;
	idx = (*(*n).kindU.S6.sons->data[((NI) 0)]).kindU.S1.intVal;
	memset((void*)T9_, 0, sizeof(T9_));
	T9_[0] = rope_pEztpD6TFe5jk3aCrOSACA(idx);
	linefmt_Z6xIOvD09aMfYvHnc82A86A(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_686), T9_, 1);
}

N_NIMCALL(void, genGotoState_UtJx89cn0a8CNSWWmaj6raA_9)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyArray_ZqT9cbUNKsl55MABiLlPDxA T1_;
	tyArray_j0xH32fTir0IvGY7WxQsQA T2_;
	tyArray_j0xH32fTir0IvGY7WxQsQA T7_;
	memset((void*)(&a), 0, sizeof(a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n).kindU.S6.sons->data[((NI) 0)], (&a));
	memset((void*)T1_, 0, sizeof(T1_));
	T1_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
	lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_637), T1_, 1);
	(*p).beforeRetNeeded = NIM_TRUE;
	memset((void*)T2_, 0, sizeof(T2_));
	lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_687), T2_, 0);
	{
		NI64 i;
		NI64 colontmp_;
		NI64 res;
		i = (NI64)0;
		colontmp_ = (NI64)0;
		colontmp_ = lastOrd_HUiBYxvKiECXCv8BzQNheg_2((*(*n).kindU.S6.sons->data[((NI) 0)]).typ);
		res = IL64(0);
		{
			while (1) {
				tyArray_ZqT9cbUNKsl55MABiLlPDxA T6_;
				if (!(res <= colontmp_)) goto LA5;
				i = res;
				memset((void*)T6_, 0, sizeof(T6_));
				T6_[0] = rope_pEztpD6TFe5jk3aCrOSACA(i);
				lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_688), T6_, 1);
				res += ((NI) 1);
			} LA5: ;
		}
	}
	memset((void*)T7_, 0, sizeof(T7_));
	lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_174), T7_, 0);
}

N_NIMCALL(void, genBreakState_UtJx89cn0a8CNSWWmaj6raA_10)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	memset((void*)(&a), 0, sizeof(a));
	{
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T5_;
		if (!((*(*n).kindU.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 155))) goto LA3_;
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*(*n).kindU.S6.sons->data[((NI) 0)]).kindU.S6.sons->data[((NI) 1)], (&a));
		memset((void*)T5_, 0, sizeof(T5_));
		T5_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
		lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_689), T5_, 1);
	}
	goto LA1_;
	LA3_: ;
	{
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T7_;
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n).kindU.S6.sons->data[((NI) 0)], (&a));
		memset((void*)T7_, 0, sizeof(T7_));
		T7_[0] = rdLoc_YU9cO6gMkMct9bbzvzDM0Dzw((&a));
		lineF_gZoxMzCWCNZ6iEh5xl8k0g(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_690), T7_, 1);
	}
	LA1_: ;
}

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_AXG7xcvKqaxY6koRX1xkCw* sym;
		sym = (*n).kindU.S4.sym;
		switch ((*sym).kind) {
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 13):
		{
			{
				if (!!(((67108880 & (*sym).flags) == 0))) goto LA5_;
				fillProcLoc_5LEMfE09buQIXg39bLkcpjww((*p).module, sym);
				genProcPrototype_5LEMfE09buQIXg39bLkcpjww_2((*p).module, sym);
			}
			goto LA3_;
			LA5_: ;
			{
				genProc_FcQi2SC56oH1DQZne5xn7Q((*p).module, sym);
			}
			LA3_: ;
			putLocIntoDest_SkhzpH2DDHJ7pbmCpsHIPg(p, d, (&(*sym).loc));
		}
		break;
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 12):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 15):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 14):
		{
			{
				NimStringDesc* T13_;
				if (!(((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 24))&63U)))!=0)) goto LA11_;
				T13_ = (NimStringDesc*)0;
				T13_ = rawNewString((*(*sym).name).s->Sup.len + 48);
appendString(T13_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_287));
appendString(T13_, (*(*sym).name).s);
				localError_GarD0CQJ5aQhoHekHYinVQ((*n).info, T13_);
			}
			LA11_: ;
			genProc_FcQi2SC56oH1DQZne5xn7Q((*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.t == NIM_NIL);
				LA17_: ;
				if (!T16_) goto LA18_;
				T20_ = (NimStringDesc*)0;
				T20_ = rawNewString((*(*sym).name).s->Sup.len + 20);
appendString(T20_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_288));
appendString(T20_, (*(*sym).name).s);
				internalError_MXmtqrCmYwtOPkDCFgUWKQ((*n).info, T20_);
			}
			LA18_: ;
			putLocIntoDest_SkhzpH2DDHJ7pbmCpsHIPg(p, d, (&(*sym).loc));
		}
		break;
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 10):
		{
			{
				NIM_BOOL T24_;
				tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T27_;
				T24_ = (NIM_BOOL)0;
				T24_ = isSimpleConst_XgQBmxm2ONDacXwgZ5mQzA((*sym).typ);
				if (!T24_) goto LA25_;
				T27_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
				T27_ = genLiteral_9cX45zW07vmEVg5MVCgp3Qg(p, (*sym).ast, (*sym).typ);
				putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*n).typ, T27_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 1));
			}
			goto LA22_;
			LA25_: ;
			{
				genComplexConst_8URCVeUDTzFDNPBn6P6nMw(p, sym, d);
			}
			LA22_: ;
		}
		break;
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 19):
		{
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T30_;
			T30_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T30_ = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) ((*sym).position)));
			putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*n).typ, T30_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		break;
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 8):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 20):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 11):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 9):
		{
			{
				if (!!(((8388616 & (*sym).flags) == 0))) goto LA34_;
				genVarPrototype_5LEMfE09buQIXg39bLkcpjww_6((*p).module, sym);
			}
			LA34_: ;
			{
				NIM_BOOL T38_;
				NimStringDesc* T42_;
				NimStringDesc* T43_;
				T38_ = (NIM_BOOL)0;
				T38_ = ((*sym).loc.r == NIM_NIL);
				if (T38_) goto LA39_;
				T38_ = ((*sym).loc.t == NIM_NIL);
				LA39_: ;
				if (!T38_) goto LA40_;
				T42_ = (NimStringDesc*)0;
				T43_ = (NimStringDesc*)0;
				T43_ = nimIntToStr((*sym).Sup.id);
				T42_ = rawNewString((*(*sym).name).s->Sup.len + T43_->Sup.len + 20);
appendString(T42_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_312));
appendString(T42_, (*(*sym).name).s);
appendString(T42_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_8));
appendString(T42_, T43_);
				internalError_MXmtqrCmYwtOPkDCFgUWKQ((*n).info, T42_);
			}
			LA40_: ;
			{
				if (!(((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 23))&63U)))!=0)) goto LA46_;
				accessThreadLocalVar_25ePRX3l19c3c1n9bFXQUURw_4(p, sym);
				{
					NIM_BOOL T50_;
					tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T53_;
					T50_ = (NIM_BOOL)0;
					T50_ = emulatedThreadVars_qJe2xBmGcgIoAQUJsGS9aGwcgen();
					if (!T50_) goto LA51_;
					T53_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
					T53_ = amp__OL8oYU3myMrLfqhcdP9b3Ig(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_315), (*sym).loc.r);
					putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*sym).loc.t, T53_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
				}
				goto LA48_;
				LA51_: ;
				{
					putLocIntoDest_SkhzpH2DDHJ7pbmCpsHIPg(p, d, (&(*sym).loc));
				}
				LA48_: ;
			}
			goto LA44_;
			LA46_: ;
			{
				putLocIntoDest_SkhzpH2DDHJ7pbmCpsHIPg(p, d, (&(*sym).loc));
			}
			LA44_: ;
		}
		break;
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 5):
		{
			{
				NIM_BOOL T59_;
				NimStringDesc* T63_;
				NimStringDesc* T64_;
				T59_ = (NIM_BOOL)0;
				T59_ = ((*sym).loc.r == NIM_NIL);
				if (T59_) goto LA60_;
				T59_ = ((*sym).loc.t == NIM_NIL);
				LA60_: ;
				if (!T59_) goto LA61_;
				T63_ = (NimStringDesc*)0;
				T64_ = (NimStringDesc*)0;
				T64_ = nimIntToStr((*sym).Sup.id);
				T63_ = rawNewString((*(*sym).name).s->Sup.len + T64_->Sup.len + 21);
appendString(T63_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_316));
appendString(T63_, (*(*sym).name).s);
appendString(T63_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_8));
appendString(T63_, T64_);
				internalError_MXmtqrCmYwtOPkDCFgUWKQ((*n).info, T63_);
			}
			LA61_: ;
			putLocIntoDest_SkhzpH2DDHJ7pbmCpsHIPg(p, d, (&(*sym).loc));
		}
		break;
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 3):
		{
			{
				NIM_BOOL T68_;
				NimStringDesc* T72_;
				NimStringDesc* T73_;
				T68_ = (NIM_BOOL)0;
				T68_ = ((*sym).loc.r == NIM_NIL);
				if (T68_) goto LA69_;
				T68_ = ((*sym).loc.t == NIM_NIL);
				LA69_: ;
				if (!T68_) goto LA70_;
				T72_ = (NimStringDesc*)0;
				T73_ = (NimStringDesc*)0;
				T73_ = nimIntToStr((*sym).Sup.id);
				T72_ = rawNewString((*(*sym).name).s->Sup.len + T73_->Sup.len + 22);
appendString(T72_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_317));
appendString(T72_, (*(*sym).name).s);
appendString(T72_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_8));
appendString(T72_, T73_);
				internalError_MXmtqrCmYwtOPkDCFgUWKQ((*n).info, T72_);
			}
			LA70_: ;
			putLocIntoDest_SkhzpH2DDHJ7pbmCpsHIPg(p, d, (&(*sym).loc));
		}
		break;
		default:
		{
			NimStringDesc* T75_;
			T75_ = (NimStringDesc*)0;
			T75_ = rawNewString(reprEnum((NI)(*sym).kind, (&NTI_cNCW9acsSznmEccl1fgQwkw_))->Sup.len + 22);
appendString(T75_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_318));
appendString(T75_, reprEnum((NI)(*sym).kind, (&NTI_cNCW9acsSznmEccl1fgQwkw_)));
appendString(T75_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_319));
			internalError_MXmtqrCmYwtOPkDCFgUWKQ((*n).info, T75_);
		}
		break;
		}
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 23):
	{
		{
			NIM_BOOL T79_;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T82_;
			T79_ = (NIM_BOOL)0;
			T79_ = isEmptyType_9bToMoy0nns9a3tJPtRpLUVAvmgen((*n).typ);
			if (!!(T79_)) goto LA80_;
			T82_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T82_ = genLiteral_9ay3JbWaSQA4xkrI8svQaZQ(p, n);
			putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*n).typ, T82_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		LA80_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 22):
	{
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T84_;
		T84_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T84_ = genLiteral_9ay3JbWaSQA4xkrI8svQaZQ(p, n);
		putDataIntoDest_Dxuag2jBVQiuegEcf4GaWQ(p, d, (*n).typ, T84_);
	}
	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_HF4qJnb6xiOddgPmsxodtQ* T86_;
		T86_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T86_ = genLiteral_9ay3JbWaSQA4xkrI8svQaZQ(p, n);
		putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*n).typ, T86_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 27):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 32):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 29):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 30):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 31):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 26):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 28):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* op;
		genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, n);
		op = (*n).kindU.S6.sons->data[((NI) 0)];
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
			if (!((*n).typ == 0)) goto LA90_;
			memset((void*)(&a), 0, sizeof(a));
			{
				NIM_BOOL T94_;
				T94_ = (NIM_BOOL)0;
				T94_ = ((*op).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
				if (!(T94_)) goto LA95_;
				T94_ = !(((*(*op).kindU.S4.sym).magic == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 0)));
				LA95_: ;
				if (!T94_) goto LA96_;
				genMagicExpr_TU9cJnldbmGa9bZDxaR6I4tg(p, n, (&a), (*(*op).kindU.S4.sym).magic);
			}
			goto LA92_;
			LA96_: ;
			{
				genCall_BKdMcfvryaJLplX0oFPcAQ_16(p, n, (&a));
			}
			LA92_: ;
		}
		goto LA88_;
		LA90_: ;
		{
			{
				NIM_BOOL T102_;
				T102_ = (NIM_BOOL)0;
				T102_ = ((*op).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
				if (!(T102_)) goto LA103_;
				T102_ = !(((*(*op).kindU.S4.sym).magic == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 0)));
				LA103_: ;
				if (!T102_) goto LA104_;
				genMagicExpr_TU9cJnldbmGa9bZDxaR6I4tg(p, n, d, (*(*op).kindU.S4.sym).magic);
			}
			goto LA100_;
			LA104_: ;
			{
				genCall_BKdMcfvryaJLplX0oFPcAQ_16(p, n, d);
			}
			LA100_: ;
		}
		LA88_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 39):
	{
		{
			NIM_BOOL T110_;
			NI T112_;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T115_;
			T110_ = (NIM_BOOL)0;
			T110_ = isDeepConstExpr_FTbvAnf1y9b9c3Krp9bsHDTiw_2(n);
			if (!(T110_)) goto LA111_;
			T112_ = (NI)0;
			T112_ = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(n);
			T110_ = !((T112_ == ((NI) 0)));
			LA111_: ;
			if (!T110_) goto LA113_;
			T115_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T115_ = genSetNode_9ay3JbWaSQA4xkrI8svQaZQ_8(p, n);
			putIntoDest_LxGU2mG84u8G0WuY5Xr0eQ(p, d, (*n).typ, T115_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		goto LA108_;
		LA113_: ;
		{
			genSetConstr_BKdMcfvryaJLplX0oFPcAQ_17(p, n, d);
		}
		LA108_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 41):
	{
		{
			NIM_BOOL T120_;
			NI T122_;
			T120_ = (NIM_BOOL)0;
			T120_ = isDeepConstExpr_FTbvAnf1y9b9c3Krp9bsHDTiw_2(n);
			if (!(T120_)) goto LA121_;
			T122_ = (NI)0;
			T122_ = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(n);
			T120_ = !((T122_ == ((NI) 0)));
			LA121_: ;
			if (!T120_) goto LA123_;
			exprComplexConst_8mAL9ckajemzgfLPfeZVNoQ_3(p, n, d);
		}
		goto LA118_;
		LA123_: ;
		{
			tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* T126_;
			T126_ = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
			T126_ = skipTypes_pLCdCGDuirMe9cspwviV9aVA((*n).typ, IL64(36028797028444432));
			if (!((*T126_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24))) goto LA127_;
			genSeqConstr_re1pwmyeR32ikwnOC3vvzQ_2(p, n, d);
		}
		goto LA118_;
		LA127_: ;
		{
			genArrayConstr_8mAL9ckajemzgfLPfeZVNoQ_4(p, n, d);
		}
		LA118_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 37):
	{
		{
			NIM_BOOL T133_;
			NI T135_;
			T133_ = (NIM_BOOL)0;
			T133_ = isDeepConstExpr_FTbvAnf1y9b9c3Krp9bsHDTiw_2(n);
			if (!(T133_)) goto LA134_;
			T135_ = (NI)0;
			T135_ = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(n);
			T133_ = !((T135_ == ((NI) 0)));
			LA134_: ;
			if (!T133_) goto LA136_;
			exprComplexConst_8mAL9ckajemzgfLPfeZVNoQ_3(p, n, d);
		}
		goto LA131_;
		LA136_: ;
		{
			genTupleConstr_8mAL9ckajemzgfLPfeZVNoQ_5(p, n, d);
		}
		LA131_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 38):
	{
		genObjConstr_BKdMcfvryaJLplX0oFPcAQ_18(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 61):
	{
		genCast_BKdMcfvryaJLplX0oFPcAQ_19(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 58):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 59):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 60):
	{
		genConv_BKdMcfvryaJLplX0oFPcAQ_20(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 63):
	{
		genAddr_BKdMcfvryaJLplX0oFPcAQ_21(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 42):
	{
		genBracketExpr_8mAL9ckajemzgfLPfeZVNoQ_6(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 47):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 65):
	{
		genDeref_BLGSHeDM9cawDE7Hp9bscFgg(p, n, d, NIM_FALSE);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 45):
	{
		genRecordField_BKdMcfvryaJLplX0oFPcAQ_23(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 46):
	{
		genCheckedRecordField_BKdMcfvryaJLplX0oFPcAQ_24(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 127):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 112):
	{
		genBlock_8mAL9ckajemzgfLPfeZVNoQ_7(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 126):
	{
		genStmtListExpr_8mAL9ckajemzgfLPfeZVNoQ_8(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 115):
	{
		{
			NI i;
			NI colontmp_;
			NI T151_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T151_ = (NI)0;
			T151_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
			colontmp_ = (NI)(T151_ - ((NI) 1));
			res = ((NI) 0);
			{
				while (1) {
					if (!(res <= colontmp_)) goto LA153;
					i = res;
					genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, (*n).kindU.S6.sons->data[i]);
					res += ((NI) 1);
				} LA153: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 48):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 92):
	{
		genIf_8mAL9ckajemzgfLPfeZVNoQ_9(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 93):
	{
		expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*(*n).kindU.S6.sons->data[((NI) 1)]).kindU.S6.sons->data[((NI) 0)], d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 66):
	{
		downConv_8mAL9ckajemzgfLPfeZVNoQ_10(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 67):
	{
		upConv_8mAL9ckajemzgfLPfeZVNoQ_11(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 68):
	{
		genRangeChck_s6WVujc8IISl9b7Y39bTXvlw(p, n, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_597));
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 69):
	{
		genRangeChck_s6WVujc8IISl9b7Y39bTXvlw(p, n, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_598));
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 70):
	{
		genRangeChck_s6WVujc8IISl9b7Y39bTXvlw(p, n, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_599));
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 71):
	{
		convStrToCStr_8mAL9ckajemzgfLPfeZVNoQ_12(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 72):
	{
		convCStrToStr_8mAL9ckajemzgfLPfeZVNoQ_13(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 51):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 52):
	{
		tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* sym_2;
		sym_2 = (*(*n).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym;
		genProc_FcQi2SC56oH1DQZne5xn7Q((*p).module, sym_2);
		{
			NIM_BOOL T166_;
			NimStringDesc* T170_;
			T166_ = (NIM_BOOL)0;
			T166_ = ((*sym_2).loc.r == NIM_NIL);
			if (T166_) goto LA167_;
			T166_ = ((*sym_2).loc.t == NIM_NIL);
			LA167_: ;
			if (!T166_) goto LA168_;
			T170_ = (NimStringDesc*)0;
			T170_ = rawNewString((*(*sym_2).name).s->Sup.len + 20);
appendString(T170_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_288));
appendString(T170_, (*(*sym_2).name).s);
			internalError_MXmtqrCmYwtOPkDCFgUWKQ((*n).info, T170_);
		}
		LA168_: ;
		putLocIntoDest_SkhzpH2DDHJ7pbmCpsHIPg(p, d, (&(*sym_2).loc));
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 155):
	{
		genClosure_8mAL9ckajemzgfLPfeZVNoQ_14(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_4(p, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 101):
	{
		genConstStmt_QrTB5DOwbDX9bKAW7PNbuJA_4(p, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 94):
	{
		internalError_MXmtqrCmYwtOPkDCFgUWKQ((*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_628));
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 97):
	{
		genCase_re1pwmyeR32ikwnOC3vvzQ_3(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 109):
	{
		genReturnStmt_QrTB5DOwbDX9bKAW7PNbuJA_5(p, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 110):
	{
		genBreakStmt_QrTB5DOwbDX9bKAW7PNbuJA_6(p, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 73):
	{
		{
			if (!!((((*n).flags &(1U<<((NU)(((tyEnum_TNodeFlag_jyh9acXHkhZANSSvPIY7ZLg) 14))&31U)))!=0))) goto LA183_;
			genAsgn_9ap9b3IFVLSL9b9akVbfMyRxlA(p, n, NIM_FALSE);
		}
		LA183_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 74):
	{
		{
			if (!!((((*n).flags &(1U<<((NU)(((tyEnum_TNodeFlag_jyh9acXHkhZANSSvPIY7ZLg) 14))&31U)))!=0))) goto LA188_;
			genAsgn_9ap9b3IFVLSL9b9akVbfMyRxlA(p, n, !(((*p).prc == NIM_NIL)));
		}
		LA188_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 114):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ex;
		ex = (*n).kindU.S6.sons->data[((NI) 0)];
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_2;
			if (!!(((*ex).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA193_;
			genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, n);
			memset((void*)(&a_2), 0, sizeof(a_2));
			{
				NIM_BOOL T197_;
				NIM_BOOL T199_;
				T197_ = (NIM_BOOL)0;
				T197_ = ((*ex).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*ex).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*ex).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*ex).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*ex).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*ex).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*ex).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 32));
				if (!(T197_)) goto LA198_;
				T199_ = (NIM_BOOL)0;
				T199_ = !(((*(*ex).kindU.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)));
				if (T199_) goto LA200_;
				T199_ = ((*(*(*ex).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym).magic == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 0));
				LA200_: ;
				T197_ = T199_;
				LA198_: ;
				if (!T197_) goto LA201_;
				a_2.flags |= ((NU16)1)<<((((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 8))%(sizeof(NU16)*8));
				genCall_BKdMcfvryaJLplX0oFPcAQ_16(p, ex, (&a_2));
				{
					tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T207_;
					tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T208_;
					if (!!(((a_2.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 8))&15U)))!=0))) goto LA205_;
					T207_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
					T207_ = amp__sUFtkQXj2TQTADyk9cLFdDg(a_2.r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_133));
					T208_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
					T208_ = amp__sUFtkQXj2TQTADyk9cLFdDg(T207_, tnl_Gp8EwkcsAP9am1klnCCHM4w);
					line_ALdLmqKb9cyvVSETUUyUh9aQ(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), T208_);
				}
				LA205_: ;
			}
			goto LA195_;
			LA201_: ;
			{
				initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, ex, (&a_2));
			}
			LA195_: ;
		}
		LA193_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 89):
	{
		genAsmStmt_QrTB5DOwbDX9bKAW7PNbuJA_7(p, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 106):
	{
		{
			NIM_BOOL T214_;
			NIM_BOOL T215_;
			T214_ = (NIM_BOOL)0;
			T215_ = (NIM_BOOL)0;
			T215_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
			if (T215_) goto LA216_;
			T215_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA216_: ;
			T214_ = T215_;
			if (!(T214_)) goto LA217_;
			T214_ = !(((gGlobalOptions_j042VVDC9cT5ENYoXnmhhVg &(1U<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 30))&31U)))!=0));
			LA217_: ;
			if (!T214_) goto LA218_;
			genTryCpp_re1pwmyeR32ikwnOC3vvzQ_5(p, n, d);
		}
		goto LA212_;
		LA218_: ;
		{
			genTry_re1pwmyeR32ikwnOC3vvzQ_6(p, n, d);
		}
		LA212_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 108):
	{
		genRaiseStmt_QrTB5DOwbDX9bKAW7PNbuJA_8(p, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 98):
	{
		genTypeSection_RWbniVujFjTeOzm9aGF0Rog((*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):
	{
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 90):
	{
		genPragma_UtJx89cn0a8CNSWWmaj6raA_6(p, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 91):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T226_;
		T226_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		T226_ = lastSon_esDJA7239bJDiq4UrX9aHCjg(n);
		expr_8mAL9ckajemzgfLPfeZVNoQ(p, T226_, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 79):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 80):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 81):
	{
		{
			tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* prc;
			if (!((*(*n).kindU.S6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA230_;
			prc = (*(*n).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym;
			{
				NIM_BOOL T234_;
				tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* T235_;
				T234_ = (NIM_BOOL)0;
				T235_ = (tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw*)0;
				T235_ = skipGenericOwner_ugWPlZqqVshHUeOH4zw3vA(prc);
				T234_ = ((*T235_).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 6));
				if (!(T234_)) goto LA236_;
				T234_ = !((((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 24))&63U)))!=0));
				LA236_: ;
				if (!T234_) goto LA237_;
				{
					NIM_BOOL T241_;
					NIM_BOOL T242_;
					NIM_BOOL T243_;
					NIM_BOOL T244_;
					NIM_BOOL T247_;
					T241_ = (NIM_BOOL)0;
					T242_ = (NIM_BOOL)0;
					T243_ = (NIM_BOOL)0;
					T244_ = (NIM_BOOL)0;
					T244_ = emitLazily_GBr9bkzyAXDTI9a9aPiuRoP7gcgen(prc);
					T243_ = !(T244_);
					if (T243_) goto LA245_;
					T243_ = ((65600 & (*prc).flags) == 64);
					LA245_: ;
					T242_ = T243_;
					if (T242_) goto LA246_;
					T247_ = (NIM_BOOL)0;
					T247_ = (((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 6))&63U)))!=0);
					if (!(T247_)) goto LA248_;
					T247_ = (((*prc).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 5))&15U)))!=0);
					LA248_: ;
					T242_ = T247_;
					LA246_: ;
					T241_ = T242_;
					if (T241_) goto LA249_;
					T241_ = ((*prc).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 13));
					LA249_: ;
					if (!T241_) goto LA250_;
					{
						NIM_BOOL T254_;
						tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T255_;
						T254_ = (NIM_BOOL)0;
						T255_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
						T255_ = getBody_eMf5HLowckpW9cDxAV9bNIZw(prc);
						T254_ = !(((*T255_).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1)));
						if (T254_) goto LA256_;
						T254_ = (((*prc).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 4))&15U)))!=0);
						LA256_: ;
						if (!T254_) goto LA257_;
						genProc_FcQi2SC56oH1DQZne5xn7Q((*p).module, prc);
					}
					LA257_: ;
				}
				LA250_: ;
			}
			LA237_: ;
		}
		LA230_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 95):
	{
		genParForStmt_QrTB5DOwbDX9bKAW7PNbuJA_11(p, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 157):
	{
		genState_UtJx89cn0a8CNSWWmaj6raA_8(p, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 156):
	{
		genGotoState_UtJx89cn0a8CNSWWmaj6raA_9(p, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 158):
	{
		genBreakState_UtJx89cn0a8CNSWWmaj6raA_10(p, n);
	}
	break;
	default:
	{
		NimStringDesc* T264_;
		T264_ = (NimStringDesc*)0;
		T264_ = rawNewString(reprEnum((NI)(*n).kind, (&NTI_G4E4Gxe7oI2Cm03rkiOzQw_))->Sup.len + 25);
appendString(T264_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_318));
appendString(T264_, reprEnum((NI)(*n).kind, (&NTI_G4E4Gxe7oI2Cm03rkiOzQw_)));
appendString(T264_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_691));
		internalError_MXmtqrCmYwtOPkDCFgUWKQ((*n).info, T264_);
	}
	break;
	}
}

N_NIMCALL(void, genStmts_QrTB5DOwbDX9bKAW7PNbuJA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	memset((void*)(&a), 0, sizeof(a));
	expr_8mAL9ckajemzgfLPfeZVNoQ(p, t, (&a));
	{
		NimStringDesc* T5_;
		if (!!(((7 &(1U<<((NU)(a.k)&15U)))!=0))) goto LA3_;
		T5_ = (NimStringDesc*)0;
		T5_ = dollar__k53Ge4e9cDjc7y9c5uML7sPQ(TM_MQdRN7fpbG7rPm4JpVVAhA_692);
		internalError_5XY9cUy7hZmUusM38U9cYYdw(T5_);
	}
	LA3_: ;
}

N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, myProcess_jWOLUlpMypldT7AYE4Hh9bg)(tyObject_TPassContext_qNsm39cWb35W2r5AAd9ch87g* b, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m;
{	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (b == NIM_NIL);
		if (T3_) goto LA4_;
		T3_ = skipCodegen_JOewUiDW9bIteW9aaAqXy7cgcgen(n);
		LA4_: ;
		if (!T3_) goto LA5_;
		goto BeforeRet_;
	}
	LA5_: ;
	m = ((tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA*) (b));
	(*(*m).initProc).options = initProcOptions_EYn9bXONq9aP52vwfOhfbTDQ(m);
	{
		if (!((gOptions_KL5B8sF4szIsM2AXCWFsIw &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 10))&31U)))!=0)) goto LA9_;
		asgnRefNoCycle((void**) (&softRnl_iUOtmgRcRwCUc9cEJC66Hsw), noRnl_DdFxAoLODDj9b2uG07y6R2w);
	}
	goto LA7_;
	LA9_: ;
	{
		asgnRefNoCycle((void**) (&softRnl_iUOtmgRcRwCUc9cEJC66Hsw), rnl_cGyNlPEm9bfohklPdVEsyNg);
	}
	LA7_: ;
	genStmts_QrTB5DOwbDX9bKAW7PNbuJA((*m).initProc, n);
	}BeforeRet_: ;
	return result;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getSomeInitName_C65FxzQb9bQ1btTLEiNl1hQ)(tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* m, NimStringDesc* suffix) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	{
		NimStringDesc* T5_;
		if (!((12288 & (*m).flags) == 0)) goto LA3_;
		T5_ = (NimStringDesc*)0;
		T5_ = mangle_0ctHksTXSPyaxjBOgK4TiA((*(*(*m).owner).name).s);
		result = rope_53CHEX05HP0HacydnwoUYg(T5_);
    add_UJnSY21g59awhvSFBxJ9a9aPg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_8));
	}
	LA3_: ;

// G-: added block:
//     if sfMainModule in m.flags and m.name.s[0] in {'0'..'9'}:
//       result.add "_"
if( (((*m).flags &( 4096 ))!=0) )
{
  if( ((NU8)((*(*m).name).s->data[0])) >= ((NU8)(48)) &&
      ((NU8)((*(*m).name).s->data[0])) <= ((NU8)(57)) )
  {
    add_UJnSY21g59awhvSFBxJ9a9aPg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_8 ));
  }
}


	add_UJnSY21g59awhvSFBxJ9a9aPg(&result, (*(*m).name).s);
	add_UJnSY21g59awhvSFBxJ9a9aPg(&result, suffix);
	return result;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getInitName_Cc6wkPHpGLfeC2TuYMDsEw)(tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* m) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	{
		if (!(((*m).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 12))&63U)))!=0)) goto LA3_;
		result = rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_693));
	}
	goto LA1_;
	LA3_: ;
	{
		result = getSomeInitName_C65FxzQb9bQ1btTLEiNl1hQ(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_694));
	}
	LA1_: ;
	return result;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getDatInitName_Cc6wkPHpGLfeC2TuYMDsEw_2)(tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* m) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	result = getSomeInitName_C65FxzQb9bQ1btTLEiNl1hQ(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_695));
	return result;
}

N_NIMCALL(void, registerModuleToMain_TTqZ7nXv4dyBiFpNc9bez0A)(tyObject_BModuleListcolonObjectType__t8u9aWK9cwyNCAxgxkYKh9bLQ* g, tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* m) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* init;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* datInit;
	tyArray_ZqT9cbUNKsl55MABiLlPDxA T1_;
	tyArray_ZqT9cbUNKsl55MABiLlPDxA T2_;
	init = getInitName_Cc6wkPHpGLfeC2TuYMDsEw(m);
	datInit = getDatInitName_Cc6wkPHpGLfeC2TuYMDsEw_2(m);
	memset((void*)T1_, 0, sizeof(T1_));
	T1_[0] = init;
	addf_8UUGW4xtgpag0J4uEnVLuQ(&(*g).mainModProcs, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_696), T1_, 1);
	memset((void*)T2_, 0, sizeof(T2_));
	T2_[0] = datInit;
	addf_8UUGW4xtgpag0J4uEnVLuQ(&(*g).mainModProcs, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_696), T2_, 1);
	{
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T7_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* initCall;
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T8_;
		if (!!((((*m).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 13))&63U)))!=0))) goto LA5_;
		memset((void*)T7_, 0, sizeof(T7_));
		T7_[0] = datInit;
		addf_8UUGW4xtgpag0J4uEnVLuQ(&(*g).mainDatInit, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_697), T7_, 1);
		memset((void*)T8_, 0, sizeof(T8_));
		T8_[0] = init;
		initCall = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_697), T8_, 1);
		{
			if (!(((*m).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 12))&63U)))!=0)) goto LA11_;
			add_cDalAhgBlDWoYHadkaqqxw(&(*g).mainModInit, initCall);
		}
		goto LA9_;
		LA11_: ;
		{
			add_cDalAhgBlDWoYHadkaqqxw(&(*g).otherModsInit, initCall);
		}
		LA9_: ;
	}
	LA5_: ;
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genFilenames_54CrPIOFKsrtQd59cl9bHH3A_3)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T1_;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T1_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T1_ = cgsym_LDQwSdTgGBvWUKfBZpHXDw(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_710));
	T1_;
	result = NIM_NIL;
	{
		NI i;
		NI colontmp_;
		NI T3_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T3_ = (fileInfos_0nMtuXd9csTLLtuDok8ckXw ? fileInfos_0nMtuXd9csTLLtuDok8ckXw->Sup.len : 0);
		colontmp_ = (T3_ - 1);
		res = ((NI) 0);
		{
			while (1) {
				tyArray_ZqT9cbUNKsl55MABiLlPDxA T6_;
				if (!(res <= colontmp_)) goto LA5;
				i = res;
				memset((void*)T6_, 0, sizeof(T6_));
				T6_[0] = makeCString_c9cmJUs9bNfunHyoffjBZxyg(fileInfos_0nMtuXd9csTLLtuDok8ckXw->data[i].projPath);
				addf_8UUGW4xtgpag0J4uEnVLuQ(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_711), T6_, 1);
				res += ((NI) 1);
			} LA5: ;
		}
	}
	return result;
}

N_NIMCALL(void, genMainProc_xndgWviRe74Vg5ZCVqDJFQ)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m) {
	NimStringDesc* nimMain;
	NimStringDesc* otherMain;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* initStackBottomCall;
	tyArray_zr9bwyAl6fC7FLYwf5Lbz5w T40_;
	tyArray_1UwZ4PfBDZcImViZT8dk0w T49_;
	nimMain = (NimStringDesc*)0;
	otherMain = (NimStringDesc*)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (targetOS_PyF9cBkuAlI8I7Y7KiZHIYQ == ((tyEnum_TSystemOS_s7Mlr1t66SUqP6BKJMXLaQ) 2));
		if (!(T3_)) goto LA4_;
		T3_ = !(((gGlobalOptions_j042VVDC9cT5ENYoXnmhhVg & 640) == 0));
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			if (!((gGlobalOptions_j042VVDC9cT5ENYoXnmhhVg &(1U<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 9))&31U)))!=0)) goto LA9_;
			nimMain = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_698));
			otherMain = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_699));
		}
		goto LA7_;
		LA9_: ;
		{
			nimMain = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_700));
			otherMain = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_701));
		}
		LA7_: ;
		includeHeader_PtTSTz0wtuSjGW8vGXThOQ(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_702));
	}
	goto LA1_;
	LA5_: ;
	{
		if (!(targetOS_PyF9cBkuAlI8I7Y7KiZHIYQ == ((tyEnum_TSystemOS_s7Mlr1t66SUqP6BKJMXLaQ) 24))) goto LA13_;
		nimMain = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_703));
		otherMain = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_704));
	}
	goto LA1_;
	LA13_: ;
	{
		if (!((gGlobalOptions_j042VVDC9cT5ENYoXnmhhVg &(1U<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 7))&31U)))!=0)) goto LA16_;
		nimMain = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_700));
		otherMain = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_705));
	}
	goto LA1_;
	LA16_: ;
	{
		if (!(targetOS_PyF9cBkuAlI8I7Y7KiZHIYQ == ((tyEnum_TSystemOS_s7Mlr1t66SUqP6BKJMXLaQ) 27))) goto LA19_;
		nimMain = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_706));
		otherMain = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_707));
	}
	goto LA1_;
	LA19_: ;
	{
		nimMain = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_706));
		otherMain = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_708));
	}
	LA1_: ;
	{
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T26_;
		if (!!(((*(*m).g).breakpoints == NIM_NIL))) goto LA24_;
		T26_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T26_ = cgsym_LDQwSdTgGBvWUKfBZpHXDw(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_709));
		T26_;
	}
	LA24_: ;
	{
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T31_;
		if (!((gOptions_KL5B8sF4szIsM2AXCWFsIw &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 17))&31U)))!=0)) goto LA29_;
		T31_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T31_ = genFilenames_54CrPIOFKsrtQd59cl9bHH3A_3(m);
		add_cDalAhgBlDWoYHadkaqqxw(&(*(*m).g).breakpoints, T31_);
	}
	LA29_: ;
	{
		NIM_BOOL T34_;
		T34_ = (NIM_BOOL)0;
		T34_ = (targetOS_PyF9cBkuAlI8I7Y7KiZHIYQ == ((tyEnum_TSystemOS_s7Mlr1t66SUqP6BKJMXLaQ) 27));
		if (T34_) goto LA35_;
		T34_ = (gSelectedGC_Qq37YMpTZX6EGc9apygtZcg == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 0));
		LA35_: ;
		if (!T34_) goto LA36_;
		initStackBottomCall = rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_10));
	}
	goto LA32_;
	LA36_: ;
	{
		tyArray_j0xH32fTir0IvGY7WxQsQA T39_;
		memset((void*)T39_, 0, sizeof(T39_));
		initStackBottomCall = ropecg_ail3PxtNU17Ini4A1vCFoA(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_712), T39_, 0);
	}
	LA32_: ;
	(*m).labels += ((NI) 1);
	memset((void*)T40_, 0, sizeof(T40_));
	T40_[0] = (*(*m).g).mainDatInit;
	T40_[1] = (*(*m).g).breakpoints;
	T40_[2] = (*(*m).g).otherModsInit;
	{
		NIM_BOOL T43_;
		tyArray_j0xH32fTir0IvGY7WxQsQA T47_;
		T43_ = (NIM_BOOL)0;
		T43_ = emulatedThreadVars_qJe2xBmGcgIoAQUJsGS9aGwcgen();
		if (!(T43_)) goto LA44_;
		T43_ = !((targetOS_PyF9cBkuAlI8I7Y7KiZHIYQ == ((tyEnum_TSystemOS_s7Mlr1t66SUqP6BKJMXLaQ) 27)));
		LA44_: ;
		if (!T43_) goto LA45_;
		memset((void*)T47_, 0, sizeof(T47_));
		T40_[3] = ropecg_ail3PxtNU17Ini4A1vCFoA(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_714), T47_, 0);
	}
	goto LA41_;
	LA45_: ;
	{
		T40_[3] = rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_10));
	}
	LA41_: ;
	T40_[4] = initStackBottomCall;
	appcg_TJmWJ0eU9byq14ToBfxDtXQ(m, &(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_713), T40_, 5);
	memset((void*)T49_, 0, sizeof(T49_));
	T49_[0] = (*(*m).g).mainModInit;
	T49_[1] = initStackBottomCall;
	T49_[2] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) ((*m).labels)));
	appcg_TJmWJ0eU9byq14ToBfxDtXQ(m, &(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], nimMain, T49_, 3);
	{
		tyArray_j0xH32fTir0IvGY7WxQsQA T54_;
		if (!!(((gGlobalOptions_j042VVDC9cT5ENYoXnmhhVg &(1U<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 19))&31U)))!=0))) goto LA52_;
		memset((void*)T54_, 0, sizeof(T54_));
		appcg_TJmWJ0eU9byq14ToBfxDtXQ(m, &(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], otherMain, T54_, 0);
	}
	LA52_: ;
}

N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, myClose_KfGIGW5qR0HgwEF6sxeIOQ)(tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TPassContext_qNsm39cWb35W2r5AAd9ch87g* b, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m;
{	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (b == NIM_NIL);
		if (T3_) goto LA4_;
		T3_ = skipCodegen_JOewUiDW9bIteW9aaAqXy7cgcgen(n);
		LA4_: ;
		if (!T3_) goto LA5_;
		goto BeforeRet_;
	}
	LA5_: ;
	m = ((tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA*) (b));
	{
		if (!!((n == NIM_NIL))) goto LA9_;
		(*(*m).initProc).options = initProcOptions_EYn9bXONq9aP52vwfOhfbTDQ(m);
		genStmts_QrTB5DOwbDX9bKAW7PNbuJA((*m).initProc, n);
	}
	LA9_: ;
	registerModuleToMain_TTqZ7nXv4dyBiFpNc9bez0A((*m).g, (*m).module);
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* disp;
		if (!(((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 12))&63U)))!=0)) goto LA13_;
		{
			if (!((*(*m).g).forwardedProcsCounter == ((NI) 0))) goto LA17_;
			(*m).flags |= ((NU8)1)<<((((tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q) 5))%(sizeof(NU8)*8));
		}
		LA17_: ;
		disp = generateMethodDispatchers_7t0GJlNQwZyLt0Kz3RhRdw(graph);
		{
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x;
			x = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i;
				NI colontmp_;
				NI T21_;
				NI res;
				i = (NI)0;
				colontmp_ = (NI)0;
				T21_ = (NI)0;
				T21_ = safeLen_CdME9baJhvveuPEDZE9bXoxArenderer(disp);
				colontmp_ = (T21_ - 1);
				res = ((NI) 0);
				{
					while (1) {
						if (!(res <= colontmp_)) goto LA23;
						i = res;
						x = (*disp).kindU.S6.sons->data[i];
						genProcAux_FcQi2SC56oH1DQZne5xn7Q_3(m, (*x).kindU.S4.sym);
						res += ((NI) 1);
					} LA23: ;
				}
			}
		}
		genMainProc_xndgWviRe74Vg5ZCVqDJFQ(m);
	}
	LA13_: ;
	}BeforeRet_: ;
	return result;
}

N_NIMCALL(void, finishModule_xndgWviRe74Vg5ZCVqDJFQ_2)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m) {
	NI i;
	i = ((NI) 0);
	{
		while (1) {
			NI T3_;
			tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw* prc;
			T3_ = ((*m).forwardedProcs ? ((*m).forwardedProcs->Sup.len-1) : -1);
			if (!(i <= T3_)) goto LA2;
			prc = (*m).forwardedProcs->data[i];
			{
				NimStringDesc* T8_;
				if (!(((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 4))&63U)))!=0)) goto LA6_;
				T8_ = (NimStringDesc*)0;
				T8_ = rawNewString((*(*prc).name).s->Sup.len + 17);
appendString(T8_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_715));
appendString(T8_, (*(*prc).name).s);
				internalError_MXmtqrCmYwtOPkDCFgUWKQ((*prc).info, T8_);
			}
			LA6_: ;
			genProcNoForward_FcQi2SC56oH1DQZne5xn7Q_2(m, prc);
			i += ((NI) 1);
		} LA2: ;
	}
	(*(*m).g).forwardedProcsCounter -= i;
	(*m).forwardedProcs = (tySequence_sksVpmPRIkNR9axiwtD1Guw*) setLengthSeq(&((*m).forwardedProcs)->Sup, sizeof(tyObject_TSym_AXG7xcvKqaxY6koRX1xkCw*), ((NI) 0));
}

N_NIMCALL(void, genInitCode_xndgWviRe74Vg5ZCVqDJFQ_4)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* initname;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* prc;
	tyArray_ZqT9cbUNKsl55MABiLlPDxA T1_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T12_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T13_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T14_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T15_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T16_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T17_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T33_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T34_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T35_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T36_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T37_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T38_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T39_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T40_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** T41_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T42_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T50_;
	tyArray_j0xH32fTir0IvGY7WxQsQA T51_;
	tyArray_ZqT9cbUNKsl55MABiLlPDxA T52_;
	tyArray_j0xH32fTir0IvGY7WxQsQA T58_;
	initname = getInitName_Cc6wkPHpGLfeC2TuYMDsEw((*m).module);
	memset((void*)T1_, 0, sizeof(T1_));
	T1_[0] = initname;
	prc = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_716), T1_, 1);
	{
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T6_;
		if (!(((NI) 0) < (*m).typeNodes)) goto LA4_;
		memset((void*)T6_, 0, sizeof(T6_));
		T6_[0] = (*m).typeNodesName;
		T6_[1] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) ((*m).typeNodes)));
		appcg_TJmWJ0eU9byq14ToBfxDtXQ(m, &(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 12))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_717), T6_, 2);
	}
	LA4_: ;
	{
		tyArray_YB3ke0PEM9bcAj9bAsA619bJA T11_;
		if (!(((NI) 0) < (*m).nimTypes)) goto LA9_;
		memset((void*)T11_, 0, sizeof(T11_));
		T11_[0] = (*m).nimTypesName;
		T11_[1] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) ((*m).nimTypes)));
		appcg_TJmWJ0eU9byq14ToBfxDtXQ(m, &(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 12))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_718), T11_, 2);
	}
	LA9_: ;
	T12_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T12_ = initGCFrame_VMw2SYHH12eNnC21DncHWQ((*m).initProc);
	add_cDalAhgBlDWoYHadkaqqxw(&prc, T12_);
	T13_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T13_ = genSectionStart_KFpOaZVkVN1o0F9bTwYZAog(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
	add_cDalAhgBlDWoYHadkaqqxw(&prc, T13_);
	T14_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
	T14_ = s_OUiru83H7n4zC9cnXN2KbrQcgen((*m).preInitProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
	add_cDalAhgBlDWoYHadkaqqxw(&prc, (*T14_));
	T15_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
	T15_ = s_OUiru83H7n4zC9cnXN2KbrQcgen((*m).initProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
	add_cDalAhgBlDWoYHadkaqqxw(&prc, (*T15_));
	T16_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
	T16_ = s_OUiru83H7n4zC9cnXN2KbrQcgen((*m).postInitProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
	add_cDalAhgBlDWoYHadkaqqxw(&prc, (*T16_));
	T17_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T17_ = genSectionEnd_KFpOaZVkVN1o0F9bTwYZAog_2(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
	add_cDalAhgBlDWoYHadkaqqxw(&prc, T17_);
	{
		NIM_BOOL T20_;
		T20_ = (NIM_BOOL)0;
		T20_ = (((*(*m).initProc).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 15))&31U)))!=0);
		if (!(T20_)) goto LA21_;
		T20_ = !((((*m).flags &(1U<<((NU)(((tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q) 2))&7U)))!=0));
		LA21_: ;
		if (!T20_) goto LA22_;
		(*m).flags |= ((NU8)1)<<((((tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q) 2))%(sizeof(NU8)*8));
		{
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* procname;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T28_;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T29_;
			if (!!((((*m).flags &(1U<<((NU)(((tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q) 0))&7U)))!=0))) goto LA26_;
			procname = makeCString_c9cmJUs9bNfunHyoffjBZxyg((*(*(*m).module).name).s);
			T28_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T28_ = quotedFilename_OIkZkhTYTt59cr9cjk9bklnUA_2((*(*m).module).info);
			T29_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T29_ = initFrame_MEEtj5XINrrJ3Az5igcM7g((*m).initProc, procname, T28_);
			add_cDalAhgBlDWoYHadkaqqxw(&prc, T29_);
		}
		goto LA24_;
		LA26_: ;
		{
			tyArray_j0xH32fTir0IvGY7WxQsQA T31_;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T32_;
			memset((void*)T31_, 0, sizeof(T31_));
			T32_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T32_ = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_719), T31_, 0);
			add_cDalAhgBlDWoYHadkaqqxw(&prc, T32_);
		}
		LA24_: ;
	}
	LA22_: ;
	T33_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T33_ = genSectionStart_KFpOaZVkVN1o0F9bTwYZAog(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1));
	add_cDalAhgBlDWoYHadkaqqxw(&prc, T33_);
	T34_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
	T34_ = s_OUiru83H7n4zC9cnXN2KbrQcgen((*m).preInitProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1));
	add_cDalAhgBlDWoYHadkaqqxw(&prc, (*T34_));
	T35_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
	T35_ = s_OUiru83H7n4zC9cnXN2KbrQcgen((*m).initProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1));
	add_cDalAhgBlDWoYHadkaqqxw(&prc, (*T35_));
	T36_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
	T36_ = s_OUiru83H7n4zC9cnXN2KbrQcgen((*m).postInitProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1));
	add_cDalAhgBlDWoYHadkaqqxw(&prc, (*T36_));
	T37_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T37_ = genSectionEnd_KFpOaZVkVN1o0F9bTwYZAog_2(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1));
	add_cDalAhgBlDWoYHadkaqqxw(&prc, T37_);
	T38_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T38_ = genSectionStart_KFpOaZVkVN1o0F9bTwYZAog(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	add_cDalAhgBlDWoYHadkaqqxw(&prc, T38_);
	T39_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
	T39_ = s_OUiru83H7n4zC9cnXN2KbrQcgen((*m).preInitProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	add_cDalAhgBlDWoYHadkaqqxw(&prc, (*T39_));
	T40_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
	T40_ = s_OUiru83H7n4zC9cnXN2KbrQcgen((*m).initProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	add_cDalAhgBlDWoYHadkaqqxw(&prc, (*T40_));
	T41_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ**)0;
	T41_ = s_OUiru83H7n4zC9cnXN2KbrQcgen((*m).postInitProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	add_cDalAhgBlDWoYHadkaqqxw(&prc, (*T41_));
	T42_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T42_ = genSectionEnd_KFpOaZVkVN1o0F9bTwYZAog_2(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	add_cDalAhgBlDWoYHadkaqqxw(&prc, T42_);
	{
		NIM_BOOL T45_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T49_;
		T45_ = (NIM_BOOL)0;
		T45_ = (((*(*m).initProc).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 15))&31U)))!=0);
		if (!(T45_)) goto LA46_;
		T45_ = !((((*m).flags &(1U<<((NU)(((tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q) 0))&7U)))!=0));
		LA46_: ;
		if (!T45_) goto LA47_;
		T49_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		T49_ = deinitFrame_VMw2SYHH12eNnC21DncHWQ_3((*m).initProc);
		add_cDalAhgBlDWoYHadkaqqxw(&prc, T49_);
	}
	LA47_: ;
	T50_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T50_ = deinitGCFrame_VMw2SYHH12eNnC21DncHWQ_2((*m).initProc);
	add_cDalAhgBlDWoYHadkaqqxw(&prc, T50_);
	memset((void*)T51_, 0, sizeof(T51_));
	addf_8UUGW4xtgpag0J4uEnVLuQ(&prc, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_720), T51_, 0);
	memset((void*)T52_, 0, sizeof(T52_));
	T52_[0] = getDatInitName_Cc6wkPHpGLfeC2TuYMDsEw_2((*m).module);
	addf_8UUGW4xtgpag0J4uEnVLuQ(&prc, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_716), T52_, 1);
	{
		tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg i;
		NI res;
		i = (tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg)0;
		res = ((NI) 12);
		{
			while (1) {
				tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T56_;
				tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T57_;
				if (!(res <= ((NI) 16))) goto LA55;
				i = ((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) (res));
				T56_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
				T56_ = genSectionStart_9bdZYosXO9coHYdP4ImTXi5Q(i);
				add_cDalAhgBlDWoYHadkaqqxw(&prc, T56_);
				add_cDalAhgBlDWoYHadkaqqxw(&prc, (*m).s[(i)- 0]);
				T57_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
				T57_ = genSectionEnd_9bdZYosXO9coHYdP4ImTXi5Q_2(i);
				add_cDalAhgBlDWoYHadkaqqxw(&prc, T57_);
				res += ((NI) 1);
			} LA55: ;
		}
	}
	memset((void*)T58_, 0, sizeof(T58_));
	addf_8UUGW4xtgpag0J4uEnVLuQ(&prc, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_720), T58_, 0);
	add_cDalAhgBlDWoYHadkaqqxw(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0], prc);
	{
		NIM_CHAR i_2;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* el;
		tyArray_pCazSO5as9cLn1a9bV9c9aHy3w colontmp_;
		NIM_CHAR i_3;
		i_2 = (NIM_CHAR)0;
		el = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
		memset((void*)colontmp_, 0, sizeof(colontmp_));
		memcpy((void*)colontmp_, (NIM_CONST void*)(*m).extensionLoaders, sizeof(colontmp_));
		i_3 = 48;
		{
			if (!((NU8)(((NIM_CHAR) (((NU8)(i_3))))) <= (NU8)(57))) goto LA62_;
			{
				while (1) {
					i_2 = i_3;
					el = colontmp_[(((NU8)(i_3)))- 48];
					{
						tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* ex;
						tyArray_YB3ke0PEM9bcAj9bAsA619bJA T70_;
						if (!!((el == NIM_NIL))) goto LA68_;
						memset((void*)T70_, 0, sizeof(T70_));
						T70_[0] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) ((NI)(((NI) (((NU8)(i_2)))) - ((NI) 48)))));
						T70_[1] = el;
						ex = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_721), T70_, 2);
						add_cDalAhgBlDWoYHadkaqqxw(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0], ex);
					}
					LA68_: ;
					{
						if (!((NU8)(57) <= (NU8)(((NIM_CHAR) (((NU8)(i_3))))))) goto LA73_;
						goto LA64;
					}
					LA73_: ;
					i_3 += ((NI) 1);
				}
			} LA64: ;
		}
		LA62_: ;
	}
}

N_NIMCALL(void, finishTypeDescriptions_xndgWviRe74Vg5ZCVqDJFQ_5)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m) {
	NI i;
	i = ((NI) 0);
	{
		while (1) {
			NI T3_;
			tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T4_;
			T3_ = ((*m).typeStack ? (*m).typeStack->Sup.len : 0);
			if (!(i < T3_)) goto LA2;
			T4_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
			T4_ = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2(m, (*m).typeStack->data[i]);
			T4_;
			i += ((NI) 1);
		} LA2: ;
	}
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getCopyright_CqFjkxiTOAeZnQTqgNmgxA_2)(tyObject_Cfile_IOg1iQ2oUKnOJHLIt9auKNQ* cfile) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	{
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T5_;
		if (!((gGlobalOptions_j042VVDC9cT5ENYoXnmhhVg &(1U<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 4))&31U)))!=0)) goto LA3_;
		memset((void*)T5_, 0, sizeof(T5_));
		T5_[0] = rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_723));
		result = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_722), T5_, 1);
	}
	goto LA1_;
	LA3_: ;
	{
		tyArray_zr9bwyAl6fC7FLYwf5Lbz5w T7_;
		NimStringDesc* T8_;
		memset((void*)T7_, 0, sizeof(T7_));
		T7_[0] = rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_723));
		T7_[1] = rope_53CHEX05HP0HacydnwoUYg(OS_Jx0qy9c9bSo4fGkMxUfUaAaw[(targetOS_PyF9cBkuAlI8I7Y7KiZHIYQ)- 1].Field0);
		T7_[2] = rope_53CHEX05HP0HacydnwoUYg(CPU_uYXopJX8pM87pQDCtmgWfQ[(targetCPU_6ZqNUOGOAkmp4zxKVZ9cFag)- 1].Field0);
		T7_[3] = rope_53CHEX05HP0HacydnwoUYg(CC_78I18QZNZFIv9ah7oETc0jg[(cCompiler_Dz9bRorQ2m6cBt9awpi4iwPw)- 1].Field0);
		T8_ = (NimStringDesc*)0;
		T8_ = getCompileCFileCmd_eSkuNroO1HNJUSszp2VHqg(cfile);
		T7_[4] = rope_53CHEX05HP0HacydnwoUYg(T8_);
		result = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_724), T7_, 5);
	}
	LA1_: ;
	return result;
}

static N_INLINE(void, addIntTypes_4umyRsj7bdfySKs69aKeJAwcgen)(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ** result) {
	NimStringDesc* T1_;
	tyArray_ZqT9cbUNKsl55MABiLlPDxA T2_;
	T1_ = (NimStringDesc*)0;
	T1_ = rawNewString(tnl_Gp8EwkcsAP9am1klnCCHM4w->Sup.len + tnl_Gp8EwkcsAP9am1klnCCHM4w->Sup.len + 52);
appendString(T1_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_725));
appendString(T1_, tnl_Gp8EwkcsAP9am1klnCCHM4w);
appendString(T1_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_726));
appendString(T1_, tnl_Gp8EwkcsAP9am1klnCCHM4w);
	memset((void*)T2_, 0, sizeof(T2_));
	T2_[0] = rope_pEztpD6TFe5jk3aCrOSACA(((NI64) (CPU_uYXopJX8pM87pQDCtmgWfQ[(targetCPU_6ZqNUOGOAkmp4zxKVZ9cFag)- 1].Field1)));
	addf_8UUGW4xtgpag0J4uEnVLuQ(result, T1_, T2_, 1);
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, getFileHeader_CqFjkxiTOAeZnQTqgNmgxA)(tyObject_Cfile_IOg1iQ2oUKnOJHLIt9auKNQ* cfile) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	result = getCopyright_CqFjkxiTOAeZnQTqgNmgxA_2(cfile);
	addIntTypes_4umyRsj7bdfySKs69aKeJAwcgen(&result);
	return result;
}

N_NIMCALL(void, generateThreadLocalStorage_xndgWviRe74Vg5ZCVqDJFQ_6)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m) {
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T14_;
		T3_ = (NIM_BOOL)0;
		T3_ = !((nimtv_7E1DsLFLxnZdSWFUg9byAuA == NIM_NIL));
		if (!(T3_)) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = (((*m).flags &(1U<<((NU)(((tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q) 1))&7U)))!=0);
		if (T5_) goto LA6_;
		T5_ = (((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 12))&63U)))!=0);
		LA6_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA7_;
		{
			tyObject_TType_LTUWCZolpovw9cWE3JBWSUw* t;
			NI i;
			NI L;
			NI T10_;
			t = (tyObject_TType_LTUWCZolpovw9cWE3JBWSUw*)0;
			i = ((NI) 0);
			T10_ = (nimtvDeps_65PZHnt5ef7s9b6MCRpLI4Q ? nimtvDeps_65PZHnt5ef7s9b6MCRpLI4Q->Sup.len : 0);
			L = T10_;
			{
				while (1) {
					tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T13_;
					if (!(i < L)) goto LA12;
					t = nimtvDeps_65PZHnt5ef7s9b6MCRpLI4Q->data[i];
					T13_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
					T13_ = getTypeDesc_ZKTupXpta5UnHc2Bw9aSWLQ_2(m, t);
					T13_;
					i += ((NI) 1);
				} LA12: ;
			}
		}
		memset((void*)T14_, 0, sizeof(T14_));
		T14_[0] = nimtv_7E1DsLFLxnZdSWFUg9byAuA;
		addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 4))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_727), T14_, 1);
	}
	LA7_: ;
}

N_NIMCALL(void, generateHeaders_xndgWviRe74Vg5ZCVqDJFQ_7)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m) {
	NimStringDesc* T1_;
	NimStringDesc* T19_;
	NimStringDesc* T20_;
	NimStringDesc* T21_;
	NimStringDesc* T22_;
	NimStringDesc* T23_;
	NimStringDesc* T24_;
	NimStringDesc* T25_;
	NimStringDesc* T26_;
	NimStringDesc* T27_;
	NimStringDesc* T28_;
	NimStringDesc* T29_;
	NimStringDesc* T30_;
	T1_ = (NimStringDesc*)0;
	T1_ = rawNewString(tnl_Gp8EwkcsAP9am1klnCCHM4w->Sup.len + tnl_Gp8EwkcsAP9am1klnCCHM4w->Sup.len + 20);
appendString(T1_, tnl_Gp8EwkcsAP9am1klnCCHM4w);
appendString(T1_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_728));
appendString(T1_, tnl_Gp8EwkcsAP9am1klnCCHM4w);
	add_UJnSY21g59awhvSFBxJ9a9aPg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0], T1_);
	{
		NimStringDesc* it;
		tySequence_sM4lkSb7zS6F7OVMvW9cffQ* colontmp_;
		NI i;
		NI L;
		NI T3_;
		it = (NimStringDesc*)0;
		colontmp_ = (tySequence_sM4lkSb7zS6F7OVMvW9cffQ*)0;
		colontmp_ = (*m).headerFiles;
		i = ((NI) 0);
		T3_ = (colontmp_ ? colontmp_->Sup.len : 0);
		L = T3_;
		{
			while (1) {
				if (!(i < L)) goto LA5;
				it = colontmp_->data[i];
				{
					NimStringDesc* T10_;
					NimStringDesc* T11_;
					tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T12_;
					if (!((NU8)(it->data[((NI) 0)]) == (NU8)(35))) goto LA8_;
					T10_ = (NimStringDesc*)0;
					T11_ = (NimStringDesc*)0;
					T11_ = nsuReplaceChar(it, 96, 34);
					T10_ = rawNewString(T11_->Sup.len + tnl_Gp8EwkcsAP9am1klnCCHM4w->Sup.len + 0);
appendString(T10_, T11_);
appendString(T10_, tnl_Gp8EwkcsAP9am1klnCCHM4w);
					T12_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
					T12_ = rope_53CHEX05HP0HacydnwoUYg(T10_);
					add_cDalAhgBlDWoYHadkaqqxw(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0], T12_);
				}
				goto LA6_;
				LA8_: ;
				{
					tyArray_ZqT9cbUNKsl55MABiLlPDxA T16_;
					if (!!((((NU8)(it->data[((NI) 0)])) == ((NU8)(34)) || ((NU8)(it->data[((NI) 0)])) == ((NU8)(60))))) goto LA14_;
					memset((void*)T16_, 0, sizeof(T16_));
					T16_[0] = rope_53CHEX05HP0HacydnwoUYg(it);
					addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_729), T16_, 1);
				}
				goto LA6_;
				LA14_: ;
				{
					tyArray_ZqT9cbUNKsl55MABiLlPDxA T18_;
					memset((void*)T18_, 0, sizeof(T18_));
					T18_[0] = rope_53CHEX05HP0HacydnwoUYg(it);
					addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_730), T18_, 1);
				}
				LA6_: ;
				i += ((NI) 1);
			} LA5: ;
		}
	}
	T19_ = (NimStringDesc*)0;
	T19_ = rawNewString(tnl_Gp8EwkcsAP9am1klnCCHM4w->Sup.len + 17);
appendString(T19_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_731));
appendString(T19_, tnl_Gp8EwkcsAP9am1klnCCHM4w);
	add_UJnSY21g59awhvSFBxJ9a9aPg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0], T19_);
	T20_ = (NimStringDesc*)0;
	T20_ = rawNewString(tnl_Gp8EwkcsAP9am1klnCCHM4w->Sup.len + 13);
appendString(T20_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_732));
appendString(T20_, tnl_Gp8EwkcsAP9am1klnCCHM4w);
	add_UJnSY21g59awhvSFBxJ9a9aPg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0], T20_);
	T21_ = (NimStringDesc*)0;
	T21_ = rawNewString(tnl_Gp8EwkcsAP9am1klnCCHM4w->Sup.len + 13);
appendString(T21_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_733));
appendString(T21_, tnl_Gp8EwkcsAP9am1klnCCHM4w);
	add_UJnSY21g59awhvSFBxJ9a9aPg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0], T21_);
	T22_ = (NimStringDesc*)0;
	T22_ = rawNewString(tnl_Gp8EwkcsAP9am1klnCCHM4w->Sup.len + 10);
appendString(T22_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_734));
appendString(T22_, tnl_Gp8EwkcsAP9am1klnCCHM4w);
	add_UJnSY21g59awhvSFBxJ9a9aPg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0], T22_);
	T23_ = (NimStringDesc*)0;
	T23_ = rawNewString(tnl_Gp8EwkcsAP9am1klnCCHM4w->Sup.len + 12);
appendString(T23_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_735));
appendString(T23_, tnl_Gp8EwkcsAP9am1klnCCHM4w);
	add_UJnSY21g59awhvSFBxJ9a9aPg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0], T23_);
	T24_ = (NimStringDesc*)0;
	T24_ = rawNewString(tnl_Gp8EwkcsAP9am1klnCCHM4w->Sup.len + 12);
appendString(T24_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_736));
appendString(T24_, tnl_Gp8EwkcsAP9am1klnCCHM4w);
	add_UJnSY21g59awhvSFBxJ9a9aPg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0], T24_);
	T25_ = (NimStringDesc*)0;
	T25_ = rawNewString(tnl_Gp8EwkcsAP9am1klnCCHM4w->Sup.len + 11);
appendString(T25_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_737));
appendString(T25_, tnl_Gp8EwkcsAP9am1klnCCHM4w);
	add_UJnSY21g59awhvSFBxJ9a9aPg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0], T25_);
	T26_ = (NimStringDesc*)0;
	T26_ = rawNewString(tnl_Gp8EwkcsAP9am1klnCCHM4w->Sup.len + 12);
appendString(T26_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_738));
appendString(T26_, tnl_Gp8EwkcsAP9am1klnCCHM4w);
	add_UJnSY21g59awhvSFBxJ9a9aPg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0], T26_);
	T27_ = (NimStringDesc*)0;
	T27_ = rawNewString(tnl_Gp8EwkcsAP9am1klnCCHM4w->Sup.len + 11);
appendString(T27_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_739));
appendString(T27_, tnl_Gp8EwkcsAP9am1klnCCHM4w);
	add_UJnSY21g59awhvSFBxJ9a9aPg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0], T27_);
	T28_ = (NimStringDesc*)0;
	T28_ = rawNewString(tnl_Gp8EwkcsAP9am1klnCCHM4w->Sup.len + 11);
appendString(T28_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_740));
appendString(T28_, tnl_Gp8EwkcsAP9am1klnCCHM4w);
	add_UJnSY21g59awhvSFBxJ9a9aPg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0], T28_);
	T29_ = (NimStringDesc*)0;
	T29_ = rawNewString(tnl_Gp8EwkcsAP9am1klnCCHM4w->Sup.len + 14);
appendString(T29_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_741));
appendString(T29_, tnl_Gp8EwkcsAP9am1klnCCHM4w);
	add_UJnSY21g59awhvSFBxJ9a9aPg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0], T29_);
	T30_ = (NimStringDesc*)0;
	T30_ = rawNewString(tnl_Gp8EwkcsAP9am1klnCCHM4w->Sup.len + 11);
appendString(T30_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_742));
appendString(T30_, tnl_Gp8EwkcsAP9am1klnCCHM4w);
	add_UJnSY21g59awhvSFBxJ9a9aPg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0], T30_);
}

N_NIMCALL(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*, genModule_3aFLDFoysS2zcuJahgsrKg)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, tyObject_Cfile_IOg1iQ2oUKnOJHLIt9auKNQ* cfile) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T1_;
	result = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	result = getFileHeader_CqFjkxiTOAeZnQTqgNmgxA(cfile);
	T1_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
	T1_ = genMergeInfo_1g6a3DrnT4tIGRwiOvArkw(m);
	add_cDalAhgBlDWoYHadkaqqxw(&result, T1_);
	generateThreadLocalStorage_xndgWviRe74Vg5ZCVqDJFQ_6(m);
	generateHeaders_xndgWviRe74Vg5ZCVqDJFQ_7(m);
	{
		tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg i;
		NI res;
		i = (tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg)0;
		res = ((NI) 1);
		{
			while (1) {
				tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T5_;
				tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T6_;
				if (!(res <= ((NI) 10))) goto LA4;
				i = ((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) (res));
				T5_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
				T5_ = genSectionStart_9bdZYosXO9coHYdP4ImTXi5Q(i);
				add_cDalAhgBlDWoYHadkaqqxw(&result, T5_);
				add_cDalAhgBlDWoYHadkaqqxw(&result, (*m).s[(i)- 0]);
				T6_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
				T6_ = genSectionEnd_9bdZYosXO9coHYdP4ImTXi5Q_2(i);
				add_cDalAhgBlDWoYHadkaqqxw(&result, T6_);
				res += ((NI) 1);
			} LA4: ;
		}
	}
	add_cDalAhgBlDWoYHadkaqqxw(&result, (*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0]);
	return result;
}

N_NIMCALL(void, updateCachedModule_xndgWviRe74Vg5ZCVqDJFQ_3)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m) {
	NimStringDesc* cfile;
	tyObject_Cfile_IOg1iQ2oUKnOJHLIt9auKNQ cf;
	tyObject_Cfile_IOg1iQ2oUKnOJHLIt9auKNQ T1_;
	NimStringDesc* T2_;
	cfile = getCFile_HGL9bKxvY1ZMx9barwV7E9cDg(m);
	memset((void*)(&cf), 0, sizeof(cf));
	memset((void*)(&T1_), 0, sizeof(T1_));
	memset((void*)(&T1_), 0, sizeof(T1_));
	T1_.cname = copyString(cfile);
	T2_ = (NimStringDesc*)0;
	T2_ = toObjFile_kKfQ9cy4jE21UrGTrl5XAwg(cfile);
	T1_.obj = completeCFilePath_XziFVTv1mJIlNEw2aMU1Ig(T2_, NIM_TRUE);
	T1_.flags = 0;
	cf.cname = T1_.cname;
	cf.obj = T1_.obj;
	cf.flags = T1_.flags;
	{
		NIM_BOOL T5_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* code;
		T5_ = (NIM_BOOL)0;
		T5_ = mergeRequired_tOmUfIxcCK2nhCeMYZPw1Q(m);
		if (!(T5_)) goto LA6_;
		T5_ = !((((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 12))&63U)))!=0));
		LA6_: ;
		if (!T5_) goto LA7_;
		mergeFiles_klaWcZvKFqt7gKWMCpzPOQ_2(cfile, m);
		genInitCode_xndgWviRe74Vg5ZCVqDJFQ_4(m);
		finishTypeDescriptions_xndgWviRe74Vg5ZCVqDJFQ_5(m);
		code = genModule_3aFLDFoysS2zcuJahgsrKg(m, (&cf));
		writeRope_BleoID9btBn4KgpblZYx8nQ(code, cfile, NIM_FALSE);
	}
	goto LA3_;
	LA7_: ;
	{
		cf.flags = 1;
	}
	LA3_: ;
	addFileToCompile_OP8x69b69aP08XTrqOSNgzkg((&cf));
}

N_NIMCALL(void, generateThreadVarsSize_xndgWviRe74Vg5ZCVqDJFQ_8)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m) {
	{
		NimStringDesc* externc;
		tyArray_ZqT9cbUNKsl55MABiLlPDxA T12_;
		if (!!((nimtv_7E1DsLFLxnZdSWFUg9byAuA == NIM_NIL))) goto LA3_;
		{
			NIM_BOOL T7_;
			T7_ = (NIM_BOOL)0;
			T7_ = (gCmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
			if (T7_) goto LA8_;
			T7_ = (((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA8_: ;
			if (!T7_) goto LA9_;
			externc = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_262));
		}
		goto LA5_;
		LA9_: ;
		{
			externc = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_10));
		}
		LA5_: ;
		memset((void*)T12_, 0, sizeof(T12_));
		T12_[0] = rope_53CHEX05HP0HacydnwoUYg(externc);
		addf_8UUGW4xtgpag0J4uEnVLuQ(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_743), T12_, 1);
	}
	LA3_: ;
}

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

N_NIMCALL(NIM_BOOL, shouldRecompile_Mr0OyGYjIMYWLQrR9bvuBKg)(tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* code, tyObject_Cfile_IOg1iQ2oUKnOJHLIt9auKNQ* cfile) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	result = NIM_TRUE;
	{
		if (!!(((gGlobalOptions_j042VVDC9cT5ENYoXnmhhVg &(1U<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 1))&31U)))!=0))) goto LA3_;
		{
			NIM_BOOL T7_;
			T7_ = (NIM_BOOL)0;
			T7_ = equalsFile_NRjmJ38NeonBbXARkPJquA(code, (*cfile).cname);
			if (!!(T7_)) goto LA8_;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = isDefined_BNPf2mtM9a7JF7UKiCAngvg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_744));
				if (!T12_) goto LA13_;
				{
					NIM_BOOL T17_;
					NimStringDesc* T20_;
					T17_ = (NIM_BOOL)0;
					T17_ = fileExists_yTPrfdEKg9cKCeSFUA6popQoptions((*cfile).cname);
					if (!T17_) goto LA18_;
					T20_ = (NimStringDesc*)0;
					T20_ = rawNewString((*cfile).cname->Sup.len + 7);
appendString(T20_, (*cfile).cname);
appendString(T20_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_745));
					noscopyFile((*cfile).cname, T20_);
					printf("%s%s%s%s\015\012", ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_746)? (((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_746))->data:"nil", (*cfile).cname? ((*cfile).cname)->data:"nil", ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_747)? (((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_747))->data:"nil", (*cfile).cname? ((*cfile).cname)->data:"nil");
					fflush(stdout);
				}
				goto LA15_;
				LA18_: ;
				{
					printf("%s%s\015\012", ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_748)? (((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_748))->data:"nil", (*cfile).cname? ((*cfile).cname)->data:"nil");
					fflush(stdout);
				}
				LA15_: ;
			}
			LA13_: ;
			writeRope_BleoID9btBn4KgpblZYx8nQ(code, (*cfile).cname, NIM_FALSE);
			goto BeforeRet_;
		}
		LA8_: ;
		{
			NIM_BOOL T24_;
			T24_ = (NIM_BOOL)0;
			T24_ = nosexistsFile((*cfile).obj);
			if (!(T24_)) goto LA25_;
			T24_ = nosfileNewer((*cfile).obj, (*cfile).cname);
			LA25_: ;
			if (!T24_) goto LA26_;
			result = NIM_FALSE;
		}
		LA26_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		writeRope_BleoID9btBn4KgpblZYx8nQ(code, (*cfile).cname, NIM_FALSE);
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}

N_NIMCALL(void, writeModule_9bv59bQ2gpfKwo8DRdqdNGOw)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m, NIM_BOOL pending) {
	NimStringDesc* cfile;
	cfile = getCFile_HGL9bKxvY1ZMx9barwV7E9cDg(m);
	{
		NIM_BOOL T3_;
		tyObject_Cfile_IOg1iQ2oUKnOJHLIt9auKNQ cf;
		tyObject_Cfile_IOg1iQ2oUKnOJHLIt9auKNQ T11_;
		NimStringDesc* T12_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* code;
		T3_ = (NIM_BOOL)0;
		T3_ = !((*m).Sup.fromCache);
		if (T3_) goto LA4_;
		T3_ = ((gGlobalOptions_j042VVDC9cT5ENYoXnmhhVg &(1U<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 1))&31U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		genInitCode_xndgWviRe74Vg5ZCVqDJFQ_4(m);
		finishTypeDescriptions_xndgWviRe74Vg5ZCVqDJFQ_5(m);
		{
			if (!(((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 12))&63U)))!=0)) goto LA9_;
			add_cDalAhgBlDWoYHadkaqqxw(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 7))- 0], (*(*m).g).mainModProcs);
			generateThreadVarsSize_xndgWviRe74Vg5ZCVqDJFQ_8(m);
		}
		LA9_: ;
		memset((void*)(&cf), 0, sizeof(cf));
		memset((void*)(&T11_), 0, sizeof(T11_));
		memset((void*)(&T11_), 0, sizeof(T11_));
		T11_.cname = copyString(cfile);
		T12_ = (NimStringDesc*)0;
		T12_ = toObjFile_kKfQ9cy4jE21UrGTrl5XAwg(cfile);
		T11_.obj = completeCFilePath_XziFVTv1mJIlNEw2aMU1Ig(T12_, NIM_TRUE);
		T11_.flags = 0;
		cf.cname = T11_.cname;
		cf.obj = T11_.obj;
		cf.flags = T11_.flags;
		code = genModule_3aFLDFoysS2zcuJahgsrKg(m, (&cf));
		{
			NIM_BOOL T15_;
			T15_ = (NIM_BOOL)0;
			T15_ = shouldRecompile_Mr0OyGYjIMYWLQrR9bvuBKg(code, (&cf));
			if (!!(T15_)) goto LA16_;
			cf.flags = 1;
		}
		LA16_: ;
		addFileToCompile_OP8x69b69aP08XTrqOSNgzkg((&cf));
	}
	goto LA1_;
	LA5_: ;
	{
		NIM_BOOL T19_;
		NIM_BOOL T20_;
		tyObject_Cfile_IOg1iQ2oUKnOJHLIt9auKNQ cf_2;
		tyObject_Cfile_IOg1iQ2oUKnOJHLIt9auKNQ T25_;
		NimStringDesc* T26_;
		tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* code_2;
		T19_ = (NIM_BOOL)0;
		T20_ = (NIM_BOOL)0;
		T20_ = pending;
		if (!(T20_)) goto LA21_;
		T20_ = mergeRequired_tOmUfIxcCK2nhCeMYZPw1Q(m);
		LA21_: ;
		T19_ = T20_;
		if (!(T19_)) goto LA22_;
		T19_ = !((((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 12))&63U)))!=0));
		LA22_: ;
		if (!T19_) goto LA23_;
		memset((void*)(&cf_2), 0, sizeof(cf_2));
		memset((void*)(&T25_), 0, sizeof(T25_));
		memset((void*)(&T25_), 0, sizeof(T25_));
		T25_.cname = copyString(cfile);
		T26_ = (NimStringDesc*)0;
		T26_ = toObjFile_kKfQ9cy4jE21UrGTrl5XAwg(cfile);
		T25_.obj = completeCFilePath_XziFVTv1mJIlNEw2aMU1Ig(T26_, NIM_TRUE);
		T25_.flags = 0;
		cf_2.cname = T25_.cname;
		cf_2.obj = T25_.obj;
		cf_2.flags = T25_.flags;
		mergeFiles_klaWcZvKFqt7gKWMCpzPOQ_2(cfile, m);
		genInitCode_xndgWviRe74Vg5ZCVqDJFQ_4(m);
		finishTypeDescriptions_xndgWviRe74Vg5ZCVqDJFQ_5(m);
		code_2 = genModule_3aFLDFoysS2zcuJahgsrKg(m, (&cf_2));
		writeRope_BleoID9btBn4KgpblZYx8nQ(code_2, cfile, NIM_FALSE);
		addFileToCompile_OP8x69b69aP08XTrqOSNgzkg((&cf_2));
	}
	goto LA1_;
	LA23_: ;
	{
		tyObject_Cfile_IOg1iQ2oUKnOJHLIt9auKNQ cf_3;
		tyObject_Cfile_IOg1iQ2oUKnOJHLIt9auKNQ T28_;
		NimStringDesc* T29_;
		memset((void*)(&cf_3), 0, sizeof(cf_3));
		memset((void*)(&T28_), 0, sizeof(T28_));
		memset((void*)(&T28_), 0, sizeof(T28_));
		T28_.cname = copyString(cfile);
		T29_ = (NimStringDesc*)0;
		T29_ = toObjFile_kKfQ9cy4jE21UrGTrl5XAwg(cfile);
		T28_.obj = completeCFilePath_XziFVTv1mJIlNEw2aMU1Ig(T29_, NIM_TRUE);
		T28_.flags = 0;
		cf_3.cname = T28_.cname;
		cf_3.obj = T28_.obj;
		cf_3.flags = T28_.flags;
		{
			NIM_BOOL T32_;
			T32_ = (NIM_BOOL)0;
			T32_ = nosexistsFile(cf_3.obj);
			if (!!(T32_)) goto LA33_;
			cf_3.flags = 1;
		}
		LA33_: ;
		addFileToCompile_OP8x69b69aP08XTrqOSNgzkg((&cf_3));
	}
	LA1_: ;
	close_9b6I81M9agpKe5u9cmzSmOaGA((&(*m).ndi));
}

N_NIMCALL(void, writeHeader_xndgWviRe74Vg5ZCVqDJFQ_9)(tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m) {
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* result;
	tyArray_ZqT9cbUNKsl55MABiLlPDxA T1_;
	tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* guard;
	tyArray_ZqT9cbUNKsl55MABiLlPDxA T2_;
	tyTuple_7q7q3E6Oj24ZNVJb9aonhAg T3_;
	tyArray_ZqT9cbUNKsl55MABiLlPDxA T4_;
	tyArray_j0xH32fTir0IvGY7WxQsQA T14_;
	tyArray_ZqT9cbUNKsl55MABiLlPDxA T15_;
	memset((void*)T1_, 0, sizeof(T1_));
	T1_[0] = rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_723));
	result = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_722), T1_, 1);
	memset((void*)T2_, 0, sizeof(T2_));
	memset((void*)(&T3_), 0, sizeof(T3_));
	nossplitFile((*m).filename, (&T3_));
	T2_[0] = rope_53CHEX05HP0HacydnwoUYg(T3_.Field1);
	guard = percent__tH0lgOCTcFVFSKThSUgFEg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_749), T2_, 1);
	memset((void*)T4_, 0, sizeof(T4_));
	T4_[0] = guard;
	addf_8UUGW4xtgpag0J4uEnVLuQ(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_750), T4_, 1);
	addIntTypes_4umyRsj7bdfySKs69aKeJAwcgen(&result);
	generateHeaders_xndgWviRe74Vg5ZCVqDJFQ_7(m);
	generateThreadLocalStorage_xndgWviRe74Vg5ZCVqDJFQ_6(m);
	{
		tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg i;
		NI res;
		i = (tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg)0;
		res = ((NI) 1);
		{
			while (1) {
				tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T8_;
				tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ* T9_;
				if (!(res <= ((NI) 10))) goto LA7;
				i = ((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) (res));
				T8_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
				T8_ = genSectionStart_9bdZYosXO9coHYdP4ImTXi5Q(i);
				add_cDalAhgBlDWoYHadkaqqxw(&result, T8_);
				add_cDalAhgBlDWoYHadkaqqxw(&result, (*m).s[(i)- 0]);
				T9_ = (tyObject_RopeObj_HF4qJnb6xiOddgPmsxodtQ*)0;
				T9_ = genSectionEnd_9bdZYosXO9coHYdP4ImTXi5Q_2(i);
				add_cDalAhgBlDWoYHadkaqqxw(&result, T9_);
				res += ((NI) 1);
			} LA7: ;
		}
	}
	add_cDalAhgBlDWoYHadkaqqxw(&result, (*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0]);
	{
		if (!((gGlobalOptions_j042VVDC9cT5ENYoXnmhhVg &(1U<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 7))&31U)))!=0)) goto LA12_;
		add_UJnSY21g59awhvSFBxJ9a9aPg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
	}
	LA12_: ;
	memset((void*)T14_, 0, sizeof(T14_));
	addf_8UUGW4xtgpag0J4uEnVLuQ(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_751), T14_, 0);
	memset((void*)T15_, 0, sizeof(T15_));
	T15_[0] = guard;
	addf_8UUGW4xtgpag0J4uEnVLuQ(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_752), T15_, 1);
	writeRope_BleoID9btBn4KgpblZYx8nQ(result, (*m).filename, NIM_FALSE);
}

N_NIMCALL(void, cgenWriteModules_0PwbiPWVrDcv7LOHtux6Dg)(RootObj* backend, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config) {
	tyObject_BModuleListcolonObjectType__t8u9aWK9cwyNCAxgxkYKh9bLQ* g;
	g = ((tyObject_BModuleListcolonObjectType__t8u9aWK9cwyNCAxgxkYKh9bLQ*) (backend));
	asgnRefNoCycle((void**) (&(*g).config), config);
	{
		if (!!(((*g).generatedHeader == NIM_NIL))) goto LA3_;
		finishModule_xndgWviRe74Vg5ZCVqDJFQ_2((*g).generatedHeader);
	}
	LA3_: ;
	{
		while (1) {
			if (!(((NI) 0) < (*g).forwardedProcsCounter)) goto LA6;
			{
				tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m;
				m = (tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA*)0;
				{
					NI i;
					NI colontmp_;
					NI T9_;
					NI res;
					i = (NI)0;
					colontmp_ = (NI)0;
					T9_ = ((*g).modules ? ((*g).modules->Sup.len-1) : -1);
					colontmp_ = T9_;
					res = ((NI) 0);
					{
						while (1) {
							if (!(res <= colontmp_)) goto LA11;
							i = res;
							{
								if (!!(((*g).modules->data[i] == NIM_NIL))) goto LA14_;
								m = (*g).modules->data[i];
								{
									if (!!((*m).Sup.fromCache)) goto LA18_;
									finishModule_xndgWviRe74Vg5ZCVqDJFQ_2(m);
								}
								LA18_: ;
							}
							LA14_: ;
							res += ((NI) 1);
						} LA11: ;
					}
				}
			}
		} LA6: ;
	}
	{
		tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA* m_2;
		m_2 = (tyObject_TCGen_8lcmapGBf0sypwIDzZhZwA*)0;
		{
			NI i_2;
			NI colontmp__2;
			NI T22_;
			NI res_2;
			i_2 = (NI)0;
			colontmp__2 = (NI)0;
			T22_ = ((*g).modules ? ((*g).modules->Sup.len-1) : -1);
			colontmp__2 = T22_;
			res_2 = ((NI) 0);
			{
				while (1) {
					if (!(res_2 <= colontmp__2)) goto LA24;
					i_2 = res_2;
					{
						if (!!(((*g).modules->data[i_2] == NIM_NIL))) goto LA27_;
						m_2 = (*g).modules->data[i_2];
						{
							if (!(*m_2).Sup.fromCache) goto LA31_;
							updateCachedModule_xndgWviRe74Vg5ZCVqDJFQ_3(m_2);
						}
						goto LA29_;
						LA31_: ;
						{
							writeModule_9bv59bQ2gpfKwo8DRdqdNGOw(m_2, NIM_TRUE);
						}
						LA29_: ;
					}
					LA27_: ;
					res_2 += ((NI) 1);
				} LA24: ;
			}
		}
	}
	writeMapping_fCGFdgs38RNcOjsXPVtLhw((*g).mapping);
	{
		if (!!(((*g).generatedHeader == NIM_NIL))) goto LA36_;
		writeHeader_xndgWviRe74Vg5ZCVqDJFQ_9((*g).generatedHeader);
	}
	LA36_: ;
}
NIM_EXTERNC N_NOINLINE(void, compiler_cgenInit000)(void) {
nimRegisterGlobalMarker(TM_MQdRN7fpbG7rPm4JpVVAhA_2);
nimRegisterGlobalMarker(TM_MQdRN7fpbG7rPm4JpVVAhA_4);
nimRegisterGlobalMarker(TM_MQdRN7fpbG7rPm4JpVVAhA_5);
nimRegisterGlobalMarker(TM_MQdRN7fpbG7rPm4JpVVAhA_6);
	asgnRefNoCycle((void**) (&indent_yZhag4Leo9bR7kvKArHuXQg), rope_53CHEX05HP0HacydnwoUYg(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_3)));
	if (nimtvDeps_65PZHnt5ef7s9b6MCRpLI4Q) { nimGCunrefNoCycle(nimtvDeps_65PZHnt5ef7s9b6MCRpLI4Q); nimtvDeps_65PZHnt5ef7s9b6MCRpLI4Q = NIM_NIL; }
	nimtvDeps_65PZHnt5ef7s9b6MCRpLI4Q = (tySequence_zuqP4Riz26Oi5fWgPYVEgA*) newSeqRC1((&NTI_zuqP4Riz26Oi5fWgPYVEgA_), 0);
	chckNil((void*)(&nimtvDeclared_HYTho28us1uxqfncBt58kg));
	genericReset((void*)(&nimtvDeclared_HYTho28us1uxqfncBt58kg), (&NTI_PQrmFm4BXFkFSVOUl1ojSg_));
	initIntSet_a9a80eJplB17xrdZJ41Baww((&nimtvDeclared_HYTho28us1uxqfncBt58kg));
}

NIM_EXTERNC N_NOINLINE(void, compiler_cgenDatInit000)(void) {
}

