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

#include "nimbase.h"
#include <string.h>
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef far
#undef powerpc
#undef unix
#define nimfr_(x, y)
#define nimln_(x, y)
typedef struct tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw;
typedef struct tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w;
typedef struct tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw;
typedef struct tyObject_TIdObj_iIXPrEsiKHiioLj0HSkQhA tyObject_TIdObj_iIXPrEsiKHiioLj0HSkQhA;
typedef struct RootObj RootObj;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tySequence_Ef05srmQTDulnBdXR4Ja6Q tySequence_Ef05srmQTDulnBdXR4Ja6Q;
typedef struct tySequence_DXS6mEo7PVUFJkirsQ9bNQA tySequence_DXS6mEo7PVUFJkirsQ9bNQA;
typedef struct tyObject_TStrTable_f07aOS3dr28kGa5wcE29aFA tyObject_TStrTable_f07aOS3dr28kGa5wcE29aFA;
typedef struct tySequence_DfgJFJEYoj4YBAHLZPl5lQ tySequence_DfgJFJEYoj4YBAHLZPl5lQ;
typedef struct tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ;
typedef struct tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA;
typedef struct tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q;
typedef struct tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA;
typedef struct tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA;
typedef struct tyObject_TLib_NBMxlJ6g3utqUlplqTTHkA tyObject_TLib_NBMxlJ6g3utqUlplqTTHkA;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ;
typedef struct tyObject_TPassContext_Hb6rFM0ecvtlLf2kv9aU75w tyObject_TPassContext_Hb6rFM0ecvtlLf2kv9aU75w;
typedef struct tySequence_9bAGqSvkAaFL9bWjsEPslrFA tySequence_9bAGqSvkAaFL9bWjsEPslrFA;
typedef struct tySequence_PJMRIt5QxCm6bRaVyQ5CGA tySequence_PJMRIt5QxCm6bRaVyQ5CGA;
typedef struct tyObject_PProccolonObjectType__VFEBuxrDHC6kHPzc1TWaRQ tyObject_PProccolonObjectType__VFEBuxrDHC6kHPzc1TWaRQ;
typedef struct tySequence_RsxI3z4wK8jTuZiO0576gQ tySequence_RsxI3z4wK8jTuZiO0576gQ;
typedef struct tyObject_IdentCachecolonObjectType__TzLHS09bRH9a0TYLs39cqcNaw tyObject_IdentCachecolonObjectType__TzLHS09bRH9a0TYLs39cqcNaw;
typedef struct tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw;
typedef struct tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ;
typedef struct tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g;
typedef struct tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w;
typedef struct tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ;
typedef struct tyObject_GcStack_7fytPA5bBsob6See21YMRA tyObject_GcStack_7fytPA5bBsob6See21YMRA;
typedef struct tyObject_MemRegion_x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion_x81NhDv59b8ercDZ9bi85jyg;
typedef struct tyObject_SmallChunk_tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk_tXn60W2f8h3jgAYdEmy5NQ;
typedef struct tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg;
typedef struct tyObject_LLChunk_XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk_XsENErzHIZV9bhvyJx56wGw;
typedef struct tyObject_IntSet_EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet_EZObFrE3NC9bIb3YMkY9crZA;
typedef struct tyObject_Trunk_W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk_W0r8S0Y3UGke6T9bIUWnnuw;
typedef struct tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw;
typedef struct tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg;
typedef struct tyTuple_ujsjpB2O9cjj3uDHsXbnSzg tyTuple_ujsjpB2O9cjj3uDHsXbnSzg;
typedef struct tyObject_GcStat_0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat_0RwLoVBHZPfUAcLczmfQAg;
typedef struct tyObject_CellSet_jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet_jG87P0AI9aZtss9ccTYBIISQ;
typedef struct tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg;
typedef struct tySequence_JokFGfUW6i9b6aeU7xu6xBw tySequence_JokFGfUW6i9b6aeU7xu6xBw;
typedef struct tyTuple_SlmU1Ju0WFHUWkihyHMVYg tyTuple_SlmU1Ju0WFHUWkihyHMVYg;
typedef struct tySequence_MvZmat48bhe9b6x9aUD58D5Q tySequence_MvZmat48bhe9b6x9aUD58D5Q;
typedef struct tyTuple_kN8up2W6YKc5YA9avn5mV5w tyTuple_kN8up2W6YKc5YA9avn5mV5w;
typedef struct tyObject_VmArgs_0UUl6e5CNNQfMon2xW2bVA tyObject_VmArgs_0UUl6e5CNNQfMon2xW2bVA;
typedef struct tyTuple_UCrBsiykDha2x4hr9aWPwKA tyTuple_UCrBsiykDha2x4hr9aWPwKA;
typedef struct tySequence_sM4lkSb7zS6F7OVMvW9cffQ tySequence_sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tySequence_qwqHTkRvwhrRyENtudHQ7g tySequence_qwqHTkRvwhrRyENtudHQ7g;
typedef struct tyObject_TBlock_2tJGcW69ahqq39a9bVJC1sqGQ tyObject_TBlock_2tJGcW69ahqq39a9bVJC1sqGQ;
typedef struct tyObject_Env_slashUsersslashtravisslashbuildslashnimminuslangslashnightliesslashnimslashe7471cebae2a404f3e4239f199f5a0c422484aacslashcompilerslashvmgendotnim__S3egVycflujrSLBBVkrE6A tyObject_Env_slashUsersslashtravisslashbuildslashnimminuslangslashnightliesslashnimslashe7471cebae2a404f3e4239f199f5a0c422484aacslashcompilerslashvmgendotnim__S3egVycflujrSLBBVkrE6A;
typedef struct tyObject_Target_9abOl5DLX8suLujOaHSvGzw tyObject_Target_9abOl5DLX8suLujOaHSvGzw;
typedef struct tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg;
typedef struct tyObject_MsgConfig_kV7r8HWT0SqOYW2k2ukC6A tyObject_MsgConfig_kV7r8HWT0SqOYW2k2ukC6A;
typedef struct tySequence_tNFrR3kRuS1FSwuiLGoSSA tySequence_tNFrR3kRuS1FSwuiLGoSSA;
typedef struct tyObject_Table_Ab4q9c36aMR4mtkEOIBzdzA tyObject_Table_Ab4q9c36aMR4mtkEOIBzdzA;
typedef struct tySequence_7lEisrXlQEzwtUKW5pzRCw tySequence_7lEisrXlQEzwtUKW5pzRCw;
typedef struct tySequence_Zi9cGbCWofbtABoHJ5RbLNQ tySequence_Zi9cGbCWofbtABoHJ5RbLNQ;
typedef struct tyObject_HashSet_CD8Dpv0WGmASelVaNSo6zg tyObject_HashSet_CD8Dpv0WGmASelVaNSo6zg;
typedef struct tySequence_4eRCaZmrYLLw2k30GPTiMw tySequence_4eRCaZmrYLLw2k30GPTiMw;
typedef struct tySequence_pK3qSsBZwdXd6qyUMkd5Jw tySequence_pK3qSsBZwdXd6qyUMkd5Jw;
typedef struct tyObject_SuggestcolonObjectType__bkMuTTb2G70XfpzAiyNrnQ tyObject_SuggestcolonObjectType__bkMuTTb2G70XfpzAiyNrnQ;
typedef struct tyObject_TInstantiation_5LqgVn6Tq9ainQRK7TQAQxA tyObject_TInstantiation_5LqgVn6Tq9ainQRK7TQAQxA;
typedef struct tyTuple_zwpS6d6iewrdlBSTNFoyVA tyTuple_zwpS6d6iewrdlBSTNFoyVA;
typedef struct tyTuple_z822nu9bFF1AlQnLrHjdwpA tyTuple_z822nu9bFF1AlQnLrHjdwpA;
typedef struct tyTuple_xYhUhS7X82rKTqbT9bRfCnw tyTuple_xYhUhS7X82rKTqbT9bRfCnw;
typedef struct tyObject_TFileInfo_GE3hAakXKOEpch4ap3zXAw tyObject_TFileInfo_GE3hAakXKOEpch4ap3zXAw;
typedef struct tyTuple_QeWl6B6ffS4pU6WWrtcrDw tyTuple_QeWl6B6ffS4pU6WWrtcrDw;
typedef struct tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg;
typedef NU8 tyEnum_TNimKind_jIBKr1ejBgsfM33Kxw4j7A;
typedef NU8 tySet_tyEnum_TNimTypeFlag_v8QUszD1sWlSIWZz7mC4bQ;
typedef N_NIMCALL_PTR(void, tyProc_ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc_WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
tyEnum_TNimKind_jIBKr1ejBgsfM33Kxw4j7A kind;
tySet_tyEnum_TNimTypeFlag_v8QUszD1sWlSIWZz7mC4bQ flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc_ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc_WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
struct RootObj {
TNimType* m_type;
};
struct tyObject_TIdObj_iIXPrEsiKHiioLj0HSkQhA {
  RootObj Sup;
NI id;
};
typedef NU8 tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw;
struct tyObject_TStrTable_f07aOS3dr28kGa5wcE29aFA {
NI counter;
tySequence_DfgJFJEYoj4YBAHLZPl5lQ* data;
};
typedef NU16 tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg;
struct tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q {
NU16 line;
NI16 col;
NI32 fileIndex;
};
typedef NU64 tySet_tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw;
typedef NU32 tySet_tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg;
typedef NU8 tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg;
typedef NU8 tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw;
typedef NU16 tySet_tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA;
struct tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA {
tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg k;
tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw storage;
tySet_tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA flags;
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* lode;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r;
};
struct tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w {
  tyObject_TIdObj_iIXPrEsiKHiioLj0HSkQhA Sup;
tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw kind;
union{
struct {tySequence_Ef05srmQTDulnBdXR4Ja6Q* typeInstCache;
};
struct {tySequence_DXS6mEo7PVUFJkirsQ9bNQA* procInstCache;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* gcUnsafetyReason;
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* transformedBody;
};
struct {tySequence_DXS6mEo7PVUFJkirsQ9bNQA* usedGenerics;
tyObject_TStrTable_f07aOS3dr28kGa5wcE29aFA tab;
};
struct {tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* guard;
NI bitsize;
};
};
tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg magic;
tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA* name;
tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* owner;
tySet_tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw flags;
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ast;
tySet_tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg options;
NI position;
NI offset;
tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA loc;
tyObject_TLib_NBMxlJ6g3utqUlplqTTHkA* annex;
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* constraint;
};
typedef NU32 tySet_tyEnum_TNodeFlag_jyh9acXHkhZANSSvPIY7ZLg;
typedef NU8 tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw;
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw {
tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info;
tySet_tyEnum_TNodeFlag_jyh9acXHkhZANSSvPIY7ZLg flags;
tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw kind;
union{
struct {NI64 intVal;
};
struct {NF floatVal;
};
struct {NimStringDesc* strVal;
};
struct {tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym;
};
struct {tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA* ident;
};
struct {tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ* sons;
};
};
NimStringDesc* comment;
};
typedef NU8 tySet_tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw[21];
struct tyObject_TPassContext_Hb6rFM0ecvtlLf2kv9aU75w {
  RootObj Sup;
};
typedef NU8 tyEnum_TEvalMode_UbrbHUpo4hYFr1DbYzJgRQ;
typedef NU8 tySet_tyEnum_TSandboxFlag_JyPEhkAmDAldmLHNNrLR0A;
struct tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw {
  tyObject_TPassContext_Hb6rFM0ecvtlLf2kv9aU75w Sup;
tySequence_9bAGqSvkAaFL9bWjsEPslrFA* code;
tySequence_PJMRIt5QxCm6bRaVyQ5CGA* debug;
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* globals;
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* constants;
tySequence_Ef05srmQTDulnBdXR4Ja6Q* types;
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* currentExceptionA;
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* currentExceptionB;
NI exceptionInstr;
tyObject_PProccolonObjectType__VFEBuxrDHC6kHPzc1TWaRQ* prc;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* module;
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* callsite;
tyEnum_TEvalMode_UbrbHUpo4hYFr1DbYzJgRQ mode;
tySet_tyEnum_TSandboxFlag_JyPEhkAmDAldmLHNNrLR0A features;
NIM_BOOL traceActive;
NI loopIterations;
tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q comesFromHeuristic;
tySequence_RsxI3z4wK8jTuZiO0576gQ* callbacks;
NimStringDesc* errorFlag;
tyObject_IdentCachecolonObjectType__TzLHS09bRH9a0TYLs39cqcNaw* cache;
tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config;
tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* graph;
NI oldErrorCount;
};
typedef NU8 tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ;
typedef NU8 tyEnum_TNimNodeKind_unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind_unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g {
NI refcount;
TNimType* typ;
};
struct tyObject_GcStack_7fytPA5bBsob6See21YMRA {
void* bottom;
};
struct tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w {
NI len;
NI cap;
tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g** d;
};
typedef tyObject_SmallChunk_tXn60W2f8h3jgAYdEmy5NQ* tyArray_SiRwrEKZdLgxqz9a9aoVBglg[512];
typedef NU32 tyArray_BHbOSqU1t9b3Gt7K2c6fQig[24];
typedef tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg* tyArray_N1u1nqOgmuJN9cSZrnMHgOQ[32];
typedef tyArray_N1u1nqOgmuJN9cSZrnMHgOQ tyArray_B6durA4ZCi1xjJvRtyYxMg[24];
typedef tyObject_Trunk_W0r8S0Y3UGke6T9bIUWnnuw* tyArray_lh2A89ahMmYg9bCmpVaplLbA[256];
struct tyObject_IntSet_EZObFrE3NC9bIb3YMkY9crZA {
tyArray_lh2A89ahMmYg9bCmpVaplLbA data;
};
typedef tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* tyArray_0aOLqZchNi8nWtMTi8ND8w[2];
struct tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw {
tyArray_0aOLqZchNi8nWtMTi8ND8w link;
NI key;
NI upperBound;
NI level;
};
struct tyTuple_ujsjpB2O9cjj3uDHsXbnSzg {
tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg* Field0;
NI Field1;
};
typedef tyTuple_ujsjpB2O9cjj3uDHsXbnSzg tyArray_LzOv2eCDGiceMKQstCLmhw[30];
struct tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg {
NI len;
tyArray_LzOv2eCDGiceMKQstCLmhw chunks;
tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg* next;
};
struct tyObject_MemRegion_x81NhDv59b8ercDZ9bi85jyg {
NI minLargeObj;
NI maxLargeObj;
tyArray_SiRwrEKZdLgxqz9a9aoVBglg freeSmallChunks;
NU32 flBitmap;
tyArray_BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
tyArray_B6durA4ZCi1xjJvRtyYxMg matrix;
tyObject_LLChunk_XsENErzHIZV9bhvyJx56wGw* llmem;
NI currMem;
NI maxMem;
NI freeMem;
NI occ;
NI lastSize;
tyObject_IntSet_EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* root;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* deleted;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* last;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
NIM_BOOL locked;
NIM_BOOL blockChunkSizeIncrease;
NI nextChunkSize;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw bottomData;
tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
};
struct tyObject_GcStat_0RwLoVBHZPfUAcLczmfQAg {
NI stackScans;
NI cycleCollections;
NI maxThreshold;
NI maxStackSize;
NI maxStackCells;
NI cycleTableSize;
NI64 maxPause;
};
struct tyObject_CellSet_jG87P0AI9aZtss9ccTYBIISQ {
NI counter;
NI max;
tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg* head;
tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg** data;
};
struct tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ {
tyObject_GcStack_7fytPA5bBsob6See21YMRA stack;
NI cycleThreshold;
NI zctThreshold;
tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w zct;
tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w decStack;
tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w tempStack;
NI recGcLock;
tyObject_MemRegion_x81NhDv59b8ercDZ9bi85jyg region;
tyObject_GcStat_0RwLoVBHZPfUAcLczmfQAg stat;
tyObject_CellSet_jG87P0AI9aZtss9ccTYBIISQ marked;
tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w additionalRoots;
NI gcThreadId;
};
typedef tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* tyArray_AB6yfoUgfWM2NtGe9bzkCmw[2];
typedef NU8 tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw;
typedef NU8 tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ;
struct tyTuple_SlmU1Ju0WFHUWkihyHMVYg {
NIM_BOOL Field0;
tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ Field1;
};
typedef tyTuple_SlmU1Ju0WFHUWkihyHMVYg tyArray_ORKcvNw6ApGJhbot1dJ6oA[256];
struct tyObject_PProccolonObjectType__VFEBuxrDHC6kHPzc1TWaRQ {
tySequence_JokFGfUW6i9b6aeU7xu6xBw* blocks;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym;
tyArray_ORKcvNw6ApGJhbot1dJ6oA slots;
NI maxSlots;
};
typedef NU8 tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag;
typedef NU8 tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA;
typedef NU64 tySet_tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw;
typedef tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* tyArray_PsPyPA45AAjHu4uDGHNjTg[4];
struct tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ {
  tyObject_TIdObj_iIXPrEsiKHiioLj0HSkQhA Sup;
tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag kind;
tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA callConv;
tySet_tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw flags;
tySequence_Ef05srmQTDulnBdXR4Ja6Q* sons;
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* owner;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym;
tyArray_PsPyPA45AAjHu4uDGHNjTg attachedOps;
tySequence_MvZmat48bhe9b6x9aUD58D5Q* methods;
NI64 size;
NI16 align;
NI16 lockLevel;
tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA loc;
tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typeInst;
NI uniqueId;
};
typedef NU8 tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw;
typedef NU8 tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ;
typedef NU8 tySet_tyEnum_TRenderFlag_wrPgUo1ExBlHvFnXN2nSHw;
typedef NU8 tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA;
struct tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA {
  tyObject_TIdObj_iIXPrEsiKHiioLj0HSkQhA Sup;
NimStringDesc* s;
tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA* next;
NI h;
};
typedef NU64 tySet_tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag;
typedef NU8 tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ;
struct tyTuple_kN8up2W6YKc5YA9avn5mV5w {
NimStringDesc* Field0;
NI Field1;
NI Field2;
};
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_VmArgs_0UUl6e5CNNQfMon2xW2bVA* args, void* ClE_0);
void* ClE_0;
} tyProc_S09bPfanQx9bEvdh4862x8zw;
struct tyTuple_UCrBsiykDha2x4hr9aWPwKA {
NimStringDesc* Field0;
tyProc_S09bPfanQx9bEvdh4862x8zw Field1;
};
typedef NU8 tyEnum_TNodeFlag_jyh9acXHkhZANSSvPIY7ZLg;
typedef NU8 tySet_tyEnum_TTypeCmpFlag_72pgRXSg7774cr9aCWVPORw;
typedef NimStringDesc* tyArray_24KAM9afIUgUaqBaEBB6r9bg[3];
struct tyObject_TBlock_2tJGcW69ahqq39a9bVJC1sqGQ {
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* label;
tySequence_qwqHTkRvwhrRyENtudHQ7g* fixups;
};
typedef NU8 tyEnum_TSandboxFlag_JyPEhkAmDAldmLHNNrLR0A;
struct tyObject_Env_slashUsersslashtravisslashbuildslashnimminuslangslashnightliesslashnimslashe7471cebae2a404f3e4239f199f5a0c422484aacslashcompilerslashvmgendotnim__S3egVycflujrSLBBVkrE6A {
  RootObj Sup;
NI colonstate_;
tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c1;
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n2;
};
typedef NU8 tyEnum_TSystemCPU_XYDt7D1G3qcClFyZy1Ky9ag;
typedef NU8 tyEnum_TSystemOS_s7Mlr1t66SUqP6BKJMXLaQ;
struct tyObject_Target_9abOl5DLX8suLujOaHSvGzw {
tyEnum_TSystemCPU_XYDt7D1G3qcClFyZy1Ky9ag targetCPU;
tyEnum_TSystemCPU_XYDt7D1G3qcClFyZy1Ky9ag hostCPU;
tyEnum_TSystemOS_s7Mlr1t66SUqP6BKJMXLaQ targetOS;
tyEnum_TSystemOS_s7Mlr1t66SUqP6BKJMXLaQ hostOS;
NI intSize;
NI floatSize;
NI ptrSize;
NimStringDesc* tnl;
};
typedef NU64 tySet_tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw;
typedef NU8 tySet_tyEnum_TErrorOutput_fBf8Teueoz9aAkO5cXaxrpA;
struct tyObject_Table_Ab4q9c36aMR4mtkEOIBzdzA {
tySequence_7lEisrXlQEzwtUKW5pzRCw* data;
NI counter;
};
struct tyObject_MsgConfig_kV7r8HWT0SqOYW2k2ukC6A {
tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q trackPos;
NIM_BOOL trackPosAttached;
tySet_tyEnum_TErrorOutput_fBf8Teueoz9aAkO5cXaxrpA errorOutputs;
tySequence_tNFrR3kRuS1FSwuiLGoSSA* msgContext;
tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q lastError;
tyObject_Table_Ab4q9c36aMR4mtkEOIBzdzA filenameToIndexTbl;
tySequence_Zi9cGbCWofbtABoHJ5RbLNQ* fileInfos;
NI32 systemFileIdx;
};
typedef NU8 tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw;
typedef NU8 tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw;
typedef NU8 tyEnum_SymbolFilesOption_gBES9bqm1ru9ape8SeMRAFgQ;
struct tyObject_HashSet_CD8Dpv0WGmASelVaNSo6zg {
tySequence_4eRCaZmrYLLw2k30GPTiMw* data;
NI counter;
};
typedef NU16 tySet_tyEnum_Feature_01UoAKYz1MxZiuG1X2VhNQ;
typedef NU8 tyEnum_IdeCmd_1Ced39bl5eePmZ1PKMPXigQ;
typedef NU8 tyEnum_TSystemCC_1eWBJUonHMOnlBwsOvpFmA;
typedef NU64 tySet_tyEnum_TMsgKind_Ns87ee9bXonvIM8SMewfbmA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_SuggestcolonObjectType__bkMuTTb2G70XfpzAiyNrnQ* result, void* ClE_0);
void* ClE_0;
} tyProc_QYEVXrYc9beQ379crS3rzqRA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (NimStringDesc* output, void* ClE_0);
void* ClE_0;
} tyProc_Q1W5D85O9cNu3iq9cZ9alS9aWA;
typedef NU8 tyEnum_Severity_x5BWBPGAbIH9clm5pmNp5DA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, NimStringDesc* msg, tyEnum_Severity_x5BWBPGAbIH9clm5pmNp5DA severity, void* ClE_0);
void* ClE_0;
} tyProc_22mgIiTBBoqNe1T0FSw9ahQ;
struct tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw {
tyObject_Target_9abOl5DLX8suLujOaHSvGzw target;
NI linesCompiled;
tySet_tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg options;
tySet_tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw globalOptions;
tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg* macrosToExpand;
tyObject_MsgConfig_kV7r8HWT0SqOYW2k2ukC6A m;
NI evalTemplateCounter;
NI evalMacroCounter;
NI8 exitcode;
tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw cmd;
tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw selectedGC;
NI verbosity;
NI numberOfProcessors;
NimStringDesc* evalExpr;
NF lastCmdTime;
tyEnum_SymbolFilesOption_gBES9bqm1ru9ape8SeMRAFgQ symbolFiles;
tyObject_HashSet_CD8Dpv0WGmASelVaNSo6zg cppDefines;
NimStringDesc* headerFile;
tySet_tyEnum_Feature_01UoAKYz1MxZiuG1X2VhNQ features;
NimStringDesc* arguments;
tyEnum_IdeCmd_1Ced39bl5eePmZ1PKMPXigQ ideCmd;
NIM_BOOL oldNewlines;
tyEnum_TSystemCC_1eWBJUonHMOnlBwsOvpFmA cCompiler;
tySet_tyEnum_TMsgKind_Ns87ee9bXonvIM8SMewfbmA enableNotes;
tySet_tyEnum_TMsgKind_Ns87ee9bXonvIM8SMewfbmA disableNotes;
tySet_tyEnum_TMsgKind_Ns87ee9bXonvIM8SMewfbmA foreignPackageNotes;
tySet_tyEnum_TMsgKind_Ns87ee9bXonvIM8SMewfbmA notes;
tySet_tyEnum_TMsgKind_Ns87ee9bXonvIM8SMewfbmA mainPackageNotes;
NI mainPackageId;
NI errorCounter;
NI hintCounter;
NI warnCounter;
NI errorMax;
tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg* configVars;
tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg* symbols;
tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg* packageCache;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* searchPaths;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* lazyPaths;
NimStringDesc* outFile;
NimStringDesc* outDir;
NimStringDesc* prefixDir;
NimStringDesc* libpath;
NimStringDesc* nimcacheDir;
tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg* dllOverrides;
tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg* moduleOverrides;
NimStringDesc* projectName;
NimStringDesc* projectPath;
NimStringDesc* projectFull;
NIM_BOOL projectIsStdin;
NI32 projectMainIdx;
NimStringDesc* command;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* commandArgs;
NIM_BOOL keepComments;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* implicitImports;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* implicitIncludes;
NimStringDesc* docSeeSrcUrl;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* cIncludes;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* cLibs;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* cLinkedLibs;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* externalToLink;
NimStringDesc* linkOptionsCmd;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* compileOptionsCmd;
NimStringDesc* linkOptions;
NimStringDesc* compileOptions;
NimStringDesc* ccompilerpath;
tySequence_pK3qSsBZwdXd6qyUMkd5Jw* toCompile;
tyProc_QYEVXrYc9beQ379crS3rzqRA suggestionResultHook;
NI suggestVersion;
NI suggestMaxResults;
tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q lastLineInfo;
tyProc_Q1W5D85O9cNu3iq9cZ9alS9aWA writelnHook;
tyProc_22mgIiTBBoqNe1T0FSw9ahQ structuredErrorHook;
NimStringDesc* cppCustomNamespace;
};
typedef struct {
N_NIMCALL_PTR(NI, ClP_0) (NI ival, void* ClE_0);
void* ClE_0;
} tyProc_QZ4giON8BOPRx8CufO2W6Q;
typedef N_CLOSURE_PTR(NI, TM_24XApAWKNvaMkcyklm8bNA_191) (NI ival);
typedef N_CLOSURE_PTR(NI, TM_24XApAWKNvaMkcyklm8bNA_194) (NI ival);
typedef N_CLOSURE_PTR(NI, TM_24XApAWKNvaMkcyklm8bNA_196) (NI ival);
struct tyTuple_zwpS6d6iewrdlBSTNFoyVA {
NI Field0;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* Field1;
};
struct tyObject_VmArgs_0UUl6e5CNNQfMon2xW2bVA {
NI ra;
NI rb;
NI rc;
void* slots;
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* currentException;
tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q currentLineInfo;
};
struct tyTuple_z822nu9bFF1AlQnLrHjdwpA {
tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q Field0;
NimStringDesc* Field1;
};
struct tyTuple_xYhUhS7X82rKTqbT9bRfCnw {
NI Field0;
NimStringDesc* Field1;
NI32 Field2;
};
struct tyObject_TFileInfo_GE3hAakXKOEpch4ap3zXAw {
NimStringDesc* fullPath;
NimStringDesc* projPath;
NimStringDesc* shortName;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* quotedName;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* quotedFullName;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* lines;
NimStringDesc* dirtyfile;
NimStringDesc* hash;
NIM_BOOL dirty;
};
struct tyTuple_QeWl6B6ffS4pU6WWrtcrDw {
NI Field0;
NimStringDesc* Field1;
};
typedef NU8 tySet_tyEnum_CfileFlag_Vl9c9ayddDuXiWtnWTsEYGsA;
struct tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg {
NimStringDesc* nimname;
NimStringDesc* cname;
NimStringDesc* obj;
tySet_tyEnum_CfileFlag_Vl9c9ayddDuXiWtnWTsEYGsA flags;
};
struct tySequence_9bAGqSvkAaFL9bWjsEPslrFA {
  TGenericSeq Sup;
  NU32 data[SEQ_DECL_SIZE];
};
struct tySequence_PJMRIt5QxCm6bRaVyQ5CGA {
  TGenericSeq Sup;
  tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q data[SEQ_DECL_SIZE];
};
struct tySequence_RsxI3z4wK8jTuZiO0576gQ {
  TGenericSeq Sup;
  tyTuple_UCrBsiykDha2x4hr9aWPwKA data[SEQ_DECL_SIZE];
};
struct tySequence_sM4lkSb7zS6F7OVMvW9cffQ {
  TGenericSeq Sup;
  NimStringDesc* data[SEQ_DECL_SIZE];
};
struct tySequence_Ef05srmQTDulnBdXR4Ja6Q {
  TGenericSeq Sup;
  tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* data[SEQ_DECL_SIZE];
};
struct tySequence_qwqHTkRvwhrRyENtudHQ7g {
  TGenericSeq Sup;
  NI data[SEQ_DECL_SIZE];
};
struct tySequence_JokFGfUW6i9b6aeU7xu6xBw {
  TGenericSeq Sup;
  tyObject_TBlock_2tJGcW69ahqq39a9bVJC1sqGQ data[SEQ_DECL_SIZE];
};
struct tySequence_DXS6mEo7PVUFJkirsQ9bNQA {
  TGenericSeq Sup;
  tyObject_TInstantiation_5LqgVn6Tq9ainQRK7TQAQxA* data[SEQ_DECL_SIZE];
};
struct tySequence_DfgJFJEYoj4YBAHLZPl5lQ {
  TGenericSeq Sup;
  tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* data[SEQ_DECL_SIZE];
};
struct tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ {
  TGenericSeq Sup;
  tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
};
struct tySequence_MvZmat48bhe9b6x9aUD58D5Q {
  TGenericSeq Sup;
  tyTuple_zwpS6d6iewrdlBSTNFoyVA data[SEQ_DECL_SIZE];
};
struct tySequence_tNFrR3kRuS1FSwuiLGoSSA {
  TGenericSeq Sup;
  tyTuple_z822nu9bFF1AlQnLrHjdwpA data[SEQ_DECL_SIZE];
};
struct tySequence_7lEisrXlQEzwtUKW5pzRCw {
  TGenericSeq Sup;
  tyTuple_xYhUhS7X82rKTqbT9bRfCnw data[SEQ_DECL_SIZE];
};
struct tySequence_Zi9cGbCWofbtABoHJ5RbLNQ {
  TGenericSeq Sup;
  tyObject_TFileInfo_GE3hAakXKOEpch4ap3zXAw data[SEQ_DECL_SIZE];
};
struct tySequence_4eRCaZmrYLLw2k30GPTiMw {
  TGenericSeq Sup;
  tyTuple_QeWl6B6ffS4pU6WWrtcrDw data[SEQ_DECL_SIZE];
};
struct tySequence_pK3qSsBZwdXd6qyUMkd5Jw {
  TGenericSeq Sup;
  tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg data[SEQ_DECL_SIZE];
};
N_NOINLINE(void, raiseFieldError)(NimStringDesc* f);
N_NOINLINE(void, raiseIndexError2)(NI i, NI n);
static N_INLINE(NI, subInt)(NI a, NI b);
N_NOINLINE(void, raiseOverflow)(void);
static N_INLINE(NI, chckRange)(NI i, NI a, NI b);
N_NOINLINE(void, raiseRangeError)(NI64 val);
N_NIMCALL(TGenericSeq*, setLengthSeqV2)(TGenericSeq* s, TNimType* typ, NI newLen);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef_AT1eRuflKWyTTBdLjEDZbg_3system)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell_QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr);
static N_INLINE(void, decRef_AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(void, rtlAddZCT_AT1eRuflKWyTTBdLjEDZbg_2system)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NOINLINE(void, addZCT_Y66tOYFjgwJ0k4aLz4bc0Q)(tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(NI, addInt)(NI a, NI b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, newTree_FpOm4fidh9bWdkMa1BMRJkQ)(tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw** children, NI childrenLen_0);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem_zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, newIntNode_zcNs9blLGYB6i9aGKob9bpzRw)(tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw kind, NI64 intVal);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, transformBody_gFZW9bFffCiuUrdu3Rnih2g)(tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc, NIM_BOOL cache, NIM_BOOL noDestructors);
static N_INLINE(NIM_BOOL, isCompileTimeProc_Ye2MiAptq3GrXxTQeyXNeA_4ast)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(NI, xjmp_LLVWVnfPUz40PkTu6VMsfA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc, NI a);
N_LIB_PRIVATE N_NIMCALL(void, gABx_aNIPMIOfai9c7QJx79aStfDw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc, NI a, NI bx);
N_NIMCALL(NU64, chckRangeU)(NU64 i, NU64 a, NU64 b);
N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(void, localError_NF6kBGchnhQYPbCedyefVA)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, NimStringDesc* arg);
N_NIMCALL(void*, newObj)(TNimType* typ, NI size);
static N_INLINE(void, nimGCunrefRC1)(void* p);
N_LIB_PRIVATE N_NIMCALL(void, genParams_yHS9cbYsE7NJ9b9appE7eVGpA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* params);
static N_INLINE(NI, len_P89cqdlERShb9alU3iC0yj8wast)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genGenericParams_4wahcx9bmpD7ffT1schyhBg)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* gp);
N_LIB_PRIVATE N_NIMCALL(void, gen_M9cKwar4hMj62R1lH9bydpDQ)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(void, gen_6vrKVoM8aZ4Rjealu5DZbw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(void, checkCanEval_Y59crI4YgTHHCWclw3gn72A)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isOwnedBy_WuAduAQ6byDbQit0bpfaag)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* a, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* b);
N_LIB_PRIVATE N_NOINLINE(void, cannotEval_L6IV9bRZsmwjQ509b9cpS01RQ)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, globalError_NF6kBGchnhQYPbCedyefVA_2)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, NimStringDesc* arg);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem_i80o3k0SgEI5gTRCzYdyWAsystem)(void* dest, void* source, NI size);
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, renderTree_ppjdh9aQ5L0SGPF8yz1gZ9cA)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TRenderFlag_wrPgUo1ExBlHvFnXN2nSHw renderFlags);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_LIB_PRIVATE N_NIMCALL(void, genRdVar_6vrKVoM8aZ4Rjealu5DZbw_2)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags);
N_NIMCALL(NI, countBits32)(NU32 n);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A)(NimStringDesc* msg);
static N_INLINE(NIM_BOOL, importcCond_FdCkMWi1o9ccnUFjzZDi9aUgvmgen)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(void, importcSym_tceHaTARuJZVYNYoyPbsEA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(void, genGlobalInit_3QrY9bRL3HpccYFScnTUsdQ)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(void, add_P8dDSotTW25BkfbyspojGg)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* son);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, getNullValue_MirnaGAtIj7Yo4Gl5MzUxA)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tySet_tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag kinds);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, newNodeIT_2kgyckjaq2XB9bxBo5ZeIbg)(tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(void, getNullValueAux_fzmWyera9aMY9cWza4CIFH6g)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* obj, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(NI, sonsLen_zOB1gNtXypybIzLxxB9cyWQ)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, lastSon_UPSW0jLTX5qJL51YMUAHgw)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, newNodeI_vokyXY9cZDshCSxFKChhG9bg)(tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, addSon_P8dDSotTW25BkfbyspojGg_2)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* son);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar__qX5C9b0n9bOP7jk69amC8dA7A)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NI64, lengthOrd_4cSIntenL9aBXY6LAFsvXdQ_2)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, elemType_PfgI9ap7WOnsRfFV4znQ27w_2)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(NI, sonsLen_eY4T6kWJb9a9aTWUufrTLjXg)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* n);
N_NIMCALL(NimStringDesc*, reprEnum)(NI e, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(NI, getTemp_LRjzFZg4NHLjhn9bcZYMCiw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* cc, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* tt);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, skipTypesOrNil_zsqmUNR5OZrTUna0Y9bdu9bg_2)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tySet_tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag kinds);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ, getSlotKind_cS3cqzC9bnfHG9bzCIeP3QaA)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q, bestEffort_LqSnLt7G00hwvGEFOVVFfw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, astdef_PBkjYIaAGbtrZ8DiUArHcw)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(NI, genx_CcIHODsUfIZ32Dw7elmEjQ)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(void, genAdditionalCopy_yPz2tNhzBdEEj9c49aHO2Gzw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc, NI dest, NI idx, NI value);
N_LIB_PRIVATE N_NIMCALL(void, gABC_G2IxRmwmQahHciEYmnYxxg)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* ctx, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc, NI a, NI b, NI c);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ, whichAsgnOpc_Qj2d7lDNNqHtRVhBO4JPQg)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, freeTemp_1nMAqbaMl87FxWu2gyhzog)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, NI r);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, fitsRegister_NRltpJT49cakdDyz9a9cNr4Kw)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(void, setSlot_wdPbhGpyRtpS49bqSwMfggA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* v);
N_LIB_PRIVATE N_NIMCALL(void, internalError_5hPl6LjCYJxMYxh9af9b9bXzw)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* errMsg);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar__r38WafKlW80RkvoZTcia4Q)(tyTuple_kN8up2W6YKc5YA9avn5mV5w x);
N_LIB_PRIVATE N_NIMCALL(void, genAsgn_9c4eyEUpcv8lGnjrHcs6fgw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, NI dest, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, NIM_BOOL requiresCopy);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, procIsCallback_9cbdr2y54C9blDw0BnEN4mmQ)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matches_rZhM0XALsbmtBw4DH4NjRg)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s, NimStringDesc* x);
N_LIB_PRIVATE N_NIMCALL(tySequence_sM4lkSb7zS6F7OVMvW9cffQ*, nsuSplitChar)(NimStringDesc* s, NIM_CHAR sep, NI maxsplit);
N_LIB_PRIVATE N_NIMCALL(NI, nsuCmpIgnoreStyle)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NIM_BOOL, equalMem_9bGgqEk7RXXl6eqM9c1HdELAsystem)(void* a, void* b, NI size);
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
N_LIB_PRIVATE N_NIMCALL(void, genLit_AcnszMkIUvrpRfWF4iqy5g)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(NI, genLiteral_PEuKCZcy9a56kIfBOLoHU5Q)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameConstant_rlsxiOBKecP0t9crY75888g)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(NI, rawGenLiteral_PEuKCZcy9a56kIfBOLoHU5Q_2)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, canonValue_yXNCtNX5XyYFmGvoC2Ryfw)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genTypeLit_9a1Lon9cJzf9a69cj4KKhxzxrQ)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, NI* dest);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, newNode_PMZ27S9ai4FB3gXOMDXvwsQ)(tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw kind);
N_LIB_PRIVATE N_NIMCALL(void, genMagic_5VcHfJsVaWxnq3vvengJ7Q)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg m);
N_LIB_PRIVATE N_NIMCALL(void, genAndOr_blqV4B2MK6URSu9aJH4D71w)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc, NI* dest);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTemp_3YlwkOhvADs19cHhcnE9boYA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, NI dest);
N_LIB_PRIVATE N_NIMCALL(void, gen_KQ9csS06JMUvwHLxUYEy8rA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI dest, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(void, patch_Ej9bBLeYWuXsMMig9c4loqzw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, NI p);
N_LIB_PRIVATE N_NIMCALL(void, gABI_u2VxMEzYAC2GH9aMCRX5xhw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc, NI a, NI b, NI64 imm);
static N_INLINE(NI64, addInt64)(NI64 a, NI64 b);
N_LIB_PRIVATE N_NIMCALL(void, genAddSubInt_ZyWouE89b9cXkDK7i39aj0dwg)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isInt8Lit_ZWNdbTkHEJo2QqoHaEPxGA)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genNarrow_Cd5XCtdH6RMw63L9bPnNMXA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI dest);
N_NIMCALL(NI64, mulInt64)(NI64 a, NI64 b);
N_NIMCALL(NI64, chckRange64)(NI64 i, NI64 a, NI64 b);
static N_INLINE(void, unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI x);
N_LIB_PRIVATE N_NIMCALL(void, genAsgnPatch_j7RN6Eyu9arvNrSkBc4hNHw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, NI value);
N_LIB_PRIVATE N_NIMCALL(NI, genIndex_DPfOz7YYSBixDRy9cYPeZIA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* arr);
N_LIB_PRIVATE N_NIMCALL(NI64, firstOrd_4cSIntenL9aBXY6LAFsvXdQ)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(void, genCheckedObjAccessAux_6vrKVoM8aZ4Rjealu5DZbw_3)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(NI, genField_9a15qaQFBwMjo9b9byRZNZAHw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, getSysType_VcTNc9cK1Ftuh0MFwOC9c0Tg)(tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag kind);
N_LIB_PRIVATE N_NIMCALL(void, genNew_Y59crI4YgTHHCWclw3gn72A_2)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, needsAsgnPatch_ZWNdbTkHEJo2QqoHaEPxGA_2)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NI, genType_H4AMs0GuxljbeG3aMubkXA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameType_3isNyHKb0U1OCnClmflXSg)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* a, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* b, tySet_tyEnum_TTypeCmpFlag_72pgRXSg7774cr9aCWVPORw flags);
N_LIB_PRIVATE N_NIMCALL(void, genNewSeq_Y59crI4YgTHHCWclw3gn72A_3)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genNewSeqOfCap_AcnszMkIUvrpRfWF4iqy5g_2)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genUnaryABI_lrQcOjpJx3HtCx1aMMeDpw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc, NI64 imm);
N_LIB_PRIVATE N_NIMCALL(void, genSetType_gvhAyRL9bUcZODometR9bicw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI dest);
N_LIB_PRIVATE N_NIMCALL(void, genCard_AcnszMkIUvrpRfWF4iqy5g_3)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genBinaryABCnarrow_ZyWouE89b9cXkDK7i39aj0dwg_4)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genBinaryABCnarrowU_ZyWouE89b9cXkDK7i39aj0dwg_5)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genNarrowU_Cd5XCtdH6RMw63L9bPnNMXA_2)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI dest);
N_LIB_PRIVATE N_NIMCALL(void, genConv_3t9aH9c9bW3NlM77J0pxtz3hg)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* arg, NI* dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genBinarySet_ZyWouE89b9cXkDK7i39aj0dwg_6)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genVarargsABC_ZyWouE89b9cXkDK7i39aj0dwg_7)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(NI, getTempRange_ok9afQwIXe7dJAeeWPGODEA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* cc, NI n, tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ kind);
N_LIB_PRIVATE N_NIMCALL(void, freeTempRange_G85zfShWD6ECITDwyUUFLQ)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, NI start, NI n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, lowerSwap_8A4G64HByteFanrMUexmNw_2)(tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* owner);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ, ldNullOpcode_dZWW1z30r9beffMQ9bbGg9amA)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, skipConv_BH9abOhPX8pH0DnEWlRxmlw)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genBinaryStmtVar_K9aa9aabqu8dDUTWxwwkJdhg)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genBinaryABCD_ZyWouE89b9cXkDK7i39aj0dwg_8)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genVoidABC_bOxuqhoYZQ9cPtUccjLVwvA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opcode);
N_LIB_PRIVATE N_NIMCALL(void, genBinaryStmt_K9aa9aabqu8dDUTWxwwkJdhg_2)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genBindSym_AcnszMkIUvrpRfWF4iqy5g_4)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
static N_INLINE(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw**, X5BX5D__f6j2Rr9bpYzKO9bs9a65jNGYQsystem)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw** s, NI sLen_0, NI i);
N_LIB_PRIVATE N_NIMCALL(void, genCall_AcnszMkIUvrpRfWF4iqy5g_5)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
static N_INLINE(NIM_BOOL, isEmptyType_nPImuPGZIdcrAfCNyf4oxA_3ast)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(NI, len_eY4T6kWJb9a9aTWUufrTLjXg_2)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matches_52uSyG4N9c9cuGgSFhItwpgQ)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s, NimStringDesc** y, NI yLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genMarshalLoad_AcnszMkIUvrpRfWF4iqy5g_6)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genMarshalStore_AcnszMkIUvrpRfWF4iqy5g_7)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
static N_INLINE(void, clearDest_dfAz2NYFCQaf0gjeZoi5HAvmgen)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isInt16Lit_ZWNdbTkHEJo2QqoHaEPxGA_3)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genAsgn_441oTPupNGUtbMyisB9aUyA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, NIM_BOOL requiresCopy);
N_LIB_PRIVATE N_NIMCALL(void, preventFalseAlias_yPz2tNhzBdEEj9c49aHO2Gzw_2)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc, NI dest, NI idx, NI value);
N_LIB_PRIVATE N_NIMCALL(void, genObjAccess_6vrKVoM8aZ4Rjealu5DZbw_4)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(void, genCheckedObjAccess_6vrKVoM8aZ4Rjealu5DZbw_5)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(void, genArrAccess_6vrKVoM8aZ4Rjealu5DZbw_6)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(void, genArrAccess2_zgX4Kkrp9cJUdA7ZSHpwksQ)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(void, genDeref_6vrKVoM8aZ4Rjealu5DZbw_7)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, unneededIndirection_ZWNdbTkHEJo2QqoHaEPxGA_4)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genAddr_6vrKVoM8aZ4Rjealu5DZbw_8)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, canElimAddr_yXNCtNX5XyYFmGvoC2Ryfw_2)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, copyNode_Dsjo9bte8vGxzhtcSrsTyiQ)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* src);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isGlobal_ZWNdbTkHEJo2QqoHaEPxGA_5)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genIf_AcnszMkIUvrpRfWF4iqy5g_8)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isNotOpr_ZWNdbTkHEJo2QqoHaEPxGA_6)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genCase_AcnszMkIUvrpRfWF4iqy5g_9)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genWhile_Y59crI4YgTHHCWclw3gn72A_4)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NI, genLabel_ZRCO5A5eUGuEhpgXduomEQ)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c);
N_NIMCALL(void, genericSeqAssign)(void* dest, void* src, TNimType* mt);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTrue_ZWNdbTkHEJo2QqoHaEPxGA_7)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, jmpBack_fa43TdCtd4zzHAl8LQTOIA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI p);
N_LIB_PRIVATE N_NIMCALL(void, popBlock_NGVfQ2d0iTESw9bebNaFPyA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, NI oldLen);
N_LIB_PRIVATE N_NIMCALL(void, genBlock_AcnszMkIUvrpRfWF4iqy5g_10)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genReturn_Y59crI4YgTHHCWclw3gn72A_5)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genRaise_Y59crI4YgTHHCWclw3gn72A_6)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genBreak_Y59crI4YgTHHCWclw3gn72A_7)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genTry_AcnszMkIUvrpRfWF4iqy5g_11)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
static N_INLINE(NI, safeLen_P89cqdlERShb9alU3iC0yj8w_2ast)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genVarSection_Y59crI4YgTHHCWclw3gn72A_8)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, lowerTupleUnpacking_8A4G64HByteFanrMUexmNw)(tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* owner);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*, getOwner_ZAdOX9bNnuzwXclhv6dmGLg)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, newSymNode_I2DV2TmmOysY1ZEGW19b9bRg)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym);
N_LIB_PRIVATE N_NIMCALL(void, genArrayConstr_AcnszMkIUvrpRfWF4iqy5g_12)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ, whichAsgnOpc_Brn7pR8y7k7Rc1CrEqY0cQ)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genSetConstr_AcnszMkIUvrpRfWF4iqy5g_13)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genObjConstr_AcnszMkIUvrpRfWF4iqy5g_14)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genTupleConstr_AcnszMkIUvrpRfWF4iqy5g_15)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genCastIntFloat_AcnszMkIUvrpRfWF4iqy5g_16)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_NIMCALL(void, nimGCvisit)(void* d, NI op);
static N_NIMCALL(void, Marker_tyRef_oFMBe7mwLaHGO8Sa7lv49aw)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(NI64, getSize_vCG1GF2Iu043oALVyuJfOw)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
static N_INLINE(NI64, subInt64)(NI64 a, NI64 b);
N_LIB_PRIVATE N_CLOSURE(NI, mkIntLit_hDP0jgwejST6KBSJKiSeZg)(NI ival, void* ClE_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, newIntTypeNode_mZbgs79bpqpV9awU62kdPZ1A)(tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw kind, NI64 intVal, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(void, optimizeJumps_c4Ny4S2QTBXPlybhF7naeg)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, NI start);
N_LIB_PRIVATE N_NIMCALL(void, finalJumpTarget_itRVHu2VjfuWF9aKlZ4FY7A)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, NI pc, NI diff);
N_LIB_PRIVATE N_NIMCALL(void, removeLastEof_11BORrgbqmd0BtSK02pBqQ)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c);
extern TNimType NTI_9bAGqSvkAaFL9bWjsEPslrFA_;
extern tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ gch_IcYaEuuWivYAS86vFMTS3Q;
extern TNimType NTI_PJMRIt5QxCm6bRaVyQ5CGA_;
extern TNimType NTI_FM7mzTFsA8pyUhXVKKO6Gw_;
extern TNimType NTI_9a3YiReNVD0IJHWFKgXRe9ag_;
extern TNimType NTI_Ef05srmQTDulnBdXR4Ja6Q_;
extern TNimType NTI_shZhZOdbVC5nnFvcXQAImg_;
extern TNimType NTI_qwqHTkRvwhrRyENtudHQ7g_;
extern TNimType NTI_JokFGfUW6i9b6aeU7xu6xBw_;
extern TNimType NTI_ytyiCJqK439aF9cIibuRVpAg_;
TNimType NTI_S3egVycflujrSLBBVkrE6A_;
extern TNimType NTI_xHTZrq9aYs6boc9bCba0JbpQ_;
extern TNimType NTI_FD9cVFUpCDGxUmwW7TEZIFQ_;
extern TNimType NTI_fKfcLzXYiz5jNu3NH3Tv8Q_;
TNimType NTI_oFMBe7mwLaHGO8Sa7lv49aw_;
static NIM_CONST tySet_tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw TM_24XApAWKNvaMkcyklm8bNA_2 = {
0xEC, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_3, "sons", 4);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_7, "VM: immediate value does not fit into an int16", 46);
static NIM_CONST tySet_tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw TM_24XApAWKNvaMkcyklm8bNA_9 = {
0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_10, "sym", 3);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_16, "cannot evaluate at compile time: ", 33);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_17, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/vmgen.nim(1610, 10) `card(flags * "
"{gfNodeAddr, gfNode}) < 2` ", 154);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_18, "cannot \'importc\' variable at compile time; ", 43);
static NIM_CONST tySet_tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw TM_24XApAWKNvaMkcyklm8bNA_19 = {
0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_20, "strVal", 6);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_23, "cannot create null element for: ", 32);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_30, "VM problem: too many registers required", 39);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_32, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/vmgen.nim(119, 10) `opc.ord < 255`"
" ", 128);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_33, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/vmgen.nim(1621, 12) `s.typ != nil`"
" ", 128);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_34, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/vmgen.nim(926, 10) `t != nil` ", 123);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_35, "cannot generate code; too many registers required", 49);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_39, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/vmgen.nim", 102);
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_24XApAWKNvaMkcyklm8bNA_38 = {((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_39),
((NI) 1637),
((NI) 22)}
;
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_40, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/vmgen.nim(1454, 10) `dest >= 0` ", 125);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_43, "*", 1);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_45, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/vmgen.nim(1963, 16) `s.offset == -"
"1` ", 130);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_48, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/lib/system/iterators.nim(190, 11) `len(a) ="
"= L` the length of the seq changed while iterating over it", 185);
static NIM_CONST tySet_tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw TM_24XApAWKNvaMkcyklm8bNA_49 = {
0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_50, "ident", 5);
static NIM_CONST tySet_tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw TM_24XApAWKNvaMkcyklm8bNA_51 = {
0xE0, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_52, "intVal", 6);
static NIM_CONST tySet_tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw TM_24XApAWKNvaMkcyklm8bNA_53 = {
0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_54, "floatVal", 8);
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_24XApAWKNvaMkcyklm8bNA_57 = {((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_39),
((NI) 422),
((NI) 17)}
;
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_58, "cannot generate code for: ", 26);
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_24XApAWKNvaMkcyklm8bNA_60 = {((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_39),
((NI) 180),
((NI) 16)}
;
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_63, "VM: immediate value does not fit into an int8", 45);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_67, "not unused", 10);
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_24XApAWKNvaMkcyklm8bNA_69 = {((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_39),
((NI) 1680),
((NI) 17)}
;
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_24XApAWKNvaMkcyklm8bNA_71 = {((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_39),
((NI) 1692),
((NI) 17)}
;
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_72, "no field symbol", 15);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_73, "too large offset! cannot generate code for: ", 44);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_75, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/lib/system/iterators.nim(122, 11) `len(a) ="
"= L` the length of the seq changed while iterating over it", 185);
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_24XApAWKNvaMkcyklm8bNA_76 = {((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_39),
((NI) 495),
((NI) 16)}
;
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_108, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/vmgen.nim(931, 10) `t != nil` ", 123);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_111, "getType", 7);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_112, "typeKind", 8);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_113, "getTypeInst", 11);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_114, "getSize", 7);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_115, "getAlign", 8);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_116, "invalid bindSym usage", 21);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_125, "getFile", 7);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_126, "getLine", 7);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_127, "getColumn", 9);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_128, "copyLineInfo", 12);
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_24XApAWKNvaMkcyklm8bNA_129 = {((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_39),
((NI) 1306),
((NI) 21)}
;
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_24XApAWKNvaMkcyklm8bNA_130 = {((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_39),
((NI) 1309),
((NI) 25)}
;
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_24XApAWKNvaMkcyklm8bNA_132 = {((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_39),
((NI) 572),
((NI) 21)}
;
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_134, "expandToAst requires 1 argument", 31);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_135, "expandToAst requires a call expression", 38);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_136, "cannot evaluate \'sizeof/alignof\' because its type is not define"
"d completely", 75);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_137, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/vmgen.nim(1351, 12) `dest >= 0` ", 125);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_138, "cannot call method ", 19);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_139, " at compile time", 16);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_143, "stdlib", 6);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_144, "marshal", 7);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_145, "to", 2);
NIM_CONST tyArray_24KAM9afIUgUaqBaEBB6r9bg TM_24XApAWKNvaMkcyklm8bNA_142 = {((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_143),
((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_144),
((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_145)}
;
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_147, "$$", 2);
NIM_CONST tyArray_24KAM9afIUgUaqBaEBB6r9bg TM_24XApAWKNvaMkcyklm8bNA_146 = {((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_143),
((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_144),
((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_147)}
;
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_148, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/vmgen.nim(1510, 10) `n.typ != nil`"
" ", 128);
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_24XApAWKNvaMkcyklm8bNA_149 = {((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_39),
((NI) 1558),
((NI) 21)}
;
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_151, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/vmgen.nim(1561, 14) `le.typ != nil"
"` ", 129);
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_24XApAWKNvaMkcyklm8bNA_152 = {((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_39),
((NI) 1718),
((NI) 17)}
;
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_153, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/vmgen.nim(1448, 12) `n.typ != nil`"
" ", 128);
NIM_CONST struct {
  TGenericSeq Sup;
  NI data[0];
} TM_24XApAWKNvaMkcyklm8bNA_161 = {{0, 0 | NIM_STRLIT_FLAG}};
NIM_CONST tyObject_TBlock_2tJGcW69ahqq39a9bVJC1sqGQ TM_24XApAWKNvaMkcyklm8bNA_160 = {NIM_NIL, ((tySequence_qwqHTkRvwhrRyENtudHQ7g*)&TM_24XApAWKNvaMkcyklm8bNA_161)};
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_24XApAWKNvaMkcyklm8bNA_163 = {((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_39),
((NI) 172),
((NI) 16)}
;
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_168, "VM problem: cannot find \'break\' target", 38);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_170, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/vmgen.nim(514, 15) `it.sons[j].kin"
"d == nkType` ", 140);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_179, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/vmgen.nim(1827, 20) `sa.kind != nk"
"Call` ", 133);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_180, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/vmgen.nim(1841, 18) `s.typ != nil`"
" ", 128);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_181, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/vmgen.nim(1845, 18) `le.typ != nil"
"` ", 129);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_185, "invalid object constructor", 26);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_198, "VM is only allowed to \'cast\' between integers and/or floats of "
"same size", 72);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_199, "cannot generate VM code for ", 28);
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_24XApAWKNvaMkcyklm8bNA_210 = {((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_39),
((NI) 2160),
((NI) 16)}
;
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_223, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/vmgen.nim(2125, 12) `c.code.len =="
" c.debug.len` ", 141);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_224, "VM problem: dest register is not set", 36);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_225, "VM problem: dest register is set", 32);

static N_INLINE(NI, subInt)(NI a, NI b) {
	NI result;
{	result = (NI)0;
	result = (NI)((NU64)(a) - (NU64)(b));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) 0) <= (NI)(result ^ a));
		if (T3_) goto LA4_;
		T3_ = (((NI) 0) <= (NI)(result ^ (NI)((NU64) ~(b))));
		LA4_: ;
		if (!T3_) goto LA5_;
		goto BeforeRet_;
	}
	LA5_: ;
	raiseOverflow();
	}BeforeRet_: ;
	return result;
}

static N_INLINE(NI, chckRange)(NI i, NI a, NI b) {
	NI result;
{	result = (NI)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (a <= i);
		if (!(T3_)) goto LA4_;
		T3_ = (i <= b);
		LA4_: ;
		if (!T3_) goto LA5_;
		result = i;
		goto BeforeRet_;
	}
	goto LA1_;
	LA5_: ;
	{
		raiseRangeError(((NI64) (i)));
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}

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

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

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

static N_INLINE(void, decRef_AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c) {
	(*c).refcount = (NI)((NU64)((*c).refcount) - (NU64)(((NI) 8)));
	{
		if (!((NU64)((*c).refcount) < (NU64)(((NI) 8)))) goto LA3_;
		rtlAddZCT_AT1eRuflKWyTTBdLjEDZbg_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_QFQqcLB3lgOdwipkv9a60xwsystem(src);
		incRef_AT1eRuflKWyTTBdLjEDZbg_3system(T5_);
	}
	LA3_: ;
	{
		tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* T10_;
		if (!!(((*dest) == NIM_NIL))) goto LA8_;
		T10_ = (tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T10_ = usrToCell_QFQqcLB3lgOdwipkv9a60xwsystem((*dest));
		decRef_AT1eRuflKWyTTBdLjEDZbgsystem(T10_);
	}
	LA8_: ;
	(*dest) = src;
}

static N_INLINE(NI, addInt)(NI a, NI b) {
	NI result;
{	result = (NI)0;
	result = (NI)((NU64)(a) + (NU64)(b));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) 0) <= (NI)(result ^ a));
		if (T3_) goto LA4_;
		T3_ = (((NI) 0) <= (NI)(result ^ b));
		LA4_: ;
		if (!T3_) goto LA5_;
		goto BeforeRet_;
	}
	LA5_: ;
	raiseOverflow();
	}BeforeRet_: ;
	return result;
}

static N_INLINE(void, nimSetMem_zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memset(a, v, ((size_t) (size)));
}

static N_INLINE(void, nimZeroMem)(void* p, NI size) {
	nimSetMem_zxfKBYntu9cBapkhrCOk1fgmemory(p, ((int) 0), size);
}

static N_INLINE(NIM_BOOL, isCompileTimeProc_Ye2MiAptq3GrXxTQeyXNeA_4ast)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*s).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 17));
	if (T1_) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T3_ = ((*s).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 12));
	if (!(T3_)) goto LA4_;
	T3_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 24))&63U)))!=0);
	LA4_: ;
	T1_ = T3_;
	LA2_: ;
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, gABx_aNIPMIOfai9c7QJx79aStfDw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc, NI a, NI bx) {
	{
		NIM_BOOL T3_;
		NU32 ins;
		NI TM_24XApAWKNvaMkcyklm8bNA_6;
		NI T7_;
		NI T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) -32768) <= bx);
		if (!(T3_)) goto LA4_;
		T3_ = (bx <= ((NI) 32767));
		LA4_: ;
		if (!T3_) goto LA5_;
		TM_24XApAWKNvaMkcyklm8bNA_6 = addInt(bx, ((NI) 32768));
		ins = (NU32)((NU32)(((NU32) (opc)) | (NU32)((NU32)(((NU32) (a))) << (NU32)(((NU32) 8)))) | (NU32)((NU32)(((NU32)chckRangeU((NI)(TM_24XApAWKNvaMkcyklm8bNA_6), ((NU32) 0), ((NU32) IL64(4294967295))))) << (NU32)(((NU32) 16))));
		asgnRef((void**) (&(*c).code), (tySequence_9bAGqSvkAaFL9bWjsEPslrFA*) incrSeqV3((TGenericSeq*)((*c).code), (&NTI_9bAGqSvkAaFL9bWjsEPslrFA_)));
		T7_ = (*c).code->Sup.len++;
		(*c).code->data[T7_] = ins;
		asgnRef((void**) (&(*c).debug), (tySequence_PJMRIt5QxCm6bRaVyQ5CGA*) incrSeqV3((TGenericSeq*)((*c).debug), (&NTI_PJMRIt5QxCm6bRaVyQ5CGA_)));
		T8_ = (*c).debug->Sup.len++;
		(*c).debug->data[T8_] = (*n).info;
	}
	goto LA1_;
	LA5_: ;
	{
		localError_NF6kBGchnhQYPbCedyefVA((*c).config, (*n).info, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_7));
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(NI, xjmp_LLVWVnfPUz40PkTu6VMsfA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc, NI a) {
	NI result;
	NI T1_;
	result = (NI)0;
	T1_ = ((*c).code ? (*c).code->Sup.len : 0);
	result = T1_;
	gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, opc, a, ((NI) 0));
	return result;
}

static N_INLINE(void, nimGCunrefRC1)(void* p) {
	tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* T1_;
	T1_ = (tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
	T1_ = usrToCell_QFQqcLB3lgOdwipkv9a60xwsystem(p);
	decRef_AT1eRuflKWyTTBdLjEDZbgsystem(T1_);
}

static N_INLINE(NI, len_P89cqdlERShb9alU3iC0yj8wast)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	NI T1_;
	result = (NI)0;
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	T1_ = ((*n).sons ? (*n).sons->Sup.len : 0);
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genParams_yHS9cbYsE7NJ9b9appE7eVGpA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* params) {
	NIM_BOOL colontmp_;
	tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ colontmp__2;
	NI T4_;
	colontmp_ = NIM_TRUE;
	colontmp__2 = ((tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ) 1);
	(*(*c).prc).slots[(((NI) 0))- 0].Field0 = colontmp_;
	(*(*c).prc).slots[(((NI) 0))- 0].Field1 = colontmp__2;
	{
		NI i;
		NI colontmp__3;
		NI i_2;
		i = (NI)0;
		colontmp__3 = (NI)0;
		colontmp__3 = len_P89cqdlERShb9alU3iC0yj8wast(params);
		i_2 = ((NI) 1);
		{
			while (1) {
				NIM_BOOL colontmp__4;
				tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ colontmp__5;
				NI TM_24XApAWKNvaMkcyklm8bNA_8;
				if (!(i_2 < colontmp__3)) goto LA3;
				i = i_2;
				colontmp__4 = NIM_TRUE;
				colontmp__5 = ((tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ) 2);
				if ((NU)(i) > (NU)(255)) raiseIndexError2(i, 255);
				(*(*c).prc).slots[(i)- 0].Field0 = colontmp__4;
				(*(*c).prc).slots[(i)- 0].Field1 = colontmp__5;
				TM_24XApAWKNvaMkcyklm8bNA_8 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM_24XApAWKNvaMkcyklm8bNA_8);
			} LA3: ;
		}
	}
	T4_ = (NI)0;
	T4_ = len_P89cqdlERShb9alU3iC0yj8wast(params);
	(*(*c).prc).maxSlots = ((T4_ >= ((NI) 1)) ? T4_ : ((NI) 1));
}

N_LIB_PRIVATE N_NIMCALL(void, genGenericParams_4wahcx9bmpD7ffT1schyhBg)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* gp) {
	NI base;
	NI T4_;
	NI TM_24XApAWKNvaMkcyklm8bNA_14;
	base = (*(*c).prc).maxSlots;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len_P89cqdlERShb9alU3iC0yj8wast(gp);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* param;
				NI TM_24XApAWKNvaMkcyklm8bNA_11;
				NIM_BOOL colontmp__2;
				tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ colontmp__3;
				NI TM_24XApAWKNvaMkcyklm8bNA_12;
				NI TM_24XApAWKNvaMkcyklm8bNA_13;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*gp).kind)>>3] &(1U<<((NU)((*gp).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
				if ((NU)(i) >= (NU)((*gp).sons ? (*gp).sons->Sup.len : 0)) raiseIndexError2(i,((*gp).sons ? (*gp).sons->Sup.len : 0)-1);
				if (!(((TM_24XApAWKNvaMkcyklm8bNA_9[(NU)((*(*gp).sons->data[i]).kind)>>3] &(1U<<((NU)((*(*gp).sons->data[i]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_10));
				param = (*(*gp).sons->data[i]).sym;
				TM_24XApAWKNvaMkcyklm8bNA_11 = addInt(base, i);
				(*param).position = (NI)(TM_24XApAWKNvaMkcyklm8bNA_11);
				colontmp__2 = NIM_TRUE;
				colontmp__3 = ((tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ) 2);
				TM_24XApAWKNvaMkcyklm8bNA_12 = addInt(base, i);
				if ((NU)((NI)(TM_24XApAWKNvaMkcyklm8bNA_12)) > (NU)(255)) raiseIndexError2((NI)(TM_24XApAWKNvaMkcyklm8bNA_12), 255);
				(*(*c).prc).slots[((NI)(TM_24XApAWKNvaMkcyklm8bNA_12))- 0].Field0 = colontmp__2;
				(*(*c).prc).slots[((NI)(TM_24XApAWKNvaMkcyklm8bNA_12))- 0].Field1 = colontmp__3;
				TM_24XApAWKNvaMkcyklm8bNA_13 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM_24XApAWKNvaMkcyklm8bNA_13);
			} LA3: ;
		}
	}
	T4_ = (NI)0;
	T4_ = len_P89cqdlERShb9alU3iC0yj8wast(gp);
	TM_24XApAWKNvaMkcyklm8bNA_14 = addInt(base, T4_);
	(*(*c).prc).maxSlots = (NI)(TM_24XApAWKNvaMkcyklm8bNA_14);
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isOwnedBy_WuAduAQ6byDbQit0bpfaag)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* a, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* b) {
	NIM_BOOL result;
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* a_2;
{	result = (NIM_BOOL)0;
	a_2 = (*a).owner;
	{
		while (1) {
			NIM_BOOL T3_;
			T3_ = (NIM_BOOL)0;
			T3_ = !((a_2 == NIM_NIL));
			if (!(T3_)) goto LA4_;
			T3_ = !(((*a_2).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 6)));
			LA4_: ;
			if (!T3_) goto LA2;
			{
				if (!(a_2 == b)) goto LA7_;
				result = NIM_TRUE;
				goto BeforeRet_;
			}
			LA7_: ;
			a_2 = (*a_2).owner;
		} LA2: ;
	}
	}BeforeRet_: ;
	return result;
}

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

static N_INLINE(void, copyMem_i80o3k0SgEI5gTRCzYdyWAsystem)(void* dest, void* source, NI size) {
	nimCopyMem(dest, source, size);
}

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

N_LIB_PRIVATE N_NOINLINE(void, cannotEval_L6IV9bRZsmwjQ509b9cpS01RQ)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NimStringDesc* T1_;
	NimStringDesc* T2_;
	T1_ = (NimStringDesc*)0;
	T2_ = (NimStringDesc*)0;
	T2_ = renderTree_ppjdh9aQ5L0SGPF8yz1gZ9cA(n, 0);
	T1_ = rawNewString((T2_ ? T2_->Sup.len : 0) + 33);
appendString(T1_, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_16));
appendString(T1_, T2_);
	globalError_NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, T1_);
}

N_LIB_PRIVATE N_NIMCALL(void, checkCanEval_Y59crI4YgTHHCWclw3gn72A)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s;
{	if (!(((TM_24XApAWKNvaMkcyklm8bNA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_10));
	s = (*n).sym;
	{
		if (!((16777224 & ~ (*s).flags)==0)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		NIM_BOOL T7_;
		NIM_BOOL T8_;
		NIM_BOOL T9_;
		NIM_BOOL T11_;
		T7_ = (NIM_BOOL)0;
		T8_ = (NIM_BOOL)0;
		T9_ = (NIM_BOOL)0;
		T9_ = ((2856 &(1U<<((NU)((*s).kind)&31U)))!=0);
		if (!(T9_)) goto LA10_;
		T11_ = (NIM_BOOL)0;
		T11_ = isOwnedBy_WuAduAQ6byDbQit0bpfaag(s, (*(*c).prc).sym);
		T9_ = !(T11_);
		LA10_: ;
		T8_ = T9_;
		if (!(T8_)) goto LA12_;
		T8_ = !(((*s).owner == (*c).module));
		LA12_: ;
		T7_ = T8_;
		if (!(T7_)) goto LA13_;
		T7_ = !(((*c).mode == ((tyEnum_TEvalMode_UbrbHUpo4hYFr1DbYzJgRQ) 0)));
		LA13_: ;
		if (!T7_) goto LA14_;
		cannotEval_L6IV9bRZsmwjQ509b9cpS01RQ(c, n);
	}
	goto LA5_;
	LA14_: ;
	{
		NIM_BOOL T17_;
		T17_ = (NIM_BOOL)0;
		T17_ = ((126976 &(1U<<((NU)((*s).kind)&31U)))!=0);
		if (!(T17_)) goto LA18_;
		T17_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 4))&63U)))!=0);
		LA18_: ;
		if (!T17_) goto LA19_;
		cannotEval_L6IV9bRZsmwjQ509b9cpS01RQ(c, n);
	}
	goto LA5_;
	LA19_: ;
	LA5_: ;
	}BeforeRet_: ;
}

static N_INLINE(NIM_BOOL, importcCond_FdCkMWi1o9ccnUFjzZDi9aUgvmgen)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 5))&63U)))!=0);
	if (!(T1_)) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T3_ = !((((*s).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 4))&15U)))!=0));
	if (T3_) goto LA4_;
	T3_ = ((*s).ast == NIM_NIL);
	LA4_: ;
	T1_ = T3_;
	LA2_: ;
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, importcSym_tceHaTARuJZVYNYoyPbsEA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s) {
	NimStringDesc* T1_;
	T1_ = (NimStringDesc*)0;
	T1_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 43);
appendString(T1_, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_18));
appendString(T1_, (*(*s).name).s);
	localError_NF6kBGchnhQYPbCedyefVA((*c).config, info, T1_);
}

N_LIB_PRIVATE N_NIMCALL(void, getNullValueAux_fzmWyera9aMY9cWza4CIFH6g)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* obj, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf) {
	switch ((*obj).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 138):
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(obj);
			i_2 = ((NI) 0);
			{
				while (1) {
					NI TM_24XApAWKNvaMkcyklm8bNA_21;
					if (!(i_2 < colontmp_)) goto LA4;
					i = i_2;
					if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*obj).kind)>>3] &(1U<<((NU)((*obj).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
					if ((NU)(i) >= (NU)((*obj).sons ? (*obj).sons->Sup.len : 0)) raiseIndexError2(i,((*obj).sons ? (*obj).sons->Sup.len : 0)-1);
					getNullValueAux_fzmWyera9aMY9cWza4CIFH6g((*obj).sons->data[i], result, conf);
					TM_24XApAWKNvaMkcyklm8bNA_21 = addInt(i_2, ((NI) 1));
					i_2 = (NI)(TM_24XApAWKNvaMkcyklm8bNA_21);
				} LA4: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 139):
	{
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*obj).kind)>>3] &(1U<<((NU)((*obj).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*obj).sons ? (*obj).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*obj).sons ? (*obj).sons->Sup.len : 0)-1);
		getNullValueAux_fzmWyera9aMY9cWza4CIFH6g((*obj).sons->data[((NI) 0)], result, conf);
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(obj);
			i_4 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T9_;
					NI TM_24XApAWKNvaMkcyklm8bNA_22;
					if (!(i_4 < colontmp__2)) goto LA8;
					i_3 = i_4;
					if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*obj).kind)>>3] &(1U<<((NU)((*obj).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
					if ((NU)(i_3) >= (NU)((*obj).sons ? (*obj).sons->Sup.len : 0)) raiseIndexError2(i_3,((*obj).sons ? (*obj).sons->Sup.len : 0)-1);
					T9_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
					T9_ = lastSon_UPSW0jLTX5qJL51YMUAHgw((*obj).sons->data[i_3]);
					getNullValueAux_fzmWyera9aMY9cWza4CIFH6g(T9_, result, conf);
					TM_24XApAWKNvaMkcyklm8bNA_22 = addInt(i_4, ((NI) 1));
					i_4 = (NI)(TM_24XApAWKNvaMkcyklm8bNA_22);
				} LA8: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* field;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T11_;
		field = newNodeI_vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 34), (*result).info);
		add_P8dDSotTW25BkfbyspojGg(field, obj);
		if (!(((TM_24XApAWKNvaMkcyklm8bNA_9[(NU)((*obj).kind)>>3] &(1U<<((NU)((*obj).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_10));
		T11_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		T11_ = getNullValue_MirnaGAtIj7Yo4Gl5MzUxA((*(*obj).sym).typ, (*result).info, conf);
		add_P8dDSotTW25BkfbyspojGg(field, T11_);
		addSon_P8dDSotTW25BkfbyspojGg_2(result, field);
	}
	break;
	default:
	{
		NimStringDesc* T13_;
		NimStringDesc* T14_;
		T13_ = (NimStringDesc*)0;
		T14_ = (NimStringDesc*)0;
		T14_ = dollar__qX5C9b0n9bOP7jk69amC8dA7A(obj);
		T13_ = rawNewString((T14_ ? T14_->Sup.len : 0) + 32);
appendString(T13_, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_23));
appendString(T13_, T14_);
		globalError_NF6kBGchnhQYPbCedyefVA_2(conf, (*result).info, T13_);
	}
	break;
	}
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, getNullValue_MirnaGAtIj7Yo4Gl5MzUxA)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	t = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(typ, IL64(1189055854743169040));
	switch ((*t).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 1):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 14):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 35):
	{
		result = newNodeIT_2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 6), info, t);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 40) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44):
	{
		result = newNodeIT_2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 11), info, t);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 39):
	{
		result = newNodeIT_2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 16), info, t);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 29):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
	{
		result = newNodeIT_2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20), info, t);
		if (!(((TM_24XApAWKNvaMkcyklm8bNA_19[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_20));
		asgnRef((void**) (&(*result).strVal), ((NimStringDesc*) NIM_NIL));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 47):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 26):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 6):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 7):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 8):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 5):
	{
		result = newNodeIT_2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 23), info, t);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25):
	{
		{
			if (!!(((*t).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8)))) goto LA9_;
			result = newNodeIT_2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 23), info, t);
		}
		goto LA7_;
		LA9_: ;
		{
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T12_;
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T13_;
			result = newNodeIT_2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 160), info, t);
			T12_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
			T12_ = newNodeIT_2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 23), info, t);
			add_P8dDSotTW25BkfbyspojGg(result, T12_);
			T13_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
			T13_ = newNodeIT_2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 23), info, t);
			add_P8dDSotTW25BkfbyspojGg(result, T13_);
		}
		LA7_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T15_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* base;
		result = newNodeIT_2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 38), info, t);
		T15_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		T15_ = newNodeIT_2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1), info, t);
		add_P8dDSotTW25BkfbyspojGg(result, T15_);
		if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
		base = (*t).sons->data[((NI) 0)];
		{
			while (1) {
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* b;
				if (!!((base == NIM_NIL))) goto LA17;
				b = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(base, IL64(36275087638268176));
				getNullValueAux_fzmWyera9aMY9cWza4CIFH6g((*b).n, result, conf);
				if ((NU)(((NI) 0)) >= (NU)((*b).sons ? (*b).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*b).sons ? (*b).sons->Sup.len : 0)-1);
				base = (*b).sons->data[((NI) 0)];
			} LA17: ;
		}
		getNullValueAux_fzmWyera9aMY9cWza4CIFH6g((*t).n, result, conf);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
	{
		result = newNodeIT_2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 41), info, t);
		{
			NI i;
			NI colontmp_;
			NI64 T20_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			T20_ = (NI64)0;
			T20_ = lengthOrd_4cSIntenL9aBXY6LAFsvXdQ_2(conf, t);
			colontmp_ = ((NI) (T20_));
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T23_;
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T24_;
					NI TM_24XApAWKNvaMkcyklm8bNA_24;
					if (!(i_2 < colontmp_)) goto LA22;
					i = i_2;
					T23_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T23_ = elemType_PfgI9ap7WOnsRfFV4znQ27w_2(t);
					T24_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
					T24_ = getNullValue_MirnaGAtIj7Yo4Gl5MzUxA(T23_, info, conf);
					addSon_P8dDSotTW25BkfbyspojGg_2(result, T24_);
					TM_24XApAWKNvaMkcyklm8bNA_24 = addInt(i_2, ((NI) 1));
					i_2 = (NI)(TM_24XApAWKNvaMkcyklm8bNA_24);
				} LA22: ;
			}
		}
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		result = newNodeIT_2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 160), info, t);
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = sonsLen_eY4T6kWJb9a9aTWUufrTLjXg(t);
			i_4 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T29_;
					NI TM_24XApAWKNvaMkcyklm8bNA_25;
					if (!(i_4 < colontmp__2)) goto LA28;
					i_3 = i_4;
					if ((NU)(i_3) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(i_3,((*t).sons ? (*t).sons->Sup.len : 0)-1);
					T29_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
					T29_ = getNullValue_MirnaGAtIj7Yo4Gl5MzUxA((*t).sons->data[i_3], info, conf);
					addSon_P8dDSotTW25BkfbyspojGg_2(result, T29_);
					TM_24XApAWKNvaMkcyklm8bNA_25 = addInt(i_4, ((NI) 1));
					i_4 = (NI)(TM_24XApAWKNvaMkcyklm8bNA_25);
				} LA28: ;
			}
		}
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 19):
	{
		result = newNodeIT_2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 39), info, t);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 62):
	{
		result = newNodeIT_2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 23), info, t);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
	{
		result = newNodeIT_2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 41), info, t);
	}
	break;
	default:
	{
		NimStringDesc* T34_;
		T34_ = (NimStringDesc*)0;
		T34_ = rawNewString((reprEnum((NI)(*t).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*t).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 32);
appendString(T34_, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_23));
appendString(T34_, reprEnum((NI)(*t).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
		globalError_NF6kBGchnhQYPbCedyefVA_2(conf, info, T34_);
		result = newNodeI_vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1), info);
	}
	break;
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ, getSlotKind_cS3cqzC9bnfHG9bzCIeP3QaA)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	result = (tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ)0;
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(36134350136322064));
	switch ((*T1_).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 1):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 14):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 15):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 35):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 40) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44):
	{
		result = ((tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ) 4);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 29):
	{
		result = ((tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ) 6);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 39):
	{
		result = ((tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ) 5);
	}
	break;
	default:
	{
		result = ((tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ) 7);
	}
	break;
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q, bestEffort_LqSnLt7G00hwvGEFOVVFfw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c) {
	tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q result;
	nimZeroMem((void*)(&result), sizeof(tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*c).prc == NIM_NIL));
		if (!(T3_)) goto LA4_;
		T3_ = !(((*(*c).prc).sym == NIM_NIL));
		LA4_: ;
		if (!T3_) goto LA5_;
		result = (*(*(*c).prc).sym).info;
	}
	goto LA1_;
	LA5_: ;
	{
		result = (*(*c).module).info;
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NI, getTemp_LRjzFZg4NHLjhn9bcZYMCiw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* cc, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* tt) {
	NI result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
	tyObject_PProccolonObjectType__VFEBuxrDHC6kHPzc1TWaRQ* c;
	tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ k;
	NIM_BOOL colontmp__5;
	tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ colontmp__6;
	NI TM_24XApAWKNvaMkcyklm8bNA_31;
{	result = (NI)0;
	typ = skipTypesOrNil_zsqmUNR5OZrTUna0Y9bdu9bg_2(tt, IL64(1152921504606846976));
	c = (*cc).prc;
	{
		if (!(typ == 0)) goto LA3_;
		k = ((tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ) 7);
	}
	goto LA1_;
	LA3_: ;
	{
		k = getSlotKind_cS3cqzC9bnfHG9bzCIeP3QaA(typ);
	}
	LA1_: ;
	{
		NI i;
		NI colontmp_;
		NI TM_24XApAWKNvaMkcyklm8bNA_26;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		TM_24XApAWKNvaMkcyklm8bNA_26 = subInt((*c).maxSlots, ((NI) 1));
		colontmp_ = (NI)(TM_24XApAWKNvaMkcyklm8bNA_26);
		res = ((NI) 0);
		{
			while (1) {
				NI TM_24XApAWKNvaMkcyklm8bNA_27;
				if (!(res <= colontmp_)) goto LA8;
				i = res;
				{
					NIM_BOOL T11_;
					T11_ = (NIM_BOOL)0;
					if ((NU)(i) > (NU)(255)) raiseIndexError2(i, 255);
					T11_ = ((*c).slots[(i)- 0].Field1 == k);
					if (!(T11_)) goto LA12_;
					if ((NU)(i) > (NU)(255)) raiseIndexError2(i, 255);
					T11_ = !((*c).slots[(i)- 0].Field0);
					LA12_: ;
					if (!T11_) goto LA13_;
					if ((NU)(i) > (NU)(255)) raiseIndexError2(i, 255);
					(*c).slots[(i)- 0].Field0 = NIM_TRUE;
					result = ((NI)chckRange(i, ((NI) 0), ((NI) 255)));
					goto BeforeRet_;
				}
				LA13_: ;
				TM_24XApAWKNvaMkcyklm8bNA_27 = addInt(res, ((NI) 1));
				res = (NI)(TM_24XApAWKNvaMkcyklm8bNA_27);
			} LA8: ;
		}
	}
	{
		NIM_BOOL T17_;
		T17_ = (NIM_BOOL)0;
		T17_ = (((NI) 40) <= (*c).maxSlots);
		if (!(T17_)) goto LA18_;
		T17_ = NIM_FALSE;
		LA18_: ;
		if (!T17_) goto LA19_;
		{
			NI i_2;
			NI colontmp__2;
			NI TM_24XApAWKNvaMkcyklm8bNA_28;
			NI res_2;
			i_2 = (NI)0;
			colontmp__2 = (NI)0;
			TM_24XApAWKNvaMkcyklm8bNA_28 = subInt((*c).maxSlots, ((NI) 1));
			colontmp__2 = (NI)(TM_24XApAWKNvaMkcyklm8bNA_28);
			res_2 = ((NI) 0);
			{
				while (1) {
					NI TM_24XApAWKNvaMkcyklm8bNA_29;
					if (!(res_2 <= colontmp__2)) goto LA23;
					i_2 = res_2;
					{
						NIM_BOOL colontmp__3;
						tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ colontmp__4;
						if ((NU)(i_2) > (NU)(255)) raiseIndexError2(i_2, 255);
						if (!!((*c).slots[(i_2)- 0].Field0)) goto LA26_;
						colontmp__3 = NIM_TRUE;
						colontmp__4 = k;
						if ((NU)(i_2) > (NU)(255)) raiseIndexError2(i_2, 255);
						(*c).slots[(i_2)- 0].Field0 = colontmp__3;
						(*c).slots[(i_2)- 0].Field1 = colontmp__4;
						result = ((NI)chckRange(i_2, ((NI) 0), ((NI) 255)));
						goto BeforeRet_;
					}
					LA26_: ;
					TM_24XApAWKNvaMkcyklm8bNA_29 = addInt(res_2, ((NI) 1));
					res_2 = (NI)(TM_24XApAWKNvaMkcyklm8bNA_29);
				} LA23: ;
			}
		}
	}
	LA19_: ;
	{
		tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q T32_;
		if (!(((NI) 255) <= (*c).maxSlots)) goto LA30_;
		T32_ = bestEffort_LqSnLt7G00hwvGEFOVVFfw(cc);
		globalError_NF6kBGchnhQYPbCedyefVA_2((*cc).config, T32_, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_30));
	}
	LA30_: ;
	result = ((NI)chckRange((*c).maxSlots, ((NI) 0), ((NI) 255)));
	colontmp__5 = NIM_TRUE;
	colontmp__6 = k;
	if ((NU)((*c).maxSlots) > (NU)(255)) raiseIndexError2((*c).maxSlots, 255);
	(*c).slots[((*c).maxSlots)- 0].Field0 = colontmp__5;
	(*c).slots[((*c).maxSlots)- 0].Field1 = colontmp__6;
	TM_24XApAWKNvaMkcyklm8bNA_31 = addInt((*c).maxSlots, ((NI) 1));
	(*c).maxSlots = (NI)(TM_24XApAWKNvaMkcyklm8bNA_31);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NI, genx_CcIHODsUfIZ32Dw7elmEjQ)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags) {
	NI result;
	NI tmp;
	result = (NI)0;
	tmp = ((NI) -1);
	gen_6vrKVoM8aZ4Rjealu5DZbw(c, n, (&tmp), flags);
	{
		if (!(((NI) 0) <= ((NI) (tmp)))) goto LA3_;
		result = ((NI)chckRange(tmp, ((NI) 0), ((NI) 255)));
	}
	LA3_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, gABC_G2IxRmwmQahHciEYmnYxxg)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* ctx, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc, NI a, NI b, NI c) {
	NU32 ins;
	NI T5_;
	NI T6_;
	{
		if (!!((opc < ((NI) 255)))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_32));
	}
	LA3_: ;
	ins = (NU32)((NU32)((NU32)(((NU32) (opc)) | (NU32)((NU32)(((NU32) (a))) << (NU32)(((NU32) 8)))) | (NU32)((NU32)(((NU32) (b))) << (NU32)(((NU32) 16)))) | (NU32)((NU32)(((NU32) (c))) << (NU32)(((NU32) 24))));
	asgnRef((void**) (&(*ctx).code), (tySequence_9bAGqSvkAaFL9bWjsEPslrFA*) incrSeqV3((TGenericSeq*)((*ctx).code), (&NTI_9bAGqSvkAaFL9bWjsEPslrFA_)));
	T5_ = (*ctx).code->Sup.len++;
	(*ctx).code->data[T5_] = ins;
	asgnRef((void**) (&(*ctx).debug), (tySequence_PJMRIt5QxCm6bRaVyQ5CGA*) incrSeqV3((TGenericSeq*)((*ctx).debug), (&NTI_PJMRIt5QxCm6bRaVyQ5CGA_)));
	T6_ = (*ctx).debug->Sup.len++;
	(*ctx).debug->data[T6_] = (*n).info;
}

N_LIB_PRIVATE N_NIMCALL(tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ, whichAsgnOpc_Qj2d7lDNNqHtRVhBO4JPQg)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	result = (tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)0;
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36134350136322064));
	switch ((*T1_).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 1):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 14):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 15):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 35):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 40) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44):
	{
		result = ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 4);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 29):
	{
		result = ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 5);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 39):
	{
		result = ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 6);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 5):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 47):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21):
	{
		result = ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 7);
	}
	break;
	default:
	{
		result = ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 12);
	}
	break;
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, freeTemp_1nMAqbaMl87FxWu2gyhzog)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, NI r) {
	tyObject_PProccolonObjectType__VFEBuxrDHC6kHPzc1TWaRQ* c_2;
	c_2 = (*c).prc;
	{
		if (!((248 &(1U<<((NU)((*c_2).slots[(r)- 0].Field1)&15U)))!=0)) goto LA3_;
		(*c_2).slots[(r)- 0].Field0 = NIM_FALSE;
	}
	LA3_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genAdditionalCopy_yPz2tNhzBdEEj9c49aHO2Gzw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc, NI dest, NI idx, NI value) {
	NI cc;
	tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ T1_;
	cc = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
	T1_ = (tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)0;
	T1_ = whichAsgnOpc_Qj2d7lDNNqHtRVhBO4JPQg(n);
	gABC_G2IxRmwmQahHciEYmnYxxg(c, n, T1_, cc, value, ((NI) 0));
	gABC_G2IxRmwmQahHciEYmnYxxg(c, n, opc, dest, idx, cc);
	freeTemp_1nMAqbaMl87FxWu2gyhzog(c, cc);
}

N_LIB_PRIVATE N_NIMCALL(void, genGlobalInit_3QrY9bRL3HpccYFScnTUsdQ)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T1_;
	NI dest;
	T1_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = getNullValue_MirnaGAtIj7Yo4Gl5MzUxA((*s).typ, (*n).info, (*c).config);
	add_P8dDSotTW25BkfbyspojGg((*c).globals, T1_);
	(*s).position = len_P89cqdlERShb9alU3iC0yj8wast((*c).globals);
	dest = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*s).typ);
	gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 169), dest, (*s).position);
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T4_;
		NI tmp;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T7_;
		T4_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		T4_ = astdef_PBkjYIaAGbtrZ8DiUArHcw(s);
		if (!!((T4_ == NIM_NIL))) goto LA5_;
		T7_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		T7_ = astdef_PBkjYIaAGbtrZ8DiUArHcw(s);
		tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, T7_, 0);
		genAdditionalCopy_yPz2tNhzBdEEj9c49aHO2Gzw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 21), dest, ((NI) 0), tmp);
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, dest);
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp);
	}
	LA5_: ;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, fitsRegister_NRltpJT49cakdDyz9a9cNr4Kw)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	NIM_BOOL result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T5_;
	result = (NIM_BOOL)0;
	{
		if (!!(!((t == NIM_NIL)))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_34));
	}
	LA3_: ;
	T5_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T5_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(36134350135273488));
	result = ((IL64(35182225670150) &((NU64)1<<((NU)((*T5_).kind)&63U)))!=0);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, setSlot_wdPbhGpyRtpS49bqSwMfggA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* v) {
	{
		NIM_BOOL colontmp_;
		tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ colontmp__2;
		NI TM_24XApAWKNvaMkcyklm8bNA_36;
		if (!((*v).position == ((NI) 0))) goto LA3_;
		{
			if (!((*(*c).prc).maxSlots == ((NI) 0))) goto LA7_;
			(*(*c).prc).maxSlots = ((NI) 1);
		}
		LA7_: ;
		{
			if (!(((NI) 255) <= (*(*c).prc).maxSlots)) goto LA11_;
			globalError_NF6kBGchnhQYPbCedyefVA_2((*c).config, (*v).info, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_35));
		}
		LA11_: ;
		(*v).position = (*(*c).prc).maxSlots;
		colontmp_ = NIM_TRUE;
		{
			if (!((*v).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 9))) goto LA15_;
			colontmp__2 = ((tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ) 2);
		}
		goto LA13_;
		LA15_: ;
		{
			colontmp__2 = ((tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ) 1);
		}
		LA13_: ;
		if ((NU)((*v).position) > (NU)(255)) raiseIndexError2((*v).position, 255);
		(*(*c).prc).slots[((*v).position)- 0].Field0 = colontmp_;
		(*(*c).prc).slots[((*v).position)- 0].Field1 = colontmp__2;
		TM_24XApAWKNvaMkcyklm8bNA_36 = addInt((*(*c).prc).maxSlots, ((NI) 1));
		(*(*c).prc).maxSlots = (NI)(TM_24XApAWKNvaMkcyklm8bNA_36);
	}
	LA3_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genAsgn_9c4eyEUpcv8lGnjrHcs6fgw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, NI dest, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, NIM_BOOL requiresCopy) {
	NI tmp;
	tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ T5_;
	NI TM_24XApAWKNvaMkcyklm8bNA_41;
	tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, ri, 0);
	{
		if (!!((((NI) 0) <= ((NI) (dest))))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_40));
	}
	LA3_: ;
	T5_ = (tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)0;
	T5_ = whichAsgnOpc_Qj2d7lDNNqHtRVhBO4JPQg(ri);
	TM_24XApAWKNvaMkcyklm8bNA_41 = subInt(((NI) 1), requiresCopy);
	gABC_G2IxRmwmQahHciEYmnYxxg(c, ri, T5_, ((NI)chckRange(dest, ((NI) 0), ((NI) 255))), tmp, ((NI)chckRange((NI)(TM_24XApAWKNvaMkcyklm8bNA_41), ((NI) 0), ((NI) 255))));
	freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp);
}

N_LIB_PRIVATE N_NIMCALL(void, genRdVar_6vrKVoM8aZ4Rjealu5DZbw_2)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags) {
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s;
	{
		if (!!((countBits32((flags & 3)) < ((NI) 2)))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_17));
	}
	LA3_: ;
	if (!(((TM_24XApAWKNvaMkcyklm8bNA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_10));
	s = (*n).sym;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0);
		if (!(T7_)) goto LA8_;
		T7_ = !(((*s).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 21)));
		LA8_: ;
		if (!T7_) goto LA9_;
		{
			NIM_BOOL T13_;
			T13_ = (NIM_BOOL)0;
			T13_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 24))&63U)))!=0);
			if (T13_) goto LA14_;
			T13_ = ((*c).mode == ((tyEnum_TEvalMode_UbrbHUpo4hYFr1DbYzJgRQ) 0));
			LA14_: ;
			if (!T13_) goto LA15_;
		}
		goto LA11_;
		LA15_: ;
		{
			if (!((*s).position == ((NI) 0))) goto LA18_;
			cannotEval_L6IV9bRZsmwjQ509b9cpS01RQ(c, n);
		}
		goto LA11_;
		LA18_: ;
		LA11_: ;
		{
			if (!((*s).position == ((NI) 0))) goto LA22_;
			{
				NIM_BOOL T26_;
				T26_ = (NIM_BOOL)0;
				T26_ = importcCond_FdCkMWi1o9ccnUFjzZDi9aUgvmgen(s);
				if (!T26_) goto LA27_;
				importcSym_tceHaTARuJZVYNYoyPbsEA(c, (*n).info, s);
			}
			goto LA24_;
			LA27_: ;
			{
				genGlobalInit_3QrY9bRL3HpccYFScnTUsdQ(c, n, s);
			}
			LA24_: ;
		}
		LA22_: ;
		{
			NI T34_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA32_;
			T34_ = (NI)0;
			T34_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T34_));
		}
		LA32_: ;
		{
			if (!!(!(((*s).typ == NIM_NIL)))) goto LA37_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_33));
		}
		LA37_: ;
		{
			if (!((flags &(1U<<((NU)(((tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ) 1))&7U)))!=0)) goto LA41_;
			gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 170), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), (*s).position);
		}
		goto LA39_;
		LA41_: ;
		{
			NIM_BOOL T44_;
			NI cc;
			T44_ = (NIM_BOOL)0;
			T44_ = fitsRegister_NRltpJT49cakdDyz9a9cNr4Kw((*s).typ);
			if (!(T44_)) goto LA45_;
			T44_ = !(((flags &(1U<<((NU)(((tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ) 0))&7U)))!=0));
			LA45_: ;
			if (!T44_) goto LA46_;
			cc = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 169), cc, (*s).position);
			gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 13), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), cc, ((NI) 0));
			freeTemp_1nMAqbaMl87FxWu2gyhzog(c, cc);
		}
		goto LA39_;
		LA46_: ;
		{
			gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 169), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), (*s).position);
		}
		LA39_: ;
	}
	goto LA5_;
	LA9_: ;
	{
		{
			NIM_BOOL T52_;
			T52_ = (NIM_BOOL)0;
			T52_ = ((*s).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 21));
			if (!(T52_)) goto LA53_;
			T52_ = ((*c).mode == ((tyEnum_TEvalMode_UbrbHUpo4hYFr1DbYzJgRQ) 0));
			LA53_: ;
			if (!T52_) goto LA54_;
			setSlot_wdPbhGpyRtpS49bqSwMfggA(c, s);
		}
		LA54_: ;
		{
			NIM_BOOL T58_;
			NIM_BOOL T60_;
			T58_ = (NIM_BOOL)0;
			T58_ = (((NI) 0) < (*s).position);
			if (T58_) goto LA59_;
			T60_ = (NIM_BOOL)0;
			T60_ = ((*s).position == ((NI) 0));
			if (!(T60_)) goto LA61_;
			T60_ = ((2056 &(1U<<((NU)((*s).kind)&31U)))!=0);
			LA61_: ;
			T58_ = T60_;
			LA59_: ;
			if (!T58_) goto LA62_;
			{
				NI TM_24XApAWKNvaMkcyklm8bNA_37;
				if (!(((NI) ((*dest))) < ((NI) 0))) goto LA66_;
				TM_24XApAWKNvaMkcyklm8bNA_37 = addInt((*s).position, ((*s).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 3)));
				(*dest) = ((NI)chckRange((NI)(TM_24XApAWKNvaMkcyklm8bNA_37), ((NI) -1), ((NI) 255)));
				{
					NimStringDesc* T72_;
					if ((NU)((*dest)) > (NU)(255)) raiseIndexError2((*dest), 255);
					if (!!(((*(*c).prc).slots[((*dest))- 0].Field1 < ((tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ) 3)))) goto LA70_;
					T72_ = (NimStringDesc*)0;
					T72_ = dollar__r38WafKlW80RkvoZTcia4Q(TM_24XApAWKNvaMkcyklm8bNA_38);
					internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T72_);
				}
				LA70_: ;
			}
			goto LA64_;
			LA66_: ;
			{
				if ((NU)((*dest)) > (NU)(255)) raiseIndexError2((*dest), 255);
				genAsgn_9c4eyEUpcv8lGnjrHcs6fgw(c, (*dest), n, (((tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ) 3) <= (*(*c).prc).slots[((*dest))- 0].Field1));
			}
			LA64_: ;
		}
		goto LA56_;
		LA62_: ;
		{
			cannotEval_L6IV9bRZsmwjQ509b9cpS01RQ(c, n);
		}
		LA56_: ;
	}
	LA5_: ;
}

static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size) {
	int result;
	result = (int)0;
	result = memcmp(a, b, ((size_t) (size)));
	return result;
}

static N_INLINE(NIM_BOOL, equalMem_9bGgqEk7RXXl6eqM9c1HdELAsystem)(void* a, void* b, NI size) {
	NIM_BOOL result;
	int T1_;
	result = (NIM_BOOL)0;
	T1_ = (int)0;
	T1_ = nimCmpMem(a, b, size);
	result = (T1_ == ((NI32) 0));
	return result;
}

static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b) {
	NIM_BOOL result;
	NI alen;
	NI blen;
{	result = (NIM_BOOL)0;
	alen = (a ? a->Sup.len : 0);
	blen = (b ? b->Sup.len : 0);
	{
		if (!(alen == blen)) goto LA3_;
		{
			if (!(alen == ((NI) 0))) goto LA7_;
			result = NIM_TRUE;
			goto BeforeRet_;
		}
		LA7_: ;
		result = equalMem_9bGgqEk7RXXl6eqM9c1HdELAsystem(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
		goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matches_rZhM0XALsbmtBw4DH4NjRg)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s, NimStringDesc* x) {
	NIM_BOOL result;
	tySequence_sM4lkSb7zS6F7OVMvW9cffQ* y;
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s_2;
	NI L;
	NI T1_;
	NI TM_24XApAWKNvaMkcyklm8bNA_42;
{	result = (NIM_BOOL)0;
	y = nsuSplitChar(x, 46, ((NI) -1));
	s_2 = s;
	T1_ = (y ? y->Sup.len : 0);
	TM_24XApAWKNvaMkcyklm8bNA_42 = subInt(T1_, ((NI) 1));
	L = (NI)(TM_24XApAWKNvaMkcyklm8bNA_42);
	{
		while (1) {
			NI TM_24XApAWKNvaMkcyklm8bNA_44;
			if (!(((NI) 0) <= L)) goto LA3;
			{
				NIM_BOOL T6_;
				NIM_BOOL T8_;
				NI T9_;
				T6_ = (NIM_BOOL)0;
				T6_ = (s_2 == NIM_NIL);
				if (T6_) goto LA7_;
				T8_ = (NIM_BOOL)0;
				if ((NU)(L) >= (NU)(y ? y->Sup.len : 0)) raiseIndexError2(L,(y ? y->Sup.len : 0)-1);
				T9_ = (NI)0;
				T9_ = nsuCmpIgnoreStyle(y->data[L], (*(*s_2).name).s);
				T8_ = !((T9_ == ((NI) 0)));
				if (!(T8_)) goto LA10_;
				if ((NU)(L) >= (NU)(y ? y->Sup.len : 0)) raiseIndexError2(L,(y ? y->Sup.len : 0)-1);
				T8_ = !(eqStrings(y->data[L], ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_43)));
				LA10_: ;
				T6_ = T8_;
				LA7_: ;
				if (!T6_) goto LA11_;
				result = NIM_FALSE;
				goto BeforeRet_;
			}
			LA11_: ;
			s_2 = (*s_2).owner;
			TM_24XApAWKNvaMkcyklm8bNA_44 = subInt(L, ((NI) 1));
			L = (NI)(TM_24XApAWKNvaMkcyklm8bNA_44);
		} LA3: ;
	}
	result = NIM_TRUE;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, procIsCallback_9cbdr2y54C9blDw0BnEN4mmQ)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s) {
	NIM_BOOL result;
	NI i;
{	result = (NIM_BOOL)0;
	{
		if (!((*s).offset < ((NI) -1))) goto LA3_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA3_: ;
	i = ((NI) -2);
	{
		NimStringDesc* key;
		tyProc_S09bPfanQx9bEvdh4862x8zw value;
		tySequence_RsxI3z4wK8jTuZiO0576gQ* colontmp_;
		NI i_2;
		NI L;
		NI T6_;
		key = (NimStringDesc*)0;
		nimZeroMem((void*)(&value), sizeof(tyProc_S09bPfanQx9bEvdh4862x8zw));
		colontmp_ = (tySequence_RsxI3z4wK8jTuZiO0576gQ*)0;
		colontmp_ = (*c).callbacks;
		i_2 = ((NI) 0);
		T6_ = (colontmp_ ? colontmp_->Sup.len : 0);
		L = T6_;
		{
			while (1) {
				NI TM_24XApAWKNvaMkcyklm8bNA_46;
				NI TM_24XApAWKNvaMkcyklm8bNA_47;
				if (!(i_2 < L)) goto LA8;
				if ((NU)(i_2) >= (NU)(colontmp_ ? colontmp_->Sup.len : 0)) raiseIndexError2(i_2,(colontmp_ ? colontmp_->Sup.len : 0)-1);
				key = colontmp_->data[i_2].Field0;
				if ((NU)(i_2) >= (NU)(colontmp_ ? colontmp_->Sup.len : 0)) raiseIndexError2(i_2,(colontmp_ ? colontmp_->Sup.len : 0)-1);
				value.ClE_0 = colontmp_->data[i_2].Field1.ClE_0;
				value.ClP_0 = colontmp_->data[i_2].Field1.ClP_0;
				{
					NIM_BOOL T11_;
					T11_ = (NIM_BOOL)0;
					T11_ = matches_rZhM0XALsbmtBw4DH4NjRg(s, key);
					if (!T11_) goto LA12_;
					{
						if (!!(((*s).offset == ((NI) -1)))) goto LA16_;
						failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_45));
					}
					LA16_: ;
					(*s).offset = i;
					result = NIM_TRUE;
					goto BeforeRet_;
				}
				LA12_: ;
				TM_24XApAWKNvaMkcyklm8bNA_46 = subInt(i, ((NI) 1));
				i = (NI)(TM_24XApAWKNvaMkcyklm8bNA_46);
				TM_24XApAWKNvaMkcyklm8bNA_47 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM_24XApAWKNvaMkcyklm8bNA_47);
				{
					NI T20_;
					T20_ = (colontmp_ ? colontmp_->Sup.len : 0);
					if (!!((T20_ == L))) goto LA21_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_48));
				}
				LA21_: ;
			} LA8: ;
		}
	}
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameConstant_rlsxiOBKecP0t9crY75888g)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	result = NIM_FALSE;
	{
		if (!(a == b)) goto LA3_;
		result = NIM_TRUE;
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T6_;
		NIM_BOOL T7_;
		T6_ = (NIM_BOOL)0;
		T7_ = (NIM_BOOL)0;
		T7_ = !((a == NIM_NIL));
		if (!(T7_)) goto LA8_;
		T7_ = !((b == NIM_NIL));
		LA8_: ;
		T6_ = T7_;
		if (!(T6_)) goto LA9_;
		T6_ = ((*a).kind == (*b).kind);
		LA9_: ;
		if (!T6_) goto LA10_;
		switch ((*a).kind) {
		case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3):
		{
			if (!(((TM_24XApAWKNvaMkcyklm8bNA_9[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_10));
			if (!(((TM_24XApAWKNvaMkcyklm8bNA_9[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_10));
			result = ((*a).sym == (*b).sym);
		}
		break;
		case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 2):
		{
			if (!(((TM_24XApAWKNvaMkcyklm8bNA_49[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_50));
			if (!(((TM_24XApAWKNvaMkcyklm8bNA_49[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_50));
			result = ((*(*a).ident).Sup.id == (*(*b).ident).Sup.id);
		}
		break;
		case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 5) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 15):
		{
			if (!(((TM_24XApAWKNvaMkcyklm8bNA_51[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_52));
			if (!(((TM_24XApAWKNvaMkcyklm8bNA_51[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_52));
			result = ((*a).intVal == (*b).intVal);
		}
		break;
		case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 16) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 18):
		{
			if (!(((TM_24XApAWKNvaMkcyklm8bNA_53[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_54));
			if (!(((TM_24XApAWKNvaMkcyklm8bNA_53[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_54));
			result = ((*a).floatVal == (*b).floatVal);
		}
		break;
		case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 22):
		{
			if (!(((TM_24XApAWKNvaMkcyklm8bNA_19[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_20));
			if (!(((TM_24XApAWKNvaMkcyklm8bNA_19[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_20));
			result = eqStrings((*a).strVal, (*b).strVal);
		}
		break;
		case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 4):
		case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 23):
		{
			result = ((*a).typ == (*b).typ);
		}
		break;
		case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1):
		{
			result = NIM_TRUE;
		}
		break;
		default:
		{
			{
				NI T22_;
				NI T23_;
				T22_ = (NI)0;
				T22_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(a);
				T23_ = (NI)0;
				T23_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(b);
				if (!(T22_ == T23_)) goto LA24_;
				{
					NI i;
					NI colontmp_;
					NI i_2;
					i = (NI)0;
					colontmp_ = (NI)0;
					colontmp_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(a);
					i_2 = ((NI) 0);
					{
						while (1) {
							NI TM_24XApAWKNvaMkcyklm8bNA_55;
							if (!(i_2 < colontmp_)) goto LA28;
							i = i_2;
							{
								NIM_BOOL T31_;
								if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
								if ((NU)(i) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(i,((*a).sons ? (*a).sons->Sup.len : 0)-1);
								if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
								if ((NU)(i) >= (NU)((*b).sons ? (*b).sons->Sup.len : 0)) raiseIndexError2(i,((*b).sons ? (*b).sons->Sup.len : 0)-1);
								T31_ = (NIM_BOOL)0;
								T31_ = sameConstant_rlsxiOBKecP0t9crY75888g((*a).sons->data[i], (*b).sons->data[i]);
								if (!!(T31_)) goto LA32_;
								goto BeforeRet_;
							}
							LA32_: ;
							TM_24XApAWKNvaMkcyklm8bNA_55 = addInt(i_2, ((NI) 1));
							i_2 = (NI)(TM_24XApAWKNvaMkcyklm8bNA_55);
						} LA28: ;
					}
				}
				result = NIM_TRUE;
			}
			LA24_: ;
		}
		break;
		}
	}
	goto LA1_;
	LA10_: ;
	LA1_: ;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, canonValue_yXNCtNX5XyYFmGvoC2Ryfw)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NI, rawGenLiteral_PEuKCZcy9a56kIfBOLoHU5Q_2)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T1_;
	result = (NI)0;
	result = len_P89cqdlERShb9alU3iC0yj8wast((*c).constants);
	(*n).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag_jyh9acXHkhZANSSvPIY7ZLg) 4)) & 31);
	T1_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = canonValue_yXNCtNX5XyYFmGvoC2Ryfw(n);
	add_P8dDSotTW25BkfbyspojGg((*c).constants, T1_);
	{
		NimStringDesc* T6_;
		if (!!((result < ((NI) 32767)))) goto LA4_;
		T6_ = (NimStringDesc*)0;
		T6_ = dollar__r38WafKlW80RkvoZTcia4Q(TM_24XApAWKNvaMkcyklm8bNA_57);
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T6_);
	}
	LA4_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NI, genLiteral_PEuKCZcy9a56kIfBOLoHU5Q)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
{	result = (NI)0;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len_P89cqdlERShb9alU3iC0yj8wast((*c).constants);
		i_2 = ((NI) 0);
		{
			while (1) {
				NI TM_24XApAWKNvaMkcyklm8bNA_56;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					NIM_BOOL T6_;
					if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*c).constants).kind)>>3] &(1U<<((NU)((*(*c).constants).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
					if ((NU)(i) >= (NU)((*(*c).constants).sons ? (*(*c).constants).sons->Sup.len : 0)) raiseIndexError2(i,((*(*c).constants).sons ? (*(*c).constants).sons->Sup.len : 0)-1);
					T6_ = (NIM_BOOL)0;
					T6_ = sameConstant_rlsxiOBKecP0t9crY75888g((*(*c).constants).sons->data[i], n);
					if (!T6_) goto LA7_;
					result = i;
					goto BeforeRet_;
				}
				LA7_: ;
				TM_24XApAWKNvaMkcyklm8bNA_56 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM_24XApAWKNvaMkcyklm8bNA_56);
			} LA3: ;
		}
	}
	result = rawGenLiteral_PEuKCZcy9a56kIfBOLoHU5Q_2(c, n);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genLit_AcnszMkIUvrpRfWF4iqy5g)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	NI lit;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	lit = genLiteral_PEuKCZcy9a56kIfBOLoHU5Q(c, n);
	gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 167), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), lit);
}

N_LIB_PRIVATE N_NIMCALL(void, genTypeLit_9a1Lon9cJzf9a69cj4KKhxzxrQ)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, NI* dest) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n;
	n = newNode_PMZ27S9ai4FB3gXOMDXvwsQ(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 4));
	asgnRef((void**) (&(*n).typ), t);
	genLit_AcnszMkIUvrpRfWF4iqy5g(c, n, dest);
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTemp_3YlwkOhvADs19cHhcnE9boYA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, NI dest) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (((NI) 0) <= ((NI) (dest)));
	if (!(T1_)) goto LA2_;
	if ((NU)(dest) > (NU)(255)) raiseIndexError2(dest, 255);
	T1_ = (((tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ) 3) <= (*(*c).prc).slots[(dest)- 0].Field1);
	LA2_: ;
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, gen_KQ9csS06JMUvwHLxUYEy8rA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI dest, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags) {
	NI d;
	d = ((NI) (dest));
	gen_6vrKVoM8aZ4Rjealu5DZbw(c, n, (&d), flags);
}

N_LIB_PRIVATE N_NIMCALL(void, patch_Ej9bBLeYWuXsMMig9c4loqzw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, NI p) {
	NI p_2;
	NI diff;
	NI T1_;
	NI TM_24XApAWKNvaMkcyklm8bNA_59;
	NU32 oldInstr;
	NI TM_24XApAWKNvaMkcyklm8bNA_61;
	p_2 = p;
	T1_ = ((*c).code ? (*c).code->Sup.len : 0);
	TM_24XApAWKNvaMkcyklm8bNA_59 = subInt(T1_, p_2);
	diff = (NI)(TM_24XApAWKNvaMkcyklm8bNA_59);
	{
		NIM_BOOL T4_;
		NimStringDesc* T8_;
		T4_ = (NIM_BOOL)0;
		T4_ = (((NI) -32767) < diff);
		if (!(T4_)) goto LA5_;
		T4_ = (diff < ((NI) 32767));
		LA5_: ;
		if (!!(T4_)) goto LA6_;
		T8_ = (NimStringDesc*)0;
		T8_ = dollar__r38WafKlW80RkvoZTcia4Q(TM_24XApAWKNvaMkcyklm8bNA_60);
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T8_);
	}
	LA6_: ;
	if ((NU)(p_2) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(p_2,((*c).code ? (*c).code->Sup.len : 0)-1);
	oldInstr = (*c).code->data[p_2];
	if ((NU)(p_2) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(p_2,((*c).code ? (*c).code->Sup.len : 0)-1);
	TM_24XApAWKNvaMkcyklm8bNA_61 = addInt(diff, ((NI) 32768));
	(*c).code->data[p_2] = (NU32)((NU32)(oldInstr & ((NU32) 65535)) | (NU32)((NU32)(((NU32)chckRangeU((NI)(TM_24XApAWKNvaMkcyklm8bNA_61), ((NU32) 0), ((NU32) IL64(4294967295))))) << (NU32)(((NU32) 16))));
}

N_LIB_PRIVATE N_NIMCALL(void, genAndOr_blqV4B2MK6URSu9aJH4D71w)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc, NI* dest) {
	NIM_BOOL copyBack;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	NI tmp;
	NI L1;
	T1_ = (NIM_BOOL)0;
	T1_ = (((NI) ((*dest))) < ((NI) 0));
	if (T1_) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T3_ = isTemp_3YlwkOhvADs19cHhcnE9boYA(c, (*dest));
	T1_ = !(T3_);
	LA2_: ;
	copyBack = T1_;
	{
		if (!copyBack) goto LA6_;
		tmp = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
	}
	goto LA4_;
	LA6_: ;
	{
		tmp = ((NI)chckRange((*dest), ((NI) 0), ((NI) 255)));
	}
	LA4_: ;
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	gen_KQ9csS06JMUvwHLxUYEy8rA(c, (*n).sons->data[((NI) 1)], tmp, 0);
	L1 = xjmp_LLVWVnfPUz40PkTu6VMsfA(c, n, opc, tmp);
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	gen_KQ9csS06JMUvwHLxUYEy8rA(c, (*n).sons->data[((NI) 2)], tmp, 0);
	patch_Ej9bBLeYWuXsMMig9c4loqzw(c, L1);
	{
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA11_;
		(*dest) = ((NI) (tmp));
	}
	goto LA9_;
	LA11_: ;
	{
		if (!copyBack) goto LA14_;
		gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 4), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp, ((NI) 0));
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp);
	}
	goto LA9_;
	LA14_: ;
	LA9_: ;
}

static N_INLINE(NI64, addInt64)(NI64 a, NI64 b) {
	NI64 result;
{	result = (NI64)0;
	result = (NI64)((NU64)(a) + (NU64)(b));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (IL64(0) <= (NI64)(result ^ a));
		if (T3_) goto LA4_;
		T3_ = (IL64(0) <= (NI64)(result ^ b));
		LA4_: ;
		if (!T3_) goto LA5_;
		goto BeforeRet_;
	}
	LA5_: ;
	raiseOverflow();
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, gABI_u2VxMEzYAC2GH9aMCRX5xhw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc, NI a, NI b, NI64 imm) {
	{
		NIM_BOOL T3_;
		NU32 ins;
		NI64 TM_24XApAWKNvaMkcyklm8bNA_62;
		NI T7_;
		NI T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = (IL64(-128) <= imm);
		if (!(T3_)) goto LA4_;
		T3_ = (imm <= IL64(127));
		LA4_: ;
		if (!T3_) goto LA5_;
		TM_24XApAWKNvaMkcyklm8bNA_62 = addInt64(imm, IL64(128));
		ins = (NU32)((NU32)((NU32)(((NU32) (opc)) | (NU32)((NU32)(((NU32) (a))) << (NU32)(((NU32) 8)))) | (NU32)((NU32)(((NU32) (b))) << (NU32)(((NU32) 16)))) | (NU32)((NU32)(((NU32)chckRangeU((NI64)(TM_24XApAWKNvaMkcyklm8bNA_62), ((NU32) 0), ((NU32) IL64(4294967295))))) << (NU32)(((NU32) 24))));
		asgnRef((void**) (&(*c).code), (tySequence_9bAGqSvkAaFL9bWjsEPslrFA*) incrSeqV3((TGenericSeq*)((*c).code), (&NTI_9bAGqSvkAaFL9bWjsEPslrFA_)));
		T7_ = (*c).code->Sup.len++;
		(*c).code->data[T7_] = ins;
		asgnRef((void**) (&(*c).debug), (tySequence_PJMRIt5QxCm6bRaVyQ5CGA*) incrSeqV3((TGenericSeq*)((*c).debug), (&NTI_PJMRIt5QxCm6bRaVyQ5CGA_)));
		T8_ = (*c).debug->Sup.len++;
		(*c).debug->data[T8_] = (*n).info;
	}
	goto LA1_;
	LA5_: ;
	{
		localError_NF6kBGchnhQYPbCedyefVA((*c).config, (*n).info, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_63));
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isInt8Lit_ZWNdbTkHEJo2QqoHaEPxGA)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		NIM_BOOL T5_;
		if (!((*n).kind >= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*n).kind <= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 15))) goto LA3_;
		T5_ = (NIM_BOOL)0;
		if (!(((TM_24XApAWKNvaMkcyklm8bNA_51[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_52));
		T5_ = (IL64(-128) <= (*n).intVal);
		if (!(T5_)) goto LA6_;
		if (!(((TM_24XApAWKNvaMkcyklm8bNA_51[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_52));
		T5_ = ((*n).intVal <= IL64(127));
		LA6_: ;
		result = T5_;
	}
	LA3_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc) {
	NI tmp;
	NI tmp2;
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	tmp2 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 2)], 0);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	gABC_G2IxRmwmQahHciEYmnYxxg(c, n, opc, ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp, tmp2);
	freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp);
	freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp2);
}

N_LIB_PRIVATE N_NIMCALL(void, genNarrow_Cd5XCtdH6RMw63L9bPnNMXA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI dest) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	t = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36275087632017424));
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		NI64 TM_24XApAWKNvaMkcyklm8bNA_65;
		T3_ = (NIM_BOOL)0;
		T3_ = ((IL64(15393162788864) &((NU64)1<<((NU)((*t).kind)&63U)))!=0);
		if (T3_) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 40));
		if (!(T5_)) goto LA6_;
		T5_ = ((*t).size < IL64(8));
		LA6_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA7_;
		TM_24XApAWKNvaMkcyklm8bNA_65 = mulInt64((*t).size, IL64(8));
		gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 92), ((NI)chckRange(dest, ((NI) 0), ((NI) 255))), ((NI)chckRange64((NI64)(TM_24XApAWKNvaMkcyklm8bNA_65), ((NI) 0), ((NI) 255))), ((NI) 0));
	}
	goto LA1_;
	LA7_: ;
	{
		NIM_BOOL T10_;
		NIM_BOOL T12_;
		NI64 TM_24XApAWKNvaMkcyklm8bNA_66;
		T10_ = (NIM_BOOL)0;
		T10_ = ((IL64(30064771072) &((NU64)1<<((NU)((*t).kind)&63U)))!=0);
		if (T10_) goto LA11_;
		T12_ = (NIM_BOOL)0;
		T12_ = ((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31));
		if (!(T12_)) goto LA13_;
		T12_ = ((*t).size < IL64(8));
		LA13_: ;
		T10_ = T12_;
		LA11_: ;
		if (!T10_) goto LA14_;
		TM_24XApAWKNvaMkcyklm8bNA_66 = mulInt64((*t).size, IL64(8));
		gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 91), ((NI)chckRange(dest, ((NI) 0), ((NI) 255))), ((NI)chckRange64((NI64)(TM_24XApAWKNvaMkcyklm8bNA_66), ((NI) 0), ((NI) 255))), ((NI) 0));
	}
	goto LA1_;
	LA14_: ;
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genAddSubInt_ZyWouE89b9cXkDK7i39aj0dwg)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc) {
	{
		NIM_BOOL T3_;
		NI tmp;
		NI TM_24XApAWKNvaMkcyklm8bNA_64;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		T3_ = (NIM_BOOL)0;
		T3_ = isInt8Lit_ZWNdbTkHEJo2QqoHaEPxGA((*n).sons->data[((NI) 2)]);
		if (!T3_) goto LA4_;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
		{
			NI T10_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA8_;
			T10_ = (NI)0;
			T10_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T10_));
		}
		LA8_: ;
		TM_24XApAWKNvaMkcyklm8bNA_64 = addInt(opc, ((NI) 1));
		if (TM_24XApAWKNvaMkcyklm8bNA_64 < 0 || TM_24XApAWKNvaMkcyklm8bNA_64 > 180) raiseOverflow();
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (!(((TM_24XApAWKNvaMkcyklm8bNA_51[(NU)((*(*n).sons->data[((NI) 2)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 2)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_52));
		gABI_u2VxMEzYAC2GH9aMCRX5xhw(c, n, (tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)(TM_24XApAWKNvaMkcyklm8bNA_64), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp, (*(*n).sons->data[((NI) 2)]).intVal);
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp);
	}
	goto LA1_;
	LA4_: ;
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, opc);
	}
	LA1_: ;
	genNarrow_Cd5XCtdH6RMw63L9bPnNMXA(c, n, (*dest));
}

static N_INLINE(void, unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI x) {
	{
		if (!(((NI) 0) <= ((NI) (x)))) goto LA3_;
		globalError_NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_67));
	}
	LA3_: ;
}

N_LIB_PRIVATE N_NIMCALL(NI, genIndex_DPfOz7YYSBixDRy9cYPeZIA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* arr) {
	NI result;
	result = (NI)0;
	{
		NIM_BOOL T3_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T4_;
		NI64 x;
		NI tmp;
		T3_ = (NIM_BOOL)0;
		T4_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T4_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(arr, IL64(36134350135273744));
		T3_ = ((*T4_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16));
		if (!(T3_)) goto LA5_;
		x = firstOrd_4cSIntenL9aBXY6LAFsvXdQ((*c).config, arr);
		T3_ = !((x == IL64(0)));
		LA5_: ;
		if (!T3_) goto LA6_;
		tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, n, 0);
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp);
		result = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		gABI_u2VxMEzYAC2GH9aMCRX5xhw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 27), result, tmp, ((NI64) (((NI) (x)))));
	}
	goto LA1_;
	LA6_: ;
	{
		result = genx_CcIHODsUfIZ32Dw7elmEjQ(c, n, 0);
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NI, genField_9a15qaQFBwMjo9b9byRZNZAHw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s;
	result = (NI)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)));
		if (T3_) goto LA4_;
		if (!(((TM_24XApAWKNvaMkcyklm8bNA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_10));
		T3_ = !(((*(*n).sym).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 19)));
		LA4_: ;
		if (!T3_) goto LA5_;
		globalError_NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_72));
	}
	LA5_: ;
	if (!(((TM_24XApAWKNvaMkcyklm8bNA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_10));
	s = (*n).sym;
	{
		NimStringDesc* T11_;
		if (!(((NI) 255) < (*s).position)) goto LA9_;
		T11_ = (NimStringDesc*)0;
		T11_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 44);
appendString(T11_, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_73));
appendString(T11_, (*(*s).name).s);
		globalError_NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, T11_);
	}
	LA9_: ;
	result = ((NI)chckRange((*s).position, ((NI) 0), ((NI) 255)));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genCheckedObjAccessAux_6vrKVoM8aZ4Rjealu5DZbw_3)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* accessExpr;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* checkExpr;
	NIM_BOOL negCheck;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* disc;
	NI discVal;
	NI T16_;
	NI setLit;
	NI rs;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T17_;
	NI L1;
	tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ T18_;
	{
		NimStringDesc* T5_;
		if (!!(((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 46)))) goto LA3_;
		T5_ = (NimStringDesc*)0;
		T5_ = dollar__r38WafKlW80RkvoZTcia4Q(TM_24XApAWKNvaMkcyklm8bNA_69);
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T5_);
	}
	LA3_: ;
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	accessExpr = (*n).sons->data[((NI) 0)];
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	checkExpr = (*n).sons->data[((NI) 1)];
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*checkExpr).kind)>>3] &(1U<<((NU)((*checkExpr).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 0)) >= (NU)((*checkExpr).sons ? (*checkExpr).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*checkExpr).sons ? (*checkExpr).sons->Sup.len : 0)-1);
	if (!(((TM_24XApAWKNvaMkcyklm8bNA_9[(NU)((*(*checkExpr).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*checkExpr).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_10));
	negCheck = ((*(*(*checkExpr).sons->data[((NI) 0)]).sym).magic == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 104));
	{
		NI T10_;
		NI TM_24XApAWKNvaMkcyklm8bNA_70;
		if (!negCheck) goto LA8_;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*checkExpr).kind)>>3] &(1U<<((NU)((*checkExpr).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		T10_ = (NI)0;
		T10_ = len_P89cqdlERShb9alU3iC0yj8wast(checkExpr);
		TM_24XApAWKNvaMkcyklm8bNA_70 = subInt(T10_, ((NI) 1));
		if ((NU)((NI)(TM_24XApAWKNvaMkcyklm8bNA_70)) >= (NU)((*checkExpr).sons ? (*checkExpr).sons->Sup.len : 0)) raiseIndexError2((NI)(TM_24XApAWKNvaMkcyklm8bNA_70),((*checkExpr).sons ? (*checkExpr).sons->Sup.len : 0)-1);
		checkExpr = (*checkExpr).sons->data[(NI)(TM_24XApAWKNvaMkcyklm8bNA_70)];
	}
	LA8_: ;
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*checkExpr).kind)>>3] &(1U<<((NU)((*checkExpr).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 2)) >= (NU)((*checkExpr).sons ? (*checkExpr).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*checkExpr).sons ? (*checkExpr).sons->Sup.len : 0)-1);
	disc = (*checkExpr).sons->data[((NI) 2)];
	{
		NimStringDesc* T15_;
		if (!(((TM_24XApAWKNvaMkcyklm8bNA_9[(NU)((*disc).kind)>>3] &(1U<<((NU)((*disc).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_10));
		if (!!(((*(*disc).sym).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 19)))) goto LA13_;
		T15_ = (NimStringDesc*)0;
		T15_ = dollar__r38WafKlW80RkvoZTcia4Q(TM_24XApAWKNvaMkcyklm8bNA_71);
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T15_);
	}
	LA13_: ;
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*accessExpr).kind)>>3] &(1U<<((NU)((*accessExpr).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 0)) >= (NU)((*accessExpr).sons ? (*accessExpr).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*accessExpr).sons ? (*accessExpr).sons->Sup.len : 0)-1);
	gen_6vrKVoM8aZ4Rjealu5DZbw(c, (*accessExpr).sons->data[((NI) 0)], dest, flags);
	discVal = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*disc).typ);
	T16_ = (NI)0;
	T16_ = genField_9a15qaQFBwMjo9b9byRZNZAHw(c, disc);
	gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 16), discVal, ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), T16_);
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*checkExpr).kind)>>3] &(1U<<((NU)((*checkExpr).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*checkExpr).sons ? (*checkExpr).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*checkExpr).sons ? (*checkExpr).sons->Sup.len : 0)-1);
	setLit = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*checkExpr).sons->data[((NI) 1)], 0);
	T17_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T17_ = getSysType_VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 1));
	rs = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, T17_);
	gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 79), rs, setLit, discVal);
	freeTemp_1nMAqbaMl87FxWu2gyhzog(c, setLit);
	T18_ = (tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)0;
	{
		if (!negCheck) goto LA21_;
		T18_ = ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 155);
	}
	goto LA19_;
	LA21_: ;
	{
		T18_ = ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 154);
	}
	LA19_: ;
	L1 = xjmp_LLVWVnfPUz40PkTu6VMsfA(c, n, T18_, rs);
	freeTemp_1nMAqbaMl87FxWu2gyhzog(c, rs);
	gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 90), ((NI) 0), ((NI) 0), ((NI) 0));
	patch_Ej9bBLeYWuXsMMig9c4loqzw(c, L1);
}

N_LIB_PRIVATE N_NIMCALL(void, genAsgnPatch_j7RN6Eyu9arvNrSkBc4hNHw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, NI value) {
	switch ((*le).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 42):
	{
		NI dest;
		NI idx;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*le).sons ? (*le).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*le).sons ? (*le).sons->Sup.len : 0)-1);
		dest = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*le).sons->data[((NI) 0)], 1);
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*le).sons ? (*le).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*le).sons ? (*le).sons->Sup.len : 0)-1);
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*le).sons ? (*le).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*le).sons ? (*le).sons->Sup.len : 0)-1);
		idx = genIndex_DPfOz7YYSBixDRy9cYPeZIA(c, (*le).sons->data[((NI) 1)], (*(*le).sons->data[((NI) 0)]).typ);
		gABC_G2IxRmwmQahHciEYmnYxxg(c, le, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 15), dest, idx, value);
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, dest);
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, idx);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 46):
	{
		NI objR;
		NI idx_2;
		objR = ((NI) -1);
		genCheckedObjAccessAux_6vrKVoM8aZ4Rjealu5DZbw_3(c, le, (&objR), 1);
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*le).sons ? (*le).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*le).sons ? (*le).sons->Sup.len : 0)-1);
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*le).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*le).sons->data[((NI) 0)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*(*le).sons->data[((NI) 0)]).sons ? (*(*le).sons->data[((NI) 0)]).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*(*le).sons->data[((NI) 0)]).sons ? (*(*le).sons->data[((NI) 0)]).sons->Sup.len : 0)-1);
		idx_2 = genField_9a15qaQFBwMjo9b9byRZNZAHw(c, (*(*le).sons->data[((NI) 0)]).sons->data[((NI) 1)]);
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*le).sons ? (*le).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*le).sons ? (*le).sons->Sup.len : 0)-1);
		gABC_G2IxRmwmQahHciEYmnYxxg(c, (*le).sons->data[((NI) 0)], ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 17), ((NI)chckRange(objR, ((NI) 0), ((NI) 255))), idx_2, value);
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, ((NI)chckRange(objR, ((NI) 0), ((NI) 255))));
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 45):
	{
		NI dest_2;
		NI idx_3;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*le).sons ? (*le).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*le).sons ? (*le).sons->Sup.len : 0)-1);
		dest_2 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*le).sons->data[((NI) 0)], 1);
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*le).sons ? (*le).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*le).sons ? (*le).sons->Sup.len : 0)-1);
		idx_3 = genField_9a15qaQFBwMjo9b9byRZNZAHw(c, (*le).sons->data[((NI) 1)]);
		gABC_G2IxRmwmQahHciEYmnYxxg(c, le, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 17), dest_2, idx_3, value);
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, dest_2);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 47):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 65):
	{
		NI dest_3;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*le).sons ? (*le).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*le).sons ? (*le).sons->Sup.len : 0)-1);
		dest_3 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*le).sons->data[((NI) 0)], 1);
		gABC_G2IxRmwmQahHciEYmnYxxg(c, le, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 21), dest_3, ((NI) 0), value);
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, dest_3);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		{
			NIM_BOOL T8_;
			NI dest_4;
			T8_ = (NIM_BOOL)0;
			if (!(((TM_24XApAWKNvaMkcyklm8bNA_9[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_10));
			T8_ = (((*(*le).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0);
			if (!(T8_)) goto LA9_;
			if (!(((TM_24XApAWKNvaMkcyklm8bNA_9[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_10));
			T8_ = !(((*(*le).sym).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 21)));
			LA9_: ;
			if (!T8_) goto LA10_;
			dest_4 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, le, 2);
			gABC_G2IxRmwmQahHciEYmnYxxg(c, le, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 21), dest_4, ((NI) 0), value);
			freeTemp_1nMAqbaMl87FxWu2gyhzog(c, dest_4);
		}
		LA10_: ;
	}
	break;
	default:
	{
	}
	break;
	}
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, needsAsgnPatch_ZWNdbTkHEJo2QqoHaEPxGA_2)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	NIM_BOOL T5_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 42) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 45) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 46) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 47) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 65));
	if (T1_) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T3_ = ((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
	if (!(T3_)) goto LA4_;
	T5_ = (NIM_BOOL)0;
	if (!(((TM_24XApAWKNvaMkcyklm8bNA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_10));
	T5_ = (((*(*n).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0);
	if (!(T5_)) goto LA6_;
	if (!(((TM_24XApAWKNvaMkcyklm8bNA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_10));
	T5_ = !(((*(*n).sym).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 21)));
	LA6_: ;
	T3_ = T5_;
	LA4_: ;
	T1_ = T3_;
	LA2_: ;
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NI, genType_H4AMs0GuxljbeG3aMubkXA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	NI result;
	NI T15_;
	NI T16_;
{	result = (NI)0;
	{
		NI i;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
		tySequence_Ef05srmQTDulnBdXR4Ja6Q* colontmp_;
		NI i_2;
		NI L;
		NI T2_;
		i = (NI)0;
		t = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		colontmp_ = (tySequence_Ef05srmQTDulnBdXR4Ja6Q*)0;
		colontmp_ = (*c).types;
		i_2 = ((NI) 0);
		T2_ = (colontmp_ ? colontmp_->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				NI TM_24XApAWKNvaMkcyklm8bNA_74;
				if (!(i_2 < L)) goto LA4;
				i = i_2;
				if ((NU)(i_2) >= (NU)(colontmp_ ? colontmp_->Sup.len : 0)) raiseIndexError2(i_2,(colontmp_ ? colontmp_->Sup.len : 0)-1);
				t = colontmp_->data[i_2];
				{
					NIM_BOOL T7_;
					T7_ = (NIM_BOOL)0;
					T7_ = sameType_3isNyHKb0U1OCnClmflXSg(t, typ, 0);
					if (!T7_) goto LA8_;
					result = i;
					goto BeforeRet_;
				}
				LA8_: ;
				TM_24XApAWKNvaMkcyklm8bNA_74 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM_24XApAWKNvaMkcyklm8bNA_74);
				{
					NI T12_;
					T12_ = (colontmp_ ? colontmp_->Sup.len : 0);
					if (!!((T12_ == L))) goto LA13_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_75));
				}
				LA13_: ;
			} LA4: ;
		}
	}
	T15_ = ((*c).types ? (*c).types->Sup.len : 0);
	result = T15_;
	asgnRef((void**) (&(*c).types), (tySequence_Ef05srmQTDulnBdXR4Ja6Q*) incrSeqV3((TGenericSeq*)((*c).types), (&NTI_Ef05srmQTDulnBdXR4Ja6Q_)));
	T16_ = (*c).types->Sup.len++;
	asgnRef((void**) (&(*c).types->data[T16_]), typ);
	{
		NimStringDesc* T21_;
		if (!!((result <= ((NI) 32767)))) goto LA19_;
		T21_ = (NimStringDesc*)0;
		T21_ = dollar__r38WafKlW80RkvoZTcia4Q(TM_24XApAWKNvaMkcyklm8bNA_76);
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T21_);
	}
	LA19_: ;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genNew_Y59crI4YgTHHCWclw3gn72A_2)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NI dest;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T7_;
	NI T8_;
	{
		NIM_BOOL T3_;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		T3_ = (NIM_BOOL)0;
		T3_ = needsAsgnPatch_ZWNdbTkHEJo2QqoHaEPxGA_2((*n).sons->data[((NI) 1)]);
		if (!T3_) goto LA4_;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		dest = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*(*n).sons->data[((NI) 1)]).typ);
	}
	goto LA1_;
	LA4_: ;
	{
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		dest = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
	}
	LA1_: ;
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	T7_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T7_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*n).sons->data[((NI) 1)]).typ, IL64(36275087632017424));
	if ((NU)(((NI) 0)) >= (NU)((*T7_).sons ? (*T7_).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*T7_).sons ? (*T7_).sons->Sup.len : 0)-1);
	T8_ = (NI)0;
	T8_ = genType_H4AMs0GuxljbeG3aMubkXA(c, (*T7_).sons->data[((NI) 0)]);
	gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 163), dest, T8_);
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	genAsgnPatch_j7RN6Eyu9arvNrSkBc4hNHw(c, (*n).sons->data[((NI) 1)], dest);
	freeTemp_1nMAqbaMl87FxWu2gyhzog(c, dest);
}

N_LIB_PRIVATE N_NIMCALL(void, genNewSeq_Y59crI4YgTHHCWclw3gn72A_3)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	NI dest;
	NI tmp;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T7_;
	NI T8_;
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	t = (*(*n).sons->data[((NI) 1)]).typ;
	{
		NIM_BOOL T3_;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		T3_ = (NIM_BOOL)0;
		T3_ = needsAsgnPatch_ZWNdbTkHEJo2QqoHaEPxGA_2((*n).sons->data[((NI) 1)]);
		if (!T3_) goto LA4_;
		dest = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, t);
	}
	goto LA1_;
	LA4_: ;
	{
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		dest = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
	}
	LA1_: ;
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 2)], 0);
	T7_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T7_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(36275087632017424));
	T8_ = (NI)0;
	T8_ = genType_H4AMs0GuxljbeG3aMubkXA(c, T7_);
	gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 164), dest, T8_);
	gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 164), tmp, ((NI) 0));
	freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp);
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	genAsgnPatch_j7RN6Eyu9arvNrSkBc4hNHw(c, (*n).sons->data[((NI) 1)], dest);
	freeTemp_1nMAqbaMl87FxWu2gyhzog(c, dest);
}

N_LIB_PRIVATE N_NIMCALL(void, genNewSeqOfCap_AcnszMkIUvrpRfWF4iqy5g_2)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	NI tmp;
	NI T1_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T2_;
	NI T3_;
	t = (*n).typ;
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	tmp = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*(*n).sons->data[((NI) 1)]).typ);
	T1_ = (NI)0;
	T1_ = genType_H4AMs0GuxljbeG3aMubkXA(c, t);
	gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 165), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), T1_);
	gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 171), tmp, ((NI) 0));
	T2_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T2_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(36275087632017424));
	T3_ = (NI)0;
	T3_ = genType_H4AMs0GuxljbeG3aMubkXA(c, T2_);
	gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 164), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), T3_);
	gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 164), tmp, ((NI) 0));
	freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp);
}

N_LIB_PRIVATE N_NIMCALL(void, genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc) {
	NI tmp;
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	gABC_G2IxRmwmQahHciEYmnYxxg(c, n, opc, ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp, ((NI) 0));
	freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp);
}

N_LIB_PRIVATE N_NIMCALL(void, genUnaryABI_lrQcOjpJx3HtCx1aMMeDpw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc, NI64 imm) {
	NI tmp;
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	gABI_u2VxMEzYAC2GH9aMCRX5xhw(c, n, opc, ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp, imm);
	freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp);
}

N_LIB_PRIVATE N_NIMCALL(void, genSetType_gvhAyRL9bUcZODometR9bicw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI dest) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	t = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36134350135273488));
	{
		NI T5_;
		if (!((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 19))) goto LA3_;
		T5_ = (NI)0;
		T5_ = genType_H4AMs0GuxljbeG3aMubkXA(c, t);
		gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 174), dest, T5_);
	}
	LA3_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genCard_AcnszMkIUvrpRfWF4iqy5g_3)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	NI tmp;
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	genSetType_gvhAyRL9bUcZODometR9bicw(c, (*n).sons->data[((NI) 1)], tmp);
	gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 33), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp, ((NI) 0));
	freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp);
}

N_LIB_PRIVATE N_NIMCALL(void, genBinaryABCnarrow_ZyWouE89b9cXkDK7i39aj0dwg_4)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc) {
	genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, opc);
	genNarrow_Cd5XCtdH6RMw63L9bPnNMXA(c, n, (*dest));
}

N_LIB_PRIVATE N_NIMCALL(void, genNarrowU_Cd5XCtdH6RMw63L9bPnNMXA_2)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI dest) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	t = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36275087632017424));
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		NI64 TM_24XApAWKNvaMkcyklm8bNA_80;
		T3_ = (NIM_BOOL)0;
		T3_ = ((IL64(15423227559936) &((NU64)1<<((NU)((*t).kind)&63U)))!=0);
		if (T3_) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = ((IL64(1101659111424) &((NU64)1<<((NU)((*t).kind)&63U)))!=0);
		if (!(T5_)) goto LA6_;
		T5_ = ((*t).size < IL64(8));
		LA6_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA7_;
		TM_24XApAWKNvaMkcyklm8bNA_80 = mulInt64((*t).size, IL64(8));
		gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 92), ((NI)chckRange(dest, ((NI) 0), ((NI) 255))), ((NI)chckRange64((NI64)(TM_24XApAWKNvaMkcyklm8bNA_80), ((NI) 0), ((NI) 255))), ((NI) 0));
	}
	LA7_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genBinaryABCnarrowU_ZyWouE89b9cXkDK7i39aj0dwg_5)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc) {
	genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, opc);
	genNarrowU_Cd5XCtdH6RMw63L9bPnNMXA_2(c, n, (*dest));
}

N_LIB_PRIVATE N_NIMCALL(void, genConv_3t9aH9c9bW3NlM77J0pxtz3hg)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* arg, NI* dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc) {
	NI tmp;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T12_;
	NI T13_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T14_;
	NI T15_;
{	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*n).typ).kind == (*(*arg).typ).kind);
		if (!(T3_)) goto LA4_;
		T3_ = ((*(*arg).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25));
		LA4_: ;
		if (!T3_) goto LA5_;
		gen_6vrKVoM8aZ4Rjealu5DZbw(c, arg, dest, 0);
		goto BeforeRet_;
	}
	LA5_: ;
	tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, arg, 0);
	{
		NI T11_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA9_;
		T11_ = (NI)0;
		T11_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T11_));
	}
	LA9_: ;
	gABC_G2IxRmwmQahHciEYmnYxxg(c, n, opc, ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp, ((NI) 0));
	T12_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T12_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(1152921504606846976));
	T13_ = (NI)0;
	T13_ = genType_H4AMs0GuxljbeG3aMubkXA(c, T12_);
	gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, opc, ((NI) 0), T13_);
	T14_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T14_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*arg).typ, IL64(1152921504606846976));
	T15_ = (NI)0;
	T15_ = genType_H4AMs0GuxljbeG3aMubkXA(c, T14_);
	gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, opc, ((NI) 0), T15_);
	freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp);
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genBinarySet_ZyWouE89b9cXkDK7i39aj0dwg_6)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc) {
	NI tmp;
	NI tmp2;
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	tmp2 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 2)], 0);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	genSetType_gvhAyRL9bUcZODometR9bicw(c, (*n).sons->data[((NI) 1)], tmp);
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	genSetType_gvhAyRL9bUcZODometR9bicw(c, (*n).sons->data[((NI) 2)], tmp2);
	gABC_G2IxRmwmQahHciEYmnYxxg(c, n, opc, ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp, tmp2);
	freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp);
	freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp2);
}

N_LIB_PRIVATE N_NIMCALL(NI, getTempRange_ok9afQwIXe7dJAeeWPGODEA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* cc, NI n, tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ kind) {
	NI result;
	tyObject_PProccolonObjectType__VFEBuxrDHC6kHPzc1TWaRQ* c;
	NI TM_24XApAWKNvaMkcyklm8bNA_95;
{	result = (NI)0;
	c = (*cc).prc;
	{
		NIM_BOOL T3_;
		NI TM_24XApAWKNvaMkcyklm8bNA_84;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) 40) <= (*c).maxSlots);
		if (T3_) goto LA4_;
		TM_24XApAWKNvaMkcyklm8bNA_84 = addInt((*c).maxSlots, n);
		T3_ = (((NI) 255) <= (NI)(TM_24XApAWKNvaMkcyklm8bNA_84));
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			NI i;
			NI colontmp_;
			NI TM_24XApAWKNvaMkcyklm8bNA_85;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			TM_24XApAWKNvaMkcyklm8bNA_85 = subInt((*c).maxSlots, n);
			colontmp_ = (NI)(TM_24XApAWKNvaMkcyklm8bNA_85);
			res = ((NI) 0);
			{
				while (1) {
					NI TM_24XApAWKNvaMkcyklm8bNA_93;
					if (!(res <= colontmp_)) goto LA9;
					i = res;
					{
						if ((NU)(i) > (NU)(255)) raiseIndexError2(i, 255);
						if (!!((*c).slots[(i)- 0].Field0)) goto LA12_;
						{
							{
								NI j;
								NI colontmp__2;
								NI colontmp__3;
								NI TM_24XApAWKNvaMkcyklm8bNA_86;
								NI TM_24XApAWKNvaMkcyklm8bNA_87;
								NI TM_24XApAWKNvaMkcyklm8bNA_88;
								NI res_2;
								j = (NI)0;
								colontmp__2 = (NI)0;
								colontmp__3 = (NI)0;
								TM_24XApAWKNvaMkcyklm8bNA_86 = addInt(i, ((NI) 1));
								colontmp__2 = (NI)(TM_24XApAWKNvaMkcyklm8bNA_86);
								TM_24XApAWKNvaMkcyklm8bNA_87 = addInt(i, n);
								TM_24XApAWKNvaMkcyklm8bNA_88 = subInt((NI)(TM_24XApAWKNvaMkcyklm8bNA_87), ((NI) 1));
								colontmp__3 = (NI)(TM_24XApAWKNvaMkcyklm8bNA_88);
								res_2 = colontmp__2;
								{
									while (1) {
										NI TM_24XApAWKNvaMkcyklm8bNA_89;
										if (!(res_2 <= colontmp__3)) goto LA17;
										j = res_2;
										{
											if ((NU)(j) > (NU)(255)) raiseIndexError2(j, 255);
											if (!(*c).slots[(j)- 0].Field0) goto LA20_;
											goto LA14;
										}
										LA20_: ;
										TM_24XApAWKNvaMkcyklm8bNA_89 = addInt(res_2, ((NI) 1));
										res_2 = (NI)(TM_24XApAWKNvaMkcyklm8bNA_89);
									} LA17: ;
								}
							}
							result = ((NI)chckRange(i, ((NI) 0), ((NI) 255)));
							{
								NI k;
								NI colontmp__4;
								NI TM_24XApAWKNvaMkcyklm8bNA_90;
								NI TM_24XApAWKNvaMkcyklm8bNA_91;
								NI res_3;
								k = (NI)0;
								colontmp__4 = (NI)0;
								TM_24XApAWKNvaMkcyklm8bNA_90 = addInt(((NI) (result)), n);
								TM_24XApAWKNvaMkcyklm8bNA_91 = subInt((NI)(TM_24XApAWKNvaMkcyklm8bNA_90), ((NI) 1));
								colontmp__4 = ((NI)chckRange((NI)(TM_24XApAWKNvaMkcyklm8bNA_91), ((NI) 0), ((NI) 255)));
								res_3 = ((NI) (result));
								{
									while (1) {
										NIM_BOOL colontmp__5;
										tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ colontmp__6;
										NI TM_24XApAWKNvaMkcyklm8bNA_92;
										if (!(res_3 <= ((NI) (colontmp__4)))) goto LA24;
										k = ((NI)chckRange(res_3, ((NI) 0), ((NI) 255)));
										colontmp__5 = NIM_TRUE;
										colontmp__6 = kind;
										(*c).slots[(k)- 0].Field0 = colontmp__5;
										(*c).slots[(k)- 0].Field1 = colontmp__6;
										TM_24XApAWKNvaMkcyklm8bNA_92 = addInt(res_3, ((NI) 1));
										res_3 = (NI)(TM_24XApAWKNvaMkcyklm8bNA_92);
									} LA24: ;
								}
							}
							goto BeforeRet_;
						} LA14: ;
					}
					LA12_: ;
					TM_24XApAWKNvaMkcyklm8bNA_93 = addInt(res, ((NI) 1));
					res = (NI)(TM_24XApAWKNvaMkcyklm8bNA_93);
				} LA9: ;
			}
		}
	}
	LA5_: ;
	{
		NI TM_24XApAWKNvaMkcyklm8bNA_94;
		tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q T29_;
		TM_24XApAWKNvaMkcyklm8bNA_94 = addInt((*c).maxSlots, n);
		if (!(((NI) 255) <= (NI)(TM_24XApAWKNvaMkcyklm8bNA_94))) goto LA27_;
		T29_ = bestEffort_LqSnLt7G00hwvGEFOVVFfw(cc);
		globalError_NF6kBGchnhQYPbCedyefVA_2((*cc).config, T29_, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_30));
	}
	LA27_: ;
	result = ((NI)chckRange((*c).maxSlots, ((NI) 0), ((NI) 255)));
	TM_24XApAWKNvaMkcyklm8bNA_95 = addInt((*c).maxSlots, n);
	(*c).maxSlots = (NI)(TM_24XApAWKNvaMkcyklm8bNA_95);
	{
		NI k_2;
		NI colontmp__7;
		NI TM_24XApAWKNvaMkcyklm8bNA_96;
		NI TM_24XApAWKNvaMkcyklm8bNA_97;
		NI res_4;
		k_2 = (NI)0;
		colontmp__7 = (NI)0;
		TM_24XApAWKNvaMkcyklm8bNA_96 = addInt(((NI) (result)), n);
		TM_24XApAWKNvaMkcyklm8bNA_97 = subInt((NI)(TM_24XApAWKNvaMkcyklm8bNA_96), ((NI) 1));
		colontmp__7 = ((NI)chckRange((NI)(TM_24XApAWKNvaMkcyklm8bNA_97), ((NI) 0), ((NI) 255)));
		res_4 = ((NI) (result));
		{
			while (1) {
				NIM_BOOL colontmp__8;
				tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ colontmp__9;
				NI TM_24XApAWKNvaMkcyklm8bNA_98;
				if (!(res_4 <= ((NI) (colontmp__7)))) goto LA32;
				k_2 = ((NI)chckRange(res_4, ((NI) 0), ((NI) 255)));
				colontmp__8 = NIM_TRUE;
				colontmp__9 = kind;
				(*c).slots[(k_2)- 0].Field0 = colontmp__8;
				(*c).slots[(k_2)- 0].Field1 = colontmp__9;
				TM_24XApAWKNvaMkcyklm8bNA_98 = addInt(res_4, ((NI) 1));
				res_4 = (NI)(TM_24XApAWKNvaMkcyklm8bNA_98);
			} LA32: ;
		}
	}
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, freeTempRange_G85zfShWD6ECITDwyUUFLQ)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, NI start, NI n) {
	{
		NI i;
		NI colontmp_;
		NI TM_24XApAWKNvaMkcyklm8bNA_105;
		NI TM_24XApAWKNvaMkcyklm8bNA_106;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		TM_24XApAWKNvaMkcyklm8bNA_105 = addInt(((NI) (start)), n);
		TM_24XApAWKNvaMkcyklm8bNA_106 = subInt((NI)(TM_24XApAWKNvaMkcyklm8bNA_105), ((NI) 1));
		colontmp_ = ((NI)chckRange((NI)(TM_24XApAWKNvaMkcyklm8bNA_106), ((NI) 0), ((NI) 255)));
		res = ((NI) (start));
		{
			while (1) {
				NI TM_24XApAWKNvaMkcyklm8bNA_107;
				if (!(res <= ((NI) (colontmp_)))) goto LA3;
				i = ((NI)chckRange(res, ((NI) 0), ((NI) 255)));
				freeTemp_1nMAqbaMl87FxWu2gyhzog(c, i);
				TM_24XApAWKNvaMkcyklm8bNA_107 = addInt(res, ((NI) 1));
				res = (NI)(TM_24XApAWKNvaMkcyklm8bNA_107);
			} LA3: ;
		}
	}
}

N_LIB_PRIVATE N_NIMCALL(void, genVarargsABC_ZyWouE89b9cXkDK7i39aj0dwg_7)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc) {
	NI x;
	NI T6_;
	NI TM_24XApAWKNvaMkcyklm8bNA_99;
	NI T11_;
	NI TM_24XApAWKNvaMkcyklm8bNA_104;
	NI T12_;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	T6_ = (NI)0;
	T6_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
	TM_24XApAWKNvaMkcyklm8bNA_99 = subInt(T6_, ((NI) 1));
	x = getTempRange_ok9afQwIXe7dJAeeWPGODEA(c, (NI)(TM_24XApAWKNvaMkcyklm8bNA_99), ((tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ) 6));
	{
		NI i;
		NI colontmp_;
		NI T8_;
		NI TM_24XApAWKNvaMkcyklm8bNA_100;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T8_ = (NI)0;
		T8_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
		TM_24XApAWKNvaMkcyklm8bNA_100 = subInt(T8_, ((NI) 1));
		colontmp_ = (NI)(TM_24XApAWKNvaMkcyklm8bNA_100);
		res = ((NI) 1);
		{
			while (1) {
				NI r;
				NI TM_24XApAWKNvaMkcyklm8bNA_101;
				NI TM_24XApAWKNvaMkcyklm8bNA_102;
				NI TM_24XApAWKNvaMkcyklm8bNA_103;
				if (!(res <= colontmp_)) goto LA10;
				i = res;
				TM_24XApAWKNvaMkcyklm8bNA_101 = addInt(((NI) (x)), i);
				TM_24XApAWKNvaMkcyklm8bNA_102 = subInt((NI)(TM_24XApAWKNvaMkcyklm8bNA_101), ((NI) 1));
				r = ((NI)chckRange((NI)(TM_24XApAWKNvaMkcyklm8bNA_102), ((NI) 0), ((NI) 255)));
				if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
				if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
				gen_KQ9csS06JMUvwHLxUYEy8rA(c, (*n).sons->data[i], r, 0);
				TM_24XApAWKNvaMkcyklm8bNA_103 = addInt(res, ((NI) 1));
				res = (NI)(TM_24XApAWKNvaMkcyklm8bNA_103);
			} LA10: ;
		}
	}
	T11_ = (NI)0;
	T11_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
	TM_24XApAWKNvaMkcyklm8bNA_104 = subInt(T11_, ((NI) 1));
	gABC_G2IxRmwmQahHciEYmnYxxg(c, n, opc, ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), x, ((NI)chckRange((NI)(TM_24XApAWKNvaMkcyklm8bNA_104), ((NI) 0), ((NI) 255))));
	T12_ = (NI)0;
	T12_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
	freeTempRange_G85zfShWD6ECITDwyUUFLQ(c, x, T12_);
}

N_LIB_PRIVATE N_NIMCALL(tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ, ldNullOpcode_dZWW1z30r9beffMQ9bbGg9amA)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ result;
	result = (tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)0;
	{
		if (!!(!((t == NIM_NIL)))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_108));
	}
	LA3_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = fitsRegister_NRltpJT49cakdDyz9a9cNr4Kw(t);
		if (!T7_) goto LA8_;
		result = ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 166);
	}
	goto LA5_;
	LA8_: ;
	{
		result = ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 165);
	}
	LA5_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genBinaryStmtVar_K9aa9aabqu8dDUTWxwwkJdhg)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x;
	NI dest;
	NI tmp;
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	x = (*n).sons->data[((NI) 1)];
	{
		if (!((*x).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 63) || (*x).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64))) goto LA3_;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*x).kind)>>3] &(1U<<((NU)((*x).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*x).sons ? (*x).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*x).sons ? (*x).sons->Sup.len : 0)-1);
		x = (*x).sons->data[((NI) 0)];
	}
	LA3_: ;
	dest = genx_CcIHODsUfIZ32Dw7elmEjQ(c, x, 0);
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 2)], 0);
	gABC_G2IxRmwmQahHciEYmnYxxg(c, n, opc, dest, tmp, ((NI) 0));
	freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp);
}

N_LIB_PRIVATE N_NIMCALL(void, genBinaryABCD_ZyWouE89b9cXkDK7i39aj0dwg_8)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc) {
	NI tmp;
	NI tmp2;
	NI tmp3;
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	tmp2 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 2)], 0);
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 3)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 3),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	tmp3 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 3)], 0);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	gABC_G2IxRmwmQahHciEYmnYxxg(c, n, opc, ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp, tmp2);
	gABC_G2IxRmwmQahHciEYmnYxxg(c, n, opc, tmp3, ((NI) 0), ((NI) 0));
	freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp);
	freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp2);
	freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp3);
}

N_LIB_PRIVATE N_NIMCALL(void, genVoidABC_bOxuqhoYZQ9cPtUccjLVwvA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opcode) {
	NI tmp1;
	NI tmp2;
	NI tmp3;
	unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, dest);
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	tmp1 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	tmp2 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 2)], 0);
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 3)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 3),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	tmp3 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 3)], 0);
	gABC_G2IxRmwmQahHciEYmnYxxg(c, n, opcode, tmp1, tmp2, tmp3);
	freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp1);
	freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp2);
	freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp3);
}

N_LIB_PRIVATE N_NIMCALL(void, genBinaryStmt_K9aa9aabqu8dDUTWxwwkJdhg_2)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc) {
	NI dest;
	NI tmp;
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	dest = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 2)], 0);
	gABC_G2IxRmwmQahHciEYmnYxxg(c, n, opc, dest, tmp, ((NI) 0));
	freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp);
}

static N_INLINE(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw**, X5BX5D__f6j2Rr9bpYzKO9bs9a65jNGYQsystem)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw** s, NI sLen_0, NI i) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw** result;
	NI TM_24XApAWKNvaMkcyklm8bNA_122;
	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw**)0;
	TM_24XApAWKNvaMkcyklm8bNA_122 = subInt(sLen_0, i);
	if ((NU)((NI)(TM_24XApAWKNvaMkcyklm8bNA_122)) >= (NU)(sLen_0)) raiseIndexError2((NI)(TM_24XApAWKNvaMkcyklm8bNA_122),sLen_0-1);
	result = &s[(NI)(TM_24XApAWKNvaMkcyklm8bNA_122)];
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genBindSym_AcnszMkIUvrpRfWF4iqy5g_4)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
		if (!(T3_ == ((NI) 2))) goto LA4_;
		{
			NI idx;
			if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			if (!((*(*n).sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 56) || (*(*n).sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 57) || (*(*n).sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA8_;
			if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			idx = genLiteral_PEuKCZcy9a56kIfBOLoHU5Q(c, (*n).sons->data[((NI) 1)]);
			{
				NI T14_;
				if (!(((NI) ((*dest))) < ((NI) 0))) goto LA12_;
				T14_ = (NI)0;
				T14_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
				(*dest) = ((NI) (T14_));
			}
			LA12_: ;
			gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 172), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), idx);
		}
		goto LA6_;
		LA8_: ;
		{
			localError_NF6kBGchnhQYPbCedyefVA((*c).config, (*n).info, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_116));
		}
		LA6_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		NI x;
		NI T22_;
		NI tmp0;
		NI tmp1;
		NI T27_;
		NI TM_24XApAWKNvaMkcyklm8bNA_120;
		NI TM_24XApAWKNvaMkcyklm8bNA_121;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw** T28_;
		NI tmp2;
		NI T29_;
		NI TM_24XApAWKNvaMkcyklm8bNA_123;
		NI TM_24XApAWKNvaMkcyklm8bNA_124;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw** T30_;
		NI T31_;
		NI T32_;
		{
			NI T21_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA19_;
			T21_ = (NI)0;
			T21_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T21_));
		}
		LA19_: ;
		T22_ = (NI)0;
		T22_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
		x = getTempRange_ok9afQwIXe7dJAeeWPGODEA(c, T22_, ((tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ) 3));
		tmp0 = ((NI) (x));
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		genLit_AcnszMkIUvrpRfWF4iqy5g(c, (*n).sons->data[((NI) 0)], (&tmp0));
		{
			NI i;
			NI colontmp_;
			NI T24_;
			NI TM_24XApAWKNvaMkcyklm8bNA_117;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			T24_ = (NI)0;
			T24_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
			TM_24XApAWKNvaMkcyklm8bNA_117 = subInt(T24_, ((NI) 2));
			colontmp_ = (NI)(TM_24XApAWKNvaMkcyklm8bNA_117);
			i_2 = ((NI) 1);
			{
				while (1) {
					NI r;
					NI TM_24XApAWKNvaMkcyklm8bNA_118;
					NI TM_24XApAWKNvaMkcyklm8bNA_119;
					if (!(i_2 < colontmp_)) goto LA26;
					i = i_2;
					TM_24XApAWKNvaMkcyklm8bNA_118 = addInt(((NI) (x)), i);
					r = ((NI)chckRange((NI)(TM_24XApAWKNvaMkcyklm8bNA_118), ((NI) 0), ((NI) 255)));
					if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
					if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
					gen_KQ9csS06JMUvwHLxUYEy8rA(c, (*n).sons->data[i], r, 0);
					TM_24XApAWKNvaMkcyklm8bNA_119 = addInt(i_2, ((NI) 1));
					i_2 = (NI)(TM_24XApAWKNvaMkcyklm8bNA_119);
				} LA26: ;
			}
		}
		T27_ = (NI)0;
		T27_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
		TM_24XApAWKNvaMkcyklm8bNA_120 = addInt(((NI) (x)), T27_);
		TM_24XApAWKNvaMkcyklm8bNA_121 = subInt((NI)(TM_24XApAWKNvaMkcyklm8bNA_120), ((NI) 2));
		tmp1 = ((NI)chckRange((NI)(TM_24XApAWKNvaMkcyklm8bNA_121), ((NI) -1), ((NI) 255)));
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		T28_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw**)0;
		T28_ = X5BX5D__f6j2Rr9bpYzKO9bs9a65jNGYQsystem((*n).sons->data, ((*n).sons ? (*n).sons->Sup.len : 0), ((NI) 2));
		genLit_AcnszMkIUvrpRfWF4iqy5g(c, (*T28_), (&tmp1));
		T29_ = (NI)0;
		T29_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
		TM_24XApAWKNvaMkcyklm8bNA_123 = addInt(((NI) (x)), T29_);
		TM_24XApAWKNvaMkcyklm8bNA_124 = subInt((NI)(TM_24XApAWKNvaMkcyklm8bNA_123), ((NI) 1));
		tmp2 = ((NI)chckRange((NI)(TM_24XApAWKNvaMkcyklm8bNA_124), ((NI) -1), ((NI) 255)));
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		T30_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw**)0;
		T30_ = X5BX5D__f6j2Rr9bpYzKO9bs9a65jNGYQsystem((*n).sons->data, ((*n).sons ? (*n).sons->Sup.len : 0), ((NI) 1));
		genLit_AcnszMkIUvrpRfWF4iqy5g(c, (*T30_), (&tmp2));
		T31_ = (NI)0;
		T31_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
		gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 173), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), x, ((NI)chckRange(T31_, ((NI) 0), ((NI) 255))));
		T32_ = (NI)0;
		T32_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
		freeTempRange_G85zfShWD6ECITDwyUUFLQ(c, x, T32_);
	}
	LA1_: ;
}

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

N_LIB_PRIVATE N_NIMCALL(void, genCall_AcnszMkIUvrpRfWF4iqy5g_5)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	NI x;
	NI T9_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* fntyp;
	NI T31_;
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		NI T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) ((*dest))) < ((NI) 0));
		if (!(T3_)) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = isEmptyType_nPImuPGZIdcrAfCNyf4oxA_3ast((*n).typ);
		T3_ = !(T5_);
		LA4_: ;
		if (!T3_) goto LA6_;
		T8_ = (NI)0;
		T8_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T8_));
	}
	LA6_: ;
	T9_ = (NI)0;
	T9_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
	x = getTempRange_ok9afQwIXe7dJAeeWPGODEA(c, T9_, ((tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ) 3));
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	fntyp = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*n).sons->data[((NI) 0)]).typ, IL64(36134350135273744));
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				NI r;
				NI TM_24XApAWKNvaMkcyklm8bNA_131;
				NI TM_24XApAWKNvaMkcyklm8bNA_133;
				if (!(i_2 < colontmp_)) goto LA12;
				i = i_2;
				TM_24XApAWKNvaMkcyklm8bNA_131 = addInt(((NI) (x)), i);
				r = ((NI)chckRange((NI)(TM_24XApAWKNvaMkcyklm8bNA_131), ((NI) 0), ((NI) 255)));
				if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
				if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
				gen_KQ9csS06JMUvwHLxUYEy8rA(c, (*n).sons->data[i], r, 0);
				{
					NI T15_;
					NI T23_;
					T15_ = (NI)0;
					T15_ = len_eY4T6kWJb9a9aTWUufrTLjXg_2(fntyp);
					if (!(T15_ <= i)) goto LA16_;
					{
						NimStringDesc* T22_;
						if (!!((((*fntyp).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 0))&63U)))!=0))) goto LA20_;
						T22_ = (NimStringDesc*)0;
						T22_ = dollar__r38WafKlW80RkvoZTcia4Q(TM_24XApAWKNvaMkcyklm8bNA_132);
						internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T22_);
					}
					LA20_: ;
					if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
					if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
					T23_ = (NI)0;
					T23_ = genType_H4AMs0GuxljbeG3aMubkXA(c, (*(*n).sons->data[i]).typ);
					gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 174), r, T23_);
				}
				LA16_: ;
				TM_24XApAWKNvaMkcyklm8bNA_133 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM_24XApAWKNvaMkcyklm8bNA_133);
			} LA12: ;
		}
	}
	{
		NI T28_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA26_;
		T28_ = (NI)0;
		T28_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
		gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 147), ((NI) 0), x, ((NI)chckRange(T28_, ((NI) 0), ((NI) 255))));
	}
	goto LA24_;
	LA26_: ;
	{
		NI T30_;
		T30_ = (NI)0;
		T30_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
		gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 148), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), x, ((NI)chckRange(T30_, ((NI) 0), ((NI) 255))));
	}
	LA24_: ;
	T31_ = (NI)0;
	T31_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
	freeTempRange_G85zfShWD6ECITDwyUUFLQ(c, x, T31_);
}

N_LIB_PRIVATE N_NIMCALL(void, genMagic_5VcHfJsVaWxnq3vvengJ7Q)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg m) {
	switch (m) {
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 131):
	{
		genAndOr_blqV4B2MK6URSu9aJH4D71w(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 155), dest);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 132):
	{
		genAndOr_blqV4B2MK6URSu9aJH4D71w(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 154), dest);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 29):
	{
		NI tmp;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
		{
			NI T8_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA6_;
			T8_ = (NI)0;
			T8_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T8_));
		}
		LA6_: ;
		gABI_u2VxMEzYAC2GH9aMCRX5xhw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 27), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp, IL64(1));
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 55):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 50):
	{
		genAddSubInt_ZyWouE89b9cXkDK7i39aj0dwg(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 26));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 54):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 49):
	{
		genAddSubInt_ZyWouE89b9cXkDK7i39aj0dwg(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 24));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 30):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 31):
	{
		tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc;
		NI d;
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		{
			if (!(m == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 30))) goto LA14_;
			opc = ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 24);
		}
		goto LA12_;
		LA14_: ;
		{
			opc = ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 26);
		}
		LA12_: ;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		d = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
		{
			NIM_BOOL T19_;
			NI TM_24XApAWKNvaMkcyklm8bNA_68;
			if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			T19_ = (NIM_BOOL)0;
			T19_ = isInt8Lit_ZWNdbTkHEJo2QqoHaEPxGA((*n).sons->data[((NI) 2)]);
			if (!T19_) goto LA20_;
			TM_24XApAWKNvaMkcyklm8bNA_68 = addInt(opc, ((NI) 1));
			if (TM_24XApAWKNvaMkcyklm8bNA_68 < 0 || TM_24XApAWKNvaMkcyklm8bNA_68 > 180) raiseOverflow();
			if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			if (!(((TM_24XApAWKNvaMkcyklm8bNA_51[(NU)((*(*n).sons->data[((NI) 2)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 2)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_52));
			gABI_u2VxMEzYAC2GH9aMCRX5xhw(c, n, (tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)(TM_24XApAWKNvaMkcyklm8bNA_68), d, d, (*(*n).sons->data[((NI) 2)]).intVal);
		}
		goto LA17_;
		LA20_: ;
		{
			NI tmp_2;
			if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			tmp_2 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 2)], 0);
			gABC_G2IxRmwmQahHciEYmnYxxg(c, n, opc, d, d, tmp_2);
			freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp_2);
		}
		LA17_: ;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		genNarrow_Cd5XCtdH6RMw63L9bPnNMXA(c, (*n).sons->data[((NI) 1)], ((NI) (d)));
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		genAsgnPatch_j7RN6Eyu9arvNrSkBc4hNHw(c, (*n).sons->data[((NI) 1)], d);
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 32):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 46):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 163):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 173):
	{
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		gen_6vrKVoM8aZ4Rjealu5DZbw(c, (*n).sons->data[((NI) 1)], dest, 0);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 33):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 34):
	{
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genNew_Y59crI4YgTHHCWclw3gn72A_2(c, n);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 35):
	{
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genNewSeq_Y59crI4YgTHHCWclw3gn72A_3(c, n);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 36):
	{
		genNewSeqOfCap_AcnszMkIUvrpRfWF4iqy5g_2(c, n, dest);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 166):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 153));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 167):
	{
		NI T29_;
		NI tmp_3;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		T29_ = (NI)0;
		T29_ = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, T29_);
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp_3 = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*(*n).sons->data[((NI) 1)]).typ);
		gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 171), tmp_3, ((NI) 0));
		{
			NI T34_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA32_;
			T34_ = (NI)0;
			T34_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T34_));
		}
		LA32_: ;
		gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 153), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp_3, ((NI) 0));
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp_3);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 37):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 39):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 40):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 42):
	{
		genUnaryABI_lrQcOjpJx3HtCx1aMMeDpw(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 28), IL64(0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 38):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 41):
	{
		genUnaryABI_lrQcOjpJx3HtCx1aMMeDpw(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 29), IL64(0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 43):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 44):
	{
		NI d_2;
		NI tmp_4;
		tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ T38_;
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		d_2 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp_4 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 2)], 0);
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		genSetType_gvhAyRL9bUcZODometR9bicw(c, (*n).sons->data[((NI) 1)], d_2);
		T38_ = (tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)0;
		{
			if (!(m == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 43))) goto LA41_;
			T38_ = ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 30);
		}
		goto LA39_;
		LA41_: ;
		{
			T38_ = ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 32);
		}
		LA39_: ;
		gABC_G2IxRmwmQahHciEYmnYxxg(c, n, T38_, d_2, tmp_4, ((NI) 0));
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, d_2);
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp_4);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 45):
	{
		genCard_AcnszMkIUvrpRfWF4iqy5g_3(c, n, dest);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 51):
	{
		genBinaryABCnarrow_ZyWouE89b9cXkDK7i39aj0dwg_4(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 34));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 52):
	{
		genBinaryABCnarrow_ZyWouE89b9cXkDK7i39aj0dwg_4(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 35));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 53):
	{
		genBinaryABCnarrow_ZyWouE89b9cXkDK7i39aj0dwg_4(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 36));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 56):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 37));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 57):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 38));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 58):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 39));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 59):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 40));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 60):
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
		NI tmp_5;
		NI tmp2;
		t = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36275087632017424));
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp_5 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
		{
			NI64 TM_24XApAWKNvaMkcyklm8bNA_77;
			if (!((IL64(15423227559936) &((NU64)1<<((NU)((*t).kind)&63U)))!=0)) goto LA55_;
			TM_24XApAWKNvaMkcyklm8bNA_77 = mulInt64((*t).size, IL64(8));
			gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 92), tmp_5, ((NI)chckRange64((NI64)(TM_24XApAWKNvaMkcyklm8bNA_77), ((NI) 0), ((NI) 255))), ((NI) 0));
		}
		LA55_: ;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp2 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 2)], 0);
		{
			NI T61_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA59_;
			T61_ = (NI)0;
			T61_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T61_));
		}
		LA59_: ;
		gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 41), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp_5, tmp2);
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp_5);
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp2);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 61):
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t_2;
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 42));
		t_2 = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36275087632017424));
		{
			NIM_BOOL T65_;
			NIM_BOOL T67_;
			NI64 TM_24XApAWKNvaMkcyklm8bNA_78;
			T65_ = (NIM_BOOL)0;
			T65_ = ((IL64(15393162788864) &((NU64)1<<((NU)((*t_2).kind)&63U)))!=0);
			if (T65_) goto LA66_;
			T67_ = (NIM_BOOL)0;
			T67_ = ((*t_2).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 40));
			if (!(T67_)) goto LA68_;
			T67_ = ((*t_2).size < IL64(8));
			LA68_: ;
			T65_ = T67_;
			LA66_: ;
			if (!T65_) goto LA69_;
			TM_24XApAWKNvaMkcyklm8bNA_78 = mulInt64((*t_2).size, IL64(8));
			gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 92), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), ((NI)chckRange64((NI64)(TM_24XApAWKNvaMkcyklm8bNA_78), ((NI) 0), ((NI) 255))), ((NI) 0));
		}
		goto LA63_;
		LA69_: ;
		{
			NIM_BOOL T72_;
			NIM_BOOL T74_;
			NI64 TM_24XApAWKNvaMkcyklm8bNA_79;
			T72_ = (NIM_BOOL)0;
			T72_ = ((IL64(30064771072) &((NU64)1<<((NU)((*t_2).kind)&63U)))!=0);
			if (T72_) goto LA73_;
			T74_ = (NIM_BOOL)0;
			T74_ = ((*t_2).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31));
			if (!(T74_)) goto LA75_;
			T74_ = ((*t_2).size < IL64(8));
			LA75_: ;
			T72_ = T74_;
			LA73_: ;
			if (!T72_) goto LA76_;
			TM_24XApAWKNvaMkcyklm8bNA_79 = mulInt64((*t_2).size, IL64(8));
			gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 93), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), ((NI)chckRange64((NI64)(TM_24XApAWKNvaMkcyklm8bNA_79), ((NI) 0), ((NI) 255))), ((NI) 0));
		}
		goto LA63_;
		LA76_: ;
		LA63_: ;
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 62):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 43));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 63):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 44));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 64):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 45));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 65):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 46));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 70):
	{
		genBinaryABCnarrowU_ZyWouE89b9cXkDK7i39aj0dwg_5(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 47));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 71):
	{
		genBinaryABCnarrowU_ZyWouE89b9cXkDK7i39aj0dwg_5(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 48));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 72):
	{
		genBinaryABCnarrowU_ZyWouE89b9cXkDK7i39aj0dwg_5(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 49));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 73):
	{
		genBinaryABCnarrowU_ZyWouE89b9cXkDK7i39aj0dwg_5(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 50));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 74):
	{
		genBinaryABCnarrowU_ZyWouE89b9cXkDK7i39aj0dwg_5(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 51));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 75):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 91):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 85):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 88):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 52));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 76):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 86):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 89):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 92):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 53));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 77):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 87):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 90):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 93):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 54));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 78):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 55));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 79):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 56));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 80):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 57));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 96):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 81):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 83):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 58));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 97):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 82):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 84):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 59));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 100):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 94):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 95):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 60));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 98):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 63));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 104):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 64));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 101):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 102):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 65));
		genNarrow_Cd5XCtdH6RMw63L9bPnNMXA(c, n, (*dest));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 108):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 66));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 105):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 107):
	{
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		gen_6vrKVoM8aZ4Rjealu5DZbw(c, (*n).sons->data[((NI) 1)], dest, 0);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 106):
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t_3;
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 67));
		t_3 = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36275087632017424));
		{
			NIM_BOOL T104_;
			NIM_BOOL T106_;
			NI64 TM_24XApAWKNvaMkcyklm8bNA_81;
			T104_ = (NIM_BOOL)0;
			T104_ = ((IL64(15393162788864) &((NU64)1<<((NU)((*t_3).kind)&63U)))!=0);
			if (T104_) goto LA105_;
			T106_ = (NIM_BOOL)0;
			T106_ = ((*t_3).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 40));
			if (!(T106_)) goto LA107_;
			T106_ = ((*t_3).size < IL64(8));
			LA107_: ;
			T104_ = T106_;
			LA105_: ;
			if (!T104_) goto LA108_;
			TM_24XApAWKNvaMkcyklm8bNA_81 = mulInt64((*t_3).size, IL64(8));
			gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 92), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), ((NI)chckRange64((NI64)(TM_24XApAWKNvaMkcyklm8bNA_81), ((NI) 0), ((NI) 255))), ((NI) 0));
		}
		LA108_: ;
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 119):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 120):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 121):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 122):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 123):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 124):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 125):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 126):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 127):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 128):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 129):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 130):
	{
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		genConv_3t9aH9c9bW3NlM77J0pxtz3hg(c, n, (*n).sons->data[((NI) 1)], dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 88));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 110):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 111):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 112):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 113):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 114):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 115):
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t_4;
		NI tmp_6;
		NI64 TM_24XApAWKNvaMkcyklm8bNA_82;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		t_4 = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*n).sons->data[((NI) 1)]).typ, IL64(36275087632017424));
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp_6 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
		TM_24XApAWKNvaMkcyklm8bNA_82 = mulInt64((*t_4).size, IL64(8));
		gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 92), tmp_6, ((NI)chckRange64((NI64)(TM_24XApAWKNvaMkcyklm8bNA_82), ((NI) 0), ((NI) 255))), ((NI) 0));
		{
			NI T116_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA114_;
			T116_ = (NI)0;
			T116_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T116_));
		}
		LA114_: ;
		gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 4), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp_6, ((NI) 0));
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp_6);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 116):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 117):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 118):
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t_5;
		NI tmp_7;
		NI64 TM_24XApAWKNvaMkcyklm8bNA_83;
		t_5 = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36275087632017424));
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp_7 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
		{
			NI T122_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA120_;
			T122_ = (NI)0;
			T122_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T122_));
		}
		LA120_: ;
		TM_24XApAWKNvaMkcyklm8bNA_83 = mulInt64((*t_5).size, IL64(8));
		gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 178), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp_7, ((NI)chckRange64((NI64)(TM_24XApAWKNvaMkcyklm8bNA_83), ((NI) 0), ((NI) 255))));
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp_7);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 133):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 99):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 68));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 134):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 69));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 135):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 70));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 136):
	{
		genBinarySet_ZyWouE89b9cXkDK7i39aj0dwg_6(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 71));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 137):
	{
		genBinarySet_ZyWouE89b9cXkDK7i39aj0dwg_6(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 72));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 138):
	{
		genBinarySet_ZyWouE89b9cXkDK7i39aj0dwg_6(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 73));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 139):
	{
		genBinarySet_ZyWouE89b9cXkDK7i39aj0dwg_6(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 74));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 140):
	{
		genBinarySet_ZyWouE89b9cXkDK7i39aj0dwg_6(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 75));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 141):
	{
		genBinarySet_ZyWouE89b9cXkDK7i39aj0dwg_6(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 76));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 142):
	{
		genBinarySet_ZyWouE89b9cXkDK7i39aj0dwg_6(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 77));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 143):
	{
		genVarargsABC_ZyWouE89b9cXkDK7i39aj0dwg_7(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 78));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 153):
	{
		genBinarySet_ZyWouE89b9cXkDK7i39aj0dwg_6(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 79));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 154):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 80));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 155):
	{
		NI tmp_8;
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp_8 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
		gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 90), tmp_8, ((NI) 0), ((NI) 0));
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp_8);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 156):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 157):
	{
		NI d_3;
		NI tmp_9;
		tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ T138_;
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		d_3 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp_9 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 2)], 0);
		T138_ = (tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)0;
		{
			if (!(m == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 156))) goto LA141_;
			T138_ = ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 81);
		}
		goto LA139_;
		LA141_: ;
		{
			T138_ = ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 82);
		}
		LA139_: ;
		gABC_G2IxRmwmQahHciEYmnYxxg(c, n, T138_, d_3, tmp_9, ((NI) 0));
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		genAsgnPatch_j7RN6Eyu9arvNrSkBc4hNHw(c, (*n).sons->data[((NI) 1)], d_3);
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp_9);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 161):
	{
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* T145_;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T151_;
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		T145_ = (tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*)0;
		{
			if (!((*c).prc == NIM_NIL)) goto LA148_;
			T145_ = (*c).module;
		}
		goto LA146_;
		LA148_: ;
		{
			T145_ = (*(*c).prc).sym;
		}
		LA146_: ;
		T151_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		T151_ = lowerSwap_8A4G64HByteFanrMUexmNw_2((*c).graph, n, T145_);
		gen_M9cKwar4hMj62R1lH9bydpDQ(c, T151_, 0);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 162):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 83));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 164):
	{
		NI tmp1;
		NI tmp2_2;
		NI tmp3;
		{
			NI T158_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA156_;
			T158_ = (NI)0;
			T158_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T158_));
		}
		LA156_: ;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp1 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp2_2 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 2)], 0);
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp3 = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*(*n).sons->data[((NI) 2)]).typ);
		gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 29), tmp3, tmp1, ((NI) 0));
		gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 86), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp1, tmp2_2);
		gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 86), tmp3, ((NI) 0), ((NI) 0));
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp1);
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp2_2);
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp3);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 165):
	{
		NI tmp1_2;
		NI tmp2_3;
		NI tmp3_2;
		{
			NI T164_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA162_;
			T164_ = (NI)0;
			T164_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T164_));
		}
		LA162_: ;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp1_2 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp2_3 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 2)], 0);
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 3)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 3),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp3_2 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 3)], 0);
		gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 86), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp1_2, tmp2_3);
		gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 86), tmp3_2, ((NI) 0), ((NI) 0));
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp1_2);
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp2_3);
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp3_2);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 168):
	{
		NI d2;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* d2AsNode;
		NI tmp1_3;
		NI tmp3_3;
		{
			NI T170_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA168_;
			T170_ = (NI)0;
			T170_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T170_));
		}
		LA168_: ;
		d2 = (NI)0;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*n).sons->data[((NI) 2)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 2)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*(*n).sons->data[((NI) 2)]).sons ? (*(*n).sons->data[((NI) 2)]).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*(*n).sons->data[((NI) 2)]).sons ? (*(*n).sons->data[((NI) 2)]).sons->Sup.len : 0)-1);
		d2AsNode = (*(*n).sons->data[((NI) 2)]).sons->data[((NI) 0)];
		{
			NIM_BOOL T173_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T176_;
			T173_ = (NIM_BOOL)0;
			T173_ = needsAsgnPatch_ZWNdbTkHEJo2QqoHaEPxGA_2(d2AsNode);
			if (!T173_) goto LA174_;
			T176_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T176_ = getSysType_VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 36));
			d2 = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, T176_);
		}
		goto LA171_;
		LA174_: ;
		{
			d2 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, d2AsNode, 0);
		}
		LA171_: ;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp1_3 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 3)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 3),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp3_3 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 3)], 0);
		gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 87), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp1_3, d2);
		gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 87), tmp3_3, ((NI) 0), ((NI) 0));
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp1_3);
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp3_3);
		genAsgnPatch_j7RN6Eyu9arvNrSkBc4hNHw(c, d2AsNode, d2);
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, d2);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 175):
	{
		NI d_4;
		NI T179_;
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		d_4 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		T179_ = (NI)0;
		T179_ = genType_H4AMs0GuxljbeG3aMubkXA(c, (*(*n).sons->data[((NI) 1)]).typ);
		gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 165), d_4, T179_);
		gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 13), d_4, ((NI) (d_4)));
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		genAsgnPatch_j7RN6Eyu9arvNrSkBc4hNHw(c, (*n).sons->data[((NI) 1)], d_4);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 172):
	{
		tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ T186_;
		NI T187_;
		{
			NI T185_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA183_;
			T185_ = (NI)0;
			T185_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T185_));
		}
		LA183_: ;
		T186_ = (tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)0;
		T186_ = ldNullOpcode_dZWW1z30r9beffMQ9bbGg9amA((*n).typ);
		T187_ = (NI)0;
		T187_ = genType_H4AMs0GuxljbeG3aMubkXA(c, (*n).typ);
		gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, T186_, ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), T187_);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 14):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 13):
	{
		NI tmp_10;
		NI idx;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T194_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
		NI T199_;
		tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ T200_;
		{
			NI T193_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA191_;
			T193_ = (NI)0;
			T193_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T193_));
		}
		LA191_: ;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp_10 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
		T194_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T194_ = getSysType_VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31));
		idx = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, T194_);
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		typ = (*(*n).sons->data[((NI) 2)]).typ;
		{
			if (!(m == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 14))) goto LA197_;
			typ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(typ, IL64(36275087638309136));
		}
		LA197_: ;
		T199_ = (NI)0;
		T199_ = genType_H4AMs0GuxljbeG3aMubkXA(c, typ);
		gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 171), idx, T199_);
		T200_ = (tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)0;
		{
			if (!(m == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 14))) goto LA203_;
			T200_ = ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 84);
		}
		goto LA201_;
		LA203_: ;
		{
			T200_ = ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 85);
		}
		LA201_: ;
		gABC_G2IxRmwmQahHciEYmnYxxg(c, n, T200_, ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp_10, idx);
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp_10);
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, idx);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 8):
	{
		NI tmp_11;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T212_;
		{
			NI T211_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA209_;
			T211_ = (NI)0;
			T211_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T211_));
		}
		LA209_: ;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp_11 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		T212_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T212_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*n).sons->data[((NI) 1)]).typ, IL64(36275087632017424));
		switch ((*T212_).kind) {
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 29):
		{
			gABI_u2VxMEzYAC2GH9aMCRX5xhw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 29), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp_11, IL64(1));
		}
		break;
		default:
		{
			gABI_u2VxMEzYAC2GH9aMCRX5xhw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 28), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp_11, IL64(1));
		}
		break;
		}
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp_11);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 20):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n_2;
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		n_2 = skipConv_BH9abOhPX8pH0DnEWlRxmlw((*n).sons->data[((NI) 1)]);
		{
			NI x;
			NI T220_;
			NI T224_;
			NI T225_;
			if (!((*n_2).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 41))) goto LA218_;
			T220_ = (NI)0;
			T220_ = len_P89cqdlERShb9alU3iC0yj8wast(n_2);
			x = getTempRange_ok9afQwIXe7dJAeeWPGODEA(c, T220_, ((tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ) 3));
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = len_P89cqdlERShb9alU3iC0yj8wast(n_2);
				i_2 = ((NI) 0);
				{
					while (1) {
						NI r;
						NI TM_24XApAWKNvaMkcyklm8bNA_109;
						NI TM_24XApAWKNvaMkcyklm8bNA_110;
						if (!(i_2 < colontmp_)) goto LA223;
						i = i_2;
						TM_24XApAWKNvaMkcyklm8bNA_109 = addInt(((NI) (x)), i);
						r = ((NI)chckRange((NI)(TM_24XApAWKNvaMkcyklm8bNA_109), ((NI) 0), ((NI) 255)));
						if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n_2).kind)>>3] &(1U<<((NU)((*n_2).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
						if ((NU)(i) >= (NU)((*n_2).sons ? (*n_2).sons->Sup.len : 0)) raiseIndexError2(i,((*n_2).sons ? (*n_2).sons->Sup.len : 0)-1);
						gen_KQ9csS06JMUvwHLxUYEy8rA(c, (*n_2).sons->data[i], r, 0);
						TM_24XApAWKNvaMkcyklm8bNA_110 = addInt(i_2, ((NI) 1));
						i_2 = (NI)(TM_24XApAWKNvaMkcyklm8bNA_110);
					} LA223: ;
				}
			}
			T224_ = (NI)0;
			T224_ = len_P89cqdlERShb9alU3iC0yj8wast(n_2);
			gABC_G2IxRmwmQahHciEYmnYxxg(c, n_2, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 146), x, ((NI)chckRange(T224_, ((NI) 0), ((NI) 255))), ((NI) 0));
			T225_ = (NI)0;
			T225_ = len_P89cqdlERShb9alU3iC0yj8wast(n_2);
			freeTempRange_G85zfShWD6ECITDwyUUFLQ(c, x, T225_);
		}
		LA218_: ;
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 149):
	{
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genBinaryStmtVar_K9aa9aabqu8dDUTWxwwkJdhg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 94));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 150):
	{
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genBinaryStmtVar_K9aa9aabqu8dDUTWxwwkJdhg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 95));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 151):
	{
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genBinaryStmtVar_K9aa9aabqu8dDUTWxwwkJdhg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 96));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 25):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 134));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 26):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 135));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 12):
	{
		NI tmp_12;
		NI T237_;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp_12 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
		{
			NI T236_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA234_;
			T236_ = (NI)0;
			T236_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T236_));
		}
		LA234_: ;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		T237_ = (NI)0;
		T237_ = genType_H4AMs0GuxljbeG3aMubkXA(c, (*(*n).sons->data[((NI) 1)]).typ);
		gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 174), tmp_12, T237_);
		gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 175), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp_12, ((NI) 0));
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp_12);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 22):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 132));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 23):
	{
		genBinaryABCD_ZyWouE89b9cXkDK7i39aj0dwg_8(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 133));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 234):
	{
		genUnaryABI_lrQcOjpJx3HtCx1aMMeDpw(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 28), IL64(16));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 278):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 144));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 294):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 145));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 292):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 179));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 295):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 180));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 235):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 150));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 236):
	{
		genVoidABC_bOxuqhoYZQ9cPtUccjLVwvA(c, n, (*dest), ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 151));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 239):
	{
		genVoidABC_bOxuqhoYZQ9cPtUccjLVwvA(c, n, (*dest), ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 119));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 237):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 98));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 238):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 99));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 240):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 100));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 241):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 101));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 242):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 121));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 243):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 122));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 244):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 123));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 245):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 124));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 246):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 125));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 247):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 126));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 248):
	{
		genVoidABC_bOxuqhoYZQ9cPtUccjLVwvA(c, n, (*dest), ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 127));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 249):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 128));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 250):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 129));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 251):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 130));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 252):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 131));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 253):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 102));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 254):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 103));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 255):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 104));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 256):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 105));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 257):
	{
		NI tmp_13;
		NI rc;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp_13 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
		{
			NI T272_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA270_;
			T272_ = (NI)0;
			T272_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T272_));
		}
		LA270_: ;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (!(((TM_24XApAWKNvaMkcyklm8bNA_9[(NU)((*(*n).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_10));
		if (eqStrings((*(*(*(*n).sons->data[((NI) 0)]).sym).name).s, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_111))) goto LA273_;
		if (eqStrings((*(*(*(*n).sons->data[((NI) 0)]).sym).name).s, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_112))) goto LA274_;
		if (eqStrings((*(*(*(*n).sons->data[((NI) 0)]).sym).name).s, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_113))) goto LA275_;
		goto LA276_;
		LA273_: ;
		{
			rc = ((NI) 0);
		}
		goto LA277_;
		LA274_: ;
		{
			rc = ((NI) 1);
		}
		goto LA277_;
		LA275_: ;
		{
			rc = ((NI) 2);
		}
		goto LA277_;
		LA276_: ;
		{
			rc = ((NI) 3);
		}
		LA277_: ;
		gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 106), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp_13, ((NI)chckRange(rc, ((NI) 0), ((NI) 255))));
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp_13);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 271):
	{
		NI imm;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (!(((TM_24XApAWKNvaMkcyklm8bNA_9[(NU)((*(*n).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_10));
		if (eqStrings((*(*(*(*n).sons->data[((NI) 0)]).sym).name).s, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_114))) goto LA283_;
		if (eqStrings((*(*(*(*n).sons->data[((NI) 0)]).sym).name).s, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_115))) goto LA284_;
		goto LA285_;
		LA283_: ;
		{
			imm = ((NI) 0);
		}
		goto LA286_;
		LA284_: ;
		{
			imm = ((NI) 1);
		}
		goto LA286_;
		LA285_: ;
		{
			imm = ((NI) 2);
		}
		LA286_: ;
		genUnaryABI_lrQcOjpJx3HtCx1aMMeDpw(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 109), ((NI64) (imm)));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 258):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 107));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 270):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 108));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 259):
	{
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genBinaryStmt_K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 110));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 260):
	{
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genBinaryStmt_K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 111));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 261):
	{
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genBinaryStmt_K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 112));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 262):
	{
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genBinaryStmt_K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 113));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 263):
	{
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genBinaryStmt_K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 114));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 264):
	{
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genBinaryStmt_K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 115));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 266):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 116));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 267):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 117));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 268):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 118));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 272):
	{
		genBindSym_AcnszMkIUvrpRfWF4iqy5g_4(c, n, dest);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 269):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 143));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 275):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 142));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 276):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 61));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 277):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 62));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 265):
	{
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (!(((TM_24XApAWKNvaMkcyklm8bNA_9[(NU)((*(*n).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_10));
		if (eqStrings((*(*(*(*n).sons->data[((NI) 0)]).sym).name).s, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_125))) goto LA307_;
		if (eqStrings((*(*(*(*n).sons->data[((NI) 0)]).sym).name).s, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_126))) goto LA308_;
		if (eqStrings((*(*(*(*n).sons->data[((NI) 0)]).sym).name).s, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_127))) goto LA309_;
		if (eqStrings((*(*(*(*n).sons->data[((NI) 0)]).sym).name).s, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_128))) goto LA310_;
		goto LA311_;
		LA307_: ;
		{
			genUnaryABI_lrQcOjpJx3HtCx1aMMeDpw(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 140), IL64(0));
		}
		goto LA312_;
		LA308_: ;
		{
			genUnaryABI_lrQcOjpJx3HtCx1aMMeDpw(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 140), IL64(1));
		}
		goto LA312_;
		LA309_: ;
		{
			genUnaryABI_lrQcOjpJx3HtCx1aMMeDpw(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 140), IL64(2));
		}
		goto LA312_;
		LA310_: ;
		{
			{
				NI T319_;
				NimStringDesc* T322_;
				T319_ = (NI)0;
				T319_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
				if (!!((T319_ == ((NI) 3)))) goto LA320_;
				T322_ = (NimStringDesc*)0;
				T322_ = dollar__r38WafKlW80RkvoZTcia4Q(TM_24XApAWKNvaMkcyklm8bNA_129);
				internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T322_);
			}
			LA320_: ;
			unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
			genBinaryStmt_K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 141));
		}
		goto LA312_;
		LA311_: ;
		{
			{
				NimStringDesc* T328_;
				if (!NIM_TRUE) goto LA326_;
				T328_ = (NimStringDesc*)0;
				T328_ = dollar__r38WafKlW80RkvoZTcia4Q(TM_24XApAWKNvaMkcyklm8bNA_130);
				internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T328_);
			}
			LA326_: ;
		}
		LA312_: ;
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 280):
	{
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genBinaryStmt_K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 139));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 281):
	{
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genBinaryStmt_K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 138));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 282):
	{
		{
			NI T334_;
			T334_ = (NI)0;
			T334_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
			if (!(T334_ <= ((NI) 1))) goto LA335_;
			gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 136), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), ((NI) 0), ((NI) 0));
		}
		goto LA332_;
		LA335_: ;
		{
			unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
			genBinaryStmt_K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 137));
		}
		LA332_: ;
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 274):
	{
		{
			NI T343_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA341_;
			T343_ = (NI)0;
			T343_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T343_));
		}
		LA341_: ;
		gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 152), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), ((NI) 0), ((NI) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 279):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 120));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 66):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 67):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 109):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 68):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 69):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 103):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 145):
	{
		genCall_AcnszMkIUvrpRfWF4iqy5g_5(c, n, dest);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 27):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* arg;
		{
			NI T349_;
			T349_ = (NI)0;
			T349_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
			if (!!((T349_ == ((NI) 2)))) goto LA350_;
			globalError_NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_134));
		}
		LA350_: ;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		arg = (*n).sons->data[((NI) 1)];
		{
			if (!((*arg).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*arg).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*arg).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*arg).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*arg).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*arg).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*arg).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 32))) goto LA354_;
			{
				NI T360_;
				if (!(((NI) ((*dest))) < ((NI) 0))) goto LA358_;
				T360_ = (NI)0;
				T360_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
				(*dest) = ((NI) (T360_));
			}
			LA358_: ;
			genCall_AcnszMkIUvrpRfWF4iqy5g_5(c, arg, dest);
		}
		goto LA352_;
		LA354_: ;
		{
			globalError_NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_135));
		}
		LA352_: ;
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 9):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 10):
	{
		globalError_NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_136));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 289):
	{
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 171):
	{
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 169):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* arg_2;
		NI a;
		tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ T375_;
		NI T376_;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		arg_2 = (*n).sons->data[((NI) 1)];
		a = genx_CcIHODsUfIZ32Dw7elmEjQ(c, arg_2, 0);
		{
			if (!!((((NI) 0) <= ((NI) ((*dest)))))) goto LA368_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_137));
		}
		LA368_: ;
		{
			NI T374_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA372_;
			T374_ = (NI)0;
			T374_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*arg_2).typ);
			(*dest) = ((NI) (T374_));
		}
		LA372_: ;
		T375_ = (tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)0;
		T375_ = whichAsgnOpc_Qj2d7lDNNqHtRVhBO4JPQg(arg_2);
		gABC_G2IxRmwmQahHciEYmnYxxg(c, arg_2, T375_, ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), a, ((NI) 1));
		T376_ = (NI)0;
		T376_ = genType_H4AMs0GuxljbeG3aMubkXA(c, (*arg_2).typ);
		gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 165), a, T376_);
		gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 13), a, ((NI) (a)));
		genAsgnPatch_j7RN6Eyu9arvNrSkBc4hNHw(c, arg_2, a);
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, a);
	}
	break;
	default:
	{
		NimStringDesc* T378_;
		T378_ = (NimStringDesc*)0;
		T378_ = rawNewString((reprEnum((NI)m, (&NTI_shZhZOdbVC5nnFvcXQAImg_)) ? reprEnum((NI)m, (&NTI_shZhZOdbVC5nnFvcXQAImg_))->Sup.len : 0) + 26);
appendString(T378_, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_58));
appendString(T378_, reprEnum((NI)m, (&NTI_shZhZOdbVC5nnFvcXQAImg_)));
		globalError_NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, T378_);
	}
	break;
	}
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matches_52uSyG4N9c9cuGgSFhItwpgQ)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s, NimStringDesc** y, NI yLen_0) {
	NIM_BOOL result;
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s_2;
	NI L;
	NI TM_24XApAWKNvaMkcyklm8bNA_140;
{	result = (NIM_BOOL)0;
	s_2 = s;
	TM_24XApAWKNvaMkcyklm8bNA_140 = subInt(yLen_0, ((NI) 1));
	L = (NI)(TM_24XApAWKNvaMkcyklm8bNA_140);
	{
		while (1) {
			NI TM_24XApAWKNvaMkcyklm8bNA_141;
			if (!(((NI) 0) <= L)) goto LA2;
			{
				NIM_BOOL T5_;
				NIM_BOOL T7_;
				NI T8_;
				T5_ = (NIM_BOOL)0;
				T5_ = (s_2 == NIM_NIL);
				if (T5_) goto LA6_;
				T7_ = (NIM_BOOL)0;
				if ((NU)(L) >= (NU)(yLen_0)) raiseIndexError2(L,yLen_0-1);
				T8_ = (NI)0;
				T8_ = nsuCmpIgnoreStyle(y[L], (*(*s_2).name).s);
				T7_ = !((T8_ == ((NI) 0)));
				if (!(T7_)) goto LA9_;
				if ((NU)(L) >= (NU)(yLen_0)) raiseIndexError2(L,yLen_0-1);
				T7_ = !(eqStrings(y[L], ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_43)));
				LA9_: ;
				T5_ = T7_;
				LA6_: ;
				if (!T5_) goto LA10_;
				result = NIM_FALSE;
				goto BeforeRet_;
			}
			LA10_: ;
			{
				if (!(((*s_2).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 2))&63U)))!=0)) goto LA14_;
				s_2 = (*(*s_2).owner).owner;
			}
			goto LA12_;
			LA14_: ;
			{
				s_2 = (*s_2).owner;
			}
			LA12_: ;
			TM_24XApAWKNvaMkcyklm8bNA_141 = subInt(L, ((NI) 1));
			L = (NI)(TM_24XApAWKNvaMkcyklm8bNA_141);
		} LA2: ;
	}
	result = NIM_TRUE;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genMarshalLoad_AcnszMkIUvrpRfWF4iqy5g_6)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	NI tmp;
	NI T6_;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
	gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 176), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp, ((NI) 0));
	T6_ = (NI)0;
	T6_ = genType_H4AMs0GuxljbeG3aMubkXA(c, (*n).typ);
	gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 176), ((NI) 0), T6_);
	freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp);
}

N_LIB_PRIVATE N_NIMCALL(void, genMarshalStore_AcnszMkIUvrpRfWF4iqy5g_7)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	NI tmp;
	NI T6_;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
	gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 177), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp, ((NI) 0));
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	T6_ = (NI)0;
	T6_ = genType_H4AMs0GuxljbeG3aMubkXA(c, (*(*n).sons->data[((NI) 1)]).typ);
	gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 177), ((NI) 0), T6_);
	freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp);
}

static N_INLINE(void, clearDest_dfAz2NYFCQaf0gjeZoi5HAvmgen)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) 0) <= ((NI) ((*dest))));
		if (!(T3_)) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*n).typ == 0);
		if (T5_) goto LA6_;
		T5_ = ((*(*n).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 63));
		LA6_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA7_;
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))));
		(*dest) = ((NI) -1);
	}
	LA7_: ;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isInt16Lit_ZWNdbTkHEJo2QqoHaEPxGA_3)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		NIM_BOOL T5_;
		if (!((*n).kind >= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*n).kind <= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 15))) goto LA3_;
		T5_ = (NIM_BOOL)0;
		if (!(((TM_24XApAWKNvaMkcyklm8bNA_51[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_52));
		T5_ = (IL64(-32768) <= (*n).intVal);
		if (!(T5_)) goto LA6_;
		if (!(((TM_24XApAWKNvaMkcyklm8bNA_51[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_52));
		T5_ = ((*n).intVal <= IL64(32767));
		LA6_: ;
		result = T5_;
	}
	LA3_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, preventFalseAlias_yPz2tNhzBdEEj9c49aHO2Gzw_2)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc, NI dest, NI idx, NI value) {
	{
		if (!!(!(((*n).typ == NIM_NIL)))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_148));
	}
	LA3_: ;
	{
		NIM_BOOL T7_;
		NIM_BOOL T8_;
		NIM_BOOL T10_;
		T7_ = (NIM_BOOL)0;
		T8_ = (NIM_BOOL)0;
		T8_ = isTemp_3YlwkOhvADs19cHhcnE9boYA(c, ((NI) (dest)));
		T7_ = !(T8_);
		if (!(T7_)) goto LA9_;
		T10_ = (NIM_BOOL)0;
		T10_ = fitsRegister_NRltpJT49cakdDyz9a9cNr4Kw((*n).typ);
		T7_ = !(T10_);
		LA9_: ;
		if (!T7_) goto LA11_;
		genAdditionalCopy_yPz2tNhzBdEEj9c49aHO2Gzw(c, n, opc, dest, idx, value);
	}
	goto LA5_;
	LA11_: ;
	{
		gABC_G2IxRmwmQahHciEYmnYxxg(c, n, opc, dest, idx, value);
	}
	LA5_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genAsgn_441oTPupNGUtbMyisB9aUyA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, NIM_BOOL requiresCopy) {
	switch ((*le).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 42):
	{
		NI dest;
		NI idx;
		NI tmp;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*le).sons ? (*le).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*le).sons ? (*le).sons->Sup.len : 0)-1);
		dest = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*le).sons->data[((NI) 0)], 1);
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*le).sons ? (*le).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*le).sons ? (*le).sons->Sup.len : 0)-1);
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*le).sons ? (*le).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*le).sons ? (*le).sons->Sup.len : 0)-1);
		idx = genIndex_DPfOz7YYSBixDRy9cYPeZIA(c, (*le).sons->data[((NI) 1)], (*(*le).sons->data[((NI) 0)]).typ);
		tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, ri, 0);
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T4_;
			if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 0)) >= (NU)((*le).sons ? (*le).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*le).sons ? (*le).sons->Sup.len : 0)-1);
			T4_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T4_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*le).sons->data[((NI) 0)]).typ, IL64(36134350144710672));
			if (!((805306368 &((NU64)1<<((NU)((*T4_).kind)&63U)))!=0)) goto LA5_;
			preventFalseAlias_yPz2tNhzBdEEj9c49aHO2Gzw_2(c, le, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 22), dest, idx, tmp);
		}
		goto LA2_;
		LA5_: ;
		{
			preventFalseAlias_yPz2tNhzBdEEj9c49aHO2Gzw_2(c, le, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 15), dest, idx, tmp);
		}
		LA2_: ;
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 46):
	{
		NI objR;
		NI idx_2;
		NI tmp_2;
		objR = ((NI) -1);
		genCheckedObjAccessAux_6vrKVoM8aZ4Rjealu5DZbw_3(c, le, (&objR), 1);
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*le).sons ? (*le).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*le).sons ? (*le).sons->Sup.len : 0)-1);
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*le).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*le).sons->data[((NI) 0)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*(*le).sons->data[((NI) 0)]).sons ? (*(*le).sons->data[((NI) 0)]).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*(*le).sons->data[((NI) 0)]).sons ? (*(*le).sons->data[((NI) 0)]).sons->Sup.len : 0)-1);
		idx_2 = genField_9a15qaQFBwMjo9b9byRZNZAHw(c, (*(*le).sons->data[((NI) 0)]).sons->data[((NI) 1)]);
		tmp_2 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, ri, 0);
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*le).sons ? (*le).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*le).sons ? (*le).sons->Sup.len : 0)-1);
		preventFalseAlias_yPz2tNhzBdEEj9c49aHO2Gzw_2(c, (*le).sons->data[((NI) 0)], ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 17), ((NI)chckRange(objR, ((NI) 0), ((NI) 255))), idx_2, tmp_2);
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp_2);
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, ((NI)chckRange(objR, ((NI) 0), ((NI) 255))));
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 45):
	{
		NI dest_2;
		NI idx_3;
		NI tmp_3;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*le).sons ? (*le).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*le).sons ? (*le).sons->Sup.len : 0)-1);
		dest_2 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*le).sons->data[((NI) 0)], 1);
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*le).sons ? (*le).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*le).sons ? (*le).sons->Sup.len : 0)-1);
		idx_3 = genField_9a15qaQFBwMjo9b9byRZNZAHw(c, (*le).sons->data[((NI) 1)]);
		tmp_3 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, ri, 0);
		preventFalseAlias_yPz2tNhzBdEEj9c49aHO2Gzw_2(c, le, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 17), dest_2, idx_3, tmp_3);
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp_3);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 47):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 65):
	{
		NI dest_3;
		NI tmp_4;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*le).sons ? (*le).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*le).sons ? (*le).sons->Sup.len : 0)-1);
		dest_3 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*le).sons->data[((NI) 0)], 1);
		tmp_4 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, ri, 0);
		preventFalseAlias_yPz2tNhzBdEEj9c49aHO2Gzw_2(c, le, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 21), dest_3, ((NI) 0), tmp_4);
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp_4);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s;
		if (!(((TM_24XApAWKNvaMkcyklm8bNA_9[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_10));
		s = (*le).sym;
		checkCanEval_Y59crI4YgTHHCWclw3gn72A(c, le);
		{
			NIM_BOOL T14_;
			NI tmp_5;
			NI val;
			T14_ = (NIM_BOOL)0;
			T14_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0);
			if (!(T14_)) goto LA15_;
			T14_ = !(((*s).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 21)));
			LA15_: ;
			if (!T14_) goto LA16_;
			tmp_5 = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*le).typ);
			gen_KQ9csS06JMUvwHLxUYEy8rA(c, le, tmp_5, 2);
			val = genx_CcIHODsUfIZ32Dw7elmEjQ(c, ri, 0);
			preventFalseAlias_yPz2tNhzBdEEj9c49aHO2Gzw_2(c, le, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 21), tmp_5, ((NI) 0), val);
			freeTemp_1nMAqbaMl87FxWu2gyhzog(c, val);
			freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp_5);
		}
		goto LA12_;
		LA16_: ;
		{
			NI dest_4;
			NI TM_24XApAWKNvaMkcyklm8bNA_150;
			{
				if (!((*s).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 21))) goto LA21_;
				setSlot_wdPbhGpyRtpS49bqSwMfggA(c, s);
			}
			LA21_: ;
			{
				NIM_BOOL T25_;
				NIM_BOOL T27_;
				NimStringDesc* T31_;
				T25_ = (NIM_BOOL)0;
				T25_ = (((NI) 0) < (*s).position);
				if (T25_) goto LA26_;
				T27_ = (NIM_BOOL)0;
				T27_ = ((*s).position == ((NI) 0));
				if (!(T27_)) goto LA28_;
				T27_ = ((2056 &(1U<<((NU)((*s).kind)&31U)))!=0);
				LA28_: ;
				T25_ = T27_;
				LA26_: ;
				if (!!(T25_)) goto LA29_;
				T31_ = (NimStringDesc*)0;
				T31_ = dollar__r38WafKlW80RkvoZTcia4Q(TM_24XApAWKNvaMkcyklm8bNA_149);
				internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T31_);
			}
			LA29_: ;
			TM_24XApAWKNvaMkcyklm8bNA_150 = addInt((*s).position, ((*s).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 3)));
			dest_4 = ((NI)chckRange((NI)(TM_24XApAWKNvaMkcyklm8bNA_150), ((NI) 0), ((NI) 255)));
			{
				if (!!(!(((*le).typ == NIM_NIL)))) goto LA34_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_151));
			}
			LA34_: ;
			{
				NIM_BOOL T38_;
				NIM_BOOL T39_;
				NIM_BOOL T40_;
				NIM_BOOL T42_;
				NI cc;
				tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ T46_;
				T38_ = (NIM_BOOL)0;
				T39_ = (NIM_BOOL)0;
				T40_ = (NIM_BOOL)0;
				T40_ = isTemp_3YlwkOhvADs19cHhcnE9boYA(c, ((NI) (dest_4)));
				T39_ = !(T40_);
				if (!(T39_)) goto LA41_;
				T42_ = (NIM_BOOL)0;
				T42_ = fitsRegister_NRltpJT49cakdDyz9a9cNr4Kw((*le).typ);
				T39_ = !(T42_);
				LA41_: ;
				T38_ = T39_;
				if (!(T38_)) goto LA43_;
				T38_ = ((2312 &(1U<<((NU)((*s).kind)&31U)))!=0);
				LA43_: ;
				if (!T38_) goto LA44_;
				cc = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*le).typ);
				gen_KQ9csS06JMUvwHLxUYEy8rA(c, ri, cc, 0);
				T46_ = (tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)0;
				T46_ = whichAsgnOpc_Qj2d7lDNNqHtRVhBO4JPQg(le);
				gABC_G2IxRmwmQahHciEYmnYxxg(c, le, T46_, dest_4, cc, ((NI) 1));
				freeTemp_1nMAqbaMl87FxWu2gyhzog(c, cc);
			}
			goto LA36_;
			LA44_: ;
			{
				gen_KQ9csS06JMUvwHLxUYEy8rA(c, ri, dest_4, 0);
			}
			LA36_: ;
		}
		LA12_: ;
	}
	break;
	default:
	{
		NI dest_5;
		dest_5 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, le, 2);
		genAsgn_9c4eyEUpcv8lGnjrHcs6fgw(c, ((NI) (dest_5)), ri, requiresCopy);
	}
	break;
	}
}

N_LIB_PRIVATE N_NIMCALL(void, genObjAccess_6vrKVoM8aZ4Rjealu5DZbw_4)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags) {
	NI a;
	NI b;
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	a = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 0)], flags);
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	b = genField_9a15qaQFBwMjo9b9byRZNZAHw(c, (*n).sons->data[((NI) 1)]);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	{
		NIM_BOOL T8_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T10_;
		NI cc;
		T8_ = (NIM_BOOL)0;
		T8_ = ((3 & flags) == 0);
		if (!(T8_)) goto LA9_;
		T10_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T10_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(1153062242103590912));
		T8_ = fitsRegister_NRltpJT49cakdDyz9a9cNr4Kw(T10_);
		LA9_: ;
		if (!T8_) goto LA11_;
		cc = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 16), cc, a, b);
		gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 13), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), cc, ((NI) 0));
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, cc);
	}
	goto LA6_;
	LA11_: ;
	{
		gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 16), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), a, b);
	}
	LA6_: ;
	freeTemp_1nMAqbaMl87FxWu2gyhzog(c, a);
}

N_LIB_PRIVATE N_NIMCALL(void, genCheckedObjAccess_6vrKVoM8aZ4Rjealu5DZbw_5)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags) {
	NI objR;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* accessExpr;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* field;
	NI fieldPos;
	objR = ((NI) -1);
	genCheckedObjAccessAux_6vrKVoM8aZ4Rjealu5DZbw_3(c, n, (&objR), flags);
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	accessExpr = (*n).sons->data[((NI) 0)];
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*accessExpr).kind)>>3] &(1U<<((NU)((*accessExpr).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*accessExpr).sons ? (*accessExpr).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*accessExpr).sons ? (*accessExpr).sons->Sup.len : 0)-1);
	field = (*accessExpr).sons->data[((NI) 1)];
	{
		NimStringDesc* T5_;
		if (!(((TM_24XApAWKNvaMkcyklm8bNA_9[(NU)((*field).kind)>>3] &(1U<<((NU)((*field).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_10));
		if (!!(((*(*field).sym).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 19)))) goto LA3_;
		T5_ = (NimStringDesc*)0;
		T5_ = dollar__r38WafKlW80RkvoZTcia4Q(TM_24XApAWKNvaMkcyklm8bNA_152);
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T5_);
	}
	LA3_: ;
	{
		NI T10_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA8_;
		T10_ = (NI)0;
		T10_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T10_));
	}
	LA8_: ;
	fieldPos = genField_9a15qaQFBwMjo9b9byRZNZAHw(c, field);
	{
		NIM_BOOL T13_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T15_;
		NI cc;
		T13_ = (NIM_BOOL)0;
		T13_ = ((3 & flags) == 0);
		if (!(T13_)) goto LA14_;
		T15_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T15_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(1153062242103590912));
		T13_ = fitsRegister_NRltpJT49cakdDyz9a9cNr4Kw(T15_);
		LA14_: ;
		if (!T13_) goto LA16_;
		cc = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*accessExpr).typ);
		gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 16), cc, ((NI)chckRange(objR, ((NI) 0), ((NI) 255))), fieldPos);
		gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 13), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), cc, ((NI) 0));
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, cc);
	}
	goto LA11_;
	LA16_: ;
	{
		gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 16), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), ((NI)chckRange(objR, ((NI) 0), ((NI) 255))), fieldPos);
	}
	LA11_: ;
	freeTemp_1nMAqbaMl87FxWu2gyhzog(c, ((NI)chckRange(objR, ((NI) 0), ((NI) 255))));
}

N_LIB_PRIVATE N_NIMCALL(void, genArrAccess2_zgX4Kkrp9cJUdA7ZSHpwksQ)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags) {
	NI a;
	NI b;
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	a = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 0)], flags);
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	b = genIndex_DPfOz7YYSBixDRy9cYPeZIA(c, (*n).sons->data[((NI) 1)], (*(*n).sons->data[((NI) 0)]).typ);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	{
		NIM_BOOL T8_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T10_;
		NI cc;
		T8_ = (NIM_BOOL)0;
		T8_ = ((3 & flags) == 0);
		if (!(T8_)) goto LA9_;
		T10_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T10_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(1153062242103590912));
		T8_ = fitsRegister_NRltpJT49cakdDyz9a9cNr4Kw(T10_);
		LA9_: ;
		if (!T8_) goto LA11_;
		cc = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		gABC_G2IxRmwmQahHciEYmnYxxg(c, n, opc, cc, a, b);
		gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 13), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), cc, ((NI) 0));
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, cc);
	}
	goto LA6_;
	LA11_: ;
	{
		gABC_G2IxRmwmQahHciEYmnYxxg(c, n, opc, ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), a, b);
	}
	LA6_: ;
	freeTemp_1nMAqbaMl87FxWu2gyhzog(c, a);
	freeTemp_1nMAqbaMl87FxWu2gyhzog(c, b);
}

N_LIB_PRIVATE N_NIMCALL(void, genArrAccess_6vrKVoM8aZ4Rjealu5DZbw_6)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags) {
	tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag arrayType;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*n).sons->data[((NI) 0)]).typ, IL64(36134350144710672));
	arrayType = (*T1_).kind;
	{
		if (!((805306368 &((NU64)1<<((NU)(arrayType)&63U)))!=0)) goto LA4_;
		genArrAccess2_zgX4Kkrp9cJUdA7ZSHpwksQ(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 23), 0);
	}
	goto LA2_;
	LA4_: ;
	{
		if (!(arrayType == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 8))) goto LA7_;
		genTypeLit_9a1Lon9cJzf9a69cj4KKhxzxrQ(c, (*n).typ, dest);
	}
	goto LA2_;
	LA7_: ;
	{
		genArrAccess2_zgX4Kkrp9cJUdA7ZSHpwksQ(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 14), flags);
	}
	LA2_: ;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, unneededIndirection_ZWNdbTkHEJo2QqoHaEPxGA_4)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	result = (NIM_BOOL)0;
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36134350135273488));
	result = ((*T1_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genDeref_6vrKVoM8aZ4Rjealu5DZbw_7)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags) {
	{
		NIM_BOOL T3_;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		T3_ = (NIM_BOOL)0;
		T3_ = unneededIndirection_ZWNdbTkHEJo2QqoHaEPxGA_4((*n).sons->data[((NI) 0)]);
		if (!T3_) goto LA4_;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		gen_6vrKVoM8aZ4Rjealu5DZbw(c, (*n).sons->data[((NI) 0)], dest, flags);
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = ((3 & flags) == 0);
			if (!(T8_)) goto LA9_;
			T8_ = fitsRegister_NRltpJT49cakdDyz9a9cNr4Kw((*n).typ);
			LA9_: ;
			if (!T8_) goto LA10_;
			gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 13), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), ((NI) 0));
		}
		LA10_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		NI tmp;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 0)], flags);
		{
			NI T17_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA15_;
			T17_ = (NI)0;
			T17_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T17_));
		}
		LA15_: ;
		gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 20), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp, ((NI) 0));
		{
			if (!!(!(((*n).typ == NIM_NIL)))) goto LA20_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_153));
		}
		LA20_: ;
		{
			NIM_BOOL T24_;
			T24_ = (NIM_BOOL)0;
			T24_ = ((3 & flags) == 0);
			if (!(T24_)) goto LA25_;
			T24_ = fitsRegister_NRltpJT49cakdDyz9a9cNr4Kw((*n).typ);
			LA25_: ;
			if (!T24_) goto LA26_;
			gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 13), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), ((NI) 0));
		}
		LA26_: ;
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, canElimAddr_yXNCtNX5XyYFmGvoC2Ryfw_2)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	switch ((*(*n).sons->data[((NI) 0)]).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 67):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 66):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 70):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 68):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 69):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* m;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*n).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 0)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*(*n).sons->data[((NI) 0)]).sons ? (*(*n).sons->data[((NI) 0)]).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*(*n).sons->data[((NI) 0)]).sons ? (*(*n).sons->data[((NI) 0)]).sons->Sup.len : 0)-1);
		m = (*(*n).sons->data[((NI) 0)]).sons->data[((NI) 0)];
		{
			if (!((*m).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 47) || (*m).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 65))) goto LA4_;
			if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			result = copyNode_Dsjo9bte8vGxzhtcSrsTyiQ((*n).sons->data[((NI) 0)]);
			if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*m).kind)>>3] &(1U<<((NU)((*m).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 0)) >= (NU)((*m).sons ? (*m).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*m).sons ? (*m).sons->Sup.len : 0)-1);
			add_P8dDSotTW25BkfbyspojGg(result, (*m).sons->data[((NI) 0)]);
		}
		LA4_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 58):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 59):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 60):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* m_2;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*n).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 0)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*(*n).sons->data[((NI) 0)]).sons ? (*(*n).sons->data[((NI) 0)]).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*(*n).sons->data[((NI) 0)]).sons ? (*(*n).sons->data[((NI) 0)]).sons->Sup.len : 0)-1);
		m_2 = (*(*n).sons->data[((NI) 0)]).sons->data[((NI) 1)];
		{
			if (!((*m_2).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 47) || (*m_2).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 65))) goto LA9_;
			if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			result = copyNode_Dsjo9bte8vGxzhtcSrsTyiQ((*n).sons->data[((NI) 0)]);
			if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*m_2).kind)>>3] &(1U<<((NU)((*m_2).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 0)) >= (NU)((*m_2).sons ? (*m_2).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*m_2).sons ? (*m_2).sons->Sup.len : 0)-1);
			add_P8dDSotTW25BkfbyspojGg(result, (*m_2).sons->data[((NI) 0)]);
		}
		LA9_: ;
	}
	break;
	default:
	{
		{
			if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			if (!((*(*n).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 47) || (*(*n).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 65))) goto LA14_;
			if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*n).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 0)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 0)) >= (NU)((*(*n).sons->data[((NI) 0)]).sons ? (*(*n).sons->data[((NI) 0)]).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*(*n).sons->data[((NI) 0)]).sons ? (*(*n).sons->data[((NI) 0)]).sons->Sup.len : 0)-1);
			result = (*(*n).sons->data[((NI) 0)]).sons->data[((NI) 0)];
		}
		LA14_: ;
	}
	break;
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isGlobal_ZWNdbTkHEJo2QqoHaEPxGA_5)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
	if (!(T1_)) goto LA2_;
	T3_ = (NIM_BOOL)0;
	if (!(((TM_24XApAWKNvaMkcyklm8bNA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_10));
	T3_ = (((*(*n).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0);
	if (!(T3_)) goto LA4_;
	if (!(((TM_24XApAWKNvaMkcyklm8bNA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_10));
	T3_ = !(((*(*n).sym).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 21)));
	LA4_: ;
	T1_ = T3_;
	LA2_: ;
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genAddr_6vrKVoM8aZ4Rjealu5DZbw_8)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags) {
	tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ af;
	tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ newflags;
{	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* m;
		m = canElimAddr_yXNCtNX5XyYFmGvoC2Ryfw_2(n);
		if (!!((m == NIM_NIL))) goto LA3_;
		gen_6vrKVoM8aZ4Rjealu5DZbw(c, m, dest, flags);
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (!((*(*n).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 42) || (*(*n).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 45) || (*(*n).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 46))) goto LA7_;
		af = 1;
	}
	goto LA5_;
	LA7_: ;
	{
		af = 2;
	}
	LA5_: ;
	newflags = ((flags & ~ 3) | af);
	{
		NIM_BOOL T12_;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		T12_ = (NIM_BOOL)0;
		T12_ = isGlobal_ZWNdbTkHEJo2QqoHaEPxGA_5((*n).sons->data[((NI) 0)]);
		if (!T12_) goto LA13_;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		gen_6vrKVoM8aZ4Rjealu5DZbw(c, (*n).sons->data[((NI) 0)], dest, (flags | af));
	}
	goto LA10_;
	LA13_: ;
	{
		NI tmp;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 0)], newflags);
		{
			NI T20_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA18_;
			T20_ = (NI)0;
			T20_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T20_));
		}
		LA18_: ;
		{
			if (!(((tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ) 3) <= (*(*c).prc).slots[(tmp)- 0].Field1)) goto LA23_;
			gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 19), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp, ((NI) 0));
			(*(*c).prc).slots[(tmp)- 0].Field1 = ((tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ) 8);
		}
		goto LA21_;
		LA23_: ;
		{
			gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 18), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp, ((NI) 0));
		}
		LA21_: ;
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp);
	}
	LA10_: ;
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isNotOpr_ZWNdbTkHEJo2QqoHaEPxGA_6)(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).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_;
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	T2_ = ((*(*n).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	if (!(((TM_24XApAWKNvaMkcyklm8bNA_9[(NU)((*(*n).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_10));
	T1_ = ((*(*(*n).sons->data[((NI) 0)]).sym).magic == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 104));
	LA4_: ;
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genIf_AcnszMkIUvrpRfWF4iqy5g_8)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	tySequence_qwqHTkRvwhrRyENtudHQ7g* endings;
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		NI T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) ((*dest))) < ((NI) 0));
		if (!(T3_)) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = isEmptyType_nPImuPGZIdcrAfCNyf4oxA_3ast((*n).typ);
		T3_ = !(T5_);
		LA4_: ;
		if (!T3_) goto LA6_;
		T8_ = (NI)0;
		T8_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T8_));
	}
	LA6_: ;
	endings = NIM_NIL;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
				NI TM_24XApAWKNvaMkcyklm8bNA_155;
				if (!(i_2 < colontmp_)) goto LA11;
				i = i_2;
				if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
				if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
				it = (*n).sons->data[i];
				{
					NI T14_;
					NI tmp;
					NI elsePos;
					T14_ = (NI)0;
					T14_ = len_P89cqdlERShb9alU3iC0yj8wast(it);
					if (!(T14_ == ((NI) 2))) goto LA15_;
					if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
					if ((NU)(((NI) 0)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*it).sons ? (*it).sons->Sup.len : 0)-1);
					tmp = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*(*it).sons->data[((NI) 0)]).typ);
					elsePos = (NI)0;
					{
						NIM_BOOL T19_;
						if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
						if ((NU)(((NI) 0)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*it).sons ? (*it).sons->Sup.len : 0)-1);
						T19_ = (NIM_BOOL)0;
						T19_ = isNotOpr_ZWNdbTkHEJo2QqoHaEPxGA_6((*it).sons->data[((NI) 0)]);
						if (!T19_) goto LA20_;
						if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
						if ((NU)(((NI) 0)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*it).sons ? (*it).sons->Sup.len : 0)-1);
						if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*it).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*it).sons->data[((NI) 0)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
						if ((NU)(((NI) 1)) >= (NU)((*(*it).sons->data[((NI) 0)]).sons ? (*(*it).sons->data[((NI) 0)]).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*(*it).sons->data[((NI) 0)]).sons ? (*(*it).sons->data[((NI) 0)]).sons->Sup.len : 0)-1);
						gen_KQ9csS06JMUvwHLxUYEy8rA(c, (*(*it).sons->data[((NI) 0)]).sons->data[((NI) 1)], tmp, 0);
						if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
						if ((NU)(((NI) 0)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*it).sons ? (*it).sons->Sup.len : 0)-1);
						if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*it).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*it).sons->data[((NI) 0)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
						if ((NU)(((NI) 1)) >= (NU)((*(*it).sons->data[((NI) 0)]).sons ? (*(*it).sons->data[((NI) 0)]).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*(*it).sons->data[((NI) 0)]).sons ? (*(*it).sons->data[((NI) 0)]).sons->Sup.len : 0)-1);
						elsePos = xjmp_LLVWVnfPUz40PkTu6VMsfA(c, (*(*it).sons->data[((NI) 0)]).sons->data[((NI) 1)], ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 154), tmp);
					}
					goto LA17_;
					LA20_: ;
					{
						if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
						if ((NU)(((NI) 0)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*it).sons ? (*it).sons->Sup.len : 0)-1);
						gen_KQ9csS06JMUvwHLxUYEy8rA(c, (*it).sons->data[((NI) 0)], tmp, 0);
						if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
						if ((NU)(((NI) 0)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*it).sons ? (*it).sons->Sup.len : 0)-1);
						elsePos = xjmp_LLVWVnfPUz40PkTu6VMsfA(c, (*it).sons->data[((NI) 0)], ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 155), tmp);
					}
					LA17_: ;
					freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp);
					clearDest_dfAz2NYFCQaf0gjeZoi5HAvmgen(c, n, dest);
					if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
					if ((NU)(((NI) 1)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*it).sons ? (*it).sons->Sup.len : 0)-1);
					gen_6vrKVoM8aZ4Rjealu5DZbw(c, (*it).sons->data[((NI) 1)], dest, 0);
					{
						NI T25_;
						NI TM_24XApAWKNvaMkcyklm8bNA_154;
						NI T28_;
						NI T29_;
						T25_ = (NI)0;
						T25_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(n);
						TM_24XApAWKNvaMkcyklm8bNA_154 = subInt(T25_, ((NI) 1));
						if (!(i < (NI)(TM_24XApAWKNvaMkcyklm8bNA_154))) goto LA26_;
						if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
						if ((NU)(((NI) 1)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*it).sons ? (*it).sons->Sup.len : 0)-1);
						T28_ = (NI)0;
						T28_ = xjmp_LLVWVnfPUz40PkTu6VMsfA(c, (*it).sons->data[((NI) 1)], ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 156), ((NI) 0));
						endings = (tySequence_qwqHTkRvwhrRyENtudHQ7g*) incrSeqV3((TGenericSeq*)(endings), (&NTI_qwqHTkRvwhrRyENtudHQ7g_));
						T29_ = endings->Sup.len++;
						endings->data[T29_] = T28_;
					}
					LA26_: ;
					patch_Ej9bBLeYWuXsMMig9c4loqzw(c, elsePos);
				}
				goto LA12_;
				LA15_: ;
				{
					clearDest_dfAz2NYFCQaf0gjeZoi5HAvmgen(c, n, dest);
					if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
					if ((NU)(((NI) 0)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*it).sons ? (*it).sons->Sup.len : 0)-1);
					gen_6vrKVoM8aZ4Rjealu5DZbw(c, (*it).sons->data[((NI) 0)], dest, 0);
				}
				LA12_: ;
				TM_24XApAWKNvaMkcyklm8bNA_155 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM_24XApAWKNvaMkcyklm8bNA_155);
			} LA11: ;
		}
	}
	{
		NI endPos;
		NI i_3;
		NI L;
		NI T32_;
		endPos = (NI)0;
		i_3 = ((NI) 0);
		T32_ = (endings ? endings->Sup.len : 0);
		L = T32_;
		{
			while (1) {
				NI TM_24XApAWKNvaMkcyklm8bNA_156;
				if (!(i_3 < L)) goto LA34;
				if ((NU)(i_3) >= (NU)(endings ? endings->Sup.len : 0)) raiseIndexError2(i_3,(endings ? endings->Sup.len : 0)-1);
				endPos = endings->data[i_3];
				patch_Ej9bBLeYWuXsMMig9c4loqzw(c, endPos);
				TM_24XApAWKNvaMkcyklm8bNA_156 = addInt(i_3, ((NI) 1));
				i_3 = (NI)(TM_24XApAWKNvaMkcyklm8bNA_156);
				{
					NI T37_;
					T37_ = (endings ? endings->Sup.len : 0);
					if (!!((T37_ == L))) goto LA38_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_48));
				}
				LA38_: ;
			} LA34: ;
		}
	}
	clearDest_dfAz2NYFCQaf0gjeZoi5HAvmgen(c, n, dest);
}

N_LIB_PRIVATE N_NIMCALL(void, genCase_AcnszMkIUvrpRfWF4iqy5g_9)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	tySequence_qwqHTkRvwhrRyENtudHQ7g* endings;
	NI tmp;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isEmptyType_nPImuPGZIdcrAfCNyf4oxA_3ast((*n).typ);
		if (!!(T3_)) goto LA4_;
		{
			NI T10_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA8_;
			T10_ = (NI)0;
			T10_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T10_));
		}
		LA8_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
	}
	LA1_: ;
	endings = NIM_NIL;
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	tmp = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*(*n).sons->data[((NI) 0)]).typ);
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	gen_KQ9csS06JMUvwHLxUYEy8rA(c, (*n).sons->data[((NI) 0)], tmp, 0);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
				NI TM_24XApAWKNvaMkcyklm8bNA_158;
				if (!(i_2 < colontmp_)) goto LA14;
				i = i_2;
				if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
				if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
				it = (*n).sons->data[i];
				{
					NI T17_;
					T17_ = (NI)0;
					T17_ = len_P89cqdlERShb9alU3iC0yj8wast(it);
					if (!(T17_ == ((NI) 1))) goto LA18_;
					if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
					if ((NU)(((NI) 0)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*it).sons ? (*it).sons->Sup.len : 0)-1);
					gen_6vrKVoM8aZ4Rjealu5DZbw(c, (*it).sons->data[((NI) 0)], dest, 0);
				}
				goto LA15_;
				LA18_: ;
				{
					NI b;
					NI elsePos;
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T21_;
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T22_;
					b = rawGenLiteral_PEuKCZcy9a56kIfBOLoHU5Q_2(c, it);
					gABx_aNIPMIOfai9c7QJx79aStfDw(c, it, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 158), tmp, b);
					T21_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
					T21_ = lastSon_UPSW0jLTX5qJL51YMUAHgw(it);
					elsePos = xjmp_LLVWVnfPUz40PkTu6VMsfA(c, T21_, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 155), tmp);
					T22_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
					T22_ = lastSon_UPSW0jLTX5qJL51YMUAHgw(it);
					gen_6vrKVoM8aZ4Rjealu5DZbw(c, T22_, dest, 0);
					{
						NI T25_;
						NI TM_24XApAWKNvaMkcyklm8bNA_157;
						tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T28_;
						NI T29_;
						NI T30_;
						T25_ = (NI)0;
						T25_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(n);
						TM_24XApAWKNvaMkcyklm8bNA_157 = subInt(T25_, ((NI) 1));
						if (!(i < (NI)(TM_24XApAWKNvaMkcyklm8bNA_157))) goto LA26_;
						T28_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
						T28_ = lastSon_UPSW0jLTX5qJL51YMUAHgw(it);
						T29_ = (NI)0;
						T29_ = xjmp_LLVWVnfPUz40PkTu6VMsfA(c, T28_, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 156), ((NI) 0));
						endings = (tySequence_qwqHTkRvwhrRyENtudHQ7g*) incrSeqV3((TGenericSeq*)(endings), (&NTI_qwqHTkRvwhrRyENtudHQ7g_));
						T30_ = endings->Sup.len++;
						endings->data[T30_] = T29_;
					}
					LA26_: ;
					patch_Ej9bBLeYWuXsMMig9c4loqzw(c, elsePos);
				}
				LA15_: ;
				clearDest_dfAz2NYFCQaf0gjeZoi5HAvmgen(c, n, dest);
				TM_24XApAWKNvaMkcyklm8bNA_158 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM_24XApAWKNvaMkcyklm8bNA_158);
			} LA14: ;
		}
	}
	freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp);
	{
		NI endPos;
		NI i_3;
		NI L;
		NI T32_;
		endPos = (NI)0;
		i_3 = ((NI) 0);
		T32_ = (endings ? endings->Sup.len : 0);
		L = T32_;
		{
			while (1) {
				NI TM_24XApAWKNvaMkcyklm8bNA_159;
				if (!(i_3 < L)) goto LA34;
				if ((NU)(i_3) >= (NU)(endings ? endings->Sup.len : 0)) raiseIndexError2(i_3,(endings ? endings->Sup.len : 0)-1);
				endPos = endings->data[i_3];
				patch_Ej9bBLeYWuXsMMig9c4loqzw(c, endPos);
				TM_24XApAWKNvaMkcyklm8bNA_159 = addInt(i_3, ((NI) 1));
				i_3 = (NI)(TM_24XApAWKNvaMkcyklm8bNA_159);
				{
					NI T37_;
					T37_ = (endings ? endings->Sup.len : 0);
					if (!!((T37_ == L))) goto LA38_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_48));
				}
				LA38_: ;
			} LA34: ;
		}
	}
}

N_LIB_PRIVATE N_NIMCALL(NI, genLabel_ZRCO5A5eUGuEhpgXduomEQ)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c) {
	NI result;
	NI T1_;
	result = (NI)0;
	T1_ = ((*c).code ? (*c).code->Sup.len : 0);
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTrue_ZWNdbTkHEJo2QqoHaEPxGA_7)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	NIM_BOOL T3_;
	NIM_BOOL T7_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T3_ = (NIM_BOOL)0;
	T3_ = ((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
	if (!(T3_)) goto LA4_;
	if (!(((TM_24XApAWKNvaMkcyklm8bNA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_10));
	T3_ = ((*(*n).sym).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 20));
	LA4_: ;
	T2_ = T3_;
	if (!(T2_)) goto LA5_;
	if (!(((TM_24XApAWKNvaMkcyklm8bNA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_10));
	T2_ = !(((*(*n).sym).position == ((NI) 0)));
	LA5_: ;
	T1_ = T2_;
	if (T1_) goto LA6_;
	T7_ = (NIM_BOOL)0;
	T7_ = ((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 6));
	if (!(T7_)) goto LA8_;
	if (!(((TM_24XApAWKNvaMkcyklm8bNA_51[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_52));
	T7_ = !(((*n).intVal == IL64(0)));
	LA8_: ;
	T1_ = T7_;
	LA6_: ;
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, jmpBack_fa43TdCtd4zzHAl8LQTOIA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI p) {
	NI dist;
	NI T1_;
	NI TM_24XApAWKNvaMkcyklm8bNA_162;
	T1_ = ((*c).code ? (*c).code->Sup.len : 0);
	TM_24XApAWKNvaMkcyklm8bNA_162 = subInt(p, T1_);
	dist = (NI)(TM_24XApAWKNvaMkcyklm8bNA_162);
	{
		NIM_BOOL T4_;
		NimStringDesc* T8_;
		T4_ = (NIM_BOOL)0;
		T4_ = (((NI) -32767) < dist);
		if (!(T4_)) goto LA5_;
		T4_ = (dist < ((NI) 32767));
		LA5_: ;
		if (!!(T4_)) goto LA6_;
		T8_ = (NimStringDesc*)0;
		T8_ = dollar__r38WafKlW80RkvoZTcia4Q(TM_24XApAWKNvaMkcyklm8bNA_163);
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T8_);
	}
	LA6_: ;
	gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 157), ((NI) 0), dist);
}

N_LIB_PRIVATE N_NIMCALL(void, popBlock_NGVfQ2d0iTESw9bebNaFPyA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, NI oldLen) {
	{
		NI f;
		tySequence_qwqHTkRvwhrRyENtudHQ7g* colontmp_;
		NI i;
		NI L;
		NI T2_;
		f = (NI)0;
		colontmp_ = (tySequence_qwqHTkRvwhrRyENtudHQ7g*)0;
		if ((NU)(oldLen) >= (NU)((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0)) raiseIndexError2(oldLen,((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0)-1);
		colontmp_ = (*(*c).prc).blocks->data[oldLen].fixups;
		i = ((NI) 0);
		T2_ = (colontmp_ ? colontmp_->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				NI TM_24XApAWKNvaMkcyklm8bNA_164;
				if (!(i < L)) goto LA4;
				if ((NU)(i) >= (NU)(colontmp_ ? colontmp_->Sup.len : 0)) raiseIndexError2(i,(colontmp_ ? colontmp_->Sup.len : 0)-1);
				f = colontmp_->data[i];
				patch_Ej9bBLeYWuXsMMig9c4loqzw(c, f);
				TM_24XApAWKNvaMkcyklm8bNA_164 = addInt(i, ((NI) 1));
				i = (NI)(TM_24XApAWKNvaMkcyklm8bNA_164);
				{
					NI T7_;
					T7_ = (colontmp_ ? colontmp_->Sup.len : 0);
					if (!!((T7_ == L))) goto LA8_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_48));
				}
				LA8_: ;
			} LA4: ;
		}
	}
	asgnRef((void**) (&(*(*c).prc).blocks), (tySequence_JokFGfUW6i9b6aeU7xu6xBw*) setLengthSeqV2(&((*(*c).prc).blocks)->Sup, (&NTI_JokFGfUW6i9b6aeU7xu6xBw_), ((NI)chckRange(oldLen, ((NI) 0), ((NI) IL64(9223372036854775807))))));
}

N_LIB_PRIVATE N_NIMCALL(void, genWhile_Y59crI4YgTHHCWclw3gn72A_4)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NI L1;
	NI oldLen;
	NI T1_;
	NI T2_;
	L1 = genLabel_ZRCO5A5eUGuEhpgXduomEQ(c);
	T1_ = ((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0);
	oldLen = T1_;
	asgnRef((void**) (&(*(*c).prc).blocks), (tySequence_JokFGfUW6i9b6aeU7xu6xBw*) incrSeqV3((TGenericSeq*)((*(*c).prc).blocks), (&NTI_JokFGfUW6i9b6aeU7xu6xBw_)));
	T2_ = (*(*c).prc).blocks->Sup.len++;
	asgnRef((void**) (&(*(*c).prc).blocks->data[T2_].label), TM_24XApAWKNvaMkcyklm8bNA_160.label);
	genericSeqAssign((&(*(*c).prc).blocks->data[T2_].fixups), TM_24XApAWKNvaMkcyklm8bNA_160.fixups, (&NTI_qwqHTkRvwhrRyENtudHQ7g_));
	{
		NIM_BOOL T5_;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		T5_ = (NIM_BOOL)0;
		T5_ = isTrue_ZWNdbTkHEJo2QqoHaEPxGA_7((*n).sons->data[((NI) 0)]);
		if (!T5_) goto LA6_;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		gen_M9cKwar4hMj62R1lH9bydpDQ(c, (*n).sons->data[((NI) 1)], 0);
		jmpBack_fa43TdCtd4zzHAl8LQTOIA(c, n, L1);
	}
	goto LA3_;
	LA6_: ;
	{
		NIM_BOOL T9_;
		NI tmp;
		NI L2;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		T9_ = (NIM_BOOL)0;
		T9_ = isNotOpr_ZWNdbTkHEJo2QqoHaEPxGA_6((*n).sons->data[((NI) 0)]);
		if (!T9_) goto LA10_;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*n).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 0)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*(*n).sons->data[((NI) 0)]).sons ? (*(*n).sons->data[((NI) 0)]).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*(*n).sons->data[((NI) 0)]).sons ? (*(*n).sons->data[((NI) 0)]).sons->Sup.len : 0)-1);
		tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*(*n).sons->data[((NI) 0)]).sons->data[((NI) 1)], 0);
		L2 = xjmp_LLVWVnfPUz40PkTu6VMsfA(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 154), tmp);
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp);
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		gen_M9cKwar4hMj62R1lH9bydpDQ(c, (*n).sons->data[((NI) 1)], 0);
		jmpBack_fa43TdCtd4zzHAl8LQTOIA(c, n, L1);
		patch_Ej9bBLeYWuXsMMig9c4loqzw(c, L2);
	}
	goto LA3_;
	LA10_: ;
	{
		NI tmp_2;
		NI L2_2;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp_2 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 0)], 0);
		L2_2 = xjmp_LLVWVnfPUz40PkTu6VMsfA(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 155), tmp_2);
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp_2);
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		gen_M9cKwar4hMj62R1lH9bydpDQ(c, (*n).sons->data[((NI) 1)], 0);
		jmpBack_fa43TdCtd4zzHAl8LQTOIA(c, n, L1);
		patch_Ej9bBLeYWuXsMMig9c4loqzw(c, L2_2);
	}
	LA3_: ;
	popBlock_NGVfQ2d0iTESw9bebNaFPyA(c, oldLen);
}

N_LIB_PRIVATE N_NIMCALL(void, genBlock_AcnszMkIUvrpRfWF4iqy5g_10)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	NI oldRegisterCount;
	NI oldLen;
	NI T1_;
	tyObject_TBlock_2tJGcW69ahqq39a9bVJC1sqGQ T2_;
	NI T3_;
	oldRegisterCount = (*(*c).prc).maxSlots;
	T1_ = ((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0);
	oldLen = T1_;
	nimZeroMem((void*)(&T2_), sizeof(tyObject_TBlock_2tJGcW69ahqq39a9bVJC1sqGQ));
	nimZeroMem((void*)(&T2_), sizeof(tyObject_TBlock_2tJGcW69ahqq39a9bVJC1sqGQ));
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	if (!(((TM_24XApAWKNvaMkcyklm8bNA_9[(NU)((*(*n).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_10));
	T2_.label = (*(*n).sons->data[((NI) 0)]).sym;
	T2_.fixups = NIM_NIL;
	asgnRef((void**) (&(*(*c).prc).blocks), (tySequence_JokFGfUW6i9b6aeU7xu6xBw*) incrSeqV3((TGenericSeq*)((*(*c).prc).blocks), (&NTI_JokFGfUW6i9b6aeU7xu6xBw_)));
	T3_ = (*(*c).prc).blocks->Sup.len++;
	asgnRef((void**) (&(*(*c).prc).blocks->data[T3_].label), T2_.label);
	genericSeqAssign((&(*(*c).prc).blocks->data[T3_].fixups), T2_.fixups, (&NTI_qwqHTkRvwhrRyENtudHQ7g_));
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	gen_6vrKVoM8aZ4Rjealu5DZbw(c, (*n).sons->data[((NI) 1)], dest, 0);
	popBlock_NGVfQ2d0iTESw9bebNaFPyA(c, oldLen);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (*(*c).prc).maxSlots;
		i_2 = oldRegisterCount;
		{
			while (1) {
				NI TM_24XApAWKNvaMkcyklm8bNA_165;
				if (!(i_2 < colontmp_)) goto LA6;
				i = i_2;
				{
					NIM_BOOL colontmp__2;
					tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ colontmp__3;
					if ((NU)(i) > (NU)(255)) raiseIndexError2(i, 255);
					if (!((6 &(1U<<((NU)((*(*c).prc).slots[(i)- 0].Field1)&15U)))!=0)) goto LA9_;
					colontmp__2 = NIM_FALSE;
					colontmp__3 = ((tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ) 0);
					if ((NU)(i) > (NU)(255)) raiseIndexError2(i, 255);
					(*(*c).prc).slots[(i)- 0].Field0 = colontmp__2;
					(*(*c).prc).slots[(i)- 0].Field1 = colontmp__3;
				}
				LA9_: ;
				TM_24XApAWKNvaMkcyklm8bNA_165 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM_24XApAWKNvaMkcyklm8bNA_165);
			} LA6: ;
		}
	}
	clearDest_dfAz2NYFCQaf0gjeZoi5HAvmgen(c, n, dest);
}

N_LIB_PRIVATE N_NIMCALL(void, genReturn_Y59crI4YgTHHCWclw3gn72A_5)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	{
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (!!(((*(*n).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA3_;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		gen_M9cKwar4hMj62R1lH9bydpDQ(c, (*n).sons->data[((NI) 0)], 0);
	}
	LA3_: ;
	gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 1), ((NI) 0), ((NI) 0), ((NI) 0));
}

N_LIB_PRIVATE N_NIMCALL(void, genRaise_Y59crI4YgTHHCWclw3gn72A_6)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NI dest;
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	dest = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 0)], 0);
	gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 149), dest, ((NI) 0), ((NI) 0));
	freeTemp_1nMAqbaMl87FxWu2gyhzog(c, dest);
}

N_LIB_PRIVATE N_NIMCALL(void, genBreak_Y59crI4YgTHHCWclw3gn72A_7)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NI L1;
{	L1 = xjmp_LLVWVnfPUz40PkTu6VMsfA(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 156), ((NI) 0));
	{
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (!((*(*n).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA3_;
		{
			NI i;
			NI colontmp_;
			NI T6_;
			NI TM_24XApAWKNvaMkcyklm8bNA_166;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T6_ = ((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0);
			TM_24XApAWKNvaMkcyklm8bNA_166 = subInt(T6_, ((NI) 1));
			colontmp_ = (NI)(TM_24XApAWKNvaMkcyklm8bNA_166);
			res = colontmp_;
			{
				while (1) {
					NI TM_24XApAWKNvaMkcyklm8bNA_167;
					if (!(((NI) 0) <= res)) goto LA8;
					i = res;
					{
						NI T13_;
						if ((NU)(i) >= (NU)((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0)) raiseIndexError2(i,((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0)-1);
						if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
						if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
						if (!(((TM_24XApAWKNvaMkcyklm8bNA_9[(NU)((*(*n).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_10));
						if (!((*(*c).prc).blocks->data[i].label == (*(*n).sons->data[((NI) 0)]).sym)) goto LA11_;
						if ((NU)(i) >= (NU)((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0)) raiseIndexError2(i,((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0)-1);
						asgnRef((void**) (&(*(*c).prc).blocks->data[i].fixups), (tySequence_qwqHTkRvwhrRyENtudHQ7g*) incrSeqV3((TGenericSeq*)((*(*c).prc).blocks->data[i].fixups), (&NTI_qwqHTkRvwhrRyENtudHQ7g_)));
						T13_ = (*(*c).prc).blocks->data[i].fixups->Sup.len++;
						(*(*c).prc).blocks->data[i].fixups->data[T13_] = L1;
						goto BeforeRet_;
					}
					LA11_: ;
					TM_24XApAWKNvaMkcyklm8bNA_167 = subInt(res, ((NI) 1));
					res = (NI)(TM_24XApAWKNvaMkcyklm8bNA_167);
				} LA8: ;
			}
		}
		globalError_NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_168));
	}
	goto LA1_;
	LA3_: ;
	{
		NI T15_;
		NI T16_;
		T15_ = (((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0)-1);
		if ((NU)(T15_) >= (NU)((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0)) raiseIndexError2(T15_,((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0)-1);
		asgnRef((void**) (&(*(*c).prc).blocks->data[T15_].fixups), (tySequence_qwqHTkRvwhrRyENtudHQ7g*) incrSeqV3((TGenericSeq*)((*(*c).prc).blocks->data[T15_].fixups), (&NTI_qwqHTkRvwhrRyENtudHQ7g_)));
		T16_ = (*(*c).prc).blocks->data[T15_].fixups->Sup.len++;
		(*(*c).prc).blocks->data[T15_].fixups->data[T16_] = L1;
	}
	LA1_: ;
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genTry_AcnszMkIUvrpRfWF4iqy5g_11)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	tySequence_qwqHTkRvwhrRyENtudHQ7g* endings;
	NI ehPos;
	NI T9_;
	NI T10_;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* fin;
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		NI T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) ((*dest))) < ((NI) 0));
		if (!(T3_)) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = isEmptyType_nPImuPGZIdcrAfCNyf4oxA_3ast((*n).typ);
		T3_ = !(T5_);
		LA4_: ;
		if (!T3_) goto LA6_;
		T8_ = (NI)0;
		T8_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T8_));
	}
	LA6_: ;
	endings = NIM_NIL;
	ehPos = xjmp_LLVWVnfPUz40PkTu6VMsfA(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 159), ((NI) 0));
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	gen_6vrKVoM8aZ4Rjealu5DZbw(c, (*n).sons->data[((NI) 0)], dest, 0);
	clearDest_dfAz2NYFCQaf0gjeZoi5HAvmgen(c, n, dest);
	T9_ = (NI)0;
	T9_ = xjmp_LLVWVnfPUz40PkTu6VMsfA(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 156), ((NI) 0));
	endings = (tySequence_qwqHTkRvwhrRyENtudHQ7g*) incrSeqV3((TGenericSeq*)(endings), (&NTI_qwqHTkRvwhrRyENtudHQ7g_));
	T10_ = endings->Sup.len++;
	endings->data[T10_] = T9_;
	patch_Ej9bBLeYWuXsMMig9c4loqzw(c, ehPos);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
				NI TM_24XApAWKNvaMkcyklm8bNA_172;
				if (!(i_2 < colontmp_)) goto LA13;
				i = i_2;
				if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
				if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
				it = (*n).sons->data[i];
				{
					NI blen;
					NI endExcept;
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T30_;
					if (!!(((*it).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 107)))) goto LA16_;
					blen = len_P89cqdlERShb9alU3iC0yj8wast(it);
					endExcept = xjmp_LLVWVnfPUz40PkTu6VMsfA(c, it, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 160), ((NI) 0));
					{
						NI j;
						NI colontmp__2;
						NI TM_24XApAWKNvaMkcyklm8bNA_169;
						NI res;
						j = (NI)0;
						colontmp__2 = (NI)0;
						TM_24XApAWKNvaMkcyklm8bNA_169 = subInt(blen, ((NI) 2));
						colontmp__2 = (NI)(TM_24XApAWKNvaMkcyklm8bNA_169);
						res = ((NI) 0);
						{
							while (1) {
								tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
								NI T25_;
								NI TM_24XApAWKNvaMkcyklm8bNA_171;
								if (!(res <= colontmp__2)) goto LA20;
								j = res;
								{
									if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
									if ((NU)(j) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(j,((*it).sons ? (*it).sons->Sup.len : 0)-1);
									if (!!(((*(*it).sons->data[j]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 4)))) goto LA23_;
									failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_170));
								}
								LA23_: ;
								if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
								if ((NU)(j) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(j,((*it).sons ? (*it).sons->Sup.len : 0)-1);
								typ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*it).sons->data[j]).typ, IL64(36275087638308880));
								T25_ = (NI)0;
								T25_ = genType_H4AMs0GuxljbeG3aMubkXA(c, typ);
								gABx_aNIPMIOfai9c7QJx79aStfDw(c, it, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 160), ((NI) 0), T25_);
								TM_24XApAWKNvaMkcyklm8bNA_171 = addInt(res, ((NI) 1));
								res = (NI)(TM_24XApAWKNvaMkcyklm8bNA_171);
							} LA20: ;
						}
					}
					{
						if (!(blen == ((NI) 1))) goto LA28_;
						gABx_aNIPMIOfai9c7QJx79aStfDw(c, it, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 160), ((NI) 0), ((NI) 0));
					}
					LA28_: ;
					T30_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
					T30_ = lastSon_UPSW0jLTX5qJL51YMUAHgw(it);
					gen_6vrKVoM8aZ4Rjealu5DZbw(c, T30_, dest, 0);
					clearDest_dfAz2NYFCQaf0gjeZoi5HAvmgen(c, n, dest);
					{
						NI T33_;
						NI T36_;
						NI T37_;
						T33_ = (NI)0;
						T33_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(n);
						if (!(i < T33_)) goto LA34_;
						T36_ = (NI)0;
						T36_ = xjmp_LLVWVnfPUz40PkTu6VMsfA(c, it, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 156), ((NI) 0));
						endings = (tySequence_qwqHTkRvwhrRyENtudHQ7g*) incrSeqV3((TGenericSeq*)(endings), (&NTI_qwqHTkRvwhrRyENtudHQ7g_));
						T37_ = endings->Sup.len++;
						endings->data[T37_] = T36_;
					}
					LA34_: ;
					patch_Ej9bBLeYWuXsMMig9c4loqzw(c, endExcept);
				}
				LA16_: ;
				TM_24XApAWKNvaMkcyklm8bNA_172 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM_24XApAWKNvaMkcyklm8bNA_172);
			} LA13: ;
		}
	}
	fin = lastSon_UPSW0jLTX5qJL51YMUAHgw(n);
	gABx_aNIPMIOfai9c7QJx79aStfDw(c, fin, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 161), ((NI) 0), ((NI) 0));
	{
		NI endPos;
		NI i_3;
		NI L;
		NI T39_;
		endPos = (NI)0;
		i_3 = ((NI) 0);
		T39_ = (endings ? endings->Sup.len : 0);
		L = T39_;
		{
			while (1) {
				NI TM_24XApAWKNvaMkcyklm8bNA_173;
				if (!(i_3 < L)) goto LA41;
				if ((NU)(i_3) >= (NU)(endings ? endings->Sup.len : 0)) raiseIndexError2(i_3,(endings ? endings->Sup.len : 0)-1);
				endPos = endings->data[i_3];
				patch_Ej9bBLeYWuXsMMig9c4loqzw(c, endPos);
				TM_24XApAWKNvaMkcyklm8bNA_173 = addInt(i_3, ((NI) 1));
				i_3 = (NI)(TM_24XApAWKNvaMkcyklm8bNA_173);
				{
					NI T44_;
					T44_ = (endings ? endings->Sup.len : 0);
					if (!!((T44_ == L))) goto LA45_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_48));
				}
				LA45_: ;
			} LA41: ;
		}
	}
	{
		if (!((*fin).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 107))) goto LA49_;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*fin).kind)>>3] &(1U<<((NU)((*fin).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*fin).sons ? (*fin).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*fin).sons ? (*fin).sons->Sup.len : 0)-1);
		gen_M9cKwar4hMj62R1lH9bydpDQ(c, (*fin).sons->data[((NI) 0)], 0);
		clearDest_dfAz2NYFCQaf0gjeZoi5HAvmgen(c, n, dest);
	}
	LA49_: ;
	gABx_aNIPMIOfai9c7QJx79aStfDw(c, fin, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 162), ((NI) 0), ((NI) 0));
}

static N_INLINE(NI, safeLen_P89cqdlERShb9alU3iC0yj8w_2ast)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	result = (NI)0;
	{
		if (!((*n).kind >= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 0) && (*n).kind <= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA3_;
		result = ((NI) 0);
	}
	goto LA1_;
	LA3_: ;
	{
		result = len_P89cqdlERShb9alU3iC0yj8wast(n);
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*, getOwner_ZAdOX9bNnuzwXclhv6dmGLg)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c) {
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* result;
	result = (tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*)0;
	result = (*(*c).prc).sym;
	{
		if (!(result == 0)) goto LA3_;
		result = (*c).module;
	}
	LA3_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genVarSection_Y59crI4YgTHHCWclw3gn72A_8)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a;
		a = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen_P89cqdlERShb9alU3iC0yj8w_2ast(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					NI TM_24XApAWKNvaMkcyklm8bNA_182;
					if (!(i_2 < colontmp_)) goto LA4;
					i = i_2;
					if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
					if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
					a = (*n).sons->data[i];
					{
						{
							if (!((*a).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 125))) goto LA8_;
							goto LA5;
						}
						LA8_: ;
						{
							tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* T28_;
							tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T29_;
							if (!((*a).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 36))) goto LA12_;
							{
								NI i_3;
								NI colontmp__2;
								NI T15_;
								NI TM_24XApAWKNvaMkcyklm8bNA_177;
								NI res;
								i_3 = (NI)0;
								colontmp__2 = (NI)0;
								T15_ = (NI)0;
								T15_ = len_P89cqdlERShb9alU3iC0yj8wast(a);
								TM_24XApAWKNvaMkcyklm8bNA_177 = subInt(T15_, ((NI) 3));
								colontmp__2 = (NI)(TM_24XApAWKNvaMkcyklm8bNA_177);
								res = ((NI) 0);
								{
									while (1) {
										NI TM_24XApAWKNvaMkcyklm8bNA_178;
										if (!(res <= colontmp__2)) goto LA17;
										i_3 = res;
										{
											if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
											if ((NU)(i_3) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(i_3,((*a).sons ? (*a).sons->Sup.len : 0)-1);
											if (!((*(*a).sons->data[i_3]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA20_;
											{
												NIM_BOOL T24_;
												T24_ = (NIM_BOOL)0;
												if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
												if ((NU)(i_3) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(i_3,((*a).sons ? (*a).sons->Sup.len : 0)-1);
												if (!(((TM_24XApAWKNvaMkcyklm8bNA_9[(NU)((*(*a).sons->data[i_3]).kind)>>3] &(1U<<((NU)((*(*a).sons->data[i_3]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_10));
												T24_ = (((*(*(*a).sons->data[i_3]).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0);
												if (!(T24_)) goto LA25_;
												if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
												if ((NU)(i_3) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(i_3,((*a).sons ? (*a).sons->Sup.len : 0)-1);
												if (!(((TM_24XApAWKNvaMkcyklm8bNA_9[(NU)((*(*a).sons->data[i_3]).kind)>>3] &(1U<<((NU)((*(*a).sons->data[i_3]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_10));
												T24_ = !(((*(*(*a).sons->data[i_3]).sym).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 21)));
												LA25_: ;
												if (!!(T24_)) goto LA26_;
												if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
												if ((NU)(i_3) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(i_3,((*a).sons ? (*a).sons->Sup.len : 0)-1);
												if (!(((TM_24XApAWKNvaMkcyklm8bNA_9[(NU)((*(*a).sons->data[i_3]).kind)>>3] &(1U<<((NU)((*(*a).sons->data[i_3]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_10));
												setSlot_wdPbhGpyRtpS49bqSwMfggA(c, (*(*a).sons->data[i_3]).sym);
											}
											LA26_: ;
											if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
											if ((NU)(i_3) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(i_3,((*a).sons ? (*a).sons->Sup.len : 0)-1);
											checkCanEval_Y59crI4YgTHHCWclw3gn72A(c, (*a).sons->data[i_3]);
										}
										LA20_: ;
										TM_24XApAWKNvaMkcyklm8bNA_178 = addInt(res, ((NI) 1));
										res = (NI)(TM_24XApAWKNvaMkcyklm8bNA_178);
									} LA17: ;
								}
							}
							T28_ = (tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*)0;
							T28_ = getOwner_ZAdOX9bNnuzwXclhv6dmGLg(c);
							T29_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
							T29_ = lowerTupleUnpacking_8A4G64HByteFanrMUexmNw((*c).graph, a, T28_);
							gen_M9cKwar4hMj62R1lH9bydpDQ(c, T29_, 0);
						}
						goto LA10_;
						LA12_: ;
						{
							tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s;
							if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
							if ((NU)(((NI) 0)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*a).sons ? (*a).sons->Sup.len : 0)-1);
							if (!((*(*a).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA31_;
							if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
							if ((NU)(((NI) 0)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*a).sons ? (*a).sons->Sup.len : 0)-1);
							if (!(((TM_24XApAWKNvaMkcyklm8bNA_9[(NU)((*(*a).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*a).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_10));
							s = (*(*a).sons->data[((NI) 0)]).sym;
							if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
							if ((NU)(((NI) 0)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*a).sons ? (*a).sons->Sup.len : 0)-1);
							checkCanEval_Y59crI4YgTHHCWclw3gn72A(c, (*a).sons->data[((NI) 0)]);
							{
								NIM_BOOL T35_;
								T35_ = (NIM_BOOL)0;
								T35_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0);
								if (!(T35_)) goto LA36_;
								T35_ = !(((*s).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 21)));
								LA36_: ;
								if (!T35_) goto LA37_;
								{
									if (!((*s).position == ((NI) 0))) goto LA41_;
									{
										NIM_BOOL T45_;
										T45_ = (NIM_BOOL)0;
										T45_ = importcCond_FdCkMWi1o9ccnUFjzZDi9aUgvmgen(s);
										if (!T45_) goto LA46_;
										importcSym_tceHaTARuJZVYNYoyPbsEA(c, (*a).info, s);
									}
									goto LA43_;
									LA46_: ;
									{
										tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* sa;
										sa = getNullValue_MirnaGAtIj7Yo4Gl5MzUxA((*s).typ, (*a).info, (*c).config);
										{
											if (!!(!(((*sa).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 27))))) goto LA51_;
											failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_179));
										}
										LA51_: ;
										add_P8dDSotTW25BkfbyspojGg((*c).globals, sa);
										(*s).position = len_P89cqdlERShb9alU3iC0yj8wast((*c).globals);
									}
									LA43_: ;
								}
								LA41_: ;
								{
									NI tmp;
									NI val;
									if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
									if ((NU)(((NI) 2)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*a).sons ? (*a).sons->Sup.len : 0)-1);
									if (!!(((*(*a).sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA55_;
									if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
									if ((NU)(((NI) 0)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*a).sons ? (*a).sons->Sup.len : 0)-1);
									tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*a).sons->data[((NI) 0)], 2);
									if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
									if ((NU)(((NI) 2)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*a).sons ? (*a).sons->Sup.len : 0)-1);
									val = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*a).sons->data[((NI) 2)], 0);
									if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
									if ((NU)(((NI) 2)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*a).sons ? (*a).sons->Sup.len : 0)-1);
									genAdditionalCopy_yPz2tNhzBdEEj9c49aHO2Gzw(c, (*a).sons->data[((NI) 2)], ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 21), tmp, ((NI) 0), val);
									freeTemp_1nMAqbaMl87FxWu2gyhzog(c, val);
									freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp);
								}
								LA55_: ;
							}
							goto LA33_;
							LA37_: ;
							{
								setSlot_wdPbhGpyRtpS49bqSwMfggA(c, s);
								{
									tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ T62_;
									NI T63_;
									if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
									if ((NU)(((NI) 2)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*a).sons ? (*a).sons->Sup.len : 0)-1);
									if (!((*(*a).sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA60_;
									T62_ = (tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)0;
									T62_ = ldNullOpcode_dZWW1z30r9beffMQ9bbGg9amA((*s).typ);
									T63_ = (NI)0;
									T63_ = genType_H4AMs0GuxljbeG3aMubkXA(c, (*s).typ);
									gABx_aNIPMIOfai9c7QJx79aStfDw(c, a, T62_, ((NI)chckRange((*s).position, ((NI) 0), ((NI) 255))), T63_);
								}
								goto LA58_;
								LA60_: ;
								{
									tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le;
									{
										if (!!(!(((*s).typ == NIM_NIL)))) goto LA67_;
										failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_180));
									}
									LA67_: ;
									{
										NIM_BOOL T71_;
										tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ T74_;
										NI T75_;
										T71_ = (NIM_BOOL)0;
										T71_ = fitsRegister_NRltpJT49cakdDyz9a9cNr4Kw((*s).typ);
										if (!!(T71_)) goto LA72_;
										T74_ = (tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)0;
										T74_ = ldNullOpcode_dZWW1z30r9beffMQ9bbGg9amA((*s).typ);
										T75_ = (NI)0;
										T75_ = genType_H4AMs0GuxljbeG3aMubkXA(c, (*s).typ);
										gABx_aNIPMIOfai9c7QJx79aStfDw(c, a, T74_, ((NI)chckRange((*s).position, ((NI) 0), ((NI) 255))), T75_);
									}
									LA72_: ;
									if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
									if ((NU)(((NI) 0)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*a).sons ? (*a).sons->Sup.len : 0)-1);
									le = (*a).sons->data[((NI) 0)];
									{
										if (!!(!(((*le).typ == NIM_NIL)))) goto LA78_;
										failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_181));
									}
									LA78_: ;
									{
										NIM_BOOL T82_;
										NIM_BOOL T83_;
										NI cc;
										tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ T87_;
										T82_ = (NIM_BOOL)0;
										T83_ = (NIM_BOOL)0;
										T83_ = fitsRegister_NRltpJT49cakdDyz9a9cNr4Kw((*le).typ);
										T82_ = !(T83_);
										if (!(T82_)) goto LA84_;
										T82_ = ((2312 &(1U<<((NU)((*s).kind)&31U)))!=0);
										LA84_: ;
										if (!T82_) goto LA85_;
										cc = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*le).typ);
										if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
										if ((NU)(((NI) 2)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*a).sons ? (*a).sons->Sup.len : 0)-1);
										gen_KQ9csS06JMUvwHLxUYEy8rA(c, (*a).sons->data[((NI) 2)], cc, 0);
										T87_ = (tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)0;
										T87_ = whichAsgnOpc_Qj2d7lDNNqHtRVhBO4JPQg(le);
										gABC_G2IxRmwmQahHciEYmnYxxg(c, le, T87_, ((NI)chckRange((*s).position, ((NI) 0), ((NI) 255))), cc, ((NI) 1));
										freeTemp_1nMAqbaMl87FxWu2gyhzog(c, cc);
									}
									goto LA80_;
									LA85_: ;
									{
										if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
										if ((NU)(((NI) 2)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*a).sons ? (*a).sons->Sup.len : 0)-1);
										gen_KQ9csS06JMUvwHLxUYEy8rA(c, (*a).sons->data[((NI) 2)], ((NI)chckRange((*s).position, ((NI) 0), ((NI) 255))), 0);
									}
									LA80_: ;
								}
								LA58_: ;
							}
							LA33_: ;
						}
						goto LA10_;
						LA31_: ;
						{
							{
								NI tmp_2;
								tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ T94_;
								NI T95_;
								if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
								if ((NU)(((NI) 2)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*a).sons ? (*a).sons->Sup.len : 0)-1);
								if (!((*(*a).sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA92_;
								if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
								if ((NU)(((NI) 0)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*a).sons ? (*a).sons->Sup.len : 0)-1);
								tmp_2 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*a).sons->data[((NI) 0)], 0);
								if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
								if ((NU)(((NI) 0)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*a).sons ? (*a).sons->Sup.len : 0)-1);
								T94_ = (tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)0;
								T94_ = ldNullOpcode_dZWW1z30r9beffMQ9bbGg9amA((*(*a).sons->data[((NI) 0)]).typ);
								if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
								if ((NU)(((NI) 0)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*a).sons ? (*a).sons->Sup.len : 0)-1);
								T95_ = (NI)0;
								T95_ = genType_H4AMs0GuxljbeG3aMubkXA(c, (*(*a).sons->data[((NI) 0)]).typ);
								gABx_aNIPMIOfai9c7QJx79aStfDw(c, a, T94_, tmp_2, T95_);
								freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp_2);
							}
							goto LA90_;
							LA92_: ;
							{
								if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
								if ((NU)(((NI) 0)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*a).sons ? (*a).sons->Sup.len : 0)-1);
								if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
								if ((NU)(((NI) 2)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*a).sons ? (*a).sons->Sup.len : 0)-1);
								genAsgn_441oTPupNGUtbMyisB9aUyA(c, (*a).sons->data[((NI) 0)], (*a).sons->data[((NI) 2)], NIM_TRUE);
							}
							LA90_: ;
						}
						LA10_: ;
					} LA5: ;
					TM_24XApAWKNvaMkcyklm8bNA_182 = addInt(i_2, ((NI) 1));
					i_2 = (NI)(TM_24XApAWKNvaMkcyklm8bNA_182);
				} LA4: ;
			}
		}
	}
}

N_LIB_PRIVATE N_NIMCALL(tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ, whichAsgnOpc_Brn7pR8y7k7Rc1CrEqY0cQ)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc) {
	tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ result;
	result = (tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)0;
	result = opc;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genArrayConstr_AcnszMkIUvrpRfWF4iqy5g_12)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	NI T6_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* intType;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* seqType;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	T6_ = (NI)0;
	T6_ = genType_H4AMs0GuxljbeG3aMubkXA(c, (*n).typ);
	gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 165), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), T6_);
	intType = getSysType_VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31));
	seqType = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36275087632017424));
	{
		NI tmp;
		NI T11_;
		NI T12_;
		if (!((*seqType).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24))) goto LA9_;
		tmp = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, intType);
		T11_ = (NI)0;
		T11_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
		gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 171), tmp, T11_);
		T12_ = (NI)0;
		T12_ = genType_H4AMs0GuxljbeG3aMubkXA(c, seqType);
		gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 164), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), T12_);
		gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 164), tmp, ((NI) 0));
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp);
	}
	LA9_: ;
	{
		NI T15_;
		NI tmp_2;
		NI T18_;
		T15_ = (NI)0;
		T15_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
		if (!(((NI) 0) < T15_)) goto LA16_;
		tmp_2 = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, intType);
		T18_ = (NI)0;
		T18_ = genType_H4AMs0GuxljbeG3aMubkXA(c, intType);
		gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 166), tmp_2, T18_);
		{
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x;
			x = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen_P89cqdlERShb9alU3iC0yj8w_2ast(n);
				i_2 = ((NI) 0);
				{
					while (1) {
						NI a;
						tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ T23_;
						NI TM_24XApAWKNvaMkcyklm8bNA_183;
						if (!(i_2 < colontmp_)) goto LA22;
						i = i_2;
						if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
						if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
						x = (*n).sons->data[i];
						a = genx_CcIHODsUfIZ32Dw7elmEjQ(c, x, 0);
						T23_ = (tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)0;
						T23_ = whichAsgnOpc_Brn7pR8y7k7Rc1CrEqY0cQ(x, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 15));
						preventFalseAlias_yPz2tNhzBdEEj9c49aHO2Gzw_2(c, n, T23_, ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp_2, a);
						gABI_u2VxMEzYAC2GH9aMCRX5xhw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 25), tmp_2, tmp_2, IL64(1));
						freeTemp_1nMAqbaMl87FxWu2gyhzog(c, a);
						TM_24XApAWKNvaMkcyklm8bNA_183 = addInt(i_2, ((NI) 1));
						i_2 = (NI)(TM_24XApAWKNvaMkcyklm8bNA_183);
					} LA22: ;
				}
			}
		}
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp_2);
	}
	LA16_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genSetConstr_AcnszMkIUvrpRfWF4iqy5g_13)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	NI T6_;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	T6_ = (NI)0;
	T6_ = genType_H4AMs0GuxljbeG3aMubkXA(c, (*n).typ);
	gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 165), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), T6_);
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x;
		x = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen_P89cqdlERShb9alU3iC0yj8w_2ast(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					NI TM_24XApAWKNvaMkcyklm8bNA_184;
					if (!(i_2 < colontmp_)) goto LA10;
					i = i_2;
					if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
					if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
					x = (*n).sons->data[i];
					{
						NI a;
						NI b;
						if (!((*x).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA13_;
						if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*x).kind)>>3] &(1U<<((NU)((*x).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
						if ((NU)(((NI) 0)) >= (NU)((*x).sons ? (*x).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*x).sons ? (*x).sons->Sup.len : 0)-1);
						a = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*x).sons->data[((NI) 0)], 0);
						if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*x).kind)>>3] &(1U<<((NU)((*x).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
						if ((NU)(((NI) 1)) >= (NU)((*x).sons ? (*x).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*x).sons ? (*x).sons->Sup.len : 0)-1);
						b = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*x).sons->data[((NI) 1)], 0);
						gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 31), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), a, b);
						freeTemp_1nMAqbaMl87FxWu2gyhzog(c, b);
						freeTemp_1nMAqbaMl87FxWu2gyhzog(c, a);
					}
					goto LA11_;
					LA13_: ;
					{
						NI a_2;
						a_2 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, x, 0);
						gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 30), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), a_2, ((NI) 0));
						freeTemp_1nMAqbaMl87FxWu2gyhzog(c, a_2);
					}
					LA11_: ;
					TM_24XApAWKNvaMkcyklm8bNA_184 = addInt(i_2, ((NI) 1));
					i_2 = (NI)(TM_24XApAWKNvaMkcyklm8bNA_184);
				} LA10: ;
			}
		}
	}
}

N_LIB_PRIVATE N_NIMCALL(void, genObjConstr_AcnszMkIUvrpRfWF4iqy5g_14)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	t = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36134350136322064));
	{
		NI T10_;
		if (!((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22))) goto LA8_;
		if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
		T10_ = (NI)0;
		T10_ = genType_H4AMs0GuxljbeG3aMubkXA(c, (*t).sons->data[((NI) 0)]);
		gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 163), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), T10_);
	}
	goto LA6_;
	LA8_: ;
	{
		NI T12_;
		T12_ = (NI)0;
		T12_ = genType_H4AMs0GuxljbeG3aMubkXA(c, (*n).typ);
		gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 165), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), T12_);
	}
	LA6_: ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
				NI TM_24XApAWKNvaMkcyklm8bNA_186;
				if (!(i_2 < colontmp_)) goto LA15;
				i = i_2;
				if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
				if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
				it = (*n).sons->data[i];
				{
					NIM_BOOL T18_;
					NI idx;
					NI tmp;
					tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ T22_;
					T18_ = (NIM_BOOL)0;
					T18_ = ((*it).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 34));
					if (!(T18_)) goto LA19_;
					if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
					if ((NU)(((NI) 0)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*it).sons ? (*it).sons->Sup.len : 0)-1);
					T18_ = ((*(*it).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
					LA19_: ;
					if (!T18_) goto LA20_;
					if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
					if ((NU)(((NI) 0)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*it).sons ? (*it).sons->Sup.len : 0)-1);
					idx = genField_9a15qaQFBwMjo9b9byRZNZAHw(c, (*it).sons->data[((NI) 0)]);
					if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
					if ((NU)(((NI) 1)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*it).sons ? (*it).sons->Sup.len : 0)-1);
					tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*it).sons->data[((NI) 1)], 0);
					if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
					if ((NU)(((NI) 1)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*it).sons ? (*it).sons->Sup.len : 0)-1);
					if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
					if ((NU)(((NI) 1)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*it).sons ? (*it).sons->Sup.len : 0)-1);
					T22_ = (tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)0;
					T22_ = whichAsgnOpc_Brn7pR8y7k7Rc1CrEqY0cQ((*it).sons->data[((NI) 1)], ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 17));
					preventFalseAlias_yPz2tNhzBdEEj9c49aHO2Gzw_2(c, (*it).sons->data[((NI) 1)], T22_, ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), idx, tmp);
					freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp);
				}
				goto LA16_;
				LA20_: ;
				{
					globalError_NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_185));
				}
				LA16_: ;
				TM_24XApAWKNvaMkcyklm8bNA_186 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM_24XApAWKNvaMkcyklm8bNA_186);
			} LA15: ;
		}
	}
}

N_LIB_PRIVATE N_NIMCALL(void, genTupleConstr_AcnszMkIUvrpRfWF4iqy5g_15)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	NI T6_;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	T6_ = (NI)0;
	T6_ = genType_H4AMs0GuxljbeG3aMubkXA(c, (*n).typ);
	gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 165), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), T6_);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
				NI TM_24XApAWKNvaMkcyklm8bNA_187;
				if (!(i_2 < colontmp_)) goto LA9;
				i = i_2;
				if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
				if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
				it = (*n).sons->data[i];
				{
					NI idx;
					NI tmp;
					tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ T14_;
					if (!((*it).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA12_;
					if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
					if ((NU)(((NI) 0)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*it).sons ? (*it).sons->Sup.len : 0)-1);
					idx = genField_9a15qaQFBwMjo9b9byRZNZAHw(c, (*it).sons->data[((NI) 0)]);
					if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
					if ((NU)(((NI) 1)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*it).sons ? (*it).sons->Sup.len : 0)-1);
					tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*it).sons->data[((NI) 1)], 0);
					if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
					if ((NU)(((NI) 1)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*it).sons ? (*it).sons->Sup.len : 0)-1);
					if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
					if ((NU)(((NI) 1)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*it).sons ? (*it).sons->Sup.len : 0)-1);
					T14_ = (tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)0;
					T14_ = whichAsgnOpc_Brn7pR8y7k7Rc1CrEqY0cQ((*it).sons->data[((NI) 1)], ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 17));
					preventFalseAlias_yPz2tNhzBdEEj9c49aHO2Gzw_2(c, (*it).sons->data[((NI) 1)], T14_, ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), idx, tmp);
					freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp);
				}
				goto LA10_;
				LA12_: ;
				{
					NI tmp_2;
					tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ T16_;
					tmp_2 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, it, 0);
					T16_ = (tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)0;
					T16_ = whichAsgnOpc_Brn7pR8y7k7Rc1CrEqY0cQ(it, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 17));
					preventFalseAlias_yPz2tNhzBdEEj9c49aHO2Gzw_2(c, it, T16_, ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), ((NI)chckRange(i, ((NI) 0), ((NI) 255))), tmp_2);
					freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp_2);
				}
				LA10_: ;
				TM_24XApAWKNvaMkcyklm8bNA_187 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM_24XApAWKNvaMkcyklm8bNA_187);
			} LA9: ;
		}
	}
}
static N_NIMCALL(void, Marker_tyRef_oFMBe7mwLaHGO8Sa7lv49aw)(void* p, NI op) {
	tyObject_Env_slashUsersslashtravisslashbuildslashnimminuslangslashnightliesslashnimslashe7471cebae2a404f3e4239f199f5a0c422484aacslashcompilerslashvmgendotnim__S3egVycflujrSLBBVkrE6A* a;
	a = (tyObject_Env_slashUsersslashtravisslashbuildslashnimminuslangslashnightliesslashnimslashe7471cebae2a404f3e4239f199f5a0c422484aacslashcompilerslashvmgendotnim__S3egVycflujrSLBBVkrE6A*)p;
	nimGCvisit((void*)(*a).c1, op);
	nimGCvisit((void*)(*a).n2, op);
}

static N_INLINE(NI64, subInt64)(NI64 a, NI64 b) {
	NI64 result;
{	result = (NI64)0;
	result = (NI64)((NU64)(a) - (NU64)(b));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (IL64(0) <= (NI64)(result ^ a));
		if (T3_) goto LA4_;
		T3_ = (IL64(0) <= (NI64)(result ^ (NI64)((NU64) ~(b))));
		LA4_: ;
		if (!T3_) goto LA5_;
		goto BeforeRet_;
	}
	LA5_: ;
	raiseOverflow();
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_CLOSURE(NI, mkIntLit_hDP0jgwejST6KBSJKiSeZg)(NI ival, void* ClE_0) {
	NI result;
	tyObject_Env_slashUsersslashtravisslashbuildslashnimminuslangslashnightliesslashnimslashe7471cebae2a404f3e4239f199f5a0c422484aacslashcompilerslashvmgendotnim__S3egVycflujrSLBBVkrE6A* colonenvP_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T2_;
	result = (NI)0;
	colonenvP_ = (tyObject_Env_slashUsersslashtravisslashbuildslashnimminuslangslashnightliesslashnimslashe7471cebae2a404f3e4239f199f5a0c422484aacslashcompilerslashvmgendotnim__S3egVycflujrSLBBVkrE6A*) ClE_0;
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = getSysType_VcTNc9cK1Ftuh0MFwOC9c0Tg((*(*colonenvP_).c1).graph, (*(*colonenvP_).n2).info, ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31));
	T2_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	T2_ = newIntTypeNode_mZbgs79bpqpV9awU62kdPZ1A(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 6), ((NI64) (ival)), T1_);
	result = genLiteral_PEuKCZcy9a56kIfBOLoHU5Q((*colonenvP_).c1, T2_);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genCastIntFloat_AcnszMkIUvrpRfWF4iqy5g_16)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	tyObject_Env_slashUsersslashtravisslashbuildslashnimminuslangslashnightliesslashnimslashe7471cebae2a404f3e4239f199f5a0c422484aacslashcompilerslashvmgendotnim__S3egVycflujrSLBBVkrE6A* colonenv_;
	tySet_tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag signedIntegers;
	tySet_tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag unsignedIntegers;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* src;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* dst;
	NI64 src_size;
	NI64 dst_size;
	colonenv_ = (tyObject_Env_slashUsersslashtravisslashbuildslashnimminuslangslashnightliesslashnimslashe7471cebae2a404f3e4239f199f5a0c422484aacslashcompilerslashvmgendotnim__S3egVycflujrSLBBVkrE6A*)0;
	colonenv_ = (tyObject_Env_slashUsersslashtravisslashbuildslashnimminuslangslashnightliesslashnimslashe7471cebae2a404f3e4239f199f5a0c422484aacslashcompilerslashvmgendotnim__S3egVycflujrSLBBVkrE6A*) newObj((&NTI_oFMBe7mwLaHGO8Sa7lv49aw_), sizeof(tyObject_Env_slashUsersslashtravisslashbuildslashnimminuslangslashnightliesslashnimslashe7471cebae2a404f3e4239f199f5a0c422484aacslashcompilerslashvmgendotnim__S3egVycflujrSLBBVkrE6A));
	(*colonenv_).Sup.m_type = (&NTI_S3egVycflujrSLBBVkrE6A_);
	asgnRef((void**) (&(*colonenv_).c1), c);
	asgnRef((void**) (&(*colonenv_).n2), n);
	signedIntegers = IL64(30064771072);
	unsignedIntegers = IL64(15393162788868);
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*colonenv_).n2).kind)>>3] &(1U<<((NU)((*(*colonenv_).n2).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*(*colonenv_).n2).sons ? (*(*colonenv_).n2).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*(*colonenv_).n2).sons ? (*(*colonenv_).n2).sons->Sup.len : 0)-1);
	src = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*(*colonenv_).n2).sons->data[((NI) 1)]).typ, IL64(36134350136322320));
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*colonenv_).n2).kind)>>3] &(1U<<((NU)((*(*colonenv_).n2).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 0)) >= (NU)((*(*colonenv_).n2).sons ? (*(*colonenv_).n2).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*(*colonenv_).n2).sons ? (*(*colonenv_).n2).sons->Sup.len : 0)-1);
	dst = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*(*colonenv_).n2).sons->data[((NI) 0)]).typ, IL64(36134350136322320));
	src_size = getSize_vCG1GF2Iu043oALVyuJfOw((*(*colonenv_).c1).config, src);
	dst_size = getSize_vCG1GF2Iu043oALVyuJfOw((*(*colonenv_).c1).config, dst);
	{
		if (!((*(*(*colonenv_).c1).config).target.intSize < ((NI) 8))) goto LA3_;
		signedIntegers |= ((NU64)1)<<((((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31)) & 63);
		unsignedIntegers |= ((NU64)1)<<((((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 40)) & 63);
	}
	LA3_: ;
	{
		NIM_BOOL T7_;
		NIM_BOOL T8_;
		NI tmp;
		NI tmp2;
		NI tmp3;
		T7_ = (NIM_BOOL)0;
		T8_ = (NIM_BOOL)0;
		T8_ = (src_size == dst_size);
		if (!(T8_)) goto LA9_;
		T8_ = ((IL64(34151432454148) &((NU64)1<<((NU)((*src).kind)&63U)))!=0);
		LA9_: ;
		T7_ = T8_;
		if (!(T7_)) goto LA10_;
		T7_ = ((IL64(34151432454148) &((NU64)1<<((NU)((*dst).kind)&63U)))!=0);
		LA10_: ;
		if (!T7_) goto LA11_;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*colonenv_).n2).kind)>>3] &(1U<<((NU)((*(*colonenv_).n2).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*(*colonenv_).n2).sons ? (*(*colonenv_).n2).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*(*colonenv_).n2).sons ? (*(*colonenv_).n2).sons->Sup.len : 0)-1);
		tmp = genx_CcIHODsUfIZ32Dw7elmEjQ((*colonenv_).c1, (*(*colonenv_).n2).sons->data[((NI) 1)], 0);
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*colonenv_).n2).kind)>>3] &(1U<<((NU)((*(*colonenv_).n2).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*(*colonenv_).n2).sons ? (*(*colonenv_).n2).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*(*colonenv_).n2).sons ? (*(*colonenv_).n2).sons->Sup.len : 0)-1);
		tmp2 = getTemp_LRjzFZg4NHLjhn9bcZYMCiw((*colonenv_).c1, (*(*(*colonenv_).n2).sons->data[((NI) 1)]).typ);
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*colonenv_).n2).kind)>>3] &(1U<<((NU)((*(*colonenv_).n2).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*(*colonenv_).n2).sons ? (*(*colonenv_).n2).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*(*colonenv_).n2).sons ? (*(*colonenv_).n2).sons->Sup.len : 0)-1);
		tmp3 = getTemp_LRjzFZg4NHLjhn9bcZYMCiw((*colonenv_).c1, (*(*(*colonenv_).n2).sons->data[((NI) 1)]).typ);
		{
			NI T17_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA15_;
			if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*colonenv_).n2).kind)>>3] &(1U<<((NU)((*(*colonenv_).n2).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 0)) >= (NU)((*(*colonenv_).n2).sons ? (*(*colonenv_).n2).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*(*colonenv_).n2).sons ? (*(*colonenv_).n2).sons->Sup.len : 0)-1);
			T17_ = (NI)0;
			T17_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw((*colonenv_).c1, (*(*(*colonenv_).n2).sons->data[((NI) 0)]).typ);
			(*dest) = ((NI) (T17_));
		}
		LA15_: ;
		{
			NIM_BOOL T20_;
			NI offset;
			NI64 TM_24XApAWKNvaMkcyklm8bNA_189;
			NI64 TM_24XApAWKNvaMkcyklm8bNA_190;
			tyProc_QZ4giON8BOPRx8CufO2W6Q T24_;
			NI T25_;
			T20_ = (NIM_BOOL)0;
			T20_ = ((unsignedIntegers &((NU64)1<<((NU)((*src).kind)&63U)))!=0);
			if (!(T20_)) goto LA21_;
			T20_ = ((signedIntegers &((NU64)1<<((NU)((*dst).kind)&63U)))!=0);
			LA21_: ;
			if (!T20_) goto LA22_;
			TM_24XApAWKNvaMkcyklm8bNA_189 = mulInt64(src_size, IL64(8));
			TM_24XApAWKNvaMkcyklm8bNA_190 = subInt64((NI64)(TM_24XApAWKNvaMkcyklm8bNA_189), IL64(1));
			offset = (NI)((NU64)(((NI) 1)) << (NU64)((NI64)(TM_24XApAWKNvaMkcyklm8bNA_190)));
			nimZeroMem((void*)(&T24_), sizeof(tyProc_QZ4giON8BOPRx8CufO2W6Q));
			T24_.ClP_0 = mkIntLit_hDP0jgwejST6KBSJKiSeZg; T24_.ClE_0 = colonenv_;
			T25_ = (NI)0;
			T25_ = T24_.ClE_0? T24_.ClP_0(offset, T24_.ClE_0):((TM_24XApAWKNvaMkcyklm8bNA_191)(T24_.ClP_0))(offset);
			gABx_aNIPMIOfai9c7QJx79aStfDw((*colonenv_).c1, (*colonenv_).n2, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 167), tmp2, T25_);
			gABC_G2IxRmwmQahHciEYmnYxxg((*colonenv_).c1, (*colonenv_).n2, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 46), tmp3, tmp, tmp2);
			gABC_G2IxRmwmQahHciEYmnYxxg((*colonenv_).c1, (*colonenv_).n2, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 26), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp3, tmp2);
		}
		goto LA18_;
		LA22_: ;
		{
			NIM_BOOL T27_;
			NI offset_2;
			NI64 TM_24XApAWKNvaMkcyklm8bNA_192;
			NI TM_24XApAWKNvaMkcyklm8bNA_193;
			tyProc_QZ4giON8BOPRx8CufO2W6Q T31_;
			NI T32_;
			tyProc_QZ4giON8BOPRx8CufO2W6Q T33_;
			NI TM_24XApAWKNvaMkcyklm8bNA_195;
			NI T34_;
			NI64 TM_24XApAWKNvaMkcyklm8bNA_197;
			T27_ = (NIM_BOOL)0;
			T27_ = ((signedIntegers &((NU64)1<<((NU)((*src).kind)&63U)))!=0);
			if (!(T27_)) goto LA28_;
			T27_ = ((unsignedIntegers &((NU64)1<<((NU)((*dst).kind)&63U)))!=0);
			LA28_: ;
			if (!T27_) goto LA29_;
			TM_24XApAWKNvaMkcyklm8bNA_192 = mulInt64(src_size, IL64(8));
			TM_24XApAWKNvaMkcyklm8bNA_193 = subInt((NI)((NU64)(((NI) 1)) << (NU64)((NI64)(TM_24XApAWKNvaMkcyklm8bNA_192))), ((NI) 1));
			offset_2 = (NI)(TM_24XApAWKNvaMkcyklm8bNA_193);
			nimZeroMem((void*)(&T31_), sizeof(tyProc_QZ4giON8BOPRx8CufO2W6Q));
			T31_.ClP_0 = mkIntLit_hDP0jgwejST6KBSJKiSeZg; T31_.ClE_0 = colonenv_;
			T32_ = (NI)0;
			T32_ = T31_.ClE_0? T31_.ClP_0(offset_2, T31_.ClE_0):((TM_24XApAWKNvaMkcyklm8bNA_194)(T31_.ClP_0))(offset_2);
			gABx_aNIPMIOfai9c7QJx79aStfDw((*colonenv_).c1, (*colonenv_).n2, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 167), tmp2, T32_);
			nimZeroMem((void*)(&T33_), sizeof(tyProc_QZ4giON8BOPRx8CufO2W6Q));
			T33_.ClP_0 = mkIntLit_hDP0jgwejST6KBSJKiSeZg; T33_.ClE_0 = colonenv_;
			TM_24XApAWKNvaMkcyklm8bNA_195 = addInt(offset_2, ((NI) 1));
			T34_ = (NI)0;
			T34_ = T33_.ClE_0? T33_.ClP_0((NI)(TM_24XApAWKNvaMkcyklm8bNA_195), T33_.ClE_0):((TM_24XApAWKNvaMkcyklm8bNA_196)(T33_.ClP_0))((NI)(TM_24XApAWKNvaMkcyklm8bNA_195));
			gABx_aNIPMIOfai9c7QJx79aStfDw((*colonenv_).c1, (*colonenv_).n2, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 167), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), T34_);
			gABC_G2IxRmwmQahHciEYmnYxxg((*colonenv_).c1, (*colonenv_).n2, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 47), tmp3, tmp, ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))));
			TM_24XApAWKNvaMkcyklm8bNA_197 = mulInt64(src_size, IL64(8));
			gABC_G2IxRmwmQahHciEYmnYxxg((*colonenv_).c1, (*colonenv_).n2, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 92), tmp3, ((NI)chckRange64((NI64)(TM_24XApAWKNvaMkcyklm8bNA_197), ((NI) 0), ((NI) 255))), ((NI) 0));
			gABC_G2IxRmwmQahHciEYmnYxxg((*colonenv_).c1, (*colonenv_).n2, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 44), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp3, tmp2);
		}
		goto LA18_;
		LA29_: ;
		{
			gABC_G2IxRmwmQahHciEYmnYxxg((*colonenv_).c1, (*colonenv_).n2, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 4), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp, ((NI) 0));
		}
		LA18_: ;
		freeTemp_1nMAqbaMl87FxWu2gyhzog((*colonenv_).c1, tmp);
		freeTemp_1nMAqbaMl87FxWu2gyhzog((*colonenv_).c1, tmp2);
		freeTemp_1nMAqbaMl87FxWu2gyhzog((*colonenv_).c1, tmp3);
	}
	goto LA5_;
	LA11_: ;
	{
		NIM_BOOL T37_;
		NIM_BOOL T38_;
		NI tmp_2;
		T37_ = (NIM_BOOL)0;
		T38_ = (NIM_BOOL)0;
		T38_ = (src_size == dst_size);
		if (!(T38_)) goto LA39_;
		T38_ = ((IL64(34151432454148) &((NU64)1<<((NU)((*src).kind)&63U)))!=0);
		LA39_: ;
		T37_ = T38_;
		if (!(T37_)) goto LA40_;
		T37_ = ((IL64(481036337152) &((NU64)1<<((NU)((*dst).kind)&63U)))!=0);
		LA40_: ;
		if (!T37_) goto LA41_;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*colonenv_).n2).kind)>>3] &(1U<<((NU)((*(*colonenv_).n2).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*(*colonenv_).n2).sons ? (*(*colonenv_).n2).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*(*colonenv_).n2).sons ? (*(*colonenv_).n2).sons->Sup.len : 0)-1);
		tmp_2 = genx_CcIHODsUfIZ32Dw7elmEjQ((*colonenv_).c1, (*(*colonenv_).n2).sons->data[((NI) 1)], 0);
		{
			NI T47_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA45_;
			if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*colonenv_).n2).kind)>>3] &(1U<<((NU)((*(*colonenv_).n2).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 0)) >= (NU)((*(*colonenv_).n2).sons ? (*(*colonenv_).n2).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*(*colonenv_).n2).sons ? (*(*colonenv_).n2).sons->Sup.len : 0)-1);
			T47_ = (NI)0;
			T47_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw((*colonenv_).c1, (*(*(*colonenv_).n2).sons->data[((NI) 0)]).typ);
			(*dest) = ((NI) (T47_));
		}
		LA45_: ;
		{
			if (!((*dst).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 37))) goto LA50_;
			gABC_G2IxRmwmQahHciEYmnYxxg((*colonenv_).c1, (*colonenv_).n2, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 10), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp_2, ((NI) 0));
		}
		goto LA48_;
		LA50_: ;
		{
			gABC_G2IxRmwmQahHciEYmnYxxg((*colonenv_).c1, (*colonenv_).n2, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 11), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp_2, ((NI) 0));
		}
		LA48_: ;
		freeTemp_1nMAqbaMl87FxWu2gyhzog((*colonenv_).c1, tmp_2);
	}
	goto LA5_;
	LA41_: ;
	{
		NIM_BOOL T54_;
		NIM_BOOL T55_;
		NI tmp_3;
		T54_ = (NIM_BOOL)0;
		T55_ = (NIM_BOOL)0;
		T55_ = (src_size == dst_size);
		if (!(T55_)) goto LA56_;
		T55_ = ((IL64(481036337152) &((NU64)1<<((NU)((*src).kind)&63U)))!=0);
		LA56_: ;
		T54_ = T55_;
		if (!(T54_)) goto LA57_;
		T54_ = ((IL64(34151432454148) &((NU64)1<<((NU)((*dst).kind)&63U)))!=0);
		LA57_: ;
		if (!T54_) goto LA58_;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*colonenv_).n2).kind)>>3] &(1U<<((NU)((*(*colonenv_).n2).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*(*colonenv_).n2).sons ? (*(*colonenv_).n2).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*(*colonenv_).n2).sons ? (*(*colonenv_).n2).sons->Sup.len : 0)-1);
		tmp_3 = genx_CcIHODsUfIZ32Dw7elmEjQ((*colonenv_).c1, (*(*colonenv_).n2).sons->data[((NI) 1)], 0);
		{
			NI T64_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA62_;
			if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*colonenv_).n2).kind)>>3] &(1U<<((NU)((*(*colonenv_).n2).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 0)) >= (NU)((*(*colonenv_).n2).sons ? (*(*colonenv_).n2).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*(*colonenv_).n2).sons ? (*(*colonenv_).n2).sons->Sup.len : 0)-1);
			T64_ = (NI)0;
			T64_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw((*colonenv_).c1, (*(*(*colonenv_).n2).sons->data[((NI) 0)]).typ);
			(*dest) = ((NI) (T64_));
		}
		LA62_: ;
		{
			if (!((*src).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 37))) goto LA67_;
			gABC_G2IxRmwmQahHciEYmnYxxg((*colonenv_).c1, (*colonenv_).n2, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 8), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp_3, ((NI) 0));
		}
		goto LA65_;
		LA67_: ;
		{
			gABC_G2IxRmwmQahHciEYmnYxxg((*colonenv_).c1, (*colonenv_).n2, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 9), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp_3, ((NI) 0));
		}
		LA65_: ;
		freeTemp_1nMAqbaMl87FxWu2gyhzog((*colonenv_).c1, tmp_3);
	}
	goto LA5_;
	LA58_: ;
	{
		globalError_NF6kBGchnhQYPbCedyefVA_2((*(*colonenv_).c1).config, (*(*colonenv_).n2).info, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_198));
	}
	LA5_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, gen_6vrKVoM8aZ4Rjealu5DZbw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags) {
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s;
		if (!(((TM_24XApAWKNvaMkcyklm8bNA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_10));
		s = (*n).sym;
		checkCanEval_Y59crI4YgTHHCWclw3gn72A(c, n);
		switch ((*s).kind) {
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 8):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 21):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 5):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 9):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 3):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 11):
		{
			genRdVar_6vrKVoM8aZ4Rjealu5DZbw_2(c, n, dest, flags);
		}
		break;
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 12):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 13):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 16):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 17):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 18):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 14):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 15):
		{
			{
				NIM_BOOL T6_;
				T6_ = (NIM_BOOL)0;
				T6_ = procIsCallback_9cbdr2y54C9blDw0BnEN4mmQ(c, s);
				if (!T6_) goto LA7_;
			}
			goto LA4_;
			LA7_: ;
			{
				NIM_BOOL T10_;
				T10_ = (NIM_BOOL)0;
				T10_ = importcCond_FdCkMWi1o9ccnUFjzZDi9aUgvmgen(s);
				if (!T10_) goto LA11_;
				importcSym_tceHaTARuJZVYNYoyPbsEA(c, (*n).info, s);
			}
			goto LA4_;
			LA11_: ;
			LA4_: ;
			genLit_AcnszMkIUvrpRfWF4iqy5g(c, n, dest);
		}
		break;
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 10):
		{
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* constVal;
			{
				if (!!(((*s).ast == NIM_NIL))) goto LA16_;
				constVal = (*s).ast;
			}
			goto LA14_;
			LA16_: ;
			{
				constVal = (*(*s).typ).n;
			}
			LA14_: ;
			gen_6vrKVoM8aZ4Rjealu5DZbw(c, constVal, dest, 0);
		}
		break;
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 20):
		{
			{
				NI T24_;
				if (!(((NI) ((*dest))) < ((NI) 0))) goto LA22_;
				T24_ = (NI)0;
				T24_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
				(*dest) = ((NI) (T24_));
			}
			LA22_: ;
			{
				NIM_BOOL T27_;
				T27_ = (NIM_BOOL)0;
				T27_ = (((NI) -32768) <= (*s).position);
				if (!(T27_)) goto LA28_;
				T27_ = ((*s).position <= ((NI) 32767));
				LA28_: ;
				if (!T27_) goto LA29_;
				gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 171), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), (*s).position);
			}
			goto LA25_;
			LA29_: ;
			{
				NI lit;
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T32_;
				T32_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
				T32_ = newIntNode_zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 6), ((NI64) ((*s).position)));
				lit = genLiteral_PEuKCZcy9a56kIfBOLoHU5Q(c, T32_);
				gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 167), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), lit);
			}
			LA25_: ;
		}
		break;
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 7):
		{
			genTypeLit_9a1Lon9cJzf9a69cj4KKhxzxrQ(c, (*s).typ, dest);
		}
		break;
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 4):
		{
			{
				NIM_BOOL T37_;
				T37_ = (NIM_BOOL)0;
				T37_ = !(((*(*c).prc).sym == NIM_NIL));
				if (!(T37_)) goto LA38_;
				T37_ = ((*(*(*c).prc).sym).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 17));
				LA38_: ;
				if (!T37_) goto LA39_;
				genRdVar_6vrKVoM8aZ4Rjealu5DZbw_2(c, n, dest, flags);
			}
			goto LA35_;
			LA39_: ;
			{
				NimStringDesc* T42_;
				T42_ = (NimStringDesc*)0;
				T42_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 26);
appendString(T42_, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_58));
appendString(T42_, (*(*s).name).s);
				globalError_NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, T42_);
			}
			LA35_: ;
		}
		break;
		default:
		{
			NimStringDesc* T44_;
			T44_ = (NimStringDesc*)0;
			T44_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 26);
appendString(T44_, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_58));
appendString(T44_, (*(*s).name).s);
			globalError_NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, T44_);
		}
		break;
		}
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 26) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 32):
	{
		{
			tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s_2;
			if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			if (!((*(*n).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA48_;
			if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			if (!(((TM_24XApAWKNvaMkcyklm8bNA_9[(NU)((*(*n).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_10));
			s_2 = (*(*n).sons->data[((NI) 0)]).sym;
			{
				if (!!(((*s_2).magic == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 0)))) goto LA52_;
				genMagic_5VcHfJsVaWxnq3vvengJ7Q(c, n, dest, (*s_2).magic);
			}
			goto LA50_;
			LA52_: ;
			{
				NimStringDesc* T57_;
				if (!((*s_2).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 14))) goto LA55_;
				T57_ = (NimStringDesc*)0;
				T57_ = rawNewString(((*(*s_2).name).s ? (*(*s_2).name).s->Sup.len : 0) + 35);
appendString(T57_, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_138));
appendString(T57_, (*(*s_2).name).s);
appendString(T57_, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_139));
				localError_NF6kBGchnhQYPbCedyefVA((*c).config, (*n).info, T57_);
			}
			goto LA50_;
			LA55_: ;
			{
				NIM_BOOL T59_;
				T59_ = (NIM_BOOL)0;
				T59_ = matches_52uSyG4N9c9cuGgSFhItwpgQ(s_2, TM_24XApAWKNvaMkcyklm8bNA_142, 3);
				if (!T59_) goto LA60_;
				genMarshalLoad_AcnszMkIUvrpRfWF4iqy5g_6(c, n, dest);
			}
			goto LA50_;
			LA60_: ;
			{
				NIM_BOOL T63_;
				T63_ = (NIM_BOOL)0;
				T63_ = matches_52uSyG4N9c9cuGgSFhItwpgQ(s_2, TM_24XApAWKNvaMkcyklm8bNA_146, 3);
				if (!T63_) goto LA64_;
				genMarshalStore_AcnszMkIUvrpRfWF4iqy5g_7(c, n, dest);
			}
			goto LA50_;
			LA64_: ;
			{
				genCall_AcnszMkIUvrpRfWF4iqy5g_5(c, n, dest);
				clearDest_dfAz2NYFCQaf0gjeZoi5HAvmgen(c, n, dest);
			}
			LA50_: ;
		}
		goto LA46_;
		LA48_: ;
		{
			genCall_AcnszMkIUvrpRfWF4iqy5g_5(c, n, dest);
			clearDest_dfAz2NYFCQaf0gjeZoi5HAvmgen(c, n, dest);
		}
		LA46_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 5) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 10):
	{
		{
			NIM_BOOL T71_;
			T71_ = (NIM_BOOL)0;
			T71_ = isInt16Lit_ZWNdbTkHEJo2QqoHaEPxGA_3(n);
			if (!T71_) goto LA72_;
			{
				NI T78_;
				if (!(((NI) ((*dest))) < ((NI) 0))) goto LA76_;
				T78_ = (NI)0;
				T78_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
				(*dest) = ((NI) (T78_));
			}
			LA76_: ;
			if (!(((TM_24XApAWKNvaMkcyklm8bNA_51[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_52));
			gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 171), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), ((NI) ((*n).intVal)));
		}
		goto LA69_;
		LA72_: ;
		{
			genLit_AcnszMkIUvrpRfWF4iqy5g(c, n, dest);
		}
		LA69_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 11) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 22):
	{
		genLit_AcnszMkIUvrpRfWF4iqy5g(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 23):
	{
		{
			NIM_BOOL T84_;
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T87_;
			T84_ = (NIM_BOOL)0;
			T84_ = isEmptyType_nPImuPGZIdcrAfCNyf4oxA_3ast((*n).typ);
			if (!!(T84_)) goto LA85_;
			T87_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
			T87_ = getNullValue_MirnaGAtIj7Yo4Gl5MzUxA((*n).typ, (*n).info, (*c).config);
			genLit_AcnszMkIUvrpRfWF4iqy5g(c, T87_, dest);
		}
		goto LA82_;
		LA85_: ;
		{
			unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		}
		LA82_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 73):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 74):
	{
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		genAsgn_441oTPupNGUtbMyisB9aUyA(c, (*n).sons->data[((NI) 0)], (*n).sons->data[((NI) 1)], ((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 73)));
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 45):
	{
		genObjAccess_6vrKVoM8aZ4Rjealu5DZbw_4(c, n, dest, flags);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 46):
	{
		genCheckedObjAccess_6vrKVoM8aZ4Rjealu5DZbw_5(c, n, dest, flags);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 42):
	{
		genArrAccess_6vrKVoM8aZ4Rjealu5DZbw_6(c, n, dest, flags);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 47):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 65):
	{
		genDeref_6vrKVoM8aZ4Rjealu5DZbw_7(c, n, dest, flags);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 63):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64):
	{
		genAddr_6vrKVoM8aZ4Rjealu5DZbw_8(c, n, dest, flags);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 92):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 48):
	{
		genIf_AcnszMkIUvrpRfWF4iqy5g_8(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 93):
	{
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*n).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 0)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*(*n).sons->data[((NI) 0)]).sons ? (*(*n).sons->data[((NI) 0)]).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*(*n).sons->data[((NI) 0)]).sons ? (*(*n).sons->data[((NI) 0)]).sons->Sup.len : 0)-1);
		gen_6vrKVoM8aZ4Rjealu5DZbw(c, (*(*n).sons->data[((NI) 0)]).sons->data[((NI) 1)], dest, 0);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 97):
	{
		genCase_AcnszMkIUvrpRfWF4iqy5g_9(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 96):
	{
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genWhile_Y59crI4YgTHHCWclw3gn72A_4(c, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 127):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 112):
	{
		genBlock_AcnszMkIUvrpRfWF4iqy5g_10(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 109):
	{
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genReturn_Y59crI4YgTHHCWclw3gn72A_5(c, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 108):
	{
		genRaise_Y59crI4YgTHHCWclw3gn72A_6(c, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 110):
	{
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genBreak_Y59crI4YgTHHCWclw3gn72A_7(c, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 106):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 154):
	{
		genTry_AcnszMkIUvrpRfWF4iqy5g_11(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 115):
	{
		{
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x;
			x = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen_P89cqdlERShb9alU3iC0yj8w_2ast(n);
				i_2 = ((NI) 0);
				{
					while (1) {
						NI TM_24XApAWKNvaMkcyklm8bNA_174;
						if (!(i_2 < colontmp_)) goto LA108;
						i = i_2;
						if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
						if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
						x = (*n).sons->data[i];
						gen_M9cKwar4hMj62R1lH9bydpDQ(c, x, 0);
						TM_24XApAWKNvaMkcyklm8bNA_174 = addInt(i_2, ((NI) 1));
						i_2 = (NI)(TM_24XApAWKNvaMkcyklm8bNA_174);
					} LA108: ;
				}
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 126):
	{
		NI L;
		NI T110_;
		NI TM_24XApAWKNvaMkcyklm8bNA_175;
		T110_ = (NI)0;
		T110_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
		TM_24XApAWKNvaMkcyklm8bNA_175 = subInt(T110_, ((NI) 1));
		L = (NI)(TM_24XApAWKNvaMkcyklm8bNA_175);
		{
			NI i_3;
			NI i_4;
			i_3 = (NI)0;
			i_4 = ((NI) 0);
			{
				while (1) {
					NI TM_24XApAWKNvaMkcyklm8bNA_176;
					if (!(i_4 < L)) goto LA113;
					i_3 = i_4;
					if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
					if ((NU)(i_3) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i_3,((*n).sons ? (*n).sons->Sup.len : 0)-1);
					gen_M9cKwar4hMj62R1lH9bydpDQ(c, (*n).sons->data[i_3], 0);
					TM_24XApAWKNvaMkcyklm8bNA_176 = addInt(i_4, ((NI) 1));
					i_4 = (NI)(TM_24XApAWKNvaMkcyklm8bNA_176);
				} LA113: ;
			}
		}
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(L) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(L,((*n).sons ? (*n).sons->Sup.len : 0)-1);
		gen_6vrKVoM8aZ4Rjealu5DZbw(c, (*n).sons->data[L], dest, flags);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 91):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T115_;
		T115_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		T115_ = lastSon_UPSW0jLTX5qJL51YMUAHgw(n);
		gen_6vrKVoM8aZ4Rjealu5DZbw(c, T115_, dest, flags);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 114):
	{
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		gen_M9cKwar4hMj62R1lH9bydpDQ(c, (*n).sons->data[((NI) 0)], 0);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 58):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 59):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 60):
	{
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		genConv_3t9aH9c9bW3NlM77J0pxtz3hg(c, n, (*n).sons->data[((NI) 1)], dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 88));
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 66):
	{
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		genConv_3t9aH9c9bW3NlM77J0pxtz3hg(c, n, (*n).sons->data[((NI) 0)], dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 88));
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 67):
	{
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		genConv_3t9aH9c9bW3NlM77J0pxtz3hg(c, n, (*n).sons->data[((NI) 0)], dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 88));
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 99):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 100):
	{
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genVarSection_Y59crI4YgTHHCWclw3gn72A_8(c, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 79) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 81):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 82):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 84):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 159):
	{
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 51) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 52):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T123_;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (!(((TM_24XApAWKNvaMkcyklm8bNA_9[(NU)((*(*n).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_10));
		T123_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		T123_ = newSymNode_I2DV2TmmOysY1ZEGW19b9bRg((*(*n).sons->data[((NI) 0)]).sym);
		genLit_AcnszMkIUvrpRfWF4iqy5g(c, T123_, dest);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 68):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 69):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 70):
	{
		NI tmp0;
		NI tmp1;
		NI tmp2;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp0 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 0)], 0);
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp1 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp2 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 2)], 0);
		gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 97), tmp0, tmp1, tmp2);
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp1);
		freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp2);
		{
			tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ T129_;
			if (!(((NI) 0) <= ((NI) ((*dest))))) goto LA127_;
			T129_ = (tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)0;
			T129_ = whichAsgnOpc_Qj2d7lDNNqHtRVhBO4JPQg(n);
			gABC_G2IxRmwmQahHciEYmnYxxg(c, n, T129_, ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp0, ((NI) 1));
			freeTemp_1nMAqbaMl87FxWu2gyhzog(c, tmp0);
		}
		goto LA125_;
		LA127_: ;
		{
			(*dest) = ((NI) (tmp0));
		}
		LA125_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 125):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 98):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 101):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 90):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 83):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 121):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 116):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 120):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 118):
	{
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 71):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 72):
	{
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		gen_6vrKVoM8aZ4Rjealu5DZbw(c, (*n).sons->data[((NI) 0)], dest, 0);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 41):
	{
		genArrayConstr_AcnszMkIUvrpRfWF4iqy5g_12(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 39):
	{
		genSetConstr_AcnszMkIUvrpRfWF4iqy5g_13(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 38):
	{
		genObjConstr_AcnszMkIUvrpRfWF4iqy5g_14(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 37):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 155):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 160):
	{
		genTupleConstr_AcnszMkIUvrpRfWF4iqy5g_15(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 61):
	{
		{
			if (!(((*c).features &(1U<<((NU)(((tyEnum_TSandboxFlag_JyPEhkAmDAldmLHNNrLR0A) 0))&7U)))!=0)) goto LA140_;
			if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			genConv_3t9aH9c9bW3NlM77J0pxtz3hg(c, n, (*n).sons->data[((NI) 1)], dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 89));
		}
		goto LA138_;
		LA140_: ;
		{
			genCastIntFloat_AcnszMkIUvrpRfWF4iqy5g_16(c, n, dest);
		}
		LA138_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 132):
	{
		genTypeLit_9a1Lon9cJzf9a69cj4KKhxzxrQ(c, (*n).typ, dest);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 24):
	{
	}
	break;
	default:
	{
		NimStringDesc* T146_;
		NimStringDesc* T147_;
		T146_ = (NimStringDesc*)0;
		T147_ = (NimStringDesc*)0;
		T147_ = dollar__qX5C9b0n9bOP7jk69amC8dA7A(n);
		T146_ = rawNewString((T147_ ? T147_->Sup.len : 0) + 28);
appendString(T146_, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_199));
appendString(T146_, T147_);
		globalError_NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, T146_);
	}
	break;
	}
}

N_LIB_PRIVATE N_NIMCALL(void, gen_M9cKwar4hMj62R1lH9bydpDQ)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags) {
	NI tmp;
	tmp = ((NI) -1);
	gen_6vrKVoM8aZ4Rjealu5DZbw(c, n, (&tmp), flags);
}

N_LIB_PRIVATE N_NIMCALL(void, finalJumpTarget_itRVHu2VjfuWF9aKlZ4FY7A)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, NI pc, NI diff) {
	NU32 oldInstr;
	NI TM_24XApAWKNvaMkcyklm8bNA_211;
	{
		NIM_BOOL T3_;
		NimStringDesc* T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) -32767) < diff);
		if (!(T3_)) goto LA4_;
		T3_ = (diff < ((NI) 32767));
		LA4_: ;
		if (!!(T3_)) goto LA5_;
		T7_ = (NimStringDesc*)0;
		T7_ = dollar__r38WafKlW80RkvoZTcia4Q(TM_24XApAWKNvaMkcyklm8bNA_210);
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T7_);
	}
	LA5_: ;
	if ((NU)(pc) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(pc,((*c).code ? (*c).code->Sup.len : 0)-1);
	oldInstr = (*c).code->data[pc];
	if ((NU)(pc) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(pc,((*c).code ? (*c).code->Sup.len : 0)-1);
	TM_24XApAWKNvaMkcyklm8bNA_211 = addInt(diff, ((NI) 32768));
	(*c).code->data[pc] = (NU32)((NU32)(oldInstr & ((NU32) 65535)) | (NU32)((NU32)(((NU32)chckRangeU((NI)(TM_24XApAWKNvaMkcyklm8bNA_211), ((NU32) 0), ((NU32) IL64(4294967295))))) << (NU32)(((NU32) 16))));
}

N_LIB_PRIVATE N_NIMCALL(void, optimizeJumps_c4Ny4S2QTBXPlybhF7naeg)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, NI start) {
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = ((*c).code ? (*c).code->Sup.len : 0);
		colontmp_ = T2_;
		i_2 = start;
		{
			while (1) {
				tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc;
				NI TM_24XApAWKNvaMkcyklm8bNA_221;
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				if ((NU)(i) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(i,((*c).code ? (*c).code->Sup.len : 0)-1);
				opc = ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)chckRange((NU32)((*c).code->data[i] & ((NU32) 255)), ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 0), ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 180)));
				switch (opc) {
				case ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 154):
				case ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 155):
				{
					NI reg;
					NI d;
					NI TM_24XApAWKNvaMkcyklm8bNA_200;
					NI TM_24XApAWKNvaMkcyklm8bNA_201;
					if ((NU)(i) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(i,((*c).code ? (*c).code->Sup.len : 0)-1);
					reg = ((NI)chckRange((NU32)((NU32)((NU32)((*c).code->data[i]) >> (NU32)(((NU32) 8))) & ((NU32) 255)), ((NI) 0), ((NI) 255)));
					if ((NU)(i) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(i,((*c).code ? (*c).code->Sup.len : 0)-1);
					TM_24XApAWKNvaMkcyklm8bNA_200 = subInt(((NI) ((NU32)((NU32)((*c).code->data[i]) >> (NU32)(((NU32) 16))))), ((NI) 32768));
					TM_24XApAWKNvaMkcyklm8bNA_201 = addInt(i, (NI)(TM_24XApAWKNvaMkcyklm8bNA_200));
					d = (NI)(TM_24XApAWKNvaMkcyklm8bNA_201);
					{
						NI iters;
						NI res;
						iters = (NI)0;
						res = ((NI) 10);
						{
							while (1) {
								NI TM_24XApAWKNvaMkcyklm8bNA_207;
								if (!(((NI) 0) <= res)) goto LA8;
								iters = res;
								if ((NU)(d) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(d,((*c).code ? (*c).code->Sup.len : 0)-1);
								switch (((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)chckRange((NU32)((*c).code->data[d] & ((NU32) 255)), ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 0), ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 180)))) {
								case ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 156):
								case ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 157):
								{
									NI TM_24XApAWKNvaMkcyklm8bNA_202;
									NI TM_24XApAWKNvaMkcyklm8bNA_203;
									if ((NU)(d) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(d,((*c).code ? (*c).code->Sup.len : 0)-1);
									TM_24XApAWKNvaMkcyklm8bNA_202 = subInt(((NI) ((NU32)((NU32)((*c).code->data[d]) >> (NU32)(((NU32) 16))))), ((NI) 32768));
									TM_24XApAWKNvaMkcyklm8bNA_203 = addInt(d, (NI)(TM_24XApAWKNvaMkcyklm8bNA_202));
									d = (NI)(TM_24XApAWKNvaMkcyklm8bNA_203);
								}
								break;
								case ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 154):
								case ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 155):
								{
									{
										if ((NU)(d) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(d,((*c).code ? (*c).code->Sup.len : 0)-1);
										if (!!((((NI) (((NI)chckRange((NU32)((NU32)((NU32)((*c).code->data[d]) >> (NU32)(((NU32) 8))) & ((NU32) 255)), ((NI) 0), ((NI) 255))))) == ((NI) (reg))))) goto LA13_;
										goto LA6;
									}
									LA13_: ;
									{
										NI TM_24XApAWKNvaMkcyklm8bNA_204;
										NI TM_24XApAWKNvaMkcyklm8bNA_205;
										if ((NU)(d) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(d,((*c).code ? (*c).code->Sup.len : 0)-1);
										if (!(((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)chckRange((NU32)((*c).code->data[d] & ((NU32) 255)), ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 0), ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 180))) == opc)) goto LA17_;
										if ((NU)(d) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(d,((*c).code ? (*c).code->Sup.len : 0)-1);
										TM_24XApAWKNvaMkcyklm8bNA_204 = subInt(((NI) ((NU32)((NU32)((*c).code->data[d]) >> (NU32)(((NU32) 16))))), ((NI) 32768));
										TM_24XApAWKNvaMkcyklm8bNA_205 = addInt(d, (NI)(TM_24XApAWKNvaMkcyklm8bNA_204));
										d = (NI)(TM_24XApAWKNvaMkcyklm8bNA_205);
									}
									goto LA15_;
									LA17_: ;
									{
										NI TM_24XApAWKNvaMkcyklm8bNA_206;
										TM_24XApAWKNvaMkcyklm8bNA_206 = addInt(d, ((NI) 1));
										d = (NI)(TM_24XApAWKNvaMkcyklm8bNA_206);
									}
									LA15_: ;
								}
								break;
								default:
								{
									goto LA6;
								}
								break;
								}
								TM_24XApAWKNvaMkcyklm8bNA_207 = subInt(res, ((NI) 1));
								res = (NI)(TM_24XApAWKNvaMkcyklm8bNA_207);
							} LA8: ;
						}
					} LA6: ;
					{
						NI TM_24XApAWKNvaMkcyklm8bNA_208;
						NI TM_24XApAWKNvaMkcyklm8bNA_209;
						NI TM_24XApAWKNvaMkcyklm8bNA_212;
						if ((NU)(i) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(i,((*c).code ? (*c).code->Sup.len : 0)-1);
						TM_24XApAWKNvaMkcyklm8bNA_208 = subInt(((NI) ((NU32)((NU32)((*c).code->data[i]) >> (NU32)(((NU32) 16))))), ((NI) 32768));
						TM_24XApAWKNvaMkcyklm8bNA_209 = addInt(i, (NI)(TM_24XApAWKNvaMkcyklm8bNA_208));
						if (!!((d == (NI)(TM_24XApAWKNvaMkcyklm8bNA_209)))) goto LA23_;
						TM_24XApAWKNvaMkcyklm8bNA_212 = subInt(d, i);
						finalJumpTarget_itRVHu2VjfuWF9aKlZ4FY7A(c, i, (NI)(TM_24XApAWKNvaMkcyklm8bNA_212));
					}
					LA23_: ;
				}
				break;
				case ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 156):
				case ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 157):
				{
					NI d_2;
					NI TM_24XApAWKNvaMkcyklm8bNA_213;
					NI TM_24XApAWKNvaMkcyklm8bNA_214;
					NI iters_2;
					if ((NU)(i) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(i,((*c).code ? (*c).code->Sup.len : 0)-1);
					TM_24XApAWKNvaMkcyklm8bNA_213 = subInt(((NI) ((NU32)((NU32)((*c).code->data[i]) >> (NU32)(((NU32) 16))))), ((NI) 32768));
					TM_24XApAWKNvaMkcyklm8bNA_214 = addInt(i, (NI)(TM_24XApAWKNvaMkcyklm8bNA_213));
					d_2 = (NI)(TM_24XApAWKNvaMkcyklm8bNA_214);
					iters_2 = ((NI) 10);
					{
						while (1) {
							NIM_BOOL T28_;
							NI TM_24XApAWKNvaMkcyklm8bNA_215;
							NI TM_24XApAWKNvaMkcyklm8bNA_216;
							NI TM_24XApAWKNvaMkcyklm8bNA_217;
							T28_ = (NIM_BOOL)0;
							if ((NU)(d_2) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(d_2,((*c).code ? (*c).code->Sup.len : 0)-1);
							T28_ = (((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)chckRange((NU32)((*c).code->data[d_2] & ((NU32) 255)), ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 0), ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 180))) == ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 156));
							if (!(T28_)) goto LA29_;
							T28_ = (((NI) 0) < iters_2);
							LA29_: ;
							if (!T28_) goto LA27;
							if ((NU)(d_2) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(d_2,((*c).code ? (*c).code->Sup.len : 0)-1);
							TM_24XApAWKNvaMkcyklm8bNA_215 = subInt(((NI) ((NU32)((NU32)((*c).code->data[d_2]) >> (NU32)(((NU32) 16))))), ((NI) 32768));
							TM_24XApAWKNvaMkcyklm8bNA_216 = addInt(d_2, (NI)(TM_24XApAWKNvaMkcyklm8bNA_215));
							d_2 = (NI)(TM_24XApAWKNvaMkcyklm8bNA_216);
							TM_24XApAWKNvaMkcyklm8bNA_217 = subInt(iters_2, ((NI) 1));
							iters_2 = (NI)(TM_24XApAWKNvaMkcyklm8bNA_217);
						} LA27: ;
					}
					{
						if ((NU)(d_2) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(d_2,((*c).code ? (*c).code->Sup.len : 0)-1);
						if (!(((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)chckRange((NU32)((*c).code->data[d_2] & ((NU32) 255)), ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 0), ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 180))) == ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 1))) goto LA32_;
						if ((NU)(i) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(i,((*c).code ? (*c).code->Sup.len : 0)-1);
						if ((NU)(d_2) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(d_2,((*c).code ? (*c).code->Sup.len : 0)-1);
						(*c).code->data[i] = (*c).code->data[d_2];
					}
					goto LA30_;
					LA32_: ;
					{
						NI TM_24XApAWKNvaMkcyklm8bNA_218;
						NI TM_24XApAWKNvaMkcyklm8bNA_219;
						NI TM_24XApAWKNvaMkcyklm8bNA_220;
						if ((NU)(i) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(i,((*c).code ? (*c).code->Sup.len : 0)-1);
						TM_24XApAWKNvaMkcyklm8bNA_218 = subInt(((NI) ((NU32)((NU32)((*c).code->data[i]) >> (NU32)(((NU32) 16))))), ((NI) 32768));
						TM_24XApAWKNvaMkcyklm8bNA_219 = addInt(i, (NI)(TM_24XApAWKNvaMkcyklm8bNA_218));
						if (!!((d_2 == (NI)(TM_24XApAWKNvaMkcyklm8bNA_219)))) goto LA35_;
						TM_24XApAWKNvaMkcyklm8bNA_220 = subInt(d_2, i);
						finalJumpTarget_itRVHu2VjfuWF9aKlZ4FY7A(c, i, (NI)(TM_24XApAWKNvaMkcyklm8bNA_220));
					}
					goto LA30_;
					LA35_: ;
					LA30_: ;
				}
				break;
				default:
				{
				}
				break;
				}
				TM_24XApAWKNvaMkcyklm8bNA_221 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM_24XApAWKNvaMkcyklm8bNA_221);
			} LA4: ;
		}
	}
}

N_LIB_PRIVATE N_NIMCALL(NI, genProc_82SK3f7Ee6e9aktSfHKYXUw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s) {
	NI result;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x;
	result = (NI)0;
	if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*s).ast).kind)>>3] &(1U<<((NU)((*(*s).ast).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 5)) >= (NU)((*(*s).ast).sons ? (*(*s).ast).sons->Sup.len : 0)) raiseIndexError2(((NI) 5),((*(*s).ast).sons ? (*(*s).ast).sons->Sup.len : 0)-1);
	x = (*(*s).ast).sons->data[((NI) 5)];
	{
		NIM_BOOL T3_;
		NI last;
		NI T7_;
		NI TM_24XApAWKNvaMkcyklm8bNA_4;
		NU32 eofInstr;
		NI T14_;
		NI TM_24XApAWKNvaMkcyklm8bNA_5;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* body;
		NIM_BOOL T21_;
		NI procStart;
		tyObject_PProccolonObjectType__VFEBuxrDHC6kHPzc1TWaRQ* p;
		tyObject_PProccolonObjectType__VFEBuxrDHC6kHPzc1TWaRQ* T22_;
		tyObject_PProccolonObjectType__VFEBuxrDHC6kHPzc1TWaRQ* oldPrc;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*x).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1));
		if (T3_) goto LA4_;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*x).kind)>>3] &(1U<<((NU)((*x).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*x).sons ? (*x).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*x).sons ? (*x).sons->Sup.len : 0)-1);
		T3_ = ((*(*x).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1));
		LA4_: ;
		if (!T3_) goto LA5_;
		T7_ = ((*c).code ? (*c).code->Sup.len : 0);
		TM_24XApAWKNvaMkcyklm8bNA_4 = subInt(T7_, ((NI) 1));
		last = (NI)(TM_24XApAWKNvaMkcyklm8bNA_4);
		eofInstr = (NU32)0;
		{
			NIM_BOOL T10_;
			T10_ = (NIM_BOOL)0;
			T10_ = (((NI) 0) <= last);
			if (!(T10_)) goto LA11_;
			if ((NU)(last) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(last,((*c).code ? (*c).code->Sup.len : 0)-1);
			T10_ = (((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)chckRange((NU32)((*c).code->data[last] & ((NU32) 255)), ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 0), ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 180))) == ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 0));
			LA11_: ;
			if (!T10_) goto LA12_;
			if ((NU)(last) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(last,((*c).code ? (*c).code->Sup.len : 0)-1);
			eofInstr = (*c).code->data[last];
			asgnRef((void**) (&(*c).code), (tySequence_9bAGqSvkAaFL9bWjsEPslrFA*) setLengthSeqV2(&((*c).code)->Sup, (&NTI_9bAGqSvkAaFL9bWjsEPslrFA_), ((NI)chckRange(last, ((NI) 0), ((NI) IL64(9223372036854775807))))));
			asgnRef((void**) (&(*c).debug), (tySequence_PJMRIt5QxCm6bRaVyQ5CGA*) setLengthSeqV2(&((*c).debug)->Sup, (&NTI_PJMRIt5QxCm6bRaVyQ5CGA_), ((NI)chckRange(last, ((NI) 0), ((NI) IL64(9223372036854775807))))));
		}
		LA12_: ;
		T14_ = ((*c).code ? (*c).code->Sup.len : 0);
		TM_24XApAWKNvaMkcyklm8bNA_5 = addInt(T14_, ((NI) 1));
		result = (NI)(TM_24XApAWKNvaMkcyklm8bNA_5);
		{
			tyArray_AB6yfoUgfWM2NtGe9bzkCmw T19_;
			if (!((*x).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA17_;
			nimZeroMem((void*)T19_, sizeof(tyArray_AB6yfoUgfWM2NtGe9bzkCmw));
			T19_[0] = newIntNode_zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 6), ((NI64) (result)));
			T19_[1] = x;
			x = newTree_FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 41), T19_, 2);
		}
		goto LA15_;
		LA17_: ;
		{
			if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*x).kind)>>3] &(1U<<((NU)((*x).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 0)) >= (NU)((*x).sons ? (*x).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*x).sons ? (*x).sons->Sup.len : 0)-1);
			asgnRef((void**) (&(*x).sons->data[((NI) 0)]), newIntNode_zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 6), ((NI64) (result))));
		}
		LA15_: ;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*s).ast).kind)>>3] &(1U<<((NU)((*(*s).ast).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 5)) >= (NU)((*(*s).ast).sons ? (*(*s).ast).sons->Sup.len : 0)) raiseIndexError2(((NI) 5),((*(*s).ast).sons ? (*(*s).ast).sons->Sup.len : 0)-1);
		asgnRef((void**) (&(*(*s).ast).sons->data[((NI) 5)]), x);
		T21_ = (NIM_BOOL)0;
		T21_ = isCompileTimeProc_Ye2MiAptq3GrXxTQeyXNeA_4ast(s);
		body = transformBody_gFZW9bFffCiuUrdu3Rnih2g((*c).graph, s, !(T21_), NIM_TRUE);
		procStart = xjmp_LLVWVnfPUz40PkTu6VMsfA(c, body, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 156), ((NI) 0));
		T22_ = (tyObject_PProccolonObjectType__VFEBuxrDHC6kHPzc1TWaRQ*)0;
		T22_ = (tyObject_PProccolonObjectType__VFEBuxrDHC6kHPzc1TWaRQ*) newObj((&NTI_FM7mzTFsA8pyUhXVKKO6Gw_), sizeof(tyObject_PProccolonObjectType__VFEBuxrDHC6kHPzc1TWaRQ));
		if ((*T22_).blocks) { nimGCunrefRC1((*T22_).blocks); (*T22_).blocks = NIM_NIL; }
		asgnRef((void**) (&(*T22_).sym), s);
		p = T22_;
		oldPrc = (*c).prc;
		asgnRef((void**) (&(*c).prc), p);
		genParams_yHS9cbYsE7NJ9b9appE7eVGpA(c, (*(*s).typ).n);
		{
			NIM_BOOL T25_;
			T25_ = (NIM_BOOL)0;
			T25_ = ((*s).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 17));
			if (!(T25_)) goto LA26_;
			if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*s).ast).kind)>>3] &(1U<<((NU)((*(*s).ast).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 2)) >= (NU)((*(*s).ast).sons ? (*(*s).ast).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*(*s).ast).sons ? (*(*s).ast).sons->Sup.len : 0)-1);
			T25_ = !(((*(*(*s).ast).sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1)));
			LA26_: ;
			if (!T25_) goto LA27_;
			if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*s).ast).kind)>>3] &(1U<<((NU)((*(*s).ast).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 2)) >= (NU)((*(*s).ast).sons ? (*(*s).ast).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*(*s).ast).sons ? (*(*s).ast).sons->Sup.len : 0)-1);
			genGenericParams_4wahcx9bmpD7ffT1schyhBg(c, (*(*s).ast).sons->data[((NI) 2)]);
		}
		LA27_: ;
		{
			NIM_BOOL colontmp_;
			tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ colontmp__2;
			NI TM_24XApAWKNvaMkcyklm8bNA_15;
			if (!(((*(*s).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 12))&63U)))!=0)) goto LA31_;
			colontmp_ = NIM_TRUE;
			colontmp__2 = ((tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ) 2);
			if ((NU)((*(*c).prc).maxSlots) > (NU)(255)) raiseIndexError2((*(*c).prc).maxSlots, 255);
			(*(*c).prc).slots[((*(*c).prc).maxSlots)- 0].Field0 = colontmp_;
			(*(*c).prc).slots[((*(*c).prc).maxSlots)- 0].Field1 = colontmp__2;
			TM_24XApAWKNvaMkcyklm8bNA_15 = addInt((*(*c).prc).maxSlots, ((NI) 1));
			(*(*c).prc).maxSlots = (NI)(TM_24XApAWKNvaMkcyklm8bNA_15);
		}
		LA31_: ;
		gen_M9cKwar4hMj62R1lH9bydpDQ(c, body, 0);
		gABC_G2IxRmwmQahHciEYmnYxxg(c, body, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 1), ((NI) 0), ((NI) 0), ((NI) 0));
		patch_Ej9bBLeYWuXsMMig9c4loqzw(c, procStart);
		gABC_G2IxRmwmQahHciEYmnYxxg(c, body, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 0), ((NI)chckRange((NU32)((NU32)((NU32)(eofInstr) >> (NU32)(((NU32) 8))) & ((NU32) 255)), ((NI) 0), ((NI) 255))), ((NI) 0), ((NI) 0));
		optimizeJumps_c4Ny4S2QTBXPlybhF7naeg(c, result);
		(*s).offset = (*(*c).prc).maxSlots;
		asgnRef((void**) (&(*c).prc), oldPrc);
	}
	goto LA1_;
	LA5_: ;
	{
		(*(*c).prc).maxSlots = (*s).offset;
		if (((TM_24XApAWKNvaMkcyklm8bNA_2[(NU)((*x).kind)>>3] &(1U<<((NU)((*x).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*x).sons ? (*x).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*x).sons ? (*x).sons->Sup.len : 0)-1);
		if (!(((TM_24XApAWKNvaMkcyklm8bNA_51[(NU)((*(*x).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*x).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_52));
		result = ((NI) ((*(*x).sons->data[((NI) 0)]).intVal));
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, removeLastEof_11BORrgbqmd0BtSK02pBqQ)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c) {
	NI last;
	NI T1_;
	NI TM_24XApAWKNvaMkcyklm8bNA_222;
	T1_ = ((*c).code ? (*c).code->Sup.len : 0);
	TM_24XApAWKNvaMkcyklm8bNA_222 = subInt(T1_, ((NI) 1));
	last = (NI)(TM_24XApAWKNvaMkcyklm8bNA_222);
	{
		NIM_BOOL T4_;
		T4_ = (NIM_BOOL)0;
		T4_ = (((NI) 0) <= last);
		if (!(T4_)) goto LA5_;
		if ((NU)(last) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(last,((*c).code ? (*c).code->Sup.len : 0)-1);
		T4_ = (((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)chckRange((NU32)((*c).code->data[last] & ((NU32) 255)), ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 0), ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 180))) == ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 0));
		LA5_: ;
		if (!T4_) goto LA6_;
		{
			NI T10_;
			NI T11_;
			T10_ = ((*c).code ? (*c).code->Sup.len : 0);
			T11_ = ((*c).debug ? (*c).debug->Sup.len : 0);
			if (!!((T10_ == T11_))) goto LA12_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_223));
		}
		LA12_: ;
		asgnRef((void**) (&(*c).code), (tySequence_9bAGqSvkAaFL9bWjsEPslrFA*) setLengthSeqV2(&((*c).code)->Sup, (&NTI_9bAGqSvkAaFL9bWjsEPslrFA_), ((NI)chckRange(last, ((NI) 0), ((NI) IL64(9223372036854775807))))));
		asgnRef((void**) (&(*c).debug), (tySequence_PJMRIt5QxCm6bRaVyQ5CGA*) setLengthSeqV2(&((*c).debug)->Sup, (&NTI_PJMRIt5QxCm6bRaVyQ5CGA_), ((NI)chckRange(last, ((NI) 0), ((NI) IL64(9223372036854775807))))));
	}
	LA6_: ;
}

N_LIB_PRIVATE N_NIMCALL(NI, genExpr_iSa9ao3PEkzo8fCmeMa1Kvg)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL requiresValue) {
	NI result;
	NI T1_;
	NI d;
	result = (NI)0;
	removeLastEof_11BORrgbqmd0BtSK02pBqQ(c);
	T1_ = ((*c).code ? (*c).code->Sup.len : 0);
	result = T1_;
	d = ((NI) -1);
	gen_6vrKVoM8aZ4Rjealu5DZbw(c, n, (&d), 0);
	{
		if (!(((NI) (d)) < ((NI) 0))) goto LA4_;
		{
			if (!requiresValue) goto LA8_;
			globalError_NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_224));
		}
		LA8_: ;
		d = ((NI) 0);
	}
	LA4_: ;
	gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 0), ((NI)chckRange(d, ((NI) 0), ((NI) 255))), ((NI) 0), ((NI) 0));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NI, genStmt_PEuKCZcy9a56kIfBOLoHU5Q_3)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	NI T1_;
	NI d;
	result = (NI)0;
	removeLastEof_11BORrgbqmd0BtSK02pBqQ(c);
	T1_ = ((*c).code ? (*c).code->Sup.len : 0);
	result = T1_;
	d = ((NI) -1);
	gen_6vrKVoM8aZ4Rjealu5DZbw(c, n, (&d), 0);
	gABC_G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 0), ((NI) 0), ((NI) 0), ((NI) 0));
	{
		if (!(((NI) 0) <= ((NI) (d)))) goto LA4_;
		globalError_NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_225));
	}
	LA4_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, compiler_vmgenDatInit000)(void) {
static TNimNode* TM_24XApAWKNvaMkcyklm8bNA_188_3[3];
static TNimNode TM_24XApAWKNvaMkcyklm8bNA_0[4];
NTI_S3egVycflujrSLBBVkrE6A_.size = sizeof(tyObject_Env_slashUsersslashtravisslashbuildslashnimminuslangslashnightliesslashnimslashe7471cebae2a404f3e4239f199f5a0c422484aacslashcompilerslashvmgendotnim__S3egVycflujrSLBBVkrE6A);
NTI_S3egVycflujrSLBBVkrE6A_.kind = 17;
NTI_S3egVycflujrSLBBVkrE6A_.base = (&NTI_ytyiCJqK439aF9cIibuRVpAg_);
TM_24XApAWKNvaMkcyklm8bNA_188_3[0] = &TM_24XApAWKNvaMkcyklm8bNA_0[1];
TM_24XApAWKNvaMkcyklm8bNA_0[1].kind = 1;
TM_24XApAWKNvaMkcyklm8bNA_0[1].offset = offsetof(tyObject_Env_slashUsersslashtravisslashbuildslashnimminuslangslashnightliesslashnimslashe7471cebae2a404f3e4239f199f5a0c422484aacslashcompilerslashvmgendotnim__S3egVycflujrSLBBVkrE6A, colonstate_);
TM_24XApAWKNvaMkcyklm8bNA_0[1].typ = (&NTI_xHTZrq9aYs6boc9bCba0JbpQ_);
TM_24XApAWKNvaMkcyklm8bNA_0[1].name = ":state";
TM_24XApAWKNvaMkcyklm8bNA_188_3[1] = &TM_24XApAWKNvaMkcyklm8bNA_0[2];
TM_24XApAWKNvaMkcyklm8bNA_0[2].kind = 1;
TM_24XApAWKNvaMkcyklm8bNA_0[2].offset = offsetof(tyObject_Env_slashUsersslashtravisslashbuildslashnimminuslangslashnightliesslashnimslashe7471cebae2a404f3e4239f199f5a0c422484aacslashcompilerslashvmgendotnim__S3egVycflujrSLBBVkrE6A, c1);
TM_24XApAWKNvaMkcyklm8bNA_0[2].typ = (&NTI_FD9cVFUpCDGxUmwW7TEZIFQ_);
TM_24XApAWKNvaMkcyklm8bNA_0[2].name = "c1";
TM_24XApAWKNvaMkcyklm8bNA_188_3[2] = &TM_24XApAWKNvaMkcyklm8bNA_0[3];
TM_24XApAWKNvaMkcyklm8bNA_0[3].kind = 1;
TM_24XApAWKNvaMkcyklm8bNA_0[3].offset = offsetof(tyObject_Env_slashUsersslashtravisslashbuildslashnimminuslangslashnightliesslashnimslashe7471cebae2a404f3e4239f199f5a0c422484aacslashcompilerslashvmgendotnim__S3egVycflujrSLBBVkrE6A, n2);
TM_24XApAWKNvaMkcyklm8bNA_0[3].typ = (&NTI_fKfcLzXYiz5jNu3NH3Tv8Q_);
TM_24XApAWKNvaMkcyklm8bNA_0[3].name = "n2";
TM_24XApAWKNvaMkcyklm8bNA_0[0].len = 3; TM_24XApAWKNvaMkcyklm8bNA_0[0].kind = 2; TM_24XApAWKNvaMkcyklm8bNA_0[0].sons = &TM_24XApAWKNvaMkcyklm8bNA_188_3[0];
NTI_S3egVycflujrSLBBVkrE6A_.node = &TM_24XApAWKNvaMkcyklm8bNA_0[0];
NTI_oFMBe7mwLaHGO8Sa7lv49aw_.size = sizeof(tyObject_Env_slashUsersslashtravisslashbuildslashnimminuslangslashnightliesslashnimslashe7471cebae2a404f3e4239f199f5a0c422484aacslashcompilerslashvmgendotnim__S3egVycflujrSLBBVkrE6A*);
NTI_oFMBe7mwLaHGO8Sa7lv49aw_.kind = 22;
NTI_oFMBe7mwLaHGO8Sa7lv49aw_.base = (&NTI_S3egVycflujrSLBBVkrE6A_);
NTI_oFMBe7mwLaHGO8Sa7lv49aw_.marker = Marker_tyRef_oFMBe7mwLaHGO8Sa7lv49aw;
}

