/* Generated by Nim Compiler v1.6.10 */
#define NIM_INTBITS 32
#define NIM_EmulateOverflowChecks

#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_TNode__bROa11lyF5vxEN9aYNbHmhw tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw;
typedef struct tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ;
typedef struct tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q;
typedef struct tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ;
typedef struct tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w;
typedef struct RootObj RootObj;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g;
typedef struct tyObject_TType__facALICuu8zUj0hjvbTLFg tyObject_TType__facALICuu8zUj0hjvbTLFg;
typedef struct tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA;
typedef struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q;
typedef struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA;
typedef struct tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA;
typedef struct tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA;
typedef struct tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ;
typedef struct tyObject_Con__mVYRtnERc9advo79cBQUudxg tyObject_Con__mVYRtnERc9advo79cBQUudxg;
typedef struct tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ;
typedef struct tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA;
typedef struct tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA;
typedef struct tySequence__Bre9bNyuQOg1EJKitjSzn8w tySequence__Bre9bNyuQOg1EJKitjSzn8w;
typedef struct tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg;
typedef struct tySequence__4mZLwkxT8rbt9bf3wXrXYNQ tySequence__4mZLwkxT8rbt9bf3wXrXYNQ;
typedef struct tySequence__rQHmYk1HzcwNxKBymIFHpA tySequence__rQHmYk1HzcwNxKBymIFHpA;
typedef struct tySequence__XMM60DtBsc6xYsIpNANkrA tySequence__XMM60DtBsc6xYsIpNANkrA;
typedef struct tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw;
typedef struct tySequence__ChDZ6dokJ9aj9cg3KBoCU5vg tySequence__ChDZ6dokJ9aj9cg3KBoCU5vg;
typedef struct tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg;
typedef struct tySequence__mWRMiYLthG9coLjkbElCxkw tySequence__mWRMiYLthG9coLjkbElCxkw;
typedef struct tyObject_Table__iowAVDkco3qpbEH0z8OmkQ tyObject_Table__iowAVDkco3qpbEH0z8OmkQ;
typedef struct tySequence__bTDCDwD2P7TodzbAefLcSw tySequence__bTDCDwD2P7TodzbAefLcSw;
typedef struct tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w;
typedef struct tySequence__3MPVXAHA08SszBrU4ffqEg tySequence__3MPVXAHA08SszBrU4ffqEg;
typedef struct tyObject_Table__KcymdZjUsmGSK8BxmvoJgw tyObject_Table__KcymdZjUsmGSK8BxmvoJgw;
typedef struct tySequence__YCf5zJHm4JI06qpmKwPUWg tySequence__YCf5zJHm4JI06qpmKwPUWg;
typedef struct tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA;
typedef struct tySequence__7lEisrXlQEzwtUKW5pzRCw tySequence__7lEisrXlQEzwtUKW5pzRCw;
typedef struct tyObject_PackedConfig__McwvRupqDAJbGrinIDFZJQ tyObject_PackedConfig__McwvRupqDAJbGrinIDFZJQ;
typedef struct tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA;
typedef struct tySequence__eHqUwlHGGaPw0TDPDeL79cQ tySequence__eHqUwlHGGaPw0TDPDeL79cQ;
typedef struct tyObject_Table__fdKWDDO1P17zvuQPReVgRA tyObject_Table__fdKWDDO1P17zvuQPReVgRA;
typedef struct tySequence__fdmz6VkIf1ewwrssKYqRFg tySequence__fdmz6VkIf1ewwrssKYqRFg;
typedef struct tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ;
typedef struct tySequence__kxu4GK0onha2t9bo86mdVAg tySequence__kxu4GK0onha2t9bo86mdVAg;
typedef struct tySequence__48JTohSgTy339bRxHzUD8KA tySequence__48JTohSgTy339bRxHzUD8KA;
typedef struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw;
typedef struct tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw;
typedef struct tyObject_Table__eJdcv3ds6oTpWvWwTDiw9bg tyObject_Table__eJdcv3ds6oTpWvWwTDiw9bg;
typedef struct tySequence__FdVaeFbf9a05PXbYlgHL9ahw tySequence__FdVaeFbf9a05PXbYlgHL9ahw;
typedef struct tyObject_Table__Jh7Ii8xuFcs9bwfmKa4J4dw tyObject_Table__Jh7Ii8xuFcs9bwfmKa4J4dw;
typedef struct tySequence__1XdfDDoNvZorxGg2DV0QnA tySequence__1XdfDDoNvZorxGg2DV0QnA;
typedef struct tySequence__s9byh6WFJ16lPMcmqdaMTHA tySequence__s9byh6WFJ16lPMcmqdaMTHA;
typedef struct tyObject_Table__Ue6w4c82v7gc7t2qntTbAw tyObject_Table__Ue6w4c82v7gc7t2qntTbAw;
typedef struct tySequence__1U9bG8RcAedEeYkQLZjVFKA tySequence__1U9bG8RcAedEeYkQLZjVFKA;
typedef struct tyObject_Table__G1v8c16HePOldLeucwe05Q tyObject_Table__G1v8c16HePOldLeucwe05Q;
typedef struct tySequence__fIB1rTQ55aFonoft9a9bmljQ tySequence__fIB1rTQ55aFonoft9a9bmljQ;
typedef struct tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA;
typedef struct tySequence__23SMqauuRsbDANhthj9bWlA tySequence__23SMqauuRsbDANhthj9bWlA;
typedef struct tyObject_Table__NttoEzoiq5CiphZe81oadg tyObject_Table__NttoEzoiq5CiphZe81oadg;
typedef struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA tySequence__squ9b9bUH4OLHf6cEMrt6hVA;
typedef struct tyObject_Table__nagDFX4QHx0s6Fvma9blmSg tyObject_Table__nagDFX4QHx0s6Fvma9blmSg;
typedef struct tySequence__pHNq3oXj9av2sEUdqaqeZjw tySequence__pHNq3oXj9av2sEUdqaqeZjw;
typedef struct tySequence__MAQKEADohlpnXTModtugbQ tySequence__MAQKEADohlpnXTModtugbQ;
typedef struct tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA;
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 tySequence__Zi9cGbCWofbtABoHJ5RbLNQ tySequence__Zi9cGbCWofbtABoHJ5RbLNQ;
typedef struct tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg;
typedef struct tySequence__4eRCaZmrYLLw2k30GPTiMw tySequence__4eRCaZmrYLLw2k30GPTiMw;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tyTuple__47w2DboNEPf69aPgubZdd7Q tyTuple__47w2DboNEPf69aPgubZdd7Q;
typedef struct tySequence__pK3qSsBZwdXd6qyUMkd5Jw tySequence__pK3qSsBZwdXd6qyUMkd5Jw;
typedef struct tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ;
typedef struct tyObject_ProfileDatacolonObjectType___rPBBfFL4X0b9cQ6rfMNPXig tyObject_ProfileDatacolonObjectType___rPBBfFL4X0b9cQ6rfMNPXig;
typedef struct tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g;
typedef struct tySequence__sh9b9afdJBB3bJbViXY7yNAg tySequence__sh9b9afdJBB3bJbViXY7yNAg;
typedef struct tyTuple__YXXBMUJBtW9corlxevWVfYQ tyTuple__YXXBMUJBtW9corlxevWVfYQ;
typedef struct tyTuple__EFqgCXJ4d8PgqOdFJmldsQ tyTuple__EFqgCXJ4d8PgqOdFJmldsQ;
typedef struct tySequence__mFtVDW3p7w6wfPPNodKzsA tySequence__mFtVDW3p7w6wfPPNodKzsA;
typedef struct tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw;
typedef struct tyObject_HashSet__YByQS2i9cOlUupxNMscAMwQ tyObject_HashSet__YByQS2i9cOlUupxNMscAMwQ;
typedef struct tySequence__Y6pVop4P8VSwSorRqc2aQA tySequence__Y6pVop4P8VSwSorRqc2aQA;
typedef struct tyTuple__TeyVVRby9bj1JQeNMm9aeI2w tyTuple__TeyVVRby9bj1JQeNMm9aeI2w;
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 tyObject_Table__8b8GbeV6waqgbRlb9aUvYNQ tyObject_Table__8b8GbeV6waqgbRlb9aUvYNQ;
typedef struct tySequence__JGK6WZYU2JHWLoPdKRO4AQ tySequence__JGK6WZYU2JHWLoPdKRO4AQ;
typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g tySequence__qwqHTkRvwhrRyENtudHQ7g;
typedef struct tyTuple__jCPpzNasrXtz9cFJFxT1NHQ tyTuple__jCPpzNasrXtz9cFJFxT1NHQ;
typedef struct tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ;
typedef struct tyTuple__kN8up2W6YKc5YA9avn5mV5w tyTuple__kN8up2W6YKc5YA9avn5mV5w;
typedef struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA;
typedef struct tyObject_Iface__uvkV248cZcsEQKaQm7C9aEA tyObject_Iface__uvkV248cZcsEQKaQm7C9aEA;
typedef struct tySequence__vv5mGmK03BCr5e3LTZA5Hw tySequence__vv5mGmK03BCr5e3LTZA5Hw;
typedef struct tyObject_LoadedModule__14iJKkvOiWT62KF2D8f9c5w tyObject_LoadedModule__14iJKkvOiWT62KF2D8f9c5w;
typedef struct tyObject_PackedModule__ZSxNoR2V6oK5xosmtvhjNQ tyObject_PackedModule__ZSxNoR2V6oK5xosmtvhjNQ;
typedef struct tySequence__PXIzfWocnrafGz5p3CP5LA tySequence__PXIzfWocnrafGz5p3CP5LA;
typedef struct tySequence__9bAGqSvkAaFL9bWjsEPslrFA tySequence__9bAGqSvkAaFL9bWjsEPslrFA;
typedef struct tyObject_PackedTree__8otSrA7MENGYESDkEP7nnw tyObject_PackedTree__8otSrA7MENGYESDkEP7nnw;
typedef struct tySequence__29bS0n2QNyO1R7e0qMMOvLA tySequence__29bS0n2QNyO1R7e0qMMOvLA;
typedef struct tySequence__b89aLriiJnVTD186H6zNIgg tySequence__b89aLriiJnVTD186H6zNIgg;
typedef struct tySequence__REuPuHuSlOkZ0Q5oqzDrQg tySequence__REuPuHuSlOkZ0Q5oqzDrQg;
typedef struct tySequence__I9aQmO9asXXWJ58UI9c8BCSzA tySequence__I9aQmO9asXXWJ58UI9c8BCSzA;
typedef struct tySequence__NyaOkf8ZwxP6rkRF5TOkew tySequence__NyaOkf8ZwxP6rkRF5TOkew;
typedef struct tySequence__L9bOt8CaTEmIjgtuZvp6syg tySequence__L9bOt8CaTEmIjgtuZvp6syg;
typedef struct tySequence__im8UB2GsZvUaQ4a1wKGWhQ tySequence__im8UB2GsZvUaQ4a1wKGWhQ;
typedef struct tySequence__xxnXDLpoqBo8zJzP9b1073g tySequence__xxnXDLpoqBo8zJzP9b1073g;
typedef struct tySequence__DfmUmNgVGnYaiV1I6227tw tySequence__DfmUmNgVGnYaiV1I6227tw;
typedef struct tySequence__t8Uv4lEJ4lkuECvP9c6JMhA tySequence__t8Uv4lEJ4lkuECvP9c6JMhA;
typedef struct tyObject_BiTable__SMd2CpsYscvX1veKoGcqmg tyObject_BiTable__SMd2CpsYscvX1veKoGcqmg;
typedef struct tyObject_BiTable__DyMEQOe8VsqcG49bIhU69bBQ tyObject_BiTable__DyMEQOe8VsqcG49bIhU69bBQ;
typedef struct tySequence__IHUFRsFxZNv7YydiUO2esQ tySequence__IHUFRsFxZNv7YydiUO2esQ;
typedef struct tyObject_Table__CE4eiu6FavV1vmUiTXQ70g tyObject_Table__CE4eiu6FavV1vmUiTXQ70g;
typedef struct tySequence__9bT7o0CflHuiE4VhmtqBPCw tySequence__9bT7o0CflHuiE4VhmtqBPCw;
typedef struct tyObject_PackedEncoder__B9cE9a0GbvqWW9aHf4N7RAaIw tyObject_PackedEncoder__B9cE9a0GbvqWW9aHf4N7RAaIw;
typedef struct tyObject_Table__TRm6MPqklA8EYBmBMY117Q tyObject_Table__TRm6MPqklA8EYBmBMY117Q;
typedef struct tySequence__9cnx3zXnWzeclW8Ko4oUgAQ tySequence__9cnx3zXnWzeclW8Ko4oUgAQ;
typedef struct tyTuple__l7R9cf53SDCcRmz9aWTyEKqQ tyTuple__l7R9cf53SDCcRmz9aWTyEKqQ;
typedef struct tySequence__O5RcspOP32YJ4YtU5ppxxA tySequence__O5RcspOP32YJ4YtU5ppxxA;
typedef struct tyObject_LazyType__Q19c34D32PKyTKlx6R6yODg tyObject_LazyType__Q19c34D32PKyTKlx6R6yODg;
typedef struct tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ;
typedef struct tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ;
typedef struct tyTuple__o67sDX0wYbEuhI9cJYAbDtg tyTuple__o67sDX0wYbEuhI9cJYAbDtg;
typedef struct tySequence__Or1y9bNpmj8PM8AcK9c9cg7RA tySequence__Or1y9bNpmj8PM8AcK9c9cg7RA;
typedef struct tyObject_LazyInstantiation__rlce0Sj8mBfLfm69c2yVTZg tyObject_LazyInstantiation__rlce0Sj8mBfLfm69c2yVTZg;
typedef struct tySequence__ipEvhpHAmm8ZCn9bZAOdNYA tySequence__ipEvhpHAmm8ZCn9bZAOdNYA;
typedef struct tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA;
typedef struct tyTuple__9aNnDWBFMF44sfFinBpMT4Q tyTuple__9aNnDWBFMF44sfFinBpMT4Q;
typedef struct tyTuple__dT8l9anHpNRgQSBAI9ctQ2wg tyTuple__dT8l9anHpNRgQSBAI9ctQ2wg;
typedef struct tySequence__159bHWBGAOOs6U7OZ9cQlO0g tySequence__159bHWBGAOOs6U7OZ9cQlO0g;
typedef struct tyTuple__VrD6plbUKJjYKM0lCr3hGQ tyTuple__VrD6plbUKJjYKM0lCr3hGQ;
typedef struct tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA;
typedef struct tyTuple__1ZbjBgxAbnye0IFMZ6w4OA tyTuple__1ZbjBgxAbnye0IFMZ6w4OA;
typedef struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw tyTuple__xYhUhS7X82rKTqbT9bRfCnw;
typedef struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q;
typedef struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ tyTuple__xDU9bZmv1ZbZkJDaATBekIQ;
typedef struct tyTuple__OvnOYJpJ1WQyVNnkDTodqw tyTuple__OvnOYJpJ1WQyVNnkDTodqw;
typedef struct tySequence__4fyguUt3ZraOklN6h0Tjkw tySequence__4fyguUt3ZraOklN6h0Tjkw;
typedef struct tyObject_SymInfoPair__mXtIz9c3umFizQ9bw79aldIEw tyObject_SymInfoPair__mXtIz9c3umFizQ9bw79aldIEw;
typedef struct tyTuple__tz45FTGkfpDYgeKnoipqHQ tyTuple__tz45FTGkfpDYgeKnoipqHQ;
typedef struct tySequence__i7xpiUsxyv6cQ1xK3JbcGQ tySequence__i7xpiUsxyv6cQ1xK3JbcGQ;
typedef struct tyTuple__a9bBCAQ2tegdUQVlHYxdJ2A tyTuple__a9bBCAQ2tegdUQVlHYxdJ2A;
typedef struct tyTuple__3i6hlQmqrn6m7tuVN8FHjQ tyTuple__3i6hlQmqrn6m7tuVN8FHjQ;
typedef struct tyTuple__OJFzEczluV8Jmo9bRpBfkzw tyTuple__OJFzEczluV8Jmo9bRpBfkzw;
typedef struct tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw;
typedef struct tyTuple__F3gkSrMB1qp2Tvf9bixVXwg tyTuple__F3gkSrMB1qp2Tvf9bixVXwg;
typedef struct tyTuple__wcNatyuf8WOqAhGLhSvgiw tyTuple__wcNatyuf8WOqAhGLhSvgiw;
typedef struct tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg;
typedef struct tyObject_NodecolonObjectType___dNELmBSmY7nthjhZupWO6g tyObject_NodecolonObjectType___dNELmBSmY7nthjhZupWO6g;
typedef struct tyTuple__4o9cW9aUwdGqgZI9bSHHYnbaQ tyTuple__4o9cW9aUwdGqgZI9bSHHYnbaQ;
typedef struct tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w;
typedef struct tyTuple__z822nu9bFF1AlQnLrHjdwpA tyTuple__z822nu9bFF1AlQnLrHjdwpA;
typedef struct tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw;
typedef struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw tyTuple__QeWl6B6ffS4pU6WWrtcrDw;
typedef struct tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg;
typedef struct tyTuple__0q9cmhneJEKnQERTpXXdz6Q tyTuple__0q9cmhneJEKnQERTpXXdz6Q;
typedef struct tyObject_PackedNode__7lDGAZiNp4zbO65GEpoKow tyObject_PackedNode__7lDGAZiNp4zbO65GEpoKow;
typedef struct tyObject_PackedLineInfo__Q9bbXLBurHo2r5TyF6UBshg tyObject_PackedLineInfo__Q9bbXLBurHo2r5TyF6UBshg;
typedef struct tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ;
typedef struct tyTuple__Q7r9caOmeWqQGZCIBHhGRUA tyTuple__Q7r9caOmeWqQGZCIBHhGRUA;
typedef struct tyTuple__7Wlwbz8zSe7Udyf7mmsd9cg tyTuple__7Wlwbz8zSe7Udyf7mmsd9cg;
typedef struct tyTuple__XyJ8LOAZzVVXSsmt09b8uWw tyTuple__XyJ8LOAZzVVXSsmt09b8uWw;
typedef struct tyObject_PackedInstantiation__39cWRURu69agjI9c1ohiUmxiA tyObject_PackedInstantiation__39cWRURu69agjI9c1ohiUmxiA;
typedef struct tySequence__vC9cvg0R8tfBaOXXi3sfMzw tySequence__vC9cvg0R8tfBaOXXi3sfMzw;
typedef struct tyTuple__9aoobCDZB4x41HJSOmh0mwA tyTuple__9aoobCDZB4x41HJSOmh0mwA;
typedef struct tyTuple__g0Q6Qx15nK53ce9aLo7YyrA tyTuple__g0Q6Qx15nK53ce9aLo7YyrA;
typedef struct tyObject_PackedSym__XjVn21MwvH8ij6CfopYZWw tyObject_PackedSym__XjVn21MwvH8ij6CfopYZWw;
typedef struct tyObject_PackedLib__oa01YzfeXO9bbIDH9cIki4Hw tyObject_PackedLib__oa01YzfeXO9bbIDH9cIki4Hw;
typedef struct tyObject_PackedType__IhXsK7mrwumUBtEqbZ2BqA tyObject_PackedType__IhXsK7mrwumUBtEqbZ2BqA;
typedef struct tyTuple__8x6vq4Dc9aLvKX9actMeR9avQ tyTuple__8x6vq4Dc9aLvKX9actMeR9avQ;
typedef struct tyTuple__UvldbCB6B9ayi9bGYW7vJNLA tyTuple__UvldbCB6B9ayi9bGYW7vJNLA;
typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
NI align;
tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
struct RootObj {
TNimType* m_type;
};
struct tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g {
NI32 module;
NI32 item;
};
struct tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w {
  RootObj Sup;
tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g itemId;
};
typedef NU8 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw;
typedef NU16 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg;
struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q {
NU16 line;
NI16 col;
NI32 fileIndex;
};
typedef NU64 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw;
typedef NU32 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg;
typedef NU8 tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg;
typedef NU8 tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw;
typedef NU16 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA;
struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA {
tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg k;
tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw storage;
tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA flags;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* lode;
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r;
};
struct tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ {
  tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w Sup;
tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind;
union{
struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* gcUnsafetyReason;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* transformedBody;
} _kind_1;
struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* guard;
NI bitsize;
NI alignment;
} _kind_2;
};
tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic;
tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* name;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw flags;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ast;
tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
NI position;
NI offset;
tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA* annex;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* constraint;
};
typedef NU8 tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw;
typedef NU8 tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag;
typedef NU8 tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA;
typedef NU64 tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
struct tyObject_TType__facALICuu8zUj0hjvbTLFg {
  tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w Sup;
tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind;
tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA callConv;
tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw flags;
tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* sons;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
NI64 size;
NI16 align;
NI16 paddingAtEnd;
NI16 lockLevel;
tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
tyObject_TType__facALICuu8zUj0hjvbTLFg* typeInst;
tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g uniqueId;
};
typedef NU8 tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
typedef NU32 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg;
typedef NU8 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw;
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw {
tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg flags;
tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind;
union{
struct {NI64 intVal;
} _kind_1;
struct {NF floatVal;
} _kind_2;
struct {NimStringDesc* strVal;
} _kind_3;
struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
} _kind_4;
struct {tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* ident;
} _kind_5;
struct {tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* sons;
} _kind_6;
};
};
typedef NI tyArray__emiAJ8okywrJw7ZHLzlXbQ[34];
struct tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA {
NI elems;
NI counter;
NI max;
tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* head;
tySequence__Bre9bNyuQOg1EJKitjSzn8w* data;
tyArray__emiAJ8okywrJw7ZHLzlXbQ a;
};
struct tyObject_Con__mVYRtnERc9advo79cBQUudxg {
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ* g;
tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph;
NI inLoop;
NI inSpawn;
NI inLoopCond;
tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA uninit;
NIM_BOOL uninitComputed;
tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen;
};
typedef NU8 tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ;
struct tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg {
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ kind;
union{
NI dest;
};
};
struct tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw {
tySequence__ChDZ6dokJ9aj9cg3KBoCU5vg* data;
NI counter;
};
struct tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg {
tySequence__mWRMiYLthG9coLjkbElCxkw* data;
NI counter;
};
struct tyObject_Table__iowAVDkco3qpbEH0z8OmkQ {
tySequence__bTDCDwD2P7TodzbAefLcSw* data;
NI counter;
};
typedef tyObject_Table__iowAVDkco3qpbEH0z8OmkQ tyArray__pxY9cgs6r9cBvGwlO8XZ9ccbQ[5];
struct tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w {
tySequence__3MPVXAHA08SszBrU4ffqEg* data;
NI counter;
};
struct tyObject_Table__KcymdZjUsmGSK8BxmvoJgw {
tySequence__YCf5zJHm4JI06qpmKwPUWg* data;
NI counter;
};
struct tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA {
tySequence__7lEisrXlQEzwtUKW5pzRCw* data;
NI counter;
};
typedef NU8 tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g;
typedef NU8 tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw;
typedef NU8 tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA;
typedef NU64 tySet_tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw;
struct tyObject_PackedConfig__McwvRupqDAJbGrinIDFZJQ {
tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g backend;
tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw selectedGC;
tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA cCompiler;
tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
tySet_tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw globalOptions;
};
struct tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA {
NI counter;
tySequence__eHqUwlHGGaPw0TDPDeL79cQ* data;
};
struct tyObject_Table__fdKWDDO1P17zvuQPReVgRA {
tySequence__fdmz6VkIf1ewwrssKYqRFg* data;
NI counter;
};
struct tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ {
tySequence__kxu4GK0onha2t9bo86mdVAg* data;
NI counter;
};
typedef struct {
N_NIMCALL_PTR(NIM_BOOL, ClP_0) (void* ClE_0);
void* ClE_0;
} tyProc__In3g79a0qTcRmbTbJp9ba9ctg;
struct tyObject_Table__eJdcv3ds6oTpWvWwTDiw9bg {
tySequence__FdVaeFbf9a05PXbYlgHL9ahw* data;
NI counter;
};
struct tyObject_Table__Jh7Ii8xuFcs9bwfmKa4J4dw {
tySequence__1XdfDDoNvZorxGg2DV0QnA* data;
NI counter;
};
typedef tyObject_TType__facALICuu8zUj0hjvbTLFg* tyArray__9bjuenwQUcqO3lbmS2wX7uA[65];
struct tyObject_Table__Ue6w4c82v7gc7t2qntTbAw {
tySequence__1U9bG8RcAedEeYkQLZjVFKA* data;
NI counter;
};
struct tyObject_Table__G1v8c16HePOldLeucwe05Q {
tySequence__fIB1rTQ55aFonoft9a9bmljQ* data;
NI counter;
};
typedef N_NIMCALL_PTR(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, tyProc__VHDwJFdIqpwtpUGuxiXUwg) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* m, NI32 fileIdx);
typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__mjUN9alLJ31lnSKkUsuyWMw) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* m, NI32 fileIdx);
struct tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA {
tySequence__23SMqauuRsbDANhthj9bWlA* data;
NI counter;
};
struct tyObject_Table__NttoEzoiq5CiphZe81oadg {
tySequence__squ9b9bUH4OLHf6cEMrt6hVA* data;
NI counter;
};
struct tyObject_Table__nagDFX4QHx0s6Fvma9blmSg {
tySequence__pHNq3oXj9av2sEUdqaqeZjw* data;
NI counter;
};
typedef N_NIMCALL_PTR(void, tyProc__TjycsqkDBjsxd4da6KYTng) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
typedef N_NIMCALL_PTR(void, tyProc__Mrj9cEgtPER9bAXMDB9cTXrfQ) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body);
typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__J7Jq15ZScfKLqcLx8sEz9cA) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TType__facALICuu8zUj0hjvbTLFg* formal, tyObject_TType__facALICuu8zUj0hjvbTLFg* actual);
struct tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA {
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opNot;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opContains;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opLe;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opLt;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opAnd;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opOr;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opIsNil;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opEq;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opAdd;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opSub;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opMul;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opDiv;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opLen;
};
struct tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ {
tySequence__4mZLwkxT8rbt9bf3wXrXYNQ* ifaces;
tySequence__rQHmYk1HzcwNxKBymIFHpA* packed_0;
tySequence__XMM60DtBsc6xYsIpNANkrA* encoders;
tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw typeInstCache;
tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg procInstCache;
tyArray__pxY9cgs6r9cBvGwlO8XZ9ccbQ attachedOps;
tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w methodsPerType;
tyObject_Table__KcymdZjUsmGSK8BxmvoJgw enumToStringProcs;
tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA emittedTypeInfo;
tyObject_PackedConfig__McwvRupqDAJbGrinIDFZJQ startupPackedConfig;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA packageSyms;
tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA deps;
tyObject_Table__fdKWDDO1P17zvuQPReVgRA importDeps;
NIM_BOOL suggestMode;
NIM_BOOL invalidTransitiveClosure;
tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ inclToMod;
tySequence__48JTohSgTy339bRxHzUD8KA* importStack;
RootObj* backend;
tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config;
tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache;
RootObj* vm;
tyProc__In3g79a0qTcRmbTbJp9ba9ctg doStopCompile;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* usageSym;
tySequence__eHqUwlHGGaPw0TDPDeL79cQ* owners;
tyObject_Table__eJdcv3ds6oTpWvWwTDiw9bg suggestSymbols;
tyObject_Table__Jh7Ii8xuFcs9bwfmKa4J4dw suggestErrors;
tySequence__s9byh6WFJ16lPMcmqdaMTHA* methods;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* systemModule;
tyArray__9bjuenwQUcqO3lbmS2wX7uA sysTypes;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA compilerprocs;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA exposed;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA packageTypes;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* emptyNode;
tyObject_Table__Ue6w4c82v7gc7t2qntTbAw canonTypes;
tyObject_Table__G1v8c16HePOldLeucwe05Q symBodyHashes;
tyProc__VHDwJFdIqpwtpUGuxiXUwg importModuleCallback;
tyProc__mjUN9alLJ31lnSKkUsuyWMw includeFileCallback;
tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA cacheSeqs;
tyObject_Table__NttoEzoiq5CiphZe81oadg cacheCounters;
tyObject_Table__nagDFX4QHx0s6Fvma9blmSg cacheTables;
tySequence__MAQKEADohlpnXTModtugbQ* passes;
tyProc__TjycsqkDBjsxd4da6KYTng onDefinition;
tyProc__TjycsqkDBjsxd4da6KYTng onDefinitionResolveForward;
tyProc__TjycsqkDBjsxd4da6KYTng onUsage;
tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* globalDestructors;
tyProc__Mrj9cEgtPER9bAXMDB9cTXrfQ strongSemCheck;
tyProc__J7Jq15ZScfKLqcLx8sEz9cA compatibleProps;
tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen;
tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA operators;
};
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 NU8 tySet_tyEnum_TErrorOutput__fBf8Teueoz9aAkO5cXaxrpA;
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_FilenameOption__eL86bAtPxXWHj24F5gOMFQ;
typedef NU8 tyEnum_Command__0zjcIQ623TIRGPdtjLwTFA;
typedef NU8 tyEnum_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ;
typedef NU8 tyEnum_SymbolFilesOption__gBES9bqm1ru9ape8SeMRAFgQ;
struct tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg {
tySequence__4eRCaZmrYLLw2k30GPTiMw* data;
NI counter;
};
typedef NU32 tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ;
typedef NU8 tySet_tyEnum_LegacyFeature__hGCD9aOrxPvpXn4Ne6W6OVA;
typedef NU8 tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ;
typedef NU8 tySet_tyEnum_TMsgKind__dvD9bXFttaNQUSHuEjJbYbA[11];
struct tyTuple__47w2DboNEPf69aPgubZdd7Q {
NI Field0;
NI Field1;
NI Field2;
};
typedef NU8 tySet_tyEnum_StdOrrKind__6cbmyTzDPaZU9afMe4mz3Ug;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* result, void* ClE_0);
void* ClE_0;
} tyProc__YD0MR9bJ2x4beJkZdnjXN9cA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (NimStringDesc* output, void* ClE_0);
void* ClE_0;
} tyProc__k2HFjxisIgDALbEUFojxaQ;
typedef NU8 tyEnum_Severity__x5BWBPGAbIH9clm5pmNp5DA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* msg, tyEnum_Severity__x5BWBPGAbIH9clm5pmNp5DA severity, void* ClE_0);
void* ClE_0;
} tyProc__oL9coyIA2VDTGdUcur9aL9bew;
struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw {
tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g backend;
tyObject_Target__9abOl5DLX8suLujOaHSvGzw target;
NI linesCompiled;
tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
tySet_tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw globalOptions;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* macrosToExpand;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* arcToExpand;
tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A m;
tyEnum_FilenameOption__eL86bAtPxXWHj24F5gOMFQ filenameOption;
NimStringDesc* unitSep;
NI evalTemplateCounter;
NI evalMacroCounter;
NI8 exitcode;
tyEnum_Command__0zjcIQ623TIRGPdtjLwTFA cmd;
NimStringDesc* cmdInput;
NIM_BOOL projectIsCmd;
NIM_BOOL implicitCmd;
tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw selectedGC;
tyEnum_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ exc;
NIM_BOOL hintProcessingDots;
NI verbosity;
NI numberOfProcessors;
NF lastCmdTime;
tyEnum_SymbolFilesOption__gBES9bqm1ru9ape8SeMRAFgQ symbolFiles;
NI spellSuggestMax;
tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg cppDefines;
NimStringDesc* headerFile;
tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ features;
tySet_tyEnum_LegacyFeature__hGCD9aOrxPvpXn4Ne6W6OVA legacyFeatures;
NimStringDesc* arguments;
tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ ideCmd;
NIM_BOOL oldNewlines;
tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA cCompiler;
tySet_tyEnum_TMsgKind__dvD9bXFttaNQUSHuEjJbYbA modifiedyNotes;
tySet_tyEnum_TMsgKind__dvD9bXFttaNQUSHuEjJbYbA cmdlineNotes;
tySet_tyEnum_TMsgKind__dvD9bXFttaNQUSHuEjJbYbA foreignPackageNotes;
tySet_tyEnum_TMsgKind__dvD9bXFttaNQUSHuEjJbYbA notes;
tySet_tyEnum_TMsgKind__dvD9bXFttaNQUSHuEjJbYbA warningAsErrors;
tySet_tyEnum_TMsgKind__dvD9bXFttaNQUSHuEjJbYbA mainPackageNotes;
NI mainPackageId;
NI errorCounter;
NI hintCounter;
NI warnCounter;
NI errorMax;
NI maxLoopIterationsVM;
NIM_BOOL isVmTrace;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* configVars;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* symbols;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* packageCache;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* nimblePaths;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* searchPaths;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* lazyPaths;
NimStringDesc* outFile;
NimStringDesc* outDir;
NimStringDesc* jsonBuildFile;
NimStringDesc* prefixDir;
NimStringDesc* libpath;
NimStringDesc* nimcacheDir;
tyTuple__47w2DboNEPf69aPgubZdd7Q nimStdlibVersion;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* dllOverrides;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* moduleOverrides;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* cfileSpecificOptions;
NimStringDesc* projectName;
NimStringDesc* projectPath;
NimStringDesc* projectFull;
NIM_BOOL projectIsStdin;
tySet_tyEnum_StdOrrKind__6cbmyTzDPaZU9afMe4mz3Ug lastMsgWasDot;
NI32 projectMainIdx;
NI32 projectMainIdx2;
NimStringDesc* command;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* commandArgs;
NimStringDesc* commandLine;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* extraCmds;
NIM_BOOL keepComments;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* implicitImports;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* implicitIncludes;
NimStringDesc* docSeeSrcUrl;
NimStringDesc* docRoot;
NimStringDesc* docCmd;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* configFiles;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cIncludes;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cLibs;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cLinkedLibs;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* externalToLink;
NimStringDesc* linkOptionsCmd;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* compileOptionsCmd;
NimStringDesc* linkOptions;
NimStringDesc* compileOptions;
NimStringDesc* cCompilerPath;
tySequence__pK3qSsBZwdXd6qyUMkd5Jw* toCompile;
tyProc__YD0MR9bJ2x4beJkZdnjXN9cA suggestionResultHook;
NI suggestVersion;
NI suggestMaxResults;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q lastLineInfo;
tyProc__k2HFjxisIgDALbEUFojxaQ writelnHook;
tyProc__oL9coyIA2VDTGdUcur9aL9bew structuredErrorHook;
NimStringDesc* cppCustomNamespace;
NimStringDesc* nimMainPrefix;
tyObject_ProfileDatacolonObjectType___rPBBfFL4X0b9cQ6rfMNPXig* vmProfileData;
};
typedef NU8 tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg;
struct tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g {
tySequence__sh9b9afdJBB3bJbViXY7yNAg* data;
NI counter;
};
struct tyTuple__EFqgCXJ4d8PgqOdFJmldsQ {
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* Field0;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* Field1;
};
typedef NU8 tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg;
struct tyTuple__YXXBMUJBtW9corlxevWVfYQ {
NI Field0;
tyTuple__EFqgCXJ4d8PgqOdFJmldsQ Field1;
tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg Field2;
};
typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct tyObject_HashSet__YByQS2i9cOlUupxNMscAMwQ {
tySequence__Y6pVop4P8VSwSorRqc2aQA* data;
NI counter;
};
struct tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw {
tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA lastReads;
tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA potentialLastReads;
tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA notLastReads;
tyObject_HashSet__YByQS2i9cOlUupxNMscAMwQ alreadySeen;
};
struct tyTuple__TeyVVRby9bj1JQeNMm9aeI2w {
NI Field0;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* Field1;
};
struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
NI refcount;
TNimType* typ;
};
struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
void* bottom;
};
struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
NI len;
NI cap;
tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
};
typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256];
typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
};
typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
tyArray__0aOLqZchNi8nWtMTi8ND8w link;
NI key;
NI upperBound;
NI level;
};
struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
NI Field1;
};
typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
NI len;
tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
};
struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
NI minLargeObj;
NI maxLargeObj;
tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks;
NU32 flBitmap;
tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
NI currMem;
NI maxMem;
NI freeMem;
NI occ;
NI lastSize;
tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
NIM_BOOL locked;
NIM_BOOL blockChunkSizeIncrease;
NI nextChunkSize;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
};
struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
NI stackScans;
NI cycleCollections;
NI maxThreshold;
NI maxStackSize;
NI maxStackCells;
NI cycleTableSize;
NI64 maxPause;
};
struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
NI counter;
NI max;
tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
};
struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
NI cycleThreshold;
NI zctThreshold;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
NI recGcLock;
tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
NI gcThreadId;
};
typedef NU tyArray__cC4ce9cdvDKtIpar5g9cDejA[16];
struct tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA {
tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* next;
NI key;
tyArray__cC4ce9cdvDKtIpar5g9cDejA bits;
};
typedef NU8 tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg;
struct tyObject_Table__8b8GbeV6waqgbRlb9aUvYNQ {
tySequence__JGK6WZYU2JHWLoPdKRO4AQ* data;
NI counter;
};
struct tyTuple__jCPpzNasrXtz9cFJFxT1NHQ {
NI Field0;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* Field1;
tySequence__qwqHTkRvwhrRyENtudHQ7g* Field2;
};
struct tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ {
tySequence__eHqUwlHGGaPw0TDPDeL79cQ* vars;
tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* wasMoved;
tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* final;
NIM_BOOL needsTry;
tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* parent;
};
typedef NU8 tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw;
typedef NU8 tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw[21];
typedef tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tyArray__T6RKPw8xfAeNaoei9aZGzXg[3];
struct tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q {
NI32 module;
NI32 symId;
NI32 typeId_0;
NIM_BOOL sealed;
};
typedef NU8 tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag[9];
typedef NU8 tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg;
typedef NU8 tyArray__qtqsWM5aXmcpMIVmvq3kAA[16];
typedef NU8 tySet_tyEnum_ConsiderFlag__9a9az8WnKmq9bvt8EXoSUES7g;
typedef NU8 tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w;
typedef NU8 tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw;
struct tyTuple__kN8up2W6YKc5YA9avn5mV5w {
NimStringDesc* Field0;
NI Field1;
NI Field2;
};
typedef NimStringDesc* tyArray__JXkBzVsE9bvmcpuZvrueLVg[5];
typedef NU8 tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw;
typedef NU16 tySet_tyEnum_TRenderFlag__wrPgUo1ExBlHvFnXN2nSHw;
struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA {
NI a;
NI b;
};
struct tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA {
NI id;
NimStringDesc* s;
tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* next;
NI h;
};
typedef tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tyArray__AB6yfoUgfWM2NtGe9bzkCmw[2];
typedef NU8 tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw;
typedef tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tyArray__jlWPjgtbdjE069arIWHC9c9bg[1];
typedef NimStringDesc* tyArray__Re75IspeoxXy2oCZHwcRrA[2];
typedef NimStringDesc* tyArray__nHXaesL0DJZHyVS07ARPRA[1];
typedef tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tyArray__cypz0nHJsd9cnKgpO7fP5hQ[1];
struct tyObject_Iface__uvkV248cZcsEQKaQm7C9aEA {
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* module;
tySequence__vv5mGmK03BCr5e3LTZA5Hw* converters;
tySequence__vv5mGmK03BCr5e3LTZA5Hw* patterns;
tySequence__vv5mGmK03BCr5e3LTZA5Hw* pureEnums;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA interf;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA interfHidden;
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* uniqueName;
};
typedef NU8 tyEnum_ModuleStatus__MgSLMPwZ4GVYYz7Kn9bmm6Q;
struct tyObject_PackedTree__8otSrA7MENGYESDkEP7nnw {
tySequence__29bS0n2QNyO1R7e0qMMOvLA* nodes;
};
typedef NU8 tySet_tyEnum_ModuleBackendFlag__fgnyOEZ7Q9aYVj8O59afcT4g;
struct tyObject_BiTable__SMd2CpsYscvX1veKoGcqmg {
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* vals;
tySequence__9bAGqSvkAaFL9bWjsEPslrFA* keys;
};
struct tyObject_BiTable__DyMEQOe8VsqcG49bIhU69bBQ {
tySequence__IHUFRsFxZNv7YydiUO2esQ* vals;
tySequence__9bAGqSvkAaFL9bWjsEPslrFA* keys;
};
struct tyObject_PackedModule__ZSxNoR2V6oK5xosmtvhjNQ {
NimStringDesc* definedSymbols;
tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw moduleFlags;
tySequence__PXIzfWocnrafGz5p3CP5LA* includes;
tySequence__9bAGqSvkAaFL9bWjsEPslrFA* imports;
tyObject_PackedTree__8otSrA7MENGYESDkEP7nnw toReplay;
tyObject_PackedTree__8otSrA7MENGYESDkEP7nnw topLevel;
tyObject_PackedTree__8otSrA7MENGYESDkEP7nnw bodies;
tySequence__b89aLriiJnVTD186H6zNIgg* exports;
tySequence__b89aLriiJnVTD186H6zNIgg* hidden;
tySequence__REuPuHuSlOkZ0Q5oqzDrQg* reexports;
tySequence__b89aLriiJnVTD186H6zNIgg* compilerProcs;
tySequence__48JTohSgTy339bRxHzUD8KA* converters;
tySequence__48JTohSgTy339bRxHzUD8KA* methods;
tySequence__48JTohSgTy339bRxHzUD8KA* trmacros;
tySequence__48JTohSgTy339bRxHzUD8KA* pureEnums;
tySequence__I9aQmO9asXXWJ58UI9c8BCSzA* macroUsages;
tySequence__NyaOkf8ZwxP6rkRF5TOkew* typeInstCache;
tySequence__L9bOt8CaTEmIjgtuZvp6syg* procInstCache;
tySequence__im8UB2GsZvUaQ4a1wKGWhQ* attachedOps;
tySequence__xxnXDLpoqBo8zJzP9b1073g* methodsPerType;
tySequence__NyaOkf8ZwxP6rkRF5TOkew* enumToStringProcs;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* emittedTypeInfo;
tySet_tyEnum_ModuleBackendFlag__fgnyOEZ7Q9aYVj8O59afcT4g backendFlags;
tySequence__DfmUmNgVGnYaiV1I6227tw* syms;
tySequence__t8Uv4lEJ4lkuECvP9c6JMhA* types;
tyObject_BiTable__SMd2CpsYscvX1veKoGcqmg strings;
tyObject_BiTable__DyMEQOe8VsqcG49bIhU69bBQ numbers;
tyObject_PackedConfig__McwvRupqDAJbGrinIDFZJQ cfg;
};
struct tyObject_Table__CE4eiu6FavV1vmUiTXQ70g {
tySequence__9bT7o0CflHuiE4VhmtqBPCw* data;
NI counter;
};
struct tyObject_LoadedModule__14iJKkvOiWT62KF2D8f9c5w {
tyEnum_ModuleStatus__MgSLMPwZ4GVYYz7Kn9bmm6Q status;
NIM_BOOL symsInit;
NIM_BOOL typesInit;
NIM_BOOL loadedButAliveSetChanged;
tyObject_PackedModule__ZSxNoR2V6oK5xosmtvhjNQ fromDisk;
tySequence__eHqUwlHGGaPw0TDPDeL79cQ* syms;
tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* types;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* module;
tyObject_Table__CE4eiu6FavV1vmUiTXQ70g iface;
tyObject_Table__CE4eiu6FavV1vmUiTXQ70g ifaceHidden;
};
struct tyObject_Table__TRm6MPqklA8EYBmBMY117Q {
tySequence__9cnx3zXnWzeclW8Ko4oUgAQ* data;
NI counter;
};
struct tyObject_PackedEncoder__B9cE9a0GbvqWW9aHf4N7RAaIw {
NI32 thisModule;
NI32 lastFile;
NU32 lastLit;
tyObject_Table__TRm6MPqklA8EYBmBMY117Q filenames;
tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* pendingTypes;
tySequence__eHqUwlHGGaPw0TDPDeL79cQ* pendingSyms;
tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA typeMarker;
tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA symMarker;
tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config;
};
struct tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ {
NU32 module;
NI32 item;
};
struct tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ {
NI module;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ packed_0;
};
struct tyObject_LazyType__Q19c34D32PKyTKlx6R6yODg {
tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ id;
tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
};
struct tyTuple__l7R9cf53SDCcRmz9aWTyEKqQ {
NI Field0;
tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
tySequence__O5RcspOP32YJ4YtU5ppxxA* Field2;
};
struct tyObject_LazyInstantiation__rlce0Sj8mBfLfm69c2yVTZg {
NI module;
tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ sym;
tySequence__ipEvhpHAmm8ZCn9bZAOdNYA* concreteTypes;
tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA* inst;
};
struct tyTuple__o67sDX0wYbEuhI9cJYAbDtg {
NI Field0;
tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
tySequence__Or1y9bNpmj8PM8AcK9c9cg7RA* Field2;
};
struct tyTuple__9aNnDWBFMF44sfFinBpMT4Q {
NI Field0;
tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* Field2;
};
struct tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA {
tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ id;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
};
struct tyTuple__VrD6plbUKJjYKM0lCr3hGQ {
NI Field0;
tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA Field1;
};
struct tyTuple__dT8l9anHpNRgQSBAI9ctQ2wg {
NI Field0;
tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
tySequence__159bHWBGAOOs6U7OZ9cQlO0g* Field2;
};
struct tyTuple__1ZbjBgxAbnye0IFMZ6w4OA {
NI Field0;
tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA Field2;
};
struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw {
NI Field0;
NimStringDesc* Field1;
NI32 Field2;
};
struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q {
NI Field0;
NI32 Field1;
tySequence__48JTohSgTy339bRxHzUD8KA* Field2;
};
struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ {
NI Field0;
NI32 Field1;
NI32 Field2;
};
struct tyObject_SymInfoPair__mXtIz9c3umFizQ9bw79aldIEw {
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
};
struct tyTuple__OvnOYJpJ1WQyVNnkDTodqw {
NI Field0;
NI32 Field1;
tySequence__4fyguUt3ZraOklN6h0Tjkw* Field2;
};
struct tyTuple__tz45FTGkfpDYgeKnoipqHQ {
NI Field0;
NI32 Field1;
tySequence__i7xpiUsxyv6cQ1xK3JbcGQ* Field2;
};
struct tyTuple__a9bBCAQ2tegdUQVlHYxdJ2A {
tySequence__eHqUwlHGGaPw0TDPDeL79cQ* Field0;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* Field1;
};
struct tyTuple__3i6hlQmqrn6m7tuVN8FHjQ {
NI Field0;
tyArray__qtqsWM5aXmcpMIVmvq3kAA Field1;
tyObject_TType__facALICuu8zUj0hjvbTLFg* Field2;
};
struct tyTuple__OJFzEczluV8Jmo9bRpBfkzw {
NI Field0;
NI Field1;
tyArray__qtqsWM5aXmcpMIVmvq3kAA Field2;
};
struct tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw {
NI Field0;
NimStringDesc* Field1;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* Field2;
};
struct tyTuple__F3gkSrMB1qp2Tvf9bixVXwg {
NI Field0;
NimStringDesc* Field1;
NI64 Field2;
};
struct tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg {
tyObject_NodecolonObjectType___dNELmBSmY7nthjhZupWO6g* root;
NI entries;
};
struct tyTuple__wcNatyuf8WOqAhGLhSvgiw {
NI Field0;
NimStringDesc* Field1;
tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg Field2;
};
typedef N_NIMCALL_PTR(tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w*, tyProc__jkSFMhvPZ1AdGcvT2dK9a2w) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* module, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen);
typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__A7Sdoem70tRxSEmKrf9cmyg) (tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* topLevelStmt);
typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__EAEKmBUgKFg29agoUGtzDEQ) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
struct tyTuple__4o9cW9aUwdGqgZI9bSHHYnbaQ {
tyProc__jkSFMhvPZ1AdGcvT2dK9a2w Field0;
tyProc__A7Sdoem70tRxSEmKrf9cmyg Field1;
tyProc__EAEKmBUgKFg29agoUGtzDEQ Field2;
NIM_BOOL Field3;
};
struct tyTuple__z822nu9bFF1AlQnLrHjdwpA {
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q Field0;
NimStringDesc* Field1;
};
struct tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw {
NimStringDesc* fullPath;
NimStringDesc* projPath;
NimStringDesc* shortName;
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* quotedName;
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* quotedFullName;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* lines;
NimStringDesc* dirtyFile;
NimStringDesc* hash;
NIM_BOOL dirty;
};
struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw {
NI Field0;
NimStringDesc* Field1;
};
typedef NU8 tySet_tyEnum_CfileFlag__Vl9c9ayddDuXiWtnWTsEYGsA;
struct tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg {
NimStringDesc* nimname;
NimStringDesc* cname;
NimStringDesc* obj;
tySet_tyEnum_CfileFlag__Vl9c9ayddDuXiWtnWTsEYGsA flags;
NimStringDesc* customArgs;
};
struct tyTuple__0q9cmhneJEKnQERTpXXdz6Q {
NU32 Field0;
NimStringDesc* Field1;
};
struct tyObject_PackedLineInfo__Q9bbXLBurHo2r5TyF6UBshg {
NU16 line;
NI16 col;
NU32 file;
};
struct tyObject_PackedNode__7lDGAZiNp4zbO65GEpoKow {
tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind;
tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg flags;
NI32 operand;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ typeId_0;
tyObject_PackedLineInfo__Q9bbXLBurHo2r5TyF6UBshg info;
};
struct tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ {
NU32 Field0;
NI32 Field1;
};
struct tyTuple__Q7r9caOmeWqQGZCIBHhGRUA {
NU32 Field0;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field1;
};
struct tyTuple__7Wlwbz8zSe7Udyf7mmsd9cg {
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field0;
tyObject_PackedLineInfo__Q9bbXLBurHo2r5TyF6UBshg Field1;
};
struct tyTuple__XyJ8LOAZzVVXSsmt09b8uWw {
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field0;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field1;
};
struct tyObject_PackedInstantiation__39cWRURu69agjI9c1ohiUmxiA {
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ key;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ sym;
tySequence__vC9cvg0R8tfBaOXXi3sfMzw* concreteTypes;
};
struct tyTuple__9aoobCDZB4x41HJSOmh0mwA {
tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg Field0;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field1;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field2;
};
struct tyTuple__g0Q6Qx15nK53ce9aLo7YyrA {
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field0;
NI Field1;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field2;
};
typedef NU8 tyEnum_TLibKind__9b8v60kso59bBaw9cp8B9a9apKQ;
struct tyObject_PackedLib__oa01YzfeXO9bbIDH9cIki4Hw {
tyEnum_TLibKind__9b8v60kso59bBaw9cp8B9a9apKQ kind;
NIM_BOOL generated;
NIM_BOOL isOverriden;
NU32 name;
NI32 path;
};
struct tyObject_PackedSym__XjVn21MwvH8ij6CfopYZWw {
tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind;
NU32 name;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ typ;
tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw flags;
tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic;
tyObject_PackedLineInfo__Q9bbXLBurHo2r5TyF6UBshg info;
NI32 ast;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ owner;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ guard;
NI bitsize;
NI alignment;
tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
NI position;
NI offset;
NU32 externalName;
tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA locFlags;
tyObject_PackedLib__oa01YzfeXO9bbIDH9cIki4Hw annex;
NI32 constraint;
};
struct tyObject_PackedType__IhXsK7mrwumUBtEqbZ2BqA {
tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind;
tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA callConv;
tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw flags;
tySequence__vC9cvg0R8tfBaOXXi3sfMzw* types;
NI32 n;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ sym;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ owner;
NI64 size;
NI16 align;
NI16 paddingAtEnd;
NI16 lockLevel;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ typeInst;
NI32 nonUniqueId;
};
struct tyTuple__8x6vq4Dc9aLvKX9actMeR9avQ {
NI Field0;
tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* Field1;
tySequence__vC9cvg0R8tfBaOXXi3sfMzw* Field2;
};
struct tyTuple__UvldbCB6B9ayi9bGYW7vJNLA {
NI Field0;
NI32 Field1;
NU32 Field2;
};
struct tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ {
  TGenericSeq Sup;
  tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg data[SEQ_DECL_SIZE];
};
struct tySequence__sh9b9afdJBB3bJbViXY7yNAg {
  TGenericSeq Sup;
  tyTuple__YXXBMUJBtW9corlxevWVfYQ data[SEQ_DECL_SIZE];
};
struct tySequence__mFtVDW3p7w6wfPPNodKzsA {
  TGenericSeq Sup;
  tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw* data[SEQ_DECL_SIZE];
};
struct tySequence__Y6pVop4P8VSwSorRqc2aQA {
  TGenericSeq Sup;
  tyTuple__TeyVVRby9bj1JQeNMm9aeI2w data[SEQ_DECL_SIZE];
};
struct tySequence__qwqHTkRvwhrRyENtudHQ7g {
  TGenericSeq Sup;
  NI data[SEQ_DECL_SIZE];
};
struct tySequence__JGK6WZYU2JHWLoPdKRO4AQ {
  TGenericSeq Sup;
  tyTuple__jCPpzNasrXtz9cFJFxT1NHQ data[SEQ_DECL_SIZE];
};
struct tySequence__eHqUwlHGGaPw0TDPDeL79cQ {
  TGenericSeq Sup;
  tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* data[SEQ_DECL_SIZE];
};
struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ {
  TGenericSeq Sup;
  tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
};
struct tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A {
  TGenericSeq Sup;
  tyObject_TType__facALICuu8zUj0hjvbTLFg* data[SEQ_DECL_SIZE];
};
struct tySequence__Bre9bNyuQOg1EJKitjSzn8w {
  TGenericSeq Sup;
  tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* data[SEQ_DECL_SIZE];
};
struct tySequence__4mZLwkxT8rbt9bf3wXrXYNQ {
  TGenericSeq Sup;
  tyObject_Iface__uvkV248cZcsEQKaQm7C9aEA data[SEQ_DECL_SIZE];
};
struct tySequence__rQHmYk1HzcwNxKBymIFHpA {
  TGenericSeq Sup;
  tyObject_LoadedModule__14iJKkvOiWT62KF2D8f9c5w data[SEQ_DECL_SIZE];
};
struct tySequence__XMM60DtBsc6xYsIpNANkrA {
  TGenericSeq Sup;
  tyObject_PackedEncoder__B9cE9a0GbvqWW9aHf4N7RAaIw data[SEQ_DECL_SIZE];
};
struct tySequence__O5RcspOP32YJ4YtU5ppxxA {
  TGenericSeq Sup;
  tyObject_LazyType__Q19c34D32PKyTKlx6R6yODg data[SEQ_DECL_SIZE];
};
struct tySequence__ChDZ6dokJ9aj9cg3KBoCU5vg {
  TGenericSeq Sup;
  tyTuple__l7R9cf53SDCcRmz9aWTyEKqQ data[SEQ_DECL_SIZE];
};
struct tySequence__Or1y9bNpmj8PM8AcK9c9cg7RA {
  TGenericSeq Sup;
  tyObject_LazyInstantiation__rlce0Sj8mBfLfm69c2yVTZg data[SEQ_DECL_SIZE];
};
struct tySequence__mWRMiYLthG9coLjkbElCxkw {
  TGenericSeq Sup;
  tyTuple__o67sDX0wYbEuhI9cJYAbDtg data[SEQ_DECL_SIZE];
};
struct tySequence__bTDCDwD2P7TodzbAefLcSw {
  TGenericSeq Sup;
  tyTuple__9aNnDWBFMF44sfFinBpMT4Q data[SEQ_DECL_SIZE];
};
struct tySequence__159bHWBGAOOs6U7OZ9cQlO0g {
  TGenericSeq Sup;
  tyTuple__VrD6plbUKJjYKM0lCr3hGQ data[SEQ_DECL_SIZE];
};
struct tySequence__3MPVXAHA08SszBrU4ffqEg {
  TGenericSeq Sup;
  tyTuple__dT8l9anHpNRgQSBAI9ctQ2wg data[SEQ_DECL_SIZE];
};
struct tySequence__YCf5zJHm4JI06qpmKwPUWg {
  TGenericSeq Sup;
  tyTuple__1ZbjBgxAbnye0IFMZ6w4OA data[SEQ_DECL_SIZE];
};
struct tySequence__7lEisrXlQEzwtUKW5pzRCw {
  TGenericSeq Sup;
  tyTuple__xYhUhS7X82rKTqbT9bRfCnw data[SEQ_DECL_SIZE];
};
struct tySequence__48JTohSgTy339bRxHzUD8KA {
  TGenericSeq Sup;
  NI32 data[SEQ_DECL_SIZE];
};
struct tySequence__fdmz6VkIf1ewwrssKYqRFg {
  TGenericSeq Sup;
  tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q data[SEQ_DECL_SIZE];
};
struct tySequence__kxu4GK0onha2t9bo86mdVAg {
  TGenericSeq Sup;
  tyTuple__xDU9bZmv1ZbZkJDaATBekIQ data[SEQ_DECL_SIZE];
};
struct tySequence__4fyguUt3ZraOklN6h0Tjkw {
  TGenericSeq Sup;
  tyObject_SymInfoPair__mXtIz9c3umFizQ9bw79aldIEw data[SEQ_DECL_SIZE];
};
struct tySequence__FdVaeFbf9a05PXbYlgHL9ahw {
  TGenericSeq Sup;
  tyTuple__OvnOYJpJ1WQyVNnkDTodqw data[SEQ_DECL_SIZE];
};
struct tySequence__i7xpiUsxyv6cQ1xK3JbcGQ {
  TGenericSeq Sup;
  tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* data[SEQ_DECL_SIZE];
};
struct tySequence__1XdfDDoNvZorxGg2DV0QnA {
  TGenericSeq Sup;
  tyTuple__tz45FTGkfpDYgeKnoipqHQ data[SEQ_DECL_SIZE];
};
struct tySequence__s9byh6WFJ16lPMcmqdaMTHA {
  TGenericSeq Sup;
  tyTuple__a9bBCAQ2tegdUQVlHYxdJ2A data[SEQ_DECL_SIZE];
};
struct tySequence__1U9bG8RcAedEeYkQLZjVFKA {
  TGenericSeq Sup;
  tyTuple__3i6hlQmqrn6m7tuVN8FHjQ data[SEQ_DECL_SIZE];
};
struct tySequence__fIB1rTQ55aFonoft9a9bmljQ {
  TGenericSeq Sup;
  tyTuple__OJFzEczluV8Jmo9bRpBfkzw data[SEQ_DECL_SIZE];
};
struct tySequence__23SMqauuRsbDANhthj9bWlA {
  TGenericSeq Sup;
  tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw data[SEQ_DECL_SIZE];
};
struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA {
  TGenericSeq Sup;
  tyTuple__F3gkSrMB1qp2Tvf9bixVXwg data[SEQ_DECL_SIZE];
};
struct tySequence__pHNq3oXj9av2sEUdqaqeZjw {
  TGenericSeq Sup;
  tyTuple__wcNatyuf8WOqAhGLhSvgiw data[SEQ_DECL_SIZE];
};
struct tySequence__MAQKEADohlpnXTModtugbQ {
  TGenericSeq Sup;
  tyTuple__4o9cW9aUwdGqgZI9bSHHYnbaQ data[SEQ_DECL_SIZE];
};
struct tySequence__tNFrR3kRuS1FSwuiLGoSSA {
  TGenericSeq Sup;
  tyTuple__z822nu9bFF1AlQnLrHjdwpA data[SEQ_DECL_SIZE];
};
struct tySequence__Zi9cGbCWofbtABoHJ5RbLNQ {
  TGenericSeq Sup;
  tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw data[SEQ_DECL_SIZE];
};
struct tySequence__4eRCaZmrYLLw2k30GPTiMw {
  TGenericSeq Sup;
  tyTuple__QeWl6B6ffS4pU6WWrtcrDw data[SEQ_DECL_SIZE];
};
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
  TGenericSeq Sup;
  NimStringDesc* data[SEQ_DECL_SIZE];
};
struct tySequence__pK3qSsBZwdXd6qyUMkd5Jw {
  TGenericSeq Sup;
  tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg data[SEQ_DECL_SIZE];
};
struct tySequence__vv5mGmK03BCr5e3LTZA5Hw {
  TGenericSeq Sup;
  tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA data[SEQ_DECL_SIZE];
};
struct tySequence__PXIzfWocnrafGz5p3CP5LA {
  TGenericSeq Sup;
  tyTuple__0q9cmhneJEKnQERTpXXdz6Q data[SEQ_DECL_SIZE];
};
struct tySequence__9bAGqSvkAaFL9bWjsEPslrFA {
  TGenericSeq Sup;
  NU32 data[SEQ_DECL_SIZE];
};
struct tySequence__29bS0n2QNyO1R7e0qMMOvLA {
  TGenericSeq Sup;
  tyObject_PackedNode__7lDGAZiNp4zbO65GEpoKow data[SEQ_DECL_SIZE];
};
struct tySequence__b89aLriiJnVTD186H6zNIgg {
  TGenericSeq Sup;
  tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ data[SEQ_DECL_SIZE];
};
struct tySequence__REuPuHuSlOkZ0Q5oqzDrQg {
  TGenericSeq Sup;
  tyTuple__Q7r9caOmeWqQGZCIBHhGRUA data[SEQ_DECL_SIZE];
};
struct tySequence__I9aQmO9asXXWJ58UI9c8BCSzA {
  TGenericSeq Sup;
  tyTuple__7Wlwbz8zSe7Udyf7mmsd9cg data[SEQ_DECL_SIZE];
};
struct tySequence__NyaOkf8ZwxP6rkRF5TOkew {
  TGenericSeq Sup;
  tyTuple__XyJ8LOAZzVVXSsmt09b8uWw data[SEQ_DECL_SIZE];
};
struct tySequence__L9bOt8CaTEmIjgtuZvp6syg {
  TGenericSeq Sup;
  tyObject_PackedInstantiation__39cWRURu69agjI9c1ohiUmxiA data[SEQ_DECL_SIZE];
};
struct tySequence__im8UB2GsZvUaQ4a1wKGWhQ {
  TGenericSeq Sup;
  tyTuple__9aoobCDZB4x41HJSOmh0mwA data[SEQ_DECL_SIZE];
};
struct tySequence__xxnXDLpoqBo8zJzP9b1073g {
  TGenericSeq Sup;
  tyTuple__g0Q6Qx15nK53ce9aLo7YyrA data[SEQ_DECL_SIZE];
};
struct tySequence__DfmUmNgVGnYaiV1I6227tw {
  TGenericSeq Sup;
  tyObject_PackedSym__XjVn21MwvH8ij6CfopYZWw data[SEQ_DECL_SIZE];
};
struct tySequence__t8Uv4lEJ4lkuECvP9c6JMhA {
  TGenericSeq Sup;
  tyObject_PackedType__IhXsK7mrwumUBtEqbZ2BqA data[SEQ_DECL_SIZE];
};
struct tySequence__IHUFRsFxZNv7YydiUO2esQ {
  TGenericSeq Sup;
  NI64 data[SEQ_DECL_SIZE];
};
struct tySequence__vC9cvg0R8tfBaOXXi3sfMzw {
  TGenericSeq Sup;
  tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ data[SEQ_DECL_SIZE];
};
struct tySequence__9bT7o0CflHuiE4VhmtqBPCw {
  TGenericSeq Sup;
  tyTuple__8x6vq4Dc9aLvKX9actMeR9avQ data[SEQ_DECL_SIZE];
};
struct tySequence__9cnx3zXnWzeclW8Ko4oUgAQ {
  TGenericSeq Sup;
  tyTuple__UvldbCB6B9ayi9bGYW7vJNLA data[SEQ_DECL_SIZE];
};
struct tySequence__ipEvhpHAmm8ZCn9bZAOdNYA {
  TGenericSeq Sup;
  tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ data[SEQ_DECL_SIZE];
};
static N_INLINE(NIM_BOOL, isInlineIterator__ast_4964)(tyObject_TType__facALICuu8zUj0hjvbTLFg* typ);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
N_LIB_PRIVATE N_NIMCALL(tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ*, constructCfg__dfa_1142)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body);
N_LIB_PRIVATE N_NIMCALL(void, computeCursors__varpartitions_1790)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g);
N_LIB_PRIVATE N_NIMCALL(void, computeLastReadsAndFirstWrites__injectdestructors_3780)(tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ* cfg);
N_LIB_PRIVATE N_NIMCALL(void, initTable__injectdestructors_3782)(NI initialSize, tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g* Result);
N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
static N_NIMCALL(void, Marker_tySequence__sh9b9afdJBB3bJbViXY7yNAg)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(void, genericSeqAssign)(void* dest, void* src, TNimType* mt);
N_LIB_PRIVATE N_NIMCALL(void, preprocessCfg__injectdestructors_1924)(tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ** cfg);
N_LIB_PRIVATE N_NIMCALL(tySequence__mFtVDW3p7w6wfPPNodKzsA*, newSeq__injectdestructors_3802)(NI len);
static N_NIMCALL(void, Marker_tySequence__Y6pVop4P8VSwSorRqc2aQA)(void* p, NI op);
static N_NIMCALL(void, Marker_tyRef__xMu9aauGSW9bIwiWptXaXX0Q)(void* p, NI op);
static N_NIMCALL(void, Marker_tySequence__mFtVDW3p7w6wfPPNodKzsA)(void* p, NI op);
N_LIB_PRIVATE N_NOINLINE(void*, newObj)(TNimType* typ, NI size);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef__system_5329)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5291)(void* usr);
static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
static N_INLINE(void, decRef__system_5336)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
static N_INLINE(void, rtlAddZCT__system_5334)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5285)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NIMCALL(void, genericAssign)(void* dest, void* src, TNimType* mt);
N_LIB_PRIVATE N_NIMCALL(tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg, aliasesCached__injectdestructors_121)(tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g* cache, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* obj, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* field);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__injectdestructors_174)(tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g t, tyTuple__EFqgCXJ4d8PgqOdFJmldsQ key);
static N_INLINE(NI, hash__pureZhashes_124)(void* x);
static N_INLINE(NI, hash__pureZhashes_128)(NI x);
static N_INLINE(NI, hashWangYi1__pureZhashes_136)(NU64 x);
static N_INLINE(NU64, hiXorLo__pureZhashes_79)(NU64 a, NU64 b);
static N_INLINE(NU64, hiXorLoFallback64__pureZhashes_35)(NU64 a, NU64 b);
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___injectdestructors_509)(tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g* t, tyTuple__EFqgCXJ4d8PgqOdFJmldsQ key, tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg val);
N_LIB_PRIVATE N_NIMCALL(tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg, aliases__dfa_799)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* obj, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* field);
N_LIB_PRIVATE N_NIMCALL(tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg*, X5BX5D___injectdestructors_1731)(tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g* t, tyTuple__EFqgCXJ4d8PgqOdFJmldsQ key);
N_LIB_PRIVATE N_NIMCALL(void, incl__pureZcollectionsZintsets_55)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s, NI key);
N_LIB_PRIVATE N_NIMCALL(void, excl__reorder_264)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s, NI key);
N_LIB_PRIVATE N_NIMCALL(void, commenteq___ast_1361)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NimStringDesc* a);
static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___systemZdollars_3)(NI x);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size);
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_LIB_PRIVATE N_NIMCALL(NI, len__injectdestructors_2169)(tyObject_HashSet__YByQS2i9cOlUupxNMscAMwQ s);
static N_INLINE(NIM_BOOL, isFilled__pureZcollectionsZsets_38)(NI hcode);
N_LIB_PRIVATE N_NIMCALL(void, incl__injectdestructors_2395)(tyObject_HashSet__YByQS2i9cOlUupxNMscAMwQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* key);
N_LIB_PRIVATE N_NIMCALL(void, mergeStates__injectdestructors_1944)(tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw** a, tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw* b);
N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_LIB_PRIVATE N_NIMCALL(void, incl__importer_1492)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* other);
N_LIB_PRIVATE N_NIMCALL(void, excl__injectdestructors_2012)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* other);
N_LIB_PRIVATE N_NIMCALL(void, incl__injectdestructors_2107)(tyObject_HashSet__YByQS2i9cOlUupxNMscAMwQ* s, tyObject_HashSet__YByQS2i9cOlUupxNMscAMwQ other);
static N_INLINE(void, minus___sem_4128)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s1, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s2, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* Result);
N_LIB_PRIVATE N_NIMCALL(void, difference__sem_4133)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s1, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s2, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* Result);
N_LIB_PRIVATE N_NIMCALL(void, genericShallowAssign)(void* dest, void* src, TNimType* mt);
static N_INLINE(void, plus___injectdestructors_4122)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s1, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s2, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* Result);
N_LIB_PRIVATE N_NIMCALL(void, union__injectdestructors_4127)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s1, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s2, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* Result);
static N_INLINE(tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw**, X5BX5D___injectdestructors_4096)(tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw** s, NI sLen_0, NI i);
N_LIB_PRIVATE N_NIMCALL(tySequence__qwqHTkRvwhrRyENtudHQ7g**, mgetOrPut__injectdestructors_4251)(tyObject_Table__8b8GbeV6waqgbRlb9aUvYNQ* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* key, tySequence__qwqHTkRvwhrRyENtudHQ7g* val);
static N_NIMCALL(void, Marker_tySequence__JGK6WZYU2JHWLoPdKRO4AQ)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(NI, len__injectdestructors_5745)(tyObject_Table__8b8GbeV6waqgbRlb9aUvYNQ t);
static N_INLINE(NIM_BOOL, isFilled__pureZcollectionsZtables_31)(NI hcode);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__astalgo_3489)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s, NI key);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, p__injectdestructors_105)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw mode);
static N_INLINE(NI, len__ast_3151)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, copyNode__ast_4311)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
N_LIB_PRIVATE N_NIMCALL(void, add__ast_4772)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* son);
static N_INLINE(NIM_BOOL, isEmptyType__ast_4754)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, shallowCopy__ast_4388)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, copyTree__ast_4406)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
N_LIB_PRIVATE N_NIMCALL(void, nestedScope__injectdestructors_72)(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* parent, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, processScope__injectdestructors_7018)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ret);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeI__ast_3316)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newTree__ast_3352)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** children, NI childrenLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newSymNode__ast_3691)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newTryFinally__lowerings_207)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* final);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeIT__ast_3338)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getTemp__injectdestructors_61)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, newSym__ast_3405)(tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw symKind, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* name, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g id, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options);
N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA*, getIdent__idents_143)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* ic, NimStringDesc* identifier);
static N_INLINE(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g, nextSymId__ast_3099)(tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* x);
static N_INLINE(NIM_BOOL, hasDestructor__injectdestructors_49)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genDestroy__injectdestructors_6529)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, skipTypes__ast_3710)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kinds);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genOp__injectdestructors_6432)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg kind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, getAttachedOp__modulegraphs_4024)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg op);
static N_INLINE(NIM_BOOL, isGenericRoutine__ast_4602)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NIM_BOOL, isGenericParams__ast_4591)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, hashType__sighashes_462)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tySet_tyEnum_ConsiderFlag__9a9az8WnKmq9bvt8EXoSUES7g flags, tyArray__qtqsWM5aXmcpMIVmvq3kAA Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, getOrDefault__liftdestructors_977)(tyObject_Table__Ue6w4c82v7gc7t2qntTbAw t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key);
N_LIB_PRIVATE N_NOINLINE(void, liMessage__msgs_1118)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msg, NimStringDesc* arg, tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw eh, tyTuple__kN8up2W6YKc5YA9avn5mV5w info2, NIM_BOOL isRaw);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, typeToString__types_50)(tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
N_LIB_PRIVATE N_NIMCALL(void, checkForErrorPragma__injectdestructors_6382)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, NimStringDesc* opname);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NIM_BOOL, equalMem__system_1735)(void* a, void* b, NI size);
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, renderTree__renderer_46)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TRenderFlag__wrPgUo1ExBlHvFnXN2nSHw renderFlags);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
static N_INLINE(NIM_BOOL, startsWith__pureZstrutils_1246)(NimStringDesc* s, NIM_CHAR prefix);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, comment__ast_993)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___msgs_624)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(NI, nsuParseInt)(NimStringDesc* s);
static N_INLINE(NimStringDesc*, X5BX5D___pureZunicode_3215)(NimStringDesc* s, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA x);
N_NIMCALL(NimStringDesc*, mnewString)(NI len);
static N_INLINE(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA, dotdot___stdZenumutils_80)(NI a, NI b);
static N_INLINE(NIM_BOOL, isSinkType__ast_5020)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genOp__injectdestructors_6422)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* op, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, makePtrType__injectdestructors_6418)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* baseType);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, newType__ast_3871)(tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g id, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner);
static N_INLINE(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g, nextTypeId__ast_3118)(tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* x);
N_LIB_PRIVATE N_NIMCALL(void, addSonSkipIntLit__magicsys_136)(tyObject_TType__facALICuu8zUj0hjvbTLFg* father, tyObject_TType__facALICuu8zUj0hjvbTLFg* son, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* id);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, moveOrCopy__injectdestructors_110)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, NIM_BOOL isDecl);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameLocation__injectdestructors_8434)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameConstant__injectdestructors_8438)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isCursor__injectdestructors_6371)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genSink__injectdestructors_6566)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, NIM_BOOL isDecl);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isAnalysableFieldAccess__dfa_910)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* orig, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isFirstWrite__injectdestructors_6122)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipConvDfa__dfa_787)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NIM_BOOL, isNoInit__injectdestructors_6555)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isLastRead__injectdestructors_6105)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c);
static N_INLINE(NIM_BOOL, isAtom__ast_4743)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genWasMoved__injectdestructors_6741)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, createMagic__modulegraphs_9021)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen, NimStringDesc* name, tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg m);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genFieldAccessSideEffects__injectdestructors_8474)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, NIM_BOOL isDecl);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeI__ast_3320)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NI children);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, destructiveMoveVar__injectdestructors_6762)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipConv__types_3589)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genMarkCyclic__injectdestructors_6614)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, cyclicType__liftdestructors_1367)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, callCodegenProc__lowerings_641)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, NimStringDesc* name, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg1, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg2, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg3, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* optionalArgs);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genBuiltin__liftdestructors_113)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen, tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic, NimStringDesc* name, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* i);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, getSysType__magicsys_60)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genCopy__injectdestructors_6649)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genCopyNoCheck__injectdestructors_6636)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri);
N_LIB_PRIVATE N_NIMCALL(void, finishCopy__injectdestructors_6600)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, NIM_BOOL isFromSink);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, boolLit__liftdestructors_428)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NIM_BOOL value);
static N_INLINE(NIM_BOOL, isCriticalLink__injectdestructors_6593)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest);
static N_INLINE(NIM_BOOL, isDangerousSeq__injectdestructors_6849)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
static N_INLINE(NIM_BOOL, isSinkParam__ast_5005)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
static N_INLINE(NIM_BOOL, canBeMoved__injectdestructors_6534)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, pRaiseStmt__injectdestructors_7128)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lastSon__ast_4807)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsConstSeq__injectdestructors_6862)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NI, safeLen__ast_3144)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, passCopyToSink__injectdestructors_6807)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isLValue__parampatterns_497)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isCapturedVar__injectdestructors_6799)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, getRoot__trees_390)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatSingleElem)(NimStringDesc* formatstr, NimStringDesc* a);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___renderer_2106)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, lookupFieldAgain__types_4054)(tyObject_TType__facALICuu8zUj0hjvbTLFg* ty, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* field);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, ensureDestruction__injectdestructors_6887)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* orig, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s);
static N_INLINE(NI, len__ast_3977)(tyObject_TType__facALICuu8zUj0hjvbTLFg* n);
static N_INLINE(NIM_BOOL, isCompileTimeOnly__types_3520)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isSinkTypeForParam__types_4047)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, canRaise__ast_5063)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fn);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lowerTupleUnpacking__lowerings_116)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner);
N_LIB_PRIVATE N_NIMCALL(void, pVarTopLevel__injectdestructors_6969)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* v, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* res);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genDefaultCall__injectdestructors_6753)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, cycleCheck__injectdestructors_6910)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, exprStructuralEquivalent__trees_56)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b, NIM_BOOL strictSymEquality);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatOpenArray)(NimStringDesc* formatstr, NimStringDesc** a, NI aLen_0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDiscriminantField__astalgo_4328)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genDiscriminantAsgn__injectdestructors_6670)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, produceDestructorForDiscriminator__liftdestructors_2003)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* field, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, getMagicEqSymForType__magicsys_171)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, internalErrorImpl__msgs_1431)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* errMsg, tyTuple__kN8up2W6YKc5YA9avn5mV5w info2);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, reprEnum)(NI e, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, optimize__optimizer_390)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nsthasKey)(tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* t, NimStringDesc* key);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringDesc** args, NI argsLen_0);
N_LIB_PRIVATE TNimType NTIkeyvaluepair__YXXBMUJBtW9corlxevWVfYQ_;
extern TNimType NTIint__rR5Bzr1D5krxoo1NcNyeMA_;
extern TNimType NTItupleLa58pnode_b58pnodeT__EFqgCXJ4d8PgqOdFJmldsQ_;
extern TNimType NTIaliaskind__mOZtJx9b3QXuy9bfWq9cuUNCg_;
N_LIB_PRIVATE TNimType NTIkeyvaluepairseq__sh9b9afdJBB3bJbViXY7yNAg_;
extern TNimType NTIcontrolflowgraph__hj4BvueOlKB8Z1Qw2ZU4nQ_;
N_LIB_PRIVATE TNimType NTIstate58objecttype__G9bbCRpuemWPWC66CPVRKyw_;
extern TNimType NTIpackedset__IhxwDBRi51nGrosBGFKcsA_;
N_LIB_PRIVATE TNimType NTIhashset__YByQS2i9cOlUupxNMscAMwQ_;
N_LIB_PRIVATE TNimType NTIkeyvaluepair__TeyVVRby9bj1JQeNMm9aeI2w_;
extern TNimType NTIpnode__fKfcLzXYiz5jNu3NH3Tv8Q_;
N_LIB_PRIVATE TNimType NTIkeyvaluepairseq__Y6pVop4P8VSwSorRqc2aQA_;
N_LIB_PRIVATE TNimType NTIstate__xMu9aauGSW9bIwiWptXaXX0Q_;
N_LIB_PRIVATE TNimType NTIseqLstateT__mFtVDW3p7w6wfPPNodKzsA_;
N_LIB_PRIVATE TNimType NTIkeyvaluepair__jCPpzNasrXtz9cFJFxT1NHQ_;
extern TNimType NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_;
N_LIB_PRIVATE TNimType NTIkeyvaluepairseq__JGK6WZYU2JHWLoPdKRO4AQ_;
static NIM_CONST tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw TM__dJ4qrEWDmqGA8FWJ0TYKJQ_7 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
0x00, 0x00, 0x00, 0xb0, 0x03, 0x04, 0x09, 0xc0,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_8, ":tmpD", 5);
extern TNimType NTIseqLpsymT__eHqUwlHGGaPw0TDPDeL79cQ_;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__dJ4qrEWDmqGA8FWJ0TYKJQ_9 = {
0x10, 0x08, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
0x00}
;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_10, "internal error: \'", 17);
extern NIM_CONST tyArray__JXkBzVsE9bvmcpuZvrueLVg AttachedOpToStr__ast_3823;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_11, "\' operator not found for type ", 30);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_13, "/home/runner/work/nightlies/nightlies/nim/compiler/injectdestructors.nim", 72);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__dJ4qrEWDmqGA8FWJ0TYKJQ_12 = {((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_13),
((NI) 284),
((NI) 15)}
;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_14, "\' operator is generic", 21);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__dJ4qrEWDmqGA8FWJ0TYKJQ_15 = {((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_13),
((NI) 287),
((NI) 15)}
;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_16, "\'", 1);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_17, "\' is not available for type <", 29);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_18, ">", 1);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_19, "=", 1);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_20, "=copy", 5);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_21, "; requires a copy because it\'s not the last read of \'", 53);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_22, "; another read is done here: ", 29);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_23, "; try to make ", 14);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_24, " a \'sink\' parameter", 19);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_25, "; routine: ", 11);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__dJ4qrEWDmqGA8FWJ0TYKJQ_26 = {((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_13),
((NI) 263),
((NI) 12)}
;
extern TNimType NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_27, "wasMoved", 8);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_28, "bracketTmp", 10);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_29, "blitTmp", 7);
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__dJ4qrEWDmqGA8FWJ0TYKJQ_30 = {
0x10, 0x28, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
0x00}
;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_31, "nimMarkCyclic", 13);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_32, "accessEnv", 9);
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__dJ4qrEWDmqGA8FWJ0TYKJQ_33 = {
0x10, 0xa9, 0x00, 0x00, 0x00, 0x60, 0x80, 0x00,
0x00}
;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_34, "passing \'$1\' to a sink parameter introduces an implicit copy; if possible, rearrange your program\'s control flow to prevent it", 126);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__dJ4qrEWDmqGA8FWJ0TYKJQ_35 = {((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_13),
((NI) 462),
((NI) 13)}
;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_36, "cannot create an implicit openArray copy to be passed to a sink parameter", 73);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__dJ4qrEWDmqGA8FWJ0TYKJQ_37 = {((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_13),
((NI) 469),
((NI) 16)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__dJ4qrEWDmqGA8FWJ0TYKJQ_38 = {
0x10, 0xa9, 0x00, 0x00, 0x00, 0x40, 0x80, 0x00,
0x00}
;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_39, "default", 7);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_40, "\'$#\' creates an uncollectable ref cycle; annotate \'$#\' with .cursor", 67);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_41, "\'$#\' creates an uncollectable ref cycle", 39);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__dJ4qrEWDmqGA8FWJ0TYKJQ_42 = {((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_13),
((NI) 535),
((NI) 13)}
;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_43, "Assignment to discriminant for objects with user defined destructor is not supported, object must have default destructor.\012It is best to factor out piece of object that needs custom destructor into separate object or not use discriminator assignment", 249);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__dJ4qrEWDmqGA8FWJ0TYKJQ_44 = {((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_13),
((NI) 393),
((NI) 16)}
;
extern NIM_CONST tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q unknownLineInfo__lineinfos_282;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_45, "not", 3);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_46, "nkWhileStmt should have been handled earlier", 44);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__dJ4qrEWDmqGA8FWJ0TYKJQ_47 = {((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_13),
((NI) 906),
((NI) 19)}
;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_48, "cannot inject destructors to node kind: ", 40);
extern TNimType NTItnodekind__G4E4Gxe7oI2Cm03rkiOzQw_;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__dJ4qrEWDmqGA8FWJ0TYKJQ_49 = {((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_13),
((NI) 993),
((NI) 19)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__dJ4qrEWDmqGA8FWJ0TYKJQ_50 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
0x00}
;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_51, "--expandArc: ", 13);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_53, "-- end of expandArc ------------------------", 44);
static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__dJ4qrEWDmqGA8FWJ0TYKJQ_52 = {((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_53)}
;
extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__system_5238;
static N_INLINE(NIM_BOOL, isInlineIterator__ast_4964)(tyObject_TType__facALICuu8zUj0hjvbTLFg* typ) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = ((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
	if (!(T2_)) goto LA3_;
	T2_ = (((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 15))&63U)))!=0);
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T1_ = !(((*typ).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9)));
	LA4_: ;
	result = T1_;
	return result;
}
static N_INLINE(void, nimSetMem__systemZmemory_7)(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__systemZmemory_7(p, ((int) 0), size);
}
static N_NIMCALL(void, Marker_tySequence__sh9b9afdJBB3bJbViXY7yNAg)(void* p, NI op) {
	tySequence__sh9b9afdJBB3bJbViXY7yNAg* a;
	NI T1_;
	a = (tySequence__sh9b9afdJBB3bJbViXY7yNAg*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_].Field1.Field0, op);
	nimGCvisit((void*)a->data[T1_].Field1.Field1, op);
	}
}
N_LIB_PRIVATE N_NIMCALL(void, preprocessCfg__injectdestructors_1924)(tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ** cfg) {
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = ((*cfg) ? (*cfg)->Sup.len : 0);
		colontmp_ = T2_;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				{
					NIM_BOOL T7_;
					NI T9_;
					NI T12_;
					T7_ = (NIM_BOOL)0;
					T7_ = ((3 &((NU8)1<<((NU)((*cfg)->data[i].kind)&7U)))!=0);
					if (!(T7_)) goto LA8_;
					T9_ = ((*cfg) ? (*cfg)->Sup.len : 0);
					T7_ = (T9_ < (NI)(i + (*cfg)->data[i].dest));
					LA8_: ;
					if (!T7_) goto LA10_;
					T12_ = ((*cfg) ? (*cfg)->Sup.len : 0);
					(*cfg)->data[i].dest = (NI)(T12_ - i);
				}
				LA10_: ;
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
}
static N_NIMCALL(void, Marker_tySequence__Y6pVop4P8VSwSorRqc2aQA)(void* p, NI op) {
	tySequence__Y6pVop4P8VSwSorRqc2aQA* a;
	NI T1_;
	a = (tySequence__Y6pVop4P8VSwSorRqc2aQA*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_].Field1, op);
	}
}
static N_NIMCALL(void, Marker_tyRef__xMu9aauGSW9bIwiWptXaXX0Q)(void* p, NI op) {
	tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw* a;
	NI T1_;
	NI T2_;
	NI T3_;
	a = (tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw*)p;
	nimGCvisit((void*)(*a).lastReads.head, op);
	nimGCvisit((void*)(*a).lastReads.data, op);
	T1_ = (NI)0;
	nimGCvisit((void*)(*a).potentialLastReads.head, op);
	nimGCvisit((void*)(*a).potentialLastReads.data, op);
	T2_ = (NI)0;
	nimGCvisit((void*)(*a).notLastReads.head, op);
	nimGCvisit((void*)(*a).notLastReads.data, op);
	T3_ = (NI)0;
	nimGCvisit((void*)(*a).alreadySeen.data, op);
}
static N_NIMCALL(void, Marker_tySequence__mFtVDW3p7w6wfPPNodKzsA)(void* p, NI op) {
	tySequence__mFtVDW3p7w6wfPPNodKzsA* a;
	NI T1_;
	a = (tySequence__mFtVDW3p7w6wfPPNodKzsA*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_], op);
	}
}
static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU32)(((NU) (x))) + (NU32)(((NU) (y))))));
	return result;
}
static N_INLINE(void, incRef__system_5329)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
	(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
}
static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU32)(((NU) (x))) - (NU32)(((NU) (y))))));
	return result;
}
static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5291)(void* usr) {
	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
	NI T1_;
	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
	T1_ = (NI)0;
	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 8));
	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
	return result;
}
static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((NU32)(((NU) (x))) < (NU32)(((NU) (y))));
	return result;
}
static N_INLINE(void, rtlAddZCT__system_5334)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
	addZCT__system_5285((&gch__system_5238.zct), c);
}
static N_INLINE(void, decRef__system_5336)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
	(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
		if (!T3_) goto LA4_;
		rtlAddZCT__system_5334(c);
	}
	LA4_: ;
}
static N_INLINE(void, asgnRef)(void** dest, void* src) {
	{
		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
		if (!!((src == NIM_NIL))) goto LA3_;
		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T5_ = usrToCell__system_5291(src);
		incRef__system_5329(T5_);
	}
	LA3_: ;
	{
		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
		if (!!(((*dest) == NIM_NIL))) goto LA8_;
		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T10_ = usrToCell__system_5291((*dest));
		decRef__system_5336(T10_);
	}
	LA8_: ;
	(*dest) = src;
}
static N_INLINE(NU64, hiXorLoFallback64__pureZhashes_35)(NU64 a, NU64 b) {
	NU64 result;
	NU64 aH;
	NU64 aL;
	NU64 bH;
	NU64 bL;
	NU64 rHH;
	NU64 rHL;
	NU64 rLH;
	NU64 rLL;
	NU64 t;
	NU64 c;
	NU64 lo;
	NU64 T6_;
	NU64 hi;
{	result = (NU64)0;
	aH = (NU64)((NU64)(a) >> (NU64)(((NI) 32)));
	aL = (NU64)(a & 4294967295ULL);
	bH = (NU64)((NU64)(b) >> (NU64)(((NI) 32)));
	bL = (NU64)(b & 4294967295ULL);
	rHH = (NU64)((NU64)(aH) * (NU64)(bH));
	rHL = (NU64)((NU64)(aH) * (NU64)(bL));
	rLH = (NU64)((NU64)(aL) * (NU64)(bH));
	rLL = (NU64)((NU64)(aL) * (NU64)(bL));
	t = (NU64)((NU64)(rLL) + (NU64)((NU64)((NU64)(rHL) << (NU64)(((NI) 32)))));
	{
		if (!((NU64)(t) < (NU64)(rLL))) goto LA3_;
		c = 1ULL;
	}
	goto LA1_;
	LA3_: ;
	{
		c = 0ULL;
	}
	LA1_: ;
	lo = (NU64)((NU64)(t) + (NU64)((NU64)((NU64)(rLH) << (NU64)(((NI) 32)))));
	T6_ = (NU64)0;
	{
		if (!((NU64)(lo) < (NU64)(t))) goto LA9_;
		T6_ = 1ULL;
	}
	goto LA7_;
	LA9_: ;
	{
		T6_ = 0ULL;
	}
	LA7_: ;
	c += T6_;
	hi = (NU64)((NU64)((NU64)((NU64)((NU64)((NU64)(rHH) + (NU64)((NU64)((NU64)(rHL) >> (NU64)(((NI) 32)))))) + (NU64)((NU64)((NU64)(rLH) >> (NU64)(((NI) 32)))))) + (NU64)(c));
	result = (NU64)(hi ^ lo);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NU64, hiXorLo__pureZhashes_79)(NU64 a, NU64 b) {
	NU64 result;
	result = (NU64)0;
	result = hiXorLoFallback64__pureZhashes_35(a, b);
	return result;
}
static N_INLINE(NI, hashWangYi1__pureZhashes_136)(NU64 x) {
	NI result;
	NU64 T1_;
	NU64 T2_;
	result = (NI)0;
	T1_ = (NU64)0;
	T1_ = hiXorLo__pureZhashes_79(11562461410679940143ULL, (NU64)(x ^ 16646288086500911323ULL));
	T2_ = (NU64)0;
	T2_ = hiXorLo__pureZhashes_79(T1_, 16952864883938283885ULL);
	result = ((NI) (T2_));
	return result;
}
static N_INLINE(NI, hash__pureZhashes_128)(NI x) {
	NI result;
	result = (NI)0;
	result = hashWangYi1__pureZhashes_136(((NU64) (x)));
	return result;
}
static N_INLINE(NI, hash__pureZhashes_124)(void* x) {
	NI result;
	NI y;
	result = (NI)0;
	y = ((NI) (ptrdiff_t) (x));
	result = hash__pureZhashes_128(y);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, hash__injectdestructors_118)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	result = (NI)0;
	result = hash__pureZhashes_124(((void*) (n)));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg, aliasesCached__injectdestructors_121)(tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g* cache, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* obj, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* field) {
	tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg result;
	tyTuple__EFqgCXJ4d8PgqOdFJmldsQ key;
	tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg* T7_;
	result = (tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg)0;
	nimZeroMem((void*)(&key), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
	key.Field0 = obj;
	key.Field1 = field;
	{
		NIM_BOOL T3_;
		tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg T6_;
		T3_ = (NIM_BOOL)0;
		T3_ = hasKey__injectdestructors_174((*cache), key);
		if (!!(T3_)) goto LA4_;
		T6_ = (tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg)0;
		T6_ = aliases__dfa_799(obj, field);
		X5BX5Deq___injectdestructors_509(cache, key, T6_);
	}
	LA4_: ;
	T7_ = (tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg*)0;
	T7_ = X5BX5D___injectdestructors_1731(cache, key);
	result = (*T7_);
	return result;
}
static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c) {
	(*dest).data[(*dest).Sup.len] = c;
	(*dest).data[(NI)((*dest).Sup.len + ((NI) 1))] = 0;
	(*dest).Sup.len += ((NI) 1);
}
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__system_1727)(void* dest, void* source, NI size) {
	nimCopyMem(dest, source, size);
}
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	{
		if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
		copyMem__system_1727(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
		(*dest).Sup.len += (*src).Sup.len;
	}
	LA3_: ;
}
static N_INLINE(NIM_BOOL, isFilled__pureZcollectionsZsets_38)(NI hcode) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = !((hcode == ((NI) 0)));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, mergeStates__injectdestructors_1944)(tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw** a, tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw* b) {
	{
		if (!((*a) == ((tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw*) NIM_NIL))) goto LA3_;
		unsureAsgnRef((void**) (&(*a)), b);
	}
	goto LA1_;
	LA3_: ;
	{
		incl__importer_1492((&(*(*a)).lastReads), (&(*b).lastReads));
		incl__importer_1492((&(*(*a)).potentialLastReads), (&(*b).potentialLastReads));
		excl__injectdestructors_2012((&(*(*a)).potentialLastReads), (&(*(*a)).notLastReads));
		excl__injectdestructors_2012((&(*(*a)).potentialLastReads), (&(*b).notLastReads));
		incl__importer_1492((&(*(*a)).notLastReads), (&(*b).notLastReads));
		incl__injectdestructors_2107((&(*(*a)).alreadySeen), (*b).alreadySeen);
	}
	LA1_: ;
}
static N_INLINE(void, minus___sem_4128)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s1, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s2, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* Result) {
	tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA T1_;
	nimZeroMem((void*)(&T1_), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
	difference__sem_4133(s1, s2, (&T1_));
	genericShallowAssign((void*)Result, (void*)(&T1_), (&NTIpackedset__IhxwDBRi51nGrosBGFKcsA_));
}
static N_INLINE(void, plus___injectdestructors_4122)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s1, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s2, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* Result) {
	tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA T1_;
	nimZeroMem((void*)(&T1_), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
	union__injectdestructors_4127(s1, s2, (&T1_));
	genericShallowAssign((void*)Result, (void*)(&T1_), (&NTIpackedset__IhxwDBRi51nGrosBGFKcsA_));
}
static N_INLINE(tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw**, X5BX5D___injectdestructors_4096)(tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw** s, NI sLen_0, NI i) {
	tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw** result;
	result = (tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw**)0;
	result = &s[(NI)(sLen_0 - i)];
	return result;
}
static N_NIMCALL(void, Marker_tySequence__JGK6WZYU2JHWLoPdKRO4AQ)(void* p, NI op) {
	tySequence__JGK6WZYU2JHWLoPdKRO4AQ* a;
	NI T1_;
	a = (tySequence__JGK6WZYU2JHWLoPdKRO4AQ*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_].Field1, op);
	nimGCvisit((void*)a->data[T1_].Field2, op);
	}
}
static N_INLINE(NIM_BOOL, isFilled__pureZcollectionsZtables_31)(NI hcode) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = !((hcode == ((NI) 0)));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, computeLastReadsAndFirstWrites__injectdestructors_3780)(tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ* cfg) {
	tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g cache;
	tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ* cfg_2;
	tySequence__mFtVDW3p7w6wfPPNodKzsA* states;
	NI T1_;
	tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw* T2_;
	tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA lastReads;
	tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw** T125_;
	tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw** T126_;
	tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA T127_;
	tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw** T128_;
	tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA T129_;
	tyObject_Table__8b8GbeV6waqgbRlb9aUvYNQ lastReadTable;
	nimZeroMem((void*)(&cache), sizeof(tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g));
	initTable__injectdestructors_3782(((NI) 32), (&cache));
	genericSeqAssign((&cfg_2), cfg, (&NTIcontrolflowgraph__hj4BvueOlKB8Z1Qw2ZU4nQ_));
	preprocessCfg__injectdestructors_1924((&cfg_2));
	T1_ = (cfg_2 ? cfg_2->Sup.len : 0);
	states = newSeq__injectdestructors_3802(((NI) ((NI)(T1_ + ((NI) 1)))));
	T2_ = NIM_NIL;
	T2_ = (tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw*) newObj((&NTIstate__xMu9aauGSW9bIwiWptXaXX0Q_), sizeof(tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw));
	asgnRef((void**) (&states->data[((NI) 0)]), T2_);
	{
		NI pc;
		NI colontmp_;
		NI T4_;
		NI i;
		pc = (NI)0;
		colontmp_ = (NI)0;
		T4_ = (cfg_2 ? cfg_2->Sup.len : 0);
		colontmp_ = T4_;
		i = ((NI) 0);
		{
			while (1) {
				if (!(i < colontmp_)) goto LA6;
				pc = i;
				{
					if (!!((states->data[pc] == ((tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw*) NIM_NIL)))) goto LA9_;
					switch (cfg_2->data[pc].kind) {
					case ((tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ) 2):
					{
						tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA potentialLastReadsCopy;
						NIM_BOOL alreadySeenThisNode;
						tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw* T77_;
						nimZeroMem((void*)(&potentialLastReadsCopy), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
						genericAssign((void*)(&potentialLastReadsCopy), (void*)(&(*states->data[pc]).potentialLastReads), (&NTIpackedset__IhxwDBRi51nGrosBGFKcsA_));
						{
							NI r;
							r = (NI)0;
							{
								if (!(potentialLastReadsCopy.elems <= ((NI) 34))) goto LA15_;
								{
									NI i_2;
									NI i_3;
									i_2 = (NI)0;
									i_3 = ((NI) 0);
									{
										while (1) {
											if (!(i_3 < potentialLastReadsCopy.elems)) goto LA19;
											i_2 = i_3;
											r = potentialLastReadsCopy.a[(i_2)- 0];
											{
												tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg T22_;
												T22_ = (tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg)0;
												T22_ = aliasesCached__injectdestructors_121((&cache), cfg_2->data[pc].n, cfg_2->data[r].n);
												if (!(T22_ == ((tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg) 0))) goto LA23_;
												incl__pureZcollectionsZintsets_55((&(*states->data[pc]).lastReads), r);
												excl__reorder_264((&(*states->data[pc]).potentialLastReads), r);
											}
											goto LA20_;
											LA23_: ;
											{
												tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg T26_;
												NimStringDesc* T29_;
												NimStringDesc* T30_;
												T26_ = (tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg)0;
												T26_ = aliasesCached__injectdestructors_121((&cache), cfg_2->data[r].n, cfg_2->data[pc].n);
												if (!!((T26_ == ((tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg) 1)))) goto LA27_;
												T29_ = NIM_NIL;
												T30_ = NIM_NIL;
												T30_ = dollar___systemZdollars_3(pc);
												T29_ = rawNewString((T30_ ? T30_->Sup.len : 0) + 1);
appendChar(T29_, 10);
appendString(T29_, T30_);
												commenteq___ast_1361(cfg_2->data[r].n, T29_);
												excl__reorder_264((&(*states->data[pc]).potentialLastReads), r);
												incl__pureZcollectionsZintsets_55((&(*states->data[pc]).notLastReads), r);
											}
											goto LA20_;
											LA27_: ;
											LA20_: ;
											i_3 += ((NI) 1);
										} LA19: ;
									}
								}
							}
							goto LA13_;
							LA15_: ;
							{
								tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* r_2;
								r_2 = potentialLastReadsCopy.head;
								{
									while (1) {
										NI i_4;
										if (!!((r_2 == ((tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA*) NIM_NIL)))) goto LA33;
										i_4 = ((NI) 0);
										{
											while (1) {
												NU w;
												NI j;
												if (!(i_4 <= ((NI) 15))) goto LA35;
												w = (*r_2).bits[(i_4)- 0];
												j = ((NI) 0);
												{
													while (1) {
														if (!!((w == ((NU) 0)))) goto LA37;
														{
															NI T42_;
															if (!!(((NU)(w & ((NU) 1)) == ((NU) 0)))) goto LA40_;
															T42_ = (NI)0;
															T42_ = pluspercent___system_696((NI)((NU32)(i_4) << (NU32)(((NI) 5))), j);
															r = (NI)((NI)((NU32)((*r_2).key) << (NU32)(((NI) 9))) | T42_);
															{
																tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg T45_;
																T45_ = (tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg)0;
																T45_ = aliasesCached__injectdestructors_121((&cache), cfg_2->data[pc].n, cfg_2->data[r].n);
																if (!(T45_ == ((tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg) 0))) goto LA46_;
																incl__pureZcollectionsZintsets_55((&(*states->data[pc]).lastReads), r);
																excl__reorder_264((&(*states->data[pc]).potentialLastReads), r);
															}
															goto LA43_;
															LA46_: ;
															{
																tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg T49_;
																NimStringDesc* T52_;
																NimStringDesc* T53_;
																T49_ = (tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg)0;
																T49_ = aliasesCached__injectdestructors_121((&cache), cfg_2->data[r].n, cfg_2->data[pc].n);
																if (!!((T49_ == ((tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg) 1)))) goto LA50_;
																T52_ = NIM_NIL;
																T53_ = NIM_NIL;
																T53_ = dollar___systemZdollars_3(pc);
																T52_ = rawNewString((T53_ ? T53_->Sup.len : 0) + 1);
appendChar(T52_, 10);
appendString(T52_, T53_);
																commenteq___ast_1361(cfg_2->data[r].n, T52_);
																excl__reorder_264((&(*states->data[pc]).potentialLastReads), r);
																incl__pureZcollectionsZintsets_55((&(*states->data[pc]).notLastReads), r);
															}
															goto LA43_;
															LA50_: ;
															LA43_: ;
														}
														LA40_: ;
														j += ((NI) 1);
														w = (NU)((NU32)(w) >> (NU32)(((NI) 1)));
													} LA37: ;
												}
												i_4 += ((NI) 1);
											} LA35: ;
										}
										r_2 = (*r_2).next;
									} LA33: ;
								}
							}
							LA13_: ;
						}
						alreadySeenThisNode = NIM_FALSE;
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* s;
							tyObject_HashSet__YByQS2i9cOlUupxNMscAMwQ colontmp__2;
							NI length;
							s = NIM_NIL;
							nimZeroMem((void*)(&colontmp__2), sizeof(tyObject_HashSet__YByQS2i9cOlUupxNMscAMwQ));
							colontmp__2.data = (*states->data[pc]).alreadySeen.data;
							colontmp__2.counter = (*states->data[pc]).alreadySeen.counter;
							length = len__injectdestructors_2169(colontmp__2);
							{
								NI h;
								NI colontmp__3;
								NI T56_;
								NI res;
								h = (NI)0;
								colontmp__3 = (NI)0;
								T56_ = ((colontmp__2.data ? colontmp__2.data->Sup.len : 0)-1);
								colontmp__3 = T56_;
								res = ((NI) 0);
								{
									while (1) {
										if (!(res <= colontmp__3)) goto LA58;
										h = res;
										{
											NIM_BOOL T61_;
											T61_ = (NIM_BOOL)0;
											T61_ = isFilled__pureZcollectionsZsets_38(colontmp__2.data->data[h].Field0);
											if (!T61_) goto LA62_;
											s = colontmp__2.data->data[h].Field1;
											{
												NIM_BOOL T66_;
												tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg T67_;
												tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg T69_;
												T66_ = (NIM_BOOL)0;
												T67_ = (tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg)0;
												T67_ = aliasesCached__injectdestructors_121((&cache), cfg_2->data[pc].n, s);
												T66_ = !((T67_ == ((tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg) 1)));
												if (T66_) goto LA68_;
												T69_ = (tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg)0;
												T69_ = aliasesCached__injectdestructors_121((&cache), s, cfg_2->data[pc].n);
												T66_ = !((T69_ == ((tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg) 1)));
												LA68_: ;
												if (!T66_) goto LA70_;
												alreadySeenThisNode = NIM_TRUE;
												goto LA54;
											}
											LA70_: ;
										}
										LA62_: ;
										res += ((NI) 1);
									} LA58: ;
								}
							}
						} LA54: ;
						{
							if (!alreadySeenThisNode) goto LA74_;
							(*cfg_2->data[pc].n).flags &= ~(((NU32)1) << ((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 22)) & 31));
						}
						goto LA72_;
						LA74_: ;
						{
							(*cfg_2->data[pc].n).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 22)) & 31);
						}
						LA72_: ;
						incl__injectdestructors_2395((&(*states->data[pc]).alreadySeen), cfg_2->data[pc].n);
						T77_ = NIM_NIL;
						T77_ = states->data[pc];
						asgnRef((void**) (&states->data[pc]), NIM_NIL);
						mergeStates__injectdestructors_1944(&states->data[(NI)(pc + ((NI) 1))], T77_);
					}
					break;
					case ((tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ) 3):
					{
						tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA potentialLastReadsCopy_2;
						tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw* T119_;
						nimZeroMem((void*)(&potentialLastReadsCopy_2), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
						genericAssign((void*)(&potentialLastReadsCopy_2), (void*)(&(*states->data[pc]).potentialLastReads), (&NTIpackedset__IhxwDBRi51nGrosBGFKcsA_));
						{
							NI r_3;
							r_3 = (NI)0;
							{
								if (!(potentialLastReadsCopy_2.elems <= ((NI) 34))) goto LA82_;
								{
									NI i_5;
									NI i_6;
									i_5 = (NI)0;
									i_6 = ((NI) 0);
									{
										while (1) {
											if (!(i_6 < potentialLastReadsCopy_2.elems)) goto LA86;
											i_5 = i_6;
											r_3 = potentialLastReadsCopy_2.a[(i_5)- 0];
											{
												NIM_BOOL T89_;
												tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg T90_;
												tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg T92_;
												NimStringDesc* T95_;
												NimStringDesc* T96_;
												T89_ = (NIM_BOOL)0;
												T90_ = (tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg)0;
												T90_ = aliasesCached__injectdestructors_121((&cache), cfg_2->data[pc].n, cfg_2->data[r_3].n);
												T89_ = !((T90_ == ((tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg) 1)));
												if (T89_) goto LA91_;
												T92_ = (tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg)0;
												T92_ = aliasesCached__injectdestructors_121((&cache), cfg_2->data[r_3].n, cfg_2->data[pc].n);
												T89_ = !((T92_ == ((tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg) 1)));
												LA91_: ;
												if (!T89_) goto LA93_;
												T95_ = NIM_NIL;
												T96_ = NIM_NIL;
												T96_ = dollar___systemZdollars_3(pc);
												T95_ = rawNewString((T96_ ? T96_->Sup.len : 0) + 1);
appendChar(T95_, 10);
appendString(T95_, T96_);
												commenteq___ast_1361(cfg_2->data[r_3].n, T95_);
												excl__reorder_264((&(*states->data[pc]).potentialLastReads), r_3);
												incl__pureZcollectionsZintsets_55((&(*states->data[pc]).notLastReads), r_3);
											}
											LA93_: ;
											i_6 += ((NI) 1);
										} LA86: ;
									}
								}
							}
							goto LA80_;
							LA82_: ;
							{
								tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* r_4;
								r_4 = potentialLastReadsCopy_2.head;
								{
									while (1) {
										NI i_7;
										if (!!((r_4 == ((tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA*) NIM_NIL)))) goto LA99;
										i_7 = ((NI) 0);
										{
											while (1) {
												NU w_2;
												NI j_2;
												if (!(i_7 <= ((NI) 15))) goto LA101;
												w_2 = (*r_4).bits[(i_7)- 0];
												j_2 = ((NI) 0);
												{
													while (1) {
														if (!!((w_2 == ((NU) 0)))) goto LA103;
														{
															NI T108_;
															if (!!(((NU)(w_2 & ((NU) 1)) == ((NU) 0)))) goto LA106_;
															T108_ = (NI)0;
															T108_ = pluspercent___system_696((NI)((NU32)(i_7) << (NU32)(((NI) 5))), j_2);
															r_3 = (NI)((NI)((NU32)((*r_4).key) << (NU32)(((NI) 9))) | T108_);
															{
																NIM_BOOL T111_;
																tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg T112_;
																tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg T114_;
																NimStringDesc* T117_;
																NimStringDesc* T118_;
																T111_ = (NIM_BOOL)0;
																T112_ = (tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg)0;
																T112_ = aliasesCached__injectdestructors_121((&cache), cfg_2->data[pc].n, cfg_2->data[r_3].n);
																T111_ = !((T112_ == ((tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg) 1)));
																if (T111_) goto LA113_;
																T114_ = (tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg)0;
																T114_ = aliasesCached__injectdestructors_121((&cache), cfg_2->data[r_3].n, cfg_2->data[pc].n);
																T111_ = !((T114_ == ((tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg) 1)));
																LA113_: ;
																if (!T111_) goto LA115_;
																T117_ = NIM_NIL;
																T118_ = NIM_NIL;
																T118_ = dollar___systemZdollars_3(pc);
																T117_ = rawNewString((T118_ ? T118_->Sup.len : 0) + 1);
appendChar(T117_, 10);
appendString(T117_, T118_);
																commenteq___ast_1361(cfg_2->data[r_3].n, T117_);
																excl__reorder_264((&(*states->data[pc]).potentialLastReads), r_3);
																incl__pureZcollectionsZintsets_55((&(*states->data[pc]).notLastReads), r_3);
															}
															LA115_: ;
														}
														LA106_: ;
														j_2 += ((NI) 1);
														w_2 = (NU)((NU32)(w_2) >> (NU32)(((NI) 1)));
													} LA103: ;
												}
												i_7 += ((NI) 1);
											} LA101: ;
										}
										r_4 = (*r_4).next;
									} LA99: ;
								}
							}
							LA80_: ;
						}
						incl__pureZcollectionsZintsets_55((&(*states->data[pc]).potentialLastReads), pc);
						incl__injectdestructors_2395((&(*states->data[pc]).alreadySeen), cfg_2->data[pc].n);
						T119_ = NIM_NIL;
						T119_ = states->data[pc];
						asgnRef((void**) (&states->data[pc]), NIM_NIL);
						mergeStates__injectdestructors_1944(&states->data[(NI)(pc + ((NI) 1))], T119_);
					}
					break;
					case ((tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ) 0):
					{
						tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw* T121_;
						T121_ = NIM_NIL;
						T121_ = states->data[pc];
						asgnRef((void**) (&states->data[pc]), NIM_NIL);
						mergeStates__injectdestructors_1944(&states->data[(NI)(pc + cfg_2->data[pc].dest)], T121_);
					}
					break;
					case ((tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ) 1):
					{
						tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw* copy;
						tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw* T123_;
						tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw* T124_;
						T123_ = NIM_NIL;
						T123_ = (tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw*) newObj((&NTIstate__xMu9aauGSW9bIwiWptXaXX0Q_), sizeof(tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw));
						copy = T123_;
						genericAssign((void*)(&(*copy).lastReads), (void*)(&(*states->data[pc]).lastReads), (&NTIpackedset__IhxwDBRi51nGrosBGFKcsA_));
						genericAssign((void*)(&(*copy).potentialLastReads), (void*)(&(*states->data[pc]).potentialLastReads), (&NTIpackedset__IhxwDBRi51nGrosBGFKcsA_));
						genericAssign((void*)(&(*copy).notLastReads), (void*)(&(*states->data[pc]).notLastReads), (&NTIpackedset__IhxwDBRi51nGrosBGFKcsA_));
						genericSeqAssign((&(*copy).alreadySeen.data), (*states->data[pc]).alreadySeen.data, (&NTIkeyvaluepairseq__Y6pVop4P8VSwSorRqc2aQA_));
						(*copy).alreadySeen.counter = (*states->data[pc]).alreadySeen.counter;
						mergeStates__injectdestructors_1944(&states->data[(NI)(pc + cfg_2->data[pc].dest)], copy);
						T124_ = NIM_NIL;
						T124_ = states->data[pc];
						asgnRef((void**) (&states->data[pc]), NIM_NIL);
						mergeStates__injectdestructors_1944(&states->data[(NI)(pc + ((NI) 1))], T124_);
					}
					break;
					}
				}
				LA9_: ;
				i += ((NI) 1);
			} LA6: ;
		}
	}
	nimZeroMem((void*)(&lastReads), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
	T125_ = (tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw**)0;
	T125_ = X5BX5D___injectdestructors_4096((states) ? (states->data) : NIM_NIL, (states ? states->Sup.len : 0), ((NI) 1));
	T126_ = (tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw**)0;
	T126_ = X5BX5D___injectdestructors_4096((states) ? (states->data) : NIM_NIL, (states ? states->Sup.len : 0), ((NI) 1));
	nimZeroMem((void*)(&T127_), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
	plus___injectdestructors_4122((&(*(*T125_)).lastReads), (&(*(*T126_)).potentialLastReads), (&T127_));
	T128_ = (tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw**)0;
	T128_ = X5BX5D___injectdestructors_4096((states) ? (states->data) : NIM_NIL, (states ? states->Sup.len : 0), ((NI) 1));
	nimZeroMem((void*)(&T129_), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
	minus___sem_4128((&T127_), (&(*(*T128_)).notLastReads), (&T129_));
	nimCopyMem((void*)(&lastReads), (NIM_CONST void*)(&T129_), sizeof(lastReads));
	nimZeroMem((void*)(&lastReadTable), sizeof(tyObject_Table__8b8GbeV6waqgbRlb9aUvYNQ));
	{
		NI position;
		tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg node;
		NI i_8;
		NI L;
		NI T131_;
		position = (NI)0;
		nimZeroMem((void*)(&node), sizeof(tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg));
		i_8 = ((NI) 0);
		T131_ = (cfg_2 ? cfg_2->Sup.len : 0);
		L = T131_;
		{
			while (1) {
				if (!(i_8 < L)) goto LA133;
				position = i_8;
				nimCopyMem((void*)(&node), (NIM_CONST void*)(&cfg_2->data[i_8]), sizeof(node));
				{
					tySequence__qwqHTkRvwhrRyENtudHQ7g* T138_;
					tySequence__qwqHTkRvwhrRyENtudHQ7g** T139_;
					NI T140_;
					if (!(node.kind == ((tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ) 3))) goto LA136_;
					T138_ = NIM_NIL;
					T138_ = NIM_NIL;
					T139_ = (tySequence__qwqHTkRvwhrRyENtudHQ7g**)0;
					T139_ = mgetOrPut__injectdestructors_4251((&lastReadTable), node.n, T138_);
					unsureAsgnRef((void**) (&(*T139_)), (tySequence__qwqHTkRvwhrRyENtudHQ7g*) incrSeqV3((TGenericSeq*)((*T139_)), (&NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_)));
					T140_ = (*T139_)->Sup.len++;
					(*T139_)->data[T140_] = position;
				}
				LA136_: ;
				i_8 += ((NI) 1);
			} LA133: ;
		}
	}
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* node_2;
		tySequence__qwqHTkRvwhrRyENtudHQ7g* positions;
		NI L_2;
		node_2 = NIM_NIL;
		positions = NIM_NIL;
		L_2 = len__injectdestructors_5745(lastReadTable);
		{
			NI h_2;
			NI colontmp__4;
			NI T143_;
			NI res_2;
			h_2 = (NI)0;
			colontmp__4 = (NI)0;
			T143_ = ((lastReadTable.data ? lastReadTable.data->Sup.len : 0)-1);
			colontmp__4 = T143_;
			res_2 = ((NI) 0);
			{
				while (1) {
					if (!(res_2 <= colontmp__4)) goto LA145;
					h_2 = res_2;
					{
						NIM_BOOL T148_;
						T148_ = (NIM_BOOL)0;
						T148_ = isFilled__pureZcollectionsZtables_31(lastReadTable.data->data[h_2].Field0);
						if (!T148_) goto LA149_;
						node_2 = lastReadTable.data->data[h_2].Field1;
						positions = lastReadTable.data->data[h_2].Field2;
						{
							{
								NI* p;
								NI i_9;
								NI L_3;
								NI T153_;
								p = (NI*)0;
								i_9 = ((NI) 0);
								T153_ = (positions ? positions->Sup.len : 0);
								L_3 = T153_;
								{
									while (1) {
										if (!(i_9 < L_3)) goto LA155;
										p = (&positions->data[i_9]);
										{
											NIM_BOOL T158_;
											T158_ = (NIM_BOOL)0;
											T158_ = contains__astalgo_3489((&lastReads), (*p));
											if (!!(T158_)) goto LA159_;
											goto LA151;
										}
										LA159_: ;
										i_9 += ((NI) 1);
									} LA155: ;
								}
							}
							(*node_2).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 21)) & 31);
						} LA151: ;
					}
					LA149_: ;
					res_2 += ((NI) 1);
				} LA145: ;
			}
		}
	}
}
static N_INLINE(NI, len__ast_3151)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	NI T1_;
	result = (NI)0;
	T1_ = ((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0);
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL, isEmptyType__ast_4754)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (t == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
	if (T1_) goto LA2_;
	T1_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 63) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7));
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, nestedScope__injectdestructors_72)(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* parent, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* Result) {
	unsureAsgnRef((void**)&(*Result).vars, NIM_NIL);
	unsureAsgnRef((void**)&(*Result).wasMoved, NIM_NIL);
	unsureAsgnRef((void**)&(*Result).final, NIM_NIL);
	(*Result).needsTry = 0;
	(*Result).parent = NIM_NIL;
	unsureAsgnRef((void**) (&(*Result).vars), NIM_NIL);
	unsureAsgnRef((void**) (&(*Result).wasMoved), NIM_NIL);
	unsureAsgnRef((void**) (&(*Result).final), NIM_NIL);
	(*Result).needsTry = NIM_FALSE;
	(*Result).parent = parent;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, processScope__injectdestructors_7018)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ret) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*ret).info);
	{
		NI T3_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSection;
		T3_ = ((*s).vars ? (*s).vars->Sup.len : 0);
		if (!(((NI) 0) < T3_)) goto LA4_;
		varSection = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*ret).info);
		{
			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** tmp;
			NI i;
			NI L;
			NI T7_;
			tmp = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
			i = ((NI) 0);
			T7_ = ((*s).vars ? (*s).vars->Sup.len : 0);
			L = T7_;
			{
				while (1) {
					tyArray__T6RKPw8xfAeNaoei9aZGzXg T10_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T11_;
					if (!(i < L)) goto LA9;
					tmp = &(*s).vars->data[i];
					nimZeroMem((void*)T10_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
					T10_[0] = newSymNode__ast_3691((*tmp));
					T10_[1] = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*ret).info);
					T10_[2] = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*ret).info);
					T11_ = NIM_NIL;
					T11_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T10_, 3);
					add__ast_4772(varSection, T11_);
					i += ((NI) 1);
				} LA9: ;
			}
		}
		add__ast_4772(result, varSection);
	}
	LA4_: ;
	{
		NIM_BOOL T14_;
		NI T15_;
		NI T17_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSection;
		T14_ = (NIM_BOOL)0;
		T15_ = ((*s).wasMoved ? (*s).wasMoved->Sup.len : 0);
		T14_ = (((NI) 0) < T15_);
		if (T14_) goto LA16_;
		T17_ = ((*s).final ? (*s).final->Sup.len : 0);
		T14_ = (((NI) 0) < T17_);
		LA16_: ;
		if (!T14_) goto LA18_;
		finSection = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*ret).info);
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** m;
			NI i_2;
			NI L_2;
			NI T21_;
			m = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
			i_2 = ((NI) 0);
			T21_ = ((*s).wasMoved ? (*s).wasMoved->Sup.len : 0);
			L_2 = T21_;
			{
				while (1) {
					if (!(i_2 < L_2)) goto LA23;
					m = &(*s).wasMoved->data[i_2];
					add__ast_4772(finSection, (*m));
					i_2 += ((NI) 1);
				} LA23: ;
			}
		}
		{
			NI i_3;
			NI colontmp_;
			NI T25_;
			NI res;
			i_3 = (NI)0;
			colontmp_ = (NI)0;
			T25_ = (((*s).final ? (*s).final->Sup.len : 0)-1);
			colontmp_ = T25_;
			res = colontmp_;
			{
				while (1) {
					if (!(((NI) 0) <= res)) goto LA27;
					i_3 = res;
					add__ast_4772(finSection, (*s).final->data[i_3]);
					res -= ((NI) 1);
				} LA27: ;
			}
		}
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T32_;
			if (!(*s).needsTry) goto LA30_;
			T32_ = NIM_NIL;
			T32_ = newTryFinally__lowerings_207(ret, finSection);
			add__ast_4772(result, T32_);
		}
		goto LA28_;
		LA30_: ;
		{
			add__ast_4772(result, ret);
			add__ast_4772(result, finSection);
		}
		LA28_: ;
	}
	goto LA12_;
	LA18_: ;
	{
		add__ast_4772(result, ret);
	}
	LA12_: ;
	{
		NIM_BOOL T39_;
		if (!!(((*s).parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL)))) goto LA37_;
		T39_ = (NIM_BOOL)0;
		T39_ = (*(*s).parent).needsTry;
		if (T39_) goto LA40_;
		T39_ = (*s).needsTry;
		LA40_: ;
		(*(*s).parent).needsTry = T39_;
	}
	LA37_: ;
	return result;
}
static N_INLINE(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g, nextSymId__ast_3099)(tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* x) {
	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g result;
	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g));
	(*x).symId += ((NI) 1);
	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g));
	result.module = (*x).module;
	result.item = (*x).symId;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getTemp__injectdestructors_61)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
	tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T1_;
	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T2_;
	NI T3_;
	result = NIM_NIL;
	T1_ = NIM_NIL;
	T1_ = getIdent__idents_143((*(*c).graph).cache, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_8));
	T2_ = nextSymId__ast_3099((*c).idgen);
	sym = newSym__ast_3405(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 5), T1_, T2_, (*c).owner, info, 0);
	asgnRef((void**) (&(*sym).typ), typ);
	unsureAsgnRef((void**) (&(*s).vars), (tySequence__eHqUwlHGGaPw0TDPDeL79cQ*) incrSeqV3((TGenericSeq*)((*s).vars), (&NTIseqLpsymT__eHqUwlHGGaPw0TDPDeL79cQ_)));
	T3_ = (*s).vars->Sup.len++;
	asgnRef((void**) (&(*s).vars->data[T3_]), sym);
	result = newSymNode__ast_3691(sym);
	return result;
}
static N_INLINE(NIM_BOOL, hasDestructor__injectdestructors_49)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = !(((IL64(2147483664) & (*t).flags) == 0));
	return result;
}
static N_INLINE(NIM_BOOL, isGenericParams__ast_4591)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = !((n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
	if (!(T1_)) goto LA2_;
	T1_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 75));
	LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL, isGenericRoutine__ast_4602)(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 == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
	if (!(T2_)) goto LA3_;
	T2_ = ((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52) || (*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159));
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T1_ = isGenericParams__ast_4591((*n)._kind_6.sons->data[((NI) 2)]);
	LA4_: ;
	result = T1_;
	return result;
}
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size) {
	int result;
	result = (int)0;
	result = memcmp(a, b, ((size_t) (size)));
	return result;
}
static N_INLINE(NIM_BOOL, equalMem__system_1735)(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__system_1735(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
		goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, startsWith__pureZstrutils_1246)(NimStringDesc* s, NIM_CHAR prefix) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (((NI) 0) < (s ? s->Sup.len : 0));
	if (!(T1_)) goto LA2_;
	T1_ = ((NU8)(s->data[((NI) 0)]) == (NU8)(prefix));
	LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(NimStringDesc*, X5BX5D___pureZunicode_3215)(NimStringDesc* s, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA x) {
	NimStringDesc* result;
	NI a;
	NI L;
	result = NIM_NIL;
	a = x.a;
	L = (NI)((NI)((NI)((s ? s->Sup.len : 0) - x.b) - a) + ((NI) 1));
	result = mnewString(((NI) (L)));
	{
		NI i;
		NI i_2;
		i = (NI)0;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < L)) goto LA3;
				i = i_2;
				result->data[i] = s->data[(NI)(i + a)];
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	return result;
}
static N_INLINE(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA, dotdot___stdZenumutils_80)(NI a, NI b) {
	tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA result;
	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA));
	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA));
	result.a = a;
	result.b = b;
	return result;
}
static N_INLINE(NIM_BOOL, isSinkType__ast_5020)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46));
	if (T1_) goto LA2_;
	T1_ = (((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 4))&63U)))!=0);
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, checkForErrorPragma__injectdestructors_6382)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, NimStringDesc* opname) {
	NimStringDesc* m;
	NimStringDesc* T1_;
	NimStringDesc* T2_;
	T1_ = NIM_NIL;
	T2_ = NIM_NIL;
	T2_ = typeToString__types_50(t, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
	T1_ = rawNewString((opname ? opname->Sup.len : 0) + (T2_ ? T2_->Sup.len : 0) + 31);
appendString(T1_, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_16));
appendString(T1_, opname);
appendString(T1_, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_17));
appendString(T1_, T2_);
appendString(T1_, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_18));
	m = T1_;
	{
		NIM_BOOL T5_;
		NIM_BOOL T6_;
		NimStringDesc* T11_;
		T5_ = (NIM_BOOL)0;
		T6_ = (NIM_BOOL)0;
		T6_ = eqStrings(opname, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_19));
		if (T6_) goto LA7_;
		T6_ = eqStrings(opname, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_20));
		LA7_: ;
		T5_ = T6_;
		if (!(T5_)) goto LA8_;
		T5_ = !((ri == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
		LA8_: ;
		if (!T5_) goto LA9_;
		m = resizeString(m, 53);
appendString(m, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_21));
		T11_ = NIM_NIL;
		T11_ = renderTree__renderer_46(ri, 0);
		m = resizeString(m, (T11_ ? T11_->Sup.len : 0) + 0);
appendString(m, T11_);
		m = addChar(m, 39);
		{
			NimStringDesc* T14_;
			NIM_BOOL T15_;
			NimStringDesc* T18_;
			tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA T19_;
			NimStringDesc* T20_;
			NI T21_;
			NimStringDesc* T22_;
			T14_ = NIM_NIL;
			T14_ = comment__ast_993(ri);
			T15_ = (NIM_BOOL)0;
			T15_ = startsWith__pureZstrutils_1246(T14_, 10);
			if (!T15_) goto LA16_;
			m = resizeString(m, 29);
appendString(m, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_22));
			T18_ = NIM_NIL;
			T18_ = comment__ast_993(ri);
			T19_ = dotdot___stdZenumutils_80(((NI) 1), ((NI) 1));
			T20_ = NIM_NIL;
			T20_ = X5BX5D___pureZunicode_3215(T18_, T19_);
			T21_ = (NI)0;
			T21_ = nsuParseInt(T20_);
			T22_ = NIM_NIL;
			T22_ = dollar___msgs_624((*(*c).graph).config, (*(*c).g->data[T21_].n).info);
			m = resizeString(m, (T22_ ? T22_->Sup.len : 0) + 0);
appendString(m, T22_);
		}
		goto LA12_;
		LA16_: ;
		{
			NIM_BOOL T24_;
			NIM_BOOL T25_;
			NIM_BOOL T28_;
			NimStringDesc* T31_;
			T24_ = (NIM_BOOL)0;
			T25_ = (NIM_BOOL)0;
			T25_ = ((*ri).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T25_)) goto LA26_;
			T25_ = ((*(*ri)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
			LA26_: ;
			T24_ = T25_;
			if (!(T24_)) goto LA27_;
			T28_ = (NIM_BOOL)0;
			T28_ = isSinkType__ast_5020((*(*ri)._kind_4.sym).typ);
			T24_ = !(T28_);
			LA27_: ;
			if (!T24_) goto LA29_;
			m = resizeString(m, 14);
appendString(m, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_23));
			T31_ = NIM_NIL;
			T31_ = renderTree__renderer_46(ri, 0);
			m = resizeString(m, (T31_ ? T31_->Sup.len : 0) + 0);
appendString(m, T31_);
			m = resizeString(m, 19);
appendString(m, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_24));
		}
		goto LA12_;
		LA29_: ;
		LA12_: ;
	}
	LA9_: ;
	m = resizeString(m, 11);
appendString(m, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_25));
	m = resizeString(m, ((*(*(*c).owner).name).s ? (*(*(*c).owner).name).s->Sup.len : 0) + 0);
appendString(m, (*(*(*c).owner).name).s);
	liMessage__msgs_1118((*(*c).graph).config, (*ri).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), m, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__dJ4qrEWDmqGA8FWJ0TYKJQ_26, NIM_FALSE);
}
static N_INLINE(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g, nextTypeId__ast_3118)(tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* x) {
	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g result;
	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g));
	(*x).typeId_0 += ((NI) 1);
	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g));
	result.module = (*x).module;
	result.item = (*x).typeId_0;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, makePtrType__injectdestructors_6418)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* baseType) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T1_;
	result = NIM_NIL;
	T1_ = nextTypeId__ast_3118((*c).idgen);
	result = newType__ast_3871(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21), T1_, (*c).owner);
	addSonSkipIntLit__magicsys_136(result, baseType, (*c).idgen);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genOp__injectdestructors_6422)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* op, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* addrExp;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* T1_;
	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T2_;
	result = NIM_NIL;
	T1_ = NIM_NIL;
	T1_ = makePtrType__injectdestructors_6418(c, (*dest).typ);
	addrExp = newNodeIT__ast_3338(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64), (*dest).info, T1_);
	add__ast_4772(addrExp, dest);
	nimZeroMem((void*)T2_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
	T2_[0] = newSymNode__ast_3691(op);
	T2_[1] = addrExp;
	result = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), T2_, 2);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genOp__injectdestructors_6432)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg kind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* op;
	result = NIM_NIL;
	op = getAttachedOp__modulegraphs_4024((*c).graph, t, kind);
	{
		NIM_BOOL T3_;
		tyArray__qtqsWM5aXmcpMIVmvq3kAA h;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* canon;
		T3_ = (NIM_BOOL)0;
		T3_ = (op == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL));
		if (T3_) goto LA4_;
		T3_ = isGenericRoutine__ast_4602((*op).ast);
		LA4_: ;
		if (!T3_) goto LA5_;
		nimZeroMem((void*)h, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
		hashType__sighashes_462(t, 50, h);
		canon = getOrDefault__liftdestructors_977((*(*c).graph).canonTypes, h);
		{
			if (!!((canon == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA9_;
			op = getAttachedOp__modulegraphs_4024((*c).graph, canon, kind);
		}
		LA9_: ;
	}
	LA5_: ;
	{
		NimStringDesc* T15_;
		NimStringDesc* T16_;
		if (!(op == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))) goto LA13_;
		T15_ = NIM_NIL;
		T16_ = NIM_NIL;
		T16_ = typeToString__types_50(t, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
		T15_ = rawNewString((AttachedOpToStr__ast_3823[(kind)- 0] ? AttachedOpToStr__ast_3823[(kind)- 0]->Sup.len : 0) + (T16_ ? T16_->Sup.len : 0) + 47);
appendString(T15_, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_10));
appendString(T15_, AttachedOpToStr__ast_3823[(kind)- 0]);
appendString(T15_, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_11));
appendString(T15_, T16_);
		liMessage__msgs_1118((*(*c).graph).config, (*dest).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T15_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__dJ4qrEWDmqGA8FWJ0TYKJQ_12, NIM_FALSE);
	}
	goto LA11_;
	LA13_: ;
	{
		NIM_BOOL T18_;
		NimStringDesc* T21_;
		T18_ = (NIM_BOOL)0;
		T18_ = isGenericRoutine__ast_4602((*op).ast);
		if (!T18_) goto LA19_;
		T21_ = NIM_NIL;
		T21_ = rawNewString((AttachedOpToStr__ast_3823[(kind)- 0] ? AttachedOpToStr__ast_3823[(kind)- 0]->Sup.len : 0) + 38);
appendString(T21_, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_10));
appendString(T21_, AttachedOpToStr__ast_3823[(kind)- 0]);
appendString(T21_, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_14));
		liMessage__msgs_1118((*(*c).graph).config, (*dest).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T21_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__dJ4qrEWDmqGA8FWJ0TYKJQ_15, NIM_FALSE);
	}
	goto LA11_;
	LA19_: ;
	LA11_: ;
	{
		if (!(((*op).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 24))&63U)))!=0)) goto LA24_;
		checkForErrorPragma__injectdestructors_6382((&(*c)), t, ri, AttachedOpToStr__ast_3823[(kind)- 0]);
	}
	LA24_: ;
	result = genOp__injectdestructors_6422(c, op, dest);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genDestroy__injectdestructors_6529)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
	result = NIM_NIL;
	t = skipTypes__ast_3710((*dest).typ, TM__dJ4qrEWDmqGA8FWJ0TYKJQ_9);
	result = genOp__injectdestructors_6432(c, t, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0), dest, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameConstant__injectdestructors_8438)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*a).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*a).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22));
	if (!(T1_)) goto LA2_;
	T1_ = ((*a)._kind_1.intVal == (*b)._kind_1.intVal);
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameLocation__injectdestructors_8434)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3) || (*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45) || (*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46) || (*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42));
		if (!(T3_)) goto LA4_;
		T3_ = ((*b).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3) || (*b).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45) || (*b).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46) || (*b).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42));
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			if (!((*a).kind == (*b).kind)) goto LA9_;
			switch ((*a).kind) {
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
			{
				result = ((*a)._kind_4.sym == (*b)._kind_4.sym);
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46):
			{
				NIM_BOOL T13_;
				T13_ = (NIM_BOOL)0;
				T13_ = sameLocation__injectdestructors_8434((*a)._kind_6.sons->data[((NI) 0)], (*b)._kind_6.sons->data[((NI) 0)]);
				if (!(T13_)) goto LA14_;
				T13_ = sameLocation__injectdestructors_8434((*a)._kind_6.sons->data[((NI) 1)], (*b)._kind_6.sons->data[((NI) 1)]);
				LA14_: ;
				result = T13_;
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = sameLocation__injectdestructors_8434((*a)._kind_6.sons->data[((NI) 0)], (*b)._kind_6.sons->data[((NI) 0)]);
				if (!(T16_)) goto LA17_;
				T16_ = sameConstant__injectdestructors_8438((*a)._kind_6.sons->data[((NI) 1)], (*b)._kind_6.sons->data[((NI) 1)]);
				LA17_: ;
				result = T16_;
			}
			break;
			default:
			{
				result = NIM_FALSE;
			}
			break;
			}
		}
		goto LA7_;
		LA9_: ;
		{
			result = NIM_FALSE;
		}
		LA7_: ;
	}
	goto LA1_;
	LA5_: ;
	{
		switch ((*a).kind) {
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
		{
			result = sameLocation__injectdestructors_8434(b, a);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 63):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65):
		{
			result = sameLocation__injectdestructors_8434((*a)._kind_6.sons->data[((NI) 0)], b);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 67):
		{
			result = sameLocation__injectdestructors_8434((*a)._kind_6.sons->data[((NI) 0)], b);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
		{
			result = sameLocation__injectdestructors_8434((*a)._kind_6.sons->data[((NI) 1)], b);
		}
		break;
		default:
		{
			result = NIM_FALSE;
		}
		break;
		}
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isCursor__injectdestructors_6371)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		result = (((*(*n)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 41))&63U)))!=0);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
	{
		result = isCursor__injectdestructors_6371((*n)._kind_6.sons->data[((NI) 1)]);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46):
	{
		result = isCursor__injectdestructors_6371((*n)._kind_6.sons->data[((NI) 0)]);
	}
	break;
	default:
	{
		result = NIM_FALSE;
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isFirstWrite__injectdestructors_6122)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c) {
	NIM_BOOL result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* m;
	result = (NIM_BOOL)0;
	m = skipConvDfa__dfa_787(n);
	result = (((*m).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 22))&31U)))!=0);
	return result;
}
static N_INLINE(NIM_BOOL, isNoInit__injectdestructors_6555)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*dest).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
	if (!(T1_)) goto LA2_;
	T1_ = (((*(*dest)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 14))&63U)))!=0);
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genSink__injectdestructors_6566)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, NIM_BOOL isDecl) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NIM_BOOL T6_;
		NIM_BOOL T7_;
		NIM_BOOL T8_;
		NIM_BOOL T9_;
		NIM_BOOL T14_;
		tyArray__AB6yfoUgfWM2NtGe9bzkCmw T19_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = ((*c).inLoopCond == ((NI) 0));
		if (!(T4_)) goto LA5_;
		T6_ = (NIM_BOOL)0;
		T7_ = (NIM_BOOL)0;
		T8_ = (NIM_BOOL)0;
		T9_ = (NIM_BOOL)0;
		T9_ = ((*dest).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
		if (!(T9_)) goto LA10_;
		T9_ = ((*(*dest)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 5));
		LA10_: ;
		T8_ = T9_;
		if (!(T8_)) goto LA11_;
		T8_ = ((*(*(*dest)._kind_4.sym).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18));
		LA11_: ;
		T7_ = T8_;
		if (T7_) goto LA12_;
		T7_ = isDecl;
		LA12_: ;
		T6_ = T7_;
		if (T6_) goto LA13_;
		T14_ = (NIM_BOOL)0;
		T14_ = isAnalysableFieldAccess__dfa_910(dest, (*c).owner);
		if (!(T14_)) goto LA15_;
		T14_ = isFirstWrite__injectdestructors_6122(dest, c);
		LA15_: ;
		T6_ = T14_;
		LA13_: ;
		T4_ = T6_;
		LA5_: ;
		T3_ = T4_;
		if (T3_) goto LA16_;
		T3_ = isNoInit__injectdestructors_6555(dest);
		LA16_: ;
		if (!T3_) goto LA17_;
		nimZeroMem((void*)T19_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
		T19_[0] = dest;
		T19_[1] = ri;
		result = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T19_, 2);
	}
	goto LA1_;
	LA17_: ;
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
		t = skipTypes__ast_3710((*dest).typ, TM__dJ4qrEWDmqGA8FWJ0TYKJQ_9);
		{
			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T23_;
			T23_ = NIM_NIL;
			T23_ = getAttachedOp__modulegraphs_4024((*c).graph, t, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 2));
			if (!!((T23_ == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA24_;
			result = genOp__injectdestructors_6432(c, t, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 2), dest, ri);
			add__ast_4772(result, ri);
		}
		goto LA21_;
		LA24_: ;
		{
			tyArray__AB6yfoUgfWM2NtGe9bzkCmw T27_;
			tyArray__AB6yfoUgfWM2NtGe9bzkCmw T28_;
			nimZeroMem((void*)T27_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
			T27_[0] = genDestroy__injectdestructors_6529(c, dest);
			nimZeroMem((void*)T28_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
			T28_[0] = dest;
			T28_[1] = ri;
			T27_[1] = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T28_, 2);
			result = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T27_, 2);
		}
		LA21_: ;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isLastRead__injectdestructors_6105)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c) {
	NIM_BOOL result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* m;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	result = (NIM_BOOL)0;
	m = skipConvDfa__dfa_787(n);
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = ((*m).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
	if (!(T2_)) goto LA3_;
	T2_ = (((*(*m)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 45))&63U)))!=0);
	LA3_: ;
	T1_ = T2_;
	if (T1_) goto LA4_;
	T1_ = (((*m).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 21))&31U)))!=0);
	LA4_: ;
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL, isAtom__ast_4743)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 0) <= (*n).kind);
	if (!(T1_)) goto LA2_;
	T1_ = ((*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23));
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genWasMoved__injectdestructors_6741)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
	result = NIM_NIL;
	result = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info);
	T1_ = NIM_NIL;
	T1_ = createMagic__modulegraphs_9021((*c).graph, (*c).idgen, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_27), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 149));
	T2_ = NIM_NIL;
	T2_ = newSymNode__ast_3691(T1_);
	add__ast_4772(result, T2_);
	T3_ = NIM_NIL;
	T3_ = copyTree__ast_4406(n);
	add__ast_4772(result, T3_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genFieldAccessSideEffects__injectdestructors_8474)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, NIM_BOOL isDecl) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* temp;
	tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T1_;
	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T2_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* v;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tempAsNode;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* vpart;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* newAccess;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* snk;
	tyArray__T6RKPw8xfAeNaoei9aZGzXg T3_;
	result = NIM_NIL;
	T1_ = NIM_NIL;
	T1_ = getIdent__idents_143((*(*c).graph).cache, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_28));
	T2_ = nextSymId__ast_3099((*c).idgen);
	temp = newSym__ast_3405(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 9), T1_, T2_, (*c).owner, (*(*ri)._kind_6.sons->data[((NI) 1)]).info, 0);
	asgnRef((void**) (&(*temp).typ), (*(*ri)._kind_6.sons->data[((NI) 1)]).typ);
	v = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 100), (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
	tempAsNode = newSymNode__ast_3691(temp);
	vpart = newNodeI__ast_3320(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), (*tempAsNode).info, ((NI) 3));
	asgnRef((void**) (&(*vpart)._kind_6.sons->data[((NI) 0)]), tempAsNode);
	asgnRef((void**) (&(*vpart)._kind_6.sons->data[((NI) 1)]), newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*tempAsNode).info));
	asgnRef((void**) (&(*vpart)._kind_6.sons->data[((NI) 2)]), (*ri)._kind_6.sons->data[((NI) 1)]);
	add__ast_4772(v, vpart);
	newAccess = copyNode__ast_4311(ri);
	add__ast_4772(newAccess, (*ri)._kind_6.sons->data[((NI) 0)]);
	add__ast_4772(newAccess, tempAsNode);
	snk = genSink__injectdestructors_6566(c, dest, newAccess, isDecl);
	nimZeroMem((void*)T3_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
	T3_[0] = v;
	T3_[1] = snk;
	T3_[2] = genWasMoved__injectdestructors_6741(c, newAccess);
	result = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T3_, 3);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genMarkCyclic__injectdestructors_6614)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest) {
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
		if (!((*(*(*c).graph).config).selectedGC == ((tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw) 5))) goto LA3_;
		t = skipTypes__ast_3710((*dest).typ, TM__dJ4qrEWDmqGA8FWJ0TYKJQ_30);
		{
			NIM_BOOL T7_;
			T7_ = (NIM_BOOL)0;
			T7_ = cyclicType__liftdestructors_1367(t);
			if (!T7_) goto LA8_;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T14_;
				if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22))) goto LA12_;
				T14_ = NIM_NIL;
				T14_ = callCodegenProc__lowerings_641((*c).graph, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_31), (*dest).info, dest, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
				add__ast_4772(result, T14_);
			}
			goto LA10_;
			LA12_: ;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* xenv;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T16_;
				xenv = genBuiltin__liftdestructors_113((*c).graph, (*c).idgen, ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 156), ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_32), dest);
				asgnRef((void**) (&(*xenv).typ), getSysType__magicsys_60((*c).graph, (*dest).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 26)));
				T16_ = NIM_NIL;
				T16_ = callCodegenProc__lowerings_641((*c).graph, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_31), (*dest).info, xenv, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
				add__ast_4772(result, T16_);
			}
			LA10_: ;
		}
		LA8_: ;
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, destructiveMoveVar__injectdestructors_6762)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = hasDestructor__injectdestructors_49((&(*c)), (*n).typ);
		if (!!(T3_)) goto LA4_;
		result = copyTree__ast_4406(n);
	}
	goto LA1_;
	LA4_: ;
	{
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* temp;
		tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T7_;
		tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T8_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* v;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tempAsNode;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* vpart;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nn;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* wasMovedCall;
		result = newNodeIT__ast_3338(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*n).info, (*n).typ);
		T7_ = NIM_NIL;
		T7_ = getIdent__idents_143((*(*c).graph).cache, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_29));
		T8_ = nextSymId__ast_3099((*c).idgen);
		temp = newSym__ast_3405(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 9), T7_, T8_, (*c).owner, (*n).info, 0);
		asgnRef((void**) (&(*temp).typ), (*n).typ);
		v = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 100), (*n).info);
		tempAsNode = newSymNode__ast_3691(temp);
		vpart = newNodeI__ast_3320(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), (*tempAsNode).info, ((NI) 3));
		asgnRef((void**) (&(*vpart)._kind_6.sons->data[((NI) 0)]), tempAsNode);
		asgnRef((void**) (&(*vpart)._kind_6.sons->data[((NI) 1)]), newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*tempAsNode).info));
		asgnRef((void**) (&(*vpart)._kind_6.sons->data[((NI) 2)]), n);
		add__ast_4772(v, vpart);
		add__ast_4772(result, v);
		nn = skipConv__types_3589(n);
		genMarkCyclic__injectdestructors_6614(c, result, nn);
		wasMovedCall = genWasMoved__injectdestructors_6741(c, nn);
		add__ast_4772(result, wasMovedCall);
		add__ast_4772(result, tempAsNode);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genCopyNoCheck__injectdestructors_6636)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
	result = NIM_NIL;
	t = skipTypes__ast_3710((*dest).typ, TM__dJ4qrEWDmqGA8FWJ0TYKJQ_9);
	result = genOp__injectdestructors_6432(c, t, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 1), dest, ri);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genCopy__injectdestructors_6649)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
	result = NIM_NIL;
	t = (*dest).typ;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 4))&63U)))!=0);
		if (!(T3_)) goto LA4_;
		T3_ = !(((*ri).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23)));
		LA4_: ;
		if (!T3_) goto LA5_;
		checkForErrorPragma__injectdestructors_6382((&(*c)), t, ri, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_20));
	}
	LA5_: ;
	result = genCopyNoCheck__injectdestructors_6636(c, dest, ri);
	return result;
}
static N_INLINE(NIM_BOOL, isCriticalLink__injectdestructors_6593)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = !(((*dest).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, finishCopy__injectdestructors_6600)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, NIM_BOOL isFromSink) {
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
		if (!((*(*(*c).graph).config).selectedGC == ((tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw) 5))) goto LA3_;
		t = skipTypes__ast_3710((*dest).typ, TM__dJ4qrEWDmqGA8FWJ0TYKJQ_30);
		{
			NIM_BOOL T7_;
			NIM_BOOL T10_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T12_;
			T7_ = (NIM_BOOL)0;
			T7_ = cyclicType__liftdestructors_1367(t);
			if (!T7_) goto LA8_;
			T10_ = (NIM_BOOL)0;
			T10_ = isFromSink;
			if (T10_) goto LA11_;
			T10_ = isCriticalLink__injectdestructors_6593(dest);
			LA11_: ;
			T12_ = NIM_NIL;
			T12_ = boolLit__liftdestructors_428((*c).graph, (*result).info, T10_);
			add__ast_4772(result, T12_);
		}
		LA8_: ;
	}
	LA3_: ;
}
static N_INLINE(NIM_BOOL, isDangerousSeq__injectdestructors_6849)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
	NIM_BOOL result;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* t_2;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	t_2 = skipTypes__ast_3710(t, TM__dJ4qrEWDmqGA8FWJ0TYKJQ_33);
	T1_ = (NIM_BOOL)0;
	T1_ = ((*t_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24));
	if (!(T1_)) goto LA2_;
	T1_ = !((((*(*t_2).sons->data[((NI) 0)]).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 4))&63U)))!=0));
	LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL, isSinkParam__ast_5005)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
	if (!(T1_)) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T3_ = ((*(*s).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46));
	if (T3_) goto LA4_;
	T3_ = (((*(*s).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 4))&63U)))!=0);
	LA4_: ;
	T1_ = T3_;
	LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL, canBeMoved__injectdestructors_6534)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
	NIM_BOOL result;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* t_2;
	result = (NIM_BOOL)0;
	t_2 = skipTypes__ast_3710(t, TM__dJ4qrEWDmqGA8FWJ0TYKJQ_9);
	{
		NIM_BOOL T5_;
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T7_;
		if (!(((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 42))&63U)))!=0)) goto LA3_;
		T5_ = (NIM_BOOL)0;
		T5_ = !(((*t_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22)));
		if (!(T5_)) goto LA6_;
		T7_ = NIM_NIL;
		T7_ = getAttachedOp__modulegraphs_4024((*c).graph, t_2, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 2));
		T5_ = !((T7_ == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
		LA6_: ;
		result = T5_;
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T9_;
		T9_ = NIM_NIL;
		T9_ = getAttachedOp__modulegraphs_4024((*c).graph, t_2, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 2));
		result = !((T9_ == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, pRaiseStmt__injectdestructors_7128)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 42))&63U)))!=0);
		if (!(T3_)) goto LA4_;
		T3_ = !(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)));
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* call;
			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32))) goto LA9_;
			call = p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
			result = copyNode__ast_4311(n);
			add__ast_4772(result, call);
		}
		goto LA7_;
		LA9_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmp;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* m;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T12_;
			tyArray__AB6yfoUgfWM2NtGe9bzkCmw T13_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* toDisarm;
			tyArray__jlWPjgtbdjE069arIWHC9c9bg T25_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T26_;
			tmp = getTemp__injectdestructors_61(c, s, (*(*n)._kind_6.sons->data[((NI) 0)]).typ, (*n).info);
			m = genCopyNoCheck__injectdestructors_6636(c, tmp, (*n)._kind_6.sons->data[((NI) 0)]);
			T12_ = NIM_NIL;
			T12_ = p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
			add__ast_4772(m, T12_);
			finishCopy__injectdestructors_6600(c, m, (*n)._kind_6.sons->data[((NI) 0)], NIM_FALSE);
			nimZeroMem((void*)T13_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
			T13_[0] = genWasMoved__injectdestructors_6741(c, tmp);
			T13_[1] = m;
			result = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T13_, 2);
			toDisarm = (*n)._kind_6.sons->data[((NI) 0)];
			{
				if (!((*toDisarm).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126))) goto LA16_;
				toDisarm = lastSon__ast_4807(toDisarm);
			}
			LA16_: ;
			{
				NIM_BOOL T20_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T24_;
				T20_ = (NIM_BOOL)0;
				T20_ = ((*toDisarm).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
				if (!(T20_)) goto LA21_;
				T20_ = ((*(*toDisarm)._kind_4.sym).owner == (*c).owner);
				LA21_: ;
				if (!T20_) goto LA22_;
				T24_ = NIM_NIL;
				T24_ = genWasMoved__injectdestructors_6741(c, toDisarm);
				add__ast_4772(result, T24_);
			}
			LA22_: ;
			nimZeroMem((void*)T25_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
			T25_[0] = tmp;
			T26_ = NIM_NIL;
			T26_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 108), T25_, 1);
			add__ast_4772(result, T26_);
		}
		LA7_: ;
	}
	goto LA1_;
	LA5_: ;
	{
		result = copyNode__ast_4311(n);
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T32_;
			if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA30_;
			T32_ = NIM_NIL;
			T32_ = p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 2));
			add__ast_4772(result, T32_);
		}
		goto LA28_;
		LA30_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T34_;
			T34_ = NIM_NIL;
			T34_ = copyNode__ast_4311((*n)._kind_6.sons->data[((NI) 0)]);
			add__ast_4772(result, T34_);
		}
		LA28_: ;
	}
	LA1_: ;
	(*s).needsTry = NIM_TRUE;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, moveOrCopy__injectdestructors_110)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, NIM_BOOL isDecl) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
{	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = sameLocation__injectdestructors_8434(dest, ri);
		if (!T3_) goto LA4_;
		result = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*dest).info);
	}
	goto LA1_;
	LA4_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = isCursor__injectdestructors_6371(dest);
		if (!T7_) goto LA8_;
		switch ((*ri).kind) {
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 127):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 48):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 97):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 106):
		{
			switch ((*ri).kind) {
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126):
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T22_;
				{
					NI T14_;
					T14_ = (NI)0;
					T14_ = len__ast_3151(ri);
					if (!(T14_ == ((NI) 0))) goto LA15_;
					result = ri;
					goto BeforeRet_;
				}
				LA15_: ;
				result = copyNode__ast_4311(ri);
				{
					NI iX60gensym509_;
					NI colontmp_;
					NI T18_;
					NI i;
					iX60gensym509_ = (NI)0;
					colontmp_ = (NI)0;
					T18_ = (NI)0;
					T18_ = len__ast_3151(ri);
					colontmp_ = (NI)(T18_ - ((NI) 1));
					i = ((NI) 0);
					{
						while (1) {
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T21_;
							if (!(i < colontmp_)) goto LA20;
							iX60gensym509_ = i;
							T21_ = NIM_NIL;
							T21_ = p__injectdestructors_105((*ri)._kind_6.sons->data[iX60gensym509_], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
							add__ast_4772(result, T21_);
							i += ((NI) 1);
						} LA20: ;
					}
				}
				T22_ = NIM_NIL;
				{
					NI T25_;
					NIM_BOOL T26_;
					NI T29_;
					T25_ = (NI)0;
					T25_ = len__ast_3151(ri);
					T26_ = (NIM_BOOL)0;
					T26_ = isEmptyType__ast_4754((*(*ri)._kind_6.sons->data[(NI)(T25_ - ((NI) 1))]).typ);
					if (!T26_) goto LA27_;
					T29_ = (NI)0;
					T29_ = len__ast_3151(ri);
					T22_ = p__injectdestructors_105((*ri)._kind_6.sons->data[(NI)(T29_ - ((NI) 1))], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
				}
				goto LA23_;
				LA27_: ;
				{
					NI T31_;
					T31_ = (NI)0;
					T31_ = len__ast_3151(ri);
					T22_ = moveOrCopy__injectdestructors_110(dest, (*ri)._kind_6.sons->data[(NI)(T31_ - ((NI) 1))], c, s, isDecl);
				}
				LA23_: ;
				add__ast_4772(result, T22_);
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 97):
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T33_;
				result = copyNode__ast_4311(ri);
				T33_ = NIM_NIL;
				T33_ = p__injectdestructors_105((*ri)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
				add__ast_4772(result, T33_);
				{
					NI iX60gensym509__2;
					NI colontmp__2;
					NI i_2;
					iX60gensym509__2 = (NI)0;
					colontmp__2 = (NI)0;
					colontmp__2 = len__ast_3151(ri);
					i_2 = ((NI) 1);
					{
						while (1) {
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* itX60gensym509_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchX60gensym509_;
							tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ ofScopeX60gensym509_;
							NI T41_;
							if (!(i_2 < colontmp__2)) goto LA36;
							iX60gensym509__2 = i_2;
							itX60gensym509_ = (*ri)._kind_6.sons->data[iX60gensym509__2];
							branchX60gensym509_ = shallowCopy__ast_4388(itX60gensym509_);
							{
								NI jX60gensym509_;
								NI colontmp__3;
								NI T38_;
								NI i_3;
								jX60gensym509_ = (NI)0;
								colontmp__3 = (NI)0;
								T38_ = (NI)0;
								T38_ = len__ast_3151(itX60gensym509_);
								colontmp__3 = (NI)(T38_ - ((NI) 1));
								i_3 = ((NI) 0);
								{
									while (1) {
										if (!(i_3 < colontmp__3)) goto LA40;
										jX60gensym509_ = i_3;
										asgnRef((void**) (&(*branchX60gensym509_)._kind_6.sons->data[jX60gensym509_]), copyTree__ast_4406((*itX60gensym509_)._kind_6.sons->data[jX60gensym509_]));
										i_3 += ((NI) 1);
									} LA40: ;
								}
							}
							nimZeroMem((void*)(&ofScopeX60gensym509_), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
							nestedScope__injectdestructors_72(s, (&ofScopeX60gensym509_));
							T41_ = (NI)0;
							T41_ = len__ast_3151(branchX60gensym509_);
							{
								NIM_BOOL T44_;
								NI T45_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T49_;
								T44_ = (NIM_BOOL)0;
								T45_ = (NI)0;
								T45_ = len__ast_3151(itX60gensym509_);
								T44_ = isEmptyType__ast_4754((*(*itX60gensym509_)._kind_6.sons->data[(NI)(T45_ - ((NI) 1))]).typ);
								if (T44_) goto LA46_;
								T44_ = NIM_TRUE;
								LA46_: ;
								if (!T44_) goto LA47_;
								T49_ = NIM_NIL;
								{
									NI T52_;
									NIM_BOOL T53_;
									NI T56_;
									T52_ = (NI)0;
									T52_ = len__ast_3151(itX60gensym509_);
									T53_ = (NIM_BOOL)0;
									T53_ = isEmptyType__ast_4754((*(*itX60gensym509_)._kind_6.sons->data[(NI)(T52_ - ((NI) 1))]).typ);
									if (!T53_) goto LA54_;
									T56_ = (NI)0;
									T56_ = len__ast_3151(itX60gensym509_);
									T49_ = p__injectdestructors_105((*itX60gensym509_)._kind_6.sons->data[(NI)(T56_ - ((NI) 1))], c, (&ofScopeX60gensym509_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
								}
								goto LA50_;
								LA54_: ;
								{
									NI T58_;
									T58_ = (NI)0;
									T58_ = len__ast_3151(itX60gensym509_);
									T49_ = moveOrCopy__injectdestructors_110(dest, (*itX60gensym509_)._kind_6.sons->data[(NI)(T58_ - ((NI) 1))], c, (&ofScopeX60gensym509_), isDecl);
								}
								LA50_: ;
								asgnRef((void**) (&(*branchX60gensym509_)._kind_6.sons->data[(NI)(T41_ - ((NI) 1))]), processScope__injectdestructors_7018(c, (&ofScopeX60gensym509_), T49_));
							}
							goto LA42_;
							LA47_: ;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym547_;
								NI T60_;
								NI T61_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym547_;
								NI T62_;
								NI T63_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym547_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym547_;
								NI T90_;
								T60_ = (NI)0;
								T60_ = len__ast_3151(itX60gensym509_);
								T61_ = (NI)0;
								T61_ = len__ast_3151(itX60gensym509_);
								resultX60gensym547_ = newNodeIT__ast_3338(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*itX60gensym509_)._kind_6.sons->data[(NI)(T60_ - ((NI) 1))]).info, (*(*itX60gensym509_)._kind_6.sons->data[(NI)(T61_ - ((NI) 1))]).typ);
								T62_ = (NI)0;
								T62_ = len__ast_3151(itX60gensym509_);
								T63_ = (NI)0;
								T63_ = len__ast_3151(itX60gensym509_);
								tmpX60gensym547_ = getTemp__injectdestructors_61(c, ofScopeX60gensym509_.parent, (*(*itX60gensym509_)._kind_6.sons->data[(NI)(T62_ - ((NI) 1))]).typ, (*(*itX60gensym509_)._kind_6.sons->data[(NI)(T63_ - ((NI) 1))]).info);
								(*(*tmpX60gensym547_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 45)) & 63);
								{
									NI T66_;
									NIM_BOOL T67_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T70_;
									NI T71_;
									NI T72_;
									T66_ = (NI)0;
									T66_ = len__ast_3151(itX60gensym509_);
									T67_ = (NIM_BOOL)0;
									T67_ = hasDestructor__injectdestructors_49((&(*c)), (*(*itX60gensym509_)._kind_6.sons->data[(NI)(T66_ - ((NI) 1))]).typ);
									if (!T67_) goto LA68_;
									T70_ = NIM_NIL;
									T70_ = genDestroy__injectdestructors_6529(c, tmpX60gensym547_);
									unsureAsgnRef((void**) (&(*ofScopeX60gensym509_.parent).final), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*ofScopeX60gensym509_.parent).final), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
									T71_ = (*ofScopeX60gensym509_.parent).final->Sup.len++;
									asgnRef((void**) (&(*ofScopeX60gensym509_.parent).final->data[T71_]), T70_);
									T72_ = (NI)0;
									T72_ = len__ast_3151(itX60gensym509_);
									cpyX60gensym547_ = moveOrCopy__injectdestructors_110(tmpX60gensym547_, (*itX60gensym509_)._kind_6.sons->data[(NI)(T72_ - ((NI) 1))], c, (&ofScopeX60gensym509_), NIM_TRUE);
								}
								goto LA64_;
								LA68_: ;
								{
									tyArray__AB6yfoUgfWM2NtGe9bzkCmw T74_;
									NI T75_;
									nimZeroMem((void*)T74_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
									T74_[0] = tmpX60gensym547_;
									T75_ = (NI)0;
									T75_ = len__ast_3151(itX60gensym509_);
									T74_[1] = p__injectdestructors_105((*itX60gensym509_)._kind_6.sons->data[(NI)(T75_ - ((NI) 1))], c, (&ofScopeX60gensym509_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
									cpyX60gensym547_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T74_, 2);
								}
								LA64_: ;
								{
									NI T78_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym547_;
									NI T81_;
									T78_ = (ofScopeX60gensym509_.vars ? ofScopeX60gensym509_.vars->Sup.len : 0);
									if (!(((NI) 0) < T78_)) goto LA79_;
									T81_ = (NI)0;
									T81_ = len__ast_3151(itX60gensym509_);
									varSectionX60gensym547_ = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*itX60gensym509_)._kind_6.sons->data[(NI)(T81_ - ((NI) 1))]).info);
									{
										tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** tmpX60gensym547__2;
										NI i_4;
										NI L;
										NI T83_;
										tmpX60gensym547__2 = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
										i_4 = ((NI) 0);
										T83_ = (ofScopeX60gensym509_.vars ? ofScopeX60gensym509_.vars->Sup.len : 0);
										L = T83_;
										{
											while (1) {
												tyArray__T6RKPw8xfAeNaoei9aZGzXg T86_;
												NI T87_;
												NI T88_;
												tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T89_;
												if (!(i_4 < L)) goto LA85;
												tmpX60gensym547__2 = &ofScopeX60gensym509_.vars->data[i_4];
												nimZeroMem((void*)T86_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
												T86_[0] = newSymNode__ast_3691((*tmpX60gensym547__2));
												T87_ = (NI)0;
												T87_ = len__ast_3151(itX60gensym509_);
												T86_[1] = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym509_)._kind_6.sons->data[(NI)(T87_ - ((NI) 1))]).info);
												T88_ = (NI)0;
												T88_ = len__ast_3151(itX60gensym509_);
												T86_[2] = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym509_)._kind_6.sons->data[(NI)(T88_ - ((NI) 1))]).info);
												T89_ = NIM_NIL;
												T89_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T86_, 3);
												add__ast_4772(varSectionX60gensym547_, T89_);
												i_4 += ((NI) 1);
											} LA85: ;
										}
									}
									add__ast_4772(resultX60gensym547_, varSectionX60gensym547_);
								}
								LA79_: ;
								T90_ = (NI)0;
								T90_ = len__ast_3151(itX60gensym509_);
								finSectionX60gensym547_ = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*itX60gensym509_)._kind_6.sons->data[(NI)(T90_ - ((NI) 1))]).info);
								{
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym547_;
									NI i_5;
									NI L_2;
									NI T92_;
									mX60gensym547_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
									i_5 = ((NI) 0);
									T92_ = (ofScopeX60gensym509_.wasMoved ? ofScopeX60gensym509_.wasMoved->Sup.len : 0);
									L_2 = T92_;
									{
										while (1) {
											if (!(i_5 < L_2)) goto LA94;
											mX60gensym547_ = &ofScopeX60gensym509_.wasMoved->data[i_5];
											add__ast_4772(finSectionX60gensym547_, (*mX60gensym547_));
											i_5 += ((NI) 1);
										} LA94: ;
									}
								}
								{
									NI iX60gensym547_;
									NI colontmp__4;
									NI T96_;
									NI res;
									iX60gensym547_ = (NI)0;
									colontmp__4 = (NI)0;
									T96_ = ((ofScopeX60gensym509_.final ? ofScopeX60gensym509_.final->Sup.len : 0)-1);
									colontmp__4 = T96_;
									res = colontmp__4;
									{
										while (1) {
											if (!(((NI) 0) <= res)) goto LA98;
											iX60gensym547_ = res;
											add__ast_4772(finSectionX60gensym547_, ofScopeX60gensym509_.final->data[iX60gensym547_]);
											res -= ((NI) 1);
										} LA98: ;
									}
								}
								{
									tyArray__AB6yfoUgfWM2NtGe9bzkCmw T103_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T104_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T105_;
									if (!ofScopeX60gensym509_.needsTry) goto LA101_;
									nimZeroMem((void*)T103_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
									T103_[0] = cpyX60gensym547_;
									T103_[1] = moveOrCopy__injectdestructors_110(dest, tmpX60gensym547_, c, ofScopeX60gensym509_.parent, isDecl);
									T104_ = NIM_NIL;
									T104_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T103_, 2);
									T105_ = NIM_NIL;
									T105_ = newTryFinally__lowerings_207(T104_, finSectionX60gensym547_);
									add__ast_4772(resultX60gensym547_, T105_);
								}
								goto LA99_;
								LA101_: ;
								{
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T107_;
									add__ast_4772(resultX60gensym547_, cpyX60gensym547_);
									add__ast_4772(resultX60gensym547_, finSectionX60gensym547_);
									T107_ = NIM_NIL;
									T107_ = moveOrCopy__injectdestructors_110(dest, tmpX60gensym547_, c, ofScopeX60gensym509_.parent, isDecl);
									add__ast_4772(resultX60gensym547_, T107_);
								}
								LA99_: ;
								{
									NIM_BOOL T112_;
									if (!!((ofScopeX60gensym509_.parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL)))) goto LA110_;
									T112_ = (NIM_BOOL)0;
									T112_ = (*ofScopeX60gensym509_.parent).needsTry;
									if (T112_) goto LA113_;
									T112_ = ofScopeX60gensym509_.needsTry;
									LA113_: ;
									(*ofScopeX60gensym509_.parent).needsTry = T112_;
								}
								LA110_: ;
								asgnRef((void**) (&(*branchX60gensym509_)._kind_6.sons->data[(NI)(T41_ - ((NI) 1))]), resultX60gensym547_);
							}
							LA42_: ;
							add__ast_4772(result, branchX60gensym509_);
							i_2 += ((NI) 1);
						} LA36: ;
					}
				}
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 96):
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T115_;
				tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ bodyScopeX60gensym509_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* bodyResultX60gensym509_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T116_;
				(*c).inLoop += ((NI) 1);
				(*c).inLoopCond += ((NI) 1);
				result = copyNode__ast_4311(ri);
				T115_ = NIM_NIL;
				T115_ = p__injectdestructors_105((*ri)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
				add__ast_4772(result, T115_);
				(*c).inLoopCond -= ((NI) 1);
				nimZeroMem((void*)(&bodyScopeX60gensym509_), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
				nestedScope__injectdestructors_72(s, (&bodyScopeX60gensym509_));
				bodyResultX60gensym509_ = p__injectdestructors_105((*ri)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym509_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
				T116_ = NIM_NIL;
				T116_ = processScope__injectdestructors_7018(c, (&bodyScopeX60gensym509_), bodyResultX60gensym509_);
				add__ast_4772(result, T116_);
				(*c).inLoop -= ((NI) 1);
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 95):
			{
				NI lastX60gensym509_;
				NI T118_;
				tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ bodyScopeX60gensym509__2;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* bodyResultX60gensym509__2;
				(*c).inLoop += ((NI) 1);
				result = shallowCopy__ast_4388(ri);
				T118_ = (NI)0;
				T118_ = len__ast_3151(ri);
				lastX60gensym509_ = (NI)(T118_ - ((NI) 1));
				{
					NI iX60gensym509__3;
					NI colontmp__5;
					NI i_6;
					iX60gensym509__3 = (NI)0;
					colontmp__5 = (NI)0;
					colontmp__5 = (NI)(lastX60gensym509_ - ((NI) 1));
					i_6 = ((NI) 0);
					{
						while (1) {
							if (!(i_6 < colontmp__5)) goto LA121;
							iX60gensym509__3 = i_6;
							asgnRef((void**) (&(*result)._kind_6.sons->data[iX60gensym509__3]), (*ri)._kind_6.sons->data[iX60gensym509__3]);
							i_6 += ((NI) 1);
						} LA121: ;
					}
				}
				asgnRef((void**) (&(*result)._kind_6.sons->data[(NI)(lastX60gensym509_ - ((NI) 1))]), p__injectdestructors_105((*ri)._kind_6.sons->data[(NI)(lastX60gensym509_ - ((NI) 1))], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0)));
				nimZeroMem((void*)(&bodyScopeX60gensym509__2), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
				nestedScope__injectdestructors_72(s, (&bodyScopeX60gensym509__2));
				bodyResultX60gensym509__2 = p__injectdestructors_105((*ri)._kind_6.sons->data[lastX60gensym509_], c, (&bodyScopeX60gensym509__2), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
				asgnRef((void**) (&(*result)._kind_6.sons->data[lastX60gensym509_]), processScope__injectdestructors_7018(c, (&bodyScopeX60gensym509__2), bodyResultX60gensym509__2));
				(*c).inLoop -= ((NI) 1);
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 112):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 127):
			{
				tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ bodyScopeX60gensym509__3;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T123_;
				result = copyNode__ast_4311(ri);
				add__ast_4772(result, (*ri)._kind_6.sons->data[((NI) 0)]);
				nimZeroMem((void*)(&bodyScopeX60gensym509__3), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
				nestedScope__injectdestructors_72(s, (&bodyScopeX60gensym509__3));
				T123_ = NIM_NIL;
				{
					NIM_BOOL T126_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T130_;
					T126_ = (NIM_BOOL)0;
					T126_ = isEmptyType__ast_4754((*(*ri)._kind_6.sons->data[((NI) 1)]).typ);
					if (T126_) goto LA127_;
					T126_ = NIM_TRUE;
					LA127_: ;
					if (!T126_) goto LA128_;
					T130_ = NIM_NIL;
					T130_ = moveOrCopy__injectdestructors_110(dest, (*ri)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym509__3), isDecl);
					T123_ = processScope__injectdestructors_7018(c, (&bodyScopeX60gensym509__3), T130_);
				}
				goto LA124_;
				LA128_: ;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym569_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym569_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym569_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym569_;
					resultX60gensym569_ = newNodeIT__ast_3338(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*ri)._kind_6.sons->data[((NI) 1)]).info, (*(*ri)._kind_6.sons->data[((NI) 1)]).typ);
					tmpX60gensym569_ = getTemp__injectdestructors_61(c, bodyScopeX60gensym509__3.parent, (*(*ri)._kind_6.sons->data[((NI) 1)]).typ, (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
					(*(*tmpX60gensym569_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 45)) & 63);
					{
						NIM_BOOL T134_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T137_;
						NI T138_;
						T134_ = (NIM_BOOL)0;
						T134_ = hasDestructor__injectdestructors_49((&(*c)), (*(*ri)._kind_6.sons->data[((NI) 1)]).typ);
						if (!T134_) goto LA135_;
						T137_ = NIM_NIL;
						T137_ = genDestroy__injectdestructors_6529(c, tmpX60gensym569_);
						unsureAsgnRef((void**) (&(*bodyScopeX60gensym509__3.parent).final), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*bodyScopeX60gensym509__3.parent).final), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
						T138_ = (*bodyScopeX60gensym509__3.parent).final->Sup.len++;
						asgnRef((void**) (&(*bodyScopeX60gensym509__3.parent).final->data[T138_]), T137_);
						cpyX60gensym569_ = moveOrCopy__injectdestructors_110(tmpX60gensym569_, (*ri)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym509__3), NIM_TRUE);
					}
					goto LA132_;
					LA135_: ;
					{
						tyArray__AB6yfoUgfWM2NtGe9bzkCmw T140_;
						nimZeroMem((void*)T140_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
						T140_[0] = tmpX60gensym569_;
						T140_[1] = p__injectdestructors_105((*ri)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym509__3), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
						cpyX60gensym569_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T140_, 2);
					}
					LA132_: ;
					{
						NI T143_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym569_;
						T143_ = (bodyScopeX60gensym509__3.vars ? bodyScopeX60gensym509__3.vars->Sup.len : 0);
						if (!(((NI) 0) < T143_)) goto LA144_;
						varSectionX60gensym569_ = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
						{
							tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** tmpX60gensym569__2;
							NI i_7;
							NI L_3;
							NI T147_;
							tmpX60gensym569__2 = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
							i_7 = ((NI) 0);
							T147_ = (bodyScopeX60gensym509__3.vars ? bodyScopeX60gensym509__3.vars->Sup.len : 0);
							L_3 = T147_;
							{
								while (1) {
									tyArray__T6RKPw8xfAeNaoei9aZGzXg T150_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T151_;
									if (!(i_7 < L_3)) goto LA149;
									tmpX60gensym569__2 = &bodyScopeX60gensym509__3.vars->data[i_7];
									nimZeroMem((void*)T150_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
									T150_[0] = newSymNode__ast_3691((*tmpX60gensym569__2));
									T150_[1] = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
									T150_[2] = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
									T151_ = NIM_NIL;
									T151_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T150_, 3);
									add__ast_4772(varSectionX60gensym569_, T151_);
									i_7 += ((NI) 1);
								} LA149: ;
							}
						}
						add__ast_4772(resultX60gensym569_, varSectionX60gensym569_);
					}
					LA144_: ;
					finSectionX60gensym569_ = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym569_;
						NI i_8;
						NI L_4;
						NI T153_;
						mX60gensym569_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
						i_8 = ((NI) 0);
						T153_ = (bodyScopeX60gensym509__3.wasMoved ? bodyScopeX60gensym509__3.wasMoved->Sup.len : 0);
						L_4 = T153_;
						{
							while (1) {
								if (!(i_8 < L_4)) goto LA155;
								mX60gensym569_ = &bodyScopeX60gensym509__3.wasMoved->data[i_8];
								add__ast_4772(finSectionX60gensym569_, (*mX60gensym569_));
								i_8 += ((NI) 1);
							} LA155: ;
						}
					}
					{
						NI iX60gensym569_;
						NI colontmp__6;
						NI T157_;
						NI res_2;
						iX60gensym569_ = (NI)0;
						colontmp__6 = (NI)0;
						T157_ = ((bodyScopeX60gensym509__3.final ? bodyScopeX60gensym509__3.final->Sup.len : 0)-1);
						colontmp__6 = T157_;
						res_2 = colontmp__6;
						{
							while (1) {
								if (!(((NI) 0) <= res_2)) goto LA159;
								iX60gensym569_ = res_2;
								add__ast_4772(finSectionX60gensym569_, bodyScopeX60gensym509__3.final->data[iX60gensym569_]);
								res_2 -= ((NI) 1);
							} LA159: ;
						}
					}
					{
						tyArray__AB6yfoUgfWM2NtGe9bzkCmw T164_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T165_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T166_;
						if (!bodyScopeX60gensym509__3.needsTry) goto LA162_;
						nimZeroMem((void*)T164_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
						T164_[0] = cpyX60gensym569_;
						T164_[1] = moveOrCopy__injectdestructors_110(dest, tmpX60gensym569_, c, bodyScopeX60gensym509__3.parent, isDecl);
						T165_ = NIM_NIL;
						T165_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T164_, 2);
						T166_ = NIM_NIL;
						T166_ = newTryFinally__lowerings_207(T165_, finSectionX60gensym569_);
						add__ast_4772(resultX60gensym569_, T166_);
					}
					goto LA160_;
					LA162_: ;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T168_;
						add__ast_4772(resultX60gensym569_, cpyX60gensym569_);
						add__ast_4772(resultX60gensym569_, finSectionX60gensym569_);
						T168_ = NIM_NIL;
						T168_ = moveOrCopy__injectdestructors_110(dest, tmpX60gensym569_, c, bodyScopeX60gensym509__3.parent, isDecl);
						add__ast_4772(resultX60gensym569_, T168_);
					}
					LA160_: ;
					{
						NIM_BOOL T173_;
						if (!!((bodyScopeX60gensym509__3.parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL)))) goto LA171_;
						T173_ = (NIM_BOOL)0;
						T173_ = (*bodyScopeX60gensym509__3.parent).needsTry;
						if (T173_) goto LA174_;
						T173_ = bodyScopeX60gensym509__3.needsTry;
						LA174_: ;
						(*bodyScopeX60gensym509__3.parent).needsTry = T173_;
					}
					LA171_: ;
					T123_ = resultX60gensym569_;
				}
				LA124_: ;
				add__ast_4772(result, T123_);
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 48):
			{
				result = copyNode__ast_4311(ri);
				{
					NI iX60gensym509__4;
					NI colontmp__7;
					NI i_9;
					iX60gensym509__4 = (NI)0;
					colontmp__7 = (NI)0;
					colontmp__7 = len__ast_3151(ri);
					i_9 = ((NI) 0);
					{
						while (1) {
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* itX60gensym509__2;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchX60gensym509__2;
							tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ branchScopeX60gensym509_;
							NI T183_;
							if (!(i_9 < colontmp__7)) goto LA178;
							iX60gensym509__4 = i_9;
							itX60gensym509__2 = (*ri)._kind_6.sons->data[iX60gensym509__4];
							branchX60gensym509__2 = shallowCopy__ast_4388(itX60gensym509__2);
							nimZeroMem((void*)(&branchScopeX60gensym509_), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
							nestedScope__injectdestructors_72(s, (&branchScopeX60gensym509_));
							{
								if (!((*itX60gensym509__2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86) || (*itX60gensym509__2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 49))) goto LA181_;
								asgnRef((void**) (&(*branchX60gensym509__2)._kind_6.sons->data[((NI) 0)]), p__injectdestructors_105((*itX60gensym509__2)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0)));
							}
							LA181_: ;
							T183_ = (NI)0;
							T183_ = len__ast_3151(branchX60gensym509__2);
							{
								NIM_BOOL T186_;
								NI T187_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T191_;
								T186_ = (NIM_BOOL)0;
								T187_ = (NI)0;
								T187_ = len__ast_3151(itX60gensym509__2);
								T186_ = isEmptyType__ast_4754((*(*itX60gensym509__2)._kind_6.sons->data[(NI)(T187_ - ((NI) 1))]).typ);
								if (T186_) goto LA188_;
								T186_ = NIM_TRUE;
								LA188_: ;
								if (!T186_) goto LA189_;
								T191_ = NIM_NIL;
								{
									NI T194_;
									NIM_BOOL T195_;
									NI T198_;
									T194_ = (NI)0;
									T194_ = len__ast_3151(itX60gensym509__2);
									T195_ = (NIM_BOOL)0;
									T195_ = isEmptyType__ast_4754((*(*itX60gensym509__2)._kind_6.sons->data[(NI)(T194_ - ((NI) 1))]).typ);
									if (!T195_) goto LA196_;
									T198_ = (NI)0;
									T198_ = len__ast_3151(itX60gensym509__2);
									T191_ = p__injectdestructors_105((*itX60gensym509__2)._kind_6.sons->data[(NI)(T198_ - ((NI) 1))], c, (&branchScopeX60gensym509_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
								}
								goto LA192_;
								LA196_: ;
								{
									NI T200_;
									T200_ = (NI)0;
									T200_ = len__ast_3151(itX60gensym509__2);
									T191_ = moveOrCopy__injectdestructors_110(dest, (*itX60gensym509__2)._kind_6.sons->data[(NI)(T200_ - ((NI) 1))], c, (&branchScopeX60gensym509_), isDecl);
								}
								LA192_: ;
								asgnRef((void**) (&(*branchX60gensym509__2)._kind_6.sons->data[(NI)(T183_ - ((NI) 1))]), processScope__injectdestructors_7018(c, (&branchScopeX60gensym509_), T191_));
							}
							goto LA184_;
							LA189_: ;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym598_;
								NI T202_;
								NI T203_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym598_;
								NI T204_;
								NI T205_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym598_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym598_;
								NI T232_;
								T202_ = (NI)0;
								T202_ = len__ast_3151(itX60gensym509__2);
								T203_ = (NI)0;
								T203_ = len__ast_3151(itX60gensym509__2);
								resultX60gensym598_ = newNodeIT__ast_3338(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*itX60gensym509__2)._kind_6.sons->data[(NI)(T202_ - ((NI) 1))]).info, (*(*itX60gensym509__2)._kind_6.sons->data[(NI)(T203_ - ((NI) 1))]).typ);
								T204_ = (NI)0;
								T204_ = len__ast_3151(itX60gensym509__2);
								T205_ = (NI)0;
								T205_ = len__ast_3151(itX60gensym509__2);
								tmpX60gensym598_ = getTemp__injectdestructors_61(c, branchScopeX60gensym509_.parent, (*(*itX60gensym509__2)._kind_6.sons->data[(NI)(T204_ - ((NI) 1))]).typ, (*(*itX60gensym509__2)._kind_6.sons->data[(NI)(T205_ - ((NI) 1))]).info);
								(*(*tmpX60gensym598_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 45)) & 63);
								{
									NI T208_;
									NIM_BOOL T209_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T212_;
									NI T213_;
									NI T214_;
									T208_ = (NI)0;
									T208_ = len__ast_3151(itX60gensym509__2);
									T209_ = (NIM_BOOL)0;
									T209_ = hasDestructor__injectdestructors_49((&(*c)), (*(*itX60gensym509__2)._kind_6.sons->data[(NI)(T208_ - ((NI) 1))]).typ);
									if (!T209_) goto LA210_;
									T212_ = NIM_NIL;
									T212_ = genDestroy__injectdestructors_6529(c, tmpX60gensym598_);
									unsureAsgnRef((void**) (&(*branchScopeX60gensym509_.parent).final), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*branchScopeX60gensym509_.parent).final), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
									T213_ = (*branchScopeX60gensym509_.parent).final->Sup.len++;
									asgnRef((void**) (&(*branchScopeX60gensym509_.parent).final->data[T213_]), T212_);
									T214_ = (NI)0;
									T214_ = len__ast_3151(itX60gensym509__2);
									cpyX60gensym598_ = moveOrCopy__injectdestructors_110(tmpX60gensym598_, (*itX60gensym509__2)._kind_6.sons->data[(NI)(T214_ - ((NI) 1))], c, (&branchScopeX60gensym509_), NIM_TRUE);
								}
								goto LA206_;
								LA210_: ;
								{
									tyArray__AB6yfoUgfWM2NtGe9bzkCmw T216_;
									NI T217_;
									nimZeroMem((void*)T216_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
									T216_[0] = tmpX60gensym598_;
									T217_ = (NI)0;
									T217_ = len__ast_3151(itX60gensym509__2);
									T216_[1] = p__injectdestructors_105((*itX60gensym509__2)._kind_6.sons->data[(NI)(T217_ - ((NI) 1))], c, (&branchScopeX60gensym509_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
									cpyX60gensym598_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T216_, 2);
								}
								LA206_: ;
								{
									NI T220_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym598_;
									NI T223_;
									T220_ = (branchScopeX60gensym509_.vars ? branchScopeX60gensym509_.vars->Sup.len : 0);
									if (!(((NI) 0) < T220_)) goto LA221_;
									T223_ = (NI)0;
									T223_ = len__ast_3151(itX60gensym509__2);
									varSectionX60gensym598_ = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*itX60gensym509__2)._kind_6.sons->data[(NI)(T223_ - ((NI) 1))]).info);
									{
										tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** tmpX60gensym598__2;
										NI i_10;
										NI L_5;
										NI T225_;
										tmpX60gensym598__2 = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
										i_10 = ((NI) 0);
										T225_ = (branchScopeX60gensym509_.vars ? branchScopeX60gensym509_.vars->Sup.len : 0);
										L_5 = T225_;
										{
											while (1) {
												tyArray__T6RKPw8xfAeNaoei9aZGzXg T228_;
												NI T229_;
												NI T230_;
												tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T231_;
												if (!(i_10 < L_5)) goto LA227;
												tmpX60gensym598__2 = &branchScopeX60gensym509_.vars->data[i_10];
												nimZeroMem((void*)T228_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
												T228_[0] = newSymNode__ast_3691((*tmpX60gensym598__2));
												T229_ = (NI)0;
												T229_ = len__ast_3151(itX60gensym509__2);
												T228_[1] = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym509__2)._kind_6.sons->data[(NI)(T229_ - ((NI) 1))]).info);
												T230_ = (NI)0;
												T230_ = len__ast_3151(itX60gensym509__2);
												T228_[2] = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym509__2)._kind_6.sons->data[(NI)(T230_ - ((NI) 1))]).info);
												T231_ = NIM_NIL;
												T231_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T228_, 3);
												add__ast_4772(varSectionX60gensym598_, T231_);
												i_10 += ((NI) 1);
											} LA227: ;
										}
									}
									add__ast_4772(resultX60gensym598_, varSectionX60gensym598_);
								}
								LA221_: ;
								T232_ = (NI)0;
								T232_ = len__ast_3151(itX60gensym509__2);
								finSectionX60gensym598_ = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*itX60gensym509__2)._kind_6.sons->data[(NI)(T232_ - ((NI) 1))]).info);
								{
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym598_;
									NI i_11;
									NI L_6;
									NI T234_;
									mX60gensym598_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
									i_11 = ((NI) 0);
									T234_ = (branchScopeX60gensym509_.wasMoved ? branchScopeX60gensym509_.wasMoved->Sup.len : 0);
									L_6 = T234_;
									{
										while (1) {
											if (!(i_11 < L_6)) goto LA236;
											mX60gensym598_ = &branchScopeX60gensym509_.wasMoved->data[i_11];
											add__ast_4772(finSectionX60gensym598_, (*mX60gensym598_));
											i_11 += ((NI) 1);
										} LA236: ;
									}
								}
								{
									NI iX60gensym598_;
									NI colontmp__8;
									NI T238_;
									NI res_3;
									iX60gensym598_ = (NI)0;
									colontmp__8 = (NI)0;
									T238_ = ((branchScopeX60gensym509_.final ? branchScopeX60gensym509_.final->Sup.len : 0)-1);
									colontmp__8 = T238_;
									res_3 = colontmp__8;
									{
										while (1) {
											if (!(((NI) 0) <= res_3)) goto LA240;
											iX60gensym598_ = res_3;
											add__ast_4772(finSectionX60gensym598_, branchScopeX60gensym509_.final->data[iX60gensym598_]);
											res_3 -= ((NI) 1);
										} LA240: ;
									}
								}
								{
									tyArray__AB6yfoUgfWM2NtGe9bzkCmw T245_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T246_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T247_;
									if (!branchScopeX60gensym509_.needsTry) goto LA243_;
									nimZeroMem((void*)T245_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
									T245_[0] = cpyX60gensym598_;
									T245_[1] = moveOrCopy__injectdestructors_110(dest, tmpX60gensym598_, c, branchScopeX60gensym509_.parent, isDecl);
									T246_ = NIM_NIL;
									T246_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T245_, 2);
									T247_ = NIM_NIL;
									T247_ = newTryFinally__lowerings_207(T246_, finSectionX60gensym598_);
									add__ast_4772(resultX60gensym598_, T247_);
								}
								goto LA241_;
								LA243_: ;
								{
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T249_;
									add__ast_4772(resultX60gensym598_, cpyX60gensym598_);
									add__ast_4772(resultX60gensym598_, finSectionX60gensym598_);
									T249_ = NIM_NIL;
									T249_ = moveOrCopy__injectdestructors_110(dest, tmpX60gensym598_, c, branchScopeX60gensym509_.parent, isDecl);
									add__ast_4772(resultX60gensym598_, T249_);
								}
								LA241_: ;
								{
									NIM_BOOL T254_;
									if (!!((branchScopeX60gensym509_.parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL)))) goto LA252_;
									T254_ = (NIM_BOOL)0;
									T254_ = (*branchScopeX60gensym509_.parent).needsTry;
									if (T254_) goto LA255_;
									T254_ = branchScopeX60gensym509_.needsTry;
									LA255_: ;
									(*branchScopeX60gensym509_.parent).needsTry = T254_;
								}
								LA252_: ;
								asgnRef((void**) (&(*branchX60gensym509__2)._kind_6.sons->data[(NI)(T183_ - ((NI) 1))]), resultX60gensym598_);
							}
							LA184_: ;
							add__ast_4772(result, branchX60gensym509__2);
							i_9 += ((NI) 1);
						} LA178: ;
					}
				}
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 106):
			{
				tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ tryScopeX60gensym509_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T257_;
				result = copyNode__ast_4311(ri);
				nimZeroMem((void*)(&tryScopeX60gensym509_), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
				nestedScope__injectdestructors_72(s, (&tryScopeX60gensym509_));
				T257_ = NIM_NIL;
				{
					NIM_BOOL T260_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T264_;
					T260_ = (NIM_BOOL)0;
					T260_ = isEmptyType__ast_4754((*(*ri)._kind_6.sons->data[((NI) 0)]).typ);
					if (T260_) goto LA261_;
					T260_ = NIM_TRUE;
					LA261_: ;
					if (!T260_) goto LA262_;
					T264_ = NIM_NIL;
					{
						NIM_BOOL T267_;
						T267_ = (NIM_BOOL)0;
						T267_ = isEmptyType__ast_4754((*(*ri)._kind_6.sons->data[((NI) 0)]).typ);
						if (!T267_) goto LA268_;
						T264_ = p__injectdestructors_105((*ri)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym509_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
					}
					goto LA265_;
					LA268_: ;
					{
						T264_ = moveOrCopy__injectdestructors_110(dest, (*ri)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym509_), isDecl);
					}
					LA265_: ;
					T257_ = processScope__injectdestructors_7018(c, (&tryScopeX60gensym509_), T264_);
				}
				goto LA258_;
				LA262_: ;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym614_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym614_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym614_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym614_;
					resultX60gensym614_ = newNodeIT__ast_3338(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*ri)._kind_6.sons->data[((NI) 0)]).info, (*(*ri)._kind_6.sons->data[((NI) 0)]).typ);
					tmpX60gensym614_ = getTemp__injectdestructors_61(c, tryScopeX60gensym509_.parent, (*(*ri)._kind_6.sons->data[((NI) 0)]).typ, (*(*ri)._kind_6.sons->data[((NI) 0)]).info);
					(*(*tmpX60gensym614_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 45)) & 63);
					{
						NIM_BOOL T274_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T277_;
						NI T278_;
						T274_ = (NIM_BOOL)0;
						T274_ = hasDestructor__injectdestructors_49((&(*c)), (*(*ri)._kind_6.sons->data[((NI) 0)]).typ);
						if (!T274_) goto LA275_;
						T277_ = NIM_NIL;
						T277_ = genDestroy__injectdestructors_6529(c, tmpX60gensym614_);
						unsureAsgnRef((void**) (&(*tryScopeX60gensym509_.parent).final), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*tryScopeX60gensym509_.parent).final), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
						T278_ = (*tryScopeX60gensym509_.parent).final->Sup.len++;
						asgnRef((void**) (&(*tryScopeX60gensym509_.parent).final->data[T278_]), T277_);
						cpyX60gensym614_ = moveOrCopy__injectdestructors_110(tmpX60gensym614_, (*ri)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym509_), NIM_TRUE);
					}
					goto LA272_;
					LA275_: ;
					{
						tyArray__AB6yfoUgfWM2NtGe9bzkCmw T280_;
						nimZeroMem((void*)T280_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
						T280_[0] = tmpX60gensym614_;
						T280_[1] = p__injectdestructors_105((*ri)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym509_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
						cpyX60gensym614_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T280_, 2);
					}
					LA272_: ;
					{
						NI T283_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym614_;
						T283_ = (tryScopeX60gensym509_.vars ? tryScopeX60gensym509_.vars->Sup.len : 0);
						if (!(((NI) 0) < T283_)) goto LA284_;
						varSectionX60gensym614_ = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*ri)._kind_6.sons->data[((NI) 0)]).info);
						{
							tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** tmpX60gensym614__2;
							NI i_12;
							NI L_7;
							NI T287_;
							tmpX60gensym614__2 = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
							i_12 = ((NI) 0);
							T287_ = (tryScopeX60gensym509_.vars ? tryScopeX60gensym509_.vars->Sup.len : 0);
							L_7 = T287_;
							{
								while (1) {
									tyArray__T6RKPw8xfAeNaoei9aZGzXg T290_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T291_;
									if (!(i_12 < L_7)) goto LA289;
									tmpX60gensym614__2 = &tryScopeX60gensym509_.vars->data[i_12];
									nimZeroMem((void*)T290_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
									T290_[0] = newSymNode__ast_3691((*tmpX60gensym614__2));
									T290_[1] = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*ri)._kind_6.sons->data[((NI) 0)]).info);
									T290_[2] = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*ri)._kind_6.sons->data[((NI) 0)]).info);
									T291_ = NIM_NIL;
									T291_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T290_, 3);
									add__ast_4772(varSectionX60gensym614_, T291_);
									i_12 += ((NI) 1);
								} LA289: ;
							}
						}
						add__ast_4772(resultX60gensym614_, varSectionX60gensym614_);
					}
					LA284_: ;
					finSectionX60gensym614_ = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*ri)._kind_6.sons->data[((NI) 0)]).info);
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym614_;
						NI i_13;
						NI L_8;
						NI T293_;
						mX60gensym614_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
						i_13 = ((NI) 0);
						T293_ = (tryScopeX60gensym509_.wasMoved ? tryScopeX60gensym509_.wasMoved->Sup.len : 0);
						L_8 = T293_;
						{
							while (1) {
								if (!(i_13 < L_8)) goto LA295;
								mX60gensym614_ = &tryScopeX60gensym509_.wasMoved->data[i_13];
								add__ast_4772(finSectionX60gensym614_, (*mX60gensym614_));
								i_13 += ((NI) 1);
							} LA295: ;
						}
					}
					{
						NI iX60gensym614_;
						NI colontmp__9;
						NI T297_;
						NI res_4;
						iX60gensym614_ = (NI)0;
						colontmp__9 = (NI)0;
						T297_ = ((tryScopeX60gensym509_.final ? tryScopeX60gensym509_.final->Sup.len : 0)-1);
						colontmp__9 = T297_;
						res_4 = colontmp__9;
						{
							while (1) {
								if (!(((NI) 0) <= res_4)) goto LA299;
								iX60gensym614_ = res_4;
								add__ast_4772(finSectionX60gensym614_, tryScopeX60gensym509_.final->data[iX60gensym614_]);
								res_4 -= ((NI) 1);
							} LA299: ;
						}
					}
					{
						tyArray__AB6yfoUgfWM2NtGe9bzkCmw T304_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T311_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T312_;
						if (!tryScopeX60gensym509_.needsTry) goto LA302_;
						nimZeroMem((void*)T304_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
						T304_[0] = cpyX60gensym614_;
						{
							NIM_BOOL T307_;
							T307_ = (NIM_BOOL)0;
							T307_ = isEmptyType__ast_4754((*tmpX60gensym614_).typ);
							if (!T307_) goto LA308_;
							T304_[1] = p__injectdestructors_105(tmpX60gensym614_, c, tryScopeX60gensym509_.parent, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
						}
						goto LA305_;
						LA308_: ;
						{
							T304_[1] = moveOrCopy__injectdestructors_110(dest, tmpX60gensym614_, c, tryScopeX60gensym509_.parent, isDecl);
						}
						LA305_: ;
						T311_ = NIM_NIL;
						T311_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T304_, 2);
						T312_ = NIM_NIL;
						T312_ = newTryFinally__lowerings_207(T311_, finSectionX60gensym614_);
						add__ast_4772(resultX60gensym614_, T312_);
					}
					goto LA300_;
					LA302_: ;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T314_;
						add__ast_4772(resultX60gensym614_, cpyX60gensym614_);
						add__ast_4772(resultX60gensym614_, finSectionX60gensym614_);
						T314_ = NIM_NIL;
						{
							NIM_BOOL T317_;
							T317_ = (NIM_BOOL)0;
							T317_ = isEmptyType__ast_4754((*tmpX60gensym614_).typ);
							if (!T317_) goto LA318_;
							T314_ = p__injectdestructors_105(tmpX60gensym614_, c, tryScopeX60gensym509_.parent, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
						}
						goto LA315_;
						LA318_: ;
						{
							T314_ = moveOrCopy__injectdestructors_110(dest, tmpX60gensym614_, c, tryScopeX60gensym509_.parent, isDecl);
						}
						LA315_: ;
						add__ast_4772(resultX60gensym614_, T314_);
					}
					LA300_: ;
					{
						NIM_BOOL T325_;
						if (!!((tryScopeX60gensym509_.parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL)))) goto LA323_;
						T325_ = (NIM_BOOL)0;
						T325_ = (*tryScopeX60gensym509_.parent).needsTry;
						if (T325_) goto LA326_;
						T325_ = tryScopeX60gensym509_.needsTry;
						LA326_: ;
						(*tryScopeX60gensym509_.parent).needsTry = T325_;
					}
					LA323_: ;
					T257_ = resultX60gensym614_;
				}
				LA258_: ;
				add__ast_4772(result, T257_);
				{
					NI iX60gensym509__5;
					NI colontmp__10;
					NI i_14;
					iX60gensym509__5 = (NI)0;
					colontmp__10 = (NI)0;
					colontmp__10 = len__ast_3151(ri);
					i_14 = ((NI) 1);
					{
						while (1) {
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* itX60gensym509__3;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchX60gensym509__3;
							tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ branchScopeX60gensym509__2;
							NI T330_;
							if (!(i_14 < colontmp__10)) goto LA329;
							iX60gensym509__5 = i_14;
							itX60gensym509__3 = (*ri)._kind_6.sons->data[iX60gensym509__5];
							branchX60gensym509__3 = copyTree__ast_4406(itX60gensym509__3);
							nimZeroMem((void*)(&branchScopeX60gensym509__2), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
							nestedScope__injectdestructors_72(s, (&branchScopeX60gensym509__2));
							T330_ = (NI)0;
							T330_ = len__ast_3151(branchX60gensym509__3);
							{
								NIM_BOOL T333_;
								NIM_BOOL T334_;
								NI T335_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T340_;
								T333_ = (NIM_BOOL)0;
								T334_ = (NIM_BOOL)0;
								T335_ = (NI)0;
								T335_ = len__ast_3151(itX60gensym509__3);
								T334_ = isEmptyType__ast_4754((*(*itX60gensym509__3)._kind_6.sons->data[(NI)(T335_ - ((NI) 1))]).typ);
								if (T334_) goto LA336_;
								T334_ = NIM_TRUE;
								LA336_: ;
								T333_ = T334_;
								if (T333_) goto LA337_;
								T333_ = ((*itX60gensym509__3).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107));
								LA337_: ;
								if (!T333_) goto LA338_;
								T340_ = NIM_NIL;
								{
									NI T345_;
									if (!((*itX60gensym509__3).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107))) goto LA343_;
									T345_ = (NI)0;
									T345_ = len__ast_3151(itX60gensym509__3);
									T340_ = p__injectdestructors_105((*itX60gensym509__3)._kind_6.sons->data[(NI)(T345_ - ((NI) 1))], c, (&branchScopeX60gensym509__2), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
								}
								goto LA341_;
								LA343_: ;
								{
									{
										NI T349_;
										NIM_BOOL T350_;
										NI T353_;
										T349_ = (NI)0;
										T349_ = len__ast_3151(itX60gensym509__3);
										T350_ = (NIM_BOOL)0;
										T350_ = isEmptyType__ast_4754((*(*itX60gensym509__3)._kind_6.sons->data[(NI)(T349_ - ((NI) 1))]).typ);
										if (!T350_) goto LA351_;
										T353_ = (NI)0;
										T353_ = len__ast_3151(itX60gensym509__3);
										T340_ = p__injectdestructors_105((*itX60gensym509__3)._kind_6.sons->data[(NI)(T353_ - ((NI) 1))], c, (&branchScopeX60gensym509__2), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
									}
									goto LA347_;
									LA351_: ;
									{
										NI T355_;
										T355_ = (NI)0;
										T355_ = len__ast_3151(itX60gensym509__3);
										T340_ = moveOrCopy__injectdestructors_110(dest, (*itX60gensym509__3)._kind_6.sons->data[(NI)(T355_ - ((NI) 1))], c, (&branchScopeX60gensym509__2), isDecl);
									}
									LA347_: ;
								}
								LA341_: ;
								asgnRef((void**) (&(*branchX60gensym509__3)._kind_6.sons->data[(NI)(T330_ - ((NI) 1))]), processScope__injectdestructors_7018(c, (&branchScopeX60gensym509__2), T340_));
							}
							goto LA331_;
							LA338_: ;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym645_;
								NI T357_;
								NI T358_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym645_;
								NI T359_;
								NI T360_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym645_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym645_;
								NI T387_;
								T357_ = (NI)0;
								T357_ = len__ast_3151(itX60gensym509__3);
								T358_ = (NI)0;
								T358_ = len__ast_3151(itX60gensym509__3);
								resultX60gensym645_ = newNodeIT__ast_3338(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*itX60gensym509__3)._kind_6.sons->data[(NI)(T357_ - ((NI) 1))]).info, (*(*itX60gensym509__3)._kind_6.sons->data[(NI)(T358_ - ((NI) 1))]).typ);
								T359_ = (NI)0;
								T359_ = len__ast_3151(itX60gensym509__3);
								T360_ = (NI)0;
								T360_ = len__ast_3151(itX60gensym509__3);
								tmpX60gensym645_ = getTemp__injectdestructors_61(c, branchScopeX60gensym509__2.parent, (*(*itX60gensym509__3)._kind_6.sons->data[(NI)(T359_ - ((NI) 1))]).typ, (*(*itX60gensym509__3)._kind_6.sons->data[(NI)(T360_ - ((NI) 1))]).info);
								(*(*tmpX60gensym645_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 45)) & 63);
								{
									NI T363_;
									NIM_BOOL T364_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T367_;
									NI T368_;
									NI T369_;
									T363_ = (NI)0;
									T363_ = len__ast_3151(itX60gensym509__3);
									T364_ = (NIM_BOOL)0;
									T364_ = hasDestructor__injectdestructors_49((&(*c)), (*(*itX60gensym509__3)._kind_6.sons->data[(NI)(T363_ - ((NI) 1))]).typ);
									if (!T364_) goto LA365_;
									T367_ = NIM_NIL;
									T367_ = genDestroy__injectdestructors_6529(c, tmpX60gensym645_);
									unsureAsgnRef((void**) (&(*branchScopeX60gensym509__2.parent).final), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*branchScopeX60gensym509__2.parent).final), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
									T368_ = (*branchScopeX60gensym509__2.parent).final->Sup.len++;
									asgnRef((void**) (&(*branchScopeX60gensym509__2.parent).final->data[T368_]), T367_);
									T369_ = (NI)0;
									T369_ = len__ast_3151(itX60gensym509__3);
									cpyX60gensym645_ = moveOrCopy__injectdestructors_110(tmpX60gensym645_, (*itX60gensym509__3)._kind_6.sons->data[(NI)(T369_ - ((NI) 1))], c, (&branchScopeX60gensym509__2), NIM_TRUE);
								}
								goto LA361_;
								LA365_: ;
								{
									tyArray__AB6yfoUgfWM2NtGe9bzkCmw T371_;
									NI T372_;
									nimZeroMem((void*)T371_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
									T371_[0] = tmpX60gensym645_;
									T372_ = (NI)0;
									T372_ = len__ast_3151(itX60gensym509__3);
									T371_[1] = p__injectdestructors_105((*itX60gensym509__3)._kind_6.sons->data[(NI)(T372_ - ((NI) 1))], c, (&branchScopeX60gensym509__2), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
									cpyX60gensym645_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T371_, 2);
								}
								LA361_: ;
								{
									NI T375_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym645_;
									NI T378_;
									T375_ = (branchScopeX60gensym509__2.vars ? branchScopeX60gensym509__2.vars->Sup.len : 0);
									if (!(((NI) 0) < T375_)) goto LA376_;
									T378_ = (NI)0;
									T378_ = len__ast_3151(itX60gensym509__3);
									varSectionX60gensym645_ = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*itX60gensym509__3)._kind_6.sons->data[(NI)(T378_ - ((NI) 1))]).info);
									{
										tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** tmpX60gensym645__2;
										NI i_15;
										NI L_9;
										NI T380_;
										tmpX60gensym645__2 = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
										i_15 = ((NI) 0);
										T380_ = (branchScopeX60gensym509__2.vars ? branchScopeX60gensym509__2.vars->Sup.len : 0);
										L_9 = T380_;
										{
											while (1) {
												tyArray__T6RKPw8xfAeNaoei9aZGzXg T383_;
												NI T384_;
												NI T385_;
												tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T386_;
												if (!(i_15 < L_9)) goto LA382;
												tmpX60gensym645__2 = &branchScopeX60gensym509__2.vars->data[i_15];
												nimZeroMem((void*)T383_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
												T383_[0] = newSymNode__ast_3691((*tmpX60gensym645__2));
												T384_ = (NI)0;
												T384_ = len__ast_3151(itX60gensym509__3);
												T383_[1] = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym509__3)._kind_6.sons->data[(NI)(T384_ - ((NI) 1))]).info);
												T385_ = (NI)0;
												T385_ = len__ast_3151(itX60gensym509__3);
												T383_[2] = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym509__3)._kind_6.sons->data[(NI)(T385_ - ((NI) 1))]).info);
												T386_ = NIM_NIL;
												T386_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T383_, 3);
												add__ast_4772(varSectionX60gensym645_, T386_);
												i_15 += ((NI) 1);
											} LA382: ;
										}
									}
									add__ast_4772(resultX60gensym645_, varSectionX60gensym645_);
								}
								LA376_: ;
								T387_ = (NI)0;
								T387_ = len__ast_3151(itX60gensym509__3);
								finSectionX60gensym645_ = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*itX60gensym509__3)._kind_6.sons->data[(NI)(T387_ - ((NI) 1))]).info);
								{
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym645_;
									NI i_16;
									NI L_10;
									NI T389_;
									mX60gensym645_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
									i_16 = ((NI) 0);
									T389_ = (branchScopeX60gensym509__2.wasMoved ? branchScopeX60gensym509__2.wasMoved->Sup.len : 0);
									L_10 = T389_;
									{
										while (1) {
											if (!(i_16 < L_10)) goto LA391;
											mX60gensym645_ = &branchScopeX60gensym509__2.wasMoved->data[i_16];
											add__ast_4772(finSectionX60gensym645_, (*mX60gensym645_));
											i_16 += ((NI) 1);
										} LA391: ;
									}
								}
								{
									NI iX60gensym645_;
									NI colontmp__11;
									NI T393_;
									NI res_5;
									iX60gensym645_ = (NI)0;
									colontmp__11 = (NI)0;
									T393_ = ((branchScopeX60gensym509__2.final ? branchScopeX60gensym509__2.final->Sup.len : 0)-1);
									colontmp__11 = T393_;
									res_5 = colontmp__11;
									{
										while (1) {
											if (!(((NI) 0) <= res_5)) goto LA395;
											iX60gensym645_ = res_5;
											add__ast_4772(finSectionX60gensym645_, branchScopeX60gensym509__2.final->data[iX60gensym645_]);
											res_5 -= ((NI) 1);
										} LA395: ;
									}
								}
								{
									tyArray__AB6yfoUgfWM2NtGe9bzkCmw T400_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T401_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T402_;
									if (!branchScopeX60gensym509__2.needsTry) goto LA398_;
									nimZeroMem((void*)T400_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
									T400_[0] = cpyX60gensym645_;
									T400_[1] = moveOrCopy__injectdestructors_110(dest, tmpX60gensym645_, c, branchScopeX60gensym509__2.parent, isDecl);
									T401_ = NIM_NIL;
									T401_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T400_, 2);
									T402_ = NIM_NIL;
									T402_ = newTryFinally__lowerings_207(T401_, finSectionX60gensym645_);
									add__ast_4772(resultX60gensym645_, T402_);
								}
								goto LA396_;
								LA398_: ;
								{
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T404_;
									add__ast_4772(resultX60gensym645_, cpyX60gensym645_);
									add__ast_4772(resultX60gensym645_, finSectionX60gensym645_);
									T404_ = NIM_NIL;
									T404_ = moveOrCopy__injectdestructors_110(dest, tmpX60gensym645_, c, branchScopeX60gensym509__2.parent, isDecl);
									add__ast_4772(resultX60gensym645_, T404_);
								}
								LA396_: ;
								{
									NIM_BOOL T409_;
									if (!!((branchScopeX60gensym509__2.parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL)))) goto LA407_;
									T409_ = (NIM_BOOL)0;
									T409_ = (*branchScopeX60gensym509__2.parent).needsTry;
									if (T409_) goto LA410_;
									T409_ = branchScopeX60gensym509__2.needsTry;
									LA410_: ;
									(*branchScopeX60gensym509__2.parent).needsTry = T409_;
								}
								LA407_: ;
								asgnRef((void**) (&(*branchX60gensym509__3)._kind_6.sons->data[(NI)(T330_ - ((NI) 1))]), resultX60gensym645_);
							}
							LA331_: ;
							add__ast_4772(result, branchX60gensym509__3);
							i_14 += ((NI) 1);
						} LA329: ;
					}
				}
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 93):
			{
				result = copyTree__ast_4406(ri);
				asgnRef((void**) (&(*(*result)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)]), moveOrCopy__injectdestructors_110(dest, (*(*ri)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)], c, s, isDecl));
			}
			break;
			default:
			{
			}
			break;
			}
		}
		break;
		default:
		{
			tyArray__AB6yfoUgfWM2NtGe9bzkCmw T414_;
			nimZeroMem((void*)T414_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
			T414_[0] = dest;
			T414_[1] = p__injectdestructors_105(ri, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
			result = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T414_, 2);
		}
		break;
		}
	}
	goto LA1_;
	LA8_: ;
	{
		switch ((*ri).kind) {
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32):
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T417_;
			T417_ = NIM_NIL;
			T417_ = p__injectdestructors_105(ri, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
			result = genSink__injectdestructors_6566(c, dest, T417_, isDecl);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
		{
			{
				NIM_BOOL T421_;
				NIM_BOOL T422_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T427_;
				T421_ = (NIM_BOOL)0;
				T422_ = (NIM_BOOL)0;
				T422_ = ((*(*ri)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
				if (!(T422_)) goto LA423_;
				T422_ = ((*(*(*ri)._kind_6.sons->data[((NI) 0)])._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 5));
				LA423_: ;
				T421_ = T422_;
				if (!(T421_)) goto LA424_;
				T421_ = ((*(*(*(*ri)._kind_6.sons->data[((NI) 0)])._kind_4.sym).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18));
				LA424_: ;
				if (!T421_) goto LA425_;
				T427_ = NIM_NIL;
				T427_ = p__injectdestructors_105(ri, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
				result = genSink__injectdestructors_6566(c, dest, T427_, isDecl);
			}
			goto LA419_;
			LA425_: ;
			{
				NIM_BOOL T429_;
				T429_ = (NIM_BOOL)0;
				T429_ = isAnalysableFieldAccess__dfa_910(ri, (*c).owner);
				if (!(T429_)) goto LA430_;
				T429_ = isLastRead__injectdestructors_6105(ri, c);
				LA430_: ;
				if (!T429_) goto LA431_;
				{
					tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg T435_;
					T435_ = (tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg)0;
					T435_ = aliases__dfa_799(dest, ri);
					if (!(T435_ == ((tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg) 1))) goto LA436_;
					{
						NIM_BOOL T440_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* snk;
						tyArray__AB6yfoUgfWM2NtGe9bzkCmw T443_;
						T440_ = (NIM_BOOL)0;
						T440_ = isAtom__ast_4743((*ri)._kind_6.sons->data[((NI) 1)]);
						if (!T440_) goto LA441_;
						snk = genSink__injectdestructors_6566(c, dest, ri, isDecl);
						nimZeroMem((void*)T443_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
						T443_[0] = snk;
						T443_[1] = genWasMoved__injectdestructors_6741(c, ri);
						result = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T443_, 2);
					}
					goto LA438_;
					LA441_: ;
					{
						result = genFieldAccessSideEffects__injectdestructors_8474(c, dest, ri, isDecl);
					}
					LA438_: ;
				}
				goto LA433_;
				LA436_: ;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T446_;
					T446_ = NIM_NIL;
					T446_ = destructiveMoveVar__injectdestructors_6762(ri, c, s);
					result = genSink__injectdestructors_6566(c, dest, T446_, isDecl);
				}
				LA433_: ;
			}
			goto LA419_;
			LA431_: ;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T448_;
				result = genCopy__injectdestructors_6649(c, dest, ri);
				T448_ = NIM_NIL;
				T448_ = p__injectdestructors_105(ri, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
				add__ast_4772(result, T448_);
				finishCopy__injectdestructors_6600(c, result, dest, NIM_FALSE);
			}
			LA419_: ;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41):
		{
			{
				NIM_BOOL T452_;
				NI T453_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T457_;
				T452_ = (NIM_BOOL)0;
				T453_ = (NI)0;
				T453_ = len__ast_3151(ri);
				T452_ = (((NI) 0) < T453_);
				if (!(T452_)) goto LA454_;
				T452_ = isDangerousSeq__injectdestructors_6849((*ri).typ);
				LA454_: ;
				if (!T452_) goto LA455_;
				result = genCopy__injectdestructors_6649(c, dest, ri);
				T457_ = NIM_NIL;
				T457_ = p__injectdestructors_105(ri, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
				add__ast_4772(result, T457_);
				finishCopy__injectdestructors_6600(c, result, dest, NIM_FALSE);
			}
			goto LA450_;
			LA455_: ;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T459_;
				T459_ = NIM_NIL;
				T459_ = p__injectdestructors_105(ri, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
				result = genSink__injectdestructors_6566(c, dest, T459_, isDecl);
			}
			LA450_: ;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 155):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T461_;
			T461_ = NIM_NIL;
			T461_ = p__injectdestructors_105(ri, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
			result = genSink__injectdestructors_6566(c, dest, T461_, isDecl);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
		{
			{
				NIM_BOOL T465_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* snk_2;
				tyArray__AB6yfoUgfWM2NtGe9bzkCmw T469_;
				T465_ = (NIM_BOOL)0;
				T465_ = isSinkParam__ast_5005((*ri)._kind_4.sym);
				if (!(T465_)) goto LA466_;
				T465_ = isLastRead__injectdestructors_6105(ri, c);
				LA466_: ;
				if (!T465_) goto LA467_;
				snk_2 = genSink__injectdestructors_6566(c, dest, ri, isDecl);
				nimZeroMem((void*)T469_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
				T469_[0] = snk_2;
				T469_[1] = genWasMoved__injectdestructors_6741(c, ri);
				result = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T469_, 2);
			}
			goto LA463_;
			LA467_: ;
			{
				NIM_BOOL T471_;
				NIM_BOOL T472_;
				NIM_BOOL T473_;
				NIM_BOOL T474_;
				NIM_BOOL T479_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* snk_3;
				tyArray__AB6yfoUgfWM2NtGe9bzkCmw T482_;
				T471_ = (NIM_BOOL)0;
				T472_ = (NIM_BOOL)0;
				T473_ = (NIM_BOOL)0;
				T474_ = (NIM_BOOL)0;
				T474_ = !(((*(*ri)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3)));
				if (!(T474_)) goto LA475_;
				T474_ = ((*(*ri)._kind_4.sym).owner == (*c).owner);
				LA475_: ;
				T473_ = T474_;
				if (!(T473_)) goto LA476_;
				T473_ = isLastRead__injectdestructors_6105(ri, c);
				LA476_: ;
				T472_ = T473_;
				if (!(T472_)) goto LA477_;
				T472_ = canBeMoved__injectdestructors_6534((&(*c)), (*dest).typ);
				LA477_: ;
				T471_ = T472_;
				if (!(T471_)) goto LA478_;
				T479_ = (NIM_BOOL)0;
				T479_ = isCursor__injectdestructors_6371(ri);
				T471_ = !(T479_);
				LA478_: ;
				if (!T471_) goto LA480_;
				snk_3 = genSink__injectdestructors_6566(c, dest, ri, isDecl);
				nimZeroMem((void*)T482_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
				T482_[0] = snk_3;
				T482_[1] = genWasMoved__injectdestructors_6741(c, ri);
				result = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T482_, 2);
			}
			goto LA463_;
			LA480_: ;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T484_;
				result = genCopy__injectdestructors_6649(c, dest, ri);
				T484_ = NIM_NIL;
				T484_ = p__injectdestructors_105(ri, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
				add__ast_4772(result, T484_);
				finishCopy__injectdestructors_6600(c, result, dest, NIM_FALSE);
			}
			LA463_: ;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 60):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 67):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 61):
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T486_;
			T486_ = NIM_NIL;
			T486_ = p__injectdestructors_105(ri, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 2));
			result = genSink__injectdestructors_6566(c, dest, T486_, isDecl);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 127):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 48):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 97):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 106):
		{
			switch ((*ri).kind) {
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126):
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T499_;
				{
					NI T491_;
					T491_ = (NI)0;
					T491_ = len__ast_3151(ri);
					if (!(T491_ == ((NI) 0))) goto LA492_;
					result = ri;
					goto BeforeRet_;
				}
				LA492_: ;
				result = copyNode__ast_4311(ri);
				{
					NI iX60gensym666_;
					NI colontmp__12;
					NI T495_;
					NI i_17;
					iX60gensym666_ = (NI)0;
					colontmp__12 = (NI)0;
					T495_ = (NI)0;
					T495_ = len__ast_3151(ri);
					colontmp__12 = (NI)(T495_ - ((NI) 1));
					i_17 = ((NI) 0);
					{
						while (1) {
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T498_;
							if (!(i_17 < colontmp__12)) goto LA497;
							iX60gensym666_ = i_17;
							T498_ = NIM_NIL;
							T498_ = p__injectdestructors_105((*ri)._kind_6.sons->data[iX60gensym666_], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
							add__ast_4772(result, T498_);
							i_17 += ((NI) 1);
						} LA497: ;
					}
				}
				T499_ = NIM_NIL;
				{
					NI T502_;
					NIM_BOOL T503_;
					NI T506_;
					T502_ = (NI)0;
					T502_ = len__ast_3151(ri);
					T503_ = (NIM_BOOL)0;
					T503_ = isEmptyType__ast_4754((*(*ri)._kind_6.sons->data[(NI)(T502_ - ((NI) 1))]).typ);
					if (!T503_) goto LA504_;
					T506_ = (NI)0;
					T506_ = len__ast_3151(ri);
					T499_ = p__injectdestructors_105((*ri)._kind_6.sons->data[(NI)(T506_ - ((NI) 1))], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
				}
				goto LA500_;
				LA504_: ;
				{
					NI T508_;
					T508_ = (NI)0;
					T508_ = len__ast_3151(ri);
					T499_ = moveOrCopy__injectdestructors_110(dest, (*ri)._kind_6.sons->data[(NI)(T508_ - ((NI) 1))], c, s, isDecl);
				}
				LA500_: ;
				add__ast_4772(result, T499_);
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 97):
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T510_;
				result = copyNode__ast_4311(ri);
				T510_ = NIM_NIL;
				T510_ = p__injectdestructors_105((*ri)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
				add__ast_4772(result, T510_);
				{
					NI iX60gensym666__2;
					NI colontmp__13;
					NI i_18;
					iX60gensym666__2 = (NI)0;
					colontmp__13 = (NI)0;
					colontmp__13 = len__ast_3151(ri);
					i_18 = ((NI) 1);
					{
						while (1) {
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* itX60gensym666_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchX60gensym666_;
							tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ ofScopeX60gensym666_;
							NI T518_;
							if (!(i_18 < colontmp__13)) goto LA513;
							iX60gensym666__2 = i_18;
							itX60gensym666_ = (*ri)._kind_6.sons->data[iX60gensym666__2];
							branchX60gensym666_ = shallowCopy__ast_4388(itX60gensym666_);
							{
								NI jX60gensym666_;
								NI colontmp__14;
								NI T515_;
								NI i_19;
								jX60gensym666_ = (NI)0;
								colontmp__14 = (NI)0;
								T515_ = (NI)0;
								T515_ = len__ast_3151(itX60gensym666_);
								colontmp__14 = (NI)(T515_ - ((NI) 1));
								i_19 = ((NI) 0);
								{
									while (1) {
										if (!(i_19 < colontmp__14)) goto LA517;
										jX60gensym666_ = i_19;
										asgnRef((void**) (&(*branchX60gensym666_)._kind_6.sons->data[jX60gensym666_]), copyTree__ast_4406((*itX60gensym666_)._kind_6.sons->data[jX60gensym666_]));
										i_19 += ((NI) 1);
									} LA517: ;
								}
							}
							nimZeroMem((void*)(&ofScopeX60gensym666_), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
							nestedScope__injectdestructors_72(s, (&ofScopeX60gensym666_));
							T518_ = (NI)0;
							T518_ = len__ast_3151(branchX60gensym666_);
							{
								NIM_BOOL T521_;
								NI T522_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T526_;
								T521_ = (NIM_BOOL)0;
								T522_ = (NI)0;
								T522_ = len__ast_3151(itX60gensym666_);
								T521_ = isEmptyType__ast_4754((*(*itX60gensym666_)._kind_6.sons->data[(NI)(T522_ - ((NI) 1))]).typ);
								if (T521_) goto LA523_;
								T521_ = NIM_TRUE;
								LA523_: ;
								if (!T521_) goto LA524_;
								T526_ = NIM_NIL;
								{
									NI T529_;
									NIM_BOOL T530_;
									NI T533_;
									T529_ = (NI)0;
									T529_ = len__ast_3151(itX60gensym666_);
									T530_ = (NIM_BOOL)0;
									T530_ = isEmptyType__ast_4754((*(*itX60gensym666_)._kind_6.sons->data[(NI)(T529_ - ((NI) 1))]).typ);
									if (!T530_) goto LA531_;
									T533_ = (NI)0;
									T533_ = len__ast_3151(itX60gensym666_);
									T526_ = p__injectdestructors_105((*itX60gensym666_)._kind_6.sons->data[(NI)(T533_ - ((NI) 1))], c, (&ofScopeX60gensym666_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
								}
								goto LA527_;
								LA531_: ;
								{
									NI T535_;
									T535_ = (NI)0;
									T535_ = len__ast_3151(itX60gensym666_);
									T526_ = moveOrCopy__injectdestructors_110(dest, (*itX60gensym666_)._kind_6.sons->data[(NI)(T535_ - ((NI) 1))], c, (&ofScopeX60gensym666_), isDecl);
								}
								LA527_: ;
								asgnRef((void**) (&(*branchX60gensym666_)._kind_6.sons->data[(NI)(T518_ - ((NI) 1))]), processScope__injectdestructors_7018(c, (&ofScopeX60gensym666_), T526_));
							}
							goto LA519_;
							LA524_: ;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym704_;
								NI T537_;
								NI T538_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym704_;
								NI T539_;
								NI T540_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym704_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym704_;
								NI T567_;
								T537_ = (NI)0;
								T537_ = len__ast_3151(itX60gensym666_);
								T538_ = (NI)0;
								T538_ = len__ast_3151(itX60gensym666_);
								resultX60gensym704_ = newNodeIT__ast_3338(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*itX60gensym666_)._kind_6.sons->data[(NI)(T537_ - ((NI) 1))]).info, (*(*itX60gensym666_)._kind_6.sons->data[(NI)(T538_ - ((NI) 1))]).typ);
								T539_ = (NI)0;
								T539_ = len__ast_3151(itX60gensym666_);
								T540_ = (NI)0;
								T540_ = len__ast_3151(itX60gensym666_);
								tmpX60gensym704_ = getTemp__injectdestructors_61(c, ofScopeX60gensym666_.parent, (*(*itX60gensym666_)._kind_6.sons->data[(NI)(T539_ - ((NI) 1))]).typ, (*(*itX60gensym666_)._kind_6.sons->data[(NI)(T540_ - ((NI) 1))]).info);
								(*(*tmpX60gensym704_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 45)) & 63);
								{
									NI T543_;
									NIM_BOOL T544_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T547_;
									NI T548_;
									NI T549_;
									T543_ = (NI)0;
									T543_ = len__ast_3151(itX60gensym666_);
									T544_ = (NIM_BOOL)0;
									T544_ = hasDestructor__injectdestructors_49((&(*c)), (*(*itX60gensym666_)._kind_6.sons->data[(NI)(T543_ - ((NI) 1))]).typ);
									if (!T544_) goto LA545_;
									T547_ = NIM_NIL;
									T547_ = genDestroy__injectdestructors_6529(c, tmpX60gensym704_);
									unsureAsgnRef((void**) (&(*ofScopeX60gensym666_.parent).final), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*ofScopeX60gensym666_.parent).final), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
									T548_ = (*ofScopeX60gensym666_.parent).final->Sup.len++;
									asgnRef((void**) (&(*ofScopeX60gensym666_.parent).final->data[T548_]), T547_);
									T549_ = (NI)0;
									T549_ = len__ast_3151(itX60gensym666_);
									cpyX60gensym704_ = moveOrCopy__injectdestructors_110(tmpX60gensym704_, (*itX60gensym666_)._kind_6.sons->data[(NI)(T549_ - ((NI) 1))], c, (&ofScopeX60gensym666_), NIM_TRUE);
								}
								goto LA541_;
								LA545_: ;
								{
									tyArray__AB6yfoUgfWM2NtGe9bzkCmw T551_;
									NI T552_;
									nimZeroMem((void*)T551_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
									T551_[0] = tmpX60gensym704_;
									T552_ = (NI)0;
									T552_ = len__ast_3151(itX60gensym666_);
									T551_[1] = p__injectdestructors_105((*itX60gensym666_)._kind_6.sons->data[(NI)(T552_ - ((NI) 1))], c, (&ofScopeX60gensym666_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
									cpyX60gensym704_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T551_, 2);
								}
								LA541_: ;
								{
									NI T555_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym704_;
									NI T558_;
									T555_ = (ofScopeX60gensym666_.vars ? ofScopeX60gensym666_.vars->Sup.len : 0);
									if (!(((NI) 0) < T555_)) goto LA556_;
									T558_ = (NI)0;
									T558_ = len__ast_3151(itX60gensym666_);
									varSectionX60gensym704_ = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*itX60gensym666_)._kind_6.sons->data[(NI)(T558_ - ((NI) 1))]).info);
									{
										tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** tmpX60gensym704__2;
										NI i_20;
										NI L_11;
										NI T560_;
										tmpX60gensym704__2 = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
										i_20 = ((NI) 0);
										T560_ = (ofScopeX60gensym666_.vars ? ofScopeX60gensym666_.vars->Sup.len : 0);
										L_11 = T560_;
										{
											while (1) {
												tyArray__T6RKPw8xfAeNaoei9aZGzXg T563_;
												NI T564_;
												NI T565_;
												tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T566_;
												if (!(i_20 < L_11)) goto LA562;
												tmpX60gensym704__2 = &ofScopeX60gensym666_.vars->data[i_20];
												nimZeroMem((void*)T563_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
												T563_[0] = newSymNode__ast_3691((*tmpX60gensym704__2));
												T564_ = (NI)0;
												T564_ = len__ast_3151(itX60gensym666_);
												T563_[1] = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym666_)._kind_6.sons->data[(NI)(T564_ - ((NI) 1))]).info);
												T565_ = (NI)0;
												T565_ = len__ast_3151(itX60gensym666_);
												T563_[2] = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym666_)._kind_6.sons->data[(NI)(T565_ - ((NI) 1))]).info);
												T566_ = NIM_NIL;
												T566_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T563_, 3);
												add__ast_4772(varSectionX60gensym704_, T566_);
												i_20 += ((NI) 1);
											} LA562: ;
										}
									}
									add__ast_4772(resultX60gensym704_, varSectionX60gensym704_);
								}
								LA556_: ;
								T567_ = (NI)0;
								T567_ = len__ast_3151(itX60gensym666_);
								finSectionX60gensym704_ = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*itX60gensym666_)._kind_6.sons->data[(NI)(T567_ - ((NI) 1))]).info);
								{
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym704_;
									NI i_21;
									NI L_12;
									NI T569_;
									mX60gensym704_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
									i_21 = ((NI) 0);
									T569_ = (ofScopeX60gensym666_.wasMoved ? ofScopeX60gensym666_.wasMoved->Sup.len : 0);
									L_12 = T569_;
									{
										while (1) {
											if (!(i_21 < L_12)) goto LA571;
											mX60gensym704_ = &ofScopeX60gensym666_.wasMoved->data[i_21];
											add__ast_4772(finSectionX60gensym704_, (*mX60gensym704_));
											i_21 += ((NI) 1);
										} LA571: ;
									}
								}
								{
									NI iX60gensym704_;
									NI colontmp__15;
									NI T573_;
									NI res_6;
									iX60gensym704_ = (NI)0;
									colontmp__15 = (NI)0;
									T573_ = ((ofScopeX60gensym666_.final ? ofScopeX60gensym666_.final->Sup.len : 0)-1);
									colontmp__15 = T573_;
									res_6 = colontmp__15;
									{
										while (1) {
											if (!(((NI) 0) <= res_6)) goto LA575;
											iX60gensym704_ = res_6;
											add__ast_4772(finSectionX60gensym704_, ofScopeX60gensym666_.final->data[iX60gensym704_]);
											res_6 -= ((NI) 1);
										} LA575: ;
									}
								}
								{
									tyArray__AB6yfoUgfWM2NtGe9bzkCmw T580_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T581_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T582_;
									if (!ofScopeX60gensym666_.needsTry) goto LA578_;
									nimZeroMem((void*)T580_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
									T580_[0] = cpyX60gensym704_;
									T580_[1] = moveOrCopy__injectdestructors_110(dest, tmpX60gensym704_, c, ofScopeX60gensym666_.parent, isDecl);
									T581_ = NIM_NIL;
									T581_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T580_, 2);
									T582_ = NIM_NIL;
									T582_ = newTryFinally__lowerings_207(T581_, finSectionX60gensym704_);
									add__ast_4772(resultX60gensym704_, T582_);
								}
								goto LA576_;
								LA578_: ;
								{
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T584_;
									add__ast_4772(resultX60gensym704_, cpyX60gensym704_);
									add__ast_4772(resultX60gensym704_, finSectionX60gensym704_);
									T584_ = NIM_NIL;
									T584_ = moveOrCopy__injectdestructors_110(dest, tmpX60gensym704_, c, ofScopeX60gensym666_.parent, isDecl);
									add__ast_4772(resultX60gensym704_, T584_);
								}
								LA576_: ;
								{
									NIM_BOOL T589_;
									if (!!((ofScopeX60gensym666_.parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL)))) goto LA587_;
									T589_ = (NIM_BOOL)0;
									T589_ = (*ofScopeX60gensym666_.parent).needsTry;
									if (T589_) goto LA590_;
									T589_ = ofScopeX60gensym666_.needsTry;
									LA590_: ;
									(*ofScopeX60gensym666_.parent).needsTry = T589_;
								}
								LA587_: ;
								asgnRef((void**) (&(*branchX60gensym666_)._kind_6.sons->data[(NI)(T518_ - ((NI) 1))]), resultX60gensym704_);
							}
							LA519_: ;
							add__ast_4772(result, branchX60gensym666_);
							i_18 += ((NI) 1);
						} LA513: ;
					}
				}
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 96):
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T592_;
				tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ bodyScopeX60gensym666_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* bodyResultX60gensym666_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T593_;
				(*c).inLoop += ((NI) 1);
				(*c).inLoopCond += ((NI) 1);
				result = copyNode__ast_4311(ri);
				T592_ = NIM_NIL;
				T592_ = p__injectdestructors_105((*ri)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
				add__ast_4772(result, T592_);
				(*c).inLoopCond -= ((NI) 1);
				nimZeroMem((void*)(&bodyScopeX60gensym666_), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
				nestedScope__injectdestructors_72(s, (&bodyScopeX60gensym666_));
				bodyResultX60gensym666_ = p__injectdestructors_105((*ri)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym666_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
				T593_ = NIM_NIL;
				T593_ = processScope__injectdestructors_7018(c, (&bodyScopeX60gensym666_), bodyResultX60gensym666_);
				add__ast_4772(result, T593_);
				(*c).inLoop -= ((NI) 1);
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 95):
			{
				NI lastX60gensym666_;
				NI T595_;
				tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ bodyScopeX60gensym666__2;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* bodyResultX60gensym666__2;
				(*c).inLoop += ((NI) 1);
				result = shallowCopy__ast_4388(ri);
				T595_ = (NI)0;
				T595_ = len__ast_3151(ri);
				lastX60gensym666_ = (NI)(T595_ - ((NI) 1));
				{
					NI iX60gensym666__3;
					NI colontmp__16;
					NI i_22;
					iX60gensym666__3 = (NI)0;
					colontmp__16 = (NI)0;
					colontmp__16 = (NI)(lastX60gensym666_ - ((NI) 1));
					i_22 = ((NI) 0);
					{
						while (1) {
							if (!(i_22 < colontmp__16)) goto LA598;
							iX60gensym666__3 = i_22;
							asgnRef((void**) (&(*result)._kind_6.sons->data[iX60gensym666__3]), (*ri)._kind_6.sons->data[iX60gensym666__3]);
							i_22 += ((NI) 1);
						} LA598: ;
					}
				}
				asgnRef((void**) (&(*result)._kind_6.sons->data[(NI)(lastX60gensym666_ - ((NI) 1))]), p__injectdestructors_105((*ri)._kind_6.sons->data[(NI)(lastX60gensym666_ - ((NI) 1))], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0)));
				nimZeroMem((void*)(&bodyScopeX60gensym666__2), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
				nestedScope__injectdestructors_72(s, (&bodyScopeX60gensym666__2));
				bodyResultX60gensym666__2 = p__injectdestructors_105((*ri)._kind_6.sons->data[lastX60gensym666_], c, (&bodyScopeX60gensym666__2), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
				asgnRef((void**) (&(*result)._kind_6.sons->data[lastX60gensym666_]), processScope__injectdestructors_7018(c, (&bodyScopeX60gensym666__2), bodyResultX60gensym666__2));
				(*c).inLoop -= ((NI) 1);
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 112):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 127):
			{
				tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ bodyScopeX60gensym666__3;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T600_;
				result = copyNode__ast_4311(ri);
				add__ast_4772(result, (*ri)._kind_6.sons->data[((NI) 0)]);
				nimZeroMem((void*)(&bodyScopeX60gensym666__3), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
				nestedScope__injectdestructors_72(s, (&bodyScopeX60gensym666__3));
				T600_ = NIM_NIL;
				{
					NIM_BOOL T603_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T607_;
					T603_ = (NIM_BOOL)0;
					T603_ = isEmptyType__ast_4754((*(*ri)._kind_6.sons->data[((NI) 1)]).typ);
					if (T603_) goto LA604_;
					T603_ = NIM_TRUE;
					LA604_: ;
					if (!T603_) goto LA605_;
					T607_ = NIM_NIL;
					T607_ = moveOrCopy__injectdestructors_110(dest, (*ri)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym666__3), isDecl);
					T600_ = processScope__injectdestructors_7018(c, (&bodyScopeX60gensym666__3), T607_);
				}
				goto LA601_;
				LA605_: ;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym726_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym726_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym726_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym726_;
					resultX60gensym726_ = newNodeIT__ast_3338(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*ri)._kind_6.sons->data[((NI) 1)]).info, (*(*ri)._kind_6.sons->data[((NI) 1)]).typ);
					tmpX60gensym726_ = getTemp__injectdestructors_61(c, bodyScopeX60gensym666__3.parent, (*(*ri)._kind_6.sons->data[((NI) 1)]).typ, (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
					(*(*tmpX60gensym726_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 45)) & 63);
					{
						NIM_BOOL T611_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T614_;
						NI T615_;
						T611_ = (NIM_BOOL)0;
						T611_ = hasDestructor__injectdestructors_49((&(*c)), (*(*ri)._kind_6.sons->data[((NI) 1)]).typ);
						if (!T611_) goto LA612_;
						T614_ = NIM_NIL;
						T614_ = genDestroy__injectdestructors_6529(c, tmpX60gensym726_);
						unsureAsgnRef((void**) (&(*bodyScopeX60gensym666__3.parent).final), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*bodyScopeX60gensym666__3.parent).final), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
						T615_ = (*bodyScopeX60gensym666__3.parent).final->Sup.len++;
						asgnRef((void**) (&(*bodyScopeX60gensym666__3.parent).final->data[T615_]), T614_);
						cpyX60gensym726_ = moveOrCopy__injectdestructors_110(tmpX60gensym726_, (*ri)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym666__3), NIM_TRUE);
					}
					goto LA609_;
					LA612_: ;
					{
						tyArray__AB6yfoUgfWM2NtGe9bzkCmw T617_;
						nimZeroMem((void*)T617_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
						T617_[0] = tmpX60gensym726_;
						T617_[1] = p__injectdestructors_105((*ri)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym666__3), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
						cpyX60gensym726_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T617_, 2);
					}
					LA609_: ;
					{
						NI T620_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym726_;
						T620_ = (bodyScopeX60gensym666__3.vars ? bodyScopeX60gensym666__3.vars->Sup.len : 0);
						if (!(((NI) 0) < T620_)) goto LA621_;
						varSectionX60gensym726_ = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
						{
							tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** tmpX60gensym726__2;
							NI i_23;
							NI L_13;
							NI T624_;
							tmpX60gensym726__2 = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
							i_23 = ((NI) 0);
							T624_ = (bodyScopeX60gensym666__3.vars ? bodyScopeX60gensym666__3.vars->Sup.len : 0);
							L_13 = T624_;
							{
								while (1) {
									tyArray__T6RKPw8xfAeNaoei9aZGzXg T627_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T628_;
									if (!(i_23 < L_13)) goto LA626;
									tmpX60gensym726__2 = &bodyScopeX60gensym666__3.vars->data[i_23];
									nimZeroMem((void*)T627_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
									T627_[0] = newSymNode__ast_3691((*tmpX60gensym726__2));
									T627_[1] = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
									T627_[2] = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
									T628_ = NIM_NIL;
									T628_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T627_, 3);
									add__ast_4772(varSectionX60gensym726_, T628_);
									i_23 += ((NI) 1);
								} LA626: ;
							}
						}
						add__ast_4772(resultX60gensym726_, varSectionX60gensym726_);
					}
					LA621_: ;
					finSectionX60gensym726_ = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym726_;
						NI i_24;
						NI L_14;
						NI T630_;
						mX60gensym726_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
						i_24 = ((NI) 0);
						T630_ = (bodyScopeX60gensym666__3.wasMoved ? bodyScopeX60gensym666__3.wasMoved->Sup.len : 0);
						L_14 = T630_;
						{
							while (1) {
								if (!(i_24 < L_14)) goto LA632;
								mX60gensym726_ = &bodyScopeX60gensym666__3.wasMoved->data[i_24];
								add__ast_4772(finSectionX60gensym726_, (*mX60gensym726_));
								i_24 += ((NI) 1);
							} LA632: ;
						}
					}
					{
						NI iX60gensym726_;
						NI colontmp__17;
						NI T634_;
						NI res_7;
						iX60gensym726_ = (NI)0;
						colontmp__17 = (NI)0;
						T634_ = ((bodyScopeX60gensym666__3.final ? bodyScopeX60gensym666__3.final->Sup.len : 0)-1);
						colontmp__17 = T634_;
						res_7 = colontmp__17;
						{
							while (1) {
								if (!(((NI) 0) <= res_7)) goto LA636;
								iX60gensym726_ = res_7;
								add__ast_4772(finSectionX60gensym726_, bodyScopeX60gensym666__3.final->data[iX60gensym726_]);
								res_7 -= ((NI) 1);
							} LA636: ;
						}
					}
					{
						tyArray__AB6yfoUgfWM2NtGe9bzkCmw T641_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T642_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T643_;
						if (!bodyScopeX60gensym666__3.needsTry) goto LA639_;
						nimZeroMem((void*)T641_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
						T641_[0] = cpyX60gensym726_;
						T641_[1] = moveOrCopy__injectdestructors_110(dest, tmpX60gensym726_, c, bodyScopeX60gensym666__3.parent, isDecl);
						T642_ = NIM_NIL;
						T642_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T641_, 2);
						T643_ = NIM_NIL;
						T643_ = newTryFinally__lowerings_207(T642_, finSectionX60gensym726_);
						add__ast_4772(resultX60gensym726_, T643_);
					}
					goto LA637_;
					LA639_: ;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T645_;
						add__ast_4772(resultX60gensym726_, cpyX60gensym726_);
						add__ast_4772(resultX60gensym726_, finSectionX60gensym726_);
						T645_ = NIM_NIL;
						T645_ = moveOrCopy__injectdestructors_110(dest, tmpX60gensym726_, c, bodyScopeX60gensym666__3.parent, isDecl);
						add__ast_4772(resultX60gensym726_, T645_);
					}
					LA637_: ;
					{
						NIM_BOOL T650_;
						if (!!((bodyScopeX60gensym666__3.parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL)))) goto LA648_;
						T650_ = (NIM_BOOL)0;
						T650_ = (*bodyScopeX60gensym666__3.parent).needsTry;
						if (T650_) goto LA651_;
						T650_ = bodyScopeX60gensym666__3.needsTry;
						LA651_: ;
						(*bodyScopeX60gensym666__3.parent).needsTry = T650_;
					}
					LA648_: ;
					T600_ = resultX60gensym726_;
				}
				LA601_: ;
				add__ast_4772(result, T600_);
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 48):
			{
				result = copyNode__ast_4311(ri);
				{
					NI iX60gensym666__4;
					NI colontmp__18;
					NI i_25;
					iX60gensym666__4 = (NI)0;
					colontmp__18 = (NI)0;
					colontmp__18 = len__ast_3151(ri);
					i_25 = ((NI) 0);
					{
						while (1) {
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* itX60gensym666__2;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchX60gensym666__2;
							tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ branchScopeX60gensym666_;
							NI T660_;
							if (!(i_25 < colontmp__18)) goto LA655;
							iX60gensym666__4 = i_25;
							itX60gensym666__2 = (*ri)._kind_6.sons->data[iX60gensym666__4];
							branchX60gensym666__2 = shallowCopy__ast_4388(itX60gensym666__2);
							nimZeroMem((void*)(&branchScopeX60gensym666_), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
							nestedScope__injectdestructors_72(s, (&branchScopeX60gensym666_));
							{
								if (!((*itX60gensym666__2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86) || (*itX60gensym666__2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 49))) goto LA658_;
								asgnRef((void**) (&(*branchX60gensym666__2)._kind_6.sons->data[((NI) 0)]), p__injectdestructors_105((*itX60gensym666__2)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0)));
							}
							LA658_: ;
							T660_ = (NI)0;
							T660_ = len__ast_3151(branchX60gensym666__2);
							{
								NIM_BOOL T663_;
								NI T664_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T668_;
								T663_ = (NIM_BOOL)0;
								T664_ = (NI)0;
								T664_ = len__ast_3151(itX60gensym666__2);
								T663_ = isEmptyType__ast_4754((*(*itX60gensym666__2)._kind_6.sons->data[(NI)(T664_ - ((NI) 1))]).typ);
								if (T663_) goto LA665_;
								T663_ = NIM_TRUE;
								LA665_: ;
								if (!T663_) goto LA666_;
								T668_ = NIM_NIL;
								{
									NI T671_;
									NIM_BOOL T672_;
									NI T675_;
									T671_ = (NI)0;
									T671_ = len__ast_3151(itX60gensym666__2);
									T672_ = (NIM_BOOL)0;
									T672_ = isEmptyType__ast_4754((*(*itX60gensym666__2)._kind_6.sons->data[(NI)(T671_ - ((NI) 1))]).typ);
									if (!T672_) goto LA673_;
									T675_ = (NI)0;
									T675_ = len__ast_3151(itX60gensym666__2);
									T668_ = p__injectdestructors_105((*itX60gensym666__2)._kind_6.sons->data[(NI)(T675_ - ((NI) 1))], c, (&branchScopeX60gensym666_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
								}
								goto LA669_;
								LA673_: ;
								{
									NI T677_;
									T677_ = (NI)0;
									T677_ = len__ast_3151(itX60gensym666__2);
									T668_ = moveOrCopy__injectdestructors_110(dest, (*itX60gensym666__2)._kind_6.sons->data[(NI)(T677_ - ((NI) 1))], c, (&branchScopeX60gensym666_), isDecl);
								}
								LA669_: ;
								asgnRef((void**) (&(*branchX60gensym666__2)._kind_6.sons->data[(NI)(T660_ - ((NI) 1))]), processScope__injectdestructors_7018(c, (&branchScopeX60gensym666_), T668_));
							}
							goto LA661_;
							LA666_: ;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym755_;
								NI T679_;
								NI T680_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym755_;
								NI T681_;
								NI T682_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym755_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym755_;
								NI T709_;
								T679_ = (NI)0;
								T679_ = len__ast_3151(itX60gensym666__2);
								T680_ = (NI)0;
								T680_ = len__ast_3151(itX60gensym666__2);
								resultX60gensym755_ = newNodeIT__ast_3338(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*itX60gensym666__2)._kind_6.sons->data[(NI)(T679_ - ((NI) 1))]).info, (*(*itX60gensym666__2)._kind_6.sons->data[(NI)(T680_ - ((NI) 1))]).typ);
								T681_ = (NI)0;
								T681_ = len__ast_3151(itX60gensym666__2);
								T682_ = (NI)0;
								T682_ = len__ast_3151(itX60gensym666__2);
								tmpX60gensym755_ = getTemp__injectdestructors_61(c, branchScopeX60gensym666_.parent, (*(*itX60gensym666__2)._kind_6.sons->data[(NI)(T681_ - ((NI) 1))]).typ, (*(*itX60gensym666__2)._kind_6.sons->data[(NI)(T682_ - ((NI) 1))]).info);
								(*(*tmpX60gensym755_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 45)) & 63);
								{
									NI T685_;
									NIM_BOOL T686_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T689_;
									NI T690_;
									NI T691_;
									T685_ = (NI)0;
									T685_ = len__ast_3151(itX60gensym666__2);
									T686_ = (NIM_BOOL)0;
									T686_ = hasDestructor__injectdestructors_49((&(*c)), (*(*itX60gensym666__2)._kind_6.sons->data[(NI)(T685_ - ((NI) 1))]).typ);
									if (!T686_) goto LA687_;
									T689_ = NIM_NIL;
									T689_ = genDestroy__injectdestructors_6529(c, tmpX60gensym755_);
									unsureAsgnRef((void**) (&(*branchScopeX60gensym666_.parent).final), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*branchScopeX60gensym666_.parent).final), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
									T690_ = (*branchScopeX60gensym666_.parent).final->Sup.len++;
									asgnRef((void**) (&(*branchScopeX60gensym666_.parent).final->data[T690_]), T689_);
									T691_ = (NI)0;
									T691_ = len__ast_3151(itX60gensym666__2);
									cpyX60gensym755_ = moveOrCopy__injectdestructors_110(tmpX60gensym755_, (*itX60gensym666__2)._kind_6.sons->data[(NI)(T691_ - ((NI) 1))], c, (&branchScopeX60gensym666_), NIM_TRUE);
								}
								goto LA683_;
								LA687_: ;
								{
									tyArray__AB6yfoUgfWM2NtGe9bzkCmw T693_;
									NI T694_;
									nimZeroMem((void*)T693_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
									T693_[0] = tmpX60gensym755_;
									T694_ = (NI)0;
									T694_ = len__ast_3151(itX60gensym666__2);
									T693_[1] = p__injectdestructors_105((*itX60gensym666__2)._kind_6.sons->data[(NI)(T694_ - ((NI) 1))], c, (&branchScopeX60gensym666_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
									cpyX60gensym755_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T693_, 2);
								}
								LA683_: ;
								{
									NI T697_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym755_;
									NI T700_;
									T697_ = (branchScopeX60gensym666_.vars ? branchScopeX60gensym666_.vars->Sup.len : 0);
									if (!(((NI) 0) < T697_)) goto LA698_;
									T700_ = (NI)0;
									T700_ = len__ast_3151(itX60gensym666__2);
									varSectionX60gensym755_ = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*itX60gensym666__2)._kind_6.sons->data[(NI)(T700_ - ((NI) 1))]).info);
									{
										tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** tmpX60gensym755__2;
										NI i_26;
										NI L_15;
										NI T702_;
										tmpX60gensym755__2 = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
										i_26 = ((NI) 0);
										T702_ = (branchScopeX60gensym666_.vars ? branchScopeX60gensym666_.vars->Sup.len : 0);
										L_15 = T702_;
										{
											while (1) {
												tyArray__T6RKPw8xfAeNaoei9aZGzXg T705_;
												NI T706_;
												NI T707_;
												tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T708_;
												if (!(i_26 < L_15)) goto LA704;
												tmpX60gensym755__2 = &branchScopeX60gensym666_.vars->data[i_26];
												nimZeroMem((void*)T705_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
												T705_[0] = newSymNode__ast_3691((*tmpX60gensym755__2));
												T706_ = (NI)0;
												T706_ = len__ast_3151(itX60gensym666__2);
												T705_[1] = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym666__2)._kind_6.sons->data[(NI)(T706_ - ((NI) 1))]).info);
												T707_ = (NI)0;
												T707_ = len__ast_3151(itX60gensym666__2);
												T705_[2] = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym666__2)._kind_6.sons->data[(NI)(T707_ - ((NI) 1))]).info);
												T708_ = NIM_NIL;
												T708_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T705_, 3);
												add__ast_4772(varSectionX60gensym755_, T708_);
												i_26 += ((NI) 1);
											} LA704: ;
										}
									}
									add__ast_4772(resultX60gensym755_, varSectionX60gensym755_);
								}
								LA698_: ;
								T709_ = (NI)0;
								T709_ = len__ast_3151(itX60gensym666__2);
								finSectionX60gensym755_ = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*itX60gensym666__2)._kind_6.sons->data[(NI)(T709_ - ((NI) 1))]).info);
								{
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym755_;
									NI i_27;
									NI L_16;
									NI T711_;
									mX60gensym755_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
									i_27 = ((NI) 0);
									T711_ = (branchScopeX60gensym666_.wasMoved ? branchScopeX60gensym666_.wasMoved->Sup.len : 0);
									L_16 = T711_;
									{
										while (1) {
											if (!(i_27 < L_16)) goto LA713;
											mX60gensym755_ = &branchScopeX60gensym666_.wasMoved->data[i_27];
											add__ast_4772(finSectionX60gensym755_, (*mX60gensym755_));
											i_27 += ((NI) 1);
										} LA713: ;
									}
								}
								{
									NI iX60gensym755_;
									NI colontmp__19;
									NI T715_;
									NI res_8;
									iX60gensym755_ = (NI)0;
									colontmp__19 = (NI)0;
									T715_ = ((branchScopeX60gensym666_.final ? branchScopeX60gensym666_.final->Sup.len : 0)-1);
									colontmp__19 = T715_;
									res_8 = colontmp__19;
									{
										while (1) {
											if (!(((NI) 0) <= res_8)) goto LA717;
											iX60gensym755_ = res_8;
											add__ast_4772(finSectionX60gensym755_, branchScopeX60gensym666_.final->data[iX60gensym755_]);
											res_8 -= ((NI) 1);
										} LA717: ;
									}
								}
								{
									tyArray__AB6yfoUgfWM2NtGe9bzkCmw T722_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T723_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T724_;
									if (!branchScopeX60gensym666_.needsTry) goto LA720_;
									nimZeroMem((void*)T722_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
									T722_[0] = cpyX60gensym755_;
									T722_[1] = moveOrCopy__injectdestructors_110(dest, tmpX60gensym755_, c, branchScopeX60gensym666_.parent, isDecl);
									T723_ = NIM_NIL;
									T723_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T722_, 2);
									T724_ = NIM_NIL;
									T724_ = newTryFinally__lowerings_207(T723_, finSectionX60gensym755_);
									add__ast_4772(resultX60gensym755_, T724_);
								}
								goto LA718_;
								LA720_: ;
								{
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T726_;
									add__ast_4772(resultX60gensym755_, cpyX60gensym755_);
									add__ast_4772(resultX60gensym755_, finSectionX60gensym755_);
									T726_ = NIM_NIL;
									T726_ = moveOrCopy__injectdestructors_110(dest, tmpX60gensym755_, c, branchScopeX60gensym666_.parent, isDecl);
									add__ast_4772(resultX60gensym755_, T726_);
								}
								LA718_: ;
								{
									NIM_BOOL T731_;
									if (!!((branchScopeX60gensym666_.parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL)))) goto LA729_;
									T731_ = (NIM_BOOL)0;
									T731_ = (*branchScopeX60gensym666_.parent).needsTry;
									if (T731_) goto LA732_;
									T731_ = branchScopeX60gensym666_.needsTry;
									LA732_: ;
									(*branchScopeX60gensym666_.parent).needsTry = T731_;
								}
								LA729_: ;
								asgnRef((void**) (&(*branchX60gensym666__2)._kind_6.sons->data[(NI)(T660_ - ((NI) 1))]), resultX60gensym755_);
							}
							LA661_: ;
							add__ast_4772(result, branchX60gensym666__2);
							i_25 += ((NI) 1);
						} LA655: ;
					}
				}
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 106):
			{
				tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ tryScopeX60gensym666_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T734_;
				result = copyNode__ast_4311(ri);
				nimZeroMem((void*)(&tryScopeX60gensym666_), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
				nestedScope__injectdestructors_72(s, (&tryScopeX60gensym666_));
				T734_ = NIM_NIL;
				{
					NIM_BOOL T737_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T741_;
					T737_ = (NIM_BOOL)0;
					T737_ = isEmptyType__ast_4754((*(*ri)._kind_6.sons->data[((NI) 0)]).typ);
					if (T737_) goto LA738_;
					T737_ = NIM_TRUE;
					LA738_: ;
					if (!T737_) goto LA739_;
					T741_ = NIM_NIL;
					{
						NIM_BOOL T744_;
						T744_ = (NIM_BOOL)0;
						T744_ = isEmptyType__ast_4754((*(*ri)._kind_6.sons->data[((NI) 0)]).typ);
						if (!T744_) goto LA745_;
						T741_ = p__injectdestructors_105((*ri)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym666_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
					}
					goto LA742_;
					LA745_: ;
					{
						T741_ = moveOrCopy__injectdestructors_110(dest, (*ri)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym666_), isDecl);
					}
					LA742_: ;
					T734_ = processScope__injectdestructors_7018(c, (&tryScopeX60gensym666_), T741_);
				}
				goto LA735_;
				LA739_: ;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym771_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym771_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym771_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym771_;
					resultX60gensym771_ = newNodeIT__ast_3338(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*ri)._kind_6.sons->data[((NI) 0)]).info, (*(*ri)._kind_6.sons->data[((NI) 0)]).typ);
					tmpX60gensym771_ = getTemp__injectdestructors_61(c, tryScopeX60gensym666_.parent, (*(*ri)._kind_6.sons->data[((NI) 0)]).typ, (*(*ri)._kind_6.sons->data[((NI) 0)]).info);
					(*(*tmpX60gensym771_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 45)) & 63);
					{
						NIM_BOOL T751_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T754_;
						NI T755_;
						T751_ = (NIM_BOOL)0;
						T751_ = hasDestructor__injectdestructors_49((&(*c)), (*(*ri)._kind_6.sons->data[((NI) 0)]).typ);
						if (!T751_) goto LA752_;
						T754_ = NIM_NIL;
						T754_ = genDestroy__injectdestructors_6529(c, tmpX60gensym771_);
						unsureAsgnRef((void**) (&(*tryScopeX60gensym666_.parent).final), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*tryScopeX60gensym666_.parent).final), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
						T755_ = (*tryScopeX60gensym666_.parent).final->Sup.len++;
						asgnRef((void**) (&(*tryScopeX60gensym666_.parent).final->data[T755_]), T754_);
						cpyX60gensym771_ = moveOrCopy__injectdestructors_110(tmpX60gensym771_, (*ri)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym666_), NIM_TRUE);
					}
					goto LA749_;
					LA752_: ;
					{
						tyArray__AB6yfoUgfWM2NtGe9bzkCmw T757_;
						nimZeroMem((void*)T757_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
						T757_[0] = tmpX60gensym771_;
						T757_[1] = p__injectdestructors_105((*ri)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym666_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
						cpyX60gensym771_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T757_, 2);
					}
					LA749_: ;
					{
						NI T760_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym771_;
						T760_ = (tryScopeX60gensym666_.vars ? tryScopeX60gensym666_.vars->Sup.len : 0);
						if (!(((NI) 0) < T760_)) goto LA761_;
						varSectionX60gensym771_ = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*ri)._kind_6.sons->data[((NI) 0)]).info);
						{
							tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** tmpX60gensym771__2;
							NI i_28;
							NI L_17;
							NI T764_;
							tmpX60gensym771__2 = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
							i_28 = ((NI) 0);
							T764_ = (tryScopeX60gensym666_.vars ? tryScopeX60gensym666_.vars->Sup.len : 0);
							L_17 = T764_;
							{
								while (1) {
									tyArray__T6RKPw8xfAeNaoei9aZGzXg T767_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T768_;
									if (!(i_28 < L_17)) goto LA766;
									tmpX60gensym771__2 = &tryScopeX60gensym666_.vars->data[i_28];
									nimZeroMem((void*)T767_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
									T767_[0] = newSymNode__ast_3691((*tmpX60gensym771__2));
									T767_[1] = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*ri)._kind_6.sons->data[((NI) 0)]).info);
									T767_[2] = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*ri)._kind_6.sons->data[((NI) 0)]).info);
									T768_ = NIM_NIL;
									T768_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T767_, 3);
									add__ast_4772(varSectionX60gensym771_, T768_);
									i_28 += ((NI) 1);
								} LA766: ;
							}
						}
						add__ast_4772(resultX60gensym771_, varSectionX60gensym771_);
					}
					LA761_: ;
					finSectionX60gensym771_ = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*ri)._kind_6.sons->data[((NI) 0)]).info);
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym771_;
						NI i_29;
						NI L_18;
						NI T770_;
						mX60gensym771_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
						i_29 = ((NI) 0);
						T770_ = (tryScopeX60gensym666_.wasMoved ? tryScopeX60gensym666_.wasMoved->Sup.len : 0);
						L_18 = T770_;
						{
							while (1) {
								if (!(i_29 < L_18)) goto LA772;
								mX60gensym771_ = &tryScopeX60gensym666_.wasMoved->data[i_29];
								add__ast_4772(finSectionX60gensym771_, (*mX60gensym771_));
								i_29 += ((NI) 1);
							} LA772: ;
						}
					}
					{
						NI iX60gensym771_;
						NI colontmp__20;
						NI T774_;
						NI res_9;
						iX60gensym771_ = (NI)0;
						colontmp__20 = (NI)0;
						T774_ = ((tryScopeX60gensym666_.final ? tryScopeX60gensym666_.final->Sup.len : 0)-1);
						colontmp__20 = T774_;
						res_9 = colontmp__20;
						{
							while (1) {
								if (!(((NI) 0) <= res_9)) goto LA776;
								iX60gensym771_ = res_9;
								add__ast_4772(finSectionX60gensym771_, tryScopeX60gensym666_.final->data[iX60gensym771_]);
								res_9 -= ((NI) 1);
							} LA776: ;
						}
					}
					{
						tyArray__AB6yfoUgfWM2NtGe9bzkCmw T781_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T788_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T789_;
						if (!tryScopeX60gensym666_.needsTry) goto LA779_;
						nimZeroMem((void*)T781_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
						T781_[0] = cpyX60gensym771_;
						{
							NIM_BOOL T784_;
							T784_ = (NIM_BOOL)0;
							T784_ = isEmptyType__ast_4754((*tmpX60gensym771_).typ);
							if (!T784_) goto LA785_;
							T781_[1] = p__injectdestructors_105(tmpX60gensym771_, c, tryScopeX60gensym666_.parent, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
						}
						goto LA782_;
						LA785_: ;
						{
							T781_[1] = moveOrCopy__injectdestructors_110(dest, tmpX60gensym771_, c, tryScopeX60gensym666_.parent, isDecl);
						}
						LA782_: ;
						T788_ = NIM_NIL;
						T788_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T781_, 2);
						T789_ = NIM_NIL;
						T789_ = newTryFinally__lowerings_207(T788_, finSectionX60gensym771_);
						add__ast_4772(resultX60gensym771_, T789_);
					}
					goto LA777_;
					LA779_: ;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T791_;
						add__ast_4772(resultX60gensym771_, cpyX60gensym771_);
						add__ast_4772(resultX60gensym771_, finSectionX60gensym771_);
						T791_ = NIM_NIL;
						{
							NIM_BOOL T794_;
							T794_ = (NIM_BOOL)0;
							T794_ = isEmptyType__ast_4754((*tmpX60gensym771_).typ);
							if (!T794_) goto LA795_;
							T791_ = p__injectdestructors_105(tmpX60gensym771_, c, tryScopeX60gensym666_.parent, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
						}
						goto LA792_;
						LA795_: ;
						{
							T791_ = moveOrCopy__injectdestructors_110(dest, tmpX60gensym771_, c, tryScopeX60gensym666_.parent, isDecl);
						}
						LA792_: ;
						add__ast_4772(resultX60gensym771_, T791_);
					}
					LA777_: ;
					{
						NIM_BOOL T802_;
						if (!!((tryScopeX60gensym666_.parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL)))) goto LA800_;
						T802_ = (NIM_BOOL)0;
						T802_ = (*tryScopeX60gensym666_.parent).needsTry;
						if (T802_) goto LA803_;
						T802_ = tryScopeX60gensym666_.needsTry;
						LA803_: ;
						(*tryScopeX60gensym666_.parent).needsTry = T802_;
					}
					LA800_: ;
					T734_ = resultX60gensym771_;
				}
				LA735_: ;
				add__ast_4772(result, T734_);
				{
					NI iX60gensym666__5;
					NI colontmp__21;
					NI i_30;
					iX60gensym666__5 = (NI)0;
					colontmp__21 = (NI)0;
					colontmp__21 = len__ast_3151(ri);
					i_30 = ((NI) 1);
					{
						while (1) {
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* itX60gensym666__3;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchX60gensym666__3;
							tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ branchScopeX60gensym666__2;
							NI T807_;
							if (!(i_30 < colontmp__21)) goto LA806;
							iX60gensym666__5 = i_30;
							itX60gensym666__3 = (*ri)._kind_6.sons->data[iX60gensym666__5];
							branchX60gensym666__3 = copyTree__ast_4406(itX60gensym666__3);
							nimZeroMem((void*)(&branchScopeX60gensym666__2), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
							nestedScope__injectdestructors_72(s, (&branchScopeX60gensym666__2));
							T807_ = (NI)0;
							T807_ = len__ast_3151(branchX60gensym666__3);
							{
								NIM_BOOL T810_;
								NIM_BOOL T811_;
								NI T812_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T817_;
								T810_ = (NIM_BOOL)0;
								T811_ = (NIM_BOOL)0;
								T812_ = (NI)0;
								T812_ = len__ast_3151(itX60gensym666__3);
								T811_ = isEmptyType__ast_4754((*(*itX60gensym666__3)._kind_6.sons->data[(NI)(T812_ - ((NI) 1))]).typ);
								if (T811_) goto LA813_;
								T811_ = NIM_TRUE;
								LA813_: ;
								T810_ = T811_;
								if (T810_) goto LA814_;
								T810_ = ((*itX60gensym666__3).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107));
								LA814_: ;
								if (!T810_) goto LA815_;
								T817_ = NIM_NIL;
								{
									NI T822_;
									if (!((*itX60gensym666__3).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107))) goto LA820_;
									T822_ = (NI)0;
									T822_ = len__ast_3151(itX60gensym666__3);
									T817_ = p__injectdestructors_105((*itX60gensym666__3)._kind_6.sons->data[(NI)(T822_ - ((NI) 1))], c, (&branchScopeX60gensym666__2), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
								}
								goto LA818_;
								LA820_: ;
								{
									{
										NI T826_;
										NIM_BOOL T827_;
										NI T830_;
										T826_ = (NI)0;
										T826_ = len__ast_3151(itX60gensym666__3);
										T827_ = (NIM_BOOL)0;
										T827_ = isEmptyType__ast_4754((*(*itX60gensym666__3)._kind_6.sons->data[(NI)(T826_ - ((NI) 1))]).typ);
										if (!T827_) goto LA828_;
										T830_ = (NI)0;
										T830_ = len__ast_3151(itX60gensym666__3);
										T817_ = p__injectdestructors_105((*itX60gensym666__3)._kind_6.sons->data[(NI)(T830_ - ((NI) 1))], c, (&branchScopeX60gensym666__2), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
									}
									goto LA824_;
									LA828_: ;
									{
										NI T832_;
										T832_ = (NI)0;
										T832_ = len__ast_3151(itX60gensym666__3);
										T817_ = moveOrCopy__injectdestructors_110(dest, (*itX60gensym666__3)._kind_6.sons->data[(NI)(T832_ - ((NI) 1))], c, (&branchScopeX60gensym666__2), isDecl);
									}
									LA824_: ;
								}
								LA818_: ;
								asgnRef((void**) (&(*branchX60gensym666__3)._kind_6.sons->data[(NI)(T807_ - ((NI) 1))]), processScope__injectdestructors_7018(c, (&branchScopeX60gensym666__2), T817_));
							}
							goto LA808_;
							LA815_: ;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym802_;
								NI T834_;
								NI T835_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym802_;
								NI T836_;
								NI T837_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym802_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym802_;
								NI T864_;
								T834_ = (NI)0;
								T834_ = len__ast_3151(itX60gensym666__3);
								T835_ = (NI)0;
								T835_ = len__ast_3151(itX60gensym666__3);
								resultX60gensym802_ = newNodeIT__ast_3338(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*itX60gensym666__3)._kind_6.sons->data[(NI)(T834_ - ((NI) 1))]).info, (*(*itX60gensym666__3)._kind_6.sons->data[(NI)(T835_ - ((NI) 1))]).typ);
								T836_ = (NI)0;
								T836_ = len__ast_3151(itX60gensym666__3);
								T837_ = (NI)0;
								T837_ = len__ast_3151(itX60gensym666__3);
								tmpX60gensym802_ = getTemp__injectdestructors_61(c, branchScopeX60gensym666__2.parent, (*(*itX60gensym666__3)._kind_6.sons->data[(NI)(T836_ - ((NI) 1))]).typ, (*(*itX60gensym666__3)._kind_6.sons->data[(NI)(T837_ - ((NI) 1))]).info);
								(*(*tmpX60gensym802_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 45)) & 63);
								{
									NI T840_;
									NIM_BOOL T841_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T844_;
									NI T845_;
									NI T846_;
									T840_ = (NI)0;
									T840_ = len__ast_3151(itX60gensym666__3);
									T841_ = (NIM_BOOL)0;
									T841_ = hasDestructor__injectdestructors_49((&(*c)), (*(*itX60gensym666__3)._kind_6.sons->data[(NI)(T840_ - ((NI) 1))]).typ);
									if (!T841_) goto LA842_;
									T844_ = NIM_NIL;
									T844_ = genDestroy__injectdestructors_6529(c, tmpX60gensym802_);
									unsureAsgnRef((void**) (&(*branchScopeX60gensym666__2.parent).final), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*branchScopeX60gensym666__2.parent).final), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
									T845_ = (*branchScopeX60gensym666__2.parent).final->Sup.len++;
									asgnRef((void**) (&(*branchScopeX60gensym666__2.parent).final->data[T845_]), T844_);
									T846_ = (NI)0;
									T846_ = len__ast_3151(itX60gensym666__3);
									cpyX60gensym802_ = moveOrCopy__injectdestructors_110(tmpX60gensym802_, (*itX60gensym666__3)._kind_6.sons->data[(NI)(T846_ - ((NI) 1))], c, (&branchScopeX60gensym666__2), NIM_TRUE);
								}
								goto LA838_;
								LA842_: ;
								{
									tyArray__AB6yfoUgfWM2NtGe9bzkCmw T848_;
									NI T849_;
									nimZeroMem((void*)T848_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
									T848_[0] = tmpX60gensym802_;
									T849_ = (NI)0;
									T849_ = len__ast_3151(itX60gensym666__3);
									T848_[1] = p__injectdestructors_105((*itX60gensym666__3)._kind_6.sons->data[(NI)(T849_ - ((NI) 1))], c, (&branchScopeX60gensym666__2), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
									cpyX60gensym802_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T848_, 2);
								}
								LA838_: ;
								{
									NI T852_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym802_;
									NI T855_;
									T852_ = (branchScopeX60gensym666__2.vars ? branchScopeX60gensym666__2.vars->Sup.len : 0);
									if (!(((NI) 0) < T852_)) goto LA853_;
									T855_ = (NI)0;
									T855_ = len__ast_3151(itX60gensym666__3);
									varSectionX60gensym802_ = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*itX60gensym666__3)._kind_6.sons->data[(NI)(T855_ - ((NI) 1))]).info);
									{
										tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** tmpX60gensym802__2;
										NI i_31;
										NI L_19;
										NI T857_;
										tmpX60gensym802__2 = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
										i_31 = ((NI) 0);
										T857_ = (branchScopeX60gensym666__2.vars ? branchScopeX60gensym666__2.vars->Sup.len : 0);
										L_19 = T857_;
										{
											while (1) {
												tyArray__T6RKPw8xfAeNaoei9aZGzXg T860_;
												NI T861_;
												NI T862_;
												tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T863_;
												if (!(i_31 < L_19)) goto LA859;
												tmpX60gensym802__2 = &branchScopeX60gensym666__2.vars->data[i_31];
												nimZeroMem((void*)T860_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
												T860_[0] = newSymNode__ast_3691((*tmpX60gensym802__2));
												T861_ = (NI)0;
												T861_ = len__ast_3151(itX60gensym666__3);
												T860_[1] = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym666__3)._kind_6.sons->data[(NI)(T861_ - ((NI) 1))]).info);
												T862_ = (NI)0;
												T862_ = len__ast_3151(itX60gensym666__3);
												T860_[2] = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym666__3)._kind_6.sons->data[(NI)(T862_ - ((NI) 1))]).info);
												T863_ = NIM_NIL;
												T863_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T860_, 3);
												add__ast_4772(varSectionX60gensym802_, T863_);
												i_31 += ((NI) 1);
											} LA859: ;
										}
									}
									add__ast_4772(resultX60gensym802_, varSectionX60gensym802_);
								}
								LA853_: ;
								T864_ = (NI)0;
								T864_ = len__ast_3151(itX60gensym666__3);
								finSectionX60gensym802_ = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*itX60gensym666__3)._kind_6.sons->data[(NI)(T864_ - ((NI) 1))]).info);
								{
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym802_;
									NI i_32;
									NI L_20;
									NI T866_;
									mX60gensym802_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
									i_32 = ((NI) 0);
									T866_ = (branchScopeX60gensym666__2.wasMoved ? branchScopeX60gensym666__2.wasMoved->Sup.len : 0);
									L_20 = T866_;
									{
										while (1) {
											if (!(i_32 < L_20)) goto LA868;
											mX60gensym802_ = &branchScopeX60gensym666__2.wasMoved->data[i_32];
											add__ast_4772(finSectionX60gensym802_, (*mX60gensym802_));
											i_32 += ((NI) 1);
										} LA868: ;
									}
								}
								{
									NI iX60gensym802_;
									NI colontmp__22;
									NI T870_;
									NI res_10;
									iX60gensym802_ = (NI)0;
									colontmp__22 = (NI)0;
									T870_ = ((branchScopeX60gensym666__2.final ? branchScopeX60gensym666__2.final->Sup.len : 0)-1);
									colontmp__22 = T870_;
									res_10 = colontmp__22;
									{
										while (1) {
											if (!(((NI) 0) <= res_10)) goto LA872;
											iX60gensym802_ = res_10;
											add__ast_4772(finSectionX60gensym802_, branchScopeX60gensym666__2.final->data[iX60gensym802_]);
											res_10 -= ((NI) 1);
										} LA872: ;
									}
								}
								{
									tyArray__AB6yfoUgfWM2NtGe9bzkCmw T877_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T878_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T879_;
									if (!branchScopeX60gensym666__2.needsTry) goto LA875_;
									nimZeroMem((void*)T877_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
									T877_[0] = cpyX60gensym802_;
									T877_[1] = moveOrCopy__injectdestructors_110(dest, tmpX60gensym802_, c, branchScopeX60gensym666__2.parent, isDecl);
									T878_ = NIM_NIL;
									T878_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T877_, 2);
									T879_ = NIM_NIL;
									T879_ = newTryFinally__lowerings_207(T878_, finSectionX60gensym802_);
									add__ast_4772(resultX60gensym802_, T879_);
								}
								goto LA873_;
								LA875_: ;
								{
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T881_;
									add__ast_4772(resultX60gensym802_, cpyX60gensym802_);
									add__ast_4772(resultX60gensym802_, finSectionX60gensym802_);
									T881_ = NIM_NIL;
									T881_ = moveOrCopy__injectdestructors_110(dest, tmpX60gensym802_, c, branchScopeX60gensym666__2.parent, isDecl);
									add__ast_4772(resultX60gensym802_, T881_);
								}
								LA873_: ;
								{
									NIM_BOOL T886_;
									if (!!((branchScopeX60gensym666__2.parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL)))) goto LA884_;
									T886_ = (NIM_BOOL)0;
									T886_ = (*branchScopeX60gensym666__2.parent).needsTry;
									if (T886_) goto LA887_;
									T886_ = branchScopeX60gensym666__2.needsTry;
									LA887_: ;
									(*branchScopeX60gensym666__2.parent).needsTry = T886_;
								}
								LA884_: ;
								asgnRef((void**) (&(*branchX60gensym666__3)._kind_6.sons->data[(NI)(T807_ - ((NI) 1))]), resultX60gensym802_);
							}
							LA808_: ;
							add__ast_4772(result, branchX60gensym666__3);
							i_30 += ((NI) 1);
						} LA806: ;
					}
				}
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 93):
			{
				result = copyTree__ast_4406(ri);
				asgnRef((void**) (&(*(*result)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)]), moveOrCopy__injectdestructors_110(dest, (*(*ri)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)], c, s, isDecl));
			}
			break;
			default:
			{
			}
			break;
			}
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 108):
		{
			result = pRaiseStmt__injectdestructors_7128(ri, c, s);
		}
		break;
		default:
		{
			{
				NIM_BOOL T894_;
				NIM_BOOL T895_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* snk_4;
				tyArray__AB6yfoUgfWM2NtGe9bzkCmw T900_;
				T894_ = (NIM_BOOL)0;
				T895_ = (NIM_BOOL)0;
				T895_ = isAnalysableFieldAccess__dfa_910(ri, (*c).owner);
				if (!(T895_)) goto LA896_;
				T895_ = isLastRead__injectdestructors_6105(ri, c);
				LA896_: ;
				T894_ = T895_;
				if (!(T894_)) goto LA897_;
				T894_ = canBeMoved__injectdestructors_6534((&(*c)), (*dest).typ);
				LA897_: ;
				if (!T894_) goto LA898_;
				snk_4 = genSink__injectdestructors_6566(c, dest, ri, isDecl);
				nimZeroMem((void*)T900_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
				T900_[0] = snk_4;
				T900_[1] = genWasMoved__injectdestructors_6741(c, ri);
				result = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T900_, 2);
			}
			goto LA892_;
			LA898_: ;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T902_;
				result = genCopy__injectdestructors_6649(c, dest, ri);
				T902_ = NIM_NIL;
				T902_ = p__injectdestructors_105(ri, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
				add__ast_4772(result, T902_);
				finishCopy__injectdestructors_6600(c, result, dest, NIM_FALSE);
			}
			LA892_: ;
		}
		break;
		}
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, safeLen__ast_3144)(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__ast_3151(n);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsConstSeq__injectdestructors_6862)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NIM_BOOL T5_;
		NI T7_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41));
		if (!(T5_)) goto LA6_;
		T7_ = (NI)0;
		T7_ = len__ast_3151(n);
		T5_ = (((NI) 0) < T7_);
		LA6_: ;
		T4_ = T5_;
		if (!(T4_)) goto LA8_;
		T4_ = !(((*n).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
		LA8_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA9_;
		T3_ = isDangerousSeq__injectdestructors_6849((*n).typ);
		LA9_: ;
		if (!T3_) goto LA10_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA10_: ;
	result = NIM_FALSE;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 33):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
	{
		result = containsConstSeq__injectdestructors_6862((*n)._kind_6.sons->data[((NI) 1)]);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 155):
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3151(n);
			i_2 = ((NI) 1);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA16;
					i = i_2;
					{
						NIM_BOOL T19_;
						T19_ = (NIM_BOOL)0;
						T19_ = containsConstSeq__injectdestructors_6862((*n)._kind_6.sons->data[i]);
						if (!T19_) goto LA20_;
						result = NIM_TRUE;
						goto BeforeRet_;
					}
					LA20_: ;
					i_2 += ((NI) 1);
				} LA16: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160):
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* son;
			son = NIM_NIL;
			{
				NI i_3;
				NI colontmp__2;
				NI i_4;
				i_3 = (NI)0;
				colontmp__2 = (NI)0;
				colontmp__2 = safeLen__ast_3144(n);
				i_4 = ((NI) 0);
				{
					while (1) {
						if (!(i_4 < colontmp__2)) goto LA26;
						i_3 = i_4;
						son = (*n)._kind_6.sons->data[i_3];
						{
							NIM_BOOL T29_;
							T29_ = (NIM_BOOL)0;
							T29_ = containsConstSeq__injectdestructors_6862(son);
							if (!T29_) goto LA30_;
							result = NIM_TRUE;
							goto BeforeRet_;
						}
						LA30_: ;
						i_4 += ((NI) 1);
					} LA26: ;
				}
			}
		}
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isCapturedVar__injectdestructors_6799)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* root;
	result = (NIM_BOOL)0;
	root = getRoot__trees_390(n);
	{
		if (!!((root == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA3_;
		result = ((NU8)((*(*root).name).s->data[((NI) 0)]) == (NU8)(58));
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, passCopyToSink__injectdestructors_6807)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmp;
	result = NIM_NIL;
	result = newNodeIT__ast_3338(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*n).info, (*n).typ);
	tmp = getTemp__injectdestructors_61(c, s, (*n).typ, (*n).info);
	{
		NIM_BOOL T3_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* m;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = hasDestructor__injectdestructors_49((&(*c)), (*n).typ);
		if (!T3_) goto LA4_;
		T6_ = NIM_NIL;
		T6_ = genWasMoved__injectdestructors_6741(c, tmp);
		add__ast_4772(result, T6_);
		m = genCopy__injectdestructors_6649(c, tmp, n);
		T7_ = NIM_NIL;
		T7_ = p__injectdestructors_105(n, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
		add__ast_4772(m, T7_);
		finishCopy__injectdestructors_6600(c, m, n, NIM_TRUE);
		add__ast_4772(result, m);
		{
			NIM_BOOL T10_;
			NIM_BOOL T11_;
			NIM_BOOL T12_;
			NIM_BOOL T14_;
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T16_;
			NimStringDesc* T20_;
			NimStringDesc* T21_;
			T10_ = (NIM_BOOL)0;
			T11_ = (NIM_BOOL)0;
			T12_ = (NIM_BOOL)0;
			T12_ = isLValue__parampatterns_497(n);
			if (!(T12_)) goto LA13_;
			T14_ = (NIM_BOOL)0;
			T14_ = isCapturedVar__injectdestructors_6799(n);
			T12_ = !(T14_);
			LA13_: ;
			T11_ = T12_;
			if (!(T11_)) goto LA15_;
			T16_ = NIM_NIL;
			T16_ = skipTypes__ast_3710((*n).typ, TM__dJ4qrEWDmqGA8FWJ0TYKJQ_33);
			T11_ = !(((*T16_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22)));
			LA15_: ;
			T10_ = T11_;
			if (!(T10_)) goto LA17_;
			T10_ = ((*c).inSpawn == ((NI) 0));
			LA17_: ;
			if (!T10_) goto LA18_;
			T20_ = NIM_NIL;
			T20_ = dollar___renderer_2106(n);
			T21_ = NIM_NIL;
			T21_ = nsuFormatSingleElem(((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_34), T20_);
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 95), T21_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__dJ4qrEWDmqGA8FWJ0TYKJQ_35, NIM_FALSE);
		}
		LA18_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		tyArray__AB6yfoUgfWM2NtGe9bzkCmw T32_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T33_;
		{
			if (!((48 &((NU16)1<<((NU)((*(*(*c).graph).config).selectedGC)&15U)))!=0)) goto LA25_;
		}
		LA25_: ;
		{
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T29_;
			T29_ = NIM_NIL;
			T29_ = skipTypes__ast_3710((*n).typ, TM__dJ4qrEWDmqGA8FWJ0TYKJQ_33);
			if (!((*T29_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27) || (*T29_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48))) goto LA30_;
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_36), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__dJ4qrEWDmqGA8FWJ0TYKJQ_37, NIM_FALSE);
		}
		LA30_: ;
		nimZeroMem((void*)T32_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
		T32_[0] = tmp;
		T32_[1] = p__injectdestructors_105(n, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
		T33_ = NIM_NIL;
		T33_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73), T32_, 2);
		add__ast_4772(result, T33_);
	}
	LA1_: ;
	add__ast_4772(result, tmp);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, ensureDestruction__injectdestructors_6887)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* orig, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmp;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T7_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T8_;
		NI T9_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*arg).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
		if (!(T3_)) goto LA4_;
		T3_ = hasDestructor__injectdestructors_49((&(*c)), (*arg).typ);
		LA4_: ;
		if (!T3_) goto LA5_;
		result = newNodeIT__ast_3338(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*arg).info, (*arg).typ);
		tmp = getTemp__injectdestructors_61(c, s, (*arg).typ, (*arg).info);
		T7_ = NIM_NIL;
		T7_ = genSink__injectdestructors_6566(c, tmp, arg, NIM_TRUE);
		add__ast_4772(result, T7_);
		add__ast_4772(result, tmp);
		T8_ = NIM_NIL;
		T8_ = genDestroy__injectdestructors_6529(c, tmp);
		unsureAsgnRef((void**) (&(*s).final), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*s).final), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
		T9_ = (*s).final->Sup.len++;
		asgnRef((void**) (&(*s).final->data[T9_]), T8_);
	}
	goto LA1_;
	LA5_: ;
	{
		result = arg;
	}
	LA1_: ;
	return result;
}
static N_INLINE(NI, len__ast_3977)(tyObject_TType__facALICuu8zUj0hjvbTLFg* n) {
	NI result;
	NI T1_;
	result = (NI)0;
	T1_ = ((*n).sons ? (*n).sons->Sup.len : 0);
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL, isCompileTimeOnly__types_3520)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genDefaultCall__injectdestructors_6753)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
	result = NIM_NIL;
	result = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), info);
	T1_ = NIM_NIL;
	T1_ = createMagic__modulegraphs_9021((*c).graph, (*c).idgen, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_39), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 152));
	T2_ = NIM_NIL;
	T2_ = newSymNode__ast_3691(T1_);
	add__ast_4772(result, T2_);
	asgnRef((void**) (&(*result).typ), t);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, pVarTopLevel__injectdestructors_6969)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* v, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* res) {
	NI T1_;
	unsureAsgnRef((void**) (&(*s).vars), (tySequence__eHqUwlHGGaPw0TDPDeL79cQ*) incrSeqV3((TGenericSeq*)((*s).vars), (&NTIseqLpsymT__eHqUwlHGGaPw0TDPDeL79cQ_)));
	T1_ = (*s).vars->Sup.len++;
	asgnRef((void**) (&(*s).vars->data[T1_]), (*v)._kind_4.sym);
	{
		NIM_BOOL T4_;
		NIM_BOOL T5_;
		T4_ = (NIM_BOOL)0;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*v).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
		if (!(T5_)) goto LA6_;
		T5_ = ((*(*v)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 5));
		LA6_: ;
		T4_ = T5_;
		if (!(T4_)) goto LA7_;
		T4_ = ((*(*(*v)._kind_4.sym).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18));
		LA7_: ;
		if (!T4_) goto LA8_;
		{
			tyArray__AB6yfoUgfWM2NtGe9bzkCmw T14_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T15_;
			if (!(((NI) 0) < (*c).inLoop)) goto LA12_;
			nimZeroMem((void*)T14_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
			T14_[0] = v;
			T14_[1] = genDefaultCall__injectdestructors_6753((*v).typ, (&(*c)), (*v).info);
			T15_ = NIM_NIL;
			T15_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T14_, 2);
			add__ast_4772(res, T15_);
		}
		LA12_: ;
	}
	goto LA2_;
	LA8_: ;
	{
		NIM_BOOL T17_;
		T17_ = (NIM_BOOL)0;
		T17_ = !((((*(*v)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 26))&63U)))!=0));
		if (!(T17_)) goto LA18_;
		T17_ = !((((*(*v)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 41))&63U)))!=0));
		LA18_: ;
		if (!T17_) goto LA19_;
		{
			NIM_BOOL T23_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T27_;
			NI T28_;
			T23_ = (NIM_BOOL)0;
			T23_ = (((*(*v)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0);
			if (!(T23_)) goto LA24_;
			T23_ = ((*s).parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL));
			LA24_: ;
			if (!T23_) goto LA25_;
			T27_ = NIM_NIL;
			T27_ = genDestroy__injectdestructors_6529(c, v);
			asgnRef((void**) (&(*(*c).graph).globalDestructors), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*(*c).graph).globalDestructors), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
			T28_ = (*(*c).graph).globalDestructors->Sup.len++;
			asgnRef((void**) (&(*(*c).graph).globalDestructors->data[T28_]), T27_);
		}
		goto LA21_;
		LA25_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T30_;
			NI T31_;
			T30_ = NIM_NIL;
			T30_ = genDestroy__injectdestructors_6529(c, v);
			unsureAsgnRef((void**) (&(*s).final), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*s).final), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
			T31_ = (*s).final->Sup.len++;
			asgnRef((void**) (&(*s).final->data[T31_]), T30_);
		}
		LA21_: ;
	}
	goto LA2_;
	LA19_: ;
	LA2_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, cycleCheck__injectdestructors_6910)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* value;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* destTyp;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* field;
{	{
		if (!!(((*(*(*c).graph).config).selectedGC == ((tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw) 4)))) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	value = (*n)._kind_6.sons->data[((NI) 1)];
	{
		if (!((*value).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 155))) goto LA7_;
		value = (*value)._kind_6.sons->data[((NI) 1)];
	}
	LA7_: ;
	{
		if (!((*value).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA11_;
		goto BeforeRet_;
	}
	LA11_: ;
	destTyp = skipTypes__ast_3710((*(*n)._kind_6.sons->data[((NI) 0)]).typ, TM__dJ4qrEWDmqGA8FWJ0TYKJQ_33);
	{
		NIM_BOOL T15_;
		NIM_BOOL T17_;
		T15_ = (NIM_BOOL)0;
		T15_ = !(((*destTyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22)));
		if (!(T15_)) goto LA16_;
		T17_ = (NIM_BOOL)0;
		T17_ = ((*destTyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
		if (!(T17_)) goto LA18_;
		T17_ = ((*destTyp).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9));
		LA18_: ;
		T15_ = !(T17_);
		LA16_: ;
		if (!T15_) goto LA19_;
		goto BeforeRet_;
	}
	LA19_: ;
	x = (*n)._kind_6.sons->data[((NI) 0)];
	field = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
	{
		while (1) {
			{
				if (!((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45))) goto LA25_;
				field = (*x)._kind_6.sons->data[((NI) 1)];
				{
					NIM_BOOL T29_;
					T29_ = (NIM_BOOL)0;
					T29_ = ((*field).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
					if (!(T29_)) goto LA30_;
					T29_ = (((*(*field)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 41))&63U)))!=0);
					LA30_: ;
					if (!T29_) goto LA31_;
					goto BeforeRet_;
				}
				LA31_: ;
				x = (*x)._kind_6.sons->data[((NI) 0)];
			}
			goto LA23_;
			LA25_: ;
			{
				if (!((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65))) goto LA34_;
				x = (*x)._kind_6.sons->data[((NI) 0)];
			}
			goto LA23_;
			LA34_: ;
			{
				goto LA21;
			}
			LA23_: ;
			{
				NIM_BOOL T39_;
				NimStringDesc* msg;
				T39_ = (NIM_BOOL)0;
				T39_ = exprStructuralEquivalent__trees_56(x, value, NIM_TRUE);
				if (!T39_) goto LA40_;
				{
					tyArray__Re75IspeoxXy2oCZHwcRrA T46_;
					if (!!((field == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA44_;
					nimZeroMem((void*)T46_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
					T46_[0] = dollar___renderer_2106(n);
					T46_[1] = dollar___renderer_2106(field);
					msg = nsuFormatOpenArray(((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_40), T46_, 2);
				}
				goto LA42_;
				LA44_: ;
				{
					tyArray__nHXaesL0DJZHyVS07ARPRA T48_;
					nimZeroMem((void*)T48_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
					T48_[0] = dollar___renderer_2106(n);
					msg = nsuFormatOpenArray(((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_41), T48_, 1);
				}
				LA42_: ;
				liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 57), msg, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__dJ4qrEWDmqGA8FWJ0TYKJQ_42, NIM_FALSE);
				goto LA21;
			}
			LA40_: ;
		}
	} LA21: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genDiscriminantAsgn__injectdestructors_6670)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmp;
	tyArray__cypz0nHJsd9cnKgpO7fP5hQ T1_;
	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T2_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T4_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* le;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* leDotExpr;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* objType;
	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T34_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T35_;
{	result = NIM_NIL;
	tmp = getTemp__injectdestructors_61(c, s, (*(*n)._kind_6.sons->data[((NI) 1)]).typ, (*n).info);
	nimZeroMem((void*)T1_, sizeof(tyArray__cypz0nHJsd9cnKgpO7fP5hQ));
	result = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T1_, 0);
	nimZeroMem((void*)T2_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
	T2_[0] = tmp;
	T2_[1] = p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 1)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
	T3_ = NIM_NIL;
	T3_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T2_, 2);
	add__ast_4772(result, T3_);
	T4_ = NIM_NIL;
	T4_ = p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
	add__ast_4772(result, T4_);
	le = p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
	{
		if (!((*le).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46))) goto LA7_;
		leDotExpr = (*le)._kind_6.sons->data[((NI) 0)];
	}
	goto LA5_;
	LA7_: ;
	{
		leDotExpr = le;
	}
	LA5_: ;
	objType = (*(*leDotExpr)._kind_6.sons->data[((NI) 0)]).typ;
	{
		NIM_BOOL T12_;
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* branchDestructor;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cond;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T25_;
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T26_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T27_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* notExpr;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T28_;
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T29_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T30_;
		tyArray__jlWPjgtbdjE069arIWHC9c9bg T31_;
		tyArray__AB6yfoUgfWM2NtGe9bzkCmw T32_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T33_;
		T12_ = (NIM_BOOL)0;
		T12_ = hasDestructor__injectdestructors_49((&(*c)), objType);
		if (!T12_) goto LA13_;
		{
			NIM_BOOL T17_;
			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T18_;
			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T20_;
			tyArray__AB6yfoUgfWM2NtGe9bzkCmw T23_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T24_;
			T17_ = (NIM_BOOL)0;
			T18_ = NIM_NIL;
			T18_ = getAttachedOp__modulegraphs_4024((*c).graph, objType, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0));
			T17_ = !((T18_ == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
			if (!(T17_)) goto LA19_;
			T20_ = NIM_NIL;
			T20_ = getAttachedOp__modulegraphs_4024((*c).graph, objType, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0));
			T17_ = (((*T20_).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 35))&63U)))!=0);
			LA19_: ;
			if (!T17_) goto LA21_;
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_43), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__dJ4qrEWDmqGA8FWJ0TYKJQ_44, NIM_FALSE);
			nimZeroMem((void*)T23_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
			T23_[0] = le;
			T23_[1] = tmp;
			T24_ = NIM_NIL;
			T24_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T23_, 2);
			add__ast_4772(result, T24_);
			goto BeforeRet_;
		}
		LA21_: ;
		branchDestructor = produceDestructorForDiscriminator__liftdestructors_2003((*c).graph, objType, (*(*leDotExpr)._kind_6.sons->data[((NI) 1)])._kind_4.sym, (*n).info, (*c).idgen);
		T25_ = NIM_NIL;
		T25_ = getSysType__magicsys_60((*c).graph, unknownLineInfo__lineinfos_282, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1));
		cond = newNodeIT__ast_3338(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29), (*n).info, T25_);
		T26_ = NIM_NIL;
		T26_ = getMagicEqSymForType__magicsys_171((*c).graph, (*le).typ, (*n).info);
		T27_ = NIM_NIL;
		T27_ = newSymNode__ast_3691(T26_);
		add__ast_4772(cond, T27_);
		add__ast_4772(cond, le);
		add__ast_4772(cond, tmp);
		T28_ = NIM_NIL;
		T28_ = getSysType__magicsys_60((*c).graph, unknownLineInfo__lineinfos_282, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1));
		notExpr = newNodeIT__ast_3338(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30), (*n).info, T28_);
		T29_ = NIM_NIL;
		T29_ = createMagic__modulegraphs_9021((*c).graph, (*c).idgen, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_45), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 96));
		T30_ = NIM_NIL;
		T30_ = newSymNode__ast_3691(T29_);
		add__ast_4772(notExpr, T30_);
		add__ast_4772(notExpr, cond);
		nimZeroMem((void*)T31_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
		nimZeroMem((void*)T32_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
		T32_[0] = notExpr;
		T32_[1] = genOp__injectdestructors_6422(c, branchDestructor, le);
		T31_[0] = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86), T32_, 2);
		T33_ = NIM_NIL;
		T33_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92), T31_, 1);
		add__ast_4772(result, T33_);
	}
	LA13_: ;
	nimZeroMem((void*)T34_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
	T34_[0] = le;
	T34_[1] = tmp;
	T35_ = NIM_NIL;
	T35_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T34_, 2);
	add__ast_4772(result, T35_);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, p__injectdestructors_105)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw mode) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
{	result = NIM_NIL;
	{
		if (!((TM__dJ4qrEWDmqGA8FWJ0TYKJQ_7[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) goto LA3_;
		switch ((*n).kind) {
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126):
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T16_;
			{
				NI T8_;
				T8_ = (NI)0;
				T8_ = len__ast_3151(n);
				if (!(T8_ == ((NI) 0))) goto LA9_;
				result = n;
				goto BeforeRet_;
			}
			LA9_: ;
			result = copyNode__ast_4311(n);
			{
				NI iX60gensym198_;
				NI colontmp_;
				NI T12_;
				NI i;
				iX60gensym198_ = (NI)0;
				colontmp_ = (NI)0;
				T12_ = (NI)0;
				T12_ = len__ast_3151(n);
				colontmp_ = (NI)(T12_ - ((NI) 1));
				i = ((NI) 0);
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T15_;
						if (!(i < colontmp_)) goto LA14;
						iX60gensym198_ = i;
						T15_ = NIM_NIL;
						T15_ = p__injectdestructors_105((*n)._kind_6.sons->data[iX60gensym198_], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
						add__ast_4772(result, T15_);
						i += ((NI) 1);
					} LA14: ;
				}
			}
			T16_ = NIM_NIL;
			{
				NI T19_;
				NIM_BOOL T20_;
				NI T23_;
				T19_ = (NI)0;
				T19_ = len__ast_3151(n);
				T20_ = (NIM_BOOL)0;
				T20_ = isEmptyType__ast_4754((*(*n)._kind_6.sons->data[(NI)(T19_ - ((NI) 1))]).typ);
				if (!T20_) goto LA21_;
				T23_ = (NI)0;
				T23_ = len__ast_3151(n);
				T16_ = p__injectdestructors_105((*n)._kind_6.sons->data[(NI)(T23_ - ((NI) 1))], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
			}
			goto LA17_;
			LA21_: ;
			{
				NI T25_;
				T25_ = (NI)0;
				T25_ = len__ast_3151(n);
				T16_ = p__injectdestructors_105((*n)._kind_6.sons->data[(NI)(T25_ - ((NI) 1))], c, s, mode);
			}
			LA17_: ;
			add__ast_4772(result, T16_);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 97):
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T27_;
			result = copyNode__ast_4311(n);
			T27_ = NIM_NIL;
			T27_ = p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
			add__ast_4772(result, T27_);
			{
				NI iX60gensym198__2;
				NI colontmp__2;
				NI i_2;
				iX60gensym198__2 = (NI)0;
				colontmp__2 = (NI)0;
				colontmp__2 = len__ast_3151(n);
				i_2 = ((NI) 1);
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* itX60gensym198_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchX60gensym198_;
						tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ ofScopeX60gensym198_;
						NI T35_;
						if (!(i_2 < colontmp__2)) goto LA30;
						iX60gensym198__2 = i_2;
						itX60gensym198_ = (*n)._kind_6.sons->data[iX60gensym198__2];
						branchX60gensym198_ = shallowCopy__ast_4388(itX60gensym198_);
						{
							NI jX60gensym198_;
							NI colontmp__3;
							NI T32_;
							NI i_3;
							jX60gensym198_ = (NI)0;
							colontmp__3 = (NI)0;
							T32_ = (NI)0;
							T32_ = len__ast_3151(itX60gensym198_);
							colontmp__3 = (NI)(T32_ - ((NI) 1));
							i_3 = ((NI) 0);
							{
								while (1) {
									if (!(i_3 < colontmp__3)) goto LA34;
									jX60gensym198_ = i_3;
									asgnRef((void**) (&(*branchX60gensym198_)._kind_6.sons->data[jX60gensym198_]), copyTree__ast_4406((*itX60gensym198_)._kind_6.sons->data[jX60gensym198_]));
									i_3 += ((NI) 1);
								} LA34: ;
							}
						}
						nimZeroMem((void*)(&ofScopeX60gensym198_), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
						nestedScope__injectdestructors_72(s, (&ofScopeX60gensym198_));
						T35_ = (NI)0;
						T35_ = len__ast_3151(branchX60gensym198_);
						{
							NIM_BOOL T38_;
							NI T39_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T43_;
							T38_ = (NIM_BOOL)0;
							T39_ = (NI)0;
							T39_ = len__ast_3151(itX60gensym198_);
							T38_ = isEmptyType__ast_4754((*(*itX60gensym198_)._kind_6.sons->data[(NI)(T39_ - ((NI) 1))]).typ);
							if (T38_) goto LA40_;
							T38_ = NIM_FALSE;
							LA40_: ;
							if (!T38_) goto LA41_;
							T43_ = NIM_NIL;
							{
								NI T46_;
								NIM_BOOL T47_;
								NI T50_;
								T46_ = (NI)0;
								T46_ = len__ast_3151(itX60gensym198_);
								T47_ = (NIM_BOOL)0;
								T47_ = isEmptyType__ast_4754((*(*itX60gensym198_)._kind_6.sons->data[(NI)(T46_ - ((NI) 1))]).typ);
								if (!T47_) goto LA48_;
								T50_ = (NI)0;
								T50_ = len__ast_3151(itX60gensym198_);
								T43_ = p__injectdestructors_105((*itX60gensym198_)._kind_6.sons->data[(NI)(T50_ - ((NI) 1))], c, (&ofScopeX60gensym198_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
							}
							goto LA44_;
							LA48_: ;
							{
								NI T52_;
								T52_ = (NI)0;
								T52_ = len__ast_3151(itX60gensym198_);
								T43_ = p__injectdestructors_105((*itX60gensym198_)._kind_6.sons->data[(NI)(T52_ - ((NI) 1))], c, (&ofScopeX60gensym198_), mode);
							}
							LA44_: ;
							asgnRef((void**) (&(*branchX60gensym198_)._kind_6.sons->data[(NI)(T35_ - ((NI) 1))]), processScope__injectdestructors_7018(c, (&ofScopeX60gensym198_), T43_));
						}
						goto LA36_;
						LA41_: ;
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym236_;
							NI T54_;
							NI T55_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym236_;
							NI T56_;
							NI T57_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym236_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym236_;
							NI T84_;
							T54_ = (NI)0;
							T54_ = len__ast_3151(itX60gensym198_);
							T55_ = (NI)0;
							T55_ = len__ast_3151(itX60gensym198_);
							resultX60gensym236_ = newNodeIT__ast_3338(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*itX60gensym198_)._kind_6.sons->data[(NI)(T54_ - ((NI) 1))]).info, (*(*itX60gensym198_)._kind_6.sons->data[(NI)(T55_ - ((NI) 1))]).typ);
							T56_ = (NI)0;
							T56_ = len__ast_3151(itX60gensym198_);
							T57_ = (NI)0;
							T57_ = len__ast_3151(itX60gensym198_);
							tmpX60gensym236_ = getTemp__injectdestructors_61(c, ofScopeX60gensym198_.parent, (*(*itX60gensym198_)._kind_6.sons->data[(NI)(T56_ - ((NI) 1))]).typ, (*(*itX60gensym198_)._kind_6.sons->data[(NI)(T57_ - ((NI) 1))]).info);
							(*(*tmpX60gensym236_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 45)) & 63);
							{
								NI T60_;
								NIM_BOOL T61_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T64_;
								NI T65_;
								NI T66_;
								T60_ = (NI)0;
								T60_ = len__ast_3151(itX60gensym198_);
								T61_ = (NIM_BOOL)0;
								T61_ = hasDestructor__injectdestructors_49((&(*c)), (*(*itX60gensym198_)._kind_6.sons->data[(NI)(T60_ - ((NI) 1))]).typ);
								if (!T61_) goto LA62_;
								T64_ = NIM_NIL;
								T64_ = genDestroy__injectdestructors_6529(c, tmpX60gensym236_);
								unsureAsgnRef((void**) (&(*ofScopeX60gensym198_.parent).final), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*ofScopeX60gensym198_.parent).final), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
								T65_ = (*ofScopeX60gensym198_.parent).final->Sup.len++;
								asgnRef((void**) (&(*ofScopeX60gensym198_.parent).final->data[T65_]), T64_);
								T66_ = (NI)0;
								T66_ = len__ast_3151(itX60gensym198_);
								cpyX60gensym236_ = moveOrCopy__injectdestructors_110(tmpX60gensym236_, (*itX60gensym198_)._kind_6.sons->data[(NI)(T66_ - ((NI) 1))], c, (&ofScopeX60gensym198_), NIM_TRUE);
							}
							goto LA58_;
							LA62_: ;
							{
								tyArray__AB6yfoUgfWM2NtGe9bzkCmw T68_;
								NI T69_;
								nimZeroMem((void*)T68_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
								T68_[0] = tmpX60gensym236_;
								T69_ = (NI)0;
								T69_ = len__ast_3151(itX60gensym198_);
								T68_[1] = p__injectdestructors_105((*itX60gensym198_)._kind_6.sons->data[(NI)(T69_ - ((NI) 1))], c, (&ofScopeX60gensym198_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
								cpyX60gensym236_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T68_, 2);
							}
							LA58_: ;
							{
								NI T72_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym236_;
								NI T75_;
								T72_ = (ofScopeX60gensym198_.vars ? ofScopeX60gensym198_.vars->Sup.len : 0);
								if (!(((NI) 0) < T72_)) goto LA73_;
								T75_ = (NI)0;
								T75_ = len__ast_3151(itX60gensym198_);
								varSectionX60gensym236_ = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*itX60gensym198_)._kind_6.sons->data[(NI)(T75_ - ((NI) 1))]).info);
								{
									tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** tmpX60gensym236__2;
									NI i_4;
									NI L;
									NI T77_;
									tmpX60gensym236__2 = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
									i_4 = ((NI) 0);
									T77_ = (ofScopeX60gensym198_.vars ? ofScopeX60gensym198_.vars->Sup.len : 0);
									L = T77_;
									{
										while (1) {
											tyArray__T6RKPw8xfAeNaoei9aZGzXg T80_;
											NI T81_;
											NI T82_;
											tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T83_;
											if (!(i_4 < L)) goto LA79;
											tmpX60gensym236__2 = &ofScopeX60gensym198_.vars->data[i_4];
											nimZeroMem((void*)T80_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
											T80_[0] = newSymNode__ast_3691((*tmpX60gensym236__2));
											T81_ = (NI)0;
											T81_ = len__ast_3151(itX60gensym198_);
											T80_[1] = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym198_)._kind_6.sons->data[(NI)(T81_ - ((NI) 1))]).info);
											T82_ = (NI)0;
											T82_ = len__ast_3151(itX60gensym198_);
											T80_[2] = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym198_)._kind_6.sons->data[(NI)(T82_ - ((NI) 1))]).info);
											T83_ = NIM_NIL;
											T83_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T80_, 3);
											add__ast_4772(varSectionX60gensym236_, T83_);
											i_4 += ((NI) 1);
										} LA79: ;
									}
								}
								add__ast_4772(resultX60gensym236_, varSectionX60gensym236_);
							}
							LA73_: ;
							T84_ = (NI)0;
							T84_ = len__ast_3151(itX60gensym198_);
							finSectionX60gensym236_ = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*itX60gensym198_)._kind_6.sons->data[(NI)(T84_ - ((NI) 1))]).info);
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym236_;
								NI i_5;
								NI L_2;
								NI T86_;
								mX60gensym236_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
								i_5 = ((NI) 0);
								T86_ = (ofScopeX60gensym198_.wasMoved ? ofScopeX60gensym198_.wasMoved->Sup.len : 0);
								L_2 = T86_;
								{
									while (1) {
										if (!(i_5 < L_2)) goto LA88;
										mX60gensym236_ = &ofScopeX60gensym198_.wasMoved->data[i_5];
										add__ast_4772(finSectionX60gensym236_, (*mX60gensym236_));
										i_5 += ((NI) 1);
									} LA88: ;
								}
							}
							{
								NI iX60gensym236_;
								NI colontmp__4;
								NI T90_;
								NI res;
								iX60gensym236_ = (NI)0;
								colontmp__4 = (NI)0;
								T90_ = ((ofScopeX60gensym198_.final ? ofScopeX60gensym198_.final->Sup.len : 0)-1);
								colontmp__4 = T90_;
								res = colontmp__4;
								{
									while (1) {
										if (!(((NI) 0) <= res)) goto LA92;
										iX60gensym236_ = res;
										add__ast_4772(finSectionX60gensym236_, ofScopeX60gensym198_.final->data[iX60gensym236_]);
										res -= ((NI) 1);
									} LA92: ;
								}
							}
							{
								tyArray__AB6yfoUgfWM2NtGe9bzkCmw T97_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T98_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T99_;
								if (!ofScopeX60gensym198_.needsTry) goto LA95_;
								nimZeroMem((void*)T97_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
								T97_[0] = cpyX60gensym236_;
								T97_[1] = p__injectdestructors_105(tmpX60gensym236_, c, ofScopeX60gensym198_.parent, mode);
								T98_ = NIM_NIL;
								T98_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T97_, 2);
								T99_ = NIM_NIL;
								T99_ = newTryFinally__lowerings_207(T98_, finSectionX60gensym236_);
								add__ast_4772(resultX60gensym236_, T99_);
							}
							goto LA93_;
							LA95_: ;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T101_;
								add__ast_4772(resultX60gensym236_, cpyX60gensym236_);
								add__ast_4772(resultX60gensym236_, finSectionX60gensym236_);
								T101_ = NIM_NIL;
								T101_ = p__injectdestructors_105(tmpX60gensym236_, c, ofScopeX60gensym198_.parent, mode);
								add__ast_4772(resultX60gensym236_, T101_);
							}
							LA93_: ;
							{
								NIM_BOOL T106_;
								if (!!((ofScopeX60gensym198_.parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL)))) goto LA104_;
								T106_ = (NIM_BOOL)0;
								T106_ = (*ofScopeX60gensym198_.parent).needsTry;
								if (T106_) goto LA107_;
								T106_ = ofScopeX60gensym198_.needsTry;
								LA107_: ;
								(*ofScopeX60gensym198_.parent).needsTry = T106_;
							}
							LA104_: ;
							asgnRef((void**) (&(*branchX60gensym198_)._kind_6.sons->data[(NI)(T35_ - ((NI) 1))]), resultX60gensym236_);
						}
						LA36_: ;
						add__ast_4772(result, branchX60gensym198_);
						i_2 += ((NI) 1);
					} LA30: ;
				}
			}
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 96):
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T109_;
			tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ bodyScopeX60gensym198_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* bodyResultX60gensym198_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T110_;
			(*c).inLoop += ((NI) 1);
			(*c).inLoopCond += ((NI) 1);
			result = copyNode__ast_4311(n);
			T109_ = NIM_NIL;
			T109_ = p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
			add__ast_4772(result, T109_);
			(*c).inLoopCond -= ((NI) 1);
			nimZeroMem((void*)(&bodyScopeX60gensym198_), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
			nestedScope__injectdestructors_72(s, (&bodyScopeX60gensym198_));
			bodyResultX60gensym198_ = p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym198_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
			T110_ = NIM_NIL;
			T110_ = processScope__injectdestructors_7018(c, (&bodyScopeX60gensym198_), bodyResultX60gensym198_);
			add__ast_4772(result, T110_);
			(*c).inLoop -= ((NI) 1);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 95):
		{
			NI lastX60gensym198_;
			NI T112_;
			tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ bodyScopeX60gensym198__2;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* bodyResultX60gensym198__2;
			(*c).inLoop += ((NI) 1);
			result = shallowCopy__ast_4388(n);
			T112_ = (NI)0;
			T112_ = len__ast_3151(n);
			lastX60gensym198_ = (NI)(T112_ - ((NI) 1));
			{
				NI iX60gensym198__3;
				NI colontmp__5;
				NI i_6;
				iX60gensym198__3 = (NI)0;
				colontmp__5 = (NI)0;
				colontmp__5 = (NI)(lastX60gensym198_ - ((NI) 1));
				i_6 = ((NI) 0);
				{
					while (1) {
						if (!(i_6 < colontmp__5)) goto LA115;
						iX60gensym198__3 = i_6;
						asgnRef((void**) (&(*result)._kind_6.sons->data[iX60gensym198__3]), (*n)._kind_6.sons->data[iX60gensym198__3]);
						i_6 += ((NI) 1);
					} LA115: ;
				}
			}
			asgnRef((void**) (&(*result)._kind_6.sons->data[(NI)(lastX60gensym198_ - ((NI) 1))]), p__injectdestructors_105((*n)._kind_6.sons->data[(NI)(lastX60gensym198_ - ((NI) 1))], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0)));
			nimZeroMem((void*)(&bodyScopeX60gensym198__2), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
			nestedScope__injectdestructors_72(s, (&bodyScopeX60gensym198__2));
			bodyResultX60gensym198__2 = p__injectdestructors_105((*n)._kind_6.sons->data[lastX60gensym198_], c, (&bodyScopeX60gensym198__2), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
			asgnRef((void**) (&(*result)._kind_6.sons->data[lastX60gensym198_]), processScope__injectdestructors_7018(c, (&bodyScopeX60gensym198__2), bodyResultX60gensym198__2));
			(*c).inLoop -= ((NI) 1);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 112):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 127):
		{
			tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ bodyScopeX60gensym198__3;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T117_;
			result = copyNode__ast_4311(n);
			add__ast_4772(result, (*n)._kind_6.sons->data[((NI) 0)]);
			nimZeroMem((void*)(&bodyScopeX60gensym198__3), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
			nestedScope__injectdestructors_72(s, (&bodyScopeX60gensym198__3));
			T117_ = NIM_NIL;
			{
				NIM_BOOL T120_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T124_;
				T120_ = (NIM_BOOL)0;
				T120_ = isEmptyType__ast_4754((*(*n)._kind_6.sons->data[((NI) 1)]).typ);
				if (T120_) goto LA121_;
				T120_ = NIM_FALSE;
				LA121_: ;
				if (!T120_) goto LA122_;
				T124_ = NIM_NIL;
				T124_ = p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym198__3), mode);
				T117_ = processScope__injectdestructors_7018(c, (&bodyScopeX60gensym198__3), T124_);
			}
			goto LA118_;
			LA122_: ;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym258_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym258_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym258_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym258_;
				resultX60gensym258_ = newNodeIT__ast_3338(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*n)._kind_6.sons->data[((NI) 1)]).info, (*(*n)._kind_6.sons->data[((NI) 1)]).typ);
				tmpX60gensym258_ = getTemp__injectdestructors_61(c, bodyScopeX60gensym198__3.parent, (*(*n)._kind_6.sons->data[((NI) 1)]).typ, (*(*n)._kind_6.sons->data[((NI) 1)]).info);
				(*(*tmpX60gensym258_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 45)) & 63);
				{
					NIM_BOOL T128_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T131_;
					NI T132_;
					T128_ = (NIM_BOOL)0;
					T128_ = hasDestructor__injectdestructors_49((&(*c)), (*(*n)._kind_6.sons->data[((NI) 1)]).typ);
					if (!T128_) goto LA129_;
					T131_ = NIM_NIL;
					T131_ = genDestroy__injectdestructors_6529(c, tmpX60gensym258_);
					unsureAsgnRef((void**) (&(*bodyScopeX60gensym198__3.parent).final), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*bodyScopeX60gensym198__3.parent).final), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
					T132_ = (*bodyScopeX60gensym198__3.parent).final->Sup.len++;
					asgnRef((void**) (&(*bodyScopeX60gensym198__3.parent).final->data[T132_]), T131_);
					cpyX60gensym258_ = moveOrCopy__injectdestructors_110(tmpX60gensym258_, (*n)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym198__3), NIM_TRUE);
				}
				goto LA126_;
				LA129_: ;
				{
					tyArray__AB6yfoUgfWM2NtGe9bzkCmw T134_;
					nimZeroMem((void*)T134_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
					T134_[0] = tmpX60gensym258_;
					T134_[1] = p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym198__3), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
					cpyX60gensym258_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T134_, 2);
				}
				LA126_: ;
				{
					NI T137_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym258_;
					T137_ = (bodyScopeX60gensym198__3.vars ? bodyScopeX60gensym198__3.vars->Sup.len : 0);
					if (!(((NI) 0) < T137_)) goto LA138_;
					varSectionX60gensym258_ = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*n)._kind_6.sons->data[((NI) 1)]).info);
					{
						tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** tmpX60gensym258__2;
						NI i_7;
						NI L_3;
						NI T141_;
						tmpX60gensym258__2 = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
						i_7 = ((NI) 0);
						T141_ = (bodyScopeX60gensym198__3.vars ? bodyScopeX60gensym198__3.vars->Sup.len : 0);
						L_3 = T141_;
						{
							while (1) {
								tyArray__T6RKPw8xfAeNaoei9aZGzXg T144_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T145_;
								if (!(i_7 < L_3)) goto LA143;
								tmpX60gensym258__2 = &bodyScopeX60gensym198__3.vars->data[i_7];
								nimZeroMem((void*)T144_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
								T144_[0] = newSymNode__ast_3691((*tmpX60gensym258__2));
								T144_[1] = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*n)._kind_6.sons->data[((NI) 1)]).info);
								T144_[2] = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*n)._kind_6.sons->data[((NI) 1)]).info);
								T145_ = NIM_NIL;
								T145_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T144_, 3);
								add__ast_4772(varSectionX60gensym258_, T145_);
								i_7 += ((NI) 1);
							} LA143: ;
						}
					}
					add__ast_4772(resultX60gensym258_, varSectionX60gensym258_);
				}
				LA138_: ;
				finSectionX60gensym258_ = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*n)._kind_6.sons->data[((NI) 1)]).info);
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym258_;
					NI i_8;
					NI L_4;
					NI T147_;
					mX60gensym258_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
					i_8 = ((NI) 0);
					T147_ = (bodyScopeX60gensym198__3.wasMoved ? bodyScopeX60gensym198__3.wasMoved->Sup.len : 0);
					L_4 = T147_;
					{
						while (1) {
							if (!(i_8 < L_4)) goto LA149;
							mX60gensym258_ = &bodyScopeX60gensym198__3.wasMoved->data[i_8];
							add__ast_4772(finSectionX60gensym258_, (*mX60gensym258_));
							i_8 += ((NI) 1);
						} LA149: ;
					}
				}
				{
					NI iX60gensym258_;
					NI colontmp__6;
					NI T151_;
					NI res_2;
					iX60gensym258_ = (NI)0;
					colontmp__6 = (NI)0;
					T151_ = ((bodyScopeX60gensym198__3.final ? bodyScopeX60gensym198__3.final->Sup.len : 0)-1);
					colontmp__6 = T151_;
					res_2 = colontmp__6;
					{
						while (1) {
							if (!(((NI) 0) <= res_2)) goto LA153;
							iX60gensym258_ = res_2;
							add__ast_4772(finSectionX60gensym258_, bodyScopeX60gensym198__3.final->data[iX60gensym258_]);
							res_2 -= ((NI) 1);
						} LA153: ;
					}
				}
				{
					tyArray__AB6yfoUgfWM2NtGe9bzkCmw T158_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T159_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T160_;
					if (!bodyScopeX60gensym198__3.needsTry) goto LA156_;
					nimZeroMem((void*)T158_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
					T158_[0] = cpyX60gensym258_;
					T158_[1] = p__injectdestructors_105(tmpX60gensym258_, c, bodyScopeX60gensym198__3.parent, mode);
					T159_ = NIM_NIL;
					T159_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T158_, 2);
					T160_ = NIM_NIL;
					T160_ = newTryFinally__lowerings_207(T159_, finSectionX60gensym258_);
					add__ast_4772(resultX60gensym258_, T160_);
				}
				goto LA154_;
				LA156_: ;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T162_;
					add__ast_4772(resultX60gensym258_, cpyX60gensym258_);
					add__ast_4772(resultX60gensym258_, finSectionX60gensym258_);
					T162_ = NIM_NIL;
					T162_ = p__injectdestructors_105(tmpX60gensym258_, c, bodyScopeX60gensym198__3.parent, mode);
					add__ast_4772(resultX60gensym258_, T162_);
				}
				LA154_: ;
				{
					NIM_BOOL T167_;
					if (!!((bodyScopeX60gensym198__3.parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL)))) goto LA165_;
					T167_ = (NIM_BOOL)0;
					T167_ = (*bodyScopeX60gensym198__3.parent).needsTry;
					if (T167_) goto LA168_;
					T167_ = bodyScopeX60gensym198__3.needsTry;
					LA168_: ;
					(*bodyScopeX60gensym198__3.parent).needsTry = T167_;
				}
				LA165_: ;
				T117_ = resultX60gensym258_;
			}
			LA118_: ;
			add__ast_4772(result, T117_);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 48):
		{
			result = copyNode__ast_4311(n);
			{
				NI iX60gensym198__4;
				NI colontmp__7;
				NI i_9;
				iX60gensym198__4 = (NI)0;
				colontmp__7 = (NI)0;
				colontmp__7 = len__ast_3151(n);
				i_9 = ((NI) 0);
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* itX60gensym198__2;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchX60gensym198__2;
						tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ branchScopeX60gensym198_;
						NI T177_;
						if (!(i_9 < colontmp__7)) goto LA172;
						iX60gensym198__4 = i_9;
						itX60gensym198__2 = (*n)._kind_6.sons->data[iX60gensym198__4];
						branchX60gensym198__2 = shallowCopy__ast_4388(itX60gensym198__2);
						nimZeroMem((void*)(&branchScopeX60gensym198_), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
						nestedScope__injectdestructors_72(s, (&branchScopeX60gensym198_));
						{
							if (!((*itX60gensym198__2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86) || (*itX60gensym198__2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 49))) goto LA175_;
							asgnRef((void**) (&(*branchX60gensym198__2)._kind_6.sons->data[((NI) 0)]), p__injectdestructors_105((*itX60gensym198__2)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0)));
						}
						LA175_: ;
						T177_ = (NI)0;
						T177_ = len__ast_3151(branchX60gensym198__2);
						{
							NIM_BOOL T180_;
							NI T181_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T185_;
							T180_ = (NIM_BOOL)0;
							T181_ = (NI)0;
							T181_ = len__ast_3151(itX60gensym198__2);
							T180_ = isEmptyType__ast_4754((*(*itX60gensym198__2)._kind_6.sons->data[(NI)(T181_ - ((NI) 1))]).typ);
							if (T180_) goto LA182_;
							T180_ = NIM_FALSE;
							LA182_: ;
							if (!T180_) goto LA183_;
							T185_ = NIM_NIL;
							{
								NI T188_;
								NIM_BOOL T189_;
								NI T192_;
								T188_ = (NI)0;
								T188_ = len__ast_3151(itX60gensym198__2);
								T189_ = (NIM_BOOL)0;
								T189_ = isEmptyType__ast_4754((*(*itX60gensym198__2)._kind_6.sons->data[(NI)(T188_ - ((NI) 1))]).typ);
								if (!T189_) goto LA190_;
								T192_ = (NI)0;
								T192_ = len__ast_3151(itX60gensym198__2);
								T185_ = p__injectdestructors_105((*itX60gensym198__2)._kind_6.sons->data[(NI)(T192_ - ((NI) 1))], c, (&branchScopeX60gensym198_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
							}
							goto LA186_;
							LA190_: ;
							{
								NI T194_;
								T194_ = (NI)0;
								T194_ = len__ast_3151(itX60gensym198__2);
								T185_ = p__injectdestructors_105((*itX60gensym198__2)._kind_6.sons->data[(NI)(T194_ - ((NI) 1))], c, (&branchScopeX60gensym198_), mode);
							}
							LA186_: ;
							asgnRef((void**) (&(*branchX60gensym198__2)._kind_6.sons->data[(NI)(T177_ - ((NI) 1))]), processScope__injectdestructors_7018(c, (&branchScopeX60gensym198_), T185_));
						}
						goto LA178_;
						LA183_: ;
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym287_;
							NI T196_;
							NI T197_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym287_;
							NI T198_;
							NI T199_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym287_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym287_;
							NI T226_;
							T196_ = (NI)0;
							T196_ = len__ast_3151(itX60gensym198__2);
							T197_ = (NI)0;
							T197_ = len__ast_3151(itX60gensym198__2);
							resultX60gensym287_ = newNodeIT__ast_3338(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*itX60gensym198__2)._kind_6.sons->data[(NI)(T196_ - ((NI) 1))]).info, (*(*itX60gensym198__2)._kind_6.sons->data[(NI)(T197_ - ((NI) 1))]).typ);
							T198_ = (NI)0;
							T198_ = len__ast_3151(itX60gensym198__2);
							T199_ = (NI)0;
							T199_ = len__ast_3151(itX60gensym198__2);
							tmpX60gensym287_ = getTemp__injectdestructors_61(c, branchScopeX60gensym198_.parent, (*(*itX60gensym198__2)._kind_6.sons->data[(NI)(T198_ - ((NI) 1))]).typ, (*(*itX60gensym198__2)._kind_6.sons->data[(NI)(T199_ - ((NI) 1))]).info);
							(*(*tmpX60gensym287_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 45)) & 63);
							{
								NI T202_;
								NIM_BOOL T203_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T206_;
								NI T207_;
								NI T208_;
								T202_ = (NI)0;
								T202_ = len__ast_3151(itX60gensym198__2);
								T203_ = (NIM_BOOL)0;
								T203_ = hasDestructor__injectdestructors_49((&(*c)), (*(*itX60gensym198__2)._kind_6.sons->data[(NI)(T202_ - ((NI) 1))]).typ);
								if (!T203_) goto LA204_;
								T206_ = NIM_NIL;
								T206_ = genDestroy__injectdestructors_6529(c, tmpX60gensym287_);
								unsureAsgnRef((void**) (&(*branchScopeX60gensym198_.parent).final), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*branchScopeX60gensym198_.parent).final), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
								T207_ = (*branchScopeX60gensym198_.parent).final->Sup.len++;
								asgnRef((void**) (&(*branchScopeX60gensym198_.parent).final->data[T207_]), T206_);
								T208_ = (NI)0;
								T208_ = len__ast_3151(itX60gensym198__2);
								cpyX60gensym287_ = moveOrCopy__injectdestructors_110(tmpX60gensym287_, (*itX60gensym198__2)._kind_6.sons->data[(NI)(T208_ - ((NI) 1))], c, (&branchScopeX60gensym198_), NIM_TRUE);
							}
							goto LA200_;
							LA204_: ;
							{
								tyArray__AB6yfoUgfWM2NtGe9bzkCmw T210_;
								NI T211_;
								nimZeroMem((void*)T210_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
								T210_[0] = tmpX60gensym287_;
								T211_ = (NI)0;
								T211_ = len__ast_3151(itX60gensym198__2);
								T210_[1] = p__injectdestructors_105((*itX60gensym198__2)._kind_6.sons->data[(NI)(T211_ - ((NI) 1))], c, (&branchScopeX60gensym198_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
								cpyX60gensym287_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T210_, 2);
							}
							LA200_: ;
							{
								NI T214_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym287_;
								NI T217_;
								T214_ = (branchScopeX60gensym198_.vars ? branchScopeX60gensym198_.vars->Sup.len : 0);
								if (!(((NI) 0) < T214_)) goto LA215_;
								T217_ = (NI)0;
								T217_ = len__ast_3151(itX60gensym198__2);
								varSectionX60gensym287_ = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*itX60gensym198__2)._kind_6.sons->data[(NI)(T217_ - ((NI) 1))]).info);
								{
									tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** tmpX60gensym287__2;
									NI i_10;
									NI L_5;
									NI T219_;
									tmpX60gensym287__2 = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
									i_10 = ((NI) 0);
									T219_ = (branchScopeX60gensym198_.vars ? branchScopeX60gensym198_.vars->Sup.len : 0);
									L_5 = T219_;
									{
										while (1) {
											tyArray__T6RKPw8xfAeNaoei9aZGzXg T222_;
											NI T223_;
											NI T224_;
											tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T225_;
											if (!(i_10 < L_5)) goto LA221;
											tmpX60gensym287__2 = &branchScopeX60gensym198_.vars->data[i_10];
											nimZeroMem((void*)T222_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
											T222_[0] = newSymNode__ast_3691((*tmpX60gensym287__2));
											T223_ = (NI)0;
											T223_ = len__ast_3151(itX60gensym198__2);
											T222_[1] = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym198__2)._kind_6.sons->data[(NI)(T223_ - ((NI) 1))]).info);
											T224_ = (NI)0;
											T224_ = len__ast_3151(itX60gensym198__2);
											T222_[2] = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym198__2)._kind_6.sons->data[(NI)(T224_ - ((NI) 1))]).info);
											T225_ = NIM_NIL;
											T225_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T222_, 3);
											add__ast_4772(varSectionX60gensym287_, T225_);
											i_10 += ((NI) 1);
										} LA221: ;
									}
								}
								add__ast_4772(resultX60gensym287_, varSectionX60gensym287_);
							}
							LA215_: ;
							T226_ = (NI)0;
							T226_ = len__ast_3151(itX60gensym198__2);
							finSectionX60gensym287_ = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*itX60gensym198__2)._kind_6.sons->data[(NI)(T226_ - ((NI) 1))]).info);
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym287_;
								NI i_11;
								NI L_6;
								NI T228_;
								mX60gensym287_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
								i_11 = ((NI) 0);
								T228_ = (branchScopeX60gensym198_.wasMoved ? branchScopeX60gensym198_.wasMoved->Sup.len : 0);
								L_6 = T228_;
								{
									while (1) {
										if (!(i_11 < L_6)) goto LA230;
										mX60gensym287_ = &branchScopeX60gensym198_.wasMoved->data[i_11];
										add__ast_4772(finSectionX60gensym287_, (*mX60gensym287_));
										i_11 += ((NI) 1);
									} LA230: ;
								}
							}
							{
								NI iX60gensym287_;
								NI colontmp__8;
								NI T232_;
								NI res_3;
								iX60gensym287_ = (NI)0;
								colontmp__8 = (NI)0;
								T232_ = ((branchScopeX60gensym198_.final ? branchScopeX60gensym198_.final->Sup.len : 0)-1);
								colontmp__8 = T232_;
								res_3 = colontmp__8;
								{
									while (1) {
										if (!(((NI) 0) <= res_3)) goto LA234;
										iX60gensym287_ = res_3;
										add__ast_4772(finSectionX60gensym287_, branchScopeX60gensym198_.final->data[iX60gensym287_]);
										res_3 -= ((NI) 1);
									} LA234: ;
								}
							}
							{
								tyArray__AB6yfoUgfWM2NtGe9bzkCmw T239_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T240_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T241_;
								if (!branchScopeX60gensym198_.needsTry) goto LA237_;
								nimZeroMem((void*)T239_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
								T239_[0] = cpyX60gensym287_;
								T239_[1] = p__injectdestructors_105(tmpX60gensym287_, c, branchScopeX60gensym198_.parent, mode);
								T240_ = NIM_NIL;
								T240_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T239_, 2);
								T241_ = NIM_NIL;
								T241_ = newTryFinally__lowerings_207(T240_, finSectionX60gensym287_);
								add__ast_4772(resultX60gensym287_, T241_);
							}
							goto LA235_;
							LA237_: ;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T243_;
								add__ast_4772(resultX60gensym287_, cpyX60gensym287_);
								add__ast_4772(resultX60gensym287_, finSectionX60gensym287_);
								T243_ = NIM_NIL;
								T243_ = p__injectdestructors_105(tmpX60gensym287_, c, branchScopeX60gensym198_.parent, mode);
								add__ast_4772(resultX60gensym287_, T243_);
							}
							LA235_: ;
							{
								NIM_BOOL T248_;
								if (!!((branchScopeX60gensym198_.parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL)))) goto LA246_;
								T248_ = (NIM_BOOL)0;
								T248_ = (*branchScopeX60gensym198_.parent).needsTry;
								if (T248_) goto LA249_;
								T248_ = branchScopeX60gensym198_.needsTry;
								LA249_: ;
								(*branchScopeX60gensym198_.parent).needsTry = T248_;
							}
							LA246_: ;
							asgnRef((void**) (&(*branchX60gensym198__2)._kind_6.sons->data[(NI)(T177_ - ((NI) 1))]), resultX60gensym287_);
						}
						LA178_: ;
						add__ast_4772(result, branchX60gensym198__2);
						i_9 += ((NI) 1);
					} LA172: ;
				}
			}
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 106):
		{
			tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ tryScopeX60gensym198_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T251_;
			result = copyNode__ast_4311(n);
			nimZeroMem((void*)(&tryScopeX60gensym198_), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
			nestedScope__injectdestructors_72(s, (&tryScopeX60gensym198_));
			T251_ = NIM_NIL;
			{
				NIM_BOOL T254_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T258_;
				T254_ = (NIM_BOOL)0;
				T254_ = isEmptyType__ast_4754((*(*n)._kind_6.sons->data[((NI) 0)]).typ);
				if (T254_) goto LA255_;
				T254_ = NIM_FALSE;
				LA255_: ;
				if (!T254_) goto LA256_;
				T258_ = NIM_NIL;
				{
					NIM_BOOL T261_;
					T261_ = (NIM_BOOL)0;
					T261_ = isEmptyType__ast_4754((*(*n)._kind_6.sons->data[((NI) 0)]).typ);
					if (!T261_) goto LA262_;
					T258_ = p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym198_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
				}
				goto LA259_;
				LA262_: ;
				{
					T258_ = p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym198_), mode);
				}
				LA259_: ;
				T251_ = processScope__injectdestructors_7018(c, (&tryScopeX60gensym198_), T258_);
			}
			goto LA252_;
			LA256_: ;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym303_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym303_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym303_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym303_;
				resultX60gensym303_ = newNodeIT__ast_3338(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*n)._kind_6.sons->data[((NI) 0)]).info, (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
				tmpX60gensym303_ = getTemp__injectdestructors_61(c, tryScopeX60gensym198_.parent, (*(*n)._kind_6.sons->data[((NI) 0)]).typ, (*(*n)._kind_6.sons->data[((NI) 0)]).info);
				(*(*tmpX60gensym303_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 45)) & 63);
				{
					NIM_BOOL T268_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T271_;
					NI T272_;
					T268_ = (NIM_BOOL)0;
					T268_ = hasDestructor__injectdestructors_49((&(*c)), (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
					if (!T268_) goto LA269_;
					T271_ = NIM_NIL;
					T271_ = genDestroy__injectdestructors_6529(c, tmpX60gensym303_);
					unsureAsgnRef((void**) (&(*tryScopeX60gensym198_.parent).final), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*tryScopeX60gensym198_.parent).final), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
					T272_ = (*tryScopeX60gensym198_.parent).final->Sup.len++;
					asgnRef((void**) (&(*tryScopeX60gensym198_.parent).final->data[T272_]), T271_);
					cpyX60gensym303_ = moveOrCopy__injectdestructors_110(tmpX60gensym303_, (*n)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym198_), NIM_TRUE);
				}
				goto LA266_;
				LA269_: ;
				{
					tyArray__AB6yfoUgfWM2NtGe9bzkCmw T274_;
					nimZeroMem((void*)T274_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
					T274_[0] = tmpX60gensym303_;
					T274_[1] = p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym198_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
					cpyX60gensym303_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T274_, 2);
				}
				LA266_: ;
				{
					NI T277_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym303_;
					T277_ = (tryScopeX60gensym198_.vars ? tryScopeX60gensym198_.vars->Sup.len : 0);
					if (!(((NI) 0) < T277_)) goto LA278_;
					varSectionX60gensym303_ = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*n)._kind_6.sons->data[((NI) 0)]).info);
					{
						tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** tmpX60gensym303__2;
						NI i_12;
						NI L_7;
						NI T281_;
						tmpX60gensym303__2 = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
						i_12 = ((NI) 0);
						T281_ = (tryScopeX60gensym198_.vars ? tryScopeX60gensym198_.vars->Sup.len : 0);
						L_7 = T281_;
						{
							while (1) {
								tyArray__T6RKPw8xfAeNaoei9aZGzXg T284_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T285_;
								if (!(i_12 < L_7)) goto LA283;
								tmpX60gensym303__2 = &tryScopeX60gensym198_.vars->data[i_12];
								nimZeroMem((void*)T284_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
								T284_[0] = newSymNode__ast_3691((*tmpX60gensym303__2));
								T284_[1] = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*n)._kind_6.sons->data[((NI) 0)]).info);
								T284_[2] = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*n)._kind_6.sons->data[((NI) 0)]).info);
								T285_ = NIM_NIL;
								T285_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T284_, 3);
								add__ast_4772(varSectionX60gensym303_, T285_);
								i_12 += ((NI) 1);
							} LA283: ;
						}
					}
					add__ast_4772(resultX60gensym303_, varSectionX60gensym303_);
				}
				LA278_: ;
				finSectionX60gensym303_ = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*n)._kind_6.sons->data[((NI) 0)]).info);
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym303_;
					NI i_13;
					NI L_8;
					NI T287_;
					mX60gensym303_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
					i_13 = ((NI) 0);
					T287_ = (tryScopeX60gensym198_.wasMoved ? tryScopeX60gensym198_.wasMoved->Sup.len : 0);
					L_8 = T287_;
					{
						while (1) {
							if (!(i_13 < L_8)) goto LA289;
							mX60gensym303_ = &tryScopeX60gensym198_.wasMoved->data[i_13];
							add__ast_4772(finSectionX60gensym303_, (*mX60gensym303_));
							i_13 += ((NI) 1);
						} LA289: ;
					}
				}
				{
					NI iX60gensym303_;
					NI colontmp__9;
					NI T291_;
					NI res_4;
					iX60gensym303_ = (NI)0;
					colontmp__9 = (NI)0;
					T291_ = ((tryScopeX60gensym198_.final ? tryScopeX60gensym198_.final->Sup.len : 0)-1);
					colontmp__9 = T291_;
					res_4 = colontmp__9;
					{
						while (1) {
							if (!(((NI) 0) <= res_4)) goto LA293;
							iX60gensym303_ = res_4;
							add__ast_4772(finSectionX60gensym303_, tryScopeX60gensym198_.final->data[iX60gensym303_]);
							res_4 -= ((NI) 1);
						} LA293: ;
					}
				}
				{
					tyArray__AB6yfoUgfWM2NtGe9bzkCmw T298_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T305_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T306_;
					if (!tryScopeX60gensym198_.needsTry) goto LA296_;
					nimZeroMem((void*)T298_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
					T298_[0] = cpyX60gensym303_;
					{
						NIM_BOOL T301_;
						T301_ = (NIM_BOOL)0;
						T301_ = isEmptyType__ast_4754((*tmpX60gensym303_).typ);
						if (!T301_) goto LA302_;
						T298_[1] = p__injectdestructors_105(tmpX60gensym303_, c, tryScopeX60gensym198_.parent, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
					}
					goto LA299_;
					LA302_: ;
					{
						T298_[1] = p__injectdestructors_105(tmpX60gensym303_, c, tryScopeX60gensym198_.parent, mode);
					}
					LA299_: ;
					T305_ = NIM_NIL;
					T305_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T298_, 2);
					T306_ = NIM_NIL;
					T306_ = newTryFinally__lowerings_207(T305_, finSectionX60gensym303_);
					add__ast_4772(resultX60gensym303_, T306_);
				}
				goto LA294_;
				LA296_: ;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T308_;
					add__ast_4772(resultX60gensym303_, cpyX60gensym303_);
					add__ast_4772(resultX60gensym303_, finSectionX60gensym303_);
					T308_ = NIM_NIL;
					{
						NIM_BOOL T311_;
						T311_ = (NIM_BOOL)0;
						T311_ = isEmptyType__ast_4754((*tmpX60gensym303_).typ);
						if (!T311_) goto LA312_;
						T308_ = p__injectdestructors_105(tmpX60gensym303_, c, tryScopeX60gensym198_.parent, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
					}
					goto LA309_;
					LA312_: ;
					{
						T308_ = p__injectdestructors_105(tmpX60gensym303_, c, tryScopeX60gensym198_.parent, mode);
					}
					LA309_: ;
					add__ast_4772(resultX60gensym303_, T308_);
				}
				LA294_: ;
				{
					NIM_BOOL T319_;
					if (!!((tryScopeX60gensym198_.parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL)))) goto LA317_;
					T319_ = (NIM_BOOL)0;
					T319_ = (*tryScopeX60gensym198_.parent).needsTry;
					if (T319_) goto LA320_;
					T319_ = tryScopeX60gensym198_.needsTry;
					LA320_: ;
					(*tryScopeX60gensym198_.parent).needsTry = T319_;
				}
				LA317_: ;
				T251_ = resultX60gensym303_;
			}
			LA252_: ;
			add__ast_4772(result, T251_);
			{
				NI iX60gensym198__5;
				NI colontmp__10;
				NI i_14;
				iX60gensym198__5 = (NI)0;
				colontmp__10 = (NI)0;
				colontmp__10 = len__ast_3151(n);
				i_14 = ((NI) 1);
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* itX60gensym198__3;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchX60gensym198__3;
						tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ branchScopeX60gensym198__2;
						NI T324_;
						if (!(i_14 < colontmp__10)) goto LA323;
						iX60gensym198__5 = i_14;
						itX60gensym198__3 = (*n)._kind_6.sons->data[iX60gensym198__5];
						branchX60gensym198__3 = copyTree__ast_4406(itX60gensym198__3);
						nimZeroMem((void*)(&branchScopeX60gensym198__2), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
						nestedScope__injectdestructors_72(s, (&branchScopeX60gensym198__2));
						T324_ = (NI)0;
						T324_ = len__ast_3151(branchX60gensym198__3);
						{
							NIM_BOOL T327_;
							NIM_BOOL T328_;
							NI T329_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T334_;
							T327_ = (NIM_BOOL)0;
							T328_ = (NIM_BOOL)0;
							T329_ = (NI)0;
							T329_ = len__ast_3151(itX60gensym198__3);
							T328_ = isEmptyType__ast_4754((*(*itX60gensym198__3)._kind_6.sons->data[(NI)(T329_ - ((NI) 1))]).typ);
							if (T328_) goto LA330_;
							T328_ = NIM_FALSE;
							LA330_: ;
							T327_ = T328_;
							if (T327_) goto LA331_;
							T327_ = ((*itX60gensym198__3).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107));
							LA331_: ;
							if (!T327_) goto LA332_;
							T334_ = NIM_NIL;
							{
								NI T339_;
								if (!((*itX60gensym198__3).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107))) goto LA337_;
								T339_ = (NI)0;
								T339_ = len__ast_3151(itX60gensym198__3);
								T334_ = p__injectdestructors_105((*itX60gensym198__3)._kind_6.sons->data[(NI)(T339_ - ((NI) 1))], c, (&branchScopeX60gensym198__2), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
							}
							goto LA335_;
							LA337_: ;
							{
								{
									NI T343_;
									NIM_BOOL T344_;
									NI T347_;
									T343_ = (NI)0;
									T343_ = len__ast_3151(itX60gensym198__3);
									T344_ = (NIM_BOOL)0;
									T344_ = isEmptyType__ast_4754((*(*itX60gensym198__3)._kind_6.sons->data[(NI)(T343_ - ((NI) 1))]).typ);
									if (!T344_) goto LA345_;
									T347_ = (NI)0;
									T347_ = len__ast_3151(itX60gensym198__3);
									T334_ = p__injectdestructors_105((*itX60gensym198__3)._kind_6.sons->data[(NI)(T347_ - ((NI) 1))], c, (&branchScopeX60gensym198__2), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
								}
								goto LA341_;
								LA345_: ;
								{
									NI T349_;
									T349_ = (NI)0;
									T349_ = len__ast_3151(itX60gensym198__3);
									T334_ = p__injectdestructors_105((*itX60gensym198__3)._kind_6.sons->data[(NI)(T349_ - ((NI) 1))], c, (&branchScopeX60gensym198__2), mode);
								}
								LA341_: ;
							}
							LA335_: ;
							asgnRef((void**) (&(*branchX60gensym198__3)._kind_6.sons->data[(NI)(T324_ - ((NI) 1))]), processScope__injectdestructors_7018(c, (&branchScopeX60gensym198__2), T334_));
						}
						goto LA325_;
						LA332_: ;
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym334_;
							NI T351_;
							NI T352_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym334_;
							NI T353_;
							NI T354_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym334_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym334_;
							NI T381_;
							T351_ = (NI)0;
							T351_ = len__ast_3151(itX60gensym198__3);
							T352_ = (NI)0;
							T352_ = len__ast_3151(itX60gensym198__3);
							resultX60gensym334_ = newNodeIT__ast_3338(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*itX60gensym198__3)._kind_6.sons->data[(NI)(T351_ - ((NI) 1))]).info, (*(*itX60gensym198__3)._kind_6.sons->data[(NI)(T352_ - ((NI) 1))]).typ);
							T353_ = (NI)0;
							T353_ = len__ast_3151(itX60gensym198__3);
							T354_ = (NI)0;
							T354_ = len__ast_3151(itX60gensym198__3);
							tmpX60gensym334_ = getTemp__injectdestructors_61(c, branchScopeX60gensym198__2.parent, (*(*itX60gensym198__3)._kind_6.sons->data[(NI)(T353_ - ((NI) 1))]).typ, (*(*itX60gensym198__3)._kind_6.sons->data[(NI)(T354_ - ((NI) 1))]).info);
							(*(*tmpX60gensym334_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 45)) & 63);
							{
								NI T357_;
								NIM_BOOL T358_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T361_;
								NI T362_;
								NI T363_;
								T357_ = (NI)0;
								T357_ = len__ast_3151(itX60gensym198__3);
								T358_ = (NIM_BOOL)0;
								T358_ = hasDestructor__injectdestructors_49((&(*c)), (*(*itX60gensym198__3)._kind_6.sons->data[(NI)(T357_ - ((NI) 1))]).typ);
								if (!T358_) goto LA359_;
								T361_ = NIM_NIL;
								T361_ = genDestroy__injectdestructors_6529(c, tmpX60gensym334_);
								unsureAsgnRef((void**) (&(*branchScopeX60gensym198__2.parent).final), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*branchScopeX60gensym198__2.parent).final), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
								T362_ = (*branchScopeX60gensym198__2.parent).final->Sup.len++;
								asgnRef((void**) (&(*branchScopeX60gensym198__2.parent).final->data[T362_]), T361_);
								T363_ = (NI)0;
								T363_ = len__ast_3151(itX60gensym198__3);
								cpyX60gensym334_ = moveOrCopy__injectdestructors_110(tmpX60gensym334_, (*itX60gensym198__3)._kind_6.sons->data[(NI)(T363_ - ((NI) 1))], c, (&branchScopeX60gensym198__2), NIM_TRUE);
							}
							goto LA355_;
							LA359_: ;
							{
								tyArray__AB6yfoUgfWM2NtGe9bzkCmw T365_;
								NI T366_;
								nimZeroMem((void*)T365_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
								T365_[0] = tmpX60gensym334_;
								T366_ = (NI)0;
								T366_ = len__ast_3151(itX60gensym198__3);
								T365_[1] = p__injectdestructors_105((*itX60gensym198__3)._kind_6.sons->data[(NI)(T366_ - ((NI) 1))], c, (&branchScopeX60gensym198__2), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
								cpyX60gensym334_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T365_, 2);
							}
							LA355_: ;
							{
								NI T369_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym334_;
								NI T372_;
								T369_ = (branchScopeX60gensym198__2.vars ? branchScopeX60gensym198__2.vars->Sup.len : 0);
								if (!(((NI) 0) < T369_)) goto LA370_;
								T372_ = (NI)0;
								T372_ = len__ast_3151(itX60gensym198__3);
								varSectionX60gensym334_ = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*itX60gensym198__3)._kind_6.sons->data[(NI)(T372_ - ((NI) 1))]).info);
								{
									tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** tmpX60gensym334__2;
									NI i_15;
									NI L_9;
									NI T374_;
									tmpX60gensym334__2 = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
									i_15 = ((NI) 0);
									T374_ = (branchScopeX60gensym198__2.vars ? branchScopeX60gensym198__2.vars->Sup.len : 0);
									L_9 = T374_;
									{
										while (1) {
											tyArray__T6RKPw8xfAeNaoei9aZGzXg T377_;
											NI T378_;
											NI T379_;
											tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T380_;
											if (!(i_15 < L_9)) goto LA376;
											tmpX60gensym334__2 = &branchScopeX60gensym198__2.vars->data[i_15];
											nimZeroMem((void*)T377_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
											T377_[0] = newSymNode__ast_3691((*tmpX60gensym334__2));
											T378_ = (NI)0;
											T378_ = len__ast_3151(itX60gensym198__3);
											T377_[1] = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym198__3)._kind_6.sons->data[(NI)(T378_ - ((NI) 1))]).info);
											T379_ = (NI)0;
											T379_ = len__ast_3151(itX60gensym198__3);
											T377_[2] = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym198__3)._kind_6.sons->data[(NI)(T379_ - ((NI) 1))]).info);
											T380_ = NIM_NIL;
											T380_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T377_, 3);
											add__ast_4772(varSectionX60gensym334_, T380_);
											i_15 += ((NI) 1);
										} LA376: ;
									}
								}
								add__ast_4772(resultX60gensym334_, varSectionX60gensym334_);
							}
							LA370_: ;
							T381_ = (NI)0;
							T381_ = len__ast_3151(itX60gensym198__3);
							finSectionX60gensym334_ = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*itX60gensym198__3)._kind_6.sons->data[(NI)(T381_ - ((NI) 1))]).info);
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym334_;
								NI i_16;
								NI L_10;
								NI T383_;
								mX60gensym334_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
								i_16 = ((NI) 0);
								T383_ = (branchScopeX60gensym198__2.wasMoved ? branchScopeX60gensym198__2.wasMoved->Sup.len : 0);
								L_10 = T383_;
								{
									while (1) {
										if (!(i_16 < L_10)) goto LA385;
										mX60gensym334_ = &branchScopeX60gensym198__2.wasMoved->data[i_16];
										add__ast_4772(finSectionX60gensym334_, (*mX60gensym334_));
										i_16 += ((NI) 1);
									} LA385: ;
								}
							}
							{
								NI iX60gensym334_;
								NI colontmp__11;
								NI T387_;
								NI res_5;
								iX60gensym334_ = (NI)0;
								colontmp__11 = (NI)0;
								T387_ = ((branchScopeX60gensym198__2.final ? branchScopeX60gensym198__2.final->Sup.len : 0)-1);
								colontmp__11 = T387_;
								res_5 = colontmp__11;
								{
									while (1) {
										if (!(((NI) 0) <= res_5)) goto LA389;
										iX60gensym334_ = res_5;
										add__ast_4772(finSectionX60gensym334_, branchScopeX60gensym198__2.final->data[iX60gensym334_]);
										res_5 -= ((NI) 1);
									} LA389: ;
								}
							}
							{
								tyArray__AB6yfoUgfWM2NtGe9bzkCmw T394_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T395_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T396_;
								if (!branchScopeX60gensym198__2.needsTry) goto LA392_;
								nimZeroMem((void*)T394_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
								T394_[0] = cpyX60gensym334_;
								T394_[1] = p__injectdestructors_105(tmpX60gensym334_, c, branchScopeX60gensym198__2.parent, mode);
								T395_ = NIM_NIL;
								T395_ = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T394_, 2);
								T396_ = NIM_NIL;
								T396_ = newTryFinally__lowerings_207(T395_, finSectionX60gensym334_);
								add__ast_4772(resultX60gensym334_, T396_);
							}
							goto LA390_;
							LA392_: ;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T398_;
								add__ast_4772(resultX60gensym334_, cpyX60gensym334_);
								add__ast_4772(resultX60gensym334_, finSectionX60gensym334_);
								T398_ = NIM_NIL;
								T398_ = p__injectdestructors_105(tmpX60gensym334_, c, branchScopeX60gensym198__2.parent, mode);
								add__ast_4772(resultX60gensym334_, T398_);
							}
							LA390_: ;
							{
								NIM_BOOL T403_;
								if (!!((branchScopeX60gensym198__2.parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL)))) goto LA401_;
								T403_ = (NIM_BOOL)0;
								T403_ = (*branchScopeX60gensym198__2.parent).needsTry;
								if (T403_) goto LA404_;
								T403_ = branchScopeX60gensym198__2.needsTry;
								LA404_: ;
								(*branchScopeX60gensym198__2.parent).needsTry = T403_;
							}
							LA401_: ;
							asgnRef((void**) (&(*branchX60gensym198__3)._kind_6.sons->data[(NI)(T324_ - ((NI) 1))]), resultX60gensym334_);
						}
						LA325_: ;
						add__ast_4772(result, branchX60gensym198__3);
						i_14 += ((NI) 1);
					} LA323: ;
				}
			}
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 93):
		{
			result = copyTree__ast_4406(n);
			asgnRef((void**) (&(*(*result)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)]), p__injectdestructors_105((*(*n)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)], c, s, mode));
		}
		break;
		default:
		{
		}
		break;
		}
	}
	goto LA1_;
	LA3_: ;
	{
		if (!(mode == ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 2))) goto LA408_;
		{
			NIM_BOOL T412_;
			T412_ = (NIM_BOOL)0;
			T412_ = containsConstSeq__injectdestructors_6862(n);
			if (!T412_) goto LA413_;
			result = passCopyToSink__injectdestructors_6807(n, c, s);
		}
		goto LA410_;
		LA413_: ;
		{
			if (!((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23) || (*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 155) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160))) goto LA416_;
			result = p__injectdestructors_105(n, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
		}
		goto LA410_;
		LA416_: ;
		{
			NIM_BOOL T419_;
			NIM_BOOL T420_;
			NIM_BOOL T421_;
			NIM_BOOL T422_;
			NIM_BOOL T427_;
			T419_ = (NIM_BOOL)0;
			T420_ = (NIM_BOOL)0;
			T421_ = (NIM_BOOL)0;
			T422_ = (NIM_BOOL)0;
			T422_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T422_)) goto LA423_;
			T422_ = isSinkParam__ast_5005((*n)._kind_4.sym);
			LA423_: ;
			T421_ = T422_;
			if (T421_) goto LA424_;
			T421_ = isAnalysableFieldAccess__dfa_910(n, (*c).owner);
			LA424_: ;
			T420_ = T421_;
			if (!(T420_)) goto LA425_;
			T420_ = isLastRead__injectdestructors_6105(n, c);
			LA425_: ;
			T419_ = T420_;
			if (!(T419_)) goto LA426_;
			T427_ = (NIM_BOOL)0;
			T427_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T427_)) goto LA428_;
			T427_ = isCursor__injectdestructors_6371(n);
			LA428_: ;
			T419_ = !(T427_);
			LA426_: ;
			if (!T419_) goto LA429_;
			result = destructiveMoveVar__injectdestructors_6762(n, c, s);
		}
		goto LA410_;
		LA429_: ;
		{
			if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 60))) goto LA432_;
			result = copyTree__ast_4406(n);
			{
				NIM_BOOL T436_;
				tyObject_TType__facALICuu8zUj0hjvbTLFg* T437_;
				tyObject_TType__facALICuu8zUj0hjvbTLFg* T439_;
				tyObject_TType__facALICuu8zUj0hjvbTLFg* nTyp;
				T436_ = (NIM_BOOL)0;
				T437_ = NIM_NIL;
				T437_ = skipTypes__ast_3710((*n).typ, TM__dJ4qrEWDmqGA8FWJ0TYKJQ_38);
				T436_ = !(((*T437_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45)));
				if (!(T436_)) goto LA438_;
				T439_ = NIM_NIL;
				T439_ = skipTypes__ast_3710((*(*n)._kind_6.sons->data[((NI) 1)]).typ, TM__dJ4qrEWDmqGA8FWJ0TYKJQ_38);
				T436_ = ((*T439_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45));
				LA438_: ;
				if (!T436_) goto LA440_;
				nTyp = (*(*n)._kind_6.sons->data[((NI) 1)]).typ;
				asgnRef((void**) (&(*(*n)._kind_6.sons->data[((NI) 1)]).typ), (*n).typ);
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 1)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 2)));
				asgnRef((void**) (&(*(*result)._kind_6.sons->data[((NI) 1)]).typ), nTyp);
			}
			goto LA434_;
			LA440_: ;
			{
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 1)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 2)));
			}
			LA434_: ;
		}
		goto LA410_;
		LA432_: ;
		{
			if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 67))) goto LA444_;
			result = copyTree__ast_4406(n);
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 2)));
		}
		goto LA410_;
		LA444_: ;
		{
			if (!((*n).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA447_;
			result = p__injectdestructors_105(n, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
		}
		goto LA410_;
		LA447_: ;
		{
			result = passCopyToSink__injectdestructors_6807(n, c, s);
		}
		LA410_: ;
	}
	goto LA1_;
	LA408_: ;
	{
		switch ((*n).kind) {
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 155):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39):
		{
			tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw m;
			{
				if (!(mode == ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0))) goto LA454_;
				m = ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0);
			}
			goto LA452_;
			LA454_: ;
			{
				m = ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 2);
			}
			LA452_: ;
			result = copyTree__ast_4406(n);
			{
				NI i_17;
				NI colontmp__12;
				NI colontmp__13;
				NI i_18;
				i_17 = (NI)0;
				colontmp__12 = (NI)0;
				colontmp__13 = (NI)0;
				colontmp__12 = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 155));
				colontmp__13 = len__ast_3151(n);
				i_18 = colontmp__12;
				{
					while (1) {
						if (!(i_18 < colontmp__13)) goto LA459;
						i_17 = i_18;
						{
							if (!((*(*n)._kind_6.sons->data[i_17]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA462_;
							asgnRef((void**) (&(*(*result)._kind_6.sons->data[i_17])._kind_6.sons->data[((NI) 1)]), p__injectdestructors_105((*(*n)._kind_6.sons->data[i_17])._kind_6.sons->data[((NI) 1)], c, s, m));
						}
						goto LA460_;
						LA462_: ;
						{
							if (!((*(*n)._kind_6.sons->data[i_17]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA465_;
							asgnRef((void**) (&(*(*result)._kind_6.sons->data[i_17])._kind_6.sons->data[((NI) 0)]), p__injectdestructors_105((*(*n)._kind_6.sons->data[i_17])._kind_6.sons->data[((NI) 0)], c, s, m));
							asgnRef((void**) (&(*(*result)._kind_6.sons->data[i_17])._kind_6.sons->data[((NI) 1)]), p__injectdestructors_105((*(*n)._kind_6.sons->data[i_17])._kind_6.sons->data[((NI) 1)], c, s, m));
						}
						goto LA460_;
						LA465_: ;
						{
							asgnRef((void**) (&(*result)._kind_6.sons->data[i_17]), p__injectdestructors_105((*n)._kind_6.sons->data[i_17], c, s, m));
						}
						LA460_: ;
						i_18 += ((NI) 1);
					} LA459: ;
				}
			}
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38):
		{
			tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
			NIM_BOOL isRefConstr;
			tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw m_2;
			t = skipTypes__ast_3710((*n).typ, TM__dJ4qrEWDmqGA8FWJ0TYKJQ_33);
			isRefConstr = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22));
			{
				if (!isRefConstr) goto LA471_;
				m_2 = ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 2);
			}
			goto LA469_;
			LA471_: ;
			{
				if (!(mode == ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0))) goto LA474_;
				m_2 = ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0);
			}
			goto LA469_;
			LA474_: ;
			{
				m_2 = ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 2);
			}
			LA469_: ;
			result = copyTree__ast_4406(n);
			{
				NI i_19;
				NI colontmp__14;
				NI i_20;
				i_19 = (NI)0;
				colontmp__14 = (NI)0;
				colontmp__14 = len__ast_3151(n);
				i_20 = ((NI) 1);
				{
					while (1) {
						if (!(i_20 < colontmp__14)) goto LA479;
						i_19 = i_20;
						{
							tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* field;
							if (!((*(*n)._kind_6.sons->data[i_19]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA482_;
							field = lookupFieldAgain__types_4054(t, (*(*(*n)._kind_6.sons->data[i_19])._kind_6.sons->data[((NI) 0)])._kind_4.sym);
							{
								NIM_BOOL T486_;
								T486_ = (NIM_BOOL)0;
								T486_ = !((field == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
								if (!(T486_)) goto LA487_;
								T486_ = (((*field).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 41))&63U)))!=0);
								LA487_: ;
								if (!T486_) goto LA488_;
								asgnRef((void**) (&(*(*result)._kind_6.sons->data[i_19])._kind_6.sons->data[((NI) 1)]), p__injectdestructors_105((*(*n)._kind_6.sons->data[i_19])._kind_6.sons->data[((NI) 1)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0)));
							}
							goto LA484_;
							LA488_: ;
							{
								asgnRef((void**) (&(*(*result)._kind_6.sons->data[i_19])._kind_6.sons->data[((NI) 1)]), p__injectdestructors_105((*(*n)._kind_6.sons->data[i_19])._kind_6.sons->data[((NI) 1)], c, s, m_2));
							}
							LA484_: ;
						}
						goto LA480_;
						LA482_: ;
						{
							asgnRef((void**) (&(*result)._kind_6.sons->data[i_19]), p__injectdestructors_105((*n)._kind_6.sons->data[i_19], c, s, m_2));
						}
						LA480_: ;
						i_20 += ((NI) 1);
					} LA479: ;
				}
			}
			{
				NIM_BOOL T494_;
				T494_ = (NIM_BOOL)0;
				T494_ = (mode == ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
				if (!(T494_)) goto LA495_;
				T494_ = isRefConstr;
				LA495_: ;
				if (!T494_) goto LA496_;
				result = ensureDestruction__injectdestructors_6887(result, n, c, s);
			}
			LA496_: ;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32):
		{
			NI inSpawn;
			tyObject_TType__facALICuu8zUj0hjvbTLFg* parameters;
			NI L_11;
			inSpawn = (*c).inSpawn;
			{
				NIM_BOOL T501_;
				T501_ = (NIM_BOOL)0;
				T501_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
				if (!(T501_)) goto LA502_;
				T501_ = ((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 198));
				LA502_: ;
				if (!T501_) goto LA503_;
				(*c).inSpawn += ((NI) 1);
			}
			goto LA499_;
			LA503_: ;
			{
				if (!(((NI) 0) < (*c).inSpawn)) goto LA506_;
				(*c).inSpawn -= ((NI) 1);
			}
			goto LA499_;
			LA506_: ;
			LA499_: ;
			parameters = (*(*n)._kind_6.sons->data[((NI) 0)]).typ;
			{
				if (!!((parameters == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA510_;
				L_11 = len__ast_3977(parameters);
			}
			goto LA508_;
			LA510_: ;
			{
				L_11 = ((NI) 0);
			}
			LA508_: ;
			result = shallowCopy__ast_4388(n);
			{
				NI i_21;
				NI colontmp__15;
				NI i_22;
				i_21 = (NI)0;
				colontmp__15 = (NI)0;
				colontmp__15 = len__ast_3151(n);
				i_22 = ((NI) 1);
				{
					while (1) {
						if (!(i_22 < colontmp__15)) goto LA515;
						i_21 = i_22;
						{
							NIM_BOOL T518_;
							T518_ = (NIM_BOOL)0;
							T518_ = (i_21 < L_11);
							if (!(T518_)) goto LA519_;
							T518_ = isCompileTimeOnly__types_3520((*parameters).sons->data[i_21]);
							LA519_: ;
							if (!T518_) goto LA520_;
							asgnRef((void**) (&(*result)._kind_6.sons->data[i_21]), (*n)._kind_6.sons->data[i_21]);
						}
						goto LA516_;
						LA520_: ;
						{
							NIM_BOOL T523_;
							NIM_BOOL T525_;
							T523_ = (NIM_BOOL)0;
							T523_ = (i_21 < L_11);
							if (!(T523_)) goto LA524_;
							T525_ = (NIM_BOOL)0;
							T525_ = isSinkTypeForParam__types_4047((*parameters).sons->data[i_21]);
							if (T525_) goto LA526_;
							T525_ = (((NI) 0) < inSpawn);
							LA526_: ;
							T523_ = T525_;
							LA524_: ;
							if (!T523_) goto LA527_;
							asgnRef((void**) (&(*result)._kind_6.sons->data[i_21]), p__injectdestructors_105((*n)._kind_6.sons->data[i_21], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 2)));
						}
						goto LA516_;
						LA527_: ;
						{
							asgnRef((void**) (&(*result)._kind_6.sons->data[i_21]), p__injectdestructors_105((*n)._kind_6.sons->data[i_21], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0)));
						}
						LA516_: ;
						i_22 += ((NI) 1);
					} LA515: ;
				}
			}
			{
				NIM_BOOL T532_;
				T532_ = (NIM_BOOL)0;
				T532_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
				if (!(T532_)) goto LA533_;
				T532_ = ((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 32) || (*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 33));
				LA533_: ;
				if (!T532_) goto LA534_;
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), copyTree__ast_4406((*n)._kind_6.sons->data[((NI) 0)]));
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* destroyOld;
					tyArray__AB6yfoUgfWM2NtGe9bzkCmw T540_;
					if (!((176 &((NU16)1<<((NU)((*(*(*c).graph).config).selectedGC)&15U)))!=0)) goto LA538_;
					destroyOld = genDestroy__injectdestructors_6529(c, (*result)._kind_6.sons->data[((NI) 1)]);
					nimZeroMem((void*)T540_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
					T540_[0] = destroyOld;
					T540_[1] = result;
					result = newTree__ast_3352(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T540_, 2);
				}
				LA538_: ;
			}
			goto LA530_;
			LA534_: ;
			{
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0)));
			}
			LA530_: ;
			{
				NIM_BOOL T544_;
				T544_ = (NIM_BOOL)0;
				T544_ = canRaise__ast_5063((*n)._kind_6.sons->data[((NI) 0)]);
				if (!T544_) goto LA545_;
				(*s).needsTry = NIM_TRUE;
			}
			LA545_: ;
			{
				if (!(mode == ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0))) goto LA549_;
				result = ensureDestruction__injectdestructors_6887(result, n, c, s);
			}
			LA549_: ;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 114):
		{
			result = shallowCopy__ast_4388(n);
			{
				if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA554_;
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0)));
			}
			goto LA552_;
			LA554_: ;
			{
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), copyNode__ast_4311((*n)._kind_6.sons->data[((NI) 0)]));
			}
			LA552_: ;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 100):
		{
			result = newNodeI__ast_3316(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
				it = NIM_NIL;
				{
					NI i_23;
					NI colontmp__16;
					NI i_24;
					i_23 = (NI)0;
					colontmp__16 = (NI)0;
					colontmp__16 = safeLen__ast_3144(n);
					i_24 = ((NI) 0);
					{
						while (1) {
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri;
							NI T562_;
							if (!(i_24 < colontmp__16)) goto LA561;
							i_23 = i_24;
							it = (*n)._kind_6.sons->data[i_23];
							T562_ = (NI)0;
							T562_ = len__ast_3151(it);
							ri = (*it)._kind_6.sons->data[(NI)(T562_ - ((NI) 1))];
							{
								NIM_BOOL T565_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T569_;
								T565_ = (NIM_BOOL)0;
								T565_ = ((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36));
								if (!(T565_)) goto LA566_;
								T565_ = hasDestructor__injectdestructors_49((&(*c)), (*ri).typ);
								LA566_: ;
								if (!T565_) goto LA567_;
								x = lowerTupleUnpacking__lowerings_116((*c).graph, it, (*c).idgen, (*c).owner);
								T569_ = NIM_NIL;
								T569_ = p__injectdestructors_105(x, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
								add__ast_4772(result, T569_);
							}
							goto LA563_;
							LA567_: ;
							{
								NIM_BOOL T571_;
								T571_ = (NIM_BOOL)0;
								T571_ = ((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35));
								if (!(T571_)) goto LA572_;
								T571_ = hasDestructor__injectdestructors_49((&(*c)), (*(*it)._kind_6.sons->data[((NI) 0)]).typ);
								LA572_: ;
								if (!T571_) goto LA573_;
								{
									NI j;
									NI colontmp__17;
									NI T576_;
									NI i_25;
									j = (NI)0;
									colontmp__17 = (NI)0;
									T576_ = (NI)0;
									T576_ = len__ast_3151(it);
									colontmp__17 = (NI)(T576_ - ((NI) 2));
									i_25 = ((NI) 0);
									{
										while (1) {
											if (!(i_25 < colontmp__17)) goto LA578;
											j = i_25;
											{
												tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* v;
												v = (*it)._kind_6.sons->data[j];
												{
													if (!((*v).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA582_;
													{
														if (!(((*(*v)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0)) goto LA586_;
														goto LA579;
													}
													LA586_: ;
													pVarTopLevel__injectdestructors_6969(v, c, s, result);
												}
												LA582_: ;
												{
													tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T592_;
													if (!!(((*ri).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA590_;
													T592_ = NIM_NIL;
													T592_ = moveOrCopy__injectdestructors_110(v, ri, c, s, ((*v).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)));
													add__ast_4772(result, T592_);
												}
												goto LA588_;
												LA590_: ;
												{
													NIM_BOOL T594_;
													tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T598_;
													tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T599_;
													T594_ = (NIM_BOOL)0;
													T594_ = ((*ri).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
													if (!(T594_)) goto LA595_;
													T594_ = (((NI) 0) < (*c).inLoop);
													LA595_: ;
													if (!T594_) goto LA596_;
													T598_ = NIM_NIL;
													T598_ = genDefaultCall__injectdestructors_6753((*v).typ, (&(*c)), (*v).info);
													T599_ = NIM_NIL;
													T599_ = moveOrCopy__injectdestructors_110(v, T598_, c, s, ((*v).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)));
													add__ast_4772(result, T599_);
												}
												goto LA588_;
												LA596_: ;
												LA588_: ;
											} LA579: ;
											i_25 += ((NI) 1);
										} LA578: ;
									}
								}
							}
							goto LA563_;
							LA573_: ;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* v_2;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* itCopy;
								NI T605_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T606_;
								v_2 = copyNode__ast_4311(n);
								itCopy = copyNode__ast_4311(it);
								{
									NI j_2;
									NI colontmp__18;
									NI T602_;
									NI i_26;
									j_2 = (NI)0;
									colontmp__18 = (NI)0;
									T602_ = (NI)0;
									T602_ = len__ast_3151(it);
									colontmp__18 = (NI)(T602_ - ((NI) 1));
									i_26 = ((NI) 0);
									{
										while (1) {
											if (!(i_26 < colontmp__18)) goto LA604;
											j_2 = i_26;
											add__ast_4772(itCopy, (*it)._kind_6.sons->data[j_2]);
											i_26 += ((NI) 1);
										} LA604: ;
									}
								}
								T605_ = (NI)0;
								T605_ = len__ast_3151(it);
								T606_ = NIM_NIL;
								T606_ = p__injectdestructors_105((*it)._kind_6.sons->data[(NI)(T605_ - ((NI) 1))], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
								add__ast_4772(itCopy, T606_);
								add__ast_4772(v_2, itCopy);
								add__ast_4772(result, v_2);
							}
							LA563_: ;
							i_24 += ((NI) 1);
						} LA561: ;
					}
				}
			}
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74):
		{
			{
				NIM_BOOL T610_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T618_;
				T610_ = (NIM_BOOL)0;
				T610_ = hasDestructor__injectdestructors_49((&(*c)), (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
				if (!(T610_)) goto LA611_;
				T610_ = !(((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) || (*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52) || (*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51)));
				LA611_: ;
				if (!T610_) goto LA612_;
				{
					if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46))) goto LA616_;
					cycleCheck__injectdestructors_6910(n, c);
				}
				LA616_: ;
				T618_ = NIM_NIL;
				T618_ = p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, s, mode);
				result = moveOrCopy__injectdestructors_110(T618_, (*n)._kind_6.sons->data[((NI) 1)], c, s, NIM_FALSE);
			}
			goto LA608_;
			LA612_: ;
			{
				NIM_BOOL T620_;
				T620_ = (NIM_BOOL)0;
				T620_ = isDiscriminantField__astalgo_4328((*n)._kind_6.sons->data[((NI) 0)]);
				if (!T620_) goto LA621_;
				result = genDiscriminantAsgn__injectdestructors_6670(c, s, n);
			}
			goto LA608_;
			LA621_: ;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T624_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T625_;
				result = copyNode__ast_4311(n);
				T624_ = NIM_NIL;
				T624_ = p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, s, mode);
				add__ast_4772(result, T624_);
				T625_ = NIM_NIL;
				T625_ = p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 1)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
				add__ast_4772(result, T625_);
			}
			LA608_: ;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 108):
		{
			result = pRaiseStmt__injectdestructors_7128(n, c, s);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 96):
		{
			internalErrorImpl__msgs_1431((*(*c).graph).config, (*n).info, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_46), TM__dJ4qrEWDmqGA8FWJ0TYKJQ_47);
			result = n;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 0) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 81):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 80):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 82):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 83):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 101):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 102):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 121):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 116):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 118):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 90):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 158):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 132):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 123):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 122):
		{
			result = n;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 71):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 72):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 68):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 69):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 70):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 91):
		{
			result = shallowCopy__ast_4388(n);
			{
				NI i_27;
				NI colontmp__19;
				NI i_28;
				i_27 = (NI)0;
				colontmp__19 = (NI)0;
				colontmp__19 = len__ast_3151(n);
				i_28 = ((NI) 0);
				{
					while (1) {
						if (!(i_28 < colontmp__19)) goto LA632;
						i_27 = i_28;
						asgnRef((void**) (&(*result)._kind_6.sons->data[i_27]), p__injectdestructors_105((*n)._kind_6.sons->data[i_27], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0)));
						i_28 += ((NI) 1);
					} LA632: ;
				}
			}
			{
				NIM_BOOL T635_;
				T635_ = (NIM_BOOL)0;
				T635_ = !(((*n).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
				if (!(T635_)) goto LA636_;
				T635_ = hasDestructor__injectdestructors_49((&(*c)), (*n).typ);
				LA636_: ;
				if (!T635_) goto LA637_;
				{
					if (!(mode == ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0))) goto LA641_;
					result = ensureDestruction__injectdestructors_6887(result, n, c, s);
				}
				LA641_: ;
			}
			LA637_: ;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 60):
		{
			result = copyTree__ast_4406(n);
			{
				NIM_BOOL T646_;
				tyObject_TType__facALICuu8zUj0hjvbTLFg* T647_;
				tyObject_TType__facALICuu8zUj0hjvbTLFg* T649_;
				tyObject_TType__facALICuu8zUj0hjvbTLFg* nTyp_2;
				T646_ = (NIM_BOOL)0;
				T647_ = NIM_NIL;
				T647_ = skipTypes__ast_3710((*n).typ, TM__dJ4qrEWDmqGA8FWJ0TYKJQ_38);
				T646_ = !(((*T647_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45)));
				if (!(T646_)) goto LA648_;
				T649_ = NIM_NIL;
				T649_ = skipTypes__ast_3710((*(*n)._kind_6.sons->data[((NI) 1)]).typ, TM__dJ4qrEWDmqGA8FWJ0TYKJQ_38);
				T646_ = ((*T649_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45));
				LA648_: ;
				if (!T646_) goto LA650_;
				nTyp_2 = (*(*n)._kind_6.sons->data[((NI) 1)]).typ;
				asgnRef((void**) (&(*(*n)._kind_6.sons->data[((NI) 1)]).typ), (*n).typ);
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 1)], c, s, mode));
				asgnRef((void**) (&(*(*result)._kind_6.sons->data[((NI) 1)]).typ), nTyp_2);
			}
			goto LA644_;
			LA650_: ;
			{
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 1)], c, s, mode));
			}
			LA644_: ;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 67):
		{
			result = copyTree__ast_4406(n);
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, s, mode));
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
		{
			result = shallowCopy__ast_4388(n);
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0)));
			{
				NI i_29;
				NI colontmp__20;
				NI i_30;
				i_29 = (NI)0;
				colontmp__20 = (NI)0;
				colontmp__20 = len__ast_3151(n);
				i_30 = ((NI) 1);
				{
					while (1) {
						if (!(i_30 < colontmp__20)) goto LA657;
						i_29 = i_30;
						asgnRef((void**) (&(*result)._kind_6.sons->data[i_29]), (*n)._kind_6.sons->data[i_29]);
						i_30 += ((NI) 1);
					} LA657: ;
				}
			}
			{
				NIM_BOOL T660_;
				T660_ = (NIM_BOOL)0;
				T660_ = (mode == ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 2));
				if (!(T660_)) goto LA661_;
				T660_ = hasDestructor__injectdestructors_49((&(*c)), (*n).typ);
				LA661_: ;
				if (!T660_) goto LA662_;
				{
					NIM_BOOL T666_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T670_;
					NI T671_;
					T666_ = (NIM_BOOL)0;
					T666_ = isAnalysableFieldAccess__dfa_910(n, (*c).owner);
					if (!(T666_)) goto LA667_;
					T666_ = isLastRead__injectdestructors_6105(n, c);
					LA667_: ;
					if (!T666_) goto LA668_;
					T670_ = NIM_NIL;
					T670_ = genWasMoved__injectdestructors_6741(c, n);
					unsureAsgnRef((void**) (&(*s).wasMoved), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*s).wasMoved), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
					T671_ = (*s).wasMoved->Sup.len++;
					asgnRef((void**) (&(*s).wasMoved->data[T671_]), T670_);
				}
				goto LA664_;
				LA668_: ;
				{
					result = passCopyToSink__injectdestructors_6807(result, c, s);
				}
				LA664_: ;
			}
			LA662_: ;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 63):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65):
		{
			result = shallowCopy__ast_4388(n);
			{
				NI i_31;
				NI colontmp__21;
				NI i_32;
				i_31 = (NI)0;
				colontmp__21 = (NI)0;
				colontmp__21 = len__ast_3151(n);
				i_32 = ((NI) 0);
				{
					while (1) {
						if (!(i_32 < colontmp__21)) goto LA676;
						i_31 = i_32;
						asgnRef((void**) (&(*result)._kind_6.sons->data[i_31]), p__injectdestructors_105((*n)._kind_6.sons->data[i_31], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0)));
						i_32 += ((NI) 1);
					} LA676: ;
				}
			}
			{
				NIM_BOOL T679_;
				T679_ = (NIM_BOOL)0;
				T679_ = (mode == ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 2));
				if (!(T679_)) goto LA680_;
				T679_ = hasDestructor__injectdestructors_49((&(*c)), (*n).typ);
				LA680_: ;
				if (!T679_) goto LA681_;
				{
					NIM_BOOL T685_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T689_;
					NI T690_;
					T685_ = (NIM_BOOL)0;
					T685_ = isAnalysableFieldAccess__dfa_910(n, (*c).owner);
					if (!(T685_)) goto LA686_;
					T685_ = isLastRead__injectdestructors_6105(n, c);
					LA686_: ;
					if (!T685_) goto LA687_;
					T689_ = NIM_NIL;
					T689_ = genWasMoved__injectdestructors_6741(c, n);
					unsureAsgnRef((void**) (&(*s).wasMoved), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*s).wasMoved), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
					T690_ = (*s).wasMoved->Sup.len++;
					asgnRef((void**) (&(*s).wasMoved->data[T690_]), T689_);
				}
				goto LA683_;
				LA687_: ;
				{
					result = passCopyToSink__injectdestructors_6807(result, c, s);
				}
				LA683_: ;
			}
			LA681_: ;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 105):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44):
		{
			result = shallowCopy__ast_4388(n);
			{
				NI i_33;
				NI colontmp__22;
				NI i_34;
				i_33 = (NI)0;
				colontmp__22 = (NI)0;
				colontmp__22 = len__ast_3151(n);
				i_34 = ((NI) 0);
				{
					while (1) {
						if (!(i_34 < colontmp__22)) goto LA695;
						i_33 = i_34;
						asgnRef((void**) (&(*result)._kind_6.sons->data[i_33]), p__injectdestructors_105((*n)._kind_6.sons->data[i_33], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0)));
						i_34 += ((NI) 1);
					} LA695: ;
				}
			}
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 110):
		{
			(*s).needsTry = NIM_TRUE;
			result = n;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 109):
		{
			result = shallowCopy__ast_4388(n);
			{
				NI i_35;
				NI colontmp__23;
				NI i_36;
				i_35 = (NI)0;
				colontmp__23 = (NI)0;
				colontmp__23 = len__ast_3151(n);
				i_36 = ((NI) 0);
				{
					while (1) {
						if (!(i_36 < colontmp__23)) goto LA700;
						i_35 = i_36;
						asgnRef((void**) (&(*result)._kind_6.sons->data[i_35]), p__injectdestructors_105((*n)._kind_6.sons->data[i_35], c, s, mode));
						i_36 += ((NI) 1);
					} LA700: ;
				}
			}
			(*s).needsTry = NIM_TRUE;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 61):
		{
			result = shallowCopy__ast_4388(n);
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), (*n)._kind_6.sons->data[((NI) 0)]);
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 1)], c, s, mode));
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46):
		{
			result = shallowCopy__ast_4388(n);
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, s, mode));
			{
				NI i_37;
				NI colontmp__24;
				NI i_38;
				i_37 = (NI)0;
				colontmp__24 = (NI)0;
				colontmp__24 = len__ast_3151(n);
				i_38 = ((NI) 1);
				{
					while (1) {
						if (!(i_38 < colontmp__24)) goto LA705;
						i_37 = i_38;
						asgnRef((void**) (&(*result)._kind_6.sons->data[i_37]), (*n)._kind_6.sons->data[i_37]);
						i_38 += ((NI) 1);
					} LA705: ;
				}
			}
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 156):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 157):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 89):
		{
			result = n;
		}
		break;
		default:
		{
			NimStringDesc* T708_;
			T708_ = NIM_NIL;
			T708_ = rawNewString((reprEnum((NI)(*n).kind, (&NTItnodekind__G4E4Gxe7oI2Cm03rkiOzQw_)) ? reprEnum((NI)(*n).kind, (&NTItnodekind__G4E4Gxe7oI2Cm03rkiOzQw_))->Sup.len : 0) + 40);
appendString(T708_, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_48));
appendString(T708_, reprEnum((NI)(*n).kind, (&NTItnodekind__G4E4Gxe7oI2Cm03rkiOzQw_)));
			internalErrorImpl__msgs_1431((*(*c).graph).config, (*n).info, T708_, TM__dJ4qrEWDmqGA8FWJ0TYKJQ_49);
		}
		break;
		}
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, injectDestructorCalls__injectdestructors_10135)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_Con__mVYRtnERc9advo79cBQUudxg c;
	tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ scope;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T29_;
{	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((*owner).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 39))&63U)))!=0);
		if (T3_) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*owner).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 15));
		if (!(T5_)) goto LA6_;
		T5_ = isInlineIterator__ast_4964((*owner).typ);
		LA6_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA7_;
		result = n;
		goto BeforeRet_;
	}
	LA7_: ;
	nimZeroMem((void*)(&c), sizeof(tyObject_Con__mVYRtnERc9advo79cBQUudxg));
	nimZeroMem((void*)(&c), sizeof(tyObject_Con__mVYRtnERc9advo79cBQUudxg));
	c.owner = owner;
	c.graph = g;
	c.g = constructCfg__dfa_1142(owner, n);
	c.idgen = idgen;
	{
		if (!(((*(*g).config).options &((NU32)1<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 26))&31U)))!=0)) goto LA11_;
		computeCursors__varpartitions_1790(owner, n, g);
	}
	LA11_: ;
	computeLastReadsAndFirstWrites__injectdestructors_3780(c.g);
	nimZeroMem((void*)(&scope), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
	body = p__injectdestructors_105(n, (&c), (&scope), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* params;
		if (!((126976 &((NU32)1<<((NU)((*owner).kind)&31U)))!=0)) goto LA15_;
		params = (*(*owner).typ).n;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3151(params);
			i_2 = ((NI) 1);
			{
				while (1) {
					tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
					if (!(i_2 < colontmp_)) goto LA19;
					i = i_2;
					t = (*(*(*params)._kind_6.sons->data[i])._kind_4.sym).typ;
					{
						NIM_BOOL T22_;
						tyObject_TType__facALICuu8zUj0hjvbTLFg* T24_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T27_;
						NI T28_;
						T22_ = (NIM_BOOL)0;
						T22_ = isSinkTypeForParam__types_4047(t);
						if (!(T22_)) goto LA23_;
						T24_ = NIM_NIL;
						T24_ = skipTypes__ast_3710(t, TM__dJ4qrEWDmqGA8FWJ0TYKJQ_50);
						T22_ = hasDestructor__injectdestructors_49((&c), T24_);
						LA23_: ;
						if (!T22_) goto LA25_;
						T27_ = NIM_NIL;
						T27_ = genDestroy__injectdestructors_6529((&c), (*params)._kind_6.sons->data[i]);
						scope.final = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)(scope.final), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_));
						T28_ = scope.final->Sup.len++;
						asgnRef((void**) (&scope.final->data[T28_]), T27_);
					}
					LA25_: ;
					i_2 += ((NI) 1);
				} LA19: ;
			}
		}
	}
	LA15_: ;
	T29_ = NIM_NIL;
	T29_ = processScope__injectdestructors_7018((&c), (&scope), body);
	result = optimize__optimizer_390(T29_);
	{
		NIM_BOOL T32_;
		tyArray__Re75IspeoxXy2oCZHwcRrA T35_;
		tyArray__nHXaesL0DJZHyVS07ARPRA T36_;
		T32_ = (NIM_BOOL)0;
		T32_ = nsthasKey((*(*g).config).arcToExpand, (*(*owner).name).s);
		if (!T32_) goto LA33_;
		nimZeroMem((void*)T35_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
		T35_[0] = copyString(((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_51));
		T35_[1] = copyString((*(*owner).name).s);
		echoBinSafe(T35_, 2);
		nimZeroMem((void*)T36_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
		T36_[0] = renderTree__renderer_46(result, 516);
		echoBinSafe(T36_, 1);
		echoBinSafe(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_52, 1);
	}
	LA33_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, atminjectdestructorsdotnim_DatInit000)(void) {
static TNimNode* TM__dJ4qrEWDmqGA8FWJ0TYKJQ_2_3[3];
static TNimNode* TM__dJ4qrEWDmqGA8FWJ0TYKJQ_3_4[4];
static TNimNode* TM__dJ4qrEWDmqGA8FWJ0TYKJQ_4_2[2];
static TNimNode* TM__dJ4qrEWDmqGA8FWJ0TYKJQ_5_2[2];
static TNimNode* TM__dJ4qrEWDmqGA8FWJ0TYKJQ_6_3[3];
static TNimNode TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[19];
NTIkeyvaluepair__YXXBMUJBtW9corlxevWVfYQ_.size = sizeof(tyTuple__YXXBMUJBtW9corlxevWVfYQ);
NTIkeyvaluepair__YXXBMUJBtW9corlxevWVfYQ_.align = NIM_ALIGNOF(tyTuple__YXXBMUJBtW9corlxevWVfYQ);
NTIkeyvaluepair__YXXBMUJBtW9corlxevWVfYQ_.kind = 18;
NTIkeyvaluepair__YXXBMUJBtW9corlxevWVfYQ_.base = 0;
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_2_3[0] = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[1];
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[1].kind = 1;
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[1].offset = offsetof(tyTuple__YXXBMUJBtW9corlxevWVfYQ, Field0);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[1].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[1].name = "Field0";
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_2_3[1] = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[2];
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[2].kind = 1;
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[2].offset = offsetof(tyTuple__YXXBMUJBtW9corlxevWVfYQ, Field1);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[2].typ = (&NTItupleLa58pnode_b58pnodeT__EFqgCXJ4d8PgqOdFJmldsQ_);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[2].name = "Field1";
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_2_3[2] = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[3];
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[3].kind = 1;
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[3].offset = offsetof(tyTuple__YXXBMUJBtW9corlxevWVfYQ, Field2);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[3].typ = (&NTIaliaskind__mOZtJx9b3QXuy9bfWq9cuUNCg_);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[3].name = "Field2";
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[0].len = 3; TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[0].kind = 2; TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[0].sons = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_2_3[0];
NTIkeyvaluepair__YXXBMUJBtW9corlxevWVfYQ_.node = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[0];
NTIkeyvaluepairseq__sh9b9afdJBB3bJbViXY7yNAg_.size = sizeof(tySequence__sh9b9afdJBB3bJbViXY7yNAg*);
NTIkeyvaluepairseq__sh9b9afdJBB3bJbViXY7yNAg_.align = NIM_ALIGNOF(tySequence__sh9b9afdJBB3bJbViXY7yNAg*);
NTIkeyvaluepairseq__sh9b9afdJBB3bJbViXY7yNAg_.kind = 24;
NTIkeyvaluepairseq__sh9b9afdJBB3bJbViXY7yNAg_.base = (&NTIkeyvaluepair__YXXBMUJBtW9corlxevWVfYQ_);
NTIkeyvaluepairseq__sh9b9afdJBB3bJbViXY7yNAg_.marker = Marker_tySequence__sh9b9afdJBB3bJbViXY7yNAg;
NTIstate58objecttype__G9bbCRpuemWPWC66CPVRKyw_.size = sizeof(tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw);
NTIstate58objecttype__G9bbCRpuemWPWC66CPVRKyw_.align = NIM_ALIGNOF(tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw);
NTIstate58objecttype__G9bbCRpuemWPWC66CPVRKyw_.kind = 18;
NTIstate58objecttype__G9bbCRpuemWPWC66CPVRKyw_.base = 0;
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_3_4[0] = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[5];
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[5].kind = 1;
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[5].offset = offsetof(tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw, lastReads);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[5].typ = (&NTIpackedset__IhxwDBRi51nGrosBGFKcsA_);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[5].name = "lastReads";
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_3_4[1] = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[6];
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[6].kind = 1;
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[6].offset = offsetof(tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw, potentialLastReads);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[6].typ = (&NTIpackedset__IhxwDBRi51nGrosBGFKcsA_);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[6].name = "potentialLastReads";
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_3_4[2] = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[7];
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[7].kind = 1;
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[7].offset = offsetof(tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw, notLastReads);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[7].typ = (&NTIpackedset__IhxwDBRi51nGrosBGFKcsA_);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[7].name = "notLastReads";
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_3_4[3] = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[8];
NTIhashset__YByQS2i9cOlUupxNMscAMwQ_.size = sizeof(tyObject_HashSet__YByQS2i9cOlUupxNMscAMwQ);
NTIhashset__YByQS2i9cOlUupxNMscAMwQ_.align = NIM_ALIGNOF(tyObject_HashSet__YByQS2i9cOlUupxNMscAMwQ);
NTIhashset__YByQS2i9cOlUupxNMscAMwQ_.kind = 18;
NTIhashset__YByQS2i9cOlUupxNMscAMwQ_.base = 0;
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_4_2[0] = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[10];
NTIkeyvaluepair__TeyVVRby9bj1JQeNMm9aeI2w_.size = sizeof(tyTuple__TeyVVRby9bj1JQeNMm9aeI2w);
NTIkeyvaluepair__TeyVVRby9bj1JQeNMm9aeI2w_.align = NIM_ALIGNOF(tyTuple__TeyVVRby9bj1JQeNMm9aeI2w);
NTIkeyvaluepair__TeyVVRby9bj1JQeNMm9aeI2w_.kind = 18;
NTIkeyvaluepair__TeyVVRby9bj1JQeNMm9aeI2w_.base = 0;
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_5_2[0] = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[12];
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[12].kind = 1;
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[12].offset = offsetof(tyTuple__TeyVVRby9bj1JQeNMm9aeI2w, Field0);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[12].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[12].name = "Field0";
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_5_2[1] = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[13];
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[13].kind = 1;
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[13].offset = offsetof(tyTuple__TeyVVRby9bj1JQeNMm9aeI2w, Field1);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[13].typ = (&NTIpnode__fKfcLzXYiz5jNu3NH3Tv8Q_);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[13].name = "Field1";
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[11].len = 2; TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[11].kind = 2; TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[11].sons = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_5_2[0];
NTIkeyvaluepair__TeyVVRby9bj1JQeNMm9aeI2w_.node = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[11];
NTIkeyvaluepairseq__Y6pVop4P8VSwSorRqc2aQA_.size = sizeof(tySequence__Y6pVop4P8VSwSorRqc2aQA*);
NTIkeyvaluepairseq__Y6pVop4P8VSwSorRqc2aQA_.align = NIM_ALIGNOF(tySequence__Y6pVop4P8VSwSorRqc2aQA*);
NTIkeyvaluepairseq__Y6pVop4P8VSwSorRqc2aQA_.kind = 24;
NTIkeyvaluepairseq__Y6pVop4P8VSwSorRqc2aQA_.base = (&NTIkeyvaluepair__TeyVVRby9bj1JQeNMm9aeI2w_);
NTIkeyvaluepairseq__Y6pVop4P8VSwSorRqc2aQA_.marker = Marker_tySequence__Y6pVop4P8VSwSorRqc2aQA;
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[10].kind = 1;
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[10].offset = offsetof(tyObject_HashSet__YByQS2i9cOlUupxNMscAMwQ, data);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[10].typ = (&NTIkeyvaluepairseq__Y6pVop4P8VSwSorRqc2aQA_);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[10].name = "data";
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_4_2[1] = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[14];
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[14].kind = 1;
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[14].offset = offsetof(tyObject_HashSet__YByQS2i9cOlUupxNMscAMwQ, counter);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[14].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[14].name = "counter";
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[9].len = 2; TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[9].kind = 2; TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[9].sons = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_4_2[0];
NTIhashset__YByQS2i9cOlUupxNMscAMwQ_.node = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[9];
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[8].kind = 1;
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[8].offset = offsetof(tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw, alreadySeen);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[8].typ = (&NTIhashset__YByQS2i9cOlUupxNMscAMwQ_);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[8].name = "alreadySeen";
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[4].len = 4; TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[4].kind = 2; TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[4].sons = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_3_4[0];
NTIstate58objecttype__G9bbCRpuemWPWC66CPVRKyw_.node = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[4];
NTIstate__xMu9aauGSW9bIwiWptXaXX0Q_.size = sizeof(tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw*);
NTIstate__xMu9aauGSW9bIwiWptXaXX0Q_.align = NIM_ALIGNOF(tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw*);
NTIstate__xMu9aauGSW9bIwiWptXaXX0Q_.kind = 22;
NTIstate__xMu9aauGSW9bIwiWptXaXX0Q_.base = (&NTIstate58objecttype__G9bbCRpuemWPWC66CPVRKyw_);
NTIstate__xMu9aauGSW9bIwiWptXaXX0Q_.marker = Marker_tyRef__xMu9aauGSW9bIwiWptXaXX0Q;
NTIseqLstateT__mFtVDW3p7w6wfPPNodKzsA_.size = sizeof(tySequence__mFtVDW3p7w6wfPPNodKzsA*);
NTIseqLstateT__mFtVDW3p7w6wfPPNodKzsA_.align = NIM_ALIGNOF(tySequence__mFtVDW3p7w6wfPPNodKzsA*);
NTIseqLstateT__mFtVDW3p7w6wfPPNodKzsA_.kind = 24;
NTIseqLstateT__mFtVDW3p7w6wfPPNodKzsA_.base = (&NTIstate__xMu9aauGSW9bIwiWptXaXX0Q_);
NTIseqLstateT__mFtVDW3p7w6wfPPNodKzsA_.marker = Marker_tySequence__mFtVDW3p7w6wfPPNodKzsA;
NTIkeyvaluepair__jCPpzNasrXtz9cFJFxT1NHQ_.size = sizeof(tyTuple__jCPpzNasrXtz9cFJFxT1NHQ);
NTIkeyvaluepair__jCPpzNasrXtz9cFJFxT1NHQ_.align = NIM_ALIGNOF(tyTuple__jCPpzNasrXtz9cFJFxT1NHQ);
NTIkeyvaluepair__jCPpzNasrXtz9cFJFxT1NHQ_.kind = 18;
NTIkeyvaluepair__jCPpzNasrXtz9cFJFxT1NHQ_.base = 0;
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_6_3[0] = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[16];
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[16].kind = 1;
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[16].offset = offsetof(tyTuple__jCPpzNasrXtz9cFJFxT1NHQ, Field0);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[16].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[16].name = "Field0";
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_6_3[1] = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[17];
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[17].kind = 1;
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[17].offset = offsetof(tyTuple__jCPpzNasrXtz9cFJFxT1NHQ, Field1);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[17].typ = (&NTIpnode__fKfcLzXYiz5jNu3NH3Tv8Q_);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[17].name = "Field1";
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_6_3[2] = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[18];
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[18].kind = 1;
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[18].offset = offsetof(tyTuple__jCPpzNasrXtz9cFJFxT1NHQ, Field2);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[18].typ = (&NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[18].name = "Field2";
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[15].len = 3; TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[15].kind = 2; TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[15].sons = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_6_3[0];
NTIkeyvaluepair__jCPpzNasrXtz9cFJFxT1NHQ_.node = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[15];
NTIkeyvaluepairseq__JGK6WZYU2JHWLoPdKRO4AQ_.size = sizeof(tySequence__JGK6WZYU2JHWLoPdKRO4AQ*);
NTIkeyvaluepairseq__JGK6WZYU2JHWLoPdKRO4AQ_.align = NIM_ALIGNOF(tySequence__JGK6WZYU2JHWLoPdKRO4AQ*);
NTIkeyvaluepairseq__JGK6WZYU2JHWLoPdKRO4AQ_.kind = 24;
NTIkeyvaluepairseq__JGK6WZYU2JHWLoPdKRO4AQ_.base = (&NTIkeyvaluepair__jCPpzNasrXtz9cFJFxT1NHQ_);
NTIkeyvaluepairseq__JGK6WZYU2JHWLoPdKRO4AQ_.marker = Marker_tySequence__JGK6WZYU2JHWLoPdKRO4AQ;
}

